乗数および被乗数を備える、オペランドの少なくとも1つの既知のセットが、飽和を必要とするオーバフローを生じさせる、固定小数点の飽和させる乗算演算を実行する方法であって、任意の乗算演算を実行する前に、オーバフローを生じさせる前記オペランドを検出すること、および前記オペランドを乗算せずに飽和した結果を出力することを備える方法。オーバフローを生じさせる前記オペランドは、前記オペランドのビットフィールドにおいて表されることができる最大の負の数である、請求項1に記載の方法。乗算演算が前記飽和した結果を生成するように、前記オペランドから得られた1つまたはそれより多くのパラメータを調整すること、および前記調整されたパラメータを用いて乗算演算を実行することをさらに備える、請求項1に記載の方法。前記オペランドから得られた1つまたはそれより多くのパラメータを調整することは、前記乗数から得られた1つまたはそれより多くのブースリコードされたビットグループを変更することを備える、請求項3に記載の方法。ブースリコードされたビットグループは、ブースリコードされたビットグループの選択をゼロから負のゼロに変更すること、および被乗数から得られた部分積への値1の加算を抑制することを備える、請求項4に記載の方法。前記オペランドから得られた1つまたはそれより多くのパラメータを調整することが、前記オペランドから得られた部分積に値負の1を加算することを備える、請求項3に記載の方法。前記飽和した結果を出力することは、乗算演算の積にかかわらず、乗算演算の該出力を強制的に飽和した結果にすることを備える、請求項1に記載の方法。乗算演算の前記出力を強制的に飽和した結果にすることは、オーバフローを生じさせる前記オペランドを検出することに応答して、前記乗算演算の出力と前記飽和した結果との間で選択することを備える、請求項7に記載の方法。乗数および被乗数を備える2つのオペランドを乗算し、それらの積を出力するように動作可能な乗算器回路、および前記乗算器回路においてオーバフローを生じさせるオペランドを検出するように動作可能なオーバフロー事前検出回路を備える予め飽和させる乗算器。前記オーバフロー事前検出回路が、前記オペランドのビットフィールドにおいて表されることができる最大の負の値を検出する、請求項9に記載の乗算器。前記乗算器回路は、前記乗数を複数のビットグループにリコードするように動作可能なブースリコーダを備え、各ビットグループは部分積として前記被乗数の正または負の倍数を選択し、前記ブースリコーダは、前記オーバフロー事前検出回路に応答して、前記乗数において飽和した結果を生成するために1つまたはそれより多くのビットグループを変更するようにさらに動作可能である、請求項9に記載の乗算器。前記ブースリコーダは、前記オーバフロー事前検出回路に応答して、最下位のリコードされたビットグループに、負のゼロを強制的に選択させるように動作可能である、請求項11に記載の乗算器。前記部分積を加算し、前記ブースリコードされたビットグループによって選択された負の部分積のために前記値1を加算するように動作可能な並列加算器をさらに備え、前記並列加算器が、前記オーバフロー事前検出回路に応答して負のゼロのための前記値1の前記加算を抑制するようにさらに動作可能である、請求項11に記載の乗算器。前記乗算器回路は、前記オーバフロー事前検出回路に応答して前記積から前記値1を減算するように動作可能である、請求項9に記載の乗算器。前記オーバフロー事前検出回路に応答して前記乗算器回路からの前記積かまたは予め決められた飽和した結果のどちらかを出力するように動作可能な出力選択器をさらに備える、請求項9に記載の乗算器。乗算器は、乗算が実行されたら結果的にオーバフロー状態を生じさせる、乗算演算のためのオペランドを検出する。この検出に応答して、乗算器は飽和した値を出力する。一実施形態では、乗算器は、乗算演算の結果積として飽和した値を生じさせるやり方でオペランドを変更することにより飽和した値を出力する。図1は、この実施形態による予め飽和させる乗算器40を示す。GPRレジスタ42は、乗数MRオペランドおよび被乗数MDオペランドを含む。乗数はブースリコーダ回路44に入力される。ブースリコーディング修正されたブースリコーディングと呼ばれることもあるは、乗算演算を実行する際に加算されるべき部分積の数を減少させるための技法である。乗数内の各ビットを考慮し、被乗数かゼロのどちらかを備える対応するシフトされた部分積を生成するのではなく、乗数ビットはグループで考慮され、被乗数の/-の倍数を備えるシフトされた部分積が加算される。この技法は、加算されるべき部分積の数を減少させる。例えば、基数-4のブースリコーディングでは、乗数ビットは、第1のグループにゼロが添付されている前のグループのMSBと共に、2のグループで考慮される。次いで、部分積は、以下の表に従って、ビットグループの値に基づいて生成される。乗数内の各ブースリコードされたビットグループでは、被乗数は指示された因数によって乗算され、結果としての部分積は乗数の中のビットグループの位置にシフトされる。次いで、部分積は合計されて積を生じる。符号付きの値を乗算する場合、基数-4のブースリコーディングは、部分積の数を半分までの数だけ減少させることができる。この実施形態では、ブースリコーダ44の出力は、ブースマルチプレクサ48を介してウォレスツリー50または他の加算器のために部分積を選択する。ブースマルチプレクサ48は、シフト/反転ロジック49から適切に修正された被乗数を選択し、各マルチプレクサ48は、該乗数内のリコードされたビットグループの位置に整列される。シフト/反転ロジック49は、以下のように表1に詳述されている修正された被乗数を生成する:0は全てゼロで被乗数ビットを置換する;x1は該被乗数ビットを直接パスする;x2は該被乗数ビットを1ビット位置、左シフトする;否定は該被乗数、シフトされた被乗数、またはゼロ値に関してビット単位の反転1の補数を実行する。否定は、1がウォレスツリー50の中の部分積にLSBで加算される否定のための2の補数ルールに従って:1の補数1まで、完全ではないことに留意されたい。ウォレスツリー50は部分積を合計し、桁上げ伝搬加算器52において加算される和および桁上げを出力し、積は54でラッチされる。当業者は、ブースリコーダの出力およびブースマルチプレクサ48の出力または被乗数値はパイプライニングを可能にするためにラッチされることができることを理解するであろう。オーバフロー検出回路56は、各乗算演算のはじめに乗数および被乗数をモニタし、飽和を必要とするオーバフローを生じさせることになるオペランドの値を検出する。ペンディングオーバフローが検出されると、オーバフロー検出回路56は、乗数ビットのリコーディングを変更するようにブースリコーダ44に信号を送り、乗算演算の結果として該積の飽和した値になるように、部分積の和を変更するようにウォレスツリー50に信号を送る。これは、限定された数のオペランドがオーバフローを生じさせるので実行可能であり、これらのオペランドは前もって知られている。特に、一実施形態では、乗数および被乗数の両者が最大の負の値を備える場合だけが、飽和を必要とするオーバフローを生じさせる。この状態が検出されると、オーバフロー検出回路56は、ブースリコーディングを変更するようにブースリコーダ44に信号を送る。これに応答して、ブースリコーダ44は、負のゼロを選択するように最下位のブースリコードされたビットグループそれは、000の値を有しているので、普通はゼロを選択するを修正する。シフト/反転ロジック49は、ゼロの1の補数すなわち、全て1を提供し、部分積に1を加算するようにウォレスツリー50に信号を送る。オーバフロー検出回路56はさらに、ゼロの否定に関連する1を加算することを抑制するようにウォレスツリー50に抑制信号を追加として送るパイプラインされた実施形態では、1を抑制する信号はラッチされることに留意されたい。したがって、ゼロの符号拡張された1の補数0xFFFFFFFFは部分積として加算されるが、対応する1はそうされず、実際にはその結果から1を減算する。例えば、この飽和した結果は、桁上げ伝搬加算器52によって出力され、54で積としてラッチされる。この実施形態によれば、飽和させる乗算演算のタイミングは、オーバフローを生じさせず、したがって、飽和を必要としないオペランドのためのものと同じである。特に、乗算器40の出力に遅延は加えられない。したがって、この実施形態には、乗算演算のタイミングがクリティカルである特定の適応性がある可能性があり、追加の遅延は、該乗算器40の出力で許容されることができない。図2は予め飽和させる乗算器40の別の実施形態を示し、対応するコンポーネントはしかるべく符号付けされている。この実施形態では、オーバフロー検出回路56は、乗数および被乗数をモニタし、飽和を必要とするオーバフローを生じさせる既知のオペランドを検出する。これらのオペランドが検出されると、オーバフロー検出回路56は、飽和した結果により乗算器40の積の出力を置換する信号を出力する。例えば、オーバフロー検出回路56は、桁上げ伝搬加算器52の出力の代わりに予め決められた飽和出力を選択するようにマルチプレクサ60に指示するマルチプレクサ選択信号を出力することができる。予め決められた飽和出力は、ハードワイヤ-ド値を備えてすなわち、ビット位置高電圧レールまたは低電圧レールに結合されていてもよいし、またはその代りに、レジスタのような記憶位置の出力を備えていてもよい。複数のオペランドが様々な飽和値を必要とするオーバフローを生じさせる可能性のある一実施形態では、オーバフロー検出回路56はマルチビットマルチプレクサ選択信号を出力してもよく、それは複数の予め決められた飽和値と該加算器52の該出力との間で選択をする。オーバフロー検出回路56は、パイプラインされた実施形態においてラッチされてもよい。この実施形態では、乗算演算は、電力消費量を低減するために抑制されてもよいすなわち、ブースリコーダ44、ロジックブロック49、ウォレスツリー50、桁上げ伝搬加算器52、および他の乗算器回路がディセーブルされてもよい。その代りに、オペランドの乗算は、乗算器40を通して進行することを可能にされてもよく、その代わりに、飽和した結果として単に破棄された結果は54でラッチされる。この実施形態では、マルチプレクサ60の遅延は、乗算器40によって実行されるあらゆる乗算演算に加えられる。もっとも、この遅延は、既存のマルチプレクサの使用されていない脚を使用すること、またはマルチプレクサのラッチを使用することによって、あるいは当技術分野で知られている他の技法によって、軽減される可能性がある。オーバフロー状態は非常に早く決定され、飽和した値を選択するための決定は、クリティカルパスの一部ではない。図3は、オペランドのうちの少なくとも1つの既知のセットが飽和を必要とするオーバフローを生じさせる、固定小数点の飽和させる乗算演算を実行する方法を示す。最初にすなわち、任意の乗算を実行する前に、オペランドは検査されるブロック70。オペランドは、オーバフローを生じさせる既知の値と比較されるブロック72。例えば、場合によっては、両オペランドがオペランドのビットフィールドにおいて表されることができる最大の負の値を備える場合、結果としてオーバフローが生じる。オペランドを乗算することがオーバフローを生じさせない場合ブロック72、乗算が実行され、結果が出力されるブロック74。オペランドを乗算することが飽和を必要とするオーバフローを生じさせる場合はブロック72、1つまたはそれより多くの実施形態にしたがって、元のオペランドを乗算せずに、飽和した結果が出力されるブロック76。一実施形態では、これは、変更されたパラメータの乗算演算を実行した結果、乗算演算の積として飽和した値が生じるように、オペランドから生成されたパラメータを変更することを備える。他の実施形態では、飽和した結果を出力することは、乗算演算からの積の代わりに、出力として予め決められた飽和値を選択することを備える。両方の実施形態すなわち、図1および図2に示されている実施形態では、オーバフローを生じさせるオペランドは早く検出され、乗算器40は飽和した結果を直接的に出力する。これは、積を検査することによりオーバフローを検出し、それに続いて積の代わりに飽和した値を使用するだけの従来の方法にまさる、著しい性能の改善および電力の節約を表す。本明細書で開示された1つまたはそれより多くの実施形態による乗算器40は、電池を電源とするポータブル電子装置用などの高速プロセッサおよび/または低電力消費がクリティカルファクタであるプロセッサに特に適している。本発明の概念は本明細書で本発明の概念の特定の特徴、態様および実施形態に関して説明されてきたが、多数の変形形態、変更形態、および他の実施形態が本教示の広い範囲内で可能であることは明らかであろう。したがって、本実施形態は、全ての面で例示的であり制限的ではないと解釈されるものとし、添付の特許請求の範囲の意味および同等範囲に入る全ての変更はそこに包含されるものとする。