cache行大小为16B,有64行,假设自开机起,有如下地址序列的以字节为单位(byte-addressed)的访存操作执行两遍,address:0,16,132,232,160,1024,30,140,3100,180,2180; 问1.上述访存序列中发生了多少次cache行替换?cache命中率(hit ratio)是多少?2.给出访存序列结束后,该cache的最终状态,每一cache行包括如下3个域:valid,tag,data;3.假设cache命中时间(hit time)是1个时钟周期,计算该访存序列的平均访存时间AMAT。
时间: 2024-02-26 20:53:43 浏览: 65
好的,我知道了。针对你的问题,我来一一解答:
1. 上述访存序列中发生了多少次cache行替换?
根据LRU算法,最近最少使用的cache行会被替换,因此我们需要根据访问顺序来判断哪些cache行被替换了。经过分析,第一遍访问后,发生了2次cache行替换;第二遍访问后,又发生了3次cache行替换。因此,总共发生了5次cache行替换。
2. cache最终状态
每一cache行包括如下3个域:valid,tag,data。下面是每个cache行的最终状态:
cache行0:valid=1,tag=0,data=0-15
cache行1:valid=1,tag=0,data=16-31
cache行2:valid=1,tag=1,data=128-143
cache行3:valid=1,tag=1,data=224-239
cache行4:valid=1,tag=1,data=160-175
cache行5:valid=1,tag=4,data=992-1007
cache行6:valid=0,tag=0,data=0-15
cache行7:valid=0,tag=0,data=128-143
cache行8:valid=0,tag=9,data=3072-3087
cache行9:valid=1,tag=1,data=176-191
cache行10:valid=1,tag=13,data=2176-2191
3. 平均访存时间AMAT
AMAT = 访存时间 + 命中时间 x 命中率 + 替换时间 x 替换率
其中,访存时间可以忽略不计,因此AMAT = 命中时间 x 命中率 + 替换时间 x 替换率 = 1 x (6/10) + 11 x (4/10) = 4.5 个时钟周期。
阅读全文