【问题标题】:Cache request in Forth CPUForth CPU 中的缓存请求
【发布时间】: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


【解决方案1】:

实际上,这似乎是一个普遍的问题,并非特定于 Forth CPU。

CPU 中将数据从内存中检索到缓存中的部分称为缓存控制器单元缓存控制电路

另请参阅:Microprocessor Design/Cache wikibook、How does CPU identify if the instructions are decoded question。

【讨论】:

    猜你喜欢
    • 2014-04-29
    • 2020-11-23
    • 2010-10-11
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多