| 项目 | 值 |
|---|---|
| 作用 | 解决 CPU 与主存速度不匹配 |
| 命中率 | 通常 90% 以上 |
| 地址映射 | Tag + Index + Offset |
Cache 是位于 CPU 和主存之间的高速小容量存储器,利用局部性原理(时间局部性和空间局部性)来缓解 CPU 与主存之间的速度差异。
$T_a = H \times T_c + (1-H) \times T_m$,其中 H 为命中率,$T_c$ 为 Cache 访问时间,$T_m$ 为主存访问时间。
| 概念 | 定义 |
|---|---|
| 命中率 H | CPU 访问 Cache 命中的概率 |
| Cache 行 / 块 | Cache 中存储数据的基本单位,通常与主存块等大 |
| 标记 Tag | 地址中用于标识主存块的高位部分 |
| 有效位 | 标识 Cache 行中数据是否有效 |
| 脏位 / 修改位 | 标识 Cache 行中的数据是否被修改过(写回法使用) |
| 直接映射 | 主存块只能映射到 Cache 中固定的一行 |
| 组相联映射 | 主存块映射到固定组,组内可放任意行 |
| 全相联映射 | 主存块可映射到 Cache 中任意一行 |
| LRU | 最近最少使用替换算法 |
| 写回法 | 仅在 Cache 行被替换时才写回主存 |
| 全写法 | 每次写操作同时更新 Cache 和主存 |
| 考点 | 说明 |
|---|---|
| 地址划分 | 给定 Cache 参数,划分标记 / 组号 / 块内地址的位数 |
| 映射分析 | 给定地址序列,分析各块在 Cache 中的存放位置 |
| 命中率计算 | 给定访问序列,统计 Cache 命中次数 |
| 平均访问时间 | 利用公式计算考虑 Cache 后的等效访问时间 |
| Cache 容量计算 | 计算 Cache 总容量(数据 + 标记 + 有效位 + 脏位) |
| 替换过程分析 | 给定替换算法和访问序列,追踪 Cache 内容变化 |
| 写策略选择 | 分析不同写策略对性能和一致性的影响 |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。