Appearance
题目
假设某计算机的存储系统由 Cache 和主存组成,某程序执行过程中访存 1000 次,其中访问 Cache 缺失(未命中)50 次,则 Cache 的命中率是()。
错因
A
把缺失率当成了命中率。 是"未命中率",命中率是它的"补"——。两者方向完全相反,命中率永远是"命中次数 ÷ 总访存次数"。
B
数量级算错。可能是 (多了一个 0),或者是凑了一个看起来"较小"的数字。考试时遇到 % 题,先核小数点位置——总访存 1000 次而不是 10000 次。
C
凭直觉选了"约一半",没做计算。如果命中率真是 50%,那意味着访存 1000 次有 500 次缺失,远不止 50 次。本题缺失率只有 5%,命中率显然要远高于 50%。
总解析
Cache 命中率的定义:
与缺失率(未命中率)的关系:
本题代入:
| 量 | 取值 |
|---|---|
| 总访存次数 | |
| 缺失次数 | |
| 命中次数 | |
| 命中率 |
或者从缺失率反推:
最终答案是 D(95%)。
速记:
- 命中率总是看"命中次数"在总数里占比,不是缺失次数
- 看到 5% 这种小比例先警觉——多半是缺失率,命中率要取它的补 95%
- 现实中良好设计的 Cache 命中率通常 ≥ 90%,95% 是合理的"健康水位"