多级缓存性能

Ock*_*ham 2 architecture cpu organization cpu-architecture

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

假设对于具有多种不同内存层次结构选择的处理器,您有以下统计信息.

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%    
Run Code Online (Sandbox Code Playgroud)

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

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

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

Ock*_*ham 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 x 28)+(0.015 x 200)= 6.46

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