在计算机的 RAM 中存储了一个较长的程序,用 Forth 编程语言编写。它包含三个子函数,并且在 CPU 的一级缓存中存储它们占用了太多字节。
需要一个缓存策略来决定只有一个 RAM 窗口被复制到 CPU 缓存中。Forth CPU 能够从一级缓存中读取,但不能从 RAM 中读取,因为访问 RAM 需要很长时间。
图中,指令指针指向第一个字,到目前为止已经执行了一个命令,很快就会到达“:add”这个字的末尾。但那时会发生什么?
如果 CPU 已执行第一级缓存 (+) 中的最后一条命令,则没有其他命令。Forth CPU 的哪个部分决定卸载 CPU 缓存的当前内容并从 RAM 中检索新块?
我不确定这是否与“块缓冲区”、“Forth VM 中的堆栈缓存”或“基于硬件的 CPU 缓存”有关。文献有点混乱: