CSAPP 读书笔记-第六章存储器层次结构

6.1 存储技术

6.1.1 随机访问存储器

  1. 静态 RAM

用来做高速缓存存储器。

SRAM 将每个位存储在一个双稳态的存储器单元里。非常稳定,只有两个状态,正好表达二进制,但是造价高,功耗大。

  1. 动态 RAM

用来做内存。

DRAM 将每个位存储为对一个电容的充电。

DRAM 存储器单元对干扰非常敏感。暴露在光线下会导致电容电压改变。

  1. 增强的 DRAM

DDR SDRAM,Double Data-Rate Synchronous DRAM,双倍数据速率同步 DRAM。就是我们现在用的 DDR 内存条。

不同类型的 DDR SDRAM 是用提高有效带宽的很小的预取缓冲区的大小来划分的:DDR(2位)、DDR2(4位)、DDR3(8位)。

  1. 非易失性存储器

断电后仍然保存信息。

由于历史原因,虽然 ROM 中有的类型既可以读也可以写,但是它们整体上都被称为只读存储器(Read-Only Memory,ROM)。

闪存(flash memory)基于 EEPROM(电子可擦除可编程 ROM),固态硬盘基于闪存。

存储在 ROM 设备中的程序通常被称为固件(firmware)。当一个计算机系统通电以后,它会运行存储在 ROM 中的固件。一些系统在固件中提供了少量基本的输入和输出函数——例如 PC 的 BIOS(基本输入/输出系统)例程。复杂的设备,像图形卡和磁盘驱动控制器,也依赖固件翻译来自 CPU 的 I/O 请求。

  1. 访问主存

数据流通过称为总线(bus)的共享电子电路在处理器和 DRAM 主存之间来来回回。每次 CPU 和主存之间的数据传送都是通过一系列步骤来完成的,这些步骤称为总线事务。读事务从主存传送数据到 CPU,写事务从 CPU 传送数据到主存。

6.1.2 磁盘存储

从磁盘读信息的时间为毫秒级,比从 DRAM 读慢了 10 万倍,比从 SRAM 读慢了 100 万倍。

  1. 磁盘构造

磁盘 = N x 盘片 = N x 2 x 表面 = N x 2 x M x 磁道 = N x 2 x M x L x 扇区。

每个磁盘有两个表面,每个表面由一组称为磁道(track)的同心圆组成,每个磁道被划分为一组扇区,每个扇区包含相等数量的数据位。

多个盘片叠放在一起组成磁盘。

  1. 磁盘操作

磁盘以扇区大小的块来读写数据。对扇区的访问时间有三个主要的部分:

  • 寻道时间:移动传动臂到包含目标扇区的磁道上
  • 旋转时间:目标扇区的第一个位旋转到读/写头下
  • 传送时间:从目标扇区第一个位旋转到最后一个位

6.2 局部性

局部性通常有两种不同的形式:时间局部性和空间局部性。在一个具有良好时间局部性的程序中,被引用过一次的内存位置很可能在不远的将来再被多次引用。在一个具有良好空间局部性的程序中,如果一个内存位置被引用了一次,那么程序很可能在不远的将来引用附近的一个内存位置。

6.4 高速缓存存储器

6.4.1 通用的高速缓存存储器组织结构

cache = M x 缓存组(cache set)= M x N x 缓存行(cache line)。

缓存行最典型的大小是 64 字节。

评论