我试图了解 RAM 如何设法跟上 CPU 的步伐。以下是我认为它无法跟上的原因:
- 现代 CPU 的时钟速度通常高于 RAM 模块的时钟速度(例如 2.4GHz 笔记本电脑处理器与 2133MHz RAM 模块)
- 这种 CPU 通常具有多个核心,允许以高于时钟速度的速度执行指令
- 这些 CPU 还可以采用单核并行技术,每个核心执行的指令数量超过时钟周期数
- 鉴于此,指令的执行速度远高于 RAM 频率
- 每个 RAM 时钟周期最多可以从 RAM 中获取一个地址的内容
- 除了 BIOS 之外,指令最终都必须来自 RAM
- 因此,从内存中获取指令的需求大大超过了 RAM 提供指令的能力
我找到了答案彼得·科德斯在这Stack Overflow 问题解释了这个问题是通过缓存和预取来解决的,但我不明白 CPU 如何获得预取的机会,因为它需要获取指令的速率似乎超过了 RAM 所能提供的速率。这维基百科页面列出了 Intel Core i7 6950X 能够以 317900 MIPS 的速度执行指令;使用 2133MHz 的 RAM 频率,这似乎相当于每个 RAM 时钟周期大约 150 条指令。
我错过了什么?
我刚刚看了悉尼·豪克对之前链接的问题的回答指出,CPU 知道会重复的指令不会从内存中重新提取。这本身就足以弥补速度差异吗?