文章
92
粉丝
68
获赞
0
访问
11.3k
(1) 数组a分为2个页面存储?对于数组a的访问,会发生2次缺页异常?页故障地址0042 2000H和0042 3000H
(2) 不考虑变量i和j,该程序段的数据访问具有时间局部性,因为本次访问这个地址,下次访问的地址还在这个附近。
(3) 计算机M的虚拟地址(A31~A0)中A0到A4位用作块内地址,A5到A10用作Cache组号, a[1][0]的虚拟地址是0042 2000H。其所在主存块对应的Cache组号是08H.
(4) 数组a占用192个主存块, 假设上述程序段执行过程中数组a的访问不会和其他数据发生Cache访问冲突,则数组a的Cache命中率是87.5%,若将循环中i和j的次序按如下方式调换,则数组a的Cache命中率87.5%。
评分及理由
(1)得分及理由(满分3分)
学生答案正确指出了页面数、缺页次数和页故障地址,与标准答案完全一致。
得分:3分
(2)得分及理由(满分2分)
学生答案错误。题目问的是“时间局部性”,其定义是某个数据被访问后不久可能再次被访问。本题中数组a的每个元素仅被赋值一次,没有重复访问,因此不具有时间局部性。学生将“时间局部性”与“空间局部性”(访问附近地址)混淆,属于概念理解错误。
得分:0分
(3)得分及理由(满分4分)
学生答案部分正确:
1. 块内地址和Cache组号的位划分正确,得1分。
2. a[1][0]的虚拟地址计算错误。数组起始地址为0042 2000H,sizeof(int)=4,按行优先存储,a[1][0]的地址应为起始地址 + 一行的大小 = 0042 2000H + (64 * 4) = 0042 2000H + 0x100 = 0042 2100H。学生给出的0042 2000H是a[0][0]的地址,错误,扣1分。
3. Cache组号计算基于错误的地址,因此结果“08H”也错误。但题目要求给出组号,标准答案为数值8,学生写成“08H”虽格式不同但数值意义相同,然而由于地址错误导致此计算无意义,故不得分。
综合扣分:块内地址和组号划分正确得1分,虚拟地址错误扣1分,组号结果因地址错误不得分。本小题得1分。
(4)得分及理由(满分5分)
学生答案部分正确:
1. 数组a占用主存块数192正确,得1分。
2. 两种循环顺序下的Cache命中率87.5%均正确,各得...
登录后发布评论
暂无评论,来抢沙发