计算机系统结构期末试题总结 下载本文

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

10、评分细则:10分/小题,评分细则分布在答案内容中。

----------------------------------------------------------------------

1、试题序号:608 2、题型:计算题 3、难度级别:3

4、知识点:五、存储层次 5、分值:10

6、所需时间:15分钟

7、试题关键字:cache性能 8、试题内容:

伪相联中,假设在直接映象位置没有发现匹配,而在另一个位置才找到数据(伪命中)时,需要1个额外的周期,而且不交换两个Cache中的数据,失效开销为50个时钟周期。试求:

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

(2) 利用(1)中得到的公式,对于2KBCache和128KBCache,重新计算

伪相联的平均访存时间。请问哪一种伪相联更快? 假设 2KB直接映象Cache的总失效率为0.098,2路相联的总失效率为0.076; 128KB直接映象Cache的总失效率为0.010,2路相联的总失效率为0.007。

9、答案内容:

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

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

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

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

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

=失效率1路-失效率2路。交换内容需要增加伪相联的额外开销。2分 平均访存时间伪相联=命中时间1路+(失效率1路-失效率2路)×1

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

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

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

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

显然是128KB的伪相联Cache要快一些。 1分 10、评分细则:10分/小题,评分细则分布在答案内容中。

----------------------------------------------------------------------

1、试题序号:609 2、题型:计算题

3、难度级别:3

4、知识点:五、存储层次 5、分值:10

6、所需时间:15分钟

7、试题关键字:cache性能 8、试题内容:

假设机器的时钟周期为10毫微秒,Cache失效时的访存时间为20个时钟周期

(1)设失效率为0.05,忽略写操作时的其他延迟,求机器的平均访存时间。 (2)假设通过增加Cache容量一倍而使失效率降低到0.03,但使得Cache命中时的访问时间增加到了1.2时钟周期,指出这样改动设计是否合适?

(3)如果时钟周期取决于Cache的访问时间(也就是用延长时钟周期的方法),上述改动设计是否合适? 9、答案内容:

解:(1)机器的平均访存时间公式为:

Ta=HcTc+(1-Hc)Tm 其中Hc为命中率,所以据题意得: 1分 Ta=(1-0.05)×10×1+0.05×20×10=19.5毫秒 2分 (2)如果增加CACHE容量后,可得其平均访存时间为:

Ta=(1-0.03)×10×1.2+0.03×20×10=17.64毫秒 2分

可见如此改动可以减少平均访问时间.但要考虑增大CACHE的成本来确定是否合适。 2分

(3)如果时钟周期取决于CACHE的访问时间,则每个时钟周期时间延长到12毫秒,失效时的访存时间为20×12=240毫秒, 2分 平均访问时间为:

Ta=(1-0.03)×12+0.03×240=18.84毫秒 1分

10、评分细则:10分/小题,评分细则分布在答案内容中。

----------------------------------------------------------------------

1、试题序号:610 2、题型:计算题 3、难度级别:5

4、知识点:五、存储层次 5、分值:10

6、所需时间:15分钟

7、试题关键字:编译器预取 8、试题内容:

预取技术能够降低Cache的失效率,由编译器控制的预取是在编译时加入预取指令,在数据被用到之前发出预取请求。

下面的程序,是加入预取指令前后的两组程序,假定:

(1) 我们用的是一个容量为8KB、块大小为16B的直接映象Cache,它采用写回法并且按写分配。

(2) a、b分别为3×100(3行100列)和101×3的双精度浮点数组,每个元素都是8个字节。当程序开始执行时,这些数据都不在Cache内。 (3)失效开销较大,预取必须提前7次循环进行。

加入预取指令前的程序

for (i=0;i < 3;i=i+1) for (j=0;j<100;j=j+1)

a[i][j]=b[j][0]×b[j+1][0];

加入预取指令之后的程序

for (j=0;j<100;j=j+1){

prefetch (b[j+7][0]);/* 预取7次循环后所需的b(j ,0 )*/ prefetch (a[0][j+7]);/* 预取7次循环后所需的a(0,j ) */ a[0][j]=b[j ][0] * b [j+1][0]; }

for (i=1; i < 3; i=i+1){ for (j=0; j < 100; j=j+1)

prefetch(a[i][j+7]);/* 预取7次循环后所需的a(i , j ) */ a[i][j]=b[j][0]×b[j+1][0]; }

要求:对上面的程序:

1、判断哪些访问可能会导致数据Cache失效,计算失效次数; 2、分析是否存在容量失效和冲突失效。 9、答案内容:

解:数组a的失效情况: 3分

b数组: 3分

故总的失效次数为:150+101=251次 2、Cahe的块数为:8KB/16B=512块

失效一次则需读取主存一块到Cache中,在程序段执行过程中,共读取251块到

Cache中,小于Cache的块数,故不会产生容量失效; 2分

a数组共有300/2=150块 b数组共有150块 ,可将其全部调入Cache中,故也不会产生冲突失效。 2分

10、评分细则:10分/小题,评分细则分布在答案内容中。

----------------------------------------------------------------------

1、试题序号:611 2、题型:计算题 3、难度级别:3

4、知识点:五、存储层次 5、分值:10

6、所需时间:15分钟

7、试题关键字:虚拟存贮器 8、试题内容:

一个二级虚拟存贮器,CPU访问主存M1和辅存M2的平均时间分别为1um和lms。经实测,此虚拟存贮器平均访问时间为100um。试定性提出使虚拟存贮器平均访问时间能从100us下降到10us的几种方法,并分析这些方法在硬件和软件上的代价。 9、答案内容: 解:根据实测到的虚拟存贮器平均访问时间TA=100 us,代入TA=HTA1+(1- H)TA2式,可得主存命中率

H?TA?TA2100us?1ms??0.901 3分

TA1?TA21us?1ms 在主存命中率H=0.901的情况下,改用更高速度的主存器件,即使是TA1

=0,此时,

TA=(1一H)TA2=(1一0.901)×1 ms≈99us 2分

这也是远大于所要求的10us的时间的。所以,应从提高主存命中率H着手。1分

如果要让TA=10us,其命中率

H?TA?TA210us?1000us?≈0.991 2分

TA1?TA21us?1000us要使H提高到0.991,需要从改进替换算法、调度策略,调整页面大小以及

提高主存容量等多方面综合采取措施。其中,替换算法、调度策略主要是在软件上增加一些代价;页面大小的调整可能会增加辅助硬件上的代价;而主存容量的增加则主要是增加硬件的代价,在辅助硬件上的代价也会略有增大。 2分 10、评分细则:10分/小题,评分细则分布在答案内容中。

---------------------------------------------------------------------

-

1、试题序号:612 2、题型:计算题 3、难度级别:3

4、知识点:五、存储层次 5、分值:10

6、所需时间:15分钟

7、试题关键字:虚拟存贮器 8、试题内容:

设二级虚拟存贮器的TA1=10-7 s,TA2=10-2s, 为使存贮层次的访问x效率e达到最大值的80%以上,命中率H至少要求达到多少? 实际上这样高的命中率是很难达到的,那么从存贮层次上应如何改进? 9、答案内容:

解:对于二级虚拟存贮器的等效访问时间为

TA=HTAl十(1一H)TA2

存贮层次的访问效率e=TA1/TA

将TA式代入e式,可得

e?TA11 ?TA2HTA1?(1?H)TA2TA2?(1?)HTA1TA1从而求得

T1TH≥(?A2)/(1?A2) 4分

eTA1TA1 将 TA1=10-7s、TA2=10-2s和e≥80%代入上式

可得

110?210?2?)/(1??7)?0.999999975 3分 H≥(0.810?710 实际上,这样高的命中率是极难达到的,为此需要减少相邻两级的访问速度

差距,或者减少相邻两级存储器的容量差。除此以外,可考虑在主存与辅存之间增加一级存储器,让其速度界于主存与辅存之间的某个中间值。例如,让主存与中间级的访问时间比为1:100,中间级与辅存间的访问时间比为1:1000,将它们配置在相应的辅助软、硬件,组成一个三级存储层次。这样,就可以让第1级主存的命中率降低到

110?510?5??7)/(1??7)?(102?1.25)/99?0.997 3分 H≥(0.8101010、评分细则:10分/小题,评分细则分布在答案内容中。

----------------------------------------------------------------------

1、试题序号:613 2、题型:计算题