Skip to content

2009年 408 计算机组成原理 第 14 题

计算机组成原理2009年选择题2分

题目

某计算机的 Cache 共有 16 块,采用 2 路组相联映射方式(即每组 2 块)。每个主存块大小为 32 字节,按字节编址。主存 129 号单元所在主存块应装入到的 Cache 组号是( )。

错因

A

把"块号 mod 组数"误写成"块号 ÷ 组数"。算到主存块号 = 4 是对的,但 4 ÷ 8 = 0(整除),就把 0 当组号交了。组相联里,确定 Cache 组号永远是 mod 运算(块号取余组数),不是除法。

B

把字节地址直接 mod 组数:,跳过了"先按块大小算块号"这一步。在按字节编址、块大小 32 B 的体系里,必须先 把字节地址映射到主存块号,再 mod 组数。

D

混淆了组数公式。常见误算:把每组的"路数 2"加到块号上(4 + 2 = 6),或者用错的组数公式(如 之类)。组数计算只有一个固定公式:

总解析

组相联映射的三步流程(按字节编址下,主存某字节地址 → Cache 组号):

步骤公式本题代入
① 算 Cache 组数
② 字节地址 → 主存块号
③ 块号 → Cache 组号

地址结构示意(组数 = 8 → Index 3 位;块大小 32 字节 → Offset 5 位;Tag 占剩下高位):

118Tag4 bits75Index3 bits40Offset5 bits

把 129 写成二进制:

  • 低 5 位(Offset): → 块内第 1 字节
  • 中 3 位(Index): → 组号 = 4
  • 高位(Tag):

最终答案是 C(组号 4)

易错速记:组相联映射的组号 = 主存块号 mod 组数。"先把字节地址转成块号、再 mod"——少一步就会错位。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数