我有点困在两个问题上。我将包括问题的相关细节,任何指导将不胜感激。如果可以,请给出解释。

假设您有以下处理器的统计信息,其中包含几种不同的内存层次结构选择。

Base CPI = 1.5
Processor Speed = 2 GHZ
Main Memory Access Time = 100ns
L1 miss rate per instruction = 7%
L2 direct mapped access = 12 cycles
Global miss rate with L2 direct mapped = 3.5%
L2 8-way set associative access = 28 cycles
Global miss rate with L2 8-way set associative access = 1.5%

注意:全局未命中率是在各级缓存中未命中的引用百分比(因此必须访问主内存)
  • 如果 L2 缓存可用且直接映射,则计算总 CPI。
  • 如果 L2 可用并且是 8 路组关联,则计算总 CPI。
  • 最佳答案

    我现在明白了这个问题,所以我想我已经在这里解释了它,以提供更多信息来改进论坛。

    第一的,

    总 CPI = 基本 CPI + 每条指令的内存停顿周期

    每条指令的内存停顿周期 = 未命中惩罚(以周期为单位)x 未命中率

    如果没有第二个缓存,首要任务是计算未命中惩罚。这很容易通过以下计算确定:

    主内存访问时间/(1/处理器速度) = (100)/(.5) = 200 个周期

    注意:主内存访问时间以 ns 为单位,处理器速度的倒​​数将以 ns/cycles 为单位,因此将两者相除即可得到周期数。我们正在做这个计算,因为它需要一定的时间才能到达主存(100ns),处理器速度决定了我们可以走多快(2GHz),通过反转将时钟速度更改为时钟频率,我们可以计算进入主存储器所需的周期数(未命中惩罚)。

    因为这个问题涉及到两个缓存,当 L1 中出现未命中时,将尝试从 L2 检索信息,然后如果仍然没有找到信息,它将访问主内存,所以流程看起来像这样。

    访问 L1 -----> 访问 L2 -----> 访问主内存

    (暗示如果有“命中”,我们将不需要继续流程)

    问题告诉我们 L2 直接映射访问需要 = 12 个周期

    所以计算将如下所示:

    总 CPI = 1.5 + (0.07 x 12) + (0.035 x 200) = 9.34 CPI

    因为您错过了 7% 的时间,您将需要访问 L2,这需要 12 个周期,因此您将两者相乘。然后如果仍然没有找到,我们必须访问主内存,这需要 200 个周期,全局未命中率为 3.5%

    总 CPI = 1.5 + (0.07 x 28) + (0.015 x 200) = 6.46

    第二个计算以类似的方式完成

    关于cpu - 多级缓存性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10197446/

    10-15 22:26