[英]Computing the average memory access time with following processor and cache performance
考虑以下处理器和缓存配置
时钟频率 | 500MHz |
---|---|
基本 CPI | 1 |
L1 缓存类型 | 独立的指令和数据缓存 |
L1 缓存写策略 | 回写 |
L1 缓存命中时间 | 2ns |
L1 失罚 | 40ns(读取和写入主存的时间) |
L1 指令缓存未命中率 | 1% |
L1 数据缓存未命中率 | 5% |
脏数据缓存块 | 40% 的总数据缓存块 |
(a) 计算指令缓存的平均内存访问时间 (AMAT)。
(b) 假设加载和存储占指令的 20%,计算数据缓存的平均内存访问时间 (AMAT)。
我的答案
(一个) :
根据公式
AMAT=命中时间+未命中率*未命中惩罚
AMAT= 2ns+0.01*40ns =2.4ns
(b):
根据公式
AMAT=命中时间+未命中率*未命中惩罚
AMAT= 2ns+0.05* 40ns*0.2 =2.4ns
以上答案是我的意见,但我不确定如何使用缓存配置,例如脏数据缓存块和时钟速率。 我的答案是正确的还是我遗漏了什么? 谢谢阅读!
40ns(读取和写入主存的时间)
在该文本中使用连词and
很尴尬。 这可能意味着 40ns = 读取 + 回写,因此 40ns 用于重新填充脏缓存行,但我认为最好将其读取为“两者”,因此读取为 40ns,回写为 40ns。 我会写or
写在那里,以避免在“两者”或“ and
”的意义上与加法意义上的混淆。
你的 (a) 看起来不错。
在 (b) 上:
L1 数据缓存的未命中率为 5%,在其中 40% 的情况下,未命中必须写回和读取。 所以,在这里,我们需要区分读操作和回写操作,因为所有未命中都会产生读取时间,而 40% 也会产生回写时间。
我不习惯指定数据(加载和存储)的平均访问时间,其中包括不访问数据的指令。 但是,如果在某些时候您想结合 i & d-cache 时间来获得每条指令的 AMAT 的整体视图,这确实是有意义的。 因此,沿着这条路线,我们需要将 20% 应用于命中和未命中,而不仅仅是未命中。 我会在没有 20% 的情况下计算数据缓存性能(即,给定指令是加载或存储:什么是 AMAT),然后将最后的 20% 考虑在内,以对所有指令进行平均。
我看不到问题(a)或(b)中涉及的周期或MHz。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.