我想知道一个CPU内核是否可以进行多个x86比较并同时并行添加操作。
所以,如果我写了类似的东西
Compare X y
Compare y z
Add X y
Add q p
比较会同时运行吗?添加会同时运行吗?
答案 0 :(得分:4)
是的,只要CPU有2个空闲的比较器/ 2加法器,数据就彼此独立,并且指令分配器可以同时传送给两个单元。 superscalar CPUs就是这样工作的。 P5 Pentium的所有x86 CPU以及所有现代CPU都是超标量。
这是即使时钟周期和内核数量仍然相同,新的微体系结构也比旧的微体系结构运行速度更快的原因之一,因为它们可以具有更多的执行单元,更大的单元,更大的缓存,同时运行更多指令以及其他许多改进。例如
当前的x86处理器每个时钟周期可以传送3条指令。但是,Conroe在架构上可以同时获取,调度,执行和淘汰多达四条完整的指令,比奔腾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次迭代。