在计算机的RAM中,存储了一个较长的程序,用Forth编程语言编写。它包含三个子函数,并且需要太多字节才能将它们存储在CPU的第一级缓存中。
需要一种缓存策略,决定只将RAM的一个窗口复制到CPU缓存中。 Forth CPU能够从第一级缓存读取,但不能从RAM读取,因为访问RAM需要花费很多时间。
在图中,指令指针指向第一个字并且到目前为止执行了一个命令,并且将在短时间内到达单词“:add”的结尾。但那会发生什么呢?
如果CPU在第一级缓存(+)中执行了最后一条命令,则没有其他命令。 Forth CPU的哪个部分决定卸载CPU缓存的当前内容并从RAM中检索新的块?
我不确定这是否与“块缓冲区”,“Forth VM中的堆栈缓存”或“基于硬件的CPU缓存”有关。文献有点令人困惑:
答案 0 :(得分:1)
实际上,它似乎是一个不特定于Forth CPU的一般性问题。
从内存中检索数据到缓存的CPU部分称为缓存控制器单元或缓存控制电路。
另请参阅:Microprocessor Design/Cache wikibook,How does CPU identify if the instructions are decoded问题。