直接映射缓存中的集合数

时间:2011-11-23 01:44:33

标签: caching

如果我有9个地址位,直接映射缓存中有多少个集合? 如果我有10个地址位,直接映射缓存中有多少组?

这个问题是否有通用公式?

enter image description here

3 个答案:

答案 0 :(得分:3)

对于直接映射,每个地址仅映射到缓存中的一个位置,因此直接映射缓存中的集合数量就是缓存的大小。

标记将有0位,并且您没有提供足够的信息来确定索引或位移位。

假设您正在使用字寻址,并且您的意思是索引+标记有9或10位:

9位 - > 2 ^ 9套

10位 - > 2 ^ 10套

答案 1 :(得分:0)

好的,对于(a),自己绘制8列开始 - 这些将是你在缓存中的集合。

对于每个地址,检查地址(仅高位 - 忽略最低两位)是否位于由位2-4编号的列的底部。如果该列中没有写入任何内容,或者位2-10不匹配,则表示未命中。如果位2-10与您当前在该列底部写入的内容相匹配 - 因为您在缓存中有该地址,所以它是一个命中。无论是命中还是未命中,都要删除列中的当前值,并在那里写入新地址。

希望有所帮助。

答案 2 :(得分:0)

如果是直接地图,则块数将等于1.

现在您可以通过(缓存大小)/(块数)

获取集合数

这里是(缓存大小)/ 1 =缓存大小。