有一个两层的存储器层次结构M1和M2M1的命中率用h表示汇总.docx
《有一个两层的存储器层次结构M1和M2M1的命中率用h表示汇总.docx》由会员分享,可在线阅读,更多相关《有一个两层的存储器层次结构M1和M2M1的命中率用h表示汇总.docx(23页珍藏版)》请在冰豆网上搜索。
有一个两层的存储器层次结构M1和M2M1的命中率用h表示汇总
1.有一个两层的存储器层次结构:
M1和M2。
M1的命中率用h表示,并分别令c1和c2为每千字节的成本,s1和s2为存储器容量,t1和t2为存取时间。
(a)在什么条件下,整个存储器系统的平均成本会接近于c2?
(b)该层次结构的存储器有效存取时间ta是多少?
(c)令两层存储器的速度比r=t2/t1,并令E=t1/ta为存储系统的存取效率。
试以r和h来表示E。
(d)如果r=100,为使E>0.95,要求的命中率h是多少?
答:
(a)总成本Tc=s1*c1+s2*c2;
平均成本c=Tc/(s1+s2)=(s1*c1+s2*c2)/(s1+s2);
所以,当s1<s2*c2/s2=c2。
(b)ta=h*t1+(1-h)*t2。
(c)E=t1/ta=t1/[h*t1+(1-h)*t2]=1/[h+(1-h)*r]。
(d)r=100,即要求1/(100-99h)>0.95
可解得h>0.9995。
2.求完成一个两层存储系统的容量设计。
第一层M1是高速缓存,其容量有三种选择:
64K字节、128K字节和256K字节。
第二层M2是主存储器,其容量为4M字节。
分别令c1和c2是每个字节的成本,t1和t2是M1和M2的存取时间。
假定c1=20c2和t2=10t1,三种容量高速缓存的命中率分别为0.7,0.9和0.98。
(a)在t1=20ns的条件下,三种高速缓存的平均存取时间ta是多少?
(注意:
t1是从CPU到M1的时间。
t2是从CPU到M2的时间,不是从M1到M2的时间)。
(b)如果c2=0.2美元/K字节,试说明整个存储器层次结构的平均字节成本。
(c)对三种存储器的设计作一比较,并分别按平均成本和平均存取时间指出它们性能的排列次序。
再根据平均成本和平均存取时间的乘积,选择最佳设计。
答:
(a)t1=20ns,t2=10t1=200ns;
M1=64K, h=0.7,ta=h*t1+(1-h)*t2=74ns
M2=128K,h=0.9,ta=h*t1+(1-h)*t2=38ns
M3=256K,h=0.98,ta=h*t1+(1-h)*t2=23.6ns
(b)c2=0.2美元,c1=20c2=4美元/K字节;
M1=64K,c=(c1*s1+c2*s2)/(s1+s2)=0.26美元/K字节
M2=128K,c=(c1*s1+c2*s2)/(s1+s2)=0.32美元/K字节
M3=256K,c=(c1*s1+c2*s2)/(s1+s2)=0.42美元/K字节
(c)按平均成本:
64K―>128K―>256K成本增加
按存取时间:
256K―>128K―>64K存取时间增加
乘积:
mul1=19.24,mul2=12.16,mul3=9.912
所以最佳设计应该是256K方案
3.解释有关术语:
(a)虚拟地址空间:
也称虚存空间或虚拟存储器空间,它是应用程序员用来编写程序的地址空间,这个地址空间非常大。
(b)物理地址空间:
主存储器中的所有存储字构成物理地址空间。
(c)地址映象:
是把虚拟地址空间映象到主存地址空间,具体地说,就是把用户用虚拟地址编写的程序按照某种规则装入到主存储器中,并建立多用户虚地址与主存实地址之间的对应关系。
(d)高速缓存块:
高速缓存被分成高速缓存块,又称高速缓存行,它是高速缓存和主存储器间数据传送的单位。
(e)多级页表:
多级页表是用来扩充直接页面映象的技术,采用多级分页的目的是要扩展存储器空间并能在存储器层次结构的不同层次上提供更为完善的页面访问保护,但多级分页生成所需的物理地址要站占用较长的时间,这是因为要访问一系列页表,需要做多次存储器访问。
4.有关标量RISC或超标量RISC处理机设计的问题:
什么是大型寄存器堆和大型D高速缓存之间的折衷设计方案?
为什么在超标量处理机中需要有保存站或排序缓冲器?
答:
可以同时采用一个大寄存器堆和分开的I和D高速缓存,有利于内部数据定向并可将中间结果不必要的存储省掉。
保存站和重排序缓冲器可用于建立指令窗口,其目的是为了支持指令先行和内部数据定向,这对于调度多条指令同时通过多条流水线是需要的。
5.讨论采用指令与数据合一的高速缓存和分开的高速缓存的优缺点。
答:
指令与数据合一的高速缓存必须共享同一条数据/指令通路。
指令与数据分开的高速缓存,可以使用不同的存取通路。
6.试说明多层次存储器层次结构的包含性和存储器一致性要求,以及写直达和写回策略在保持相邻层一致性方面的区别。
答:
包含性表示为M1
M2
M3
,…
Mn-1
Mn。
这意味着所有信息项最初是存放在最外层Mn的。
一致性要求同一个信息项与后继存储器层次上的副本是一致的。
写直达是指:
如果在Mi修改了一个字,则在Mi+1中需要立即修改。
写回是指:
在Mi+1中的修改延迟到Mi中正在修改的字被替换或从Mi中消除后才进行。
7.试说明分页与分段在层次结构中管理物理与虚拟存储器的基本概念。
答:
分页:
是一种把物理存储器和虚拟存储器都划分为固定大小页面的技术。
它们之间的信息交换是在页面一级进行的。
页表用于页面和页面框架之间的映象,它们是应用程序创建用户进程时在主存储器内实现的。
分段:
段是用户定义的虚拟地址空间的一部分,分散的页面可逻辑上连在一起形成一个段。
将虚拟地址空间分段可以使多个用户程序同时共享大量页面。
8.一个两层存储器系统有8个磁盘上的虚拟页面已被影射到主存储器的4个页面框架(PF)中。
某程序产生以下的页面踪迹:
1,0,2,2,1,7,6,7,0,1,2,0,3,0,4,5,1,5,2,4,5,6,7,6,7,2,4,2,7,3,3,2,3
(a)根据上述页面踪迹采用LRU替换策略指出驻留在4K页面框架中的相继虚拟页面。
计算在主存储器中的命中率。
假定PF最初是空的。
(b)采用环形FIFO页面替换策略,重复(a)。
计算在主存储器中的命中率。
(c)比较(a)和(b)中的命中率并根据这一特定的页面踪迹对环形FIFO策略的效果比较接近LRU策略作一评论。
答:
(a)(b)
PF
1
0
2
2
1
7
6
7
0
1
2
0
3
0
4
5
LRU
a
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
b
0
0
0
0
0
6
6
6
6
2
2
2
2
2
5
c
2
2
2
2
2
2
0
0
0
0
0
0
0
0
d
7
7
7
7
7
7
7
3
3
3
3
缺失
*
*
*
*
*
*
*
*
*
*
环形FIFO
a
1
1
1
1
1
1
6
6
6
6
6
6
6
6
4
4
b
0
0
0
0
0
0
0
0
1
1
1
1
1
1
5
c
2
2
2
2
2
2
2
2
2
0
0
0
0
0
d
7
7
7
7
7
7
7
3
3
3
3
缺失
*
*
*
*
*
*
*
*
*
*
PF
1
5
2
4
5
6
7
6
7
2
4
2
7
3
3
2
3
命中率
LRU
a
4
4
4
4
4
4
4
4
4
2
2
2
2
2
2
2
2
16/33
b
5
5
5
5
5
5
5
5
5
5
4
4
4
4
4
4
4
c
0
0
2
2
2
2
7
7
7
7
7
7
7
7
7
7
7
d
1
1
1
1
1
6
6
6
6
6
6
6
6
3
3
3
3
缺失
*
*
*
*
*
*
*
环形FIFO
a
4
4
4
4
4
6
6
6
6
6
6
6
6
6
6
2
2
16/33
b
5
5
5
5
5
5
7
7
7
7
7
7
7
7
7
7
7
c
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
4
d
3
3
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
缺失
*
*
*
*
*
*
*
(c)对本题中的特定页面踪迹来说,两种替换策略的命中率一样。
环形FIFO策略近似于用简单环形队列来实现LRU,其性能介于LRU和FIFO之间。
但是,任何策略与其他策略相比,由于其性能还与程序行为和页面框架的运行状态有关,因而都没有确定的优势。
9.试说明在存储器层次结构中与程序/数据存取有关的时间局部性、空间局部性和顺序局部性。
答:
时间局部性:
最近的访问项(指令或数据)很可能在不久的将来再次被访问。
这种情况一般是由特殊的程序结构诸如迭代循环、进程堆栈、暂时变量或子程序引起的。
一旦进入循环或调用了子程序,一个短代码段将被重复访问许多次。
因此,时间局部性往往会引起对最近使用区域的集中访问。
空间局部性:
表示一种趋势,指的是一个进程访问的各项其地址彼此很近。
例如,表操作或数组操作就会对地址空间中某一区域集中进行访问。
程序段,如子程序和宏,往往会访问在存储器空间的同一邻域。
顺序局部性:
在典型程序中,除非转移指令产生不按次序的转移外,指令都是顺序(或程序顺序)执行的。
10.什么是工作集?
试评述观察窗口大小对工作集大小的灵敏度。
这对主存储器命中率将有什么影响?
答:
工作集:
给定时间窗口范围内被访问的地址(或页面)子集称为工作集。
当窗口到达一定大小,工作集将不会有显著的变化。
由于存在着局部性,所以不会产生大量的缺失,从而提高主存储器的命中率。
11.什么是90-10规则?
它和访问局部性的关系如何?
答:
90-10规则就是指典型程序在其10%的代码上可能要耗费其执行时间的90%,例如嵌套循环操作的最内层循环就是这种代码。
这个规则从程序执行的角度描述了访问的局部性,即存储器的存取在时间、空间和次序上往往都集中在一定范围内进行。
12.设有一个两层存储器层次结构M1和M2,存取时间、每个字成本和容量分别是t1和t2、c1和c2以及s1和s2。
在第一层,高速缓存的命中率h1=0.95(注意,t2是CPU和M2之间的存取时间,而不是M1和M2之间的存取时间)。
(a)推导表示该存储器有效存取时间T的公式。
(b)推导表示该存储器总成本的公式。
(c)假设t1=20ns,t2是未知数,s1=512字节,s2是未知数,c1=0.01美元/字节,c2=0.0005美元/字节。
高速缓存和主存储器总成本的上限是15000美元。
(i)在不超过预算限制的范围内,可能得到M2的容量有多大(s2=?
)?
(ii)在上述命中率假设的条件下,为使整个存储器系统的有效存取时间T=40ns,主存储器应该有多快(t2=?
)?
答:
(a)T=h1*t1+(1-h1)*t2=0.95*t1+0.05*t2
(b)Cost=c1*s1+c2*s2
(c)(i)Cost=c1*s1+c2*s2=0.01*512+0.0005*s2≤15000
解得s2≤28.6M
(ii)T=0.95*t1+0.05*t2=0.95*20+0.05*t2=40
解得t2=420ns
13.解释有关术语:
(a)命中率:
命中率是为存储器层次结构中任意两个相邻层次而定义的一个概念,当在Mi中找到一个信息项时,称之为命中,反之称之为缺失。
在Mi层的命中率就是信息项可在Mi中找到的概率。
(b)缺页:
如果所需要的页面在PT(页表)中找不到,则报告缺页。
缺页表示所访问的页面并没有驻留在主存储器中。
(c)散列函数:
散列是一种简单的计算机技术,它可以用较少位数把长页号转换为短页号,散列函数应将虚拟页号随机化并产生唯一的散列号用作指针。
(d)倒置页表:
倒置页表只包括当前驻留在物理存储器的虚拟页面,从而有效减少了页表的大小,地址转换映象用倒置映象实现,且其大小是由物理空间的大小决定的。
(e)存储器替换策略:
存储器替换策略包括为活动进程分配与再分配存储器页面以及存储器页面的替换。
14.试解释以下与高速缓存结构有关的术语:
(a)低位存储器交叉存取:
低位交叉存取将邻接的存储器单元沿横向放在m个模块中,这意味着存储器地址的低a位用来指明存储器模块,高b位则是每个模块内的字地址。
(b)物理地址与虚拟地址高速缓存的比较:
当可用物理地址对高速缓存进行访问时,则称其为物理物理地址高速缓存。
当高速缓存的索引或标记用虚拟地址表示时,则称其为虚拟地址高速缓存。
15.试解释以下与高速缓存设计有关的术语:
(a)写直达与写回高速缓存的比较:
写直达策略直接将数据写入主存储器。
写回策略产生延迟直到把块替换为止,才将数据写入主存储器。
(b)可高速缓存与不可高速缓存数据的比较:
可写的共享数据不存放在高速缓存中,这称为共享数据是不可存放在高速缓存中,只有指令和私有数据可以存放在本地高速缓存中。
共享数据包括锁、进程队和由临界区保护的任何其它数据结构。
编译器必须将数据标记成为可以存放在高速缓存和不可高速缓存两种,而且还必须使用专门的硬件标记来加以区别。
(c)私用高速缓存与共享高速缓存的比较:
私用高速缓存为处理机所独有。
共享高速缓存为各处理机所共享,有利于彻底解决高速缓存的一致性。
(d)高速缓存冲洗策略:
多个进程可能会使用同一个虚拟地址范围,如果两个或多个进程访问高速缓存同一个物理单元时,那么这种别名问题可能会造成混乱,解决别名问题的一种办法是每当发生别名使用时,将整个高速缓存冲洗一遍。
(e)影响高速缓存命中率的因素:
高速缓存的命中率将以不同的方式受到高速缓存容量与块大小的影响。
在组联想高速缓存中,组数的影响也是明显的。
16.假定一个高速缓存(M1)和存储器(M2)的层次结构有以下性能:
M1:
16K字,存取时间为50ns。
M2:
1M字,存取时间为400ns。
高速缓存块为8个字,组的大小为256个字,采用组联想映射;
(a)表示出M2与M1之间的映射关系;
(b)计算高速缓存命中率h=0.95时的有效存储器存取时间。
答:
(a)块数m=16K/8=2K,组数v=16K/256=64,路数k=2K/64=32
块号为block的主存储器在高速缓存中的地址为:
第(block%64)组中32块的其中一块。
(b)Teff=t1*h+t2*(1-h)=50*0.95+400*0.05=67.5ns
17.设有一个主存储器,它包含4个存储器模块,每个模块有256个字。
再假定每个高速缓存块中有16个字,高速缓存的总容量是256个字。
使用组联想映射将高速缓存块定位到块框中。
高速缓存被分成4组。
(a)说明在主存储器的4路低位交叉存取结构中全部1024个字的地址分配。
(b)主存储器有多少块?
高速缓存有多少块框?
(c)说明在两层存储器系统中对每个字进行寻址所需的位字段。
(d)表示出从主存储器的块到高速缓存的组的映射关系,并解释如何利用标记字段在每组范围内定位一个块框。
答:
(a)设主存地址为addr,则其在第(addr%4)个模块中,模块内的偏移地址为(addr/4)。
(b)主存储器有64块,高速缓存有16块框。
(c)主存储器地址为:
标记为高4位,2位组地址,4位字地址
(d)设主存地址为addr,则其在高速缓存的第((addr/16)%4)组,将标记字段与本组的4个标记进行比较,有一致的,则命中此块框。
18.一个单处理机系统使用分开的指令高速缓存和数据高速缓存,它们的命中率分别是hi与hd。
从处理机到每个高速缓存的存取时间是c个时钟周期,高速缓存与主存储器之间块的传送时间是b个时钟周期。
在CPU进行的所有访存操作中,fi是访问指令的百分比,在高速缓存内所有的替换块中,fdir是页面重写块的百分比(页面重写是指高速缓存的副本与存储器的副本不同)。
假定用写回策略,试根据本存储器系统的hi,hd,c,b,fi及fdir确定有效存储器存取时间。
答:
T=fi*[hi*c+(1―hi)*(c+b)]+(1―fi)*[hd*c+(1―hd)*(c+b)(1-fdir)+(1―hd)*fdir*(2b+c)]
19.利用18题中所讨论的处理机存储器系统,构造一个基于总线的共享存储器多处理机。
假定命中率与存取时间保持与18题相同。
但是,由于每台处理机现在必须处理除读与写之外的高速缓存无效问题,因此有效存储器存取时间将是不一样的。
设finv是造成无效信号向其他高速缓存发送的数据访问的百分率。
处理机发送无效信号并需要i个时钟周期去完成无效操作。
其他处理机则与无效过程无关。
假定仍然使用写回策略,试确定该处理机的有效存储器存取时间。
答:
T=fi*[hi*c+(1―hi)*(c+b)]+(1―fi)*[hd*c+(1―hd)*(c+b)(1-fdir)+(1―hd)*fdir*(2b+c)]
T’=T+(1-fi)*finv*i
20.假定有一个处理机台数为p的共享存储器多处理机系统。
设m为典型处理机每条指令执行时对全局存储器进行访问的平均次数。
设t为共享存储器的平均存取时间,x为使用本地存储器的单处理机MIPS速率。
再假定在多处理机的每台处理机上执行n条指令。
(a)根据参数m,t,x,n和p,确定多处理机的有效MIPS速率。
(b)假设一台多处理机有p=32台RISC处理机,m=0.4,t=1us,要使多处理机的有效性能达到56MIPS,需要每台处理机的MIPS速率是多少(即x=?
)?
(c)假设有p=32台CISC处理机用在上述多处理机系统中,每台处理机的x=2MIPS、m=1.6、t=1us,试问多处理机系统的有效MIPS速率是多少?
答:
(a)有效MIPS速率=px/(1+mxt)
(b)56=32*x/(1-0.4*x*1),可解得x=5.83MIPS
(c)有效MIPS速率=px/(1+mxt)=32*2/(1+1.6*2*1)=15.24MIPS
21.解释以下术语:
(a)原子与非原子存储器存取的比较:
原子存储器存取:
如果存储器更新时为所有处理机所知道,那么这就是原子共享存储器访问。
非原子存储器存取:
在基于高速缓存/网络的多处理机中,如果一个更新操作不能同时到达所有的处理机,那么就是非原子的。
(b)存储器带宽与容错:
存储器带宽:
存储器模块每个存储周期可以提供的存储字数。
存储器容错:
在一个存储体中,当检测出一个模块故障时,可以将发生故障的存储器模块隔离开,剩下的模块仍然可以在地址空间中使用。
22.假定一个由16个存储器模块构成的主存储器系统有下列三种交叉存储器设计方案。
每个模块的容量为1M字节,机器按字节寻址。
设计1:
用1个存储体16路交叉。
设计2:
用2个存储体8路交叉。
设计3:
用4个存储体4路交叉。
(a)确定上述每种存储器组织的地址格式。
(b)在上述每种存储器组织中,假定只有一个存储器模块失效,确定能获得的最大存储器带宽。
(c)比较说明三种交叉存储器组织的优缺点。
答:
(a)设计1:
低4位是模块地址,高位是字地址
设计2:
低3位是模块地址,最高1位是体地址,中间是字地址
设计3:
低2位是模块地址,最高2位是体地址,中间是字地址
(b)当有一个存储器模块失效时,设计1带宽为0,设计2带宽为4,设计3带宽为6
(c)设计1支持邻接单元的成块存取,带宽很好,但不能容错
设计2带宽稍差,但可以容错
设计3带宽更差一些,但容错性能很好
23.试比较四种高速缓存组织的优缺点:
(1)直接映射高速缓存
(2)全联想高速缓存
(3)组联想高速缓存
(4)区段映射高速缓存
答:
(1)直接映射的优点在于硬件比较简单,不需要联想查找,不需要页面替换算法,因而成本较低且速度较高。
缺点是命中率较低,而且它还禁止并行虚拟地址转换。
(2)全联想的优点是提供最大的灵活性,可以实现较好的块替换策略,以减少块的冲突。
缺点是检索过程昂贵,需要的硬件成本比较高。
(3)组联想可以提供较好的性能价格比,替换策略可以更加经济地实现,联想检索实现容易,设计灵活可以获得更高的高速缓存的命中率。
(4)区段映射的优点在于,实现各种块替换算法比较灵活和对有限数量区段标记完成全联想检索比较经济。
24.试解释下列有关存储管理的术语:
(a)OS内核中存储管理程序的作用。
(b)抢先和非抢先存储器分配策略。
答:
(a)存储管理程序监控主存储器可用部分的数量,并且决定哪些进程应该留在主存储器中以及主存储器达到极限时哪些进程应该放回到磁盘上去。
(b)抢先分配策略可把一个输入块放到目前已被其他进程所占用的区域内,提供较大的灵活性,但要更为复杂一些,实现时要花更大的代价。
非抢先分配策略,输入块只能放在主存储器的一个空的区域内,实现比较容易,但它不能使存储器得到最好的利用。
25.试根据硬件复杂性和实现的成本排出四种高速缓存组织的次序并说明理由。
答:
按直接映射高速缓存——>区段映射高速缓存——>组联想高速缓存——>全联想高速缓存的顺序,依次升高。
直接映射不需要联想查找,不需要页面替换算法;区段映射只对有限数量区段标记,所以完成全联想检索比较经济;组联想在做k路联想检索中,由于k实际上是相当小的,因此比全联想要经济得多;全联想标记长度大,检索耗时。
26.试就块替换算法的实现灵活性排出四种高速缓存组织的次序并说明理由。
答:
按直接映射高速缓存——>组联想高速缓存——>全联想高速缓存——>区段映射高速缓存的顺序,灵活性增加。
直接映射不需要块替换算法;组联想替换算法得选择有限;全联想可以实现较好得替换算法;区段映射实现替换算法经济、灵活。
27.试解释每种高速缓存组织的块映射策略对命中率问题的影响。
答:
直接映射高速缓存的结构十分简单,直接映射非常严格,命中率比较低;全联想高速缓存提供最大的自由度,可以获得较好得命中率,减少块的冲突;组联想高速缓存,可以考虑许多设计上折衷方案,获得更高的命中率,性能价格比较好;区段映射高速缓存替换算法比较灵活,可以提供不错的高速缓存命中率。
28.试解释组联想高速缓存组织的块大小、组数、联想特性和高速缓存的大小对性能的影响。
答:
(1)高速缓存的容量越大,命中率越高,但其价格比较昂贵,容量总是受预算限制的。
(2)当容量固定,性能对块大小十分敏感,存在着一个最佳块大小,命中率在此处达到峰值。
当块变得非常大时,取进高速缓存得许多字可能永远不会使用,而且