【发布时间】:2018-04-07 05:30:20
【问题描述】:
在计算机的 RAM 中存储了一个较长的程序,用 Forth 编程语言编写。它包含三个子函数,并且在CPU的一级缓存中存储它们占用了太多字节。
需要一种缓存策略,该策略决定仅将 RAM 的一个窗口复制到 CPU 缓存中。 Forth CPU 能够从一级缓存中读取,但不能从 RAM 中读取,因为访问 RAM 需要很长时间。
图中,指令指针指向第一个字,到目前为止已经执行了一个命令,很快就会到达“:add”这个字的末尾。但是接下来会发生什么?
如果 CPU 已执行一级缓存 (+) 中的最后一条命令,则没有其他命令。 Forth CPU 的哪个部分决定卸载 CPU 缓存的当前内容并从 RAM 中检索新块?
我不确定这是否与“块缓冲区”、“Forth VM 中的堆栈缓存”或“基于硬件的 CPU 缓存”有关。文献有点混乱:
【问题讨论】:
-
您说的是一般的缓存实现吗?那么这个问题就不是真正的问题了,各种缓存技术已经在别处描述了。
标签: cpu-cache forth hardware-design