如果我有9个地址位,直接映射缓存中有多少个集合? 如果我有10个地址位,直接映射缓存中有多少组?
这个问题是否有通用公式?
答案 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 =缓存大小。