分享到

微信
朋友圈
QQ
微博
取消

文章详情

当前位置:海文考研工学正文

计算机组成原理真题与解析

2020-11-28 10:17 2376 来源:海文考研

1.冯诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是()
A.指令操作码的译码结果 B指令和数据的寻址方式
C.指令周期的不同阶段 D指令和数据所在的存储单元
答案:C
解析:通常完成一条指令可分为取指阶段和执行阶段。在取指阶段通过访问存储器可将指令取出;在执行阶段通过访问存储器可以将操作数取出。这样,虽然指令和数据都是以二进制代码形式存放在存储器中,但CPU可以判断在取指阶段访问存储器取出的二进制代码是指令;在执行阶段访存取出的二进制代码是数据。

  1. 某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块)。每个主存块大小为32字节,按字节编址。主存129号单元所在主存块应装入到的Cache组号是()
    A.0 B.1 C.4 D.6
    答案:C
    解析:由于Cache共有16块,采用2路组相联,因此共有8组,0,1,2,…,7。主存的某一字块按模8映射到Cache某组的任意字块中,即主存的第0,8,16…字块可以映射到Cache第0组2个字块的任一字块中,而129号单元是位于第4块主存块中,因此将映射到Cache第4组2个字块的任一字块中。
  2. 某计算机的主存地址空间大小为256MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下所示:

假定int类型数据用32位补码表示,程序编译时i,j,sum均分配在寄存器中,数组a按行优先方式存放,其首地址为320(十进制数)。请回答下列问题,要求说明理由或给出计算过程。
(1)若不考虑用于Cache一致性维护和替换算法的控制位,则数据Cache的总容量为多少?
(2)数组元素a[0][31]和a[1][1]各自所在的主存块对应的Cache行号分别是多少(Cache行号从0开始)?
(3)程序A和B的数据访问命令中率各是多少?哪个程序的执行时间更短?
解析:
(1)主存容量256MB,按字节寻址的地址位数应为28位,数据Cache分为8行(用3位地址),每行64B(用6位地址),因此Cache中每个字块的Tag字段的位数应是28-9=19位,还要使用一位有效位,二者合计为20位;因此数据Cache的总容量应为:64B×8+(20/8×8)B=532B。
(2)数组A[0][31]所在的主存快对应的Cache行号是:(320+31×4)div64=6,数组A[1][1]所在主存快对应的Cache行号:((320+256×4+1×4)div64)mod8=5。
(3)这个程序的特点是数组中的每一个int类型的数据只被使用一次。程序A的运行速度更快,因为数组A按行优先存放,数据Cache正好放下数组半行中的全部数据,即数据的存储顺序与使用次序有更高的吻合度,每个字块存16个int类型的数据,访问每个字块中头一个字不会命中,但接下来的15个字都会命中,访问全部字块都符合这一规律,命中率是15/16。而程序B是按照数组的列执行外层循环,在内层循环过程中,将连续访问不同行的同一列的数据,不同行的同一列数据使用的是同一个Cache单元,每次都不会命中,命中率是0,程序执行特别慢。

上一篇:计算机综合408真题与解析 下一篇:人工智能复试真题解析
关键词:

相关推荐

热点推荐

免费获取考研大礼包

姓名
手机号
验证码
获取验证码
邮箱
学历
微信
提交