例题一:
(1)Cache的总容量=存储容量+标记阵列容量
标记阵列容量包括:有效位,标记位,还有一致维护位,替换算法控制位
题中不考虑Cache的一致维护性和替换算法控制位,所以标记阵列只有有效位与标记位。
下面为标记阵列示意图:
Cache容量计算:Cache总容量=Cache行数*Cache行的位数,或Cache总容量=Cache行数*(Cache行标记块位数+Cache块位数)
我们先来求标记位长度:标记位长度=主存地址长度-Cache地址长度。
主存地址有28位(256MB=2^28B)
Cache地址长度:6位块内地址(64B=2^6B)行号3位(2^3=8)
所以标记字段88为:28-6-3=19位
所以总容量为8*(1+19+512)=4256
(2)直接相联映射:
求对应的Cache行号,利用公式,主存块号 mod Cache行号
主存地址为3200B的地址对应的块号:3200B/64B=50
行号=50mod8=2
组相连映射:公式 主存块号modCache组数=Cache组号
50mod4=2,因此Cache行为4或5,因为组号从零编址,行号也是从零编址。