20135327郭皓 20135329李海空第六章作业 6.30 6.37

6.30

两分题:

20135327 郭皓 :2.5

20135329 李海空:1.5

 

 

A:

由题意知 b=2 s=2 故 两个低位是块偏移,然后是两位的组索引,剩下的位做标记:

B:

1.对于地址0x409,块偏移(CO):0x1  组引索(CI):0x2 高速缓存标记(CT):0x40 可见该标记的有效位为0,故不命中。
2.对于地址0x40A,块偏移(CO):0x2  组引索(CI):0x2 高速缓存标记(CT):0x40  可见该标记的有效位为0,故不命中。
3.对于地址0x833,块偏移(CO):0x3  组引索(CI):0x0 高速缓存标记(CT):0x83 可见该标记的有效位为1,高速缓存的标记位与地址中的标记位匹配,故命中 读出的值为0xD0。

 

6.37

两分题:

20135327 郭皓 :2.5

20135329 李海空:1.5

A

不命中率是100%,直接映射是每组只有一个高速缓存行,块大小为32字节,表示可以存储8个int数值。 数组是按照行优先存储的,计算数组一行的大小为256*4=1024,所以高速缓存只够存数组的一行。 所以x[0]和x[1]的每一个元素对应的高速缓存是同一个块。 因此,每次请求都在加载,驱逐,替换。不命中率为100%。

B

不命中率是1/8 ,只有加载新行时发生不命中,缓存足够大,可以存储整个数组 因此只有冷不命中,而块大小为32字节,表示可以存储8个int数值 所以每次都会加载x[0][i]~x[0][i+7]共8个数值到缓存组中,这里就只有x[0][i]是不命中的 所以不命中率为1/8。

C

不命中率为1/8 ,高速缓存只有1024字节,不够存储数组,数组的第一行和第二行分别加载到缓存同一组的不同行,不会冲突,所以最后还是相当于只有冷不命中,相当于每8个数据中只有一个是不命中的 所以不命中率为1/8 。

D

不能了,块大小不变,因为冷不命中的概率不可能被减小。

E

能,因为块的大小增加,冷不命中的频率就降低。

posted @ 2015-11-10 22:29  20135327郭皓  阅读(125)  评论(0编辑  收藏  举报