Caching 内存访问时间分析模型
在给定以下数据的情况下,解决AMAT(平均内存访问时间)有一个问题: 图例:缓存级别1=一级缓存级别2=二级主内存=M 在时钟周期中查找AMAT 尝试解决这个问题后,我的解决方案如下: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'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命中时间。但是您可以使用探查器在实际应用程序中测量/估计它
简言之: