书上的公式太麻烦了,又总是搞不明白啥是n,啥是m,这里理解过后重新总结一下:
标记域=32(地址位数)-(n是cache的块数)-
(m是cache的块大小)-2(偏移量)
总位数=cache的块数*(块大小*地址位数+标记域+1)
注:4KiB=1024(2^10)个字
例题:
假设一个直接映射的cache,有16KiB的数据,块大小为4个字,地址为32位,那么该cache为多少位?
解:
16KiB=2^12个字,
块大小=4(2^2)个字,
需要块数=16KiB/4=2^10个块
地址位数=32
cache的大小=2^10*(4*32+(32-10-2-2)+1)=2^10*147=147KiB