存储器层次结构

第七周:学习任务教材第六章
了解存储设备的类型和特点;重点理解局部性原理和缓存思想在存储层次结构中的应用

重点练习题:6.2,6.3,6.4,6.8,6.9,6.10,6.11,6.12, 6.13

存储器层次结构
实际上,存储器系统是一个具有不同容量和成本和访问时间的存储设备的层次结构。

CPU寄存器保存着最常用的数据。

三种常见存储技术:

RAM/ROM/磁盘

6.1.1随机访问存储器

随机访问存储器分为两类:静态和动态。

静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵的多。

SRAM用来作为高速缓存存储器,既可以在CPU芯片上,也可以在片下。

DRAM用来作为主存以及图形系统的帧缓冲区。

典型地,一个桌面系统的SRAM不会超过几兆字节,但是DRAM却有几百或几千兆字节。

1.静态RAM

SRAM将每个位存储在一个双稳态的存储器单元里。

每个单元是用一个六晶体电路来实现的。

这个电路有这样一个属性,它可以无期限地保持在两个不同的电压配置或状态之一。其他的任何状态都是不稳定的——从不稳定状态开始,电路会迅速地转移到稳定状态中的一个。这样一个存储器单元雷士倒转的钟摆。

2.动态RAM

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

这个电容非常小,通常只有大约30毫微微法拉。

DRAM存储器可以制造得非常紧密,但是,与SRAM不同,DRAM存储器单元对干扰非常敏感。当电容的电压呗扰乱之后,就不会恢复了。

暴露在光线下会导致电容电压的改变。

只要有供电,SRAM就会保持不变,与DRAM不同,它需要不断地刷新。

SRAM的存储比DRAM快。

SRAM对诸如光和噪声这样的干扰不敏感。

代价是SRAM单元比DRAM单元使用更多的晶体管,因而密集度低,而且更贵,功耗更大。

3.传统的DRAM

DRAM芯片中的单元被分成d个超单元,每个超单元都由w个DRAM单元组成。

一个dXw的DRAM总共存储了dw位信息。

4.存储器模块

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

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

5.增强的DRAM

每种都是基于传统的DRAM单元,并进行了一些优化,改进了访问基本DRAM单元的速度。

快页模式DRAM:

传统的DRAM将超单元的一整行拷贝到它的内部缓冲区中,使用一个,然后丢弃剩余的。

扩展数据输出DRAM:

FPM DRAM的一个增强的形式,它允许单独的CAS信号在实际上靠得更紧密一点。

同步DRAM:

SDRAM能够比那些异步的存储器更快地输出超单元的内容。

双倍数据速率同步DRAM:

DDRSDRAM是对SDRAM的一种增强,它通过使用两个时钟沿作为控制信号,从而使DRAM的速度翻倍。

Rambus DRAM:

这是另一种私有技术,它的最大带宽比DDR SDRAM的更高。

视频RAM:

它用在图形系统的帧缓冲区中。

6.非易失性存储器:

如果断电,DRAM和SRAM会丢失它们的信息,从这个意义来说,它们是易失去的。另一方面,非易失性存储器即使是在关电之后,也还保存着它们的信息。

PROM只能被编程一次。PROM的每个存储器单元有一种熔丝,它只能用高电流熔断一次。

7.访问主存:

数据流通过称为总线的共享电子电路在处理器和DRAM主存之间来来回回。每次CPU和主存之间来来回回。

每次CPU和主存之间的数据传送都是通过一系列步骤来完成的,这些步骤称为总线事物。写事务从CPU传送数据到主存。
ROM有PROM,EPROM,E2PROM,FLASH。

6.1.2磁盘存储

磁盘构造:磁盘由盘片构成,表面覆盖着磁性记录材料,*有一个可以旋转的主轴 ,旋转速率大约为5400-15000每分钟。磁盘的每个表面是一组称为磁道的同心圆组成,每个磁道被划分为一组扇区,扇区之间由一些间隙隔开,间隙存储用来标识扇区的格式化位。

磁盘容量决定因素:

记录密度(位/英寸):磁道一英寸的段中可以放入的位数。

磁道密度(道/英寸):从盘片中心出发半径上一英寸的段内可以有的磁道数

面密度(位/平方英寸):记录密度与磁道密度的乘积。
访问时间:寻道、旋转、传送

逻辑磁盘块:内存可以看成字节数组、磁盘可以看成块数组

 存储器层次结构

现代大容量磁盘使用一种称为多区记录的技术,柱面的集合被分割称为不相交的子集合,称为记录区,每个区包含一组连续的柱面。

磁盘操作:

磁盘用读/写头来读写存储在磁性表面的位,而读写头连接到一个传动臂 一端,通过移动转动臂将读写头定位在磁道上的机械运动称为寻道。磁盘以扇区大小的块来读写数据,对扇区的访问时间有三个主要的组成部分:

寻道时间:

转动臂将读/写头定位到包含目标扇区的磁道上所需时间。

旋转时间:

驱动器等待目标扇区的第一个位旋转到读/写头下的时间。最大为

 存储器层次结构

平均旋转时间是Tmax的一半。

    传送时间:读写并传送该扇区内容的时间。平均传送时间为:

         存储器层次结构

逻辑磁盘块:

现代磁盘将盘面的构造视为一个B个扇区大小的逻辑块序列,磁盘控制器维护着逻辑块号和实际磁盘扇区之间的映射关系。逻辑块号可识别为一个盘面、磁道、扇区三元组,唯一的标识了相对应的物理扇区。内存可以看成字节数组、磁盘可以看成块数组。

连接到I/O设备:所有的I/O设备都是通过I/O总线连接到CPU和主内存。有三种不同类型:

通用串行总线:一个广泛的使用标准,用于连接各种外围I/O设备。

图形卡(或适配器):包含硬件和软件逻辑,代表CPU在显示器上画像素。

主机总线适配器: 将一个或者多个磁盘连接到I/O总线,使用一个特别的主机总线接口定义的通信协议。

访问磁盘:

CPU使用一种称为存储器映射I/O的技术向I/O设备发出命令,地址空间中为I/O设备通信保留的地址称为I/O端口。
总线:
     数据总线、控制总线、地址总线
 
6.2 局限性
    一个编写良好的计算机程序通常具有良好的局部性。他们倾向于引用邻近于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。这种倾向称为局部性原理。

局部性有两种不同形式:时间局部性和空间局部性。

有良好局部性的程序比局部性差的程序运行的更快。

6.2.2 取指令的局部性

存储器层次结构


6.3 存储器层次结构
    高速缓存是一个小而快速的存储设备,作为存储在更大、也更慢的设备中的数据对象的缓冲区域。使用高速缓存的过程称为缓存。

存储器层次结构的中心思想是:每一层都缓存来自较低一层的数据对象。

 存储器层次结构

第k+1层的存储器被划分为连续的数据对象片,称为块。每个块都有唯一的地址和名字。类似第k层也被划分为较少的块的集合,块的大小与k+1层是一样的,第k层的缓存包含第k+1层块的一个子集的拷贝。

数据总是以块为传送单元在两层之间来回拷贝。不同层次对之间可以有不同的块大小。


6.4 高速缓存存储器

高速缓存结构(S,E,B,m):高速缓存组、高速缓存行、块
早期的计算机系统的存储器层次结构:CPU寄存器、DRAM主存储器和磁盘存储

CPU与主存之间插入

- L1高速缓存:位于CPU寄存器文件和主存之间,访问速度2-4个时钟周期

- L2高速缓存:位于L1高速缓存和主存之间,访问速度10个时钟周期

- L3高速缓存:位于L2高速缓存和主存之间,访问速度30或40个时钟周期

一般而言,高速缓存的结构可以用元组(S,E,B,m)来描述。

高速缓存的大小(或容量)C指的是所有块的大小的和。标记位和有效位不包括在内。因此,C=S*E*B.

6.4.2 直接映射高速缓存

高速缓存确认一个请求是否命中,然后抽取出被请求的字的过程,分为三步:

                                                                                         组选择、行匹配、字抽取

根据E(每个组的高速缓存行数)高速缓存被分为不同的类。每个组只有一行的高速缓存被称为直接映射高速缓存。

1.直接映射高速缓存中的组选择

2.直接映射高速缓存中的行匹配和字选择

3.直接映射高速缓存中不命中时的行替换

 如果缓存不命中,那么需要从存储器层次结构中的下一层取出被请求的块,然后将新的块存储在组索引位指示的组中的一个高速缓行中。

替换规则:用新取出的行替换当前的行。

6.4.4 全相联高速缓存

一个全相联高速缓存是由一个包含所有高速缓行的组(E=C/B)组成的。

1.全相联高速缓存中的组选择

2.全相联高速缓存中的行匹配和字选择