Cache 与主存的三种映射方式速记总结如下

发布时间:2026/7/26 8:10:18
Cache 与主存的三种映射方式速记总结如下 Cache 与主存的三种映射方式速记总结如下直接映射映射规则主存块号 mod Cache 总块数 Cache 块号即每个主存块有唯一对应 Cache 行特点地址结构含「标记Tag 组索引Index即块号 块内偏移Offset」硬件实现最简单成本低。缺点冲突率高不同主存块竞争同一 Cache 行Cache 利用率低。全相联映射映射规则主存块可映射到 Cache 中任意空闲行或替换某行特点需对所有 Cache 行的 Tag 并行比较查找速度慢、功耗高、电路复杂需全比较器阵列。优点零冲突Cache 空间利用率最高命中率通常最优。组相联映射最常用映射规则Cache 分为若干组如每组 2/4/8 行主存块映射到固定组由块号 mod 组数决定组内自由选择行类似全相联特点折中设计——组索引定位组Tag 在组内比对兼顾速度、成本与命中率。例如128 行 Cache每组 4 行 → 共 32 组 → 主存块映射到 (块号 mod 32) 所在组再在该组 4 行中匹配 Tag。✅ 速记口诀“直映快但易撞全联准但太忙组联平衡是王道。”在直接映射中主存块映射到 Cache 的行号计算公式为Cache 行号 主存块号 mod Cache 总行数已知主存块号 200Cache 总行数 64计算200 ÷ 64 3 × 64 192余数 200 − 192 8即200 mod 64 8✅ 所以主存块号为 200 的块应映射到Cache 第 8 行行号从 0 开始计数即第 0 行、第 1 行……第 8 行是第 9 个物理行。⚠️ 注意Cache 行号范围是 0 ~ 63共 64 行余数 8 合法且唯一对应。在直接映射中主存块号到 Cache 行号的映射公式为Cache 行号 主存块号 mod Cache 总行数已知主存块号 1000Cache 行数 128计算1000 ÷ 128 7 × 128 896余数 1000 − 896 104即1000 mod 128 104✅ 因此主存块号 1000 映射到Cache 第 104 行行号从 0 开始范围 0 ~ 127104 在有效范围内。验证128 × 7 896896 104 1000 ✔️