Skip to content

模型Model

平均访存时间及其模型边界

Average memory access time · AMAT · Local and global miss rate

在串行阻塞访问模型下推导AMAT,区分局部与全局缺失率、额外罚时和重叠执行。

形式陈述 ​

对缓存的一次需求访问,设每次都支付命中查询时间 H;缺失概率为 m,缺失后再支付额外罚时 P。在串行阻塞、这些成本可按该条件计费的模型中,访问时间为 T=H+1missP,由期望得到

AMAT=H+mP.

P是“查询已失败之后额外等待多久”,不含已计入的H。若P随缺失类型变化,应改用 H+mE[P∣miss]。单位必须一致,周期换成时间还要乘相应时钟长度。

两级串行层次中,L1缺失率为 m1,L2在被访问时的条件缺失率为 m2,则

E[T]=H1+m1(H2+m2Pmem).

到主存的全局缺失比例是 m1m2,不需要假定两级缺失事件独立,因为 m2 本来就是条件比例。

直觉

AMAT是一张概率加权账单:人人先付查找费,只有缺失者再付下一段费用。最常见的错误是把“总缺失访问时间”当作额外罚时,重复支付第一次查找。

它描述的是选定访问集合的平均成本。指令执行能否同时做其他工作、多个缺失能否重叠,是另外的调度问题;不能把AMAT直接乘访存条数后称为现代CPU程序运行时间。

例子与边界

局部比例的分母不同 ​

1000次L1访问有100次到L2,L2其中20次还要到主存。于是 m1=0.1,m2=0.2,全局主存比例是0.02。取 H1=1,H2=6,Pmem=40 个教学时间单位,AMAT为 1+0.1(6+0.2⋅40)=2.4。

若把全局0.02误填进 m2,得到1.68,少算了主存代价。这是分母错误,不是四舍五入问题。

脏写回需要额外一项 ​

在一个明确串行的WB模型中,缺失先可能写回victim再填新块。若缺失时victim为dirty的条件概率为 d、整块回写时间为W、填入时间为F,则 P=dW+F。取H=1、m=0.1、d=0.5、W=8、F=12,AMAT为2.6。

如果硬件能把写回与填入重叠,就不能仍把二者直接相加;反之也不能未经声明就取最大值。是加法还是重叠,应由资源和队列模型决定。

更低缺失率仍可能更慢 ​

配置甲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。所有数值均为本文串行教学账单。
关系图谱9 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组