Caching 循环后缓存的内容是什么?

Caching 循环后缓存的内容是什么?,caching,memory,memory-management,architecture,Caching,Memory,Memory Management,Architecture,计算机在主存和内存之间使用小型直接映射缓存 处理器。缓存有四个16位字,每个字都有一个关联的13位标记, 如图(a)所示。在读取操作期间发生未命中时,请求的 字从主存读取并发送到处理器。同时,它是 复制到缓存中,其块号存储在关联的标记中。考虑一下 所有指令和操作数都是16位长的程序中的以下循环: LOOP: Add (R1)+,R0 Decrement R2 BNE LOOP <-13 bits-> <--16bit-> 0|TAG

计算机在主存和内存之间使用小型直接映射缓存 处理器。缓存有四个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
循环:添加(R1)+,R0
减量R2
BNE环
0 |标记|数据|
2|        |         | 
4|        |         |
6|_______ | ______  |
(a) 缓存
.   
.

|A03C |标记为13位,块偏移量为3位。但只有4条缓存线。它们是0,2,4,6。现在,第一个内存位置是0000 0010 1110 1100,因此add将转到缓存中的第四个块。操作数将进入第6块。但是下一条指令会发生什么呢?从哪里开始呢。如果它是02ED,那么它将在第五块,这不是一个家庭作业,或者你问这个问题是为了解决一些其他实际问题?不是一个家庭作业问题。试图了解什么是最好的替换策略和内存状态。@Anderson