プロセッサを備え、前記プロセッサは、浮動小数点演算論理装置ALUを備え、前記浮動小数点演算論理装置は、入力確認/出力訂正浮動小数点除算論理を備え、前記入力確認/出力訂正浮動小数点除算論理は、前記入力確認/出力訂正浮動小数点除算論理の分子を表す第1の入力および分母を表す第2の入力を検査して、浮動小数点除算の特例が生じるかどうかを前記入力確認/出力訂正浮動小数点除算論理に決定させ、前記決定された浮動小数点除算の特例と、前記入力確認/出力訂正浮動小数点除算論理の候補商を表す第3の入力とに基づいて、前記入力確認/出力訂正浮動小数点除算論理の浮動小数点除算結果を表す出力を前記入力確認/出力訂正浮動小数点除算論理に提供させる、前記浮動小数点演算論理装置ALUによって実行可能な浮動小数点除算修正命令に応答する、集積回路。前記入力確認/出力訂正浮動小数点除算論理は、前記入力確認/出力訂正浮動小数点除算論理の前記分子を表す前記第1の入力および前記分母を表す前記第2の入力を検査して、前記浮動小数点除算の特例が生じるかどうかを決定するよう動作する、複数の特例試験回路と、前記決定された浮動小数点除算の特例と、前記入力確認/出力訂正浮動小数点除算論理の前記候補商を表す前記第3の入力とに基づいて、前記入力確認/出力訂正浮動小数点除算論理の前記浮動小数点除算結果を表す前記出力を提供するよう動作する、優先順位マルチプレクサと、を備え、前記プロセッサは、前記入力確認/出力訂正浮動小数点除算論理に動作可能に接続された複数のレジスタであって、前記分子、前記分母、前記候補商、および前記浮動小数点除算結果を格納するよう動作する複数のレジスタをさらに備える、請求項1に記載の集積回路。前記浮動小数点除算修正命令は、1クロックサイクルで実行される単一命令である、請求項1に記載の集積回路。前記浮動小数点除算修正命令は、入力確認命令と出力訂正命令とからなり、前記入力確認命令および出力訂正命令のそれぞれが1クロックサイクルで実行される、請求項1に記載の集積回路。前記浮動小数点ALUは、少なくとも1つの浮動小数点加算器/減算器と、少なくとも1つの浮動小数点乗算器とをさらに備え、前記少なくとも1つの浮動小数点加算器/減算器および浮動小数点乗算器は、前記浮動小数点除算の特例と無関係に、前記分子および前記分母に基づいて前記候補商を、前記少なくとも1つの浮動小数点加算器/減算器および浮動小数点乗算器に数値的に計算させる、前記浮動小数点ALUにより実行可能な複数の命令に応答する、請求項2に記載の集積回路。前記入力確認/出力訂正浮動小数点除算論理は、前記浮動小数点除算の特例が生じない場合に、前記入力確認/出力訂正浮動小数点除算論理の前記浮動小数点除算結果を表す前記出力として前記候補商を、前記入力確認/出力訂正浮動小数点除算論理に提供させる、前記浮動小数点ALUにより実行可能な前記浮動小数点除算修正命令にさらに応答する、請求項5に記載の集積回路。前記入力確認/出力訂正浮動小数点除算論理は、前記浮動小数点除算の特例が生じる場合に、前記入力確認/出力訂正浮動小数点除算論理の前記浮動小数点除算結果を表す前記出力として、対応する浮動小数点除算の特殊値を前記入力確認/出力訂正浮動小数点除算論理に提供させる、前記浮動小数点ALUにより実行可能な前記浮動小数点除算修正命令にさらに応答する、請求項2に記載の集積回路。前記複数の特例試験回路は、前記分子または前記分母がNaNであるかどうかを決定するよう動作する、非数NaN試験回路と、前記分子または前記分母がゼロであるかどうかを決定するよう動作する、ゼロ試験回路と、前記分子または前記分母が無限大であるかどうかを決定するよう動作する、無限大試験回路と、前記分子および前記分母に基づいて、オーバーフローまたはアンダーフローが生じるかどうかを決定するよう動作する、オーバーフロー/アンダーフロー試験回路と、を備え、前記浮動小数点除算の特殊値は、NaN、ゼロ、無限大、最大浮動小数点型定数、および最小浮動小数点型定数のうちの少なくとも1つから選択される、請求項7に記載の集積回路。前記入力確認/出力訂正浮動小数点除算論理は、前記優先順位マルチプレクサに動作可能に接続された符号ビット設定論理であって、前記入力確認/出力訂正浮動小数点除算論理の前記分子を表す前記第1の入力の符号ビットおよび前記分母を表す前記第2の入力の符号ビットに基づいて、前記浮動小数点除算結果を表す前記出力の符号ビットを設定するよう動作する符号ビット設定論理をさらに備える、請求項2に記載の集積回路。前記浮動小数点除算結果を表す前記出力は、前記入力確認/出力訂正浮動小数点除算論理の第1の出力であって、前記入力確認/出力訂正浮動小数点除算論理は、前記入力確認/出力訂正浮動小数点除算論理の前記分子を表す前記第1の入力および前記分母を表す前記第2の入力に基づいて、例外状態フラグを決定し、前記入力確認/出力訂正浮動小数点除算論理の前記例外状態フラグを表す第2の出力を提供するよう動作する、例外フラグ論理をさらに備える、請求項2に記載の集積回路。前記入力確認/出力訂正浮動小数点除算論理は、前記浮動小数点除算の特例が生じるかどうかを示す任意ビットパターンをコード化し、前記任意ビットパターンを前記複数のレジスタのうちの1つに格納するよう動作する、任意ビットパターンエンコーダをさらに備える、請求項2に記載の集積回路。前記入力確認/出力訂正浮動小数点除算論理は、グラフィック処理ユニットGPUの一部である、請求項1に記載の集積回路。前記プロセッサは、前記入力確認/出力訂正浮動小数点除算論理の前記浮動小数点除算結果を表す前記出力に基づく画像の少なくとも一部を生成するよう動作する、請求項1に記載の集積回路。浮動小数点除算修正命令を処理するステップと、前記処理された浮動小数点除算修正命令に基づいて、入力確認/出力訂正浮動小数点除算論理の分子を表す第1の入力および分母を表す第2の入力を検査させて、浮動小数点除算の特例が生じるかどうかを決定し、前記決定された浮動小数点除算の特例と、前記入力確認/出力訂正浮動小数点除算論理の候補商を表す第3の入力とに基づいて、前記入力確認/出力訂正浮動小数点除算論理の浮動小数点除算結果を表す出力を提供するよう、前記入力確認/出力訂正浮動小数点除算論理に処理させるステップと、を含む、方法。前記入力確認/出力訂正浮動小数点除算論理に処理させるステップは、前記入力確認/出力訂正浮動小数点除算論理の前記候補商を表す前記第3の入力を、前記入力確認/出力訂正浮動小数点除算論理に受信させることを含み、前記候補商は、前記浮動小数点除算の特例と無関係に、前記分子および前記分母に基づいて数値的に計算される、請求項14に記載の方法。前記浮動小数点除算修正命令は、1クロックサイクルで実行可能な単一命令である、請求項14に記載の方法。前記浮動小数点除算修正命令は、入力確認命令と出力訂正命令とからなり、前記入力確認命令および出力訂正命令のそれぞれが1クロックサイクルで実行可能である、請求項14に記載の方法。前記入力確認/出力訂正浮動小数点除算論理に処理させるステップは、前記浮動小数点除算の特例が生じない場合に、前記入力確認/出力訂正浮動小数点除算論理の前記浮動小数点除算結果を表す前記出力として、前記候補商を前記入力確認/出力訂正浮動小数点除算論理に提供させることを含む、請求項15に記載の方法。前記入力確認/出力訂正浮動小数点除算論理に処理させるステップは、前記浮動小数点除算の特例が生じる場合に、前記入力確認/出力訂正浮動小数点除算論理の前記浮動小数点除算結果を表す前記出力として、対応する浮動小数点除算の特殊値を前記入力確認/出力訂正浮動小数点除算論理に提供させることを含む。請求項14に記載の方法。前記入力確認/出力訂正浮動小数点除算論理に処理させるステップは、前記入力確認/出力訂正浮動小数点除算論理の前記分子を表す前記第1の入力の符号ビットおよび前記分母を表す前記第2の入力の符号ビットに基づいて、前記入力確認/出力訂正浮動小数点除算論理の前記浮動小数点除算結果を表す前記出力の符号ビットを、前記入力確認/出力訂正浮動小数点除算論理に設定させることを含む、請求項14に記載の方法。前記浮動小数点除算結果を表す前記出力は、前記入力確認/出力訂正浮動小数点除算論理の第1の出力であって、前記入力確認/出力訂正浮動小数点除算論理に処理させるステップは、前記入力確認/出力訂正浮動小数点除算論理の前記分子を表す前記第1の入力および前記分母を表す前記第2の入力に基づいて、例外状態フラグを前記入力確認/出力訂正浮動小数点除算論理に決定させるステップと、前記入力確認/出力訂正浮動小数点除算論理の前記例外状態フラグを表す第2の出力を、前記入力確認/出力訂正浮動小数点除算論理に提供させるステップと、を含む、請求項14に記載の方法。前記入力確認/出力訂正浮動小数点除算論理に処理させるステップは、前記浮動小数点除算の特例が生じるかどうかを示す任意ビットパターンを、前記入力確認/出力訂正浮動小数点除算論理にコード化させるステップと、前記任意ビットパターンを、前記入力確認/出力訂正浮動小数点除算論理によってレジスタに格納させるステップと、を含む、請求項14に記載の方法。浮動小数点演算論理装置ALUを備える装置であって、前記浮動小数点演算論理装置は、入力確認/出力訂正浮動小数点除算論理を備え、前記入力確認/出力訂正浮動小数点除算論理は、前記入力確認/出力訂正浮動小数点除算論理の分子を表す第1の入力および分母を表す第2の入力を検査して、浮動小数点除算の特例が生じるかどうかを前記入力確認/出力訂正浮動小数点除算論理に決定させ、前記決定された浮動小数点除算の特例と、前記入力確認/出力訂正浮動小数点除算論理の候補商を表す第3の入力とに基づいて、前記入力確認/出力訂正浮動小数点除算論理の浮動小数点除算結果を表す出力を前記入力確認/出力訂正浮動小数点除算論理に提供させる、前記浮動小数点演算論理装置ALUによって実行可能な浮動小数点除算修正命令に応答し、前記装置は、前記入力確認/出力訂正浮動小数点除算論理の前記浮動小数点除算結果を表す前記出力に基づいて、前記画像の少なくとも一部を生成するよう動作する、装置。1つまたは複数の集積回路設計システムによって実行可能な命令であって、プロセッサを備える集積回路を設計させる命令を格納するコンピュータ可読媒体であって、前記プロセッサは、浮動小数点演算論理装置ALUを備え、前記浮動小数点演算論理装置は、入力確認/出力訂正浮動小数点除算論理を備え、前記入力確認/出力訂正浮動小数点除算論理は、前記入力確認/出力訂正浮動小数点除算論理の分子を表す第1の入力および分母を表す第2の入力を検査して、浮動小数点除算の特例が生じるかどうかを前記入力確認/出力訂正浮動小数点除算論理に決定させ、前記決定された浮動小数点除算の特例と、前記入力確認/出力訂正浮動小数点除算論理の候補商を表す第3の入力とに基づいて、前記入力確認/出力訂正浮動小数点除算論理の浮動小数点除算結果を表す出力を前記入力確認/出力訂正浮動小数点除算論理に提供させる、前記浮動小数点演算論理装置ALUによって実行可能な浮動小数点除算修正命令に応答する、コンピュータ可読媒体。簡潔に述べると、一例において、方法および装置は、入力確認/出力訂正浮動小数点除算論理に、分子を表す第1の入力および分母を表す第2の入力を検査させて、浮動小数点除算の特例が生じるかどうかを決定させる、浮動小数点除算修正命令例えば、命令、コマンド、信号、または他のインジケータを用いて、浮動小数点除算を実行する。さらに、これは、決定された浮動小数点除算の特例と候補商を表す第3の入力とに基づいて、浮動小数点除算結果を表す出力を提供する。浮動小数点除算修正命令は、例えば、1クロックサイクルで実行される単一命令であってもよく、または各命令が1クロックサイクルで実行される入力確認命令と出力訂正命令とからなってもよい。入力確認/出力訂正浮動小数点除算論理は、例えば、グラフィック処理ユニットの一部であってもよい。いくつかの利益のうち特に、例えば、浮動小数点除算を実行するための方法および装置は、IEEE規格754に依然として準拠しながら、浮動小数点除算の実行を短時間かつ高速にする能力を提供する。浮動小数点除算の数値部分は、依然として、対応する命令で、既存の浮動小数点加算器/減算器および乗算器を用いて反復アルゴリズムにより計算され、それによりこの方法および装置は費用効率が高くなる。一方、入力確認/出力訂正浮動小数点除算論理および対応する浮動小数点除算修正命令を適用することによって、浮動小数点除算の特例を認識し、処理するための複数の時間のかかる条件命令および論理命令最大30個の命令は、実行時間を減少させるために置き換えることができる。一例において、本装置は、入力確認/出力訂正浮動小数点除算論理を含む浮動小数点演算論理ユニットを有するプロセッサを含む。この入力確認/出力訂正浮動小数点除算論理は、入力確認/出力訂正浮動小数点除算論理に、分子を表す第1の入力および分母を表す第2の入力を検査させて、浮動小数点除算の特例が生じるかどうかを決定させる、浮動小数点演算論理ユニットにより実行可能な浮動小数点除算修正命令に応答する。また、この浮動小数点除算修正命令は、入力確認/出力訂正浮動小数点除算論理に、決定された浮動小数点除算の特例および候補商を表す第3の入力に基づく浮動小数点除算結果を表す出力を提供させる。入力確認/出力訂正浮動小数点除算論理は、分子を表す第1の入力および分母を表す第2の入力を検査して、浮動小数点除算の特例が生じるかどうかを決定するよう動作する複数の特例試験回路を含んでもよい。この複数の特例試験回路は、分子または分母が非数であるかどうかを決定するよう動作する非数試験回路、分子または分母がゼロであるかどうかを決定するよう動作するゼロ試験回路、および分子または分母が無限大であるかどうかを決定するよう動作する無限大試験回路を含んでもよい。また、この複数の特例試験回路は、分子および分母に基づいて、オーバーフローまたはアンダーフローが生じるかどうかを決定するよう動作するオーバーフロー/アンダーフロー試験回路も含んでよい。また、入力確認/出力訂正浮動小数点除算論理は、決定された浮動小数点除算の特例と、候補商を表す第3の入力とに基づいて、浮動小数点除算結果を表す出力を提供するよう動作する優先順位マルチプレクサも含んでよい。プロセッサは、分子、分母、候補商、および浮動小数点除算結果を格納するよう動作する複数のレジスタを含んでもよい。また、浮動小数点演算論理ユニットは、少なくとも1つの浮動小数点加算器/減算器および少なくとも1つの浮動小数点乗算器も含んでよい。少なくとも1つの浮動小数点加算器/減算器および浮動小数点乗算器は、少なくとも1つの浮動小数点加算器/減算器および浮動小数点乗算器に、浮動小数点除算の特例と無関係に、分子および分母に基づいて候補商を数値的に計算させる、浮動小数点演算論理ユニットにより実行可能な複数の命令に応答する。入力確認/出力訂正浮動小数点除算論理は、入力確認/出力訂正浮動小数点除算論理に、浮動小数点除算の特例が生じない場合に、浮動小数点除算結果を表す出力として候補商を提供させる、浮動小数点演算論理ユニットにより実行可能な浮動小数点除算修正命令にさらに応答してもよい。また、入力確認/出力訂正浮動小数点除算論理は、入力確認/出力訂正浮動小数点除算論理に、浮動小数点除算の特例が生じる場合に、浮動小数点除算結果を表す出力として、相当する浮動小数点除算の特殊値を提供させる、浮動小数点演算論理ユニットにより実行可能な浮動小数点除算修正命令にも応答してよい。浮動小数点除算の特殊値は、非数、ゼロ、無限大、最大浮動小数点型定数、および最小浮動小数点型定数のうちの少なくとも1つから選択してもよい。一例において、入力確認/出力訂正浮動小数点除算論理は、分子を表す第1の入力の符号ビットおよび分母を表す第2の入力の符号ビットに基づいて、浮動小数点除算結果を表す出力の符号ビットを設定するよう動作する、優先順位マルチプレクサに動作可能に接続された符号ビット設定論理を含む。別の例において、浮動小数点除算結果を表す出力は、入力確認/出力訂正浮動小数点除算論理の第1の出力である。また、入力確認/出力訂正浮動小数点除算論理は、分子を表す第1の入力および分母を表す第2の入力に基づいて、例外状態フラグを決定するよう動作する例外フラグ論理も含む。この例外フラグ論理は、入力確認/出力訂正浮動小数点除算論理の例外状態フラグを表す第2の出力を提供するようさらに動作する。さらに別の例において、入力確認/出力訂正浮動小数点除算論理は、浮動小数点除算の特例が生じるかどうかを示す任意ビットパターンをコード化するよう動作する任意ビットパターンエンコーダを含む。任意ビットパターンエンコーダは、任意ビットパターンを複数のレジスタのうちの1つに格納するようにさらに動作する。いくつかの利益のうち特に、浮動小数点除算を実行するための方法および装置は、IEEE規格754に依然として準拠しながら、浮動小数点除算の実行を短時間かつ高速にする能力を提供する。浮動小数点除算の数値部分は、依然として、対応する命令で、既存の浮動小数点加算器/減算器および乗算器を用いて反復アルゴリズムにより計算され、それによりこの方法および装置は費用効率が高くなる。一方、入力確認/出力訂正浮動小数点除算論理および対応する浮動小数点除算修正命令を適用することによって、浮動小数点除算の特例を認識し、処理するための複数の時間のかかる条件命令および論理命令最大30個の命令は、実行時間を減少させるために置き換えることができる。したがって、提案される技法は、並列ストリームプロセッサ、例えば単一命令複数データSIMDプロセッサ、例えばコンピュータグラフィックスおよび/または非グラフィック処理および計算で使用する、グラフィック処理ユニットGPUおよび/またはGPUでの汎用計算GPGPUに好適であり得る。さらに、浮動小数点除算を実行するための方法および装置は、IEEE規格754に準拠することが可能である。したがって、提案される技法は、少ない命令数および速い実行速度と同時に、より低いプロセッサの設計費用および製造費用の利点、ならびに反復アルゴリズム実行の柔軟性の利点を維持することができる。他の利益は、当業者に理解されるであろう。図3は、プロセッサ304を含む集積回路302を含む装置300の一例を示している。装置300は、例えば、ラップトップコンピュータ、デスクトップコンピュータ、メディアセンター、携帯用デバイス例えば、携帯電話またはスマートフォン、タブレットなど、Blu-ray登録商標プレーヤー、ゲーム機、セットトップボックス、プリンタ、または任意の他の好適なデバイスであってもよいが、これらに限定されない。集積回路302は、1つまたは複数のプロセッサ304を有する任意の好適な回路であってもよい。プロセッサ304に加えて、集積回路302はまた、当分野で既知の任意の他の好適な回路、例えば、数例を挙げると、キャッシュメモリおよび入力/出力I/Oインターフェース回路も含んでよい。プロセッサ304は、GPU、中央処理ユニットCPU、GPGPU、または加速処理ユニットAPU、デジタルシグナルプロセッサDSP、または任意の他の好適なプロセッサであってもよいが、これらに限定されない。装置300は、1つまたは複数の表示画面306を含んでも、またはこれに動作可能に接続されていてもよい。プロセッサ304は、例えば、表示画面306上に表示される画像の少なくとも一部を表す画像データ308を生成するためのGPUであってもよい。プロセッサ304は、浮動小数点ALU310、レジスタ312、およびメモリ314を含んでもよい。レジスタ312は、他のどの場所で利用できるストレージよりも迅速に、プロセッサ304の内容にアクセスできる、プロセッサ304上のプロセッサレジスタまたは汎用レジスタであってもよい。好ましくは、本例におけるレジスタ312は、浮動小数点数、例えば浮動小数点分子、分母、および商を格納する浮動小数点レジスタを含む。また、レジスタ312は、現在実行中の命令を格納する命令レジスタ、ならびにIEEE規格754により要求される例外状態フラグを格納するための制御および状態レジスタも含んでよい。レジスタ312に格納されるデータは、浮動小数点ALU310によって読み出されても、または書き込まれてもよい。メモリ314は、浮動小数点ALU310により実行可能な複数の命令316~320例えば、命令、コマンド、信号、または他のインジケータを永久または一時的に格納する、当分野で既知の任意の好適なメモリであってよい。本例において、メモリ314は、プロセッサ304の命令キャッシュまたは命令バッファであり、実行可能な命令フェッチを高速化する。また、メモリ314は、他の例において、プロセッサ304に動作可能に接続されたメインメモリであってもよい。命令316~320は、浮動小数点除算修正命令316、浮動小数点加算/減算命令318、および浮動小数点乗算命令320、ならびに所望であれば任意の他の好適な命令を含む。本例において、浮動小数点ALU310は、浮動小数点演算の演算専用のALUである。図3に示すように、プロセッサ304は、ストリーム処理のための並列浮動小数点演算を実行する複数の浮動小数点ALU310を含んでもよい。浮動小数点ALU310は、命令を受け取って実行し、その命令の実行により、浮動小数点演算を実行することができる。浮動小数点ALU310は、浮動小数点加算/減算命令318および浮動小数点乗算命令320を含む複数の命令に応じて、浮動小数点除算の商を数値的に計算することができる、少なくとも1つの浮動小数点加算器/減算器322および少なくとも1つの浮動小数点乗算器324を含んでもよい。上述のように、浮動小数点加算器/減算器322および浮動小数点乗算器324は、浮動小数点除算の特例を認識および処理せず、浮動小数点加算/減算命令318および浮動小数点乗算命令320は、分子および分母を正規数とみなし、反復アルゴリズムを実行して入力確認/出力訂正浮動小数点除算論理326の候補商328を提供する。浮動小数点ALU310は、入力確認/出力訂正浮動小数点除算論理326を含む。論理とは、本明細書において、所望の機能を達成することができる任意の好適な回路を指し、これはデジタル回路、アナログ回路、アナログデジタル混在回路、または任意の好適な回路であってよい。入力確認/出力訂正浮動小数点除算論理326は、浮動小数点ALU310により実行可能な浮動小数点除算修正命令316に応答する。浮動小数点除算修正命令316の実行は、本例において、入力確認/出力訂正浮動小数点除算論理326に、レジスタ312からの浮動小数点除算の分子および分母を確認させて、浮動小数点除算の特例が生じるかどうかを決定させ、またこの決定された特例と浮動小数点加算器/減算器322および浮動小数点乗算器324によって計算された候補商328とに基づいて、訂正された浮動小数点除算結果を提供させる。図4は、入力確認/出力訂正浮動小数点除算論理326の一例を示す。入力確認/出力訂正浮動小数点除算論理326は、分子400を受け取る第1の入力と、分母402を受け取る第2の入力と、レジスタ312から候補商328を受け取る第3の入力とを少なくとも有する。候補商328は、所望であれば、浮動小数点加算器/減算器322および浮動小数点乗算器324から直接受け取ってもよい。分子400、分母402、および候補商328は、浮動小数点数、例えば、単精度32ビット浮動小数点数、倍精度64ビット浮動小数点数、単拡張精度≧43ビット浮動小数点数、および倍拡張精度≧79ビット浮動小数点数であってもよいが、これらに限定されない。さらに、入力確認/出力訂正浮動小数点除算論理326は、レジスタ312に、または所望であれば直接プロセッサ304中の任意の論理に、浮動小数点除算結果404を提供する第1の出力と、例外状態フラグ406を提供する第2の出力とを少なくとも有する。本例において、入力確認/出力訂正浮動小数点除算論理326は、分子400および分母402を検査して、浮動小数点除算の特例が生じるかどうかを決定するよう動作する複数の特例試験回路408~414を含む。複数の特例試験回路408~414は、非数NaN試験回路408、無限大inf試験回路410、ゼロzero試験回路412、およびオーバーフロー/アンダーフロー試験回路414を含む。それぞれの特例試験回路408~414は、IEEE規格754により定義される浮動小数点除算の特定の特例を確認するよう動作する。また、入力確認/出力訂正浮動小数点除算論理326は、分子400または分母402が非正規化数であるかどうかを確認するよう動作する非正規化数denorm試験回路416も含んでよい。本例において、非正規化数試験回路416は、浮動小数点除算結果404を提供するためには使用されないが、例外状態フラグ406を生成するために使用される。後述の機能を果たすことができるいかなる組み合わせ論理も特例試験回路408~414および非正規化数試験回路416として使用することができる。例えば、NaN試験回路408は、分子400および分母402の指数および分数ビットを検査して、分子400がNaNであるかどうか、また分母402がNaNであるかどうかを決定する。NaN試験回路408の2つの出力は、分子400または分母402がそれぞれNaNであるかどうかを示す。同じことが、無限大およびゼロ試験回路410、412にも当てはまる。表1に、浮動小数点数が、NaN、無限大、ゼロ、または非正規化数であるかどうかを決定するための条件をまとめる。オーバーフロー/アンダーフロー試験回路414に関しては、これは分子400および分母402の指数を検査して、分子400および分母402が、例えばIEEE規格754に指定された、所定の範囲よりも大きいまたは小さいかどうかを決定する。この範囲は、IEEE規格754で定義される浮動小数点数の形式によって異なる。また、入力確認/出力訂正浮動小数点除算論理326は、特例試験回路408~414に動作可能に接続された優先順位マルチプレクサ418も含む。この優先順位マルチプレクサ418は、特例試験回路408~414の出力をそのセレクタ入力S0~S7として受け取る。優先順位マルチプレクサ418の入力I0~I5は、候補商328および特殊値、例えばNaN420、無限大422、ゼロ424、最大浮動小数点型定数max_float426、および最小浮動小数点型定数min_float428を含む。優先順位マルチプレクサ418は、例えば、当分野で既知の任意の好適な組み合わせ論理を用いて、以下の例示的If文によって設計することができる。If文は、優先順位を示唆するので、正しい入力を選択するための条件は順番に確認しなければならない。例えば、優先順位マルチプレクサ418は、まずNaN試験回路408からのセレクタ入力S0を確認して、分子400がNaNであるかを決定し、そうである場合には、優先順位マルチプレクサ418は、他のセレクタ入力S1~S7とは無関係に、その出力としてNaN420を表す入力I1を選択する。分子400がNaNでない場合、優先順位マルチプレクサ418は、NaN試験回路408からのセレクタ入力S1を継続して確認して、分母402がNaNであるかを決定し、そうである場合には、優先順位マルチプレクサ418は、その出力としてNaN420を表す入力I1を選択する。優先順位マルチプレクサ418による、NaN、無限大、およびゼロの特例の確認後、これら3つの特例がいずれも生じない場合、優先順位マルチプレクサ418は、オーバーフロー/アンダーフロー試験回路414からのセレクタ入力S6およびS7を確認して、オーバーフローまたはアンダーフロー特例が生じるかを決定し、適宜特殊値を出力することに留意する。例えば、オーバーフローが決定された場合、特殊値は、IEEE規格754で指定される通り浮動小数点除算で使用される丸めモードに応じて、IEEE規格754で定義される定数max_float426または無限大422のいずれかであってよい。同様に、アンダーフローの場合の特殊値は、浮動小数点除算の丸めモードに応じて、min_float428またはゼロ424のいずれかであってよい。例示的If文では浮動小数点除算の特例の条件を特定の順序で説明するが、当業者は、これらの条件は、優先順位マルチプレクサ418により異なる順序で確認されてもよいことを理解するであろう。一例において、優先順位マルチプレクサ418は、ELSEIFnumerator=denominator=infTHENresult=NaNの文をELSEIFnumerator=denominator=zeroTHENresult=NaNの文の前に確認してもよい。別の例において、優先順位マルチプレクサ418は、ELSEIFdenominator=infORnumerator=zeroTHENresult=zeroの文をELSEIFdenominator=zeroORnumerator=infTHENresult=infの文の前に確認してもよい。また別の例では、優先順位マルチプレクサ418は、ELSEIFunderflowTHENresult=min_float/zeroの文をELSEIFoverflowTHENresult=max_float/infの分の前に確認してもよい。本例において、浮動小数点除算の特例の全ての条件は、候補商328を選択する条件よりも高い優先順位を有する。最終的に、浮動小数点除算の特例のいずれも決定されない場合、優先順位マルチプレクサ418は、その出力として候補商328を表す入力I0を選択する。入力確認/出力訂正浮動小数点除算論理326は、優先順位マルチプレクサ418に動作可能に接続される符号ビット設定論理430をさらに含んでもよい。IEEE規格754で定義されるように、浮動小数点数の符号は、符号ビットによって設定される。無限大422およびゼロ424のような浮動小数点除算の一部の特殊値はまた、符号付きの値であり、これは浮動小数点除算結果404が、分子400および分母402の符号ビットに応じて、inf、-inf、zero、または-zeroであってもよいことを意味する。符号ビット設定論理430は、受け取った分子400および分母402の符号ビットに基づいて、浮動小数点除算結果404の符号ビットを設定する。例えば、浮動小数点除算結果404の符号ビットは、分子400および分母402の符号ビットの排他的ORである。場合によって、浮動小数点加算器/減算器322および浮動小数点乗算器324は、候補商328を数値的に計算するときに分子400および分母402の符号ビットを無視し、符号なし候補商328を入力確認/出力訂正浮動小数点除算論理326に提供してもよく、また候補商328が優先順位マルチプレクサ418によりその出力として決定された場合、分子400および分母402の符号ビットに基づいて、候補商328の符号ビットが符号ビット設定論理430によって設定される。符号ビットの設定後、入力確認/出力訂正浮動小数点除算論理326は、第1の出力として、符号付きの浮動小数点除算結果404を出力する。上述のように、浮動小数点除算結果404は、レジスタ312に格納されても、または所望であれば、プロセッサ304の任意の論理に直接送信されてもよい。浮動小数点除算結果404を表す第1の出力に加え、入力確認/出力訂正浮動小数点除算論理326は、IEEE規格754の要件に従って、例外状態フラグ406を表す第2の出力を提供するよう動作する例外フラグ論理432も含んでよい。上述のように、例外状態フラグ406は、命令実行の正常フローを中断するトラップシーケンスの処理を有効にするなど、信号が送られた例外の既定または代替の処理を呼び出す。図4に示すように、本例において、NaN試験回路408およびゼロ試験回路412のそれぞれ1つは、特定の例外を示す、例外フラグ論理432に接続された出力を有する。例えば、ゼロ試験回路412は、分母402がゼロであると決定された時点で、例外フラグ論理432にゼロ除算信号を送信してもよい。NaN試験回路408は、分子400および分母402がどちらもゼロまたは無限大であると決定された時点で、例外フラグ論理432に無効演算信号を送信してもよい。また、不正確例外などであるがこれに限定されないIEEE規格754で定義される他の例外を決定し、所望であれば例外信号として例外フラグ論理432に送信してもよい。非正規化数試験回路416に関しては、非正規化数はIEEE規格754に要求される例外ではないが、場合によっては、当分野で既知のように、プロセッサ304の非正規化数を追加例外とみなす必要があるだろう。本例において、非正規化数試験回路416は、分子400および分母402を検査して、そのうちいずれか1つが非正規化数であるかどうかを決定する。表1に示すように、浮動小数点数は、指数がゼロであり、分数がゼロでない場合に非正規化数である。次いで、例外フラグ論理432は、受け取った全ての例外信号に応じて例外状態フラグ406を設定し、入力確認/出力訂正浮動小数点除算論理326の第2の出力として例外状態フラグ406を出力する。上述のように、例外状態フラグ406は、レジスタ312に格納されても、または所望であれば、プロセッサ304の任意の論理に直接送信されてもよい。場合によっては、入力確認/出力訂正浮動小数点除算論理326は、特例試験回路408~414に動作可能に接続された任意ビットパターンABPエンコーダ434をさらに含んでもよい。このABPエンコーダ434は、本例において、特例試験回路408~414によって決定された特例を表す任意ビットパターンABP436を生成する。ABP436は、レジスタ312に格納される。本例において、上述のように特例試験回路408~414から出力を直接受け取る代わりに、優先順位マルチプレクサ418は、ABP436をレジスタ312からそのセレクタ入力S0~S7に制御信号として受け取ってもよい。また、ABP436は、分子400および分母402の符号ビットに関する情報も含んでよく、したがって、符号ビット設定論理430が使用して、浮動小数点除算結果404の符号ビットを設定することができる。図5および6は、浮動小数点除算修正命令316の例示的命令形式を示している。図5は、プロセッサ304により1クロックサイクルで実行される、単一浮動小数点除算修正命令316を示している。1クロックサイクルの時間は、プロセッサ304のクロック周波数によって決定され、これは例えば約0.5ns~約10nsである。本例において、1クロックサイクルの時間は、クロック周波数850MHzで動作するプロセッサ304で約1.18nsである。複数の浮動小数点除算修正命令316が、1クロックサイクルで並列実行されてもよいことは理解される。浮動小数点除算修正命令316は、16ビット命令、32ビット命令、または64ビット命令であってもよいが、これらに限定されない。図5は、4アドレスISAにおける単一浮動小数点除算修正命令316の例示的命令形式である。命令を指定する2進コード化であるオペレーションコードオペコード500は、例えば修正である。オペコード500は、命令を特定するために使用され、その名称は任意である。オペコード500のビット数は、様々なISAに応じて異なってもよい。デスティネーション502、ソース1504、ソース2506、およびソース3508は、レジスタ数、メモリアドレス、メモリオフセット、または命令316に必要なデータを格納するそれらの任意の好適な組み合わせを指定するようにコード化される。本例において、デスティネーション502は、浮動小数点除算修正命令316の実行後に浮動小数点除算結果404を格納するレジスタ312のデスティネーションレジスタを指す。ソース1504およびソース2506は、上述のような入力確認/出力訂正浮動小数点除算論理326の2つの入力である分子400および分母402をそれぞれ保持する、レジスタ312のソースレジスタを指す。ソース3は、入力確認/出力訂正浮動小数点除算論理326の別の入力である候補商328を保持するレジスタ312のソースレジスタを指す。デスティネーション502、ソース1504、ソース2506、およびソース3508のビット数は、特定のISAおよびレジスタ312の数に基づいて決定される。次に図6を参照すると、浮動小数点除算修正命令316は、本例において、3アドレスISAのための2つの3アドレス命令である、入力確認命令600および出力訂正命令602を含む。2つの命令600、602のそれぞれ1つが、1クロックサイクルで実行され、本例の浮動小数点除算修正命令316全体は、2クロックサイクルで実行される。入力確認命令600は、例えば入力確認のオペコード604を含む。図5の命令形式とは異なり、入力確認命令600のデスティネーション606は、ABP436を保持するレジスタを指定する。図7は、ABP436の一例を示す。ABP436は、特例試験回路408~414からの特例確認結果に基づいて、ABPエンコーダ434によってコード化することができる。本例において、ABP436は、分子が無限大700、NaN702、およびゼロ704であるかどうか、また分母が無限大706、NaN708、およびゼロ710であるかどうかを示す部分を含む。ABP436はまた、オーバーフローまたはアンダーフロー特例が生じるかどうかを示す部分712と、分子400および分母402の符号ビットをそれぞれ示す部分714、716とを含んでもよい。ABP436のコード化および形式が任意であることは理解される。ABP436は、ABP436のサイズ例えば、32ビットABP、64ビットABPに応じて、いくらかの未使用ビットを含んでもよい。次に再び図6を参照すると、入力確認命令600のソース1608およびソース2610は、分子400および分母402をそれぞれ保持するレジスタ312のソースレジスタを指す。入力確認命令600を実行することにより、入力確認/出力訂正浮動小数点除算論理326は、分子400および分母402を確認し、入力確認結果を表すABP436を生成する。一方、出力訂正命令602は、例えば出力訂正のオペコード612によって特定される。出力訂正命令602のデスティネーション614、ソース1616、およびソース2618は、浮動小数点除算結果404、ABP436、および候補商328をそれぞれ格納するレジスタ312を指定する。通常は、出力訂正命令602は、入力確認命令600後に実行され、入力確認/出力訂正浮動小数点除算論理326に、ABP436により表される決定された浮動小数点除算の特例および候補商328に基づいて、浮動小数点除算結果404を出力させる。図8は、本開示に記載される一実施形態による、浮動小数点除算を実行するための方法の一例を示すフローチャートである。これは、上記の図面を参照して説明する。しかしながら、任意の好適な論理または構造体を採用してもよい。動作時に、浮動小数点除算修正命316はブロック800で処理される。例えば、浮動小数点除算修正命令316は、命令キャッシュ314からロードされ、命令デコーダによってデコードされ、プロセッサ304すなわち、浮動小数点ALU310によって実行されてよい。ブロック802において、浮動小数点除算修正命令316の実行は、次いで入力確認/出力訂正浮動小数点除算論理326、具体的には特例試験回路408~414に、分子400を表す第1の入力および分母402を表す第2の入力を検査させ、浮動小数点除算の特例が生じるかどうかを決定させる。ブロック804において、浮動小数点除算修正命令316の実行はまた、入力確認/出力訂正浮動小数点除算論理326の優先順位マルチプレクサ418に、決定された浮動小数点除算の特例と候補商328を表す第3の入力とに基づいて、浮動小数点除算結果404を表す出力を提供させる。上述のように、浮動小数点除算修正命令316の実行は、1または2クロックサイクルであってよい。したがって、ブロック800~804は、1または2クロックサイクルで実施されてよい。本開示による1つの例示的な実施形態において、浮動小数点除算結果404は、装置300によって様々な目的で使用されてもよい。例えば、装置300は、1つまたは複数の表示画面306上に表示される画像の画像データ308を生成するGPU304を含んでもよい。ブロック806において、装置300は、入力確認/出力訂正浮動小数点除算論理326の浮動小数点除算結果404を表す出力に基づいて、画像の少なくとも一部、例えば1つまたは複数のピクセルを生成してもよい。一例において、浮動小数点除算結果404は、当分野において既知のように、3Dグラフィックモデリングおよびレンダリングにおいて逆行列を計算して、表示画面306への出力308のための3Dグラフィック物体を生成するために使用される。別の例において、浮動小数点除算結果404は、当分野において既知のように、画像データ308を平滑化し、ノイズを排除するための平均化平均フィルタによって使用される。また、プロセッサ304は、GPGPUであってもよく、浮動小数点除算結果404は、非グラフィック計算のためにGPUにアクセス可能なオープン計算言語OpenComputingLanguageOpenCLの一部として、非グラフィックコンピュータ処理および計算に使用してもよい。例えば、浮動小数点除算結果404は、数例を挙げると、固有ベクトルおよび固有値の計算、線形関数または多項式の補間、超越関数、有理関数、および偏微分方程式の計算などであるが、これらに限定されない、数値アルゴリズムで使用してもよい。ブロック802および804は、図9および10でさらに説明する。図9を参照すると、動作時に、実行された浮動小数点除算修正命令316は、入力確認/出力訂正浮動小数点除算論理326に、候補商328を表す第3の入力を受け取らせる。上述のように、候補商328は、浮動小数点除算の特例とは無関係に、分子400および分母402に基づいて数値的に計算される。この数値計算は、ニュートンラプソン法およびゴールドシュミット法などであるがこれらに限定されない反復アルゴリズムを用いて実行される。浮動小数点除算修正命令316の実行とは別に、数値計算は、複数の命令、例えば浮動小数点加算/減算および浮動小数点乗算命令318、320の実行に応答して、浮動小数点加算器/減算器322および浮動小数点乗算器324によって実行される。この数値計算は、分子400および分母402がどちらも正規浮動小数点数であると仮定し、浮動小数点除算の特例を考慮しないことから、論理演算または条件付き演算は必要ない。ブロック902に進むと、実行された浮動小数点除算修正命令316は、特例試験回路408~414に、分子400および分母402を検査させる。この検査に基づいて、ブロック904において、実行された浮動小数点除算修正命令316は、入力確認/出力訂正浮動小数点除算論理326に、浮動小数点除算の特例のうちの1つが生じるかどうかを決定させる。浮動小数点除算の特例が生じる場合、ブロック906において、実行された浮動小数点除算修正命令316は、入力確認/出力訂正浮動小数点除算論理326に、さらに、浮動小数点除算結果404を表す出力として、対応する浮動小数点除算の特殊値を提供させる。この特殊値は、特定された特例に基づいて、NaN420、無限大422、ゼロ424、max_float426、およびmin_float428のうちの1つであってよい。上記のIf文に示すように、特例条件はより高い優先順位を有するため、特例のうちのいずれか1つが生じる場合、優先順位マルチプレクサ418は、候補商328を無視し、直接その出力として対応する特殊値を提供する。一方、浮動小数点除算の特例のいずれも生じない場合、ブロック908において、実行された浮動小数点除算修正命令316は、入力確認/出力訂正浮動小数点除算論理326に、浮動小数点除算結果404を表す出力として候補商328を提供させる。優先順位マルチプレクサ418の出力は符号なしの値であってもよいことから、ブロック910において、実行された浮動小数点除算修正命令316は、符号ビット設定論理430に、分子400および分母402の符号ビットに基づいて、浮動小数点除算結果404の符号ビットを設定させてもよい。図9に示す処理ブロックは特定の順序で示されるが、当業者は、処理を異なる順序で実施してもよいことを理解するであろう。例えば、ブロック900は、ブロック902のあとに実行してもよく、または本質的に同時に実行してもよい。入力確認/出力訂正浮動小数点除算論理326は、同時に、候補商328を受け取り、分子400および分母402を検査してもよい。図10を参照すると、本例において、実行された浮動小数点除算修正命令316は、ブロック1000において、ABPエンコーダ434に、図7に示すように浮動小数点除算の特例が生じるかどうかを表すABP436をコード化させてもよい。ABP436は、分子400および分母402の検査に基づく、浮動小数点除算の特例に関する情報を含み、また分子400および分母402の符号ビットを示す情報も含んでよく、これはブロック910において、符号ビット設定論理により使用することができる。次いでABP436は、ブロック1002においてレジスタ312に格納される。図6に関して説明したように、3アドレス入力確認命令600を実行して、入力確認/出力訂正浮動小数点除算論理326に、処理ブロック1000および1002を実行させてもよいことに留意する。この3アドレス出力訂正命令602は、図9のブロック904~910に示すように、さらに実行して、入力確認/出力訂正浮動小数点除算論理326に、ABP436および候補商328に基づく浮動小数点除算結果404を提供させてもよい。本例において、IEEE規格754の例外状態フラグを提供する要件に準拠するために、実行された浮動小数点除算修正命令316は、ブロック1004において、例外フラグ論理432に、分子400および分母402に基づいて例外状態フラグ406を決定させてもよい。具体的には、この決定は、少なくともNaN試験回路408およびゼロ試験回路412からの出力信号に基づいてなされてもよい。決定された例外状態フラグ406は、次いでブロック1006において、入力確認/出力訂正浮動小数点除算論理326の第2の出力として提供される。図10に示す処理ブロックは特定の順序で示されるが、当業者は、処理を異なる順序で実施してもよいことを理解するであろう。例えば、ブロック1000および1002は、ブロック1004および1006のあとに実行してもよく、または本質的に同時に実行してもよい。実行された浮動小数点除算修正命令316は、入力確認/出力訂正浮動小数点除算論理326に、ABP436および例外状態フラグ406を本質的に同時に処理させる。また、CDROM、RAM、他の形態のROM、ハードドライブ、分散型メモリなどであるがこれらに限定されないコンピュータ可読媒体に格納された実行可能な命令に基づき、集積回路を含むウエハを作成する集積回路設計システム例えば、ワークステーションが知られている。この命令は、ハードウェア記述言語HDL、Verilog、または他の好適な言語などであるがこれらに限定されない任意の好適な言語で表現することができる。したがって、本明細書に記載する論理および回路は、そのようなシステムによって、命令が格納されたコンピュータ可読媒体を用いて、集積回路として製造してもよい。例えば、前述の論理および回路を含む集積回路をそのような集積回路製作システムを用いて作成してもよい。コンピュータ可読媒体は、1つまたは複数の集積回路設計システムに集積回路を設計させる、1つまたは複数の集積回路設計システムにより実行可能な命令を格納する。設計された集積回路は、入力確認/出力訂正浮動小数点除算論理、ならびに本明細書で開示されるような他の論理または構造体を有する浮動小数点ALUを含む。入力確認/出力訂正浮動小数点除算論理は、入力確認/出力訂正浮動小数点除算論理に、入力確認/出力訂正浮動小数点除算論理の分子を表す第1の入力および分母を表す第2の入力を検査して、浮動小数点除算の特例が生じるかどうかを決定させ、決定された浮動小数点除算の特例と、入力確認/出力訂正浮動小数点除算論理の候補商を表す第3の入力とに基づいて、入力確認/出力訂正浮動小数点除算論理の浮動小数点除算結果を表す出力提供させる、浮動小数点ALUにより実行可能な浮動小数点除算修正命令に応答する。いくつかの利益のうち特に、浮動小数点除算を実行するための方法および装置は、IEEE規格754に依然として準拠しながら、浮動小数点除算の実行を短時間かつ高速にする能力を提供する。浮動小数点除算の数値部分は、依然として、対応する命令で、既存の浮動小数点加算器/減算器および乗算器を用いて反復アルゴリズムにより計算され、それによりこの方法および装置は費用効率が高くなる。一方、入力確認/出力訂正浮動小数点除算論理および対応する浮動小数点除算修正命令を適用することによって、浮動小数点除算の特例を認識し、処理するための複数の時間のかかる条件命令および論理命令最大30個の命令は、実行時間を減少させるために置き換えることができる。したがって、提案される技法は、並列ストリームプロセッサ、例えばSIMDプロセッサ、例えばコンピュータグラフィックスおよび/または非グラフィック処理および計算で使用するGPUおよび/またはGPGPUに好適であり得る。さらに、浮動小数点除算を実行するための方法および装置は、IEEE規格754に準拠することが可能である。したがって、提案される技法は、少ない命令数および速い実行速度と同時に、より低いプロセッサの設計費用および製造費用の利点、ならびに反復アルゴリズム実行の柔軟性の利点を維持することができる。他の利益は、当業者に理解されるであろう。上記の本発明の詳細な説明、および本明細書に記載する例は、例示および説明の目的で提示されるにすぎず、限定するものではない。したがって、本発明は、上記で開示され、ここに請求される基本的な根本原理の精神および範囲に含まれるあらゆる修正形態、変更形態、または均等物を包含するものと想定される。