某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块)。每个主存块大小为32字节,按字节编址。主存129号单元所在主存块应装入到的Cache组号是。
A.0 B.1 C.4 D.6
目标地址 = 当前 PC 值 + 相对位移量(位移量存于指令中,补码表示,可正 / 负)。
相对位移量为 06H(正数,向前转移),故:\(\text{目标地址} = \text{当前PC值} + \text{位移量} = 2002\text{H} + 06\text{H} = 2008\text{H}\)
06H
Cache 结构:
主存与 Cache 的 “块” 交换:
① 计算主存块号: 主存单元按 块大小对齐,块大小 32 字节 → 主存块号 = \(\lfloor 129 \div 32 \rfloor = 4\)(\(\lfloor \cdot \rfloor\) 表示向下取整)。 知识点:主存块划分(块内地址:\(129 \mod 32\),块号:商)。
② 计算 Cache 组数: 总块数 16,路数 2 → 组数 = \(16 \div 2 = 8\)。 知识点:组相联的 “组 - 路” 关系。
③ 计算组号: 组号 = \(4 \mod 8 = 4\)(主存块号对组数取模)。 知识点:组相联的映射公式。
组相联映射方式为 tag+组号+块内地址 块内地址=log2 (32B/1B) = 5
组号=log2 (16/2)=3
将129转为二进制10000001,去掉低5位后的低三位就是组号
考查 Cache 与主存之间的映射...
用户登录可进行刷题及查看答案
考查 Cache 与主存之间的映射方式。 由于 Cache 共有16块,采用2路组相联,因此共有8组,0,1,2,...,7。并且主存的某一字块按模8映像到 Cache 某组的任一字块中,即主存的第0,8,16...字块可以映像到 Cache 第0组2个字块的任一字块中,而129号单元是位于第4块主存块中,因此将映射到 Cache 第4组2个字块的任一字块中。 注意:由于在计算机系统结构中和计算机组成原理的某些教材中介绍的组相联跟此处的组相联并不相同,导致部分考生理解错题目。考生应以真题为准,以后再出现类似题目,应以此种解答为标准。
登录后提交答案