Caching 内存访问时间分析模型

Caching 内存访问时间分析模型,caching,memory,memory-management,cpu-architecture,Caching,Memory,Memory Management,Cpu Architecture,在给定以下数据的情况下,解决AMAT(平均内存访问时间)有一个问题: 图例:缓存级别1=一级缓存级别2=二级主内存=M 在时钟周期中查找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) 所以我操纵了这个公式,结果是这样的: AM

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

图例:缓存级别1=一级缓存级别2=二级主内存=M

在时钟周期中查找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
提供上述公式的数值如下所示:

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的未命中处罚?

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

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

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

这意味着,如果问题语句仅给出L1、L2、M命中时间,则无法计算HDD命中时间。但是您可以使用探查器在实际应用程序中测量/估计它

简言之:

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

  • 如何计算M未命中惩罚如果未给出,则无法计算。在实践中,通过分析探查器输出,可以确定特定测量的结果(由于上述原因,无法保证其他测量的结果相同)

  • 干杯