【问题标题】:Can a single core do multiple compare/add operations at once?单个内核可以一次执行多个比较/添加操作吗?
【发布时间】:2019-06-20 03:34:18
【问题描述】:

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

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

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

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

【问题讨论】:

标签: x86 cpu-architecture


【解决方案1】:

可以,前提是CPU有2个空闲比较器/2个加法器,数据相互独立,指令调度器可以同时给两个单元下发。这就是superscalar CPUs 的工作方式。 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 is able to achieve 6 micro-ops per cycle。例如对于由两条add 指令和内存源、一个乘法和一个宏融合的dec-and-branch 组成的循环,它可以维持每个时钟吞吐量1 次迭代。

另见

【讨论】:

  • SnB 系列管道(发布/重命名)中最窄的点是 4 微融合 uops 宽。但是,是的,SnB 可以维持每个时钟 6 个未融合域 uops,而 SKL 可以维持 7 个。英特尔从不使用“宏操作”一词,这就是 AMD 在 Bulldozer 系列上所说的操作。 (特别是与 Pentium 4 相比,AMD CPU 将大多数指令解码为比 Intel 更少的操作,因此他们称其为“宏操作”而不是“微操作”,以宣传他们的 CPU 在每个操作和每个周期中完成更多工作的事实回到 P4 时代。我认为对于 Ryzen,AMD 也在调用微操作。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
相关资源
最近更新 更多