深入理解高速缓存工作原理

深入理解高速缓存工作原理

为什么需要高速缓存

早期 CPU 相比现在的 CPU 比较简单,没有 Cache 的计算机系统的简化模型,CPU在执行时需要的指令和数据通过内存总线和系统总线由内存传送到寄存器,再由寄存器送入ALU)。

Read more
Attack Lab

Attack Lab

介绍

主要分为两种不同类型的攻击:

  • Buffer overflow attacks
  • ROP attacks
Read more
Bomb Lab

Bomb Lab

介绍

邪恶博士在我们的班级机器上植入了许多“二进制炸弹”。二进制炸弹是一个由一系列阶段组成的程序。每个阶段都要求你在 stdin 上输入入特定的字符串。如果你输入正确的字符串,则该阶段将被消除,炸弹将进入下一个阶段。否则,炸弹通过打印“ BOOM !!!”而爆炸。然后终止。当每个阶段都已消除时,炸弹便已消除。

Read more
汇编入门

汇编入门

从 C 语言到机器码

先从一个非常简单的程序来看编译过程中发生了那些步骤。

#include <stdio.h>

int main() {
printf("hello world\n");
return 0;
}

我们在 Unix 系统上终端上使用 GCC 进行编译:

> gcc -o hello hello.c
Read more
Data Lab

Data Lab

前言

CSAPP 这本书买了好几年,最近抽出一些时间开始重头读这本书,发现这些基础知识比较重要,边看书边跟着视频课程过了一遍,有些东西还是比较模糊。本文开始做 CSAPP Lab 实验,加强巩固书的内容。

Read more
Cache Lab

Cache Lab

介绍

本实验有两个部分,Part A 要求我们模拟一个 cache 行为,正确地模拟每次操作(如 load、store、modify) cache 的响应(hit、miss、eviction)。Part B 要求我们用尽可能少的 cache 的 miss 实现矩阵的转置,充分利用 cache。

Read more