Cache性能分析例题3:平均访存时间和CPU时间的计算
题目内容
考虑两种不同组织结构的Cache的性能以及其对CPU性能的影响。分析时请用以下假设: (1)两种Cache分别为直接映像Cache和2路组相联Cache,容量均为128KB,块大小都是64字节。 (2)理想Cache(命中率100%)情况下的CPI为1.6,时钟周期为0.35ns,平均每条指令访存1.4次。 (3)命中时间为1个时钟周期,直接映像Cache的失效率为2.1%,2路组相联Cache的失效率为1.9%。失效开销都是65ns(在实际应用中,应取整为整数个时钟周期)。 (4)组相联Cache中,必须增加多路选择器,用于根据标识匹配的结果从相应组的块中选择所需的数据。因为CPU的速度直接与Cache命中的速度紧密相关,所以对于组相联Cache,由于多路选择器的存在而使CPU的时钟周期增加到原来的1.35倍。
题目分析
评价类问题首先确定评价指标。对于Cache的性能和CPU的性能,可以用Cache的平均访存时间和CPU时间来进行衡量。因此我们只需要分别计算出两种组织结构Cache的平均访存时间和CPU时间进行比较即可。
平均访存时间的求解与比较
首先分析平均访存时间公式如下:
平均访存时间=命中时间+失效率×失效开销
本题中直接映像Cache的时钟周期根据(2)可知,为0.35ns,而2路组相联Cache的时钟周期由(4)可知是直接映像Cache的1.35倍,因此也可以计算。 两种Cache的失效率和失效开销在(3)中都已经给出。 因此公式中的各个变量的值都已知,即可进行代入运算,运算过程如下:
2路组相联Cache时钟周期=0.35ns×1.35=0.4725(ns) 直接映像Cache平均访存时间=0.35ns+2.1%×65ns=1.72(ns) 2路组相联Cache平均访存时间=0.4725ns+1.9%×65ns=1.71(ns)
因此可以看出本题中2路组相联Cache的平均访问时间少于直接映像Cache的平均访问时间。
CPU时间的求解与比较
首先列出CPU时间公式如下:
CPU时间=指令数×(执行CPI+访存次数/指令数×失效率×失效开销)×时钟周期时间
本题中指令数虽然未知,但是可以通过求比值约分的方法忽略掉。 两种Cache的时钟周期时间、执行CPI均已知。访存次数/指令数即每条指令的平均访存次数,在题目中已经给出。 失效率和失效开销在题目条件中也已经给出。 因此可以求出两种Cache的CPU时间的比值。计算过程如下所示:
直接映射Cache的CPU时间=指令数×(1.6+1.4×2.1%×65ns)×0.35=2.47×指令数 2路组相联Cache的CPU时间=指令数×(1.6+1.4×1.9%×65ns)×0.35×1.35=2.49×指令数
因此可以看出本题中直接映射Cache的CPU时间低于2路组相联Cache的CPU时间。