Caching 计算三级缓存的实际/有效CPI

Caching 计算三级缓存的实际/有效CPI,caching,cpu-architecture,cpu-cache,Caching,Cpu Architecture,Cpu Cache,a您将得到一个具有两级缓存L1和L2的内存系统。规格如下: 一级缓存命中时间:2个时钟周期 一级缓存命中率:92% 二级缓存命中时间的未命中惩罚:8个时钟周期 二级缓存命中率:86% 主存未命中惩罚:37个时钟周期 假设主存储器的命中率为100%。 给定加载/存储37%数据传输指令的2000指令程序,计算此场景中每条指令的CPI时钟周期 For this part, I calculated it like this (am I doing this right?): (m1: miss ra

a您将得到一个具有两级缓存L1和L2的内存系统。规格如下:

一级缓存命中时间:2个时钟周期 一级缓存命中率:92% 二级缓存命中时间的未命中惩罚:8个时钟周期 二级缓存命中率:86% 主存未命中惩罚:37个时钟周期 假设主存储器的命中率为100%。 给定加载/存储37%数据传输指令的2000指令程序,计算此场景中每条指令的CPI时钟周期

For this part, I calculated it like this (am I doing this right?):

(m1: miss rate of L1, m2: miss rate of L2)

AMAT = HitTime_L1 + m1*(HitTime_L2 + m2*MissPenalty_L2)
CPI(actual) = CPI(ideal) + (AMAT - CPI(ideal))*AverageMemoryAccess
b现在让我们添加另一级缓存,即二级缓存和主内存之间的三级缓存。考虑以下事项:

三级缓存未命中惩罚三级缓存命中时间:13个时钟周期 三级缓存命中率:81% 主存未命中惩罚:37个时钟周期 其他规范作为a部分保留 对于具有37%数据传输指令的同一2000指令程序,计算CPI

(m1: miss rate of L1, m2: miss rate of L2, m3: miss rate of L3)

AMAT = HitTime_L1 
         + m1*(HitTime_L2 + m2*MissPenalty_L2)
           + m2*(HitTime_L3 + m3*MissPenalty_L3)
这个公式正确吗?在这个公式中,我在哪里向主内存添加未命中惩罚?
它可能应该加上L3的未命中惩罚,但我不确定。

a如果您注意到MissPenal_L2参数就是您所谓的主存未命中惩罚,那么AMAT计算是正确的

消费物价指数有点难。 首先,让我们假设CPU不是流水线顺序处理器

每条指令有1.37个内存访问,一次访问获取指令,由于数据传输指令,有0.37个内存访问。理想情况是所有内存访问都命中一级缓存。 因此,知道:

CPI(ideal) = CPI(computation) + CPI(mem) = 
             CPI(computation) + Memory_Accesses_per_Instruction*HitTime_L1 =
             CPI(computation) + 1.37*HitTime_L1
对于真实内存,平均内存访问时间为AMAT,因此:

CPI(actual) = CPI(computation) + Memory_Accesses_per_Instruction*AMAT =
              CPI(ideal) + Memory_Accesses_per_Instruction*(AMAT - HitTime_L1) =
              CPI(ideal) + 1.37*(AMAT - HitTime_L1)
b你的AMAT计算错了。在L2未命中后,它会跟随L3访问,该访问可以是命中或未命中。试着自己完成练习。

相关讨论-