CSAPP学习笔记(九)

Posted by HK on February 25, 2019

第六章

第六章 存储器层次结构

存储器系统(memory system)是一个具有不同容量、成本和访问时间的存储设备的层次结构。在简单模型中,存储器系统是一个线性的字节数组,CPU能够在一个常数访问每个存储器位置。

  • CPU寄存器保存着最常用的数据。(0周期)
  • 靠近CPU的小的,快速的高速缓存存储器(cache memory)作为一部分存储在相对慢速的主储存器(main memory,简称主存)中的数据和指令的缓冲区。(1~30周期)
  • 主存暂时存放 储存在容量较大的,慢速磁盘上的数据。(50~200周期)
  • 磁盘又作为存储在通过网络连接的其他机器的磁盘或磁带上数据的缓冲区。(几千万个周期)

存储技术

随机访问存储

随机访问存储器(Random-Access Memory,RAM)分为两类,静态的和动态的。

静态RAM(SRAM)比动态RAM(DRAM)快地多,也贵得多。
SRAM用来作为高速缓存存储器。(一般只有几兆)
DRAM用来作为主存以及图形系统的帧缓冲区(显存)。(一般有几G)
  • SRAM将每个位存储在一个双稳态(bistable)存储器单元里。每个存储单元用一个六晶体管电路来实现。有这样属性,可以无限期保持在两个不同的电压配置(configuration)或状态之一。其他任何状态都是不稳定的。由于这种双稳态特性,只要有电,它就会永远保持他的值,即使有干扰, 例如电子噪音,来扰乱电压,当消除干扰时,电路就会恢复稳定值。
  • 动态RAM DRAM将每个位存储为对一个电容充电,这个电容非常小,通常只有30*10^-15法拉。 因此,DRAM存储器可以造的十分密集。每个单元由一个电容和一个访问晶体管组成。DRAM存储器对干扰非常敏感,当电容电压被扰乱后,就永远不会恢复。很多原因会漏电,使得DRAM单元在10~100毫秒时间内失去电荷。幸运的是,计算机的时钟周期以纳秒衡量,这个保持时间也相当长。存储器系统必须周期性地读出,然后重写来刷新存储器的每一位。有些系统也使用纠错码。
  • 传统的DRAMDRAM芯片的单元被分为d个超单元(supell cell)。每一个个超单元由w个DRAM单元组成。一个d*w的DRAM总共存储了dw位信息。超单元被组织成一个r行c列的长方形阵列。这里 rc=d,每个超单元有形如(i,j)的地址,这里i表示行,而j表示列。

img

    计算机构架师称为单元(cell),电路设计者称为字(word),避免混淆,取为超单元。每个DRAM芯片被链接到某个称为存储控制器的电路,这个电路可以一次传送w位到每个DRAM芯片或一次从每个DRAM 芯片传出w位。 - **SRAM与DRAM的对比**
-只要有供电,SRAM就会保持不变。
-SRAM不需要刷新
-SRAM读取比DRAM快
-SRAM对干扰不敏感。
-代价是SRAM单元比DRAM单元使用更多的晶体管,因而密集度低,更贵,功耗更大。

img

  • 存储器模块 DRAM芯片包装在存储器模块(memory module)中,它是插到主板的扩展槽上。

    常见的包装包括168个引脚的双列直插存储器模块(Dual Inline Memory Module),它以64位为块传送数据到存储控制器和从存储控制器传出数据。还包括72个引脚的单列直插存储器模块(Single Inline Memory Module),它以32位为块传送数据。

如图展示一个存储器模块的基本思想。

img