20135327郭皓 20135329李海空第六章作业 6.30 6.37
2015-11-10 22:29
232 查看
6.30
两分题:20135327 郭皓 :2.5
20135329 李海空:1.5
![](http://images2015.cnblogs.com/blog/744757/201511/744757-20151110222723462-491404844.png)
![](http://images2015.cnblogs.com/blog/744757/201511/744757-20151110222759009-1237260444.png)
A:
由题意知 b=2 s=2 故 两个低位是块偏移,然后是两位的组索引,剩下的位做标记:![](http://images2015.cnblogs.com/blog/744757/201511/744757-20151110222829087-1595154907.png)
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
![](http://images2015.cnblogs.com/blog/744757/201511/744757-20151110222907962-1155946810.png)
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
能,因为块的大小增加,冷不命中的频率就降低。相关文章推荐
- c语言不定参数与printf函数的实现
- XManager介绍、安装、使用
- java学习之多线程
- Elasticsearch聚合 之 Histogram 直方图聚合
- H5网站借鉴
- 理解SIFT
- hdu4540 威威猫系列故事——打地鼠 (动态规划)
- 最大子数组之暴力枚举法
- 从BufferedReader到装饰设计模式
- 读取Bitmap的几种方式
- c语言最强大之处--指针
- 内核模块编写问题总结
- Oracle查询二
- Locally linear embedding (LLE)局部线性嵌入(降维)
- RxJava之多线程、链式调用、Lambda表达式
- spring mvc不能引入js等静态文件的解决办法
- 计算器
- 递归实现 n的k次方
- nyoj 找球号(一) 86 (Hash表)
- 图像处理之简单数字水印 - 文字轧花效果