文章
63
粉丝
0
获赞
0
访问
13.4k
(1)64=2^6,所以块内地址为6位;32KB/64B=2^9,2^9/8=2^6,所以Cache组号占6位;VA中VA6-VA11可以作为Cache的索引。
(2)4*100=400=190H,所以d[100]的VA等于01800020H+190H=0180001B0H,其对应的组号是000110B即6
(3)物理地址的结构为:页内偏移 12 位,物理页号 20 位,所以 &d[0] 的页内偏移为 020H = 32。 数组总共需要用 2048 * 4 / 64 = 128 个完整 cache 块存储,但由于数组第一个元素处于某个 cache 的中间(偏移为 32),所以总共需要 129 个 cache 块存储,在访问每个 cache 块中的第一个元素时会发生 Cache 缺失。另外需要注意一点,对于指令 d[i] = d[i] / x,实际上是访问了两次:一次读取,一次写入。所以在计算缺失率和平均访问时间的时候需要考虑这两次访问。缺失率 = 129 / (2048 * 2) ≈ 3.15%。数组的平均访问时间为 = (129 * 200 + (4096 - 129) * 2) / 4096 ≈ 8.24 个时钟周期。
(4)数组 d 需要占用 8KB 的存储空间,占用两个页面。由于数组的起始地址处于页面内部(偏移 32B),所以数组 d 分布在三个页面中,触发的缺页次数为 3。
评分及理由
(1)得分及理由(满分3分)
学生答案正确:块内地址6位(64B=2^6)、Cache组号6位(32KB/(64B×8)=64组=2^6)、索引位VA6~VA11(即第6位到第11位)均正确。得3分。
(2)得分及理由(满分4分)
计算d[100]的VA时,学生写为0180001B0H,但标准答案为018001B0H。学生计算过程中400=190H正确,但加法结果01800020H+190H=018001B0H,学生写作0180001B0H(多了一个0),属于计算书写错误,但组号计算正确(000110B=6)。扣1分。得3分。
(3)得分及理由(满分4分)
d[0]在主存块内偏移量32字节正确(地址01800020H低6位为100000B=32)。缺失率计算中,学生考虑了读和写两次访问(2048×2=...
登录后发布评论
暂无评论,来抢沙发