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

Cpu architecture 平均内存访问时间公式中的混淆,cpu-architecture,cpu-cache,Cpu Architecture,Cpu Cache,我在看一个关于内存层次结构的问题 问题要求计算AMAT(平均内存访问时间) 以下为给出的公式: 我还看到了斯坦福大学在这次会议上的一次演讲 其中的公式是: 通过网上搜索,我的理解是,AMAT在任何级别都是: AMAT = hit time + local miss rate X miss penalty 对于斯坦福大学的公式,它一定是因为: AMAT = hit time (L1) + local miss rate (L1) X miss penalty (L1) =

我在看一个关于内存层次结构的问题

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

以下为给出的公式:

我还看到了斯坦福大学在这次会议上的一次演讲

其中的公式是:

通过网上搜索,我的理解是,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) 斯坦福公式中的二级未命中率是二级缓存的全局未命中率吗

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

(c) 为什么在第一个公式中,TLB未命中惩罚与TLB命中时间相加(在缓存公式中,未命中率仅与未命中惩罚相乘)

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


谢谢。

我知道这是个老问题,但无论如何

(a) 斯坦福公式中的二级未命中率是否为 二级缓存

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

(b) 为什么第一个链接的问题公式是相乘的 L1的命中时间和命中率

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

但在第二个公式中,未命中惩罚是命中时间内的额外数量。因此,本质上,命中时间是一个基本延迟,它在100%的时间内发生,不管是命中还是未命中。第二个公式可以改写如下:

AMAT=100%X命中时间(L1)+本地未命中率(L1)X未命中惩罚(L1)

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

(c) 为什么在第一个公式中,TLB未命中惩罚加上TLB命中 时间(在缓存公式中,未命中率仅乘以 罚球小姐

如果您查看本课程的幻灯片17,您将看到发出访问的指令在TLB未命中时重新启动(这意味着所有TLB未命中总是由操作系统处理,而不是由硬件处理)。因此,在TLB未命中时,TLB命中延迟再次发生(除了TLB未命中惩罚之外)

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

配方很好