回答:
aterrelが示唆するように、現在のすべてのCPUは反復アプローチを使用しているように見えますが、非反復アプローチでいくつかの作業が行われています。可変精度浮動小数点除算と平方根は、ルックアップテーブルとテイラー級数展開を使用した、FPGAでの浮動小数点除算と平方根の非反復実装について説明します。
同じ手法を使用すると、これらの操作を1サイクル(レイテンシではなくスループット)にまで下げることができると思われますが、巨大なルックアップテーブルが必要になる可能性が高いため、それを実行するにはシリコン不動産の大きな領域が必要になります。
CPUの設計には、多くのトレードオフがあります。機能、複雑さ(トランジスタの数)、速度、消費電力はすべて相互に関連しており、設計中に下される決定はパフォーマンスに大きな影響を与える可能性があります。
最新のプロセッサは、おそらく、単一サイクルで浮動小数点除算を実行するのに十分なシリコン上のトランジスタを専用のメイン浮動小数点ユニットを持つことができますが、それらのトランジスタを効率的に使用する可能性は低いでしょう。
浮動小数点の乗算により、10年前に反復から非反復にこの移行が行われました。最近では、モバイルプロセッサであっても、シングルサイクルの乗算や積和さえ行われています。
トランジスタバジェットを効率的に使用する前に、除算のように乗算は反復法で実行されることがよくありました。当時、専用のDSPプロセッサは、ほとんどのシリコンを単一の高速積和(MAC)ユニット専用にする場合がありました。Core2duo CPUの浮動小数点乗算レイテンシは3です(値はパイプラインに入ってから3サイクル後に値が出ます)が、一度に3つの乗算を飛行できるため、SSE2ユニットのスループットはシングルサイクルスループットになります。 1つのサイクルで複数のFP乗算をポンプアウトします。
シリコンの広大な領域を単一サイクルの分割ユニット専用にする代わりに、最新のCPUには複数のユニットがあり、各ユニットは並行して操作を実行できますが、特定の状況に合わせて最適化されています。実際、SSEなどのSIMD命令、またはSandy Bridge以降のCPUのCPU 統合グラフィックスを考慮に入れると、CPU にそのような浮動小数点除算ユニットが多数存在する可能性があります。
汎用の浮動小数点除算が現代のCPUにとってより重要な場合、シングルサイクルにするのに十分なシリコン領域を割り当てることは理にかなっているかもしれませんが、ほとんどのチップメーカーは明らかに、それらのゲートを他のものに使用することにより、そのシリコンをより有効に使用できると決定しました。したがって、1つの操作は遅くなりますが、全体的な(一般的な使用シナリオの場合)CPUは高速になり、消費電力が少なくなります。