Presentation is loading. Please wait.

Presentation is loading. Please wait.

第6章 存储系统 6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与 层次结构存储系统 6. 3 半导体存储器

Similar presentations


Presentation on theme: "第6章 存储系统 6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与 层次结构存储系统 6. 3 半导体存储器"— Presentation transcript:

1 第6章 存储系统 6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与 层次结构存储系统 6. 3 半导体存储器
第6章 存储系统 6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与 层次结构存储系统 6. 3 半导体存储器 6. 4 主存储器 高速缓冲存储器Cache 虚拟存储器 2017/2/25

2 第6章 存储系统 6. 1 存储器的分类与性能评价 6. 1. 1 存储器的分类 按处理器是否直接访问,分为主存和辅存
第6章 存储系统 6. 1 存储器的分类与性能评价 存储器的分类 按处理器是否直接访问,分为主存和辅存 按掉电后信息是否丢失,分为易失性存储器和非易失性存储器。 按支持的访问类型来分,分为可读/写存储器和只读存储器ROM。 按访问方式的不同,分为按地址访问的存储器、按内容访问的存储器CAM和指定位置访问的存储器。 也叫相联存储器 例如堆栈 2017/2/25

3 第6章 存储系统 6. 1 存储器的分类与性能评价 6. 1. 1 存储器的分类
第6章 存储系统 6. 1 存储器的分类与性能评价 存储器的分类 按实现介质来分,存储器有半导体存储器、磁表面存储器、光盘存储器和铁电存储器等。 按访问周期是否均等,存储器可分为随机访问存储器RAM和顺序访问存储器。 所有的半导体存储器都是随机访问存储器 所有的磁表面存储器和光盘存储器都是非易失性存储器 2017/2/25

4 第6章 存储系统 6. 1 存储器的分类与性能评价 6. 1. 2 存储器的性能评价 容量 速度 成本 6. 1. 1 存储器的分类
第6章 存储系统 6. 1 存储器的分类与性能评价 存储器的分类 存储器的性能评价 常用的单位有兆字节MB或千字节KB 容量 速度 成本 一个存储系统通常由若干存储芯片组成。存储芯片的规格表示为: 存储单元数目存储字长。 例如,1K1表示一个具有1024个存储单元的存储字长为1的存储芯片,2 K4表示一个具有2048个存储单元的存储字长为4的存储芯片。 2017/2/25

5 第6章 存储系统 6. 1 存储器的分类与性能评价 6. 1. 2 存储器的性能评价 容量 速度 成本
第6章 存储系统 6. 1 存储器的分类与性能评价 存储器的性能评价 容量 速度 成本 访问时间Ta、访问周期Tc和存储器带宽 Ta是指从读/写存储器开始到存储器发出完成信号的时间间隔。Tc是指从一个读/写/存储器操作开始到下一个存储器操作能够开始的最小时间间隔。Tc>Ta。 存储器带宽是每秒传送的二进制位数。例如,一个存储器芯片的Tc=100ns,每个访问周期可以读/写16位,则该存储器的带宽=16b/100ns=160Mb/s。提高存储器带宽是计算机组成设计的重点 。 2017/2/25

6 第6章 存储系统 6. 1 存储器的分类与性能评价 6. 1. 2 存储器的性能评价 容量 速度 成本
第6章 存储系统 6. 1 存储器的分类与性能评价 存储器的性能评价 容量 速度 成本 也称价格,一般有两个指标:存储系统总的拥有成本和每存储位的成本。 前者指构成整个计算机存储系统的所有存储器件及相关设备的购买总成本; 后者等于存储芯片的容量(位)除以存储芯片的价格。 2017/2/25

7 第6章 存储系统 6. 2 存储器访问的局部性原理与 层次结构存储系统 6. 1 存储器的分类与性能评价
第6章 存储系统 6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与 层次结构存储系统 存储器访问的局部性原理 经过对处理器访问主存储器情况的统计发现,无论是取指令还是存取数据,处理器访问的存储单元趋向于聚集在一个相对较小的连续存储单元区域内。这种现象称为存储器访问的局部性原理。 2017/2/25

8 第6章 存储系统 6. 2 存储器访问的局部性原理与 层次结构存储系统 6. 2. 1 存储器访问的局部性原理
第6章 存储系统 6. 2 存储器访问的局部性原理与 层次结构存储系统 存储器访问的局部性原理 访问局部性表现为时间局部性和空间局部性。 时间局部性是指将要访问的信息就是现在正在访问的信息。空间局部性是指将要用到的信息就在正使用的信息旁边。 一个程序在某个时间段内访问的主存储器空间范围称为该程序的工作集。对大多数程序而言,工作集的变化十分缓慢,有时甚至是不变的。 2017/2/25

9 第6章 存储系统 6. 2 存储器访问的局部性原理与 层次结构存储系统 6. 2. 2 层次结构存储系统
第6章 存储系统 6. 2 存储器访问的局部性原理与 层次结构存储系统 存储器访问的局部性原理 层次结构存储系统 用户对存储系统的要求一般是相同的:容量大、速度快、价格低。 在现有存储器工艺技术水平下,上述要求无法满足。容量大的存储器在速度上通常要比容量小的存储器慢。速度快的存储器在价格上通常要比速度慢的存储器贵。 2017/2/25

10 第6章 存储系统 层次结构存储系统 这需要利用存储器访问的局部性原理,选择不同容量、速度和价格的存储器来构造一个层次结构的存储系统。即把最近频繁访问的一小部分信息存放在速度快、容量小的存储器中,而信息的全部存放在速度慢、容量大的存储器。 低一级存储器 高一级 存储器 读a 写a 块X 块 Y 处理器 a 2017/2/25

11 第6章 存储系统 层次结构存储系统 计算机存储系统的层次结构中,最重要的两个层次是采用高速缓冲存储器的“Cache主存”层次,以及基于虚拟存储器的“主存辅存”层次。 前者能提高存储系统的等效访问速度,即弥补主存储器在速度上的不足;后者扩大了存储系统的容量,即弥补主存储器在容量上的不足。 若要访问的信息在高一级存储器中找到,则称为命中,否则称为不命中或失效。命中率是指对层次结构存储系统中的某一级存储器来说,要访问的数据正在这一级中的比率。 2017/2/25

12 第6章 存储系统 层次结构存储系统 设第1级和第2级存储器分别用M1和M2表示。设执行一组有代表性的程序后,测得对M1和M2访问的次数分别为R1和R2,则M1的命中率H为 这里假设采用的存储管理策略为处理器对M1和M2的访问是同时启动的。若在M1中取到了目标数据则访存结束;否则直接从M2读取,而不是等待目标数据从M2送到M1后再从M1中读取。 2017/2/25

13 第6章 存储系统 6. 2. 2 层次结构存储系统 整个存储层次的平均访存周期Tc与M1和M2的访存周期Tc1和Tc2的关系为
第6章 存储系统 层次结构存储系统 整个存储层次的平均访存周期Tc与M1和M2的访存周期Tc1和Tc2的关系为 层次结构存储系统的平均字节价格C为 C = (C1  S1 + C2  S2 ) / (S1 + S2) 式中,C1和S1分别为M1的单位字节价格和容量,C2和S2分别为M2的单位字节价格和容量。 2017/2/25

14 第6章 存储系统 6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与层次结构存储系统 6. 3 半导体存储器 根据存储的信息是否可以读/写,半导体存储器分为随机访问半导体存储器(RAM)和只读半导体存储器(ROM)。其中RAM是可读、可写的;而ROM中的内容是事先写入的,不会因读取而丢失,在工作时只能对其进行读操作,不能写入新的内容。 当然,作为半导体存储器,它们都是随机访问型的,即访问任何一个单元的时间是相等的,与单元的地址大小无关。 2017/2/25

15 第6章 存储系统 6. 3 半导体存储器 6. 3. 1 随机访问半导体存储器RAM 根据存储原理的不同,RAM分为
第6章 存储系统 6. 3 半导体存储器 随机访问半导体存储器RAM 根据存储原理的不同,RAM分为 静态RAM ( Statically RAM,SRAM ) 动态RAM ( Dynamical RAM,DRAM ) 前者利用电流的开关特性来表示信息0/1, 后者靠栅极电容上的电荷来表示信息0/1。 2017/2/25

16 第6章 存储系统 6. 3. 1 随机访问半导体存储器RAM 1. SRAM (1)SRAM的分类与工作原理
第6章 存储系统 随机访问半导体存储器RAM 1. SRAM (1)SRAM的分类与工作原理 SRAM采用的开关元件,有双极型和MOS型两种。 双极型SRAM电路驱动能力强,开关速度快,存取周期短,速度快,但是成本高,功耗大,主要用于高性能计算机,在微型计算机中应用较少。 MOS管的逻辑符号如右图所示。 当控制端W为高电位时,MOS管导通,即R点与VCC同电位。 2017/2/25

17 第6章 存储系统 6. 3. 1 随机访问半导体存储器RAM 1. SRAM
第6章 存储系统 随机访问半导体存储器RAM 1. SRAM 常用6个MOS管来构成一个存储基元(即存储一位二进制数的电路单元),如下图所示。图中T1,T2组成双稳态触发器;T3,T4作为阻抗;T5,T6作为存储基元的选中开关 。 2017/2/25

18 第6章 存储系统 6. 3. 1 随机访问半导体存储器RAM 1. SRAM (2)SRAM的组成与地址译码
第6章 存储系统 随机访问半导体存储器RAM 1. SRAM (2)SRAM的组成与地址译码 在半导体存储器内部,若干存储基元组成存储一个信息字的存储单元,存储单元按行、分列排列起来构成一个存储单元阵列。再配上读/写控制电路、 地址译码电路和控制电路,就构成了一个存储芯片。 对存储器的访问是针对一个特定的存储单元进行的,而这个存储单元的选择、确定是通过对输入的地址进行译码来实现的。半导体存储器的地址译码有两种方式:单译码和双译码。 2017/2/25

19 第6章 存储系统 6. 3. 1 随机访问半导体存储器RAM 1. SRAM (2)SRAM的组成与地址译码
第6章 存储系统 随机访问半导体存储器RAM 1. SRAM (2)SRAM的组成与地址译码 单译码只用一个译码电路来将地址信号变换成选中信号。这种选中信号称为字选择信号,用它来选中一个存储单元。下图为采用单译码方式的164位存储芯片的组成结构 。 2017/2/25

20 第6章 存储系统 6. 3. 1 随机访问半导体存储器RAM 1. SRAM (2)SRAM的组成与地址译码
第6章 存储系统 随机访问半导体存储器RAM 1. SRAM (2)SRAM的组成与地址译码 双译码用两个译码电路(称为X译码器和Y译码器),分别产生行选择信号和列选择信号,行选择信号和列选择信号同时有效的存储单元为被选中的存储单元。 双译码方式的2561位 存储芯片的组成结构 2017/2/25

21 第6章 存储系统 6. 3. 1 随机访问半导体存储器RAM 1. SRAM (3)SRAM的外特性与读写时序
第6章 存储系统 随机访问半导体存储器RAM 1. SRAM (3)SRAM的外特性与读写时序 SRAM存储芯片的引脚主要有: 地址信号引脚A0,A1,A2,… 数据信号引脚D0,D1,D2,… 芯片选择信号引脚CS或CE。 写命令信号引脚WE。 数据输出允许信号引脚OE。 电源引脚和接地引脚VCC和GND。 2017/2/25

22 第6章 存储系统 6. 3. 1 随机访问半导体存储器RAM 1. SRAM
第6章 存储系统 随机访问半导体存储器RAM 1. SRAM 典型的SRAM有2114(1K4位),6116(2K×8位),6264 (8K×8位),62256(32K×8位)等。 2114 SRAM芯片的逻辑表示 引脚说明 2017/2/25

23 第6章 存储系统 2114 SRAM芯片的读周期时序如下:
第6章 存储系统 2114 SRAM芯片的读周期时序如下: 为了保证数据能够可靠地按时输出,片选信号CS必须在数据有效前tCO时间有效,即地址有效后,必须在tA–tCO 时刻有效,否则数据就不能在tA时刻稳定地出现在数据线上 。 2017/2/25

24 第6章 存储系统 2114 SRAM芯片的写周期时序如下:
第6章 存储系统 2114 SRAM芯片的写周期时序如下: 写周期tWC是对存储芯片进行连续两次写操作的最小时间间隔,包括滞后时间tAW、写入时间tW和维持时间tWR 。 2017/2/25

25 第6章 存储系统 6. 3. 1 随机访问半导体存储器RAM 2. DRAM 1. SRAM (1)DRAM的分类与工作原理
第6章 存储系统 随机访问半导体存储器RAM 1. SRAM 2. DRAM (1)DRAM的分类与工作原理 四管动态存储电路 单管动态存储电路:最常用 由一个MOS管和一个电容组成。 写操作:给字线加高电位,选中该存储基元。若写入1,则给位线加高电位,电容C充电;否则给位线加低电位,电容C放电。 读操作:选中该存储基元,然后检测位线上的输出信号。若为高电位,则表示读出1;否则读出0。 2017/2/25

26 第6章 存储系统 2. DRAM (2)DRAM芯片的组成与读写时序
第6章 存储系统 2. DRAM (2)DRAM芯片的组成与读写时序 因为集成度提高,片内存储单元的数量增加,需要的地址线也相应增加,为了控制成本,封装芯片的尺寸没有增大,芯片引脚数目也就没有增加,所以DRAM芯片地址引脚的数目只是地址宽度的一半。 为此,访存地址被分为行地址和列地址依次发送。相应地,在芯片内部就要设置行地址锁存器和列地址锁存器。为了区分地址总线上的行地址和列地址,特地增加两个控制线: RAS和CAS ,分别控制行地址和列地址的接收。 另外,DRAM不再设置CS引脚,其功能用RAS代替。 2017/2/25

27 第6章 存储系统 2. DRAM (2)DRAM芯片的组成与读写时序 DRAM芯片的引脚主要有: 地址信号引脚A0,A1,A2,…
第6章 存储系统 2. DRAM (2)DRAM芯片的组成与读写时序 DRAM芯片的引脚主要有: 地址信号引脚A0,A1,A2,… 数据信号引脚D0,D1,D2,… 地址选择信号引脚RAS和CAS。 写命令信号引脚WE。 数据输出允许信号引脚OE。 电源引脚和接地引脚VCC和GND。 2017/2/25

28 第6章 存储系统 2. DRAM 2116 DRAM芯片的组成 2017/2/25

29 第6章 存储系统 2. DRAM 2116 DRAM的读时序 先向地址引脚提供目标单元行地址,然后发出行地址选择信号RAS= 0,将行地址打入行地址锁存器中。 然后向地址引脚提供列地址,发出列地址选择信号CAS= 0,将列地址打入到列地址锁存器中。 2017/2/25

30 第6章 存储系统 2. DRAM 2116 DRAM的写时序 CAS信号必须在列地址和输入数据都准备好之后才能发出。此后输入数据须维持一段时间,以确保信息可靠地写入。 2017/2/25

31 第6章 存储系统 2. DRAM (3)DRAM芯片的刷新
第6章 存储系统 2. DRAM (3)DRAM芯片的刷新 在DRAM芯片工作过程中,如果某些存储单元未被选中,电容被隔离,由于漏电流的存在,电容上的电荷会缓慢丢失。因此,每隔一段时间给电容补充电荷,这个过程称为刷新。典型的刷新间隔为 2ms。 刷新是通过读操作实现的。只不过这个“读”并不输出数据,是“假读”。 刷新是逐行进行的,行地址由芯片内部的“刷新计数器”提供。刷新一行所花时间称为刷新周期。 2017/2/25 31

32 在一个刷新间隔(2ms)内,集中一段时间,对全部存储单元进行逐行刷新。
“刷新”方式有: 集中式刷新、分散式刷新和异步式刷新 ① 集中式刷新 在一个刷新间隔(2ms)内,集中一段时间,对全部存储单元进行逐行刷新。 在此期间正常的读/写操作将被停止,所以这段时间称为死时间。 2017/2/25

33 例如,对读/写周期为0.5s的128128的存储矩阵进行刷新,需要128个读周期。由于在刷新间隔2ms内共有4000个读/写周期,所以规定前3872个周期用于读/写或维持,后128个周期(64s)用于刷新。 2017/2/25 33

34 为了消除死时间,人们又提出: 分散式刷新。
对每行存储单元的刷新分散到每个读/写周期中进行。具体来说,就是延长原先的读/写周期,将新的读/写周期分成前/后两段,前半段用来读/写或维持,后半段用来刷新。假如存储单元的读/写周期为0.5s,则存储器的读/写周期为1.0s。 2017/2/25

35 虽然不存在死时间,但分散式刷新导致存取周期延长,系统的性能下降
异步式刷新是将前两种方法结合起来,在一个刷新间隔内,均匀地进行逐行刷新。 例如在2ms内,均匀地把128行刷新一遍,即每隔2ms/128=15.5s刷新一行,如下图所示。这样,原来大块的死时间被分散开,达到了缩短死时间的效果。 2017/2/25

36 第6章 存储系统 2. DRAM (3)DRAM芯片的刷新 如果进一步将刷新安排在指令译码阶段,还可以掩盖死时间。
第6章 存储系统 2. DRAM (3)DRAM芯片的刷新 如果进一步将刷新安排在指令译码阶段,还可以掩盖死时间。 刷新操作的优先级被安排成高于读/写操作。 2017/2/25

37 第6章 存储系统 6. 3 半导体存储器 6. 3. 2 只读半导体存储器ROM 6. 3. 1 随机访问半导体存储器RAM
第6章 存储系统 6. 3 半导体存储器 随机访问半导体存储器RAM 只读半导体存储器ROM 向ROM写入原始信息的过程称为“编程”。 依据“编程”方法的不同,ROM可以分为以下4类: (1)掩模型ROM,MROM (2)可编程ROM,PROM (3)可擦除的可编程ROM,EPROM (4)可用电擦除的可编程ROM,EEPROM 2017/2/25

38 第6章 存储系统 6. 3. 2 只读半导体存储器ROM (1)掩模型ROM,MROM
第6章 存储系统 只读半导体存储器ROM (1)掩模型ROM,MROM 以晶体管(如MOS管)的“有/无”来代表“0/1”,即每个存储基元的信息是由制造集成电路的掩模来决定的,制造完成后无法改变。 MROM的优点是可靠性高、位密度高、访问周期短,其不足是设计制造成本高。 但若生产数量很大,分摊到每一个芯片上的成本就很小了,所以它较适用于市场占有率高的成熟产品。 2017/2/25

39 第6章 存储系统 6. 3. 2 只读半导体存储器ROM (2)可编程ROM,PROM
第6章 存储系统 只读半导体存储器ROM (2)可编程ROM,PROM 相当于“一张白纸”,用户可以通过所谓的“编程”操作向其中写入信息。 依据编程原理的不同,PROM可分为如下两种: (1)熔丝烧断型。可编程的连接点之间用熔丝相连,如下图所示。所谓“编程”就是选择某些熔丝将其烧断。 2017/2/25

40 第6章 存储系统 (2)可编程ROM,PROM 依据编程原理的不同,PROM可分为如下两种: (1)熔丝烧断型 (2)PN结击穿型
第6章 存储系统 (2)可编程ROM,PROM 依据编程原理的不同,PROM可分为如下两种: (1)熔丝烧断型 (2)PN结击穿型 可编程的连接点之间是PN结,未编程之前PN结是不导通的。所谓“编程”就是选择某些PN结将其击穿。 烧断熔丝或击穿PN结,都是不可逆的,所以PROM只允许一次编程。 如果写入的信息有错或需要更改原有信息,只能将原有的PROM作废,重新选择一片PROM进行编程。 目前PROM已经淘汰。 2017/2/25

41 第6章 存储系统 6. 3. 2 只读半导体存储器ROM (3)可擦除的可编程ROM,EPROM (1)掩模型ROM,MROM
第6章 存储系统 只读半导体存储器ROM (1)掩模型ROM,MROM (2)可编程ROM,PROM (3)可擦除的可编程ROM,EPROM EPROM用“浮栅雪崩注入型MOS管”来表示信息。 其原理是:浮栅上不带电荷,源极和漏极之间不导通,这种状态表示1;当源极和漏极之间加上高电压,产生雪崩击穿,电荷就积累在浮栅上,这种状态表示0。 由于浮栅周围是二氧化硅,故积累的电荷就不易失掉。 2017/2/25

42 第6章 存储系统 (3)可擦除的可编程ROM,EPROM
第6章 存储系统 (3)可擦除的可编程ROM,EPROM EPROM芯片上有一个石英窗口,将窗口置于紫外线灯下,照射10~25分钟,浮栅上的电荷将全部释放,恢复到原来不带电荷的“1”状态。 这样,EPROM就被擦除了,可以重新编程。 EPROM芯片在使用过程中,应用不透光的胶纸贴盖住石英窗口,避免阳光或灯光直接照射,以免引起芯片功能损伤。 EPROM的缺点是,擦除时需要将芯片从系统中拔出,用特殊设备擦除,且时间较长;不能局部擦除或重写指定单元信息。 2017/2/25

43 第6章 存储系统 6. 3. 2 只读半导体存储器ROM (4)可用电擦除的可编程ROM,EEPROM (1)掩模型ROM,MROM
第6章 存储系统 只读半导体存储器ROM (1)掩模型ROM,MROM (2)可编程ROM,PROM (3)可擦除的可编程ROM,EPROM (4)可用电擦除的可编程ROM,EEPROM 可以联机擦除,还可以有选择地擦除或重写指定单元的信息。不过,EEPROM的单元结构较为复杂,成本较高。 2017/2/25

44 第6章 存储系统 (4)可用电擦除的可编程ROM,EEPROM
第6章 存储系统 (4)可用电擦除的可编程ROM,EEPROM 近年来,出现一种被称为闪存(Flash Memory)的EEPROM。闪存在结构上与传统的EEPROM类似,只是它的栅极氧化层较薄,擦除和编程(重写)速度较快。 基于闪存的固态盘,以其体积小、携带方便、容量大、价格低、速度快,已经替代原来的软盘。 因其通过USB接口与主机相连,故称为“U盘”。 2017/2/25 44

45 第6章 存储系统 (4)可用电擦除的可编程ROM,EEPROM 虽然EEPROM可以联机擦除,即可读、可写,但不可当作RAM使用。
第6章 存储系统 (4)可用电擦除的可编程ROM,EEPROM 虽然EEPROM可以联机擦除,即可读、可写,但不可当作RAM使用。 一则它允许编程的次数是有限的,如十万次; 二则擦除和编程需要较长的时间成本较高。 2017/2/25

46 第6章 存储系统 ROM的外特性与读/写周期 ROM存储芯片的引脚主要有: 地址信号引脚A0,A1,A2,…
第6章 存储系统 ROM的外特性与读/写周期 ROM存储芯片的引脚主要有: 地址信号引脚A0,A1,A2,… 数据信号引脚D0,D1,D2,… 芯片选择信号引脚 CS 或 CE。 数据输出允许信号引脚 OE。 电源引脚和接地引脚工作电源VCC、脱机编程电源VPP和GND 2017/2/25

47 第6章 存储系统 典型的EPROM有2716(2K8位)、2732(4K8位)、2764(8K8位)、27128(16K8位)等。
第6章 存储系统 典型的EPROM有2716(2K8位)、2732(4K8位)、2764(8K8位)、27128(16K8位)等。 2716 的逻辑表示和引脚说明 2017/2/25

48 第6章 存储系统 ROM的外特性与读/写周期 EPROM的读周期时序如下。为了保证数据能够可靠地输出,片选信号CE必须在数据有效前tCO时间有效。 EPROM在使用时,OE引脚接地。 2017/2/25

49 第6章 存储系统 【例6-1】下列关于闪存(Flash Memory)的叙述中, 错误的是 。 A.信息可读可写,并且读、写速度一样快 A
第6章 存储系统 【例6-1】下列关于闪存(Flash Memory)的叙述中, 错误的是 。 A.信息可读可写,并且读、写速度一样快 B.存储元由MOS管组成,是一种半导体存储器 C.掉电后信息不丢失,是一种非易失性存储器 D.采用随机访问方式,可替代计算机外部存储器 A 2017/2/25 49

50 第6章 存储系统 【例6-2】下列存储器中,不采用随机存储方式的是 。 B A.EPROM B.CDROM C.DRAM D.SRAM A
第6章 存储系统 【例6-2】下列存储器中,不采用随机存储方式的是 。 A.EPROM  B.CDROM   C.DRAM   D.SRAM B A 【例6-3】下列叙述中,正确的是 。 I、 RAM是易失性存储器,ROM是非易失性存储器 II、 RAM和ROM都是采用随机存取的方式进行信息访问 III、RAM和ROM都可用作Cache IV、RAM和ROM都需要进行刷新 A.仅I和II     C. 仅I、II和IV   B. 仅II和III D.仅II、III和IV 2017/2/25 50

51 第6章 存储系统 6. 4 主存储器 6. 4. 1 主存储器组成 主存储器由RAM和ROM芯片组成。
第6章 存储系统 6. 4 主存储器 主存储器组成 主存储器由RAM和ROM芯片组成。 系统程序区存放的是不需要改动也不允许改动的系统程序,所以这部分存储空间用ROM来实现; 系统程序工作区是系统程序在工作时写入并读出临时数据的,所以这部分存储空间用RAM来实现。 用户程序区存放用户的程序与数据,这些信息可读、可改写,所以这部分存储空间也用RAM来实现。 2017/2/25

52 第6章 存储系统 6. 4. 1 主存储器组成 设计一个主存储器,首先要考虑它的容量。目前的微处理器都是按字节编址的,所以
第6章 存储系统 主存储器组成 设计一个主存储器,首先要考虑它的容量。目前的微处理器都是按字节编址的,所以 主存储器的容量=存储单元数字节 一个处理器对应的主存储器的最大存储单元数是由其地址总线的线数决定的。设处理器的地址总线的线数为N,则其对应的主存储器最大存储单元个数为2N。实际设计时,为了降低成本,为计算机配备的主存储器容量往往小于2N字节。 由于单片存储芯片提供的存储容量与字长一般不能直接满足实际需求,所以经常是将若干存储芯片连接在一起组成特定机器的存储系统,这就叫存储器扩展。 2017/2/25

53 第6章 存储系统 按照扩展的目的不同,存储器扩展分为位扩展、字扩展和字位同时扩展。 (1)位扩展: 扩大存储字长
第6章 存储系统 按照扩展的目的不同,存储器扩展分为位扩展、字扩展和字位同时扩展。 (1)位扩展: 扩大存储字长 两片1K4 芯片组成1K8存储器 2017/2/25

54 第6章 存储系统 按照扩展的目的不同,存储器扩展分为位扩展、字扩展和字位同时扩展。 (1)位扩展: 扩大存储字长 (2)字扩展:
第6章 存储系统 按照扩展的目的不同,存储器扩展分为位扩展、字扩展和字位同时扩展。 (1)位扩展: 扩大存储字长 (2)字扩展: 扩大存储单元的数量 两片1K8 芯片组成2K8存储器 2017/2/25

55 第6章 存储系统 按照扩展的目的不同,存储器扩展分为位扩展、字扩展和字位同时扩展。 (1)位扩展: 扩大存储字长 (2)字扩展:
第6章 存储系统 按照扩展的目的不同,存储器扩展分为位扩展、字扩展和字位同时扩展。 (1)位扩展: 扩大存储字长 (2)字扩展: 扩大存储单元的数量 (3)字位同时扩展 既要扩大存储字长,又要扩大存储字的数量 例如为了构造一个2K8的存储系统,可将4片1K4的存储芯片先两两并连再依次串连。 2017/2/25

56 第6章 存储系统 2. 主存储器与处理器的连接 (1)数据线的连接。 当处理器的数据线数大于存储芯片的数据线数时,需要进行存储器位扩展。
第6章 存储系统 2. 主存储器与处理器的连接 (1)数据线的连接。 当处理器的数据线数大于存储芯片的数据线数时,需要进行存储器位扩展。 (2)地址线的连接。 尽可能选择与处理器的地址线数相等的存储芯片。 当进行字扩展时,处理器的部分地址线(如地址线的低位)直接连到存储芯片的地址线上,剩余的地址线(如地址线的高位)连接到译码器的输入端,再把译码输出信号与存储芯片的片选端相连。 例如,3-8译码器根据三个输入端A,B,C的8种不同组合状态选择8个输出端中的一个输出有效信号。 2017/2/25

57 第6章 存储系统 2. 主存储器与处理器的连接 (3)控制线的连接
第6章 存储系统 2. 主存储器与处理器的连接 (3)控制线的连接 读/写控制线WR与存储芯片读/写控制端(WE)相连。访存控制IO/MREQ与3-8译码器使能端G2A和G2B连接,译码器的另外一个使能端G1可以直接与电源Vcc连接。 2017/2/25

58 第6章 存储系统 【例6-4】某计算机主存容量为64KB,其中ROM区为4KB,其余为RAM区,按字节编址。现要用2K×8位的ROM芯片和4K×4位的RAM芯片来设计该存储器,则需要上述规格的ROM芯片数和RAM芯片数分别是 。 A.1、 B.2、15 C.1、 D.2、30 D 2017/2/25 58

59 第6章 存储系统 【例6-5】用若干个2K×4位芯片组成一个8K×8位存储器,则地址0B1FH所在芯片的最小地址是 。
第6章 存储系统 【例6-5】用若干个2K×4位芯片组成一个8K×8位存储器,则地址0B1FH所在芯片的最小地址是 。 A:0000H     B:0600H     C: 0700H     D:0800H D 【例6-6】某计算机存储器按字节编址,主存地址空间大小为64MB,现用4M×8的RAM芯片组成32 MB 的主存储器,则存储器地址寄存器MAR的位数至少是 。 A.22位 B.23位  C.25位  D.26位。 D 2017/2/25 59

60 第6章 存储系统 【例6-7】 设某处理器有18根地址线,8根数据线,并用IO/M作为访存控制信号,RD/ WR为读/写信号。现有如下各种芯片及各种门电路(自定)。要求主存地址空间分配为0~32767为系统程序区,32768~98303为用户程序区,最大16K地址空间为系统程序工作区。请说明选用存储芯片的类型、数量,并写出每片存储芯片的二进制地址范围。画出处理器与存储芯片的连接图 。 2017/2/25

61 第6章 存储系统 解:(1)已知0~32767为系统程序区,这是32K的只读地址空间,所以选用32K8的ROM芯片一片。
第6章 存储系统 解:(1)已知0~32767为系统程序区,这是32K的只读地址空间,所以选用32K8的ROM芯片一片。 32768~98303为用户程序区,这是64K的随机存取地址空间,选用32K8的RAM芯片两片。 最大16K地址空间为系统程序工作区,这是16K的随机存取空间,选用16K8的RAM芯片一片。 一片32K8 ROM芯片的寻址范围是: B~ B 两片32K8 RAM芯片的寻址范围是: B~ B 一片16K8 RAM芯片的寻址范围是: B~ B 2017/2/25

62 第6章 存储系统 解:(2)处理器与存储芯片的连接如下: 2017/2/25

63 第6章 存储系统 6. 4 主存储器 6. 4. 1 主存储器组成 6. 4. 2 提高主存储器访问带宽的方法
第6章 存储系统 6. 4 主存储器 主存储器组成 提高主存储器访问带宽的方法 虽然人们在不断地研制更高速度的存储器,但是仍然赶不上高性能计算机对主存储器访问带宽的需求。所以需要立足于现有的存储器,通过引入并行处理技术来提高主存储器访问带宽。 常用的并行存储器有多端口RAM(如双口RAM)和多模块存储器 。 2017/2/25

64 第6章 存储系统 6. 4. 2 提高主存储器访问带宽的方法 1. 双口RAM
第6章 存储系统 提高主存储器访问带宽的方法 1. 双口RAM 这是具有两套独立的读/写控制逻辑的RAM,具有两个独立的端口:左端口( L )和右端口( R )。 分别具有各自的地址总线、数据总线和控制总线,可对存储器中任何地址单元中的数据进行独立的存取操作。 当两个端口的访存地址不同时,这两个访问可以同时进行,否则发生访问冲突。这时就由片内仲裁逻辑决定哪个端口先进行访问。 2017/2/25

65 第6章 存储系统 提高主存储器访问带宽的方法 双端口RAM常作为流水线处理器的计算机主存储器。在多机系统中,常采用双端口RAM甚至多端口RAM,实现多处理器对主存储器的共享。 2017/2/25 65

66 第6章 存储系统 6. 4. 2 提高主存储器访问带宽的方法 2. 多模块存储器
第6章 存储系统 提高主存储器访问带宽的方法 2. 多模块存储器 根据组成技术不同,多模块存储器又分为单体多字存储器和多体并行存储器。 由于程序访问存在着局部性,所以对相邻存储信息(如指令和数组元素)的使用往往是连续的。如果让多个存储器模块共用一套地址逻辑。这样一个访存地址就可以把存储于多个存储器模块中相同地址单元的多个字一并读出,然后依次将它们送给处理器。 通过这种方式将多个存储器模块组织在一起构成的存储器称为单体多字存储器。 2017/2/25

67 前提:指令或数据在主存中必须是连续存放的,一旦遇到转 移指令或者操作数不能连续存放,这种方法的效果就不明显
寄存器 M D R M D R M D R M D R 单体多字存储器 存储体 存储字 存储字 存储体 存储字 存储体 存储字 存储体 MAR 前提:指令或数据在主存中必须是连续存放的,一旦遇到转 移指令或者操作数不能连续存放,这种方法的效果就不明显 2017/2/25

68 第6章 存储系统 6. 4. 2 提高主存储器访问带宽的方法 2. 多模块存储器
第6章 存储系统 提高主存储器访问带宽的方法 2. 多模块存储器 多体并行存储器由N个容量相同、字长相同的存储器模块组成,它与单体多字存储器的不同在于,它的各个存储器模块分别拥有独立的地址逻辑。只要连续访问的存储单元不在同一个存储器模块中,这些模块就可以相互错开1/N周期启动、交叉(轮流)占用系统的地址总线、数据总线和控制总线,所以多体并行存储器也叫“模N交叉存储器”。 2017/2/25

69 四体交叉存储器的工作示意图 单体访存周期 单体访存周期 启动体0 启动体1 启动体2 启动体3

70 第6章 存储系统 6. 4. 2 提高主存储器访问带宽的方法 2. 多模块存储器
第6章 存储系统 提高主存储器访问带宽的方法 2. 多模块存储器 由于模N交叉存储器提供的存储容量为单体存储器的N倍,所以系统的地址总线宽度要大于单体存储器的地址总线宽度,多出的那部分地址将用于生成不同存储体的体选信号。 根据选择访存地址的高端还是低端来生成体选信号,可以将模N交叉存储器分为“高位交叉编址存储器”和“低位交叉编址存储器” 。 2017/2/25

71 模块0 模块1 模块2 模块3 00000 01000 01001 01010 01011 10000 10001 10010 10011 11000 11001 11010 11011 00001 00010 00011 高位是模块号, 低位是块内地址 主存地址 高位交叉编址

72 第6章 存储系统 高位交叉编址存储器 优点是可靠性高,一个存储器模块失效只会影响存储空间的1/N部分,不在这一部分的程序和数据照常工作。问题是,发生访问冲突的概率高。 2017/2/25

73 模块0 模块1 模块2 模块3 00000 00001 00010 00011 00100 01000 01100 00101 01001 01101 00110 01010 01110 00111 01011 01111 高位是块内地址, 低位是模块号 主存地址 低位交叉编址

74 第6章 存储系统 低位交叉编址存储器 低位交叉存储器可以将连续的指令和数据存储在不同的存储器模块中,有利于减少访问冲突。但是可靠性差,一旦一个存储体失效,整个存储空间将崩溃。 2017/2/25

75 第6章 存储系统 6. 4. 2 提高主存储器访问带宽的方法 3、采用更高速器件技术(如双极型MOS)生产的存储芯片;
第6章 存储系统 提高主存储器访问带宽的方法 3、采用更高速器件技术(如双极型MOS)生产的存储芯片; 4、信息按整数边界存储; 5、引入高速缓存Cache 。 2017/2/25 75

76 第6章 存储系统 例6-8 某计算机存储器按字节编址,采用小端方式存放数据。假定编译器规定int和short型长度分别为32位和16位,并且数据按边界对齐存储。某C语言程序段如下: struct{ int a; char b; short c; } record; record.a=273; 若变量record的首地址为0xC008,则地址0xC008中的内容及record.c的地址分别为 。 A.0x00、0xC00D B.0x00、0xC00E C.0x11、0xC00D D.0x11、0xC00E D 2017/2/25 76

77 第6章 存储系统 6. 5 高速缓冲存储器Cache 6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与层次结构存储系统
第6章 存储系统 6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与层次结构存储系统 6. 3 半导体存储器 6. 4 主存储器 高速缓冲存储器Cache 为了解决“主存储器的速度始终赶不上处理器的速度”的问题,在主存和处理器之间增设“高速缓冲存储器Cache”是一种非常有效的办法。 Cache采用静态RAM实现,容量小于主存容量,但速度大大高于基于动态RAM的大容量主存。 2017/2/25

78 没有Cache,计算机照常工作,有了Cache, 计算机工作得快一点!
第6章 存储系统 高速缓冲存储器Cache Cache的工作原理 CPU发出访问主存的地址 CPU 没有Cache,计算机照常工作,有了Cache, 计算机工作得快一点! MM Cache 不久目标数据将肯定从主存送往CPU 2017/2/25

79 Cache的工作原理 CPU发出访问主存的地址 这个主存地址Cache也同时收到 MM CPU Cache
若目标数据在Cache中(命中)则Cache将先于主存把数据送往CPU 若Cache没命中则主存迟早会把目标数据送往CPU 2017/2/25

80 事实上,对于M体交叉访问的主存储器,给出一个主存地址在一个访存周期内能够读出M个字。根据程序访问的局部性原理,CPU将会继续访问这M个字。
所以在主存与Cache之间,设置一个多字宽的局部数据线。 当Cache不命中时,CPU将在访问目标数据的同时,一并从主存读出来的M个字,并将其作为一个 块 传送给Cache。 这样CPU的下一次访问基本上能够在Cache中命中了。 2017/2/25

81 当Cache不命中,CPU正常访问主存时,主存一方面将目标数据通过系统数据总线送往CPU;
同时,通过Cache—MM局部多字宽数据线将附带读出的一个字块送往Cache。 CPU MM Cache 2017/2/25

82 随着CPU访问主存的不断进行时,越来越多的主存字块被装入Cache。
由于Cache的容量有限,迟早会出现Cache装满的情况。 所以当一个新字块要装入Cache时,它将要判断Cache是否已满? 未满则直接装入, 否则将启动Cache内部的替换控制机构,从Cache存储体中选择一个旧的字块,将其通过Cache—MM局部多字宽数据线写回主存,以腾出空间接纳新送来的字块。 2017/2/25

83 由于程序访问局部性原理的存在,Cache的命中率通常都在90%以上。
所以,增设Cache后,CPU的平均访存速度明显提高,基本上接近Cache 的速度。 在CPU看来,它只付出了少许成本,就拥有了一个与主存储器容量相当,速度几乎等于Cache的高级“存储器” 2017/2/25

84 第6章 存储系统 6. 5 高速缓冲存储器Cache 6. 5. 2 地址映像与变换 地址的映象: 地址的变换:
第6章 存储系统 高速缓冲存储器Cache Cache的工作原理 地址映像与变换 地址的映象: 地址的变换: 主存块按照什么规则装入到Cache中? 访问Cache时,如何将主存地址变换成对应的Cache地址? 2017/2/25

85 第6章 存储系统 6. 5 高速缓冲存储器Cache 6. 5. 2 地址映像与变换 影响Cache-主存地址映象方法选择的因素
第6章 存储系统 高速缓冲存储器Cache Cache的工作原理 地址映像与变换 影响Cache-主存地址映象方法选择的因素 地址映象和变换的速度; 块冲突发生概率; 所谓块冲突是指出现了主存块要进入Cache中的某块位置,而这个位置已经被其他主存块占用的现象。 2017/2/25

86 第6章 存储系统 6. 5 高速缓冲存储器Cache 6. 5. 2 地址映像与变换 影响Cache-主存地址映象方法选择的因素
第6章 存储系统 高速缓冲存储器Cache Cache的工作原理 地址映像与变换 影响Cache-主存地址映象方法选择的因素 地址映象和变换的速度; 块冲突发生概率; 若Cache尚未装满,就发生块冲突,则Cache中将存在空闲块,Cache空间的利用率就不会达到100%。 2017/2/25

87 第6章 存储系统 6. 5. 2 地址映像与变换 主存中的任意一块均可映象装入到Cache内的任意一块位置上 常见的映像方法: 全相联映像
第6章 存储系统 地址映像与变换 主存中的任意一块均可映象装入到Cache内的任意一块位置上 常见的映像方法: 全相联映像 直接映象 组相联映象 主存中的某一块只能映象装入到Cache内的某一特定块位置上 主存与Cache分组,组间直接相联,组内全相联。 2017/2/25

88 nmb nmr ncb nmr 2ncb行 全相联映象的地址变换过程 主存块号 块内地址 主存地址nm Cache 块号 块内地址 查不到
查到 Cache地址nc 相联比较 nmb ncb 2ncb行 目录表 (专门硬件)

89 全相联映象的地址变换过程(简化) nmb ncb 2ncb行 主存块号 主存地址nm(简化) Cache 块号 查不到 Cache块失效
查到 相联比较 Cache地址nc(简化) nmb ncb 2ncb行 目录表 (专门硬件)

90 全相联映像的评价 优点: 块冲突的概率最低! Cache空间的利用率最高。 缺点:

91 能否简化映象表的结构,减少相联比较内容的位数,以加快相联比较速度呢?
相联比较位数最少的映像方法就是直接映像法 能否简化映象表的结构,减少相联比较内容的位数,以加快相联比较速度呢?

92 第6章 存储系统 6. 5. 2 地址映像与变换 常见的映像方法: 主存中的某一块只能映象装入到Cache内的某一特定块位置上。 全相联映像
第6章 存储系统 地址映像与变换 常见的映像方法: 全相联映像 直接映象 组相联映象 主存中的某一块只能映象装入到Cache内的某一特定块位置上。 2017/2/25

93 第6章 存储系统 6. 5. 2 地址映像与变换 在直接映像中,主存储器按Cache的大小分区,区内按Cache块的大小分块。
第6章 存储系统 地址映像与变换 在直接映像中,主存储器按Cache的大小分区,区内按Cache块的大小分块。 每一个Cache块位置可以接受来至任意一个分区中、相同块位置的主存储器信息块。 地址映象的公式是: Ncb =Nmb mod 2k, (k为Cache块号的位数) 。 即主存信息块对应的Cache块的块号Ncb就等于这个信息块的“主存块号Nmb”后k位。 2017/2/25

94 直接映象的地址变换过程 nmr ncb 2ncb行 区内块号 nmr 区号 主存块号nmb 块内地址 主存地址nm
以区内块号为地址访问区号表 块内地址 nmr Cache地址nc Cache ncb 块号 不等 Cache块失效 相等 相等比较 访问Cache存储体 SRAM 区号 2ncb行

95 访问Cache与访问区号表、比较区号是否相符的操作同时进行。
直接映象法的优缺点 优点 硬件简单,成本低,速度快。 为什么? 访问Cache与访问区号表、比较区号是否相符的操作同时进行。 缺点 Cache的块冲突概率最高, Cache的空间利用率低。

96 直接映象的地址变换过程(简化) ncb 2ncb行 区内块号 区号 主存块号nmb 主存地址(简化) 以区内块号为地址访问区号表
Cache地址(简化) Cache ncb 块号 不等 Cache块失效 相等 相等比较 访问Cache存储体 SRAM 区号 2ncb行

97 回顾:全相联映象的地址变换过程(简化) nmb ncb 2ncb行 主存块号 主存地址nm(简化) Cache 块号 查不到
查到 相联比较 Cache地址nc(简化) nmb ncb 2ncb行 目录表 (专门硬件)

98 由上述分析可以看出: 全相联映像与直接映像的优缺点是互补的。 全相联映像中的Cache块号全部是变换来的。因为是变换来的,所以块冲突概率低。

99 能否将全相联映象和直接映象折衷一下,使得Cache块号一部分是截取来的,一部分是变换来的?
这样既兼顾变换速度,又兼顾块冲突概率。 答案是肯定的。计算机设计的一个重要方法就是:折中 ( Trade-off )。 这就是组相联映像。

100 第6章 存储系统 6. 5. 2 地址映像与变换 常见的映像方法: 全相联映像 直接映象 组相联映象
第6章 存储系统 地址映像与变换 常见的映像方法: 全相联映像 直接映象 组相联映象 从主存地址中截取来的部分构成Cache块号中的高位,变换来的部分总是构成Cache块号的低位。 即组间是直接相联, 组内总是全相联。 2017/2/25

101 组相联地址变换示意图 目录表 以区内块号q为地址, 在Cache第q组的2q个槽中选一 (共2q组,每组2s行) 主存块号nmb 区号Tag
Cache块号ncb 组号q 组内块号s 不等 Cache块失效 相等 相等比较 目录表 tag s (共2q组,每组2s行)

102 组相联映象的几点讨论 当组内的块数与Cache的块数相同时,组相联映象变成全相联映象 当每组只有一块时,组相联映象转化成直接映象。
组内的块数越多,Cache块冲突的概率就越低,Cache空间的利用率就越高。映象表就越复杂,成本越高,查表速度就越慢。

103 第6章 存储系统 例6-9 某计算机的Cache共有16块,采用2路组相联映射方式(即每组两块),每个主存块大小为32字节,按字节寻址,主存单元129所在主存块应装入到的Cache组号是 。 A. B. C. D.6 C 答:Cache组号是直接截取主存单元地址中“块内地址”字段之前的n位而得。 本题中,n=3,主存地址中的倒数第8~6位为组号。 地址129= B。 2017/2/25 103

104 第6章 存储系统 6. 5 高速缓冲存储器Cache 6. 5. 3 替换算法 6. 5. 1 Cache的工作原理
第6章 存储系统 高速缓冲存储器Cache Cache的工作原理 地址映像与变换 替换算法 当一个新的主存块要写入Cache中,而允许这个主存块写入的各个特定的槽都已被其它主存块所占用时,Cache的控制机构则要选择一个特定的槽,并将其中主存块替换回(写回)主存中去,以便腾出空间让新的主存块进入。 2017/2/25

105 第6章 存储系统 6. 5. 3 替换算法 常见替换算法: 1.近期最少使用算法(Least Recently Used, LRU)。
第6章 存储系统 替换算法 常见替换算法: 1.近期最少使用算法(Least Recently Used, LRU)。 2.先进先出算法(First In First Out, FIFO) 3.随机替换算法(Random) 2017/2/25

106 第6章 存储系统 替换算法 例 假设某计算机按字编址,Cache有4个行,Cache和主存之间交换的块大小为1个字。若Cache的内容初始为空,采用2路组相联映射方式和LRU替换算法,当访问的主存地址依次为0,4,8,2,0,6,8,6,4,8时,命中Cache的次数是 。 A. B. C. D.4 C 2017/2/25

107 第6章 存储系统 6. 5 高速缓冲存储器Cache 也称 “全写法”。若写命中,则同时写Cache和主存. 6. 5. 4 写入策略
第6章 存储系统 高速缓冲存储器Cache Cache的工作原理 地址映像与变换 也称 “全写法”。若写命中,则同时写Cache和主存. 替换算法 写入策略 1. 写穿法 ( Write-Through, WT ) 。 2. 写回法 ( Write-Back, WB ) 若写命中,则只写Cache。仅当写过的数据块要被替换时,才将这个被修改过的块写回主存。 2017/2/25

108 第6章 存储系统 6. 5 高速缓冲存储器Cache 6. 5. 5 两级Cache和分裂型Cache
第6章 存储系统 高速缓冲存储器Cache Cache的工作原理 地址映像与变换 替换算法 写入策略 两级Cache和分裂型Cache 设置片内Cache,称为两级Cache。 分别设指令Cache和数据Cache, 称为分裂型Cache。 2017/2/25

109 第6章 存储系统 6. 5. 5 两级Cache和分裂型Cache D 例 采用指令Cache和数据Cache分离的主要目的是 。
第6章 存储系统 两级Cache和分裂型Cache 例 采用指令Cache和数据Cache分离的主要目的是 。 A.降低Cache的缺失损失 B.提高Cache命中率 C.降低CPU平均访存时间 D.减少指令流水线资源冲突 D 答:微处理器大都采用流水线来加快指令的解释,而流水线中的“取指”部件和“执行”部件很可能需要同时访问存储器,这就出现了访存冲突。解决冲突的一个办法就是采用哈佛存储结构,将指令和数据分开存储。 2017/2/25 109

110 第6章 存储系统 6. 5 高速缓冲存储器Cache 6. 5. 6 Cache的性能评价 6. 5. 1 Cache的工作原理
第6章 存储系统 高速缓冲存储器Cache Cache的工作原理 地址映像与变换 替换算法 写入策略 两级Cache和分裂型Cache Cache的性能评价 2017/2/25

111 第6章 存储系统 6. 5. 6 Cache的性能评价 评价Cache的性能指标: 命中率、等效访问周期、加速比和效率。
第6章 存储系统 Cache的性能评价 评价Cache的性能指标: 命中率、等效访问周期、加速比和效率。 Cache命中率是指在Cache—主存层次中,要访问的数据 正好在Cache中的概率。 设处理器发出的访存次数为R,其中在Cache中命中的次 数为RC,则命中率HC=RC/R。 2017/2/25

112 第6章 存储系统 6. 5. 6 Cache的性能评价 设Cache的访问周期为TC,主存的访问周期为TM,
第6章 存储系统 Cache的性能评价 设Cache的访问周期为TC,主存的访问周期为TM, 则采用“旁视式”组成方案的 Cache—主存层次的等效访问周期为: TAC = HC  TC + (1 – HC )TM 2017/2/25

113 第6章 存储系统 6. 5. 6 Cache的性能评价 Cache系统的加速比Sp定义为:TM / TAC。
第6章 存储系统 Cache的性能评价 Cache系统的加速比Sp定义为:TM / TAC。 提高加速比的最佳途径是提高命中率HC, 降低等效访问时间TAC。 Cache—主存层次的效率EC定义为:TC/ TAC。 EC = TC / TAC = TC / [ HC  TC + (1 –HC ) TM ] = 1/ [ HC + (1 – HC )  P ] 式中,P= TM / TC为访问周期比。 2017/2/25

114 第6章 存储系统 Cache的性能评价 例6-11 假设某计算机的存储器系统由Cache和主存组成。某程序执行过程中访存1000次,其中访问Cache缺失(未命中)50次,则Cache的命中率是 。 A.5% B.9.5% C .50% D.95% D 答:Cache命中率=访问Cache的总次数/访问主存的总次数 =( )/1000=95%。 2017/2/25

115 int sun_array1 ( ) int sun_array2 ( ) { {
例6-12某计算机的主存地址空间为256MB,按字节编址,指令Cache与数据Cache分离,均有8个Cache行,每个Cache行的大小为64B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下所示: 程序A 程序B int a[256][256]; int a[256][256]; int sun_array1 ( ) int sun_array2 ( ) { { int i, j, sum=0; int i, j, sum=0; for (i=0; i<256; i++) for (j=0; j<256; j++) for (j=0; j<256; j++) for (i=0; i<256; i++) sum+=a[i][j]; sum+=a[i][j]; return sum; return sum; } } 2017/2/25 115

116 第6章 存储系统 假定int 类型数据用32位补码表示,程序编译时i、 j、sum 均分配在寄存器中,数组a按行优先方式存放,其首地址为320(十进制数)。 请回答下列问题,要求说明理由或给出计算过程。 (1)若不考虑用于Cache一致性维护和替换算法的控制位,则数据Cache的总容量是多少? (2)数组元素a[0][31]和a[1][1]各自所在的主存块对应的Cache行号分别是多少?(行号从0开始) (3)程序A和B的数据访问命令中各是多少?那个程序的执行时间更短? 2017/2/25 116

117 第6章 存储系统 答: (1)主存地址为 log 256M = 28位, 其中块内地址占 log64 = 6位,行号占 log8 = 3位,
第6章 存储系统 答: (1)主存地址为 log 256M = 28位, 其中块内地址占 log64 = 6位,行号占 log8 = 3位, 则标记(Tag)占28-6-3=19位。 因此,每行的地址变换机构包含1位有效位和19位的标记,再加上每行的数据存储空间为64B=64*8=512位, 共计 =532位。 数据Cache共8行, 则数据Cache的总容量为8*532=4256位=532B。 2017/2/25

118 第6章 存储系统 (2)每个元素长度为32/8=4B, a[0][31]是数组的第32个元素,故该元素相对于数组首地址(320)的距离为4*(32-1)=124。 则该元素的物理地址= = 444 = = ,则行号=110=6。 a[1][1]是数组的第256+2=258个元素,故该元素相对于数组首地址(320)的距离为:4*(258-1) = 4*257 = 1028。 则其物理地址= = 1348 = ,则行号=101=5。 2017/2/25 118

119 第6章 存储系统 (3)程序A中数组访问的顺序与存放顺序相同, 程序共访问256*256次,即256*256/16=256*16块,
第6章 存储系统 (3)程序A中数组访问的顺序与存放顺序相同, 程序共访问256*256次,即256*256/16=256*16块, 访问每块都是第一次访问不命中,后15次访问都命中。 则命中率 = (256* *16)/(256*256) = 93.75%。 2017/2/25 119

120 第6章 存储系统 程序B中数组访问的顺序与存放顺序不同,
第6章 存储系统 程序B中数组访问的顺序与存放顺序不同, 相邻两次访问的元素相距256*4 = 1024B,而采用直接映像的数据Cache容量=64*8=512B,故相邻两次访问的元素将放在同一个Cache行中,但它们的标记(Tag)不同。故每一个元素访问都不命中,不命中后把数据块调入Cache 却不再访问。下一次访问不命中后把数据块调入Cache恰好把上一个数据块覆盖了,所以命中率等于零。 分析可知,程序A的执行时间更短。 2017/2/25 120

121 例 某计算机的主存采用体宽为8B的8体交叉存储器,系统总线中数据总线的宽度为64位,读一个主存块的步骤:
1) 发送首地址到主存(一个总线时钟周期); 2) 主存控制器接受到地址后,启动第一个模块准备数据,并每隔一个总线时钟启动下一个模块准备数据。 3) 每个存储模块花4个总线时钟准备好64位数据。 4) 总线上传输一个64位数据花一个总线时钟。 请问:该计算机的Cache缺失损失(从主存中读一个主存块到Cache的时间)至少为多少总线时钟周期? 答: Cache行的大小为8×8B=64B。 没有总线竞争时,Cache 缺失损失 =1+4+1+(8-1)×1 = 13个总线时钟周期, 故Cache 缺失损失至少是13个总线时钟周期 2017/2/25 121

122 A 例 下列关于“Cache”的说法,正确的是 。 A. 采用直接映像时,Cache无需考虑替换问题
B. 如果选用最优替换算法,则Cache的命中率可以达到100% C. Cache本身的速度越快,则Cache存储器的等效访问速度就越快 D. Cache的容量与主存的容量差别越大越好。 A 答:由于主存块是在不命中时被装入Cache,所以Cache命中率不可以达到100%; 命中率比Cache本身速度对Cache的等效访问速度影响更大。 2017/2/25 122

123 D 例下列关于存储系统层次结构的说法,错误的是 。 A.存储层次结构中,越靠近CPU,存储器的速度越快,但价格越贵,容量越小。
例下列关于存储系统层次结构的说法,错误的是 。 A.存储层次结构中,越靠近CPU,存储器的速度越快,但价格越贵,容量越小。 B.Cache—主存层次的设置目的是为了提高主存的等效访问速度。 C.主存—辅存层次的设置目的是为了提高主存的等效存储容量。 D.存储系统层次结构对程序员都是透明的。 答:Cache—主存层次对所有程序员透明。 主存—辅存层次只对应用程序员透明, 对系统程序员不透明 。 2017/2/25 123

124 (1)CPU和总线的时钟周期各为多少?总线带宽为多少?
例某32位计算机,CPU主频为800MHz,Cache命中时的CPI为4,Cache块大小为32字节;主存采用8体交叉存储方式,每个体的存储字长为32位、存储周期为40ns;存储器总线宽度为32位,总线时钟频率为200MHz,支持突发传送总线事务。每次读突发传送总线事务的过程包括:送首地址和命令、存储器准备数据、传送数据。每次突发传送32字节,传送地址或32位数据均需要一个总线时钟周期。 请回答下列问题: (1)CPU和总线的时钟周期各为多少?总线带宽为多少? 答:CPU主频为800MHz,则CPU的时钟周期为1/800M=1.25ns; 总线时钟频率为200MHz,则总线的时钟周期为1/200M=5ns; 总线带宽=32位×200MHz/8=800MB/s。 2017/2/25 124

125 (2)Cache缺失时,需要用几个读突发传送总线事务来完成一个主存块的读取?
例某32位计算机,CPU主频为800MHz,Cache命中时的CPI为4,Cache块大小为32字节;主存采用8体交叉存储方式,每个体的存储字长为32位、存储周期为40ns;存储器总线宽度为32位,总线时钟频率为200MHz,支持突发传送总线事务。每次读突发传送总线事务的过程包括:送首地址和命令、存储器准备数据、传送数据。每次突发传送32字节,传送地址或32位数据均需要一个总线时钟周期。 请回答下列问题: (2)Cache缺失时,需要用几个读突发传送总线事务来完成一个主存块的读取? 答:Cache块大小为32B,而每次突发传送32B, 则需要用1个读突发传送总线事务来完成一个主存块的读取。 2017/2/25 125

126 答:存储器总线完成一次读突发传送总线事务所需的时间
例某32位计算机,CPU主频为800MHz,Cache命中时的CPI为4,Cache块大小为32字节;主存采用8体交叉存储方式,每个体的存储字长为32位、存储周期为40ns;存储器总线宽度为32位,总线时钟频率为200MHz,支持突发传送总线事务。每次读突发传送总线事务的过程包括:送首地址和命令、存储器准备数据、传送数据。每次突发传送32字节,传送地址或32位数据均需要一个总线时钟周期。 请回答下列问题: 答:存储器总线完成一次读突发传送总线事务所需的时间 = “送首地址和命令”的时间 + 存储器准备数据的时间 + 传送数据32B/(32位/8)次的时间 =1个总线时钟周期+40ns+32/4个总线时钟周期 = 5ns+40ns+8×5ns = 85ns。 (3)存储器总线完成一次读突发传送总线事务所需的时间是多少? 2017/2/25 126

127 =Cache命中时执行指令的时间 + Cache缺失时访存时间 =100条指令×CPI ×CPU时钟周期 +
例某32位计算机,CPU主频为800MHz,Cache命中时的CPI为4,Cache块大小为32字节;主存采用8体交叉存储方式,每个体的存储字长为32位、存储周期为40ns;存储器总线宽度为32位,总线时钟频率为200MHz,支持突发传送总线事务。每次读突发传送总线事务的过程包括:送首地址和命令、存储器准备数据、传送数据。每次突发传送32字节,传送地址或32位数据均需要一个总线时钟周期。 请回答下列问题: (4)若程序BP执行过程中,共执行了100条指令,平均每条指令需进行1.2次访存,Cache缺失率为5%,不考虑替换等开销,则BP的CPU执行时间是多少 ? 答:BP的CPU执行时间 =Cache命中时执行指令的时间 + Cache缺失时访存时间 =100条指令×CPI ×CPU时钟周期 + 100条指令×1.2×5%×85ns =100×4 ×1.25ns + 120×5%×85ns =500ns+510ns=1010ns 2017/2/25 127

128 第6章 存储系统 6. 6 虚拟存储器 6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与层次结构存储系统
第6章 存储系统 6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与层次结构存储系统 6. 3 半导体存储器 6. 4 主存储器 高速缓冲存储器Cache 虚拟存储器 虚拟存储器是一个“速度等于主存的速度”、“容量和价格等于辅存的容量和价格”的存储器。 比大海更宽阔的是天空,比天空更宽阔的是人的胸怀。维克多·雨果(法) 2017/2/25 128

129 第6章 存储系统 6. 6 虚拟存储器 6. 6. 1 多道程序下的内存管理 固定分区内存管理 等长分区 不等长分区 可变分区内存管理
第6章 存储系统 虚拟存储器 多道程序下的内存管理 等长分区 不等长分区 固定分区内存管理 可变分区内存管理 2017/2/25 129

130 第6章 存储系统 6. 6 虚拟存储器 6. 6. 2 段式存储管理 地址格式 段号 段内偏移量 段表与段表基址寄存器
第6章 存储系统 虚拟存储器 多道程序下的内存管理 段式存储管理 地址格式 段号 段内偏移量 段表与段表基址寄存器 2017/2/25 130

131 第6章 存储系统 6. 6 虚拟存储器 6. 6. 3 页式存储管理 地址格式 页号 与 页框号 页内偏移量 页表与页表基址寄存器
第6章 存储系统 虚拟存储器 多道程序下的内存管理 段式存储管理 页式存储管理 地址格式 页号 与 页框号 页内偏移量 页表与页表基址寄存器 2017/2/25 131

132 第6章 存储系统 6. 6 虚拟存储器 6. 6. 4 页式虚拟存储器 工作原理 存储器访问的局部性原理 请求式调页 页表增加的“存在位”
第6章 存储系统 虚拟存储器 多道程序下的内存管理 段式存储管理 页式存储管理 页式虚拟存储器 工作原理 存储器访问的局部性原理 请求式调页 页表增加的“存在位” 2017/2/25 132

133 第6章 存储系统 6. 6 虚拟存储器 6. 6. 4 页式虚拟存储器 虚地址 与 实地址 虚页号 与 实页号 页内偏移量
第6章 存储系统 虚拟存储器 多道程序下的内存管理 段式存储管理 页式存储管理 页式虚拟存储器 虚地址 与 实地址 虚页号 与 实页号 页内偏移量 “缺页故障”及其处理 2017/2/25 133

134 第6章 存储系统 6. 6 虚拟存储器 6. 6. 4 页式虚拟存储器 “虚地址” 到 “实地址” 的变换过程
第6章 存储系统 虚拟存储器 页式虚拟存储器 “虚地址” 到 “实地址” 的变换过程 在CPU 内部设置“TLB(块表)” “TLB不命中” 是查“慢表(页表)” TLB的组成与工作原理 Cache与虚拟存储器的协同 2017/2/25 134

135 第6章 存储系统 6. 6 虚拟存储器 (2012年硕士研究生入学统一考试计算机专业考试试题) 下列关于虚拟存储的叙述中,正确的是 。
第6章 存储系统 虚拟存储器 (2012年硕士研究生入学统一考试计算机专业考试试题) 下列关于虚拟存储的叙述中,正确的是 。 A.虚拟存储只能基于连续分配技术 B.虚拟存储只能基于非连续分配技术 C.虚拟存储容量只受外存容量的限制 D.虚拟存储容量只受内存容量的限制 答:虚拟存储只能基于非连续分配技术, 虚拟存储容量只受虚地址长度的限制,故选B。 2017/2/25 135

136 第6章 存储系统 6. 6 虚拟存储器 D (2010年硕士研究生入学统一考试计算机专业考试试题) 下列命中组合情况中,
第6章 存储系统 虚拟存储器 (2010年硕士研究生入学统一考试计算机专业考试试题) 下列命中组合情况中, 一次访存过程中不可能发生的是 。 A.TLB未命中,Cache未命中,Page未命中 B.TLB未命中,Cache命中,Page命中 C.TLB命中,Cache未命中,Page命中 D.TLB命中,Cache命中,Page未命中 D 2017/2/25 136


Download ppt "第6章 存储系统 6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与 层次结构存储系统 6. 3 半导体存储器"

Similar presentations


Ads by Google