如果我有9位地址,直接映射高速缓存中有多少组?
如果我有10位地址,直接映射高速缓存中有多少组?
是否有一个通用的公式来回答这个问题?
是否有一个通用的公式来回答这个问题?
如果是直接映射,则块的数量将等于1。
现在,您可以通过(高速缓存大小)/(块数)来获取集合的数量
这里的块数为1,因此集合的数量为高速缓存大小。
好的,对于(a),首先画出8列 -- 这些将是您在缓存中的集合。
对于每个地址,检查地址(仅高位 -- 忽略最低两位)是否在由第2-4位组成的列底部。如果该列中没有写入任何内容,或者第2-10位不匹配,则为未命中。如果第2-10位与您当前在该列底部写入的值匹配,则为命中,因为您在缓存中有该地址。无论是命中还是未命中,都要划掉该列中的当前值,并在那里写入新地址。
希望这能帮到您。