JP5074425B2 - 拡張された削減ツリー回路構成を有するブース乗算器 - Google Patents

拡張された削減ツリー回路構成を有するブース乗算器 Download PDF

Info

Publication number
JP5074425B2
JP5074425B2 JP2008555460A JP2008555460A JP5074425B2 JP 5074425 B2 JP5074425 B2 JP 5074425B2 JP 2008555460 A JP2008555460 A JP 2008555460A JP 2008555460 A JP2008555460 A JP 2008555460A JP 5074425 B2 JP5074425 B2 JP 5074425B2
Authority
JP
Japan
Prior art keywords
multiplication
digital signal
signal processor
multiplier
product
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.)
Expired - Fee Related
Application number
JP2008555460A
Other languages
English (en)
Other versions
JP2009527060A (ja
JP2009527060A5 (ja
Inventor
クリティバサン、シャンカー
クーブ、クリストファー・エドワード
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
Priority claimed from US11/356,359 external-priority patent/US7797366B2/en
Priority claimed from US11/355,397 external-priority patent/US7809783B2/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009527060A publication Critical patent/JP2009527060A/ja
Publication of JP2009527060A5 publication Critical patent/JP2009527060A5/ja
Application granted granted Critical
Publication of JP5074425B2 publication Critical patent/JP5074425B2/ja
Expired - Fee Related 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/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
    • 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/544Methods 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 for evaluating functions by calculation
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products

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)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

関連文献
本出願は、同時係争中の米国特許出願番号第11/356,359号、名称“ブース乗算方法及びシステムのための電力効率の良い符号拡張(POWER-EFFICIENT SIGN EXTENSION FOR BOOTH MULTIPLICATION METHODS AND SYSTEMS)”、2006年2月15日出願、に関係する。
本発明は、ディジタル信号プロセッサにおける数学プロセッサの分野に係わり、そしてより詳しくは、数値の高速乗算を実行するために数学プロセッサにおいて使用されるブース乗算器に関する。より具体的には、本発明は、様々なデータ・タイプのオペランド(operand)についていの演算そして同様に符号付きの及び符号のないバイナリ値についての演算を実行することが可能な乗算器回路に関する。
ますます、電子装置及びサポート・ソフトウェア・アプリケーションは、ディジタル信号処理を必要とする。ホーム・シアター、コンピュータ・グラフィックス、医療画像技術及び電気通信技術は、全てディジタル信号処理技術を頼りにしている。ディジタル信号処理は、複雑であるが繰返しアルゴリズムの高速の数学演算を必要とする。多くのアプリケーションは、リアル−タイムの計算を必要とする、すなわち、信号は、時間の連続関数であり、それは数値処理のためにサンプリングされ、そしてディジタルに変換される必要がある。プロセッサは、サンプルが到着するとそのサンプルに個別の演算を実行するアルゴリズムを実行する必要がある。ディジタル信号プロセッサ、すなわちDSP(DSP:digital signal processor)、のアーキテクチャは、そのようなアルゴリズムを取り扱うために最適化される。良い信号処理エンジンの特性は、高速で柔軟な算術計算ユニット、その計算ユニットへのそしてそれからの非拘束データ・フロー、計算ユニットの精度及びダイナミック・レンジの拡張、デュアル・アドレス発生器、効率的なプログラム・シーケンシング、及びプログラミングの容易さ、を含む。
DSP技術の1つの将来有望なアプリケーションは、衛星回線又は地上回線を介して複数のユーザ間の音声及びデータ通信をサポートする符号分割多元接続(CDMA:code division multiple access)システムのような通信システムを含む。多元接続通信システムにおけるCDMAプロセスの使用は、米国特許番号第4,901,307号、名称“衛星リピータ又は地上リピータを使用するスペクトル拡散多元接続通信システム”、及び米国特許番号第5,103,459号、名称“CDMAセルラ電話ハンドセット・システムにおいて波形を生成するためのシステム及び方法”に開示されており、両者とも特許請求された主題の譲受け人に譲渡されている。
CDMAシステムは、1又はそれより多くの電気通信規格、そして現在流れているビデオ規格に準拠するように一般的に設計されている。1つのそのような第1世代規格は、“TIA/EIA/IS−95 デュアル・モード広帯域スペクトル拡散セルラ・システムのための端末−基地局互換性規格”であり、以降IS−95規格と呼ばれる。IS−95 CDMAシステムは、音声データとパケット・データとを送信することが可能である。パケット・データをもっと効率的に送信することが可能なより新しい世代の規格は、“第3世代パートナーシップ・プロジェクト”(3GPP)という名前のコンソーシアムにより提案され、そしてドキュメント番号3G TS 25.211、3G TS 25.212、3G TS 25.213、及び3G TS 25.214を含むドキュメントのセットに組み込まれており、それは公に容易に利用可能である。3GPP規格は、以降W−CDMA規格として呼ばれる。同様に、ビデオ圧縮規格があり、例えば、MPEG−1,MPEG−2,MPEG−4,H.263,及びWMV(ウィンドウズ(登録商標)メディア・ビデオ)、同様に、そのような無線ハンドセットがますます利用するであろう多くの他の規格がある。
高速で柔軟な算術計算ユニットを実現するために、高速乗算演算を実行する必要性がある。そのような演算を実行するための1つのプロセスは、ブース乗算として知られている。ブース乗算は、乗算される数値を記録することにより、より小さく、より早い乗算回路を可能にするプロセスである。ブース・プロセスを使用する乗算は、典型的に部分積を生成することにより実行される。部分積は、次に加算されて最終結果を求める。ブース乗算処理を用いると、部分積の個数は、乗数行列中の行の個数に等しい。用語“部分積”は、乗算ツリー中の行を呼ぶ。
元々のブースのアルゴリズムへの数多くの変形があるが、基本的な原理は、ブース・エンコーディング・プロセスを使用してより少ない部分積を生成することである。基数−4ブース・レコーディングのプロセスを使用することによりほぼ半分に部分積の個数を減少させることが可能である。基数−4ブース・レコーディングは、0と1のバイナリ値で元々は表わされる乗数Bのビットを、−2,−1,0,1又は2の値を取ることが可能な乗算因子の集合へとマッピングする。この方法は、そうでなければ生じるはずの部分積の個数をほぼ半分にする利点を提供する。これは、回路の動作中の伝搬遅延に関係し、そしてその実施の複雑性と電力消費に関係するので、回路設計において重要である。
ブース・エンコーディングのプロセスを使用して部分積が一旦生成されてしまうと、それらは削減技術を利用することにより一緒に加算される。削減のプロセスは、半加算器、全加算器、及びマルチ−オペランド(multi-operand)加算器を使用して並列処理で部分積ビットの複数の行を合計することを含む。この削減は、冗長フォーマットであると言われるビットの2行を結果としてもたらし、キャリー伝搬加算器を使用して分解するときに、その総和は最終積を表す。これらの行のうちの1つは、サム(Sum)Sと呼ばれ、そして他の行は、キャリー(Carry)Cと呼ばれる。乗算−累積(MAC:multiply-accumulate)演算において、[Z+(AxB)]中のZ項は、一般的に、最終CAPの前に削減ツリー中に含まれる。この処理は、冗長フォーマットでの乗算積の分解に対して及び引き続く累積に対しての両者でCPAを利用することを省略する。
ある複数の部分積が負であり得るので、2の補集合を作るために必要なハードウェアは、ブース乗算器の1つの態様である。そのようなハードウェアを用いて、乗算積の加法の逆を生成することが可能なブース乗算器を提供する必要性がある。現在、DSPアプリケーションのために効率的に−(AxB)を生成することができる公知の方法又はシステムは、何も存在しない。したがって、DSPアプリケーションにおいて積の加法の逆、−(AxB)、を生成するためにブース乗算処理を使用することができる方法とシステムに対する必要性が存在する。
しかしながら、一旦、そのような積が生成されると、“Z”から乗算の積“AxB”まで累積されようとしている値が積AxBよりも大きなビット幅の場合には、冗長積の“サム”と“キャリー”成分の両者は、適正に符号拡張される必要がある。時々、ビットの広い範囲にわたり符号拡張を実行することが、必要であり得る。したがって、DSP中でブース乗算処理の間に適正な符号拡張のプロセスに対する必要性がある。
米国特許番号第4,901,307号 米国特許番号第5,103,459号 TIA/EIA/IS−95:デュアル・モード広帯域スペクトル拡散セルラ・システムのための端末−基地局互換性規格
サマリー
拡張された削減ツリー回路構成を有するブース乗算器を提供するための技術が開示され、そのプロセスは、パーソナル・コンピュータ、個人ディジタル補助装置、無線ハンドセット、及び類似の電子デバイスのますますエラーに強いソフトウェア・アプリケーションを処理するため、同様にますます増加している関係するディジタル信号プロセッサ速度及びサービス品質のための、ディジタル信号プロセッサの動作とディジタル信号プロセッサ命令の効率的な使用の両方を改善する。
したがって、開示された主題は、ディジタル信号プロセッサの設計と使用のためのプロセスを提供し、通信(例えば、CDMA)システムにおける伝送を処理することを含む。開示された方法及びシステムは、ディジタル信号プロセッサにおいて改善されたブース乗算を実行する。本方法及びシステムは、第1の複数のビットを含む被乗数、A、と第2の複数のビットを有する乗数、B、を決定する。開示された主題は、Bに基数−m(例えば、基数−4)ブース・レコーディングを実行して、乗算係数の第1の事前に決められた整数値、“n”、を生成する。“n”個の乗算係数は、第2の複数のビットの数のある割合(例えば、基数−4乗算に対して、半分)を近似する。本方法及びシステムは、Aの乗数として“n”個の乗算係数を使用して“n”個の部分積をさらに生成する。それから、乗算ツリーは、基数−mブース・エンコーディングを使用して形成される。負の乗算係数の事象では、本発明は、Aの第1の複数のビットを反転させ、そして2の補集合を完成させるために付着の(sticky)“1”を付けることによりAの2の補集合を形成することを含む。それに加えて、本プロセスは、削減の複数のステージにおいて乗算係数を事前に決められた長さのサム成分とキャリー成分の集合へと削減することを含む。
開示された主題のこれらの利点及び他の利点、同様にさらなる新規な特徴は、本明細書中に提供される説明から明白であろう。このサマリーの意図するものは、権利を主張する主題の包括的な説明ではなく、むしろ主題の機能のうちのあるものの短い概要を提供することである。ここに提供される別のシステム、方法、特徴、及び利点は、次に続く図面及び詳細な説明を考察することで当業者に明らかになるであろう。全てのそのようなさらなるシステム、方法、特徴、及び利点が、本明細書の範囲内に含まれ、添付された特許請求の範囲内であることが、意図されている。
詳細な説明
開示された主題の特徴、本質、及び利点は、図面を使用して以下に述べる詳細な説明から、さらに明確になるであろう。図面では、同じ参照符号は一貫して対応するものを特定する。
ここに示される変形されたブース乗算器に関する開示された主題は、マルチ・スレッド処理を伴うアプリケーションを含む、非常に広範囲の様々なディジタル信号処理アプリケーションの使用を有する。1つのそのようなアプリケーションは、電気通信において見られ、そして特に、1又はそれより多くのディジタル信号処理回路を利用する無線ハンドセットにおいて見られる。その結果、下記の図1から図3は、電気通信DSPを説明し、その中では本教示は、有用であり得る。図4は、乗算処理のためのデータ・パスを述べ、その中では拡張ブース乗算演算の本開示が機能することができる。しかしながら、開示された主題が適用されることができるアプリケーションの実質的に無限の集合のうちの1つだけを、ここに説明されるインプリメンテーションが提供することを、忘れずにおくことである。
そのような無線ハンドセットがどのように使用されることができるかを説明する目的のために、図1は、開示される中断処理方法及びシステムの本実施形態を実行することが可能である通信システム10の単純化したブロック図を与える。送信機ユニット12において、データは、データ・ソース14から送信(TX)データ・プロセッサ16に、一般的にブロックで送られ、その送信データ・プロセッサ16はデータをフォーマット化し、コード化し、そして処理して、1又はそれより多くのアナログ信号を生成する。アナログ信号は、次に送信機(TMTR)18に与えられ、それはベースバンド信号を変調し、フィルタし、増幅し、そしてアップコンバートして、変調された信号を生成する。変調された信号は、次に1又はそれより多くの受信機ユニットにアンテナ20を介して送信される。
受信機ユニット22において、送信された信号は、アンテナ24により受信され、そして受信機(RCVR)26に与えられる。受信機26内で、受信された信号は、増幅され、フィルタされ、ダウンコンバートされ、復調され、そしてディジタル化されて、インフェーズ(I)と(Q)サンプルを生成する。サンプルは、次に受信(RX)データ・プロセッサ28によりデコードされそして処理されて、送信されたデータを再生する。受信機ユニット22におけるエンコーディングと処理は、送信機ユニット12において実行されたコーディングと処理に相補的な方法で実行される。再生されたデータは、次にデータ・シンク30に与えられる。
上に記述された信号処理は、音声、ビデオ、パケット・データ、メッセージ送信、及び1方向の他のタイプの通信をサポートする。双方向通信システムは、2方向のデータ送信をサポートする。しかしながら、他の方向に対する信号処理は、単純化のために図1には示されない。通信システム10は、符号分割多元接続(CDMA:code division multiple access)システム、時分割多元接続(TDMA:time division multiple access)通信システム(例えば、GSMシステム)、周波数分割多元接続(FDMA:frequency division multiple access)通信システム、又は地上回線を経由して複数のユーザ間の音声とデータ通信をサポートする他の多元接続通信システムであり得る。ある特定の実施形態では、通信システム10は、W−CDMA規格に準拠するCDMAシステムである。
図2は、図1の送信データ・プロセッサ16と受信データ・プロセッサ28として機能することができるDSP40アーキテクチャを図示する。もう一度、DSP40がここに示された教示及び概念を効果的に使用することができる非常に多くの可能性のあるディジタル信号プロセッサ実施形態のうちの1つの実施形態を表すだけであることを、強調する。DSP40において、それゆえ、スレッドT0:T5(参照番号42から52)は、別のスレッドからの命令の集合を含む。回路54は、命令アクセス・メカニズムを表し、そしてスレッドT0:T5に対する命令を取り出す(fetch)ために使用される。回路54のための命令は、命令キュー56へとキューされる。命令キュー56中の命令は、プロセッサ・パイプライン66(下記を参照)へと発せられるように準備されている。命令キュー56から、1つのスレッド、例えば、スレッドT0、は、発行論理回路58によって選択されることができる。選択されたスレッドのレジスタ・ファイル60が、読み出され、そして読み出されたデータは、スロット0からスロット3に対する実行データ・パス62へ送られる。スロット0からスロット3は、この例では、本実施形態において用いられるパケット・グループ化組み合わせを規定する。
実行データ・パス62からの出力は、DSP40の動作からの結果を戻すために、レジスタ・ファイル書込み回路64に行き、しかもその回路は個々のスレッドT0:T5を適応させるように構成される。そのように、回路54からのデータ・パス及び様々なスレッドに応じて分けられるレジスタ・ファイル書込み回路64の前のデータ・パスは、処理パイプライン66を形成する。
本実施形態は、6個までのスレッド、T0:T5、を有する1つのマイクロプロセッサを使用するヘテロジーニアス素子プロセッサ(HEP:heterogeneous element processor)の混成タイプを使用することができる。プロセッサ・パイプライン66は、6つのステージを有し、回路54からレジスタ60と64へのデータ項目を取り出すために必要なプロセッサ・サイクルの最小数を組み合わせる。DSP40は、プロセッサ・パイプライン66内の異なるスレッドT0:T5の命令を同時に実行する。すなわち、DSP40は、6個の独立したプログラム・カウンタ、プロセッサ・パイプライン66内のスレッドT0:T5の命令を識別する内部タッギング・メカニズム、及びスレッド・スイッチをトリガするメカニズム、を与える。スレッド・スイッチ・オーバーヘッドは、ゼロからほんの数サイクルまで変化する。
DSP40は、それゆえ、広範囲の様々な信号、画像、及びビデオ処理アプリケーションにわたり高性能かつ低電力の目的で設計される汎用ディジタル信号プロセッサを提供する。図3は、DSP40アーキテクチャの簡単な全体像を与え、開示された主題の1つの表現のために関係する命令セット・アーキテクチャのある複数の態様を含む。DSP40アーキテクチャのインプリメンテーションは、インターリーブされたマルチスレッディング(IMT:interleaved multithreading)をサポートする。この実行モデルでは、ハードウェアは、パイプライン中の異なるスレッドからの命令をインターリーブすることにより複数のハードウェア・スレッドT0:T5の同時の実行をサポートする。この特徴は、DSP40が高いコア及びメモリ利用を維持したままで、アグレッシブなクロック周波数を含むことを可能にする。IMTは、費用のかかる補償機構、例えば、適切でない実行、大規模な転送ネットワーク、及びその他、を必要とせずに高スループットを提供する。
図3は、より一層具体的に、開示された主題の教示を利用することができる1つのスレッドに対するプログラミング・モデルの1つの実施形態のアーキテクチャ・ブロック図を与える。ブロック図70は、AXIバス74からの命令を受け取る非公開命令キャッシュ72を図示し、その命令はスレッドT0:T5のシーケンサ76、ユーザ制御レジスタ78、及び管理制御レジスタ80への混合の16−ビットと32−ビット命令を含む。シーケンサ76は、S−パイプ・ユニット82、M−パイプ・ユニット84、Ld−パイプ86、及びLd/St−パイプ・ユニット88への混成タイプの2−方向スーパースカラ命令と4−方向VLIW命令を与える。AXIバス74は、スレッドT0:T5へのLD/ST命令を共有データ・キャッシュ90と同様に通信する。外部DMAマスタ96を用いて、共有データTCM98は、LD/ST命令を通信し、そのLD/ST命令は、スレッドT0:T5へとさらに流れる。AHB周辺バス100から、MSM特定コントローラ102は、T0:T5を有する中断ピンを通信し、それは中断コントローラ命令、デバッグ命令、及びタイミング命令を含む。グローバル制御レジスタ104は、スレッドT0:T5と制御レジスタ命令を通信する。
図3のM−パイプ84において述べたように単一スレッド処理のアーキテクチャ内では、高速数学処理が生じる。乗算ブロック118内で乗算のタイミングは、M−パイプ84の演算が適正に行われることを確実にするために重要である。同様のタイミングの考慮は、開示された主題が適用されることができるいずれのアプリケーションにおいても存在する可能性が高い。したがって、ブース乗算処理がそれを用いて行われる速度は、ここに開示される題材の特徴的な新奇な態様を提供する。
これらの時間制約を満足させるために、開示された主題は、2つの数の積、AxB、又は2つの数の積の加法の逆、−AxB、を実行することが可能なブース乗算を使用する。それに加えて、本明細書は、ブース削減ツリー及び符号拡張プロセスにおいて丸め定数を含ませるための方法を含み、それは電力及び領域を削減する。その上、本開示のブース乗算処理は、乗算が符号なしオペランドに実行されるとしても、符号付き数値になる部分積を必要とすることがある。ある複数の部分積が負であり得るので、ブース乗算を実行するための2の補集合回路構成は、乗算結果の負の値を生成するように、従来のブース乗数への変更を可能にする。−(AxB)を効率的に生成する能力は、形式[Z+−(AxB)]の演算を含む多くのDSPアプリケーションに大きな影響を有する。これらの乗算累算演算、すなわちMAC演算は、本開示により使用可能にされる。
図4は、開示された主題の様々な実施のためのデータ・パス図180を表し、そして本ブース乗算処理がそこで行われることができるデータ・フローを設定する。特に、乗算ブロック118は、RsとRt入力を受け取る。乗算ブロック118の内部にあるものは、乗算ユニットM0:M3である。特に、M0乗算器ユニット182、M1乗算器ユニット184、M2乗算器ユニット186、及びM3乗算器ユニット188は、RsとRt入力を別々に受け取って、シフト/符号拡張ユニット148への、それぞれ、S0C0(すなわち、サム0とキャリー0)、S1C1、S2C2、及びS3C3出力を生成する。シフト/符号拡張ユニット148は、これらの中間冗長積の論理シフトと符号拡張を実行する責任がある。
乗算器ブロック118は、したがって、M−パイプ84に対する命令に関連する乗算を実行する。これらの命令は、16×16乗算処理を基底として使用する複合命令として取り扱われることができる。乗算器ブロックは、4個の16×16乗算器ユニットM0:M3から構成される。各乗算器ユニットM0:M3は、複数のモードで機能することが可能であり、多種多様なM−タイプ命令をサポートする。符号付きモードと符号なしモードとがサポートされる。乗算器は、減算がその積に実行される必要があるケースでは、それらの積の2の補数を同様に生成することが可能である。
開示された主題を用いて、M0:M3乗算器182から188は、基数−4ブース・エンコーディングを使用する。符号なしモードでは、それらは、符号ビットとして機能する追加の17番目のビットを有する17×17乗数に似ている。倍精度乗算(すなわち、32×32乗算)を除いて、全ての他の乗算命令は、“符号付き×符号付き”又は“符号なし×符号なし”である。倍精度32×32乗算及び複数の16×16乗数を使用する32×16乗算は、同様に“符号付き×符号なし”乗算と“符号なし×符号付き”乗算とを必要とする。これらのモードの全ては、M0:M3乗算器182から188の被乗数と乗数オペランド(operand)の符号ビットを制御することによりサポートされる。
シフト/符号拡張ユニット148からの出力は、マルチ−オペランド加算器150に行き、そしてR0:R3入力へと分解される。マルチ−オペランド加算器150は、これらのR0:R3入力を受け取り、そして圧縮と累積ステージのセットの後で、最終的にRdd出力170を与える。
データ・パス180は、4つのフェーズへと分割可能であるように理解されることができる。まず第1に、データ配送フェーズでは、RsとRtソース・レジスタからのデータは、乗算ブロック118に供給される。乗算ブロック118の中では、ソース・オペランドからの16−ビット・ハーフ・ワードは、命令に基づいて4個のM0:M3乗算器182から188に配送される。次に、部分積生成及び削減(reduction)ベクトル加算又は減算が行われる、そこでは、M0:M3乗算器182から188は、基数−4ブース・エンコーディングを使用して部分積を生成し、そして出力の冗長対へ削減を使用してそれらを削減する。
マルチ−オペランド削減フェーズの間、乗算ブロック118からの冗長出力は、マルチ−オペランド加算器150へ入力され、その加算器はこれらの入力とオプションの累算値/丸めた値を2組の冗長出力へと削減する。最後に、加算/サチュレーション(saturation)フェーズでは、冗長出力は、キャリー増殖(propagate)加算を使用して解かれ、そしてサチュレーションは、適用可能であるときに実行される。
開示された主題は、したがって、そのような値の変形されたブース乗算を規定する。そのような複素値を用いて、入力は、下位ハーフワードの実数16−ビット値と上位ハーフワードの虚数16−ビット値とを有する。乗算結果は、オプションとして0−1ビットだけスケーリングされる。丸め定数がそれぞれの実数和と虚数和に加算される。実数部と虚数部は、32ビットに個別にサチュレートされる。32−ビット結果のそれぞれの上位16−ビットは、32−ビット行先レジスタにパック(pack)される。
この例では、S0:S3とC0:C3は、33−ビット幅である。16×16乗算の出力が32−ビットで表わされることが可能であるとしても、ある複数の命令は、符号なしモードで実行し、そして追加ビットが符号拡張を容易にするために符号ビットとしてこのケースでは使用される。S0:S3とC0:C3は、シフト/符号拡張ユニット148を経由して渡される。S0:S1とC0:C1は、パッキングの前に、最終結果の低次の32−ビットを与える。これは、結果の実数部を形成する。これらの4つの数は、命令で指定される場合には、1−ビットの左シフトによりオプションとしてスケーリングされる。
これらの数のシフトされたバージョンは、R0:R3と名付けられる。R0:R3は、マルチ−オペランド加算器150を経由して渡される。マルチ−オペランド加算器150からの出力は、サチュレーション/加算ユニット170に流れる。
図5は、開示された主題に適用可能な変形された16×16基数−4ブース・乗算ツリーを提示することにより、開示された主題のブース乗算処理を理解することを容易にする。図5のドット図200は、開示された主題の16×16(乗算器上で)乗数についての基数−4ブース・エンコーディングを概念的に図示し、それは9個の部分積202,204,206,208,210,212,214,216,と218とを結果としてもたらす。9個の部分積は、2個の33−ビット冗長出力に削減され、それらは2レベルの3:2削減と引き続く1レベルの4:2圧縮からなる削減ツリーを使用するS0:S3及びC0:C3である。32−ビットの精度は16×16乗算のために十分であるが、33番目のビットは、符号なし乗算のケースにおける符号ビットとして機能するように同様に保存される。33番目の列からの追加のキャリー−アウト・ビットは、同様に、符号拡張を支援するための乗算器からの出力である。
さらに図5を参照して、各部分積行220から236は、横方向に示される被乗数ビット238の倍数である。列番号は、図5の上部に示されている。乗数ビット240は、縦方向に示され、そしてこれらのビットは、部分積行220から236を形成するための乗算係数を生成するために記録される。図5に示される信号n0からn7は、付着の(sticky)“1”を示し、それは負の加重を受ける部分積行220から236に付加される。これらは、積の最終反転を必要としない乗算を扱うために十分である。乗数における−(AxB)陰関数表示のケースを取り扱うために、追加の信号n8が与えられる。
乗算演算の積が乗数ツリー内で非明示的に減算されるときに、信号s0からs7は、符号拡張を取り扱う。AとBとが、それぞれ被乗数と乗数であると仮定される場合に、基数−4ブース・エンコーディングは、乗数オペランドBの3個のビットのグループをエンコーディングすることにより、そして集合{−2A,−A,0,A,2A}から部分積を選択するためにこのエンコーディングを使用することにより、進められる。ここで、最終積(AxB)が減算される必要がある場合には、それはAx−(B)を加算することに等しい。乗数は、ここでBから(−B)に変更される。
図6は、開示された主題を実行するためのブース・レコーダ回路250を提供する。ブース・レコーダ・セル250は、XOR256でのLSB入力254からインバータXOR260でのMSB入力258までの範囲の乗数グループ入力252を含む。MSB入力258は、ブース・レコーダ回路250からの“neg”出力を同様に与える。XOR256からの出力は、ブース・レコーダ250からのAx1信号、Aを表し、インバータXOR264への入力を同様に与える。インバータXOR260からの出力は、インバータXOR264への入力を同様に与えて、ブース・レコーダ回路250からのAx2信号、2Aを生成する。XOR264は、ブース・レコーダ回路250からの否定“neg”を指示するための出力を与える。そのように、ブース・レコーダ回路250は、乗数Bの3−ビットを検査し、そして信号“A”,“2A”と“neg”へとそれらを記録する。減算が実行される必要があるとき、“neg”信号は、部分積を生成するために反転され、それは積、AxB、の2の補数を生成する。
図7は、開示された主題を用いる図6の論理セルに対するビット・グループ化の説明を与える。特に、基数−4ブース・レコーディングは、16−ビット乗数Bから9個の乗算係数を生成し、それはAの倍数として使用され、9個の部分積を生成する。0から8までの範囲の“n”に対して、図7の表は、ビット・グループB[2n+1:2n−1]に対するブース乗算係数を決定する。本実施形態のレコーディング方式に関して、B[−1]は、ゼロであると仮定される。B[16]とB[17]は、Bが符号なしの数である場合にゼロであり、そしてBが符号付きの数である場合にBの符号拡張である、すなわち、B[17]=B[16]=B[15]。乗算係数は、3つの信号へと記録される:それはXOR256からのA、インバータXOR264からの2A及びMBS入力262からの“neg”である。そのように、Aに対する乗算係数が−2であるとき、信号2Aとnegは、ハイである。同様に+1に対して、Aだけがハイであり、そして+/−0に対して全ての3つの信号は、ローである。しかも、積AxBを生成することに関して、最上位ビット・グループに対する乗算係数、B[17:15]は、常に正であることに、注意する。ここで、B[17:15]に対する可能なビット・グループは、Bが符号なしの場合には[000]又は[001]であり、そしてBが符号付きの場合には[000]又は[111]であるだけである。図7から、これらの全てのグループは、正の乗算係数に導く。本明細書中に記述されるブース乗算マルチプレクサは、それゆえ、部分積を生成するためにセット{0,A,2A}から選択することができる。
図8は、−(AxB)積のためのブース・レコーディング論理回路を実装するためのブース・レコーダ回路270を提供する。ブース・レコーダ・セルは、XOR276でのLSB入力274からインバータXOR280でのMSB入力278までの範囲にわたる乗数グループ入力272を含む。“減算”入力282とMSB入力278は、XOR284へ流れる。XOR276からの出力は、ブース・レコーダ270からの被乗数A信号を表し、それに加えてインバータXOR286への入力を与える。インバータXOR280からの出力は、ブース・レコーダ回路270からの2A信号を生成するためにインバータXOR286への入力を同様に与える。XOR284は、ブース・レコーダ回路270からの“neg”出力を与える。
図8は、それゆえ、被乗数Aと乗数Bの積の負の値が、AとBの負の値との積を計算することによって得られるという特性を利用する。これは、それゆえ、最初にAxBの積を計算し、そして次に−(AxB)を得るために積の2の補数を計算する公知の2ステップ・プロセスを回避する。ブース・レコーダ回路270は、乗算のステージと並行して否定を実行する。
積の2の補集合を作ることは、−(AxB)がAx(−B)に等価であるという事実を利用する。この例では、オペランド(−B)は、乗数として扱われる。乗数として(−B)を使用して生成されたブース乗算係数は、乗数オペランドとしてBを使用して生成された乗算係数に対応する加法の逆である。積AxBを計算するために使用するブース乗算ハードウェア構成は、ブース乗算係数のそれぞれの符号を反転することによりAx(−B)を計算するために再使用されることが可能である。この符号は、ブース・レコーダ回路270の“neg”信号によって決定され、それは積を否定する際に“−neg”信号を生成するためにレコーディング・ハードウェアに対する変更である。
ブース・レコーダ回路270において、XORゲート284は、非クリティカル・パス上にあり、そしてクリティカル・パスに寄与しない。その代りに、クリティカル・パスは、信号Aと2Aを生成するための乗数ビットを含む。部分積のための乗算係数の符号を反転させるこのプロセスは、最終積行の符号が負であり得るケースを導入する。これゆえ、信号“n8”は、上記の図5に見られるように、乗算ツリーに追加されることができる。行を追加することは、追加の行を適応させるために削減ステージを変更することにより削減されることができる。これは、しかしながら、追加の遅延と関係するハードウェアを意味することがある。
ここに示されたプロセスは、削減ステージにおいて追加の行を含まないが、その代わりに乗算ツリーへの論理的な変更を行うことにより部分積の既存の9行中へとn8信号を吸収することに焦点を合わせている。乗算ツリーに追加される遅延は、最小である。
形式PProw_columnの各“ドット”を参照する表記は、開示された主題のこの態様を理解することを求める際に役立つ。図9を参照して、乗算ツリー中の各バイナリ・ビット(ドット)は、その固有の加重と行列中の位置とを有する。同じ列の全てのビットは、同じ加重を有し、そしてその加重が維持される限り任意の順番で削減されることができる。行は、0で始まり上から下に番号を付けられ、そして列は、0で始まり右から左に番号を付けられる。この表記を使用して、n8は、PP10_16に等価である。PP0_16,PP0_17,PP0_18とPP0_19は、基数−4ブース・エンコーディングにより公知のスケーリングと符号拡張プロセスとを使用して生成される。そのようなアプローチを用いて、n8を乗算ツリーの中へと吸収することが可能である。そのように、符号付き乗算モードと符号なし乗算モードの両方においてPP0_16,PP0_17,PP0_18とPP0_19に対する全ての可能性のあるビット値を解析することによって、n8がその中に挿入されることができる位置は、全ての可能性のあるブース乗算係数に対して決定することが可能である。
図9は、部分積行0の4つの最上位ビットに対する値の範囲、そして信号n8をこの4−ビット・フィールドに追加する効果を列挙する。MUX構成は、n8がハイであるときに、4−ビット・フィールドの変更された値を選択することを認める。言い換えると、開示されたプロセスは、信号n8が列16のところに追加される、すなわち、PP0_16である場合に、部分積行0の4つの最上位ビットの値を事前に計算し、そしてこの変更された4−ビット・フィールドを削減ステージにおいて使用する。MUX構成は、一旦PP0_16(表中に“a”として示される)が標準ブース多重送信回路構成を使用して計算されるように最適化される。n8に基づく変更された4−ビット・フィールドは、この後で最小遅延で解かれる。乗算処理の残りは、積AxBを生成するための通常の乗算フローと同じである。
図10は、開示された主題のさらなる態様に対して利用可能な変更された16×16基数−4ブース乗算ツリーを示す。図10から、本開示の重要な符号拡張と定数丸め機能とを理解することが可能である。16×16乗数の削減ステージへの変更は、9個の部分積行を通るクリティカル・パスを最小にし、そしてその積が冗長サム−キャリー・フォーマットで利用可能であるときに、符号拡張を効率的に与える。図10は、16×16基数−4ブース乗数のための変更された削減ツリー304を示す。変更された削減ツリー304は、符号付きオペランドと符号なしオペランドを適応させ、そして積を否定する可能性を有する。
削減の第1ステージは、全加算器の3行を使用して9行を6行に削減する。削減の第2ステージは、全加算器の2行を使用して6行を4行に削減する。削減の第3ステージと最終ステージは、4:2マルチ−オペランド加算器のある行を利用して、4行を最終の冗長サムとキャリー行へと削減する。サムとキャリーの32ビットが16×16積を表示するために十分であるけれども、追加ビットは、符号拡張が符号なし乗算に対して正しく取り扱われることを確実にする。
図10は、積を形成する下位の32ビットよりもすぐ上位である列306をさらに示す。本明細書は、最終部分積行308のための符号ビットs8を導入するために列#32から上方のブース乗算ツリーを変更する。この符号ビットs8は、積が符号拡張を必要としない場合には、必要とされない。ここで、部分積行8の正しい符号を保存するために、プロセスは、1ビットだけ部分積行308を拡張することを含む。#32よりも大きい列は、削減の最終ステージまで影響されない。そのような点において、信号〜s8は、列#31からのキャリー−アウトとともに変換し、そして“c”として示されるキャリー−アウト310を生成する。
最終積は、上方への行#33から1要素拡張にキャリー−アウト“c”310を加算することにより形成される。その効果は、符号としてcを有する最終積のサム成分を符号拡張するためであり、一方で最終積のキャリー成分はゼロ−拡張である。これらのステップは、サム成分とキャリー成分の両方を符号拡張する必要性を排除する。例えば、16×16乗算が32−ビット積への64−ビット値の累算を必要とするMAC演算の一部である場合には、64−ビット値に32−ビット積を加算する前に、32−ビット積を64−ビットに符号拡張することが、必要とされるはずである。中間32−ビット積が冗長形式で残され、そしてここに提示された符号拡張プロセスが適用される場合に、31−ビットにわたりキャリー成分を符号拡張するために使用する複数のMUXを排除することの可能性のために、相当量の電力節約が生じ得る。
再び図10を参照して、本明細書は、乗数、Bに丸め定数を加算する能力をさらに提供する。DSP演算において16×16乗算に対する一般的丸め定数は、0×8000である。16×16乗算の積を丸めることは、一般的な演算であり、それは2ステップ演算として典型的に実行される、ここで、乗数が積を生成するために最初に使用され、そして次に丸め定数がその積に加算される。
上に記述された表記を使用すると、図10ではPP8_15が0であることに注意する。乗算行列中のこのビット位置に“1”を挿入することにより、最初に積を生成しそして次にその積に値0×8000を加算することにより求められるはずの結果と同じ結果を生成することが可能である。このプロセスは、しかもクリティカル・パスにいかなる待ち時間も追加しない。
乗算ブロック118中のハードウェアが乗算の積に1つの累算−オペランドを加算することが可能であるだけの能力に制限される場合には、乗算の積が丸められる必要があるときに累算−オペランドを有する丸め定数をMUXすることが、一般的である。これは、乗算の積についての丸め演算と累算演算との両方を単一ステップで実行することを困難にさせる。しかし、ここに開示されたプロセスを使用することは、そのような制限を排除する。
要約すると、開示された主題は、設計のためのプロセス及びディジタル信号プロセッサの使用を提供し、通信(例えば、CDMA)システムにおける送信を処理することを含む。開示された方法及びシステムは、ディジタル信号プロセッサにおいてブース乗算を実行するための拡張された削減ツリー回路構成を有するブース乗算器を含む。本方法及びシステムは、第1の複数のビットを含む被乗数、A、と第2の複数のビットを有する乗数、B、を決定する。開示された主題は、Bに基数−m(例えば、基数−4)ブース・レコーディングを実行して、乗算係数の第1の事前に決められた整数値、“n”、を生成する。“n”個の乗算係数は、第2の複数のビットの個数の半分を近似する。本方法及びシステムは、Aの乗数として“n”個の乗算係数を使用して“n”個の部分積をさらに生成する。それから、乗算ツリーは、基数−mブース・エンコーディングを使用して形成される。負の乗算係数の事象では、本発明は、Aの第1の複数のビットを反転させる、そして2の補集合を完成させるために付着の“1”を付けることによりAの2の補集合を形成することを含む。それに加えて、本プロセスは、削減の複数のステージにおいて乗算係数を事前に決められた長さのサム成分とキャリー成分の集合へと削減することを含む。
本発明は、変形されたブース乗数の技術的な利点をさらに提供し、それは形式[Z+−(AxB)+丸め定数]のMAC演算において使用されることが可能である。この乗数は、(a)ブース乗算係数を否定してそして余分な付着のビットを削減ツリー中へと吸収することにより、(b)丸め定数を削減ツリーへと詰め込む場所を見つけることにより、そして(c)冗長サムの符号拡張を必要とするだけの符号拡張プロセスを使用することにより、遅延、電力、及びハードウェアを最小にする。
その上、本明細書中に記述された処理の特徴及び機能は、様々な方式で実施されることができる。例えば、DSP40が上記の演算を実行することがあるだけでなく、本実施形態は、用途特定集積回路(ASIC:application specific integrated circuit)、マイクロコントローラ、マイクロプロセッサ、又は本明細書中に記述された機能を実行するために設計された他の電子回路、で実施されることができる。好ましい実施形態のこれまでの説明は、それゆえ、権利を主張する主題を当業者が制作すること又は使用することを可能にするために提供される。これらの実施形態への様々な変形は、当業者には容易に明らかにされるであろう、そして本明細書中で規定される一般的な原理は、革新的な能力を使用することなく他の実施形態に適用されることができる。そのように、権利を主張する主題は、本明細書に示された実施形態に限定するように意図されるのではなく、本明細書中に開示された原理と新奇な特徴に整合する最も広い範囲に一致する。
本実施形態を実行することが可能である通信システムの単純化したブロック図である。 本実施形態の教示を実行するためのDSPアーキテクチャを図示する。 開示された主題の技術的な利点を提供するディジタル信号プロセッサの1つの実施形態のアーキテクチャ・ブロック図を与える。 開示された主題の様々な実行のためのデータ・パス図を表す。 開示された主題に適用可能な変形された16×16基数−4ブース・乗算ツリーを表す。 開示された主題のためのブース・レコーダを実装するための論理セルを与える。 開示された主題を用いる図7の論理セルに対するビット・グループ化の説明を与える。 −(AxB)積のためのブース・レコーディング論理回路を実装するための論理セルを表す。 開示された主題がブース乗算において引き算をどのようにして取り扱うかの表である。 開示された主題のさらなる教示にしたがった16×16ブース乗算削減ツリーを示す。

Claims (24)

  1. ディジタル信号プロセッサにおいてブース乗算を実行するための方法であって、
    前記ディジタル信号プロセッサによって、第1の複数のビットを備える被乗数、A、と第2の複数のビットを備える乗数、B、とを決定すること;
    前記ディジタル信号プロセッサによって、Bに基数−mブース・レコーディングを実行して、乗算係数の第1の事前に決められた個数、n、を生成すること、ここで、前記n個の乗算係数は前記第2の複数のビットの個数の半分を近似する;
    前記ディジタル信号プロセッサによって、Aの乗数として前記n個の乗算係数を使用してn個の部分積を生成すること;
    負の乗算係数の事象では、前記ディジタル信号プロセッサによって、Aの前記第1の複数のビットを反転させ、そして2の補集合を完成させるために付着の(sticky)“1”を付けることによりAの2の補集合を形成すること;
    前記ディジタル信号プロセッサによって、削減の複数のステージにおいて前記部分積を事前に決められた長さのサム成分及びキャリー成分の集合へと削減すること;及び
    前記ディジタル信号プロセッサによって、符号拡張されたサム成分とゼロ−拡張されたキャリー成分に基づいてAとBとの積を生成すること;
    を具備し、前記符号拡張は、1要素拡張にキャリー−アウトを加算することである、方法。
  2. 前記被乗数、A、と乗数、B、とを決定することは、16×16乗数を使用してAとBとを決定することをさらに具備する、請求項1の方法。
  3. 前記乗算係数の加法の逆を決定することにより乗数として負のBを設定することによってAとBとの負の積を決定すること;及び
    形式[Z+−(A×B)]の加数として前記積を生成すること、
    をさらに具備する、ここで、Zは前記ディジタル信号プロセッサにおいて累算されようとしている値を表す、請求項1の方法。
  4. 前記部分積のうちの少なくとも1つの事前に決められたビットに付着の“1”を挿入することによってAとBとの乗算に丸め定数を加えることをさらに具備する、請求項1の方法。
  5. Bに基数−mブース・レコーディングを実行することは、Bに基数−4ブース・レコーディングを実行して、9個の乗算係数を生成することをさらに具備する;
    n個の部分積を生成することは、Aの倍数として前記9個の乗算係数を使用して9個の部分積を生成することをさらに具備する;及び
    前記部分積を事前に決められた長さのサム成分及びキャリー成分の集合へと削減することは、前記部分積を複数の32−ビットのサム成分とキャリー成分へと削減することを更に具備する、請求項1の方法。
  6. MAC演算の間に64−ビット値累算の一部としてブース乗算を実行すること、
    をさらに具備する、請求項1の方法。
  7. ディジタル信号プロセッサにおいてブース乗算を実行するために前記ディジタル信号プロセッサに関係する演算のためのシステムであって、前記システムは、
    第1の複数のビットを備える被乗数、A、と第2の複数のビットを備える乗数、B、とを決定するように構成された処理回路構成;
    Bに基数−mブース・レコーディングを実行して、乗算係数の第1の事前に決められた個数、n、を生成するように構成された乗算器ブロック、ここで、前記“n”個の乗算係数は前記第2の複数のビットの個数の半分を近似する;
    Aの乗数として前記“n”個の乗算係数を使用して“n”個の部分積を生成するように構成された、前記乗算器ブロックに関係する複数の乗算器ユニット;
    負の乗算係数の事象では、Aの前記第1の複数のビットを反転させ、そして2の補集合を完成させるために付着の“1”を付けることによりAの2の補集合を形成するように構成されたインバータ回路構成;及び
    削減の複数のステージにおいて前記部分積を事前に決められた長さのサム成分及びキャリー成分の集合へと削減し、符号拡張されたサム成分とゼロ−拡張されたキャリー成分に基づいてAとBとの積を生成するように構成され、前記乗算器ユニットに関係付けられた削減回路構成
    を具備し、前記符号拡張は、1要素拡張にキャリー−アウトを加算することである、システム。
  8. 前記処理回路構成は、16×16乗数を使用してAとBとを決定するようにさらに構成された、請求項7のシステム。
  9. 前記インバータ回路構成は、前記乗算係数の加法の逆を決定することにより乗数として負のBを設定することによってAとBとの負の積を決定するようにさらに構成され、
    前記システムは、形式[Z+−(A×B)]の加数として前記積を生成するように構成された累算回路構成をさらに具備する、ここで、Zは前記ディジタル信号プロセッサにおいて累算されようとしている値を表す、請求項7のシステム。
  10. 付着の“1”を前記部分積のうちの少なくとも1つの事前に決められたビットに挿入することによってAとBとの乗算に丸め定数を加えるように構成されたビット挿入回路構成をさらに具備する、請求項7のシステム。
  11. 前記乗算器ブロックは、Bに基数−4ブース・レコーディングを実行して、9個の乗算係数を生成するようにさらに構成され、;
    前記乗算器ユニットは、Aの倍数として前記9個の乗算係数を使用して9個の部分積を生成するようにさらに構成され、;
    前記削減回路構成は、前記部分積を複数の32−ビットのサム成分とキャリー成分へと削減するようにさらに構成される、
    請求項7のシステム。
  12. MAC演算の間に64−ビット値累算の一部としてブース乗算を実行するように構成された回路構成をさらに具備する、請求項7のシステム。
  13. 個人電子デバイスをサポートする演算のためのディジタル信号プロセッサであって、前記ディジタル信号プロセッサはあるディジタル信号プロセッサにおいてブース乗算を実行し、前記ディジタル信号プロセッサは、
    前記ディジタル信号プロセッサによって、第1の複数のビットを備える被乗数、A、と第2の複数のビットを備える乗数、B、とを決定するための手段;
    前記ディジタル信号プロセッサによって、Bに基数−mブース・レコーディングを実行して、乗算係数の第1の事前に決められた個数、n、を生成するための手段、ここで、前記n個の乗算係数は前記第2の複数のビットの個数の半分を近似する;
    前記ディジタル信号プロセッサによって、Aの乗数として前記n個の乗算係数を使用してn個の部分積を生成するための手段;
    負の乗算係数の事象において、前記ディジタル信号プロセッサによって、Aの前記第1の複数のビットを反転させ、そして2の補集合を完成させるために付着の “1”を付けることによりAの2の補集合を形成するための手段;
    前記ディジタル信号プロセッサによって、削減の複数のステージにおいて前記部分積を事前に決められた長さのサム成分及びキャリー成分の集合へと削減するための手段;及び
    前記ディジタル信号プロセッサによって、符号拡張されたサム成分とゼロ−拡張されたキャリー成分に基づいてAとBとの積を生成する手段;
    を具備し、前記符号拡張は、1要素拡張にキャリー−アウトを加算することである、ディジタル信号プロセッサ。
  14. 16×16乗数を使用してAとBとを決定するための手段をさらに具備する、請求項13のディジタル信号プロセッサ。
  15. 前記乗算係数の加法の逆を決定することにより乗数として負のBを設定することによってAとBとの負の積を決定するための手段;及び
    形式[Z+−(A×B)]の加数として前記積を生成するための手段、をさらに具備する、ここで、Zは前記ディジタル信号プロセッサにおいて累算されようとしている値を表す、請求項13のディジタル信号プロセッサ。
  16. 付着の“1”を前記部分積のうちの少なくとも1つの事前に決められたビットに挿入することによってAとBとの乗算に丸め定数を加えるための手段をさらに具備する、請求項13のディジタル信号プロセッサ。
  17. Bに基数−4ブース・レコーディングを実行して、9個の乗算係数を生成するための手段;
    Aの倍数として前記9個の乗算係数を使用して9個の部分積を生成するための手段;及び
    前記部分積を複数の32−ビットのサム成分とキャリー成分へと削減するための手段、
    をさらに具備する、請求項13のディジタル信号プロセッサ。
  18. MAC演算の間に64−ビット値累算の一部としてブース乗算を実行するための手段、をさらに具備する、請求項13のディジタル信号プロセッサ。
  19. ディジタル信号プロセッサにおいてブース乗算を実行するためにその媒体中に組み込まれたコンピュータ読取り可能なプログラム・コードを有するコンピュータ使用可能な媒体であって:
    前記ディジタル信号プロセッサによって、第1の複数のビットを備える被乗数、A、と第2の複数のビットを備える乗数、B、とを決定するためのコンピュータ読取り可能なプログラム・コード;
    前記ディジタル信号プロセッサによって、Bに基数−mブース・レコーディングを実行して、乗算係数の第1の事前に決められた個数、n、を生成するためのコンピュータ読取り可能なプログラム・コード、ここで、前記n個の乗算係数は前記第2の複数のビットの個数の半分を近似する;
    前記ディジタル信号プロセッサによって、Aの乗数として前記n個の乗算係数を使用してn個の部分積を生成するためのコンピュータ読取り可能なプログラム・コード;
    負の乗算係数の事象において、前記ディジタル信号プロセッサによって、Aの前記第1の複数のビットを反転させ、そして2の補集合を完成させるために付着の “1”を付けることによりAの2の補集合を形成するためのコンピュータ読取り可能なプログラム・コード;
    前記ディジタル信号プロセッサによって、削減の複数のステージにおいて前記部分積を事前に決められた長さのサム成分及びキャリー成分の集合へと削減するためのコンピュータ読取り可能なプログラム・コード;及び
    前記ディジタル信号プロセッサによって、符号拡張されたサム成分とゼロ−拡張されたキャリー成分に基づいてAとBとの積を生成するためのコンピュータ読取り可能なプログラム・コード;
    を具備し、前記符号拡張は、1要素拡張にキャリー−アウトを加算することである、コンピュータ使用可能な媒体。
  20. 16×16乗数を使用してAとBを決定するためのコンピュータ読取り可能なプログラム・コード、
    をさらに具備する、請求項19のコンピュータ使用可能な媒体。
  21. 付着の“1”を前記部分積のうちの少なくとも1つの事前に決められたビットへと挿入することによってAとBとの乗算に丸め定数を加えるためのコンピュータ読取り可能なプログラム・コード、
    をさらに具備する、請求項19のコンピュータ使用可能な媒体。
  22. Bに基数−4ブース・レコーディングを実行して、9個の乗算係数を生成するためのコンピュータ読取り可能なプログラム・コード;
    Aの倍数として前記9個の乗算係数を使用して9個の部分積を生成するためのコンピュータ読取り可能なプログラム・コード;及び
    前記部分積を複数の32−ビットのサム成分とキャリー成分へと削減するためのコンピュータ読取り可能なプログラム・コード、
    をさらに具備する、請求項19のコンピュータ使用可能な媒体。
  23. MAC演算の間に64−ビット値累算の一部としてブース乗算を実行するためのコンピュータ読取り可能なプログラム・コード、をさらに具備する、請求項19のコンピュータ使用可能な媒体。
  24. 前記乗算係数の加法の逆を設定することにより乗数として負のBを設定することによってAとBとの負の積を決定するためのコンピュータ読取り可能なプログラム・コード;及び
    形式[Z+−(A×B)]の加数として前記積を生成するためのコンピュータ読取り可能なプログラム・コードをさらに具備する、Zは前記ディジタル信号プロセッサによって累積されようとしている値を表す、
    請求項19のコンピュータ使用可能な媒体。
JP2008555460A 2006-02-15 2007-02-13 拡張された削減ツリー回路構成を有するブース乗算器 Expired - Fee Related JP5074425B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/356,359 US7797366B2 (en) 2006-02-15 2006-02-15 Power-efficient sign extension for booth multiplication methods and systems
US11/356,359 2006-02-15
US11/355,397 2006-02-15
US11/355,397 US7809783B2 (en) 2006-02-15 2006-02-15 Booth multiplier with enhanced reduction tree circuitry
PCT/US2007/062082 WO2007095548A2 (en) 2006-02-15 2007-02-13 A booth multiplier with enhanced reduction tree circuitry

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011283978A Division JP2012104138A (ja) 2006-02-15 2011-12-26 拡張された削減ツリー回路構成を有するブース乗算器

Publications (3)

Publication Number Publication Date
JP2009527060A JP2009527060A (ja) 2009-07-23
JP2009527060A5 JP2009527060A5 (ja) 2012-02-23
JP5074425B2 true JP5074425B2 (ja) 2012-11-14

Family

ID=38283320

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008555460A Expired - Fee Related JP5074425B2 (ja) 2006-02-15 2007-02-13 拡張された削減ツリー回路構成を有するブース乗算器
JP2011283978A Withdrawn JP2012104138A (ja) 2006-02-15 2011-12-26 拡張された削減ツリー回路構成を有するブース乗算器

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011283978A Withdrawn JP2012104138A (ja) 2006-02-15 2011-12-26 拡張された削減ツリー回路構成を有するブース乗算器

Country Status (4)

Country Link
EP (1) EP1984810B1 (ja)
JP (2) JP5074425B2 (ja)
KR (1) KR101073343B1 (ja)
WO (1) WO2007095548A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797366B2 (en) * 2006-02-15 2010-09-14 Qualcomm Incorporated Power-efficient sign extension for booth multiplication methods and systems
RU2653310C1 (ru) * 2017-05-24 2018-05-07 федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный университет" (ФГБОУ ВО "ВГУ") Устройство для умножения числа по модулю на константу
CN112540743B (zh) * 2020-12-21 2024-05-07 清华大学 面向可重构处理器的有无符号乘累加器及方法
CN117555515B (zh) * 2024-01-11 2024-04-02 成都市晶蓉微电子有限公司 一种用于平衡性能与面积的数字asic串并结合乘法器

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4183008A (en) 1958-05-12 1980-01-08 The United States Of America As Represented By The Secretary Of The Navy Noise making device
JPS62229439A (ja) * 1986-03-31 1987-10-08 Toshiba Corp 並列乗算器
JPH01116764A (ja) * 1987-10-29 1989-05-09 Ricoh Co Ltd 累積加算器
JP3033212B2 (ja) * 1991-01-31 2000-04-17 日本電気株式会社 乗算器
JPH0527948A (ja) * 1991-07-17 1993-02-05 Ricoh Co Ltd 演算装置
JPH06348455A (ja) * 1993-06-14 1994-12-22 Matsushita Electric Ind Co Ltd 乗算における丸め込み方法及び乗算回路
JPH1011267A (ja) * 1996-06-21 1998-01-16 Sharp Corp 乗算器
JP3678512B2 (ja) * 1996-08-29 2005-08-03 富士通株式会社 乗算回路、該乗算回路を構成する加算回路、該乗算回路の部分積ビット圧縮方法、および、該乗算回路を適用した大規模半導体集積回路
EP0840207A1 (en) * 1996-10-30 1998-05-06 Texas Instruments Incorporated A microprocessor and method of operation thereof
JPH10133856A (ja) * 1996-10-31 1998-05-22 Nec Corp 丸め機能付き乗算方法及び乗算器
JPH10333885A (ja) * 1997-05-30 1998-12-18 Sony Corp 乗算回路
JPH11134175A (ja) * 1997-10-29 1999-05-21 Toshiba Corp 乗加減算器及び演算器
US6463453B1 (en) 1998-01-12 2002-10-08 Motorola, Inc. Low power pipelined multiply/accumulator with modified booth's recoder
US6157939A (en) * 1998-06-04 2000-12-05 Integrated Device Technology, Inc. Methods and apparatus for generating multiplicative inverse product
EP0992885B1 (en) * 1998-10-06 2005-12-28 Texas Instruments Incorporated Multiplier accumulator circuits
JP2002157114A (ja) * 2000-11-20 2002-05-31 Hitachi Ltd 乗算器及びそれを搭載した集積回路装置
US7797366B2 (en) * 2006-02-15 2010-09-14 Qualcomm Incorporated Power-efficient sign extension for booth multiplication methods and systems

Also Published As

Publication number Publication date
EP1984810A2 (en) 2008-10-29
JP2009527060A (ja) 2009-07-23
KR20080094812A (ko) 2008-10-24
WO2007095548A2 (en) 2007-08-23
KR101073343B1 (ko) 2011-10-14
JP2012104138A (ja) 2012-05-31
EP1984810B1 (en) 2017-03-22
WO2007095548A3 (en) 2007-11-15

Similar Documents

Publication Publication Date Title
JP5611923B2 (ja) ブース乗算方法及びシステムのための電力効率の良い符号拡張
JP4064989B2 (ja) パック・データの乗加算演算を実行する装置
RU2263947C2 (ru) Целочисленное умножение высокого порядка с округлением и сдвигом в архитектуре с одним потоком команд и множеством потоков данных
US6353843B1 (en) High performance universal multiplier circuit
US7430578B2 (en) Method and apparatus for performing multiply-add operations on packed byte data
US7809783B2 (en) Booth multiplier with enhanced reduction tree circuitry
EP0847551B1 (en) A set of instructions for operating on packed data
Chung et al. A high-performance elliptic curve cryptographic processor over GF (p) with SPA resistance
US8229991B2 (en) Processor core and multiplier that support a multiply and difference operation by inverting sign bits in booth recoding
US20070083585A1 (en) Karatsuba based multiplier and method
US6085213A (en) Method and apparatus for simultaneously multiplying two or more independent pairs of operands and summing the products
JP5074425B2 (ja) 拡張された削減ツリー回路構成を有するブース乗算器
US20040199751A1 (en) Apparatus and method for generating packed sum of absolute differences
WO1999021078A2 (en) A method and apparatus for multi-function arithmetic
Schulte et al. Parallel saturating multioperand adders
HUSSAIN et al. Area–Delay–Power Efficient Carry-Select Adder
Xiang et al. A versatile computation module for adaptable multimedia processors
Abraham et al. Canonic Signed Digit Recoding based RISC Processor Design

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110216

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110823

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20111226

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120626

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: 20120724

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120823

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150831

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

LAPS Cancellation because of no payment of annual fees