多级缓存性能

问题描述:

我很困扰两个问题。我将包括这个问题的相关细节,任何指导将不胜感激。如果可以,请给出解释。多级缓存性能

假设您具有以下针对处理器的统计信息,并具有多个不同的内存层次结构选项。

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. 计算出总的CPI,如果二级缓存是可用的百分比是直接映射的。

  2. 如果L2可用并且是8路组关联,则计算总CPI。

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

首先,每个指令

总CPI =基本CPI +内存停顿周期

每指令存储器-停顿周期=失效损失(在周期)×率小姐

的第一阶如果没有第二个缓存,业务就是找出错过的惩罚。这很容易通过以下计算确定:

主存储器存取时间/(1 /处理器速度)=(100)/(0.5)= 200次循环

注意:主存储器存取时间是在NS,并且处理器速度的倒​​数将以ns /周期为单位,所以通过除以二得到循环数。我们正在做这个计算,因为它需要一定的时间才能进入主存(100ns),而处理器的速度决定了我们可以走多快(2GHz),并且通过反转我们可以计算出时钟频率变为时钟频率进入主内存所需的周期数(错过惩罚)。

由于问题涉及两个缓存,当L1中有一个未命中时,将会尝试从L2中检索信息,然后如果信息仍未找到,它将访问主存储器,所以流程看起来像这个。

访问L1 ----->接入L2 ----->访问主存

(它暗示,如果有一个“打”我们不需要继续流)

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

因此计算将看起来如下:

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

因为你错过了7%的时间,你需要访问L2并需要12个周期,因此你将两者相乘。那么如果仍然没有找到,我们必须访问需要200个周期的主存储器,并且全局缺失率是3.5%

总CPI = 1.5 +(0。07×28)+(0.015×200)= 6.46

第二计算被以类似的方式

的回答第一个问题的部分进行基于解释过的。我认为这意味着如果只有一个缓存级别,我们应该计算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