我有点困在两个问题上。我将包括问题的相关细节,任何指导将不胜感激。如果可以,请给出解释。
假设对于具有多种不同内存层次结构选择的处理器,您有以下统计信息。
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可用,则计算总CPI,并且是8路组关联。
答案 0 :(得分:6)
我现在明白了这个问题所以我认为我已经在这里解释了它以更多信息改进论坛。
首先,
总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
因为你错过了7%的时间你需要访问L2并且需要12个周期才能将这两个周期相乘。然后,如果仍然没有找到,我们必须访问需要200个周期的主存储器,全局未命中率为3.5%
总CPI = 1.5 +(0.07×28)+(0.015×200)= 6.46
第二次计算以类似方式完成
答案 1 :(得分:0)
回答第一个问题的部分原因是基于解释。我认为这意味着如果只有一个缓存级别,我们应该计算CPI。这改变了很多事情......
1)系统中只有L1缓存
Miss penalty = 100ns/(1/2GHz) = 200 cycles
First-level Cache CPI = 1.5 + (0.07 * 200) = 15.5
2)L2直接映射缓存
L1 miss, L2 hit penalty = 12 cycles
Both miss penalty = 12 + 200 = 212 cycles
Total CPI = 1.5 + (0.07 * 12) + (0.035 * 212) = 9.76
3)L2八路组关联缓存
L1 miss, L2 hit penalty = 28 cycles
Both miss penalty = 28 + 200 = 228 cycles
Total CPI = 1.5 + (0.07 * 28) + (0.015 * 228) = 6.88
我不知道这些答案是否正确,但我可以在我做完作业后更新这篇文章。
而且,请注意,这是Patterson和Hennessy第5版“计算机组织与设计”中的问题5.7.4