Answers:
正如aterrel所建议的那样,当前所有的CPU似乎都使用迭代方法,但在非迭代方法上已经做了一些工作。可变精度浮点除法和平方根讨论了使用查找表和taylor系列扩展在FPGA中实现浮点除法和平方根的非迭代实现。
我怀疑相同的技术可能使将这些操作降低到一个周期(吞吐量,如果不是延迟),但是您可能需要巨大的查找表,因此无法实现大面积的硅房地产。
在设计CPU时,需要做出很多权衡。功能,复杂性(晶体管数量),速度和功耗都相互关联,并且在设计过程中做出的决定可能会对性能产生巨大影响。
新式处理器可能可以有一个主浮点单元,其致力于在硅足够晶体管在执行浮点除法单周期,但是这将是不太可能有效地使用那些晶体管。
浮点乘积在十年前从迭代过渡到非迭代。如今,即使在移动处理器中,单周期乘法甚至乘法累加也很普遍。
在有效利用晶体管预算之前,乘法和除法通常是通过迭代方法执行的。那时,专用DSP处理器可能会将其大部分芯片专用于单个快速乘法累加(MAC)单元。Core2duo CPU的浮点乘法延迟为3(该值在进入管道后3个周期就从管道中出来),但可以一次运行3个乘法,从而产生单周期吞吐量,而SSE2单元可以在一个周期内抽出多个FP乘积。
现代CPU没有将大量的硅片分配给一个单周期的分割单元,而是具有多个单元,每个单元可以并行执行操作,但针对其特定情况进行了优化。实际上,一旦考虑了SIMD指令(例如SSE或Sandy Bridge或更高版本CPU的CPU 集成图形),CPU上可能会有许多这样的浮点除法单元。
如果通用浮点除法对现代CPU而言更为重要,则可能有必要分配足够的硅面积以使其成为单周期,但是大多数芯片制造商显然已经决定,通过将这些门用于其他用途,可以更好地利用该硅。 。因此,一种操作速度较慢,但总体而言(对于典型的使用情况),CPU速度更快和/或功耗更低。