我是靠谱客的博主 简单大炮,最近开发中收集的这篇文章主要介绍2016-408-计组-有如下c语言程序段,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

有如下C语言程序段:

for(int k = 0; k < 1000; k++)
{
    a[k] = a[k]+32;
}


 
若数组a以及变量k均为int型,int型数据占4B,数据Cache采用直接映射 方式,数据区大小是1KB,块大小是16B,该程序段执行前Cache为空,则该程序段执行过程中,访问数组a的Cache的缺失率是:C 
A. 1.25% 
B. 2.5% 
C. 12.5% 
D. 25%

 a[k]的访问步骤是:先访问cache,cache缺失,之后从主存中取出一个块(有4个int)调入cache,这个块中的后几个数据都是命中的,本题中一个数据占4B,一个块大小是16B,这说明一个块中有4个数据,关键是后面还有一次写,每个数据都有一次访问(数组)和一次写(赋值),这说明一次循环要2*4=8次访问cache,其中只有第一次访问(数组)是缺失的,后面七次都是命中的,所以缺失率是12.5%;

映射cache总结:

全映射了解即可,随机映射,考的不多。

直接映射:有一位有效位标记(增,易失考虑)+高位为标记(一般为cache容量倍数)+块号+块内地址;高位为标记(一般为cache容量倍数)+块号+块内地址=物理地址

n路组相联映射:高位为标记+组号+块内地址=物理地址,组号+块内地址位数=cache容量/n路

最后

以上就是简单大炮为你收集整理的2016-408-计组-有如下c语言程序段的全部内容,希望文章能够帮你解决2016-408-计组-有如下c语言程序段所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部