首页 > 解决方案 > 单个内核可以一次执行多个比较/添加操作吗?

问题描述

我想知道一个 CPU 内核是否可以进行多个 x86 比较并同时并行添加操作。

所以如果我写了类似的东西

Compare X y
Compare y z
Add X y
Add q p

比较会同时运行吗?添加会同时运行吗?

标签: x86cpu-architecture

解决方案


可以,前提是CPU有2个空闲比较器/2个加法器,数据相互独立,指令调度器可以同时给两个单元下发。这就是超标量 CPU的工作方式。P5 Pentium 的所有 x86 CPU 以及所有现代 CPU 都是超标量的。

这就是即使时钟周期和内核数量保持不变,新微架构比旧微架构运行得更快的原因之一,因为它们可以有更多的执行单元、更大的单元、更大的缓存,同时运行更多的指令以及大量其他改进。例如

当前的 x86 处理器每个时钟周期可以提供 3 条指令。然而,Conroe 的架构可以同时获取、分派、执行和撤销多达四个完整指令,比 Pentium 4 CPU 提供 33% 的提升

https://hexus.net/tech/tech-explained/cpu/17976-intel-core-2-duo-conroe/

由于使用了微操作和宏融合,很难定义一个明确的值。然而,粗略的比较一下,Sandy Bridge 每个周期能够实现 6 个微操作。例如,对于一个由两条指令组成的循环,它可以维持每个时钟吞吐量 1 次迭代,该add指令具有内存源、一个乘法和一个宏融合的 dec-and-branch。

也可以看看


推荐阅读