繁体   English   中英

使用以下处理器和缓存性能计算平均内存访问时间

[英]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) 上:

  1. L1 数据缓存的未命中率为 5%,在其中 40% 的情况下,未命中必须写回和读取。 所以,在这里,我们需要区分读操作和回写操作,因为所有未命中都会产生读取时间,而 40% 也会产生回写时间。

  2. 我不习惯指定数据(加载和存储)的平均访问时间,其中包括不访问数据的指令。 但是,如果在某些时候您想结合 i & d-cache 时间来获得每条指令的 AMAT 的整体视图,这确实是有意义的。 因此,沿着这条路线,我们需要将 20% 应用于命中和未命中,而不仅仅是未命中。 我会在没有 20% 的情况下计算数据缓存性能(即,给定指令是加载或存储:什么是 AMAT),然后将最后的 20% 考虑在内,以对所有指令进行平均。

我看不到问题(a)或(b)中涉及的周期或MHz。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM