1

我正在尝试使用 java 完成一个基于简化 mips 计算机的模拟器。我相信我已经完成了分配所需的流水线逻辑,但我很难理解指令和数据缓存应该做什么。

指令缓存应直接映射为 4 个块,块大小为 4 个字。

所以我真的很困惑缓存在做什么。它会进入记忆并从记忆中提取指令吗?例如,在一个块中,它将只有 add 命令。

将它实现为二维数组是否有意义?

4

1 回答 1

0

首先,您应该了解缓存的基础知识。您可以将缓存想象为位于 DRAM 或主内存与处理器之间的中间内存,但其大小非常有限。现在,当您尝试访问内存中的某个位置时,您将首先在缓存中搜索它。如果找到(缓存命中),处理器将获取此数据并恢复执行。通常缓存命中应该是非常少的时钟周期,比如 1 或 2。假设如果在缓存中找不到数据(缓存未命中),则从主内存中获取数据,填充缓存并馈送到处理器。处理器阻塞直到获取数据。这通常需要数百个时钟周期,具体取决于您使用的 DRAM。从 DRAM 获取的数据量等于缓存线大小。

我认为这应该让你开始。

于 2012-12-04T15:23:40.090 回答