第三章 存储器.ppt

上传人:brainfellow396 文档编号:385957 上传时间:2018-10-10 格式:PPT 页数:66 大小:1.31MB
下载 相关 举报
第三章  存储器.ppt_第1页
第1页 / 共66页
第三章  存储器.ppt_第2页
第2页 / 共66页
第三章  存储器.ppt_第3页
第3页 / 共66页
第三章  存储器.ppt_第4页
第4页 / 共66页
第三章  存储器.ppt_第5页
第5页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第三章 内部存储器,3.1 存储器概述存储器是计算机系统中的记忆设备,用来存放程序和数据,在计算机中具有十分重要的地位。存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,它可存储一个二进制代码。由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。,存储器分类 (1)按存储介质分:半导体存储器、磁表面存储器、光盘存储器和其它新型材料存储器。 (2)按信息的易失性分:易失性存储器和非易失性存储器。 (3)按存取方式分:随机读/写存储器、只读存储器、顺序存取存储器、直接存取存储器、相联存储器,快擦型存储器。 (4)按在计算机中的作用分:控制存储器、

2、高速缓冲存储器(Cache)、主存储器、辅助存储器。,存储器的层次结构(分级)存储层次:指把各种不同存储容量、不同存取速度的存储器,按照一定的体系结构有机地组织起来,使所存放的程序和数据按层次分布在各种存储器中,以实现计算机系统对存储器大容量、高速度和低成本的要求。Cache主存层次:采用全硬件实现信息交换 。信息通路:CPUCache主存CPU主存主存辅存层次:采用软、硬结合的方法实现信息交换。信息通路:CPU主存辅存,CPU,Cache,主存,辅存,存储层次的性能参数(主存辅存层次) 主存(M1):容量S1,位价格C1,存取时间TA1。 辅存(M2):容量S2,位价格C2,存取时间TA2。

3、 (1)存储层次的平均位价格C =(C1S1 + C2S2)/( S1 + S2) (2)命中率:指所需信息可在M1中找到的概率。H = N1 /( N1 + N2),失效率 F = 1- HN1为访问M1的次数, N2为访问M2的次数。 (3)存储层次的平均存取时间TA = H* TA1 +(1 H)* TA2 , TA2 = TB + TA1 (4)存储层次的访问效率e = TA1 / TA,例1:CPU 执行一段程序时,访问M1(主存)命中2000次,访问M2(辅存)命中50 次,已知 M1存取周期为 50ns,主存M2存取周期为 200ns,求 主存-辅存层次的命中率、平均访问时间和访

4、问效率。 解: (1)主存M1命中率:h = Nm /(Nm + Ns)= 2000 /(2000 + 50)= 0.97 (2)系统的平均访问时间ta = htm+(1 - h)tS= 0.9750 +(1 - 0.97)200=54.5ns (3)访问效率e = tm / ta = 50 / 54.5 = 91.7%,3.2 主存储器(SRAM存储器)一般由RAM和ROM组成,其中RAM占主导地位。主存储器通过地址总线、 数据总线、控制总线与 CPU或其它部件相连。 RAM的基本结构数据总线读/写控制线片选线地址总线,CPU,MDR,MAR,译码驱动电路,存储矩阵,读写电路,主存,主存储器

5、的基本操作 (1)读操作将指定单元的地址送地址总线 地址译码 发读命令 将指定单元的内容读出至数据总线。 (2)写操作将指定单元的地址送地址总线 地址译码 将所要写的数据送数据总线 发写命令 将数据写入指定单元。,高位字节 地址为字地址,低位字节 地址为字地址,设地址线 24 根,按 字节 寻址,按 字 寻址,若字长为 16 位,按 字 寻址,若字长为 32 位,主存中存储单元地址的分配,224 = 16 M,8 M,4 M,主存的技术指标(1)存储容量:指主存能存放的二进制信息量。S = M * W * B M模块数,W每个模块的字(或单元)数,B字长。(2)存储速度存取时间TA:指启动一次

6、存储器操作(读或写)到完成该操作所需的全部时间。存取周期TM:指连续两次启动存储器所需的最小时间间隔。 通常 TA TM。存储器带宽BM:指单位时间内从存储器进出信息的最大数量,单位:位/秒或字节/秒。例2: TM = 500ns,B = 16位,则: BM = 32M位/秒。,RAM的基本存储元基本存储元电路是用来存储1位二进制信息的电路,是组成存储器的基础和核心。对于存储元电路的基本要求是:(1)有两种稳定的状态(0或1),且是可逆的。(2)在外部信号的激励下,两种状态能进行无限次的相互转换,且长期存储可靠。(3)在外部信号的激励下,能读出两种稳定状态。根据信息存储的机理不同可以分为两类:

7、 静态读写存储器(SRAM):存取速度快。 动态读写存储器(DRAM):存储容量大。,RAM的地址译码方式半导体存储芯片的译码方式有两种:(1)线选法(一维地址译码)将容量为 S 的存储器分成 W 个字,每个字 b 位,则RAM阵列结构为:W 行 * b 列。字线的数目 W 与地址码位数 n 的关系为:W=2n。优点:结构简单、速度快。缺点:外围电路多、结构不合理、成本高。(2)重合法(二维地址译码)将容量为 W 字 * b 位的RAM,分成 b 个存储片,每片是 W 字 * 1 位。再将每一片中的 W 个字排成Wx行和Wy列,同时将 n 位地址码按 X 方向和 Y 方向分为2组nX和nY。由

8、 xi ,yi电流重合同时选中b个片中对应存储元(一个b位单元)。,SRAM的读/写周期波形图 读周期(WE = 高电平),3.3 主存储器(DRAM存储器)SRAM存储器的存储位元是一个触发器,它具有两个稳定的状态。而DRAM存储器的存储位元是由一个MOS晶体管和电容器组成的记忆电路。单管(MOS)动态存储元电路 规定 : 电容CS上有电荷表示存“1 ”。电容CS上无电荷表示存“0 ”。,特点:读操作结束时,Cs的电荷已泄放完毕,故是破 坏性读出,必须再生。,数据线 B,T,CS,字线 W,读出:W=1,T导通;若CS上有电荷(存1),则数据线B上有电流;若CS上无电荷(存0),则数据线B上

9、无电流。,写入:W=1,T导通;写1时, B=1经T管对CS充电;写0时,B=0CS经T放电。,DRAM的刷新为了保持DRAM中存储的信息不丢失,必须每隔一定时间(如 2ms)就对存储器中的全部存储电容进行充电,以补充所消失的电荷,维持原存信息不变,这个过程称为刷新。刷新以行为单位,以 16K1 动态 RAM 为例,共 128行128 列。每行的字线相通,选中某字线时,所有位均被读出并刷新。通常 2ms 内所有行都必须刷新一次。 刷新周期:指从上一次对整个存储器刷新结束到下一次对整个存储器全部刷新一遍为止所用的时间(一般为 2ms)。常用的刷新方式有三种,一种是集中式,另一种是分散式,第三种是

10、异步式。,(1)集中式刷新指在一个刷新周期内,集中利用一段固定时间,依次对存储器逐行进行刷新,在此期间必须停止对存储器的读/写操作。 例3:某存储器阵列为128*128,读/写周期为 0.5us,刷新周期为 2ms,则在 2ms内共有4000个读/写周期。 其中:用于刷新的读/写周期为128个,所需时间128*0.5=64us用于读/写操作或维持周期为3872个,所需时间1936us。,0.5us,0,1,2,3871,3872,3999,3872个周期(1936us),128个周期(64us),刷新周期(2ms),读/写或维持,刷新,0,1,周期序号,死区,优点:主存利用率高,控制简单。 缺

11、点:在集中刷新状态中不能使用存储器,因而形成一段死区。 (2)分散式刷新指对每一行存储元的刷新分散到每个读/写周期内完成,即把存取周期分成两段,前半段用来读/写或维持,后半段用来刷新。 例4:某存储器阵列为128*128,存取周期为 1us,则刷新周期 = 128 * 1us = 128us,R/W,REF,R/W,REF,0,1,REF,R/W,127,周期序号,0.5us,0.5us,1us,刷新周期(128us),优点:控制简单,主存工作没有长的死区。 缺点:主存利用率低,工作速度约降低一倍。 (3)异步(集中与分散结合)式刷新指按芯片行数决定所需的刷新周期数,并分散安排在2ms的最大刷

12、新周期之中。 例5:某存储器阵列为128*128,读/写周期为 0.5us,刷新周期为 2ms,则每隔 2ms/128=15.6us 刷新一行 (死区缩短为0.5us)。,R/W,R/W,REF,R/W,R/W,REF,0.5us,0.5us,0.5us,0.5us,15.6us,15.6us,存储器容量的扩充 单个RAM芯片的容量往往较小,要组成一定容量和一定字长的主存储器,必须用多个芯片进行有机地组合。 设主存的容量为:W字*b位,芯片的容量为:Ws字*bs位。 (1)位扩展W = Ws ,b bs 。 例6:用16k*4位的芯片组成16k*8位的存储器。,16k*4,16k*4,A13,

13、A0,D0,D7,W = Ws= 16k b = 2bs (共需2片),(2)字扩展W Ws ,b = bs 。 例7: 用16k*8位的芯片组成64k*8位的存储器。,16k*8,16k*8,16k*8,16k*8,CS,译 码,CS,CS,CS,A15,A14,A13,A0,D0,D7,W = 4Ws b = bs= 8 (共需4片),(3)字位扩展W Ws ,b bs ,共需 (W / Ws)*(b / bs)片。 例8:用1k*4位的芯片组成4k*8位的存储器。,1k*4,1k*4,1k*4,1k*4,A11,A10,A9,A0,D0,D3,D4,D7,CS,CS,CS,CS,CS,C

14、S,CS,CS,共需芯片(W / Ws)*(b / bs) = 8 片,分为4个组,每组2片。地址A11A10译码后选中一个组,再由A9 A0选中组内某个单元,进行读/写操作。存储器模块条存储器通常以插槽用模块条形式供应市场。这种模块条常称为内存条,它们是在一个条状形的小印制电路板上,用一定数量的存储器芯片,组成一个存储容量固定的存储模块。,存储芯片与CPU连接 存储芯片与CPU连接时特别要注意以下几点: (1)地址线的连接 (2)数据线的连接 (3)读/写命令线的连接 (4)片选线的连接 (5)合理选择存储芯片,例9:设CPU有16根地址线,8根数据线,并用MREQ作访存控制信号(低电平有效

15、)用WR作读/写控制信号(高电平为读,低电平为写)。现有下列存储芯片、各种门电路及74LS138译码器。RAM:1K4,4K8,8K8。ROM:2K8,4K8,8K8 要求: (1)主存地址空间分配:6000H 67FFH为系统程序区6800H 6BFFH为用户程序区 (2)合理选用上述存储芯片,说明各选几片? (3)详细画出存储芯片的片选逻辑图。,(1) 写出对应的二进制地址码,(2) 确定芯片的数量及类型,A15A14A13 A11 A10 A7 A4 A3 A0,解:,(3) 分配地址线,A10 A0 接 2K 8位 ROM 的地址线,A9 A0 接 1K 4位 RAM 的地址线,(4)

16、 确定片选信号,CPU 与存储器的连接图,3.4 只读存储器和闪速存储器 只读存储器(ROM)指信息写入存储器后就固定了,断电后信息仍然存在,访问时只能读出而不能写入新的内容一类存储器。只读存储器由于工作可靠,保密性强,在计算机系统中得到广泛的应用。 用途:存放不需要修改的程序和信息。如微程序、固定子程序、字符编码等等。(1)MROM(掩膜只读存储器) 优点:可靠性高、集成度高、价格便宜、适宜大批量生产。 缺点:只能读出,不能重写,这种器件只能专用。,(2)PROM(可编程只读存储器) 特点:用户只能在现场进行一次性编程(现场片),一旦编程完毕其内容便是永久性的,再无法进行更改。 (3)EPR

17、OM(光擦编程只读存储器) 特点:一种以读为主的可读可写存储器。通常处于读状态,写入时,先用紫外光照射擦除原来写入的数据,然后再加电重新写入新的数据。 (4)EEPROM(电擦编程只读存储器) 特点:可在联机的条件下,对存储器内容进行擦除(既可局部擦除,又可全部擦除)后再写入新的信息。,Flash Memory(闪速存储器)是一种高密度非失易失性的读/写存储器。高密度意味着它具有巨大比特数目的存储容量。非易失性意味着存放的数据在没有电源的情况下可以长期保存。总之,它既有RAM的优点,又有ROM的优点,称得上是存储技术划时代的进展。 特点:是在EPROM和EEPROM工艺基础上生产的一种新 型的

18、、具有性能价格比更好、可靠性更高的可擦写非易性存储器(快擦型存储器),即在芯片中加入指令寄存器实现电擦除和重新编程。擦写/编程次数可达10000次。,3.5 并行存储器由于CPU和主存储器在速度上不匹配,而且在一个CPU周期中可能需要用几个存储器字,为了提高访存速度,可以采取一些加速CPU和存储器之间有效传输的特殊措施。,单体多字存储器在单体单字的基础上,采用提高存储器带宽的办法(增加主存的存取信息宽度),使 CPU 在一个存储周期内不是读出一个字,而是读出顺序的多个字,使存储系统的工作速度得到改善。,W位,n位,MDR,MAR,MB,单体单字存储器,W位,W位 W位 W位 W位,m位,MAR

19、,MB,MDR,单字长寄存器,单体多字存储器,特点:在单体多字存储器中要求信息(指令或数据)必须按顺序存放,才能一次并行读出,使存储器的速度最高。若信息未按顺序存放,则要多次访问主存,使主存的带宽降低。双端口存储器双端口存储器是指同一存储器具有两组相互独立的读写控制线路,是一种高速工作的存储器。双端口存储器提供左、右两个独立端口,分别具有独立的地址、数据和控制线,可对存储器任意单元中数据进行独立存取操作。图中,用 L 表示左端口,用 R 表示右端口。,(1)无冲突读写控制当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。当任一端口被选中驱动时,就可对整个存储器进行存取,每一

20、个端口都有自己的片选控制和输出驱动控制。,(2)有冲突的读写控制有冲突的读写控制:当两个端口同时存取存储器同一存储单元时,便发生读写冲突。为解决此问题,特设置了BUSY标志。由片上的判断逻辑决定对哪个端口优先进行读写操作,而暂时关闭另一个被延迟的端口。多模块交叉存储器由若干个模块组成的主存储器,采用线性编址,地址在各模块有两种安排方式:一种是顺序方式,一种是交叉方式。,(1)顺序方式用地址高位选择模块,用地址低位选择模块内的字,每次访问一个字。某模块存取时,其他模块不工作,某一模块出现故障时,其他模块可以照常工作。这种方式通过增添模块扩充存储器容量较方便,但各模块串行工作,存储器的带宽受到限制

21、。但该方式适用于多机系统。例10: M0M3共四个模块,则每个模块8个字顺序方式为: M0: 07 M1:815 M2:1623 M3:2431 5位地址组织如下: X X X X X高位选模块,低位选块内地址。,4 3 2 1 0内存地址M0 M1 M2 M3,顺序方式存储结构,数据总线,(2)交叉方式指存储器由多个模块组成,每个模块都有自己的MAR和MDR,各模块之间采用交叉编址。通过对不同的模块给定不同地址的方式,实现对多个字的并行读出。 特点:连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的。只要各模块地址不发生冲突,哪怕信息未顺序存放,仍能并行读出。因此该方式的带宽比单

22、体多字方式的带宽要高。这种方式用地址低位选择模块,用地址高位选择模块内的字,每次访问若干字。特别适合对连续字的成块传送,可实现多模块流水式并行存取,大大提高存储器的带宽。使用场合为成批数据读取。,(a)交叉编址(低位交叉)方法:设存储器有m个模块,每个模块的容量为k。 则第i个模块Mi的编址为: m * j + i 其中:单元号 j = 0,1,k 1。模块号 i = 0,1,m 1 。 存储器总容量: S = m * k 地址码长度:n = log2k + log2m 例11:设主存容量 S = 32KB,分为4个模块(m = 4),则 单模块容量 k = 32 / 4 = 8KB。模块地址

23、字长 log2k = 13位。模号字长 log2m = 2位。主存地址字长 n = log2k + log2m = 15位。,交叉方式存储结构,4 3 2 1 0内存地址M0 M1 M2 M3,数据总线,低位交叉的特点,在不改变存取周期的前提下,增加存储器的带宽,启动存储模块0,启动存储模块1,启动存储模块2,启动存储模块3,设四模块低位交叉存储器,存取周期为T,总线传输周期为,为实现流水线方式存取,应满足 T 4。,连续读取 4 个字所需的时间为 T(4 1),(b)定量分析模块字长等于数据总线宽度,模块存取一个字的存储周期为 T,总线传送周期为,存储器的交叉模块数为 m,为了实现流水线方式

24、存取,应当满足:T = m ( m 称为交叉存取度,m = T / )交叉方式下,启动某模块后经 m 时间再次启动该模块时,它的上次存取操作已经完成。连续读取 n 个字所需时间为:t1 = T + ( n 1 )。顺序方式下,存储器连续读取 n 个字所需时间为 t2 = n T。显然, T + ( n 1 ) n T,可见交叉存储器的带宽得到提高。,例12:存储器容量为 32 字,字长 64 位,模块数 m = 4,存储周期 T = 200ns,数据总线宽度为 64 位,总线传送周期= 50ns。问顺序存储器和交叉存储器的带宽各是多少? 解:顺序存储器和交叉存储器读出 4 个字的信息总量为:q

25、 = 64 位4 = 256位 顺序存储器和交叉存储器连续读出 4 个字的时间为:t2 = n T = 4200ns = 800ns = 810-7st1 = T + ( n 1 )= 200 +( 350)= 350ns = 3.510-7s 顺序存储器和交叉存储器的带宽分别为:W2 = q / t2 = 256 / 810-7s = 32107(位 / s)W1 = q / t1 = 256 / 3.510-7s = 73107(位 / s),3.6 高速缓冲(Cache)存储器 cache基本原理 Cache是介于CPU和主存之间的小型高速存储器,用于祢补主存的速度不足。在高性能计算机中

26、,有指令高速缓存(I-Cache)和数据高速缓存(D-Cache),而D-Cache又可分成一级高速缓存和二级高速缓存。 (1)cache的功能 Cache的存取速度比主存快,作为主存的高速缓冲区,它能高速地向CPU提供指令和数据,加快程序的执行速度。Cache用于解决 CPU 与主存的速度差异,采用全由硬件调度,对用户透明。提出Cache的理论基础是程序访问的局部性原理。,所谓程序访问的局部性原理是指:大多数程序在任何时间窗口上,常常在它们地址空间的某一部分活动,即对局部范围的存储器地址频繁访问,而对此范围以外的地址访问甚少的现象。 两种局部性: (a)时间局部性:最近被访问的信息很可能还要

27、被访问。将最近被访问的信息项装入到Cache中。 (b)空间局部性:最近被访问的信息临近的信息也可能被访问。将最近被访问的信息项临近的信息一起装入到Cache中。,(2)cache的命中率命中率衡量Cache效率的指标,是指CPU要访问的信息已在Cache内的比率。一般而言,Cache容量越大,其命中率就越高。但当Cache的容量达到一定值时,命中率已不因容量的增大而有明显的提高。在一个程序执行期间,设 Nc 表示 Cache 完成存取的总次数,Nm表示主存完成存取的总次数,h 定义为命中率,则有:这里 Nc + Nm 表示总的访问次数。,例13:CPU 执行一段程序时,Cache 完成存取的

28、次数为 1900 次,主存完成存取的次数为 100 次,已知 Cache 存取周期为 50ns,主存存取周期为 250ns,求 Cache 的命中率、 系统平均访问时间和访问效率。解:h = Nc /(Nc + Nm)= 1900 /(1900 + 100)= 0.95ta = htc+(1 - h)tm= 0.9550 +(1 - 0.95) 250= 47.5 + 12.5 = 60ns e = tc / ta = 50 / 60 = 83.3%,(3)Cache的工作原理 (a)Cache的基本组成Cache由Cache存储体、地址映射变换机构、Cache替换机构等几大模块组成。,主存,

29、替换 机构,Cache 存储体,CPU,地址映射 变换机构,命中,可装进,块号,块内地址,块号,块内地址,主存地址,Cache地址,地址总线(A-BUS),数据总线(D-BUS),Y,N,Y,N,访问主存装入Cache,直接通路,访问 主存 替换 Cache,(b)Cache的读/写操作通常将当前正在执行的程序和所需的数据放在Cache中,CPU在大多数情况下以字为单位通过Cache交换信息(命中)。Cache与主存之间的信息交换是以字块为单位进行的,Cache中的字块为主存相应字块的副本,两者位置的对应关系由映射函数决定。该函数把来自CPU的主存地址映射成Cache地址,再由地址变换机构完成

30、主存地址到Cache地址的变换。 读操作:CPU发出读请求,产生访问主存地址,若所需 数据已在Cache中(命中),则经地址映射变换机构将主存地址变换成 Cache 地址,直接访问 Cache。若所需数据未装入Cache(失效),且 Cache未满,则将把包含该数据的整个字块装入Cache,同时把所需的数据直接送给CPU(通过式读)。如果失效时Cache已满,则必须按一定的替换策略将一个旧字块替换出去(送回主存),然后再装入新字块。,写操作:要考虑Cache与主存内容保持一致的问题。目前主要采用以下几种方法。写直达法(WT)- CPU向Cache写入的同时也向主存相 应单元写入,随时保证主存与

31、Cache的数据始终一致。又称通过式写或通过式存。 写回法(WB)- CPU暂时只向Cache写入,并用标志将该块加以注明,直至该块从Cache替换出时,才写入主存。又称标志交换法。 直接写入主存 - 若被修改的单元根本不在Cache内,则写操作只对主存进行。,Cache主存的地址映射与变换设主存容量为Sm,Cache容量为Sc,则一般有SmSc。于是提出了如何把主存字块装入Cache的问题。地址映射是指每个主存字块按什么规则(函数)装入Cache,而地址变换则是把主存地址转换成Cache地址的过程,两者是密切相关的。无论选择那种映射方式,都要把主存和cache划分为同样大小的“块”。 同时要

32、考虑以下几点: (a)硬件是否容易实现; (b)地址变换的速度是否快; (c)主存空间的利用率是否高; (d)主存装入一块时,发生冲突的概率。,主存空间:M0,M1,M2m-1。共2m 个字块,每块2b 个字。 Cache空间: C0,C1,C2c-1。共2c个字块,每块2b 个字。(1)全相联映射指主存中的任一字块可以映射到Cache中的任一块位置(多对多的映射关系)。如果Cache已满,可用替换算法替换出一个旧字块,然后装入相应的新字块。 (a)相联存储器所谓相联存储是指其信息的存储、检索和修改是基于数据本身而不是绝对的存储位置。按这种技术研制的存储器就是相联存储器。这是一种基于内容寻址的

33、存储器,又称按内容寻址存储器、并行搜索存储器和数据寻址存储器。,(b)全相联地址变换全相联地址变换通常采用目录表法,目录表存于相联存储器中,表的行数等于Cache的块数。查表时,将来自CPU的主存地址中m字段(主存块号或标记)作为关键字,同目录表中各行内容(已装入Cache的主存块号)进行相联比较,若查找成功(命中),则表示该主存块已装入Cache,取出对应的Cache块号,拼接块内地址后访问Cache。若查找不成功,表示该主存块未装入Cache。优点:块冲突概率低、Cache空间利用率高。 缺点:查表过程复杂、成本高。,例14:设主存有16个字块(M0 M15),Cache有4个字块(C0

34、C3),每块16字,则: 主存地址各字段:b = 4位,m = 4位 Cache地址各字段: b = 4位,c = 2位 当主存地址 = 0100 1010 时,地址变换为:,主存块号,块内地址,m位,b位,0 1 0 0,1010,1010,0 0 0 1,0 0 1 0,0 1 0 0,1 1 1 1,0 1,0 0,1 1,1 0,1 1,主存地址,Cache地址,访问Cache,目录表,2c行,比较,(2)直接映射指每个主存字块只能映射到Cache中一个指定的字块(多对一的映射关系)。映射规则为: i = j mod 2c 其中 i 为Cache块号,j 为主存块号,2c 为Cache

35、的字块数。主存中存储块的数据只能调入 Cache 中的对应位置。主存容量大于Cache 容量,因此会有多个主存块映射到同一个 Cache 块。,标记,标记,2c 个 字 块,t位,块0,块2c-1,Cache,块0,块2c-1,块2c,块2m-1,2b 个字,主存,直接(地址)映射,标记表,2c行,t位标记,相等比较,t位,c位,b位,c位,b位,命中,失效,m位,(主存块号),块内 地址,Cache块号,块内 地址,主存地址,Cache地址,地址变换,当主存第j块按 i = j mod 2c 装入Cache第i块时,其t位标记也装入Cache i 块对应的标记表项中。CPU访问Cache时,

36、映射与变换部件收到来自CPU的主存地址,根据c位字段选中标记表中的一行(标记),然后与主存地址中的t位标记比较。若相等(命中),则从主存地址中截取Cache地址,访问Cache。否则(失效)访问主存,将所需的字块按直接映射规则装入Cache,并改变相应的标记。优点:实现简单、成本低且速度快。 缺点:命中率低、块冲突率高且不灵活(即2t 个c位字段相同的主存字块只能对应唯一的Cache字块)。,例15:设主存有8个字块(M0 M7),Cache有4个字块(C0 C3),每块16字,则: 主存地址各字段:b = 4位,c = 2位,t = 1位,Cache,主存,映射,0,1,2,3,0,6,4,

37、5,7,3,2,1,比较,主存地址,Cache地址,t,c,b,1,10,1001,00,01,10,11,1,0,1,1,10,1001,访问Cache,变换,(3)组相联映射组相联映射是对直接映射和全相联映射的一种折衷,也是商用计算机中最为流行的高速缓存设计方案。两种实现组相联映射方法: (a)Cache分组,主存也分组(组间直接映射,组内全相联映射)。 (b)Cache分组,主存不分组,映射函数为:i =(j mod 2q) 2r + k ,0 k 2r - 1 其中i 为Cache块号,j 为主存块号,2q为Cache的组数, 2r为每组中的字块数。将Cache中的2c个字块分为2q个

38、组,每组2r个字块( 2r路组相联),则有c = q + r。主存第j个字块与2q个组之间是直接映射,与第j mod 2q组内2r个字块之间是全相联映射。,块0,块2r-1,块(2q-1)2r,组0,组 2q-1,块2c-1,Cache,块0,块2q-1,块2q,块2m-1,主存,组相联映射,组0,组2q-1,选中 一组,比较,命中,t位,q位,b位,主存地址,q位,r位,位b,2r行,2q行,访问Cache,Cache地址,失效,r位,t位,(目录表),地址变换,m位,例16:设主存容量为1KB,分为16块,每块64B,Cache容量为512B,分为2组,每组4块,每块64B,主存地址为10

39、11 000001,则: 主存地址各字段:b = 6位,q = 1位,t = 3位(m=4位) Cache地址各字段: b = 6位,r = 2位,q = 1位,组0,组1,Cache,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,映射,1 0 1,1,000001,000001,00,1,0 1 0,1 0 0,0 1 1,1 1 0,1 0 1,1 0 0,1 1 1,0 1 0,1 1,0 1,0 0,1 0,0 0,1 0,0 1,1 1,组0,组1,比较,主存地址,Cache 地址,访问Cache,变换,例17:假设主存容

40、量为512K16位,Cache容量为409616位,块长为4个16位的字,访存地址为字地址。 (1)在直接映射方式下,设计主存地址格式。 (2)在全相联映射方式下,设计主存地址格式。 (3)在4路组相联映射方式下,设计主存地址格式。,主存字块标记,Cache字块地址,字块内地址,7,10,2,主存字块标记,字块内地址,2,17,字块内地址,Cache组地址,主存字块标记,2,8,9,例18:设某机主存容量为16MB,Cache容量为8KB,每字块有8个字,每字32位。设计一个四路组相联映射的Cache组织。 (1)画出主存地址字段中各段的位数。 (2)设Cache初态为空,CPU依次从主存第0

41、,1,2,.99号单元读出100个字(主存一次读一个字),并重复此次序读10次,问命中率是多少? 解: (1)13 6 5(2)命中率 = (10010-13)/(100 10)=0.987 说明:按字节分组按字节分块儿,主存字块标记,Cache组地址,字块内地址,替换算法字块替换是指Cache中的旧字块被从主存传送来的新字块所替换的过程。 (1)先进先出(FIFO)算法替换Cache中驻留时间最长的字块。 例19:某程序在主存占5块,块地址流如下。当Cache为3块时,采用FIFO策略的替换过程为: 时刻: 1 2 3 4 5 6 7 8 9 10 11 12 地址流 1 2 3 4 1 2

42、 5 1 2 3 4 5,1,2 1,3 2 1,4 3 2,1 4 3,2 1 4,5 2 1,5 2 1,5 2 1,3 5 2,4 3 5,4 3 5,*,*,*,命中率 H = 3 /12 =25,(2)近期最少使用(LRU)算法替换Cache存储器中近期最少使用(即最不活跃)的旧字块。这种算法要随时记录Cache中各字块的使用情况,以便确定哪个字块是近期最少使用的字块。例20: 某程序在主存占5块,块地址流如下。当Cache为3块时,采用LRU策略的替换过程为: 时刻: 1 2 3 4 5 6 7 8 9 10 11 12 地址流:1 2 3 4 1 2 5 1 2 3 4 5,1,2 1,3 2 1,4 3 2,1 4 3,2 1 4,5 2 1,1 5 2,2 1 5,3 2 1,4 3 2,5 4 3,*,*,命中率 H = 2 /12 =17,练习,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1