整数有序比较与相等比较是否存在CPU单周期运行速度差异
机器字长整数比较运算的CPU延迟差异解答
首先明确结论:目前绝大多数已上市通用CPU不存在有序比较与相等比较的延迟差,仅少量特种场景的小众CPU存在1周期差异,具体如下:
- 主流通用CPU(包括x86全系列在售型号、ARMv7及以上商用实现、RISC-V应用级内核等)的
CMP类指令,无论执行<这类有序比较,还是!=这类相等比较,延迟均为1个时钟周期,二者性能完全一致。现代CPU的ALU都会对进位传播路径做专门的电路优化,64位进位链的传播延迟已经可以压缩到1个周期以内,不会成为ALU的性能瓶颈,所以理论层面的进位延迟在这类CPU上不会体现为实际的周期差。 - 已上市的小众CPU中确实存在有1周期差异的型号,主要集中在极低功耗嵌入式、极简IoT领域:
- 部分纳瓦级功耗的RISC-V RV32E极简内核,为了压缩芯片面积和功耗,砍掉了全流水进位链优化,有序比较需要2个周期完成,相等比较仅需1个周期,刚好差1个周期。
- 部分上世纪90年代推出的老旧8位/16位微控制器,比如早期PIC16系列单片机,有序比较指令的执行延迟比相等比较多1个周期。
目前研发中的CPU里,除了专门面向极端低功耗、极小面积需求的特种微核之外,通用CPU都不会再出现这类差异,进位链优化的成本已经极低,收益远高于额外的电路开销。
内容的提问来源于stack exchange,提问作者rwallace
相关产品推荐
相关产品推荐

