在组号映射的地方清楚地讲了 Cache 行中包含标记部分和有效位
同理,在 Cache 写策略处写了若采用回写法,Cache 行还包含一位脏位
由此看来 Cache 总容量 = 行数×行长 = 行数×(可能存在的脏位位数+有效位位数+标记部分位数+数据部分位数)
如下题:
但是在一道例题中可见一个隐含约定:Cache 行长一般指 Cache 行中的数据部分的长度,Cache 容量一般指 Cache 数据部分的容量
例题:
某 32 位计算机的 Cache 容量为 16KB,Cache 块的大小为 16B,若主存与 Cache 的地址映射采用直接映射方式,则主存地址为 1234e8f8 (十六进制)的单元装入的 Cache 地址为______。
a.00 0100 0100 1101(二进制) b.01 0010 0011 0100(二进制)
c.10 1000 1111 1000(二进制) d.11 0100 1110 1000(二进制)
这题的做法 1 是 Cache 容量为 2^14 B,又因为给出的地址是 14 位