快速硬件整数除法性能提升原因及新型处理器所用算法问询
新型处理器整数除法性能提升的核心原因及实现算法
核心性能提升原因
- 半导体工艺升级:晶体管密度成倍提升后,硬件厂商不再需要为了控制核心面积严格限制除法器的资源配额,之前为了省面积做的多周期串行迭代设计被替换为并行度更高的实现,直接压缩了运算需要的时钟周期。
- 架构设计优先级调整:随着加密、数值计算、信号处理等包含大量除法操作的负载占比提升,厂商愿意为除法单元分配更多硬件资源,包括为单核心配置独立除法器、增加除法单元的流水线级数提升吞吐量、为短位宽除法设计捷径路径:只有大位宽、极端数值的除法才需要跑满最大延迟,常见的32位、小数值除法可以提前输出结果,这也是新型处理器除法延迟区间下限大幅降低的主要原因。
- 流水线优化:高端处理器现在普遍对除法器做了深度流水线改造,不同运算步骤重叠执行,虽然单条除法指令的延迟没有降到极低,但吞吐量可以做到每1-2个周期就能处理一条新的除法指令,和早年单除法器串行处理、几十周期才能处理一条的情况差距极大。
算法应用情况
并没有颠覆性的全新整数除法算法被大规模应用,性能提升主要来自经典算法的硬件适配优化,以及针对常见场景的变种改进。
新型处理器常用的整数除法实现算法
- SRT除法:是当前x86(Intel 10代及以后的大小核、AMD Zen系列)、苹果M系列等高端处理器的主流选择。传统SRT除法单周期只能迭代1-2位商,现在的优化版本普遍采用radix-8/16/32的高基设计,配合更大的商预测查找表、多组并行进位保存加法器,单周期可以迭代4-8位商,直接把64位除法需要的迭代次数从二三十次压缩到个位数,延迟大幅降低。
- 阵列除法器:多用于嵌入式场景,比如树莓派Pico的除法单元就用了这一设计。它用全组合逻辑实现所有位商的并行计算,不需要迭代,只要逻辑门的传播延迟稳定就能做到极低的固定延迟,唯一的缺点是占用面积是迭代式除法器的数倍,早年工艺下成本过高,现在随着半导体工艺进步,嵌入式核心的面积预算足以承载32位阵列除法器,才得以普及。
- 特殊场景快捷路径:几乎所有新款处理器都内置了除法特殊场景的优化逻辑,比如除数为2的幂时直接走移位逻辑、除数为常量时直接调用内置的倒数乘法优化、有符号除法的溢出边界场景直接输出结果,不需要走正常的除法迭代流程,进一步降低了常见场景的除法延迟。
内容的提问来源于stack exchange,提问作者Ecir Hana
相关产品推荐
相关产品推荐

