计算机在主存储器和处理器之间使用小型直接映射缓存。缓存有四个 16 位字,每个字都有一个关联的 13 位标记,如图(a)所示。当读取操作期间发生未命中时,从主存储器中读取请求的字并将其发送到处理器。同时,它被复制到缓存中,其块号存储在关联的标签中。考虑一个程序中的以下循环,其中所有指令和操作数都是 16 位长:
LOOP: Add (R1)+,R0
Decrement R2
BNE LOOP
<-13 bits-> <--16bit->
0|TAG |DATA |
2| | |
4| | |
6|_______ | ______ |
(a)Cache
.
.
| A03C |<---ADDRESS 054E
| 05D9 |
| 10D7 |
.
.
(b)Main Memory
假设在进入此循环之前,寄存器 R0、R1 和 R2 分别包含 0、054E 和 3。还假设主存储器包含图 (b) 中所示的数据,其中所有条目都以十六进制表示法给出。循环从位置 LOOP = 02EC 开始。(a) 在每次循环结束时显示缓存的内容。