3

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

假设您有以下针对具有多种不同内存层次选择的处理器的统计信息。

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%    

注意:全局未命中率是在所有级别的缓存中未命中的引用百分比(因此必须访问主内存)

  1. 如果 L2 缓存可用并且是直接映射的,则计算总 CPI。

  2. 如果 L2 可用并且是 8-way set associative,则计算总 CPI。

4

2 回答 2

7

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

第一的,

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

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

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

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

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

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

访问 L1 -----> 访问 L2 -----> 访问主存储器

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

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

所以计算将如下所示:

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

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

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

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

于 2012-04-18T04:36:14.137 回答
1

回答第一个问题的部分内容是基于解释。我认为这意味着如果只有一个缓存级别,我们应该计算 CPI。这改变了很多事情......

  1. 系统中只有一级缓存

    未命中惩罚 = 100ns/(1/2GHz) = 200 个周期 一级缓存 CPI = 1.5 + (0.07 * 200) = 15.5

  2. L2 直接映射缓存

    L1 未命中,L2 命中惩罚 = 12 个周期 两个未命中惩罚 = 12 + 200 = 212 个周期 总 CPI = 1.5 + (0.07 * 12) + (0.035 * 212) = 9.76

  3. L2 八路组关联缓存

    L1 未命中,L2 命中惩罚 = 28 个周期 两个未命中惩罚 = 28 + 200 = 228 个周期 总 CPI = 1.5 + (0.07 * 28) + (0.015 * 228) = 6.88

而且,请注意,这是来自 Patterson 和 Hennessy 的第 5 版计算机组织和设计中的问题 5.7.4

于 2016-02-24T22:18:30.213 回答