CSAPP–第六章–存储器层次结构(上)

Aki 发布于 2022-11-18 269 次阅读


参考文章:【深入理解计算机系统CSAPP】第六章 存储器层次结构_xuhss_com的博客-CSDN博客CSAPP:第6章 存储器层次结构_椰子奶糖的博客-CSDN博客

参考视频:【CSAPP-深入理解计算机系统】6-1. 存储技术_哔哩哔哩_bilibili

简介、

存储器系统(memory system)是一个具有不同容量、成本和访问时间的存储设备的层次结构。CPU 寄存器保存着最常用的数据。靠近 CPU 的小的、快速的高速缓存存储器(cache memory)作为一部分存储在相对慢速的主存储器(main memory)中的数据和指令的缓冲区域。主存暂时存放在容量较大的、慢速磁盘上的数据,而这些磁盘常常又作为存储在通过网络连接的其他机器的磁盘或磁带上的区域的缓冲区域。

多个具有不同容量、成本和访问时间的存储设备构成了存储器层次结构,称为存储器系统

CPU中的指令周期、CPU周期和时钟周期_chuixue24的博客-CSDN博客

执行指令时访问数据所需的时钟周期数:

  1. CPU寄存器:0个周期
  2. L1,L2,L3高速缓存:4 - 75个周期
  3. 主存:上百个周期
  4. 磁盘:几千万个周期

 存储技术、

几种基本的存储技术:

(1)RAM:指的是“随机存取存储器”,既可向指定单元存入信息又可从指定单元读出信息,但断电后存储的信息会丢失。随机访问存储器(RAM)分为两类:

  • SRAM:静态随机访问存储器,速度快,价格高。多用来作为高速缓存存储器,即L1,L2,L3 Cache。
  • DRAM:动态随机访问存储器,速度慢,价格低。多用来作为主存和图形系统的帧缓冲器和内存条。

(2)ROM:指的是“只读存储器”,只能读出无法写入信息;信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。闪存属于 ROM,固态硬盘就是基于闪存开发而来。

(3)机械硬盘(HDD)

(4)固态硬盘(SSD)

 随机访问存储器(RAM)

RAM(Random-Access Memory)分为两类,静态的和动态的,即SRAM与DRAM。速度SRAM比DRAM快,也更贵。

1)SRAM

  • SRAM 将每个位存储在一个双稳态的存储器单元内。每个单元由六个晶体管组成。
  • 双稳态即该电路无限期地稳定保持在两个不同的电压状态。
  • 对于 SRAM,只要有电,就永远地保持它的值。即使有干扰,当干扰消除,电路也会恢复到稳定值。

2)DRAM

  • DRAM 将每个位存储为对一个电容的充电。每个 DRAM 单元由一个电容和一个访问晶体管组成。
  • DRAM 对干扰非常敏感。当电容的电压被扰乱后,就永远不会恢复了。

3)SRAM和DRAM的区别

只要有电源,SRAM是持续的。DRAM有一个缺陷,由于很多的原因会导致漏电,使得DRAM在10-100ms内失去电荷,因此内存系统需要不断的读出数据然后重写来刷新内存的每一位,只有通过不断的刷新才能保持数据。SRAM与DRAM不同,不需要刷新。SRAM的存取比DRAM快。SRAM对诸如光和电噪声之类的干扰不敏感。其代价是SRAM电池比DRAM电池使用更多的晶体管,因此密度更低,价格更贵,消耗更多电力。

4)传统的 DRAM

  • DRAM 芯片被分为 d 个超单元,每个超单元包含 w 个 DRAM 单元,w 一般为 8。当从 DRAM 中读取数据时,一次可以读取一个超单元的数据(可以近似的将超单元理解为一个字节)。
  • DRAM 中的超单元按行列组织,DRAM 中还包含一个行缓冲区。
  • 内存控制器 依次将行地址和列地址发送给 DRAM,DRAM 将对应的超单元的内容发回给内存控制器以实现读取数据。
  • 行地址和列地址共享相同的 DRAM 芯片地址引脚,整个DRAM芯片通过地址引脚(addr)和数据引脚(data)与内存控制器相连。
  • 内存控制器主要用来管理内存,可以理解为数据就是书,内存就是图书馆,内存控制器就是图书管理员,读取和写入数据都需要经过内存控制器。

5)从 DRAM 中读取超单元的步骤

  1. 内存控制器发来行地址 i,DRAM 将整个第 i 行复制到内部的行缓冲区。
  2. 内存控制器发来列地址 j,DRAM 从行缓冲区中复制出超单元 (i,j) 并发送给内存控制器。

6)内存模块

  • 许多 DRAM 芯片封装在内存模块中,插到主板的扩展槽上。
  • 常用的是双列直插内存模块 (DIMM),以 64 位为块与内存控制器交换数据。
  • 比如一个内存模块包含 8 个 DRAM 芯片,每个 DRAM 包含 8M 个超单元(字节),每个超单元存储一个字节(8bit),所以8个DRAM芯片总大小就是64MB。使用 8 个 DRAM 芯片上相同地址处的超单元来表示一个 64 位字,DRAM 0 存储第一个字节,DRAM 1 存储第 2 个字节,依此类推。
  • 要取出内存地址 A 处的一个字,内存控制器先将 A 转换为一个超单元地址 (i,j),然后内存模块将 i,j 广播到每个 DRAM。作为响应,每个 DRAM 输出它的 (i,j) 超单元的 8 位内容,合并成一个 64 位字,再返回给内存控制器。
  • 主存由多个内存模块连接到内存控制器聚合成。

7)优化,增强过的 DRAM

快页模式 DRAM (FPM DRAM):当连续访问位于同一行的超单元时,第二次以后,FPM DRAM 可以直接从行缓冲区获取数据。

扩展数据输出 DRAM (EDO DRAM):FPM DRAM 的一个增强的形式,更快一些。

同步 DRAM (Synchronous DRAM,SDARM):常规的、FPM 和 EDO 都是异步的。从效果而言,SDRAM 可以比异步存储器更快地输出它的超单元的内容。

双倍数据速率同步 DRAM( Double Data-Rate Synchronous DRAM,DDR SDRAM):对 SDRAM 的一种增强,使速度翻倍。不同的 DDR SDRAM 以提高有效带宽的很小的预留缓冲区的大小来划分:DDR(2位)、DDR2(4位)、DDR3(8位)DDR4(16位),DDR5(32位)。位越多速度越快,近乎翻倍,我们目前电脑使用的就是DDR SDRAM类型的内存条。

视频 RAM (Video RAM):用在图形系统的帧缓冲区中,其思想与 FPM DRAM 类似。VRAM 允许对内存进行并行地读和写。因此系统可以在写下一次更新的新值时(写),用帧缓冲区的像素刷屏幕(读)。

LPDDR(Low Power Double Data-Rate SDRAM):是DDR SDRAM的一种,面向低功耗内存而制定的通信标准,以低功耗和小体积著称,专门用于移动式电子产品,也就是手机内存,但是延迟会比DDR高。

8)非易失性存储器(ROM)

  • DRAM 和 SRAM 会在断电后丢失信息,因此是易失性存储器。ROM 是非易失性存储器,在断电后仍保存着信息。
  • ROM 是只读存储器,但是实际上有些 ROM 既可以读也可以写。

几种常见的非易失性存储器:

  • 可编程 ROM (PROM):只能被编程一次。
  • 可擦写可编程 ROM (EPROM):可以被擦除和重编程上千次。
  • 电子可擦除 PROM (EEPROM):类似于 EPROM,但是可以被重编程十万次。
  • 闪存:基于 EEPROM 的一种存储技术。闪存无处不在,固态硬盘就是一种基于闪存的磁盘驱动器。

存储在 ROM 设备中的程序通常称为固件,当计算机系统通电后,会运行存储在 ROM 中的固件。