1、第7章 习题课1.主存和CPU之间增加高速缓冲存储器的目的是_。A解决CPU和主存之间的速度匹配问题;B扩大主存容量;C既扩大主存容量,又提高了存取速度;D扩大辅存容量。答案:A2.(2012年考研题)假设某计算机按字编址,Cache有4个行,Cache和主存之间交换的块大小为l个字。若Cache的内容初始为空,采用2路组相联映射方式和LRU替换算法,当访问的主存地址依次为0,4,8,2,0,6,8,6,4,8时,命中Cache的次数是:A、1 B、2 C、3 D、4答案:C3.在采用两级Cache的存储系统中,假设Hc1、Hc2分别表示第1级Cache和第2级Cache的命中率,Tc1、Tc
2、2分别表示第1级Cache和第2级Cache的访问时间,Tm1表示第1级Cache不命中而需增加的访问时间,Tm2为存储器的访问时间,请问两级Cache的存储系统的平均访问时间T为多少?CPU内内的寄存器的寄存器L1 CacheL2 Cache内部存储器(内存)内部存储器(内存)外部存储器(外存)外部存储器(外存)多多层层次次Cache存存储器器3.参考答案:平均访问时间T为:(不考虑cache判断失效的时间)T=Hc1Tc1+(1-Hc1)Tm1 (1)Tm1=Hc2Tc2+(1-Hc2)Tm2 (2)所以把(2)代入(1)式,得到T即可!4.P180-习题7.3 4.P180-习题7.3
3、参考答案:若有若有cache的平均访问时间:的平均访问时间:(10ns*0.98+(10+100)*0.02)+(10ns*0.95+(10+100)*0.05)*1/5=12ns+3ns=15ns 若无若无cache的平均访问时间的平均访问时间:100*1+100*1/5=120ns所以速度提高:所以速度提高:120ns/15ns=8倍倍5.P180-习题7.4 5.P180-习题习题7.4 参考答案参考答案:(10ns*0.98+(10+100)*0.02)=12ns 无无cache的平均访问时间的平均访问时间:100*1+100*1/5=120ns 所以,速度提高:所以,速度提高:120
4、ns/12ns=10倍倍6.P180-习题7.5 注意:此题第二问,课本后答案有问题!注意:此题第二问,课本后答案有问题!注意:此题第二问,课本后答案有问题!注意:此题第二问,课本后答案有问题!6.P260-习题习题7.5 参考答案参考答案:9732 (1)因为因为2M=221,所以主存地址为所以主存地址为21位;每个字位;每个字块有块有8=23个字,每个字有个字,每个字有32(=4B)位,所以块内地位,所以块内地址为址为3位,字节为位,字节为2位。位。16KB/4*32B=27,所以所以c=7 主存字块标记主存字块标记 组地址组地址 块内地址块内地址 字节字节 t+r c-r b 6.P18
5、0-习题习题7.5 参考答案参考答案:0123字节编号431块块块块0 0326364块块块块1 19596块块块块2 2128127块块块块3 3组号01227-1块块0块块1块块2块块3块块4块块5块块6块块7块块8块块9块块10块块11403块块块块12124150123字节编号431块块块块0 0326364块块块块1 19596块块块块2 2128127块块块块3 3组号01227-1块块0块块1块块2块块3块块4块块5块块6块块7块块8块块9块块10块块11403块块块块1212第二问第二问第二问第二问读101个字,占101/8=13个块,而Cache有16KB/32B=512个块
6、,即使4路组相联,也要512/4=128个组(每组4块),因此不存在冲突和替换的问题。也就是每个块只在第一次读时缺失,共缺失13次。命中率命中率命中率命中率为(10111-13)/(10111)=98.83%只有读第0个字、第8个字、第16个字.第96个字时不命中4157.2010年考研题年考研题 注意:行也就是块,即块大小为注意:行也就是块,即块大小为64字节字节注意:程序注意:程序A-行优先访问,程序行优先访问,程序B-列优先访问。列优先访问。7.2010年考研题年考研题(续)(续)7.20107.2010年考研题年考研题年考研题年考研题 7.20107.2010年考研题年考研题年考研题年
7、考研题 15/16=0.93751)主存容量256MB,按字节寻址的地址位数应为28位,数据Cache分为8行(用3位地址),每行64B(用6位地址),因此Cache中每个字块的Tag字段的位数应是28-9=19位,还要使用一个有效位,二者合计为20位;因此数据Cache的总容量应为:64B8+(20/88)B=532B2)数组a在主存的存放位置及其与Cache之间的映射关系如下图所示。数组A031所在的主存块对应的Cache行号是:(320+314)div 64=6,数组A11所在主存块对应的Cache行号:(320+2564+14)div 64)mod 8=5。所以a031所在主存块映射到
8、Cache第6行,a11所在主存块映射到Cache第5行。7.20107.2010年考研题年考研题年考研题年考研题(具体解释)3)编译时i,j,sum均分配在寄存器中,故数据访问命中率仅考虑数组a的情况。这个程序的特点是数组中的每一个int 类型的数据只被使用一次。数组A按行优先存放,数据Cache正好放下数组半行中的全部数据,即数据的存储顺序与使用次序有更高的吻合度,每个字块存16个int类型的数据,访问每个字块中头一个字不会命中,但接下来的15个字都会命中,访问全部字块都符合这一规律,命中率是15/16,即程序A的数据访问命中率为93.75%;程而程序B是按照数组的列执行外层循环,在内层循
9、环过程中,将连续访问不同行的同一列的数据,不同行的同一列数据使用的是同一个Cache单元,每次都不会命中,命中率是0,程序执行特别慢。根据上述计算出的命中率,得出程序B每次取数都要访问主存,所以程序A的执行比程序B快得多。7.20107.2010年考研题年考研题年考研题年考研题(具体解释)补充题补充题补充题补充题1 1:补充题补充题补充题补充题1 1:补充题补充题补充题补充题2 2:补充题补充题补充题补充题2 2:8.2010年考研题年考研题 下列选项中,不会引起指令流水线阻塞的是A数据旁路(转发)B数据相关C条件转移D资源冲突答案:A9.2010年考研题年考研题 下列命中组合情况中,一次访存过程中不可能发生的是ATLB未命中、Cache未命中、Page未命中BTLB未命中、Cache命中、Page命中CTLB命中、Cache未命中、Page命中DTLB命中、Cache命中、Page未命中答案:D10.2011年考研题年考研题 10.2011年考研题年考研题 10.2011年考研题年考研题 11.