搜档网
当前位置:搜档网 › 第五章 存储层次

第五章 存储层次

第五章 存储层次
第五章 存储层次

第5章存储层次

5.1解释下列术语

多级存储层次:采用不同的技术实现的存储器,处在离CPU不同距离的层次上,各存储器之间一般满足包容关系,即任何一层存储器中的内容都是其下一层(离CPU更远的一层)存储器中内容的子集。目标是达到离CPU最近的存储器的速度,最远的存储器的容量。

全相联映象:主存中的任一块可以被放置到Cache中任意一个地方。

直接映象:主存中的每一块只能被放置到Cache中唯一的一个地方。

组相联映象:主存中的每一块可以放置到Cache中唯一的一组中任何一个地方(Cache分成若干组,每组由若干块构成)。

替换算法:由于主存中的块比Cache中的块多,所以当要从主存中调一个块到Cache中时,会出现该块所映象到的一组(或一个)Cache块已全部被占用的情况。这时,需要被迫腾出其中的某一块,以接纳新调入的块。

LRU:选择最近最少被访问的块作为被替换的块。实际实现都是选择最久没有被访问的块作为被替换的块。

写直达法:在执行写操作时,不仅把信息写入Cache中相应的块,而且也写入下一级存储器中相应的块。

写回法:只把信息写入Cache中相应块,该块只有被替换时,才被写回主存。

按写分配法:写失效时,先把所写单元所在的块调入Cache,然后再进行写入。

不按写分配法:写失效时,直接写入下一级存储器中,而不把相应的块调入Cache。

命中时间:访问Cache命中时所用的时间。

失效率:CPU访存时,在一级存储器中找不到所需信息的概率。

失效开销:CPU向二级存储器发出访问请求到把这个数据调入一级存储器所需的时间。

强制性失效:当第一次访问一个块时,该块不在Cache中,需要从下一级存储器中调入Cache,这就是强制性失效。

容量失效:如果程序在执行时,所需要的块不能全部调入Cache中,则当某些块被替换后又重新被访问,就会产生失效,这种失效就称作容量失效。

冲突失效:在组相联或直接映象Cache中,若太多的块映象到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。

2:1Cache经验规则:大小为N的直接映象Cache的失效率约等于大小为N /2的两路组相联Cache的实效率。

相联度:在组相联中,每组Cache中的块数。

Victim Cache:位于Cache和存储器之间的又一级Cache,容量小,采用全相联策略。用于存放由于失效而被丢弃(替换)的那些块。每当失效发生时,在访问下一级存储器之前,先检查Victim Cache中是否含有所需块。

故障性预取:在预取时,若出现虚地址故障或违反保护权限,就会发生异常。

非故障性预取:在预取时,若出现虚地址故障或违反保护权限,不发生异常。

非阻塞Cache:Cache在等待预取数据返回时,还能继续提供指令和数据。

尽早重启动:在请求字没有到达时,CPU处于等待状态。一旦请求字到达,就立即发送给CPU,让等待的CPU尽早重启动,继续执行。

请求字优先:调块时,首先向存储器请求CPU所要的请求字。请求字一旦到达,就立即送往CPU,让CPU继续执行,同时从存储器调入该块的其余部分。

虚拟Cache:地址使用虚地址的Cache。

多体交叉存储器:具有多个存储体,各体之间按字交叉的存储技术。

存储体冲突:多个请求要访问同一个体。

TLB:一个专用高速存储器,用于存放近期经常使用的页表项,其内容是页表部分内容的一个副本。

5.2简述“Cache—主存”层次与“主存—辅存”层次的区别。

5.3地址映象方法有哪几种?它们各有什么优缺点?

答:(1) 全相联映象。实现查找的机制复杂,代价高,速度慢。Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。(2)直接映象。实现查找的机制简单,速度快。Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。(3)组相联映象。组相联是直接映象和全相联的一种折衷。

5.4降低Cache失效率有哪几种方法?简述其基本思想。

答:常用的降低Cache失效率的方法有下面几种:

(1)增加Cache块大小。增加块大小利用了程序的空间局部性。

(2)增加Cache的容量。

(3)提高相联度,降低冲突失效。

(4)伪相联Cache,降低冲突失效。当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果不命中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。

(5)硬件预取技术。在处理器提出访问请求前预取指令和数据。

(6)由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。

(7)编译器优化,通过对软件的优化来降低失效率。

(8)“牺牲”Cache。在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache 调入Cache。

5.5简述减小Cache失效开销的几种方法。

答:让读失效优先于写、写缓冲合并、请求字处理技术、非阻塞Cache或非锁定Cache 技术、采用二级Cache。

5.6 通过编译器对程序优化来改进Cache性能的方法有哪几种?简述其基本思想。

答:(1)数组合并。通过提高空间局部性来减少失效次数。有些程序同时用相同的索引来访问若干个数组的同一维,这些访问可能会相互干扰,导致冲突失效,可以将这些相互独立的数组合并成一个复合数组,使得一个Cache块中能包含全部所需元素。(2)内外循环交换。循环嵌套时,程序没有按数据在存储器中的顺序访问。只要简单地交换内外循环,就能使程序按数据在存储器中的存储顺序进行访问。(3)循环融合。有些程序含有几部分独立的程序段,它们用相同的循环访问同样的数组,对相同的数据作不同的运算。通过将它们融合成一个单一循环,能使读入Cache的数据被替换出去之前得到反复的使用。(4)分块。通过改进时间局部性来减少失效。分块不是对数组的整行或整列进行访问,而是对子矩阵或块进行操作。

5.7 在“Cache—主存”层次中,主存的更新算法有哪两种?它们各有什么特点?

答:(1)写直达法。易于实现,而且下一级存储器中的数据总是最新的。

(2)写回法。速度快,“写”操作能以Cache存储器的速度进行。而且对于同一单元的多个写最后只需一次写回下一级存储器,有些“写”只到达Cache,不到达主存,因而所使用的存储器频带较低。

5.8 组相联Cache的失效率比相同容量直接映象Cache的失效率低。由此能否得出结论:采用组相联一定能带来性能上的提高?为什么?

答:不一定。因为组相联命中率的提高是以增加命中时间为代价的,组相联需要增加多路选择开关。

5.9 写出三级Cache的平均访问时间的公式。

解:平均访存时间=命中时间+失效率×失效开销

只有第I层失效时才会访问第I+1。

设三级Cache的命中率分别为H L1、 H l2、 H L3,失效率分别为M l1、M l2、M L3,第三级Cache的失效开销为P L3。

平均访问时间T A =H L1+M l1{H l2+M l2(H L3+M L3×P L3)}

5.10 假设对指令Cache的访问占全部访问的75%;而对数据Cache的访问占全部访问的25%。Cache的命中时间为1个时钟周期,失效开销为50 个时钟周期,在混合Cache中一次load或store操作访问Cache的命中时间都要增加一个时钟周期,32KB的指令Cache 的失效率为0.39%,32KB的数据Cache的失效率为4.82%,64KB的混合Cache的失效率为1.35%。又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。试问指令Cache和数据Cache容量均为32KB的分离Cache和容量为64KB的混合Cache相比,哪种Cache的失效率更低?两种情况下平均访存时间各是多少?

解:(1)根据题意,约75%的访存为取指令。

因此,分离Cache的总体失效率为:(75%×0.15%)+(25%×3.77%)=1.055%;

容量为128KB的混合Cache的失效率略低一些,只有0.95%。

(2)平均访存时间公式可以分为指令访问和数据访问两部分:

平均访存时间=指令所占的百分比×(读命中时间+读失效率×失效开销)+数据所占的百分比×(数据命中时间+数据失效率×失效开销)

所以,两种结构的平均访存时间分别为:

分离Cache的平均访存时间=75%×(1+0.15%×50)+25%×(1+3.77%×50)

=(75%×1.075)+(25%×2.885)=1.5275

混合Cache的平均访存时间=75%×(1+0.95%×50)+25%×(1+1+0.95%×50)=(75%×1.475)+(25%×2.475)=1.725

因此,尽管分离Cache的实际失效率比混合Cache的高,但其平均访存时间反而较低。分离Cache提供了两个端口,消除了结构相关。

5.11 给定以下的假设,试计算直接映象Cache和两路组相联Cache的平均访问时间以及CPU的性能。由计算结果能得出什么结论?

(1)理想Cache情况下的CPI为2.0,时钟周期为2ns,平均每条指令访存1.2次;

(2)两者Cache容量均为64KB,块大小都是32字节;

(3)组相联Cache中的多路选择器使CPU的时钟周期增加了10%;

(4)这两种Cache的失效开销都是80ns;

(5)命中时间为1个时钟周期;

(6)64KB直接映象Cache的失效率为1.4%,64KB两路组相联Cache的失效率为

1.0%。

解:平均访问时间=命中时间+失效率×失效开销

平均访问时间1-路=2.0+1.4% *80=3.12ns

平均访问时间2-路=2.0*(1+10%)+1.0% *80=3.0ns

两路组相联的平均访问时间比较低

CPU time =(CPU 执行+存储等待周期)*时钟周期

CPU time =IC (CPI 执行+总失效次数/指令总数*失效开销) *时钟周期

=IC ((CPI 执行*时钟周期)+(每条指令的访存次数*失效率*失效开销*时钟周期)) CPU time 1-way =IC(2.0*2+1.2*0.014*80)=5.344IC

CPU time 2-way =IC(2.2*2+1.2*0.01*80)=5.36IC 相对性能比:=--1way time 2way

time CPU CPU 5.36/5.344=1.003

直接映象cache 的访问速度比两路组相联cache 要快1.04倍,而两路组相联Cache 的平均性能比直接映象cache 要高1.003倍。因此这里选择两路组相联。

5.12 假设一台计算机具有以下特性:

(1) 95%的访存在Cache 中命中;

(2) 块大小为两个字,且失效时整个块被调入;

(3) C PU 发出访存请求的速率为109字/s ;

(4) 25%的访存为写访问;

(5) 存储器的最大流量为109字/s (包括读和写);

(6) 主存每次只能读或写一个字;

(7) 在任何时候,Cache 中有30%的块被修改过;

(8) 写失效时,Cache 采用按写分配法。

现欲给该计算机增添一台外设,为此首先想知道主存的频带已用了多少。试对于以下两种情况计算主存频带的平均使用比例。

(1) 写直达Cache ;

(2) 写回法Cache 。

解:采用按写分配

(1)写直达cache 访问命中,有两种情况:

读命中,不访问主存;

写命中,更新cache 和主存,访问主存一次。

访问失效,有两种情况:

读失效,将主存中的块调入cache 中,访问主存两次;

写失效,将要写的块调入cache ,访问主存两次,再将修改的数据写入cache

和主存,访问主存一次,共三次。上述分析如下表所示。

一次访存请求最后真正的平均访存次数=(71.3%*0)+(23.8%*1)+(3.8%*2)+(1.3%*3)=0.35

已用带宽=0.35×109/10 9 =35.0%

(2)写回法cache 访问命中,有两种情况:

读命中,不访问主存;

写命中,不访问主存。采用写回法,只有当修改的cache块被换出时,才写入主存;

访问失效,有一个块将被换出,这也有两种情况:

如果被替换的块没有修改过,将主存中的块调入cache块中,访问主存两次;

如果被替换的块修改过,则首先将修改的块写入主存,需要访问主存两次;然后将主存中的块调入cache块中,需要访问主存两次,共四次访问主存。

所以:

一次访存请求最后真正的平均访存次数=66.5%*0+28.5%*0+3.5%*2+1.5%*4=0.13

已用带宽=0.13×10 9/10 9=13%

5.13 在伪相联中,假设在直接映象位置没有发现匹配,而在另一个位置才找到数据(伪命中)时,不对这两个位置的数据进行交换。这时只需要1个额外的周期。假设失效开销为50个时钟周期,2KB直接映象Cache的失效率为9.8%,2路组相联的失效率为7.6%;128KB 直接映象Cache的失效率为1.0%,2路组相联的失效率为0.7%。

(1)推导出平均访存时间的公式。

(2)利用(1)中得到的公式,对于2KBCache和128KBCache,计算伪相联的平均访存时间。

解:

不管作了何种改进,失效开销相同。不管是否交换内容,在同一“伪相联”组中的两块都是用同一个索引得到的,因此失效率相同,即:失效率伪相联=失效率2路。

伪相联cache的命中时间等于直接映象cache的命中时间加上伪相联查找过程中的命中时间*该命中所需的额外开销。

命中时间伪相联=命中时间1路+伪命中率伪相联×1

交换或不交换内容,伪相联的命中率都是由于在第一次失效时,将地址取反,再在第二次查找带来的。

因此伪命中率伪相联=命中率2路-命中率1路=(1-失效率2路)-(1-失效率1路)

=失效率1路-失效率2路。交换内容需要增加伪相联的额外开销。

平均访存时间伪相联=命中时间1路+(失效率1路-失效率2路)×1

+失效率2路×失效开销1路

将题设中的数据带入计算,得到:

平均访存时间2Kb=1+(0.098-0.076)*1+(0.076 *50 ) =4.822

平均访存时间128Kb=1+(0.010-0.007)*1+(0.007 *50 ) =1.353

显然是128KB的伪相联Cache要快一些。

5.14 假设采用理想存储器系统时的基本CPI是1.5,主存延迟是40个时钟周期;传输速率为4字节/时钟周期,且Cache中50%的块是修改过的。每个块中有32字节,20%的指

令是数据传送指令。并假设没有写缓存,在TLB 失效的情况下需要20时钟周期,TLB 不会降低Cache 命中率。CPU 产生指令地址或Cache 失效时产生的地址有0.2%没有在TLB 中找到。

(1) 在理想TLB 情况下,计算均采用写回法16KB 直接映象统一Cache 、16KB 两路组

相联统一Cache 和32KB 直接映象统一Cache 机器的实际CPI ;

(2) 在实际TLB 情况下,用(1)的结果,计算均采用写回法16KB 直接映象统一Cache 、

16KB 两路组相联统一Cache 和32KB 直接映象统一Cache 机器的实际CPI ;

其中假设16KB 直接映象统一Cache 、16KB 两路组相联统一Cache 和32KB 直接映象统一Cache 的失效率分别为2.9%、2.2%和2.0%;25%的访存为写访问。

解: CPI=CPI 执行+存储停顿周期数/指令数

存储停顿由下列原因引起:

● 从主存中取指令

● load 和store 指令访问数据

● 由TLB 引起

()指令数

停顿)++(指令数存储停顿周期数失效开销失效率指令数

存储访问=指令数停顿周期数指令数

停顿数据访问停顿++指令数取指令停顿=指令数存储停顿周期数数据数据数据指令指令TLB P R f P R TLB =?? (1)对于理想TLB ,TLB 失效开销为0。而对于统一Cache ,R 指令=R 数据

P 指令=主存延迟+传输一个块需要使用的时间=40+32/4=48(拍)

若为读失效,P 数据=主存延迟+传输一个块需要使用的时间=40+32/4=48(拍) 若为写失效,且块是干净的,

P 数据=主存延迟+传输一个块需要使用的时间=40+32/4=48(拍)

若为写失效,且块是脏的,

P 数据=主存延迟+传输两个块需要使用的时间=40+64/4=56(拍)

CPI=1.5+[RP+(RP*20%)+0 ]

指令访存全是读,而数据传输指令Load 或Store 指令,

f 数据*P 数据=读百分比*(f 数据*P 数据)+写百分比*(f 数据*P 干净数据*其对应的百分比

+f 数据*P 脏数据*其对应的百分比)

=20%*(75%×48+25%*(50%*48+50%*(48+16)))=50(拍)

代入上述公式计算出结果为:

(2)

失效开销失效率)存储访问次数

访问指令数存储访问次数(指令数停顿TLB TLB TLB TLB ???= 将f 数据(数据访问指令频率),R t 和P t

(分别是TLB 的失效率和失效开销),R c 和P w (分别是Cache 的失效率和写回的频率)代入公式得:

TLB 停顿/指令数={[1+f 数据]*[R c (1+R w )]}R t P t

其中,1+f数据:每条指令的访问内存次数;R c(1+R w):每次内存访问需要的TLB访问次数。

由条件得:TLB停顿/指令数={[1+20%]*[R c(1+25%)]}0.2%×20

[考研类试卷]计算机专业基础综合(存储器系统的层次结构)模拟试卷2.doc

[考研类试卷]计算机专业基础综合(存储器系统的层次结构)模拟试卷 2 一、单项选择题 1-40小题,每小题2分,共80分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。 1 下列关于DRAM和SRAM的说法中,错误的是( )。 Ⅰ.SRAM不是易失性存储器,而DRAM是易失性存储器 Ⅱ.DRAM比SRAM集成度更高,因此读写速度也更快 Ⅲ.主存只能由DRAM构成,而高速缓存只能由SRAM构成 Ⅳ.与SRAM相比,DRAM由于需要刷新,所以功耗较高 (A)Ⅱ、Ⅲ和Ⅳ (B)Ⅰ、Ⅲ和Ⅳ (C)Ⅰ、Ⅱ和Ⅲ (D)Ⅰ、Ⅱ、Ⅲ和Ⅳ 2 某机字长32位,主存容量1 MB,按字编址,块长512 B,Cache共可存放16个块,采用直接映射方式,则Cache地址长度为( )。 (A)11位 (B)13位 (C)18位 (D)20位 3 在Cache和主存构成的两级存储体系中,Cache的存取时间是100ns,主存的存取时间是1000ns。如果希望有效(平均)存取时间不超过(;ache存取时间的15%,则Cache的命中率至少应为( )。

(A)90% (B)98% (C)95% (D)99% 4 下列关于Cache写策略的论述中,错误的是( )。 (A)全写法(写直达法)充分保证Cache与主存的一致性 (B)采用全写法时,不需要为Cache行设置“脏位/修改位” (C)写回法(回写法)降低了主存带宽需求(即减少了Cache与主存之间的通信量) (D)多处理器系统通常采用写回法 5 假定用若干个8K×8位的芯片组成一个32K×32位的存储器,则地址41FDH所在芯片的最大地址是( )。 (A)0000H (B)4FFFH (C)5FFFH (D)7FFFH 6 某机器采用四体低位交叉存储器,现分别执行下述操作: (1)读取6个连续地址单元中存放的存储字,重复80次; (2)读取8个连续地址单元中存放的存储字,重复60次; 则(1)、(2)所花时间之比为( )。 (A)1:1

存储层次

第五章存储层次 5.1名词解释 1.存储层次——采用不同的技术实现的存储器,处在离CPU不同距离的层次上,目标是达到离CPU最近的存储器的速度,最远的存储器的容量。 2.全相联映象——主存中的任一块可以被放置到Cache中任意一个地方。 3.直接映象——主存中的每一块只能被放置到Cache中唯一的一个地方。 4.组相联映象——主存中的每一块可以放置到Cache中唯一的一组中任何一个地方(Cache 分成若干组,每组由若干块构成)。 5.替换算法——由于主存中的块比Cache中的块多,所以当要从主存中调一个块到Cache 中时,会出现该块所映象到的一组(或一个)Cache块已全部被占用的情况。这时,需要被迫腾出其中的某一块,以接纳新调入的块。 6.L RU——选择最近最少被访问的块作为被替换的块。实际实现都是选择最久没有被访问的块作为被替换的块。 7.写直达法——在执行写操作时,不仅把信息写入Cache中相应的块,而且也写入下一级存储器中相应的块。 8.写回法——只把信息写入Cache中相应块,该块只有被替换时,才被写回主存。 9.按写分配法——写失效时,先把所写单元所在的块调入Cache,然后再进行写入。10.不按写分配法——写失效时,直接写入下一级存储器中,而不把相应的块调入Cache。11.写合并——在往缓冲器写入地址和数据时,如果缓冲器中存在被修改过的块,就检查其地址,看看本次写入数据的地址是否和缓冲器内某个有效块的地址匹配。如果匹配,就将新数据与该块合并。 12.命中时间——访问Cache命中时所用的时间。 13.失效率——CPU访存时,在一级存储器中找不到所需信息的概率。 14.失效开销——CPU向二级存储器发出访问请求到把这个数据调入一级存储器所需的时间。 15.强制性失效——当第一次访问一个块时,该块不在Cache中,需要从下一级存储器中调入Cache,这就是强制性失效。 16.容量失效——如果程序在执行时,所需要的块不能全部调入Cache中,则当某些块被替换后又重新被访问,就会产生失效,这种失效就称作容量失效。 17.冲突失效——在组相联或直接映象Cache中,若太多的块映象到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。 18.2:1Cache经验规则——大小为N的直接映象Cache的失效率约等于大小为N /2的两路组相联Cache的实效率。 19.相联度——在组相联中,每组Cache中的块数。 20.V ictim Cache——位于Cache和存储器之间的又一级Cache,容量小,采用全相联策略。 用于存放由于失效而被丢弃(替换)的那些块。每当失效发生时,在访问下一级存储器之前,先检查Victim Cache中是否含有所需块。 21.伪相联Cache——一种既能获得多路组相联Cache的低失效率,又能获得直接映象Cache 的命中速度的相联办法。 22.故障性预取——在预取时,若出现虚地址故障或违反保护权限,就会发生异常。23.非故障性预取——在预取时,若出现虚地址故障或违反保护权限,不发生异常。

第7章 存储器分层体系结构 复习要点

第7章存储器分层体系结构复习要点 一、存储器概述和存储器芯片 1. 熟悉随机存取存储器、顺序存取存储器、直接存取存储器、相联存储器、只读存储器、读写存储器、非易失(不挥发)性存储器、易失(挥发)性存储器、静态存储器、动态存储器这些名称的含义。这些类型的存储器在计算机的层次结构存储系统中 按工作性质/存取方式分类: 随机存取存储器(RAM) :每个单元读写时间一样,且与各单元所在位置无关。如:内存。(注:原意主要强调地址译码时间相同。现在的DRAM芯片采用行缓冲,因而可能因为位置不同而使访问时间有所差别。) 顺序存取存储器(SAM):数据按顺序从存储载体的始端读出或写入,因而存取时间的长短与信息所在位置有关。例如:磁带。 直接存取存储器(DAM):直接定位到读写数据块,在读写数据块时按顺序进行。如磁盘。相联存储器(AM/CAM):按内容检索到存储位置进行读写。例如:快表。 按信息的可更改性分类: 读写存储器(Read / Write Memory):可读可写。 只读存储器(Read Only Memory):只能读不能写。 按断电后信息的可保存性分类: 非易失(不挥发)性存储器(Nonvolatile Memory) 信息可一直保留,不需电源维持。(如:ROM、磁表面存储器、光存储器等) 易失(挥发)性存储器(Volatile Memory) 电源关闭时信息自动丢失。(如:RAM、Cache)按功能/容量/速度/所在位置分类: 寄存器(Register)封装在CPU内,用于存放当前正在执行的指令和使用的数据;用触发器

实现,速度快,容量小(几~几十个)。 高速缓存(Cache)位于CPU内部或附近,用来存放当前要执行的局部程序段和数据;用SRAM实现,速度可与CPU匹配,容量小(几MB)。 内存储器MM(主存储器Main (Primary) Memory)位于CPU之外,用来存放已被启动的程序及所用的数据;用DRAM实现,速度较快,容量较大(几GB)。 外存储器AM (辅助存储器Auxiliary / Secondary Storage)位于主机之外,用来存放暂不运行的程序、数据或存档文件;用磁表面或光存储器实现,容量大而速度慢。 2. 层次结构存储系统中的寄存器、高速缓存、内存(主存)、外存它们所在的位置、工作速度、存储容量、成本等的相对大小和大致的数量级。这些存储器和前述各类存储器之间的对应关系。 3. 静态存储器和动态存储器的基本工作机制;动态存储器刷新的概念,按行刷新的含义。最大刷新周期的确定的依据是什么。DRAM的集中刷新、分散刷新和异步刷新的刷新操作与正常访存分别是如何安排的? 4. 了解SDRAM芯片中的突发传输方式 二、存储器容量的扩展及其与CPU的连接 1. 位扩展、字扩展、字位扩展方式,系统存储容量的计算,芯片数的计算,这几种扩展方式下的芯片(组)与片选信号的地址线分配,各芯片(组)的地址范围的计算、划分。片选信号用地址信号表示的逻辑表达式。 三、高速缓冲存储器(cache) 1. 直接映射、全相联映射、组相联映射三种方式映射关系;三种方式下的主存地址与cache 的行、内容之间的对应关系;cache容量的计算方法,注意区分数据区、标记、有效位。 2. CPU对cache的访问时,直接映射采用的是按地址进行查找的方法,而全相联映射采用

第6章 存储器层次结构

n局部性原理★ n存储器层次结构☆n高速缓存存储器☆

n到目前为止的计算机模型中,我们假设计算机的存储器系统是一个线性的字节数组,而CPU能够在一个常数时间内访问每个存储器位置。但它没有反映现代系统实际的工作方式。 n实际上,存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。 n如果你的程序需要的数据是存储在CPU寄存器中,那在指令的执行期间,在零个周期内就能访问到它们;如果存储在高速缓存中,需要1~30个周期;如存储在主存中,需要50~200个周期;如存储在磁盘上,需要大约几千万个周期 n作为一个程序员,需要理解存储器层次结构,它对应用程序的性能有着巨大的影响,这是因为计算机程序的一个称为局部性的基本属性引起的。

?不同矩阵乘法核心程序执行相同数量的算术操作,但有不同程度局部性,它们运行时间可以相差20倍 ?本章将介绍基本的存储技术、局部性、高速缓冲存储器等内容。

n局部性原理★ n存储器层次结构☆n高速缓存存储器☆

?RAM(随机访问存储器,Random-Access Memory )–静态RAM (SRAM) ?每个cell使用6个晶体管电路存储一个位 ?只要有电,就会无限期地保存它的值 ?相对来说,对电子噪声等干扰不敏感 ?比DRAM更快、更贵 –动态RAM (DRAM) ?每个cell使用1个电容和1个访问晶体管电路存储一个位 ?每隔10-100 ms必须刷新值 ?对干扰敏感 ?比SRAM慢,便宜 ü拍、太、吉、兆、千、毫、微、纳(毫微)、皮(微微)、飞(毫微微)

?传统DRAM芯片 –所有cell被组织为d个supercell,每个supercell包含了w个cell,一个d×w的DRAM总共存储了dw位信息。supercell被组织成r行c 列的矩阵,即rc=d。

第五章 存储层次

第5章存储层次 5.1解释下列术语 多级存储层次:采用不同的技术实现的存储器,处在离CPU不同距离的层次上,各存储器之间一般满足包容关系,即任何一层存储器中的内容都是其下一层(离CPU更远的一层)存储器中内容的子集。目标是达到离CPU最近的存储器的速度,最远的存储器的容量。 全相联映象:主存中的任一块可以被放置到Cache中任意一个地方。 直接映象:主存中的每一块只能被放置到Cache中唯一的一个地方。 组相联映象:主存中的每一块可以放置到Cache中唯一的一组中任何一个地方(Cache分成若干组,每组由若干块构成)。 替换算法:由于主存中的块比Cache中的块多,所以当要从主存中调一个块到Cache中时,会出现该块所映象到的一组(或一个)Cache块已全部被占用的情况。这时,需要被迫腾出其中的某一块,以接纳新调入的块。 LRU:选择最近最少被访问的块作为被替换的块。实际实现都是选择最久没有被访问的块作为被替换的块。 写直达法:在执行写操作时,不仅把信息写入Cache中相应的块,而且也写入下一级存储器中相应的块。 写回法:只把信息写入Cache中相应块,该块只有被替换时,才被写回主存。 按写分配法:写失效时,先把所写单元所在的块调入Cache,然后再进行写入。 不按写分配法:写失效时,直接写入下一级存储器中,而不把相应的块调入Cache。 命中时间:访问Cache命中时所用的时间。 失效率:CPU访存时,在一级存储器中找不到所需信息的概率。 失效开销:CPU向二级存储器发出访问请求到把这个数据调入一级存储器所需的时间。 强制性失效:当第一次访问一个块时,该块不在Cache中,需要从下一级存储器中调入Cache,这就是强制性失效。 容量失效:如果程序在执行时,所需要的块不能全部调入Cache中,则当某些块被替换后又重新被访问,就会产生失效,这种失效就称作容量失效。 冲突失效:在组相联或直接映象Cache中,若太多的块映象到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。

存储层次

第5章存储层次 存储器的三个主要指标 从用户的角度来看,存储器的三个主要指标是:容量、速度和价格。 多级存储层次 由若干个采用不同实现技术的存储器构成的存储器系统。各存储器处在离CPU不同距离的层次上。其目标是速度接近于离CPU最近的存储器的速度,容量达到离CPU最远的存储器的容量。 命中率H CPU在第一级存储器中找到所需数据的概率。 不命中率或失效率F CPU在第一级存储器中找不到所需数据的概率。 失效开销 CPU向第二级存储器发出访问请求到把这个数据块调入第一级存储器所需的时间。 平均访问时间T A T A=命中时间+失效率×失效开销 “Cache-主存”层次 在CPU和主存之间增加一级速度快、但容量较小而每位价格较贵的高速缓冲存储器。借助于辅助软硬件,它与主存构成一个有机的整体,以弥补主存速度的不足。 “主存-辅存”层次 “主存—辅存”层次的目的是为了弥补主存容量的不足。它是在主存外面增加一个容量更大、每位价格更便宜、但速度更慢的存储器。它们依靠辅助软硬件的作用,构成一个整体。 全相联映像 当把一个块从主存调入Cache时,它可以被放置到Cache中的任意一个位置。 直接映像 当把一个块从主存调入Cache时,它只能被放置到Cache中唯一的一个位置。 组相联映像 当把一个块从主存调入Cache时,它可以被放置到Cache中唯一的一个组中的任何一个位置(Cache被等分为若干组,每组由若干个块构成)。 n路组相联 在组相联映像中,如果每组中有n个块,则称该映像规则为n路组相联。

组相联映像中每组中的块数。 目录表 目录表所包含的项数与Cache的块数相同,每一项对应于Cache中的一个块,用于指出当前该块中存放的信息是哪个主存块的。 候选位置 一个主存块可能映像到Cache中的一个或多个Cache块位置,这些Cache块位置称为候选位置。 随机法 随机地选择被替换的块。 先进先出法(FIFO) 选择最早调入的块作为被替换的块。 最近最少使用法(LRU) 选择近期最少被访问的块作为被替换的块。 写直达法 在执行“写”操作时,不仅把信息写入Cache中相应的块,而且也写入下一级存储器中相应的块。 写回法 在执行“写”操作时,只把信息写入Cache中相应的块。该块只有在被替换时,才被写回主存。 按写分配法 写失效时,先把所写单元所在的块调入Cache,然后再进行写入。 不按写分配法 写失效时,直接写入下一级存储器中,而不把相应的块调入Cache。 分离Cache 将单一的Cache分为两个Cache:一个专门存放指令,另一个专门存放数据。 混合Cache 将指令和数据放在一个统一的Cache中。 强制性失效 当第一次访问一个块时,该块不在Cache中,需从下一级存储器中调入Cache,这就是强制性失效。

相关主题