平均内存访问时间的公式混淆

时间:2013-12-24 18:00:43

标签: cpu-architecture cpu-cache

我正在查看此link

中的内存层次结构问题

该问题要求计算AMAT(平均内存访问时间)

enter image description here

以下是给出的公式:

enter image description here

我还看到了斯坦福在link2

的演讲

有这样的公式:

enter image description here

从网上搜索,我的理解是任何级别的AMAT都是:

 AMAT = hit time + local miss rate X miss penalty

所以对于斯坦福的公式来说,一定是因为:

 AMAT = hit time (L1) +  local miss rate (L1) X miss penalty (L1)
      = hit time (L1) +  local miss rate (L1) X [ hit time (L2) +  local miss rate (L2) X miss penalty (L2) ]
      = hit time (L1) +  local miss rate (L1) X hit time (L1) + **global miss rate (L2)** X miss penalty (L2)

(a)是斯坦福公式中的L2未命中率L2缓存的全局未命中率?

(b)为什么第一个链接的问题公式乘以命中时间与L1的命中率?

(c)为什么在第一个公式中,TLB未命中罚分加上TLB命中时间(在缓存公式中,未命中率只是乘以未命中罚分)?

(d)如果第一个链接的公式是错误的,那么在出现这样的问题时计算AMAT的正确公式是什么?

感谢。

1 个答案:

答案 0 :(得分:1)

我意识到这是一个老问题,但无论如何。

  

(a)是斯坦福公式中L2未命中率的全局未命中率   二级缓存?

我不确定“全局”是什么意思,但是公式中的L2未命中率是指发出请求的核心的整个L2,考虑到来自该核心的所有对L2的需求访问。

  

(b)为什么第一个链接的问题公式成倍增加   命中时间与L1的命中率?

出现混淆是因为公式中使用的术语没有精确定义。在第一个公式中,命中时间和未命中罚分是独立的数量。也就是说,它们不重叠。我认为最好把它称为“错过时间”,而不是“错过点球”。

但是在第二个公式中,未命中罚分是在命中时间内的附加数量。因此,基本上命中时间是100%的时间内产生的基本延迟,无论是命中还是未命中。第二个公式可以改写如下:

AMAT = 100%X命中时间(L1)+局部未命中率(L1)X未命中罚分(L1)

因此,两个公式都以相同的方式计算AMAT(暂时忽略TLB)。只是术语的定义不同。

  

(c)为什么在第一个公式中,TLB命中增加了TLB未命中惩罚   时间(在缓存公式中,未命中率只是乘以   错过点球?)

如果你看一下VM II讲座的幻灯片17,你会看到发出访问权限的指令在TLB未命中时重新启动(这意味着所有TLB未命中都由操作系统处理,而不是硬件)。因此,在TLB未命中时,TLB命中延迟再次发生(除了TLB未命中惩罚)。

  

(d)如果第一个链接的公式错误,那么正确的公式是什么   在出现这样的问题时计算AMAT?

公式很好。