2011-11-23 64 views

回答

3

对于直接映射,每个地址仅映射到一个位置,在高速缓存中,从而套在直接映射的高速缓存的数量为所述高速缓存的只是大小。

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

假设使用的是字的寻址和你的意思有用于索引+标签9或10位:

9位 - > 2^9套

10位 - > 2^10套

+0

好的,我怎样才能分开标签,索引和字节偏移? –

+0

单词有多大,缓存有多大? –

+0

我认为这是我遇到的问题,没有指定。 –

0

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

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

希望有所帮助。

0

在直接映射的情况下块的数量将等于1。现在

您可以通过(高速缓存大小)获得套数/(号块)

在这里是(高速缓存大小)/ 1 =大小的缓存。