CPU 在执行内存指令时真正做什么?

CPU 在执行内存指令时真正做什么?

我最近正在测试 linux cpufreq 模块,并注意到无论我运行的是 CPU 密集型基准测试还是内存密集型基准测试,cpufreq 模块总是选择最大频率。

我理解调节器在决定频率设置方面起着重要作用。因此,我使用按需调节器和保守调节器进行了测试,发现结果几乎相同(保守调节器会稍微增加到最大频率,而按需调节器会立即选择最大频率)。

这就提出了一个问题:在加载/存储过程中,CPU 究竟在做什么。我们都知道,内存的运行速度比 CPU 慢得多,加载/存储指令通常需要几个 CPU 周期才能完成。

编辑:我意识到许多此类加载/存储指令可能会命中缓存。那些没有命中的指令怎么办?

在这些周期中,CPU 实际上在做什么?是忙等待还是空闲?

答案1

在您的问题中,CPU、处理器和处理器核心这几个术语非常关键。您可能想问的是,处理器核心在等待内存时确实在执行操作。

在大多数现代英特尔处理器中,它开始执行另一个指令分支。这称为超线程

在大多数其他处理器中,它基本上处于等待状态。

相关内容