【问题标题】:Memory access time analytical modelling内存访问时间分析建模
【发布时间】:2014-10-20 08:20:16
【问题描述】:

在给定这些数据的情况下,有一个关于解决 AMAT(平均内存访问时间)的问题:

图例:缓存级别 1 = L1 缓存级别 2 = L2 主内存 = M

L1, L2 and M's Hit Time are  1, 10 and 100 respectively whilst
L1 Miss Rate is 5%, L2 5% and M 50%.

以时钟周期查找 AMAT。

尝试解决这个问题后,这是我的解决方案:

AMAT's formula is = Hit Time X Hit Rate + Miss Penalty * Miss Rate
Miss Penalty = AMAT for the next cache(say for example, AMAT of L2)

所以我操纵了公式,结果是这样的:

AMAT = Hit Time L1 X Hit Rate L1 + AMAT L2 * Miss Rate L1
AMAT L2 = Hit Time L2 X Hit Rate L2 + AMAT M * Miss Rate L2
AMAT M = Hit Time M X Hit Rate M + [???] * Miss Rate M

为上述公式提供数值将如下所示:

AMAT = 1 X .95 + AMAT L2 * .05
AMAT L2 = 10 X .95 + AMAT M * .05
AMAT M = 100 X .5 + [???] * .5

所以我的第一个问题是,我的公式是否正确? 接下来,如何获得M的Miss Penalty?

【问题讨论】:

    标签: caching memory memory-management cpu-architecture


    【解决方案1】:

    您的“级联”扣除是正确的。如果您错过了 L1,则必须从 L2 中获取数据,这涉及到惩罚;如果您错过了 L2,则必须从 RAM 中获取数据,这涉及到更高的惩罚。基于此,您计算 AMAT 的方法是正确的。

    现在,让我们看一下计算机体系结构。在 L1 之后是 L2,在 L2 之后可以是 L3,也可以是 RAM。在 RAM 之后,您拥有持久存储(硬盘)。

    但是,对 HDD 的访问时间很难计算。大多数分析器(例如 perf、oprofile)只是为您提供缓存的未命中率,并假设其余的读取是直接从 RAM 中获取的。在现代计算机中通常是这种情况。来自硬盘驱动器的读取被标记为 I/O 请求。 为什么很难计算 HDD 访问时间? 因为您的数据块可以位于 HDD 上的任何位置,具体取决于碎片。在旋转磁盘的情况下,如果数据位于磁读取器附近,则访问时间会更短。所以在计算 AMAT 时,通常硬盘访问时间很难预测。

    这意味着如果问题陈述只给出 L1、L2、M 命中时间,则无法计算 HDD 命中时间。但是您可以在现实生活中的应用程序中测量/估计它,使用分析器。

    简而言之:

    1. 您的公式正确吗? 是的 - 从数学的角度来看。 从实际的角度来看,如果 M 命中率不是 100%,它很难使用并且通常没有意义。

    2. 如何计算 M 未命中惩罚? 如果没有给出,则无法计算。实际上,通过分析分析器的输出,您可以确定特定测量的结果(由于上述原因,不能保证另一次测量的结果相同)以上)。

    干杯。

    【讨论】:

      猜你喜欢
      • 2013-06-14
      • 2016-04-11
      • 2014-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      相关资源
      最近更新 更多