整理了一些很容易弄混淆的概念和一些与Cache容量相关的经典题目。
首先是Cache容量中一些概念问题,自己整理如下:
标记项
有效位
用来判断该Cache行数据是否有效,不管什么情况下该位一定存在
脏位
当Cache采用写回策略时,在Cache行中增加脏位来判断是否需要将Cache行中的内容写回到主存中
替换位
Cache采用LRU和LFU时需要给每个Cache行增加一个计算器来统计该Cache行的使用频率,使用替换位来实现,因此替换位的位数为 其中n为组相联中每组的块数
tag位
这个就不多说了,tag位数由主存位数减去cache地址位数
数据项
注意这里的数据项是cache的块所占的位数,不包含块号或者组号
Cache总容量计算
Cache总容量=Cache行数*(Cache行位数)
=Cache行数*(标记项位数+数据项位数)
现在我们来看一个例题
注意!!
平时题目中提到的Cache行长一般指的是数据项,而不是包括了标记项的行长,而平时题目中的给的Cache容量也是只算了所有数据项的容量,不包括标记项,若是提到了Cache总容量或者问题为“请计算Cache容量大小”,那么这个时候一般指的是包括了标记项的总容量,不过还请根据具体情况而定,以上只是作者本人平时做题总结的经验,不具有一般性