形式陈述
对缓存的一次需求访问,设每次都支付命中查询时间
P是“查询已失败之后额外等待多久”,不含已计入的H。若P随缺失类型变化,应改用
两级串行层次中,L1缺失率为
到主存的全局缺失比例是
直觉
AMAT是一张概率加权账单:人人先付查找费,只有缺失者再付下一段费用。最常见的错误是把“总缺失访问时间”当作额外罚时,重复支付第一次查找。
它描述的是选定访问集合的平均成本。指令执行能否同时做其他工作、多个缺失能否重叠,是另外的调度问题;不能把AMAT直接乘访存条数后称为现代CPU程序运行时间。
例子与边界
局部比例的分母不同
1000次L1访问有100次到L2,L2其中20次还要到主存。于是
若把全局0.02误填进
脏写回需要额外一项
在一个明确串行的WB模型中,缺失先可能写回victim再填新块。若缺失时victim为dirty的条件概率为
如果硬件能把写回与填入重叠,就不能仍把二者直接相加;反之也不能未经声明就取最大值。是加法还是重叠,应由资源和队列模型决定。
更低缺失率仍可能更慢
配置甲H=1、m=0.1,配置乙H=2、m=0.05,两者P=10。甲为2,乙为2.5;乙命中率更高,平均访问时间却更长。相联度或容量收益不能只看一个比例。
再考虑两次各需10单位的独立缺失:严格串行完成需20单位,若资源允许完全重叠,二者可在10单位后同时完成。每请求的服务延迟并未变成5,但批量完成时间变了;AMAT不能单独确定吞吐。
推论与应用
报告应说明访问分母、读写是否合并、冷启动是否计入、下层罚时是否含回写、以及终末flush是否另计。共同终点任务先给实际次数,只有再指定每种传输的代价,才能合法加权。
I/O模型常只计块传输数,AMAT则在一个简化时序模型中给它们加权。两者都是有边界的分析工具,并不是未经测量的真实CPU性能预测。
参考资料
- UC Berkeley CS61C,Average Memory Access Time,课程笔记,访问于 2026-10-08。
- John L. Hennessy and David A. Patterson, Computer Architecture: A Quantitative Approach, 6th ed., 2017,Ch. 2 与 Appendix B。所有数值均为本文串行教学账单。