JP2011248904A - 予め飽和させる固定小数点乗算器 - Google Patents

予め飽和させる固定小数点乗算器 Download PDF

Info

Publication number
JP2011248904A
JP2011248904A JP2011128153A JP2011128153A JP2011248904A JP 2011248904 A JP2011248904 A JP 2011248904A JP 2011128153 A JP2011128153 A JP 2011128153A JP 2011128153 A JP2011128153 A JP 2011128153A JP 2011248904 A JP2011248904 A JP 2011248904A
Authority
JP
Japan
Prior art keywords
multiplier
overflow
operands
value
operand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011128153A
Other languages
English (en)
Other versions
JP5086466B2 (ja
Inventor
Allen Docser Kenneth
ケネス・アラン・ドックサー
Collett Sexton Bonnie
ボニー・コレット・セックストン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2011248904A publication Critical patent/JP2011248904A/ja
Application granted granted Critical
Publication of JP5086466B2 publication Critical patent/JP5086466B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49921Saturation, i.e. clipping the result to a minimum or maximum value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Picture Signal Circuits (AREA)
  • Processing Of Color Television Signals (AREA)

Abstract

【課題】処理時間の短い、予め飽和させる固定小数点乗算器を提供する。
【解決手段】予め飽和させる乗算器は、任意の乗算を実行する前に、乗算演算のためのオペランドを検査する。オペランドが飽和を必要とするオーバフローを生じさせる場合、乗算器は元のオペランドを乗算せずに飽和した値を出力する。一実施形態では、オペランドから得られたパラメータは、乗算演算が変更されたパラメータに関して実行されると、乗算器が飽和した結果を生成するように変更される。これは、部分積としてゼロの代わりに負のゼロを選択するためにブースリコードされたビットグループを変更すること、および部分積への値1の加算を抑制すること(したがって、値1を効果的に減算すること)を備えることができる。
【選択図】図3

Description

本開示は、一般に、ディジタル回路の分野に関し、具体的には、予め飽和させる固定小数点乗算器に関する。
固定小数点乗算は、プロセッサなどのディジタル計算回路によって実行される基本的な算術演算である。たいていのプロセッサの命令セットのアーキテクチャは、様々な固定小数点乗算命令(fixed-point multiply instructions)を含む。固定小数点乗算の既知のハザード(hazard)障害は、(本明細書でより詳細に説明されるように)いくつかの状態の下では、積が、利用可能なビット幅で表されることができる数値を超える可能性があること、すなわち、オーバフローとして知られている状態である。この場合、積の著しい(gross)誤表現(misrepresentation)を回避するために、乗算命令は「飽和した」出力を指定し、それは利用可能なビットフィールドにおいて表され得る最大の数値であるが、実際には、実際の積にできるだけ近い近似値である。これは、飽和させる固定小数点乗算命令として知られている。そのような命令は、通常、オペランドのビット幅の2倍である積のビット幅を指定する。
整数値および小数値の両者は、使用される規則(convention)に応じて、固定小数点のディジタル形式で表されることができる。一般に、全ての現代のプロセッサは、固定された幅のディジタル表現の正および負の整数を表すために2の補数フォーマットを使用する。2の補数フォーマットは一般的である。2の補数表現(representation)では、整数は「符号付き(signed)」である。すなわち、整数が正であるか負であるかは、最上位ビット(MSB)、または「符号ビット」の検査によって決定されることができる。さらに、2の補数表現では、符号付き整数の2進算術演算が正しい2の補数結果を生じる。
正の2の補数は、ゼロの符号ビットを有する簡単な2進形式で表される。したがって、2の補数フォーマットで表され得る最大の正の数は、2n−1−1であり、ここでnはディジタル表現のビット幅である。負の2の補数は、同じ大きさ(magnitude)の正の数に加算されるとゼロに等しくなる2進数として表される。負の2の補数の数は、1の符号ビットを有する。負の数の2の補数表現はディジタル表現のnビット全てを利用する可能性があるので、2の補数フォーマットで表されることができる最大の負の数は2n−1であり、これは最大の正の2の補数の数より大きさが1大きい。したがって、例えば、32ビットフィールドにおいて表され得る符号付き整数値の範囲は、−231(0x8000 0000)から+231−1(0x7FFF FFFF)である。
任意の2の補数の数の否定は、該数をビット単位で(bit-wise)反転させ(1の補数を生じさせ)、1を加算することにより形成されてもよい。したがって、負の数の2の補数表現を計算する1つのやり方は、対応する正の数(それは、その正の数の1の補数形式である)の2進表現を反転させ、1を加算することである。否定のためのこのアルゴリズムに対する唯一の例外は、表されることのできる最大の負の数である。その数に関して2の補数否定を実行することは、結果的に同じ数を生じさせ、それはオーバフローエラーである。ゼロの2の補数を否定することはゼロを生じさせ、全てのビットを反転させることは全て1を生じさせ、そして1を加算することはゼロを生じさせる(キャリーアウト(carry out)が破棄された場合)ことにも留意されたい。
小数値は、いわゆるQフォーマット表記を使用して、固定された幅のディジタル形式で表されることができる。Qn.xフォーマット表記では、値のビットは、1の符号ビット、nの整数ビット、およびxの小数ビットと解釈される。ディジタル信号処理のための一般的なQフォーマットは、1の符号ビットがあり、整数のビットがなく、xの小数ビットがあることを示すQ0.x(または単にQ.x)である。Q.31表記での数は、32ビットで表され、−1(0x8000 0000)から1−2−31(0x7FFF FFFF)までの範囲の値を有する。
Qフォーマットの数を乗算する場合、2進小数点を考慮することが重要である。例えば、Q.15にQ.15を掛けることはQ2.30の結果を生じる。しかし、値をQ.xフォーマットで保持することが望ましい。これを処理するために、乗算演算は、Q.31の結果を生成するように、2の因数による乗算を含み、それは左シフト演算に相当する。2つのnビット値を一緒に乗算することは、2nビットで表されることができる値を必ず生成する。この積を2倍にすることは、1つの場合、すなわち最大の負の値を除いく全ての場合に、2nビットで表されることができる値を生成する。2の補数の最大の負の値は、1の符号ビット(MSB)であり、他の全てのビットは、ゼロである。この値を左にシフトすることはオーバフローを生じさせることになる。
一例は、32ビットの積を生成するための2つの16ビットオペランドの以下の乗算である。オペランドのそれぞれは、負(1の符号ビット)であり、それらの積は正の数であるべきである。
Figure 2011248904
この例では、2つのオペランドは、それぞれ2の補数フォーマットで16ビットで表されることができる最大の負の数である。それらの積は、大きな正の値を生じるはずである。しかし、2倍にする乗算命令の実際の結果は、最大の負の値である。したがって、その他のビット位置では全て1を有するゼロ符号ビットの、0x7FFFFFFFの飽和値(saturation value)を得るために、この値から「1」が減算されなければならない。
従来の飽和させる乗算器は、乗算が実行された後でのみオーバフロー状態を検出し、そしてその後出力を飽和させることによりオーバフロー状態を補正するためのステップをとらなければならない。いくつかの実施形態では、これは、例外を生じさせることなどにより、プロセッサを停止することを必要とする可能性がある。これは、プロセッサの性能に悪い影響を与え、電力消費量を増加させる。オーバフローがハードウェア内で飽和される場合でも、乗算が完了した後でそうすることは、性能に悪い影響を与える。
1つまたはそれより多くの実施形態によれば、予め飽和させる乗算器(pre-saturating multiplier)は、任意の乗算を実行する前に乗算演算のためのオペランドを検査する。該オペランドが飽和を必要とするオーバフローを生じさせる場合、該乗算器はオペランドを乗算せずに飽和した値を出力する。
一実施形態では、オペランドから得られたパラメータは、変更されたパラメータに関して乗算演算が実行されると乗数が飽和した結果を生じるように、変更される。これは、部分積としてゼロの代わりに負のゼロを選択するようにブースリコードされたビットグループを変更すること、および値1の部分積への加算を抑制すること(したがって、実際には値1を減算すること)を備えることができる。他の実施形態では、オーバーフローを生じさせるオペランドが検出されると、乗算器の出力は強制的に予め決められた飽和値にされる。
一実施形態は、乗数および被乗数を備える少なくとも1つの既知のセットのオペランドが、飽和を必要とするオーバフローを生じさせる、固定小数点の飽和させる乗算演算を実行する方法に関する。オーバフローを生じさせるオペランドは、任意の乗算演算を実行する前に検出され、飽和した結果が該オペランドを乗算せずに出力される。
他の実施形態は、乗数および被乗数を備える2つのオペランドを乗算し、それらの積を出力するように動作可能な乗算器回路を含む予め飽和させる乗算器に関する。予め飽和させる乗算器はまた、乗算器回路でオーバフローを生じさせるオペランドを検出するように動作可能なオーバフロー事前検出回路(overflow pre-detect circuit)を含む。
一実施形態による予め飽和させる乗算器の機能ブロック図。 別の実施形態による予め飽和させる乗算器の機能ブロック図。 予め飽和させる乗算演算を実行する方法の流れ図。
乗算器は、乗算が実行されたら結果的にオーバフロー状態を生じさせる、乗算演算のためのオペランドを検出する。この検出に応答して、乗算器は飽和した値を出力する。一実施形態では、乗算器は、乗算演算の結果積として飽和した値を生じさせるやり方でオペランドを変更することにより飽和した値を出力する。図1は、この実施形態による予め飽和させる乗算器40を示す。GPRレジスタ42は、乗数(MR)オペランドおよび被乗数(MD)オペランドを含む。乗数はブースリコーダ(Booth recoder)回路44に入力される。
ブースリコーディング(Booth recoding)(修正されたブースリコーディングと呼ばれることもある)は、乗算演算を実行する際に加算されるべき部分積の数を減少させるための技法である。乗数内の各ビットを考慮し、被乗数かゼロのどちらかを備える対応するシフトされた部分積を生成するのではなく、乗数ビットはグループで考慮され、被乗数の+/−の倍数を備えるシフトされた部分積が加算される。この技法は、加算されるべき部分積の数を減少させる。例えば、基数−4のブースリコーディングでは、乗数ビットは、(第1のグループにゼロが添付されている)前のグループのMSBと共に、2のグループで考慮される。次いで、部分積は、以下の表に従って、ビットグループの値に基づいて生成される。
Figure 2011248904
乗数内の各ブースリコードされた(Booth recoded)ビットグループでは、被乗数は指示された因数によって乗算され、結果としての部分積は乗数の中のビットグループの位置にシフトされる。次いで、部分積は合計されて積を生じる。符号付きの値を乗算する場合、基数−4のブースリコーディングは、部分積の数を半分までの数だけ減少させることができる。
この実施形態では、ブースリコーダ44の出力は、ブースマルチプレクサ48を介してウォレスツリー(Wallace Tree)50(または他の加算器)のために部分積を選択する。ブースマルチプレクサ48は、シフト/反転ロジック(invert logic)49から適切に修正された被乗数を選択し、各マルチプレクサ48は、該乗数内のリコードされたビットグループの位置に整列される(aligned)。シフト/反転ロジック49は、以下のように表1に詳述されている修正された被乗数を生成する:
・0は全てゼロで被乗数ビットを置換する;
・x1は該被乗数ビットを直接パスする(passes);
・x2は該被乗数ビットを1ビット位置、左シフトする(left-shifts);
・否定は該被乗数、シフトされた被乗数、またはゼロ値に関してビット単位の反転(bit-wise invert)(1の補数)を実行する。
否定は、「1」がウォレスツリー50の中の部分積にLSBで加算される(否定のための2の補数ルールに従って:1の補数+1)まで、完全ではないことに留意されたい。ウォレスツリー50は部分積を合計し、桁上げ伝搬(carry propagate)加算器52において加算される和および桁上げ(carry)を出力し、積は54でラッチされる。当業者は、ブースリコーダの出力およびブースマルチプレクサ48の出力(または被乗数値)はパイプライニング(pipelining)を可能にするためにラッチされることができることを理解するであろう。
オーバフロー検出回路56は、各乗算演算のはじめに乗数および被乗数をモニタし(monitors)、飽和を必要とするオーバフローを生じさせることになるオペランドの値を検出する。ペンディング(pending)オーバフローが検出されると、オーバフロー検出回路56は、乗数ビットのリコーディングを変更するようにブースリコーダ44に信号を送り(signals)、乗算演算の結果として該積の飽和した値になるように、部分積の和を変更するようにウォレスツリー50に信号を送る。これは、限定された数のオペランドがオーバフローを生じさせるので実行可能であり、これらのオペランドは前もって知られている。
特に、一実施形態では、乗数および被乗数の両者が最大の負の値を備える場合だけが、飽和を必要とするオーバフローを生じさせる。この状態が検出されると、オーバフロー検出回路56は、ブースリコーディングを変更するようにブースリコーダ44に信号を送る。これに応答して、ブースリコーダ44は、負のゼロを選択するように最下位のブースリコードされたビットグループ(それは、000の値を有しているので、普通はゼロを選択する)を修正する。シフト/反転ロジック49は、ゼロの1の補数(すなわち、全て1)を提供し、部分積に「1」を加算するようにウォレスツリー50に信号を送る。オーバフロー検出回路56はさらに、ゼロの否定に関連する「1」を加算することを抑制するようにウォレスツリー50に抑制信号を追加として送る(パイプラインされた(pipelined)実施形態では、「+1を抑制する」信号はラッチされることに留意されたい)。したがって、ゼロの符号拡張された(sign-extended)1の補数(0xFFFF FFFF)は部分積として加算されるが、対応する「1」はそうされず、実際にはその結果から「1」を減算する。例えば、
Figure 2011248904
この飽和した結果は、桁上げ伝搬加算器52によって出力され、54で積としてラッチされる。この実施形態によれば、飽和させる乗算演算のタイミングは、オーバフローを生じさせず、したがって、飽和を必要としないオペランドのためのものと同じである。特に、乗算器40の出力に遅延は加えられない。したがって、この実施形態には、乗算演算のタイミングがクリティカル(critical)である特定の適応性がある可能性があり、追加の遅延は、該乗算器40の出力で許容されることができない。
図2は予め飽和させる乗算器40の別の実施形態を示し、対応するコンポーネントはしかるべく符号付けされている。この実施形態では、オーバフロー検出回路56は、乗数および被乗数をモニタし、飽和を必要とするオーバフローを生じさせる既知のオペランドを検出する。これらのオペランドが検出されると、オーバフロー検出回路56は、飽和した結果により乗算器40の積の出力を置換する信号を出力する。例えば、オーバフロー検出回路56は、桁上げ伝搬加算器52の出力の代わりに予め決められた飽和出力を選択するようにマルチプレクサ60に指示するマルチプレクサ選択信号を出力することができる。予め決められた飽和出力は、ハードワイヤ−ド(hard-wired)値を備えて(すなわち、ビット位置高電圧レールまたは低電圧レールに結合されて)いてもよいし、またはその代りに、レジスタのような記憶位置の出力を備えていてもよい。複数のオペランドが様々な飽和値を必要とするオーバフローを生じさせる可能性のある一実施形態では、オーバフロー検出回路56はマルチビットマルチプレクサ選択信号を出力してもよく、それは複数の予め決められた飽和値と該加算器52の該出力との間で選択をする。オーバフロー検出回路56は、パイプラインされた実施形態においてラッチされてもよい。
この実施形態では、乗算演算は、電力消費量を低減するために抑制されてもよい(すなわち、ブースリコーダ44、ロジックブロック49、ウォレスツリー50、桁上げ伝搬加算器52、および他の乗算器回路がディセーブルされ(disabled)てもよい)。その代りに、オペランドの乗算は、乗算器40を通して進行することを可能にされてもよく、その代わりに、飽和した結果として単に破棄された結果は54でラッチされる。この実施形態では、マルチプレクサ60の遅延は、乗算器40によって実行されるあらゆる乗算演算に加えられる。もっとも、この遅延は、既存のマルチプレクサの使用されていない脚(leg)を使用すること、またはマルチプレクサのラッチを使用することによって、あるいは当技術分野で知られている他の技法によって、軽減される可能性がある。オーバフロー状態は非常に早く決定され、飽和した値を選択するための決定は、クリティカルパスの一部ではない。
図3は、オペランドのうちの少なくとも1つの既知のセットが飽和を必要とするオーバフローを生じさせる、固定小数点の飽和させる乗算演算を実行する方法を示す。最初に(すなわち、任意の乗算を実行する前に)、オペランドは検査される(ブロック70)。オペランドは、オーバフローを生じさせる既知の値と比較される(ブロック72)。例えば、場合によっては、両オペランドがオペランドのビットフィールドにおいて表されることができる最大の負の値を備える場合、結果としてオーバフローが生じる。オペランドを乗算することがオーバフローを生じさせない場合(ブロック72)、乗算が実行され、結果が出力される(ブロック74)。オペランドを乗算することが飽和を必要とするオーバフローを生じさせる場合は(ブロック72)、1つまたはそれより多くの実施形態にしたがって、元のオペランドを乗算せずに、飽和した結果が出力される(ブロック76)。
一実施形態では、これは、変更されたパラメータの乗算演算を実行した結果、乗算演算の積として飽和した値が生じるように、オペランドから生成されたパラメータを変更することを備える。他の実施形態では、飽和した結果を出力することは、乗算演算からの積の代わりに、出力として予め決められた飽和値を選択することを備える。
両方の実施形態(すなわち、図1および図2に示されている実施形態)では、オーバフローを生じさせるオペランドは早く検出され、乗算器40は飽和した結果を直接的に出力する。これは、積を検査することによりオーバフローを検出し、それに続いて積の代わりに飽和した値を使用するだけの従来の方法にまさる、著しい性能の改善および電力の節約を表す。本明細書で開示された1つまたはそれより多くの実施形態による乗算器40は、電池を電源とする(battery-powered)ポータブル電子装置用などの高速プロセッサおよび/または低電力消費がクリティカルファクタであるプロセッサに特に適している。
本発明の概念は本明細書で本発明の概念の特定の特徴、態様および実施形態に関して説明されてきたが、多数の変形形態、変更形態、および他の実施形態が本教示の広い範囲内で可能であることは明らかであろう。したがって、本実施形態は、全ての面で例示的であり制限的ではないと解釈されるものとし、添付の特許請求の範囲の意味および同等範囲に入る全ての変更はそこに包含されるものとする。

Claims (15)

  1. 乗数および被乗数を備える、オペランドの少なくとも1つの既知のセットが、飽和を必要とするオーバフローを生じさせる、固定小数点の飽和させる乗算演算を実行する方法であって、
    任意の乗算演算を実行する前に、オーバフローを生じさせる前記オペランドを検出すること、および
    前記オペランドを乗算せずに飽和した結果を出力すること
    を備える方法。
  2. オーバフローを生じさせる前記オペランドは、前記オペランドのビットフィールドにおいて表されることができる最大の負の数である、請求項1に記載の方法。
  3. 乗算演算が前記飽和した結果を生成するように、前記オペランドから得られた1つまたはそれより多くのパラメータを調整すること、および
    前記調整されたパラメータを用いて乗算演算を実行することをさらに備える、請求項1に記載の方法。
  4. 前記オペランドから得られた1つまたはそれより多くのパラメータを調整することは、前記乗数から得られた1つまたはそれより多くのブースリコードされたビットグループを変更することを備える、請求項3に記載の方法。
  5. ブースリコードされたビットグループは、ブースリコードされたビットグループの選択をゼロから負のゼロに変更すること、および被乗数から得られた部分積への値1の加算を抑制することを備える、請求項4に記載の方法。
  6. 前記オペランドから得られた1つまたはそれより多くのパラメータを調整することが、前記オペランドから得られた部分積に値負の1を加算することを備える、請求項3に記載の方法。
  7. 前記飽和した結果を出力することは、乗算演算の積にかかわらず、乗算演算の該出力を強制的に飽和した結果にすることを備える、請求項1に記載の方法。
  8. 乗算演算の前記出力を強制的に飽和した結果にすることは、オーバフローを生じさせる前記オペランドを検出することに応答して、前記乗算演算の出力と前記飽和した結果との間で選択することを備える、請求項7に記載の方法。
  9. 乗数および被乗数を備える2つのオペランドを乗算し、それらの積を出力するように動作可能な乗算器回路、および
    前記乗算器回路においてオーバフローを生じさせるオペランドを検出するように動作可能なオーバフロー事前検出回路
    を備える予め飽和させる乗算器。
  10. 前記オーバフロー事前検出回路が、前記オペランドのビットフィールドにおいて表されることができる最大の負の値を検出する、請求項9に記載の乗算器。
  11. 前記乗算器回路は、前記乗数を複数のビットグループにリコードするように動作可能なブースリコーダを備え、各ビットグループは部分積として前記被乗数の正または負の倍数を選択し、前記ブースリコーダは、前記オーバフロー事前検出回路に応答して、前記乗数において飽和した結果を生成するために1つまたはそれより多くのビットグループを変更するようにさらに動作可能である、請求項9に記載の乗算器。
  12. 前記ブースリコーダは、前記オーバフロー事前検出回路に応答して、最下位のリコードされたビットグループに、負のゼロを強制的に選択させるように動作可能である、請求項11に記載の乗算器。
  13. 前記部分積を加算し、前記ブースリコードされたビットグループによって選択された負の部分積のために前記値1を加算するように動作可能な並列加算器をさらに備え、前記並列加算器が、前記オーバフロー事前検出回路に応答して負のゼロのための前記値1の前記加算を抑制するようにさらに動作可能である、請求項11に記載の乗算器。
  14. 前記乗算器回路は、前記オーバフロー事前検出回路に応答して前記積から前記値1を減算するように動作可能である、請求項9に記載の乗算器。
  15. 前記オーバフロー事前検出回路に応答して前記乗算器回路からの前記積かまたは予め決められた飽和した結果のどちらかを出力するように動作可能な出力選択器をさらに備える、請求項9に記載の乗算器。
JP2011128153A 2006-01-20 2011-06-08 予め飽和させる固定小数点乗算器 Active JP5086466B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/336,358 US8082287B2 (en) 2006-01-20 2006-01-20 Pre-saturating fixed-point multiplier
US11/336,358 2006-01-20

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008551565A Division JP5203972B2 (ja) 2006-01-20 2007-01-22 予め飽和させる固定小数点乗算器

Publications (2)

Publication Number Publication Date
JP2011248904A true JP2011248904A (ja) 2011-12-08
JP5086466B2 JP5086466B2 (ja) 2012-11-28

Family

ID=38015402

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008551565A Active JP5203972B2 (ja) 2006-01-20 2007-01-22 予め飽和させる固定小数点乗算器
JP2011128153A Active JP5086466B2 (ja) 2006-01-20 2011-06-08 予め飽和させる固定小数点乗算器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2008551565A Active JP5203972B2 (ja) 2006-01-20 2007-01-22 予め飽和させる固定小数点乗算器

Country Status (10)

Country Link
US (1) US8082287B2 (ja)
EP (1) EP1974253A2 (ja)
JP (2) JP5203972B2 (ja)
KR (1) KR100958224B1 (ja)
CN (1) CN101371221B (ja)
BR (1) BRPI0707147A2 (ja)
CA (1) CA2635119C (ja)
RU (1) RU2408057C2 (ja)
TW (1) TWI396130B (ja)
WO (1) WO2007085012A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7381426B2 (ja) 2020-03-19 2023-11-15 株式会社東芝 演算回路

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8316071B2 (en) * 2009-05-27 2012-11-20 Advanced Micro Devices, Inc. Arithmetic processing unit that performs multiply and multiply-add operations with saturation and method therefor
US8892621B2 (en) * 2011-12-19 2014-11-18 Lsi Corporation Implementation of negation in a multiplication operation without post-incrementation
KR20130111721A (ko) * 2012-04-02 2013-10-11 삼성전자주식회사 부분 곱 생성기의 부스코드 생성방법, 컴퓨터 시스템 및 그 매체와 디지털 신호프로세서
US9323498B2 (en) * 2013-03-13 2016-04-26 Wisconsin Alumni Research Foundation Multiplier circuit with dynamic energy consumption adjustment
US9747074B2 (en) 2014-02-25 2017-08-29 Kabushiki Kaisha Toshiba Division circuit and microprocessor
KR101644039B1 (ko) * 2015-06-11 2016-07-29 에스케이텔레콤 주식회사 고정소수점 연산 방법 및 고정소수점 연산 장치
US11327718B2 (en) * 2020-03-19 2022-05-10 Kabushiki Kaisha Toshiba Arithmetic circuitry for power-efficient multiply-add operations

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6162937A (ja) * 1984-09-04 1986-03-31 Toshiba Corp 乗算器
JPH01267728A (ja) * 1988-04-19 1989-10-25 Ricoh Co Ltd 乗算器
JPH10149277A (ja) * 1996-11-20 1998-06-02 Ricoh Co Ltd 乗算装置
JPH11126157A (ja) * 1997-10-24 1999-05-11 Matsushita Electric Ind Co Ltd 乗算方法および乗算回路
JP2000215028A (ja) * 1998-10-06 2000-08-04 Texas Instr Inc <Ti> 乗算器/アキュムレ―タ・ユニット

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220525A (en) 1991-11-04 1993-06-15 Motorola, Inc. Recoded iterative multiplier
US5793315A (en) * 1996-05-31 1998-08-11 Motorola, Inc. Bit-serial digital expandor
EP0992916A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. Digital signal processor
JP3530418B2 (ja) 1999-05-13 2004-05-24 Necエレクトロニクス株式会社 乗算装置
US6574651B1 (en) 1999-10-01 2003-06-03 Hitachi, Ltd. Method and apparatus for arithmetic operation on vectored data
US7058830B2 (en) 2003-03-19 2006-06-06 International Business Machines Corporation Power saving in a floating point unit using a multiplier and aligner bypass
US7689641B2 (en) 2003-06-30 2010-03-30 Intel Corporation SIMD integer multiply high with round and shift
US20080098057A1 (en) * 2004-08-26 2008-04-24 Daisuke Takeuchi Multiplication Apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6162937A (ja) * 1984-09-04 1986-03-31 Toshiba Corp 乗算器
JPH01267728A (ja) * 1988-04-19 1989-10-25 Ricoh Co Ltd 乗算器
JPH10149277A (ja) * 1996-11-20 1998-06-02 Ricoh Co Ltd 乗算装置
JPH11126157A (ja) * 1997-10-24 1999-05-11 Matsushita Electric Ind Co Ltd 乗算方法および乗算回路
JP2000215028A (ja) * 1998-10-06 2000-08-04 Texas Instr Inc <Ti> 乗算器/アキュムレ―タ・ユニット

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7381426B2 (ja) 2020-03-19 2023-11-15 株式会社東芝 演算回路

Also Published As

Publication number Publication date
WO2007085012A2 (en) 2007-07-26
CN101371221B (zh) 2012-05-30
TW200736989A (en) 2007-10-01
KR20080089640A (ko) 2008-10-07
RU2408057C2 (ru) 2010-12-27
CA2635119A1 (en) 2007-07-26
CN101371221A (zh) 2009-02-18
BRPI0707147A2 (pt) 2011-04-19
TWI396130B (zh) 2013-05-11
JP5203972B2 (ja) 2013-06-05
CA2635119C (en) 2013-07-30
RU2008134127A (ru) 2010-02-27
US8082287B2 (en) 2011-12-20
EP1974253A2 (en) 2008-10-01
US20070174379A1 (en) 2007-07-26
WO2007085012A3 (en) 2008-01-24
JP2009524169A (ja) 2009-06-25
JP5086466B2 (ja) 2012-11-28
KR100958224B1 (ko) 2010-05-17

Similar Documents

Publication Publication Date Title
JP5086466B2 (ja) 予め飽和させる固定小数点乗算器
US8965945B2 (en) Apparatus and method for performing floating point addition
Sohn et al. Improved architectures for a fused floating-point add-subtract unit
JP2002108606A (ja) スティッキービット生成回路及び乗算器
US9712185B2 (en) System and method for improved fractional binary to fractional residue converter and multipler
JP6309196B2 (ja) 多項式演算のための部分積発生装置及び方法
US9146707B2 (en) Generating a fast 3x multiplicand term for radix-8 booth multiplication
Kaivani et al. Floating-point butterfly architecture based on binary signed-digit representation
KR20060057574A (ko) 예비 포화 검사로 가산 또는 감산을 위한 산술 유닛 및 그방법
JP4273071B2 (ja) 除算・開平演算器
Krishnan A comparative study on the performance of FPGA implementations of high-speed single-precision binary floating-point multipliers
US10275218B1 (en) Apparatus and method for subtracting significand values of floating-point operands
Sathish et al. VLSI architecture of parallel multiplier-accumulator based on radix-2 modified booth algorithm
Dave et al. Multiplication by complements
CN113434115B (zh) 一种浮点数尾数域余数运算电路及方法
MX2008009315A (en) Pre-saturating fixed-point multiplier
Ganesh et al. RGB-to-Grayscale Conversion Using Truncated Floating-Point Multiplier
Hojati et al. A Low-Cost Combinational Approximate Multiplier
Kumar et al. An Efficient System Design for a 32 Bit Sum-Product Operator in Modified Booth form Using Fusion Technique
Ab et al. An Efficient VLSI Architecture for Analysis of Area, Delay and Power Consumption-A Review
US20190155573A1 (en) Handling floating-point operations
Gopal A novel low power multi path double precision fused multiplier accumulator architecture
CN116382628A (zh) 具有减少1求补延迟的浮点融合乘加
Duvvuru et al. A High Speed Floating Point Multiplier using Vedic Mathematics
Duarte et al. Double Precision Floating-Point Multiplier using Coarse-Grain Units

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120807

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120906

R150 Certificate of patent or registration of utility model

Ref document number: 5086466

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250