文章
7
粉丝
21
获赞
0
访问
271
(1)访问x和y不存在时间局部性,存在空间局部性。
(2)数据区容量为32字节,每个主存块大小为16字节,则数据区一次可存放32/16=2个主存块。一个浮点数占用8个字节,则一个主存块可存放两个浮点数。即x[0]和x[1],x[2]和x[3]存放到一个主存块中,y[0]和y[1],y[2]和y[3]存放到一个主存块中。程序数据访问x[0]时为命中将x[0]所在主存块放入数据区,访问x[1]时就能够成功命中了,故程序数据访问的命中率为50%。每次访问时下标为偶数的数组未命中,为奇数的命中。
(3)将数据Cache改用2-路组相联映射方式,则一个Cache地址可映射两个主存块地址,数据区可同时存储两个cache地址。由于块的大小于浮点数大小相同,故每次写入浮点数数据都需要插入新的块。故程序数据访问的命中率为0%。
(4)将数组x定义为float[12],数据访问的命中率依然为50%。
评分及理由
(1)得分及理由(满分2分)
得分:2分
理由:学生正确指出了时间局部性较差(每个元素只被访问一次)和空间局部性较好(数组按行优先存储),与标准答案一致。
(2)得分及理由(满分3分)
得分:0分
理由:学生的回答存在逻辑错误。学生认为访问x[1]时能够命中,但实际上由于直接映射方式下x和y数组的块会映射到同一Cache行,导致每次访问都会发生冲突替换,命中率应为0%。学生错误地计算为50%,因此不得分。
(3)得分及理由(满分3分)
得分:0分
理由:学生的回答存在逻辑错误。学生认为命中率为0%,但实际上在2-路组相联映射方式下,每组可以容纳两个块,因此访问奇数下标元素时可以命中,命中率应为50%。学生未正确理解组相联映射的机制,因此不得分。
(4)得分及理由(满分3分)
得分:0分
理由:学生的回答存在逻辑错误。学生认为命中率依然为50%,但实际上由于数组x扩展到12个元素后,Cache行冲突减少,命中率应提高到75%。学生未正确分析扩展后的Cache行映射关系,因此不得分。
题目总分:2+0+0+0=2分
登录后发布评论
暂无评论,来抢沙发