JP5611923B2 - ブース乗算方法及びシステムのための電力効率の良い符号拡張 - Google Patents

ブース乗算方法及びシステムのための電力効率の良い符号拡張 Download PDF

Info

Publication number
JP5611923B2
JP5611923B2 JP2011254030A JP2011254030A JP5611923B2 JP 5611923 B2 JP5611923 B2 JP 5611923B2 JP 2011254030 A JP2011254030 A JP 2011254030A JP 2011254030 A JP2011254030 A JP 2011254030A JP 5611923 B2 JP5611923 B2 JP 5611923B2
Authority
JP
Japan
Prior art keywords
bit
partial product
sign
booth
multiplication
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
JP2011254030A
Other languages
English (en)
Other versions
JP2012089144A (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
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2012089144A publication Critical patent/JP2012089144A/ja
Application granted granted Critical
Publication of JP5611923B2 publication Critical patent/JP5611923B2/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
    • 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/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/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/49994Sign extension
    • 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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、ディジタル信号プロセッサにおける数学プロセッサの分野に係わり、そしてより詳しくは、数値の高速乗算を実行するための数学プロセッサにおいて使用されるブース乗算に関する。より具体的には、本発明は、ブース乗算方法及びシステムにおける使用のために符号付きの及び符号のないバイナリ値に対する電力効率の良い符号拡張に関する。
ますます、電子装置及びサポート・ソフトウェア・アプリケーションは、ディジタル信号処理を必要とする。ホーム・シアター、コンピュータ・グラフィックス、医療画像技術及び電気通信技術は、全てディジタル信号処理技術を頼りにしている。ディジタル信号処理は、複雑であるが繰返しアルゴリズムの高速の数学演算を必要とする。多くのアプリケーションは、リアル−タイムの計算を必要とする、すなわち、信号は、時間の連続関数であり、それは数値処理のためにサンプリングされ、そしてディジタルに変換される必要がある。プロセッサは、サンプルが到着するとそのサンプルに個別の演算を実行するアルゴリズムを実行する必要がある。ディジタル信号プロセッサ、すなわち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の値を取ることが可能な乗算因子の集合へとマッピングする。この方法は、そうでなければ生じるはずの部分積の個数をほぼ半分にする利点を提供する。これは、回路の動作中の伝搬遅延に関係し、そしてその実施の複雑性と電力消費に関係するので、回路設計において重要である。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中でブース乗算処理の間に適正な符号拡張のプロセスに対する必要性がある。一般的に、乗算の両方の中間冗長積が、符号拡張されるであろう。
冗長積のサム成分だけが符号拡張される必要がある状況に関して電力効率の良いプロセスに対するさらなる必要性がある。
ブース乗算処理から最終積を生成する際にサム成分とキャリー成分の両方の符号拡張することを避ける必要性がある。
ブース乗算処理の間に中間32−ビット積の部分積を符号拡張することから生じる電力消費を削減するためのさらなる必要性がある。
ブース乗算の符号拡張のフェーズの間に動作している乗算回路の数を減少させることがさらに必要である。
ブース乗算方法及びシステムのために電力効率の良い符号拡張を提供するための技術が開示され、そのプロセスは、パーソナル・コンピュータ、個人ディジタル補助装置、無線ハンドセット、及び類似の電子デバイスのますますエラーに強いソフトウェア・アプリケーションを処理するため、同様にますます増加している関係するディジタル信号プロセッサ速度及びサービス品質のための、ディジタル信号プロセッサの動作とディジタル信号プロセッサ命令の効率的な使用の両方を改善する。
1つの態様によれば、開示された方法及びシステムは、ブース乗算処理のための電力効率の良い符号拡張方法及びシステムを含む。開示された主題は、複数の部分積行を備えるブース乗算ツリーに符号ビットを導入する。その符号ビットは、符号拡張ステップを必要とする該ブース乗算処理の事象において有用である。ここに開示された方法及びシステムは、事前に決められた部分積行の正しい符号を保存するために符号ビットを使用してブース乗算ツリーの事前に決められた部分積行を1要素拡張する(すなわち、その符号が“1”であるときに符号拡張する)能力を含む。符号ビットの信号値を分解する(resolve)ことは、ブース乗算ツリー中に符号拡張ビットを生成することを必然的に伴う。この符号拡張ビットは、キャリー−アウト列中に置かれることができ、ブース乗算処理の積を拡張する。次に、本発明は、ブース乗算ツリーの少なくとも事前に決められた列への符号ビットにキャリー−アウト値を加えることによってブース乗算ツリーから最終積を形成する。これは、符号を有する最終積のサム成分を拡張しそして最終積のキャリー成分をゼロ−拡張する効果を有する。
開示された主題のこれらの利点及び他の利点、同様にさらなる新規な特徴は、本明細書中に提供される説明から明白であろう。このサマリーの意図するものは、権利を主張する主題の包括的な説明ではなく、むしろ主題の機能のうちのあるものの短い概要を提供することである。ここに提供される別のシステム、方法、特徴、及び利点は、次に続く図面及び詳細な説明を考察することで当業者に明らかになるであろう。全てのそのようなさらなるシステム、方法、特徴、及び利点が、本明細書の範囲内に含まれ、添付された特許請求の範囲内であることが、意図されている。
開示された主題の特徴、本質、及び利点は、図面を使用して以下に述べる詳細な説明から、さらに明確になるであろう。図面では、同じ参照符号は一貫して対応するものを特定する。
本実施形態を実行することが可能である通信システムの単純化したブロック図である。 本実施形態の教示を実行するためのDSPアーキテクチャを図示する。 開示された主題の技術的な利点を提供するディジタル信号プロセッサの1つの実施形態のアーキテクチャ・ブロック図を与える。 開示された主題の様々な実行のためのデータ・パス図を表す。 開示された主題に適用可能な変形された16×16基数−4ブース・乗算ツリーを表す。 開示された主題のためのブース・レコーダを実装するための論理セルを与える。 開示された主題を用いる図7の論理セルに対するビット・グループ化の説明を与える。 −(AxB)積のためのブース・レコーディング論理回路を実装するための論理セルを表す。 開示された主題がブース乗算において引き算をどのようにして取り扱うかの表である。 開示された主題のさらなる教示にしたがった16×16ブース乗算削減ツリーを示す。
詳細な説明
ここに示されるブース乗算方法及びシステムに対する電力効率の良い符号拡張のための開示された主題は、マルチ・スレッド処理を伴うアプリケーションを含む、非常に広範囲の様々なディジタル信号処理アプリケーションの使用を有する。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において述べたように単一スレッド処理のアーキテクチャ内では、高速数学処理が生じる。電力効率は、DSP40の動作に決定的であり、そしてM−パイプ84は、自身の動作においてこの考慮を含む必要がある。そのような乗算処理において生じるものは、乗算の結果が冗長形式で利用可能になることであり、そしてこれらの冗長な結果は、乗算−累積演算において使用される。そのような冗長な結果で、符号拡張が、両方の冗長積について生じる必要があり得る。開示された主題は、各乗算の2つの冗長積のうちの1つにだけ適用される符号拡張を提供する。これは、中間冗長積が大きなビット範囲にわたり符号拡張される必要があるケースでは顕著な省電力をもたらす。
同様な電力効率の考えは、開示された主題が適用されることができるいずれのアプリケーションにおいてもおそらく存在する。したがって、ブース乗算処理が行われる速度は、個々に開示された題材の特徴的な新規な態様を提供する。
開示された主題は、乗算のためのブース・エンコーディング・プロセスを提供し、それは部分積の最後の行が‘1要素’拡張される部分積生成の方法を利用する。乗数の削減ツリーの最下位列の削減を適切に操作することによって、‘サム’冗長積だけが符号拡張される必要があるが、‘キャリー’冗長積はゼロ拡張されることが可能であることを、開示されるプロセスは確実にする。‘サム’だけが符号拡張されるので、開示されるプロセス及び関係する構造は、乗算の冗長積を符号拡張することに含まれる電力コストを削減する。開示された主題がこれらの省電力と関連する効率をどのようにして実現するかの理解を得るために、特定の実施形態のさらなる実例による説明がここに与えられる。
図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)を加算することに等しく、それは順に、積((−A)xB)を加算することに等しい。乗数は、ここで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)システムにおける送信を処理することを含む。開示された方法及びシステムは、ブース乗算処理のための電力効率の良い符号拡張方法及びシステムを含む。開示された主題は、複数の部分積行を備えるブース乗算ツリーに符号ビットを導入する。符号ビットは、符号拡張ステップを必要とするブース乗算処理の事象(event)において有用である。ここに開示された方法及びシステムは、事前に決められた部分積行の正しい符号を保存するために符号ビットを使用してブース乗算ツリーの事前に決められた部分積行を1要素拡張する。符号ビットの信号値を分解することは、ブース乗算ツリーにおいて符号拡張ビットを生成することを必然的に伴う。符号拡張ビットは、キャリー−アウト列中に配置されることができて、ブース乗算処理の積を拡張する。次に本発明は、ブース乗算ツリーの少なくとも事前に決められた列に対する符号ビットにキャリー・アウト値を加算することによってブース乗算ツリーから最終積を形成する。これは、符号ビットを有する最終積のサム成分を拡張する効果を、そして最終積のキャリー成分をゼロ拡張する効果を有する。
本発明は、変形されたブース乗数の技術的な利点をさらに提供し、それは形式[Z+−(AxB)+丸め定数]のMAC演算において使用されることが可能である。この乗数は、(a)ブース乗算係数を否定してそして余分なスティッキー・ビットを削減ツリー中へと吸収することにより、(b)丸め定数を削減ツリーへと詰め込む場所を見つけることにより、そして(c)冗長サムの符号拡張を必要とするだけの符号拡張プロセスを使用することにより、遅延、電力、及びハードウェアを最小にする。
その上、本明細書中に記述された処理の特徴及び機能は、様々な方式で実施されることができる。例えば、DSP40が上記の演算を実行することがあるだけでなく、本実施形態は、用途特定集積回路(ASIC:application specific integrated circuit)、マイクロコントローラ、マイクロプロセッサ、又は本明細書中に記述された機能を実行するために設計された他の電子回路、で実施されることができる。好ましい実施形態のこれまでの説明は、それゆえ、権利を主張する主題を当業者が制作すること又は使用することを可能にするために提供される。これらの実施形態への様々な変形は、当業者には容易に明らかにされるであろう、そして本明細書中で規定される一般的な原理は、革新的な能力を使用することなく他の実施形態に適用されることができる。そのように、権利を主張する主題は、本明細書に示された実施形態に限定するように意図されるのではなく、本明細書中に開示された原理と新奇な特徴に整合する最も広い範囲に一致する。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1]
ブース乗算処理を容易にするための電力効率の良い符号拡張方法であって:
複数の部分積行を備えるブース乗算ツリーに符号ビットを適用すること、ここで、それぞれの前記部分積行はブース乗算処理の部分積を備え、前記ブース乗算処理の事象(event)における使用のための前記符号ビットは符号拡張ステップを必要とする;
事前に決められた部分積行の正しい符号を保存するために符号ビットを使用して前記ブース乗算ツリーの前記事前に決められた部分積行を1要素拡張すること;
前記ブース乗算ツリーにおいて符号拡張ビットを生成することによって前記符号ビットの信号値を分解する(resolve)こと、ここで、前記符号拡張ビットは前記ブース乗算処理の前記積を拡張する場所に置かれる;及び
前記符号を有する最終積のサム(sum)成分を効果的に拡張しそして前記最終積のキャリー(carry)成分をゼロ−拡張するために前記ブース乗算ツリーの少なくとも事前に決められた列への前記符号ビットにキャリー−アウト値を加えることによって前記ブース乗算ツリーから前記最終積を形成すること、
のステップを具備する方法。
[2]
第1の複数の加算器回路を使用して9部分積行を6部分積行に削減すること;
第2の複数の加算器回路を使用して前記6部分積行を4部分積行に削減すること;
圧縮器回路を使用して前記4部分積行をサム行とキャリー行に削減すること;及び
符号なし乗算のための符号拡張を実行するために16×16前記ブース乗算ツリーの32番目の列への符号ビットを変更すること、
によって前記複数の部分積を削減するステップをさらに具備する、[1]の方法。
[3]
前記ブース乗算ツリーの最終部分積行中にビット、s8、として前記符号ビットを含めるステップをさらに具備する、[1]の方法。
[4]
前記ブース乗算ツリーは、16×16基数−4ブース乗算ツリーを備え、そして前記複数の部分積の削減の最終ステージにおいてのみ又はその後でのみ32番目の列よりも大きい列を変更するステップをさらに具備する、[1]の方法。
[5]
前記ブース乗算ツリーは、16×16基数−4ブース乗算ツリーを備え、そして前記16×16基数−4ブース乗算ツリーの32番目以上の列からの1要素拡張にキャリー−アウト値を加えることによって前記ブース乗算ツリーから最終積を形成するステップをさらに具備する、[1]の方法。
[6]
MAC演算のあいだに64−ビット値累算の一部として前記ブース乗算処理を実行するステップをさらに具備する、[1]の方法。
[7]
ブース乗算処理を実行するためのディジタル信号処理に関係する電力効率の良い符号拡張回路であって:
複数の部分積行を備えるブース乗算ツリーに符号ビットを適用するための符号適用回路系、ここで、それぞれの前記部分積行はブース乗算処理の部分積を備え、前記ブース乗算処理の事象における使用のための前記符号ビットは符号拡張ステップを必要とする;
事前に決められた部分積行の正しい符号を保存するために符号ビットを使用して前記ブース乗算ツリーの前記事前に決められた部分積行を1要素拡張するための乗算回路系;
前記ブース乗算ツリーに符号拡張ビットを生成することによって前記符号ビットの信号値を分解するための符号値解析回路系、ここで、前記符号拡張ビットはキャリー−アウト列中に置かれて前記ブース乗算処理の前記積を拡張する;及び
前記乗算回路系は、さらに前記符号を有する最終積のサム成分を効果的に拡張しそして前記最終積のキャリー成分をゼロ−拡張するために、前記ブース乗算ツリーの少なくとも事前に決められた列への前記符号ビットに前記キャリー−アウト値を加えることによって前記ブース乗算ツリーから前記最終積を形成するためである、
を具備する、符号拡張回路。
[8]
9部分積行を6部分積行に削減するための第1の複数の加算器回路;
前記6部分積行を4部分積行に削減するための第2の複数の加算器回路行;
前記4部分積行を、使用するサム行とキャリー行に削減するための圧縮器回路;及び 符号なし乗算のための符号拡張を実行するために16×16前記ブース乗算ツリーの32番目の列に符号ビットを加えるためのエンコーディング回路系、
をさらに具備する、[7]のシステム。
[9]
前記ブース乗算ツリーの最終部分積行中にビット、s8、として前記符号ビットを加えるためのエンコーディング回路系をさらに具備する、[7]のシステム。
[10]
前記ブース乗算ツリーは、16×16基数−4ブース乗算ツリーを備え、そして前記複数の部分積の削減の最終ステージにおいてのみ又はその後でのみ前記32番目の列よりも大きい列を変更するためのエンコーディング回路系をさらに具備する、[7]のシステム。
[11]
前記ブース乗算ツリーは、16×16基数−4ブース乗算ツリーを備え、そして前記16×16基数−4ブース乗算ツリーの前記32番目とそれより大きい列からの1要素拡張にキャリー−アウト値を加えることによって前記ブース乗算ツリーから最終積を形成するための削減回路系をさらに具備する、[7]のシステム。
[12]
MAC演算のあいだに64−ビット値累算の一部として前記ブース乗算処理を実行するための乗算回路系をさらに具備する、[7]のシステム。
[13]
個人向け電子デバイスをサポートする演算のためのディジタル信号プロセッサであって、ディジタル信号処理はブース乗算処理のために電力効率の良い符号拡張を実行するための手段を具備し、前記処理は:
複数の部分積行を備えるブース乗算ツリーに符号ビットを適用するための手段、ここで、前記部分積行のそれぞれはブース乗算処理の部分積を備え、前記ブース乗算処理の事象における使用のための前記符号ビットは符号拡張ステップを必要とする;
事前に決められた部分積行の正しい符号を保存するために符号ビットを使用して前記ブース乗算ツリーの前記事前に決められた部分積行を1要素拡張するための手段;
前記ブース乗算ツリーにおいて符号拡張ビットを生成することによって前記符号ビットの信号値を分解するための手段、ここで、前記符号拡張ビットはキャリー−アウト列中に置かれて前記ブース乗算処理の前記積を拡張する;及び
前記符号を有する最終積のサム成分を効果的に拡張しそして前記最終積のキャリー成分をゼロ−拡張するために、前記ブース乗算ツリーの少なくとも事前に決められた列への前記符号ビットにキャリー−アウト値を加えることによって前記ブース乗算ツリーから前記最終積を形成するための手段、
を具備する処理である、ディジタル信号プロセッサ。
[14]
前記複数の部分積を削減するための手段をさらに具備し、前記部分積を削減する手段は:
第1の複数の加算器回路を使用して9部分積行を6部分積行に削減するための手段; 第2の複数の加算器行を使用して前記6部分積行を4部分積行に削減するための手段; 圧縮器回路を使用して前記4部分積行をサム行とキャリー行に削減するための手段;そしてさらに
符号なし乗算のための符号拡張を実行するために16×16前記ブース乗算ツリーの32番目の列に符号ビットを加えるための手段、
を具備する前記手段である、[13]のディジタル信号プロセッサ。
[15]
前記ブース乗算ツリーの最終部分積行中にビット、s8、として前記符号ビットを加えるステップをさらに具備する、[13]のディジタル信号プロセッサ。
[16]
前記ブース乗算ツリーは、16×16基数−4ブース乗算ツリーを備え、そして前記複数の部分積の削減の最終ステージにおいてのみ又はその後でのみ32番目の列よりも大きい列を変更するステップをさらに具備する、[13]のディジタル信号プロセッサ。
[17]
前記ブース乗算ツリーは、16×16基数−4ブース乗算ツリーを備え、そして前記16×16基数−4ブース乗算ツリーの32番目及びそれより大きい列から1要素拡張にキャリー−アウト値を加えることによって前記ブース乗算ツリーから最終積を形成するステップをさらに具備する、[13]のディジタル信号プロセッサ。
[18]
MAC演算のあいだに64−ビット値累算の一部として前記ブース乗算処理を実行するためのステップをさらに具備する、[13]のディジタル信号プロセッサ。
[19]
ブース乗算処理のための電力効率の良い符号拡張方法を実行するためにその中に組み込まれたコンピュータ読取り可能なプログラム・コード手段を有するコンピュータ使用可能な媒体であって:
複数の部分積行を備えるブース乗算ツリーに符号ビットを適用するためのコンピュータ読取り可能なプログラム・コード手段、ここで、前記部分積行のそれぞれはブース乗算処理の部分積を備え、前記ブース乗算処理の事象における使用のために前記符号ビットは符号拡張ステップを必要とする;
事前に決められた部分積行の正しい符号を保存するために符号ビットを使用して前記ブース乗算ツリーの前記事前に決められた部分積行を1要素拡張するためのコンピュータ読取り可能なプログラム・コード手段;
前記ブース乗算ツリーに符号拡張ビットを生成することによって前記符号ビットの信号値を分解するためのコンピュータ読取り可能なプログラム・コード手段、ここで、前記符号拡張ビットはキャリー−アウト列中に置かれて前記ブース乗算処理の前記積を拡張する;及び
前記符号を有する最終積のサム成分を効果的に拡張しそして前記最終積のキャリー成分をゼロ−拡張するために前記ブース乗算ツリーの少なくとも事前に決められた列への前記符号ビットにキャリー−アウト値を加えることによって前記ブース乗算ツリーから前記最終積を形成するためのコンピュータ読取り可能なプログラム・コード手段、
を具備するコンピュータ使用可能な媒体。
[20]
第1の複数の加算器回路を使用して9部分積行を6部分積行に削減するためのコンピュータ読取り可能なプログラム・コード手段;
第2の複数の加算器行を使用して前記6部分積行を4部分積行に削減するためのコンピュータ読取り可能なプログラム・コード手段;
圧縮器回路を使用して前記4部分積行をサム行とキャリー行に削減するためのコンピュータ読取り可能なプログラム・コード手段;及び
符号なし乗算のための符号拡張を実行するために16×16前記ブース乗算ツリーの32番目の列へ符号ビットを加えるためのコンピュータ読取り可能なプログラム・コード手段、
をさらに具備する、[19]のコンピュータ使用可能な媒体。
[21]
前記ブース乗算ツリーの最終部分積行中にビット、s8、として前記符号ビットを加えるためのコンピュータ読取り可能なプログラム・コード手段をさらに具備する、[19]のコンピュータ使用可能な媒体。
[22]
前記ブース乗算ツリーは、16×16基数−4ブース乗算ツリーを備え、そして前記複数の部分積の削減の最終ステージにおいてのみ又はその後でのみ32番目の列よりも大きい列を変更するためのコンピュータ読取り可能なプログラム・コード手段をさらに具備する、[19]のコンピュータ使用可能な媒体。
[23]
前記ブース乗算ツリーは、16×16基数−4ブース乗算ツリーを備え、そして前記16×16基数−4ブース乗算ツリーの32番目及びそれより大きい列からの1要素拡張にキャリー−アウト値を加えることによって前記ブース乗算ツリーから最終積を形成するためのコンピュータ読取り可能なプログラム・コード手段をさらに具備する、[19]のコンピュータ使用可能な媒体。
[24]
MAC演算のあいだに64−ビット値累算の一部として前記ブース乗算処理を実行するためのコンピュータ読取り可能なプログラム・コード手段をさらに具備する、[19]のコンピュータ使用可能な媒体。

Claims (14)

  1. ハードウェア処理デバイスにおけるブース乗算演算のステージの間に、部分積のサム部分の符号拡張ビットを生成することと、ここにおいて前記符号拡張ビットは、前記ブース乗算の前のステージからのキャリー−アウトに基づいており、前記部分積のゼロ拡張されたキャリー部分に、前記符号拡張ビットを使用して拡張された前記部分積の前記サム部分の符号を加える加算器を使用して乗算結果を生成することと、を備える方法。
  2. 前記ブース乗算演算は、複数の部分積行を生成することを含み、前記部分積行の各々は、対応する符号ビットを有する、請求項1に記載の方法。
  3. 前記符号拡張ビットは、前記部分積行のうちの1つに対応する前記符号ビットに基づいて生成される、請求項2に記載の方法。
  4. 前記符号拡張ビットは、前記部分積行のうちの1つの1拡張ビットに、前記部分積行のうちの1つに対応する前記符号ビットに基づいた、キャリービットを、加えることによって生成される、請求項3に記載の方法。
  5. 前記ブース乗算演算の部分積行に対応するスティッキー1ビットを評価することと、そして、前記評価されたスティッキー1ビットに基づいて、別の部分積行の一部分のうちの選択されたビットにデータビット値を割り当てることと、をさらに備える請求項1に記載の方法。
  6. マルチプレクサを使用して前記選択されたビットに前記データビット値を割り当て、前記データビット値を選択すること、をさらに備える請求項5に記載の方法。
  7. 前記乗算結果を使用してデータ信号を生成することと、そして、前記データ信号を送信するために送信機を使用することと、をさらに備える請求項1に記載の方法。
  8. ブース乗算演算ステージの間に部分積のサム部分の符号拡張ビットを生成するように構成された符号値解析回路と、ここにおいて前記符号拡張ビットは、前記ブース乗算の前のステージからのキャリー−アウトに基づいており、前記部分積のゼロ拡張されたキャリー部分に前記部分積の前記サム部分を追加して乗算結果を生成するように構成された乗算回路と、を備える装置。
  9. 前記ブース乗算演算は、複数の部分積行を生成し、前記部分積行の各々は、対応する符号ビットを有する、請求項に記載の装置。
  10. 前記符号拡張ビットは、前記複数の部分積行を分解する前に、前記複数の部分積行のうちの1つに追加される、請求項に記載の装置。
  11. 前記符号拡張ビットは、前記複数の部分積行のうちの1つの符号ビットに基づいて生成される、請求項に記載の装置。
  12. 前記符号拡張ビットは、前記部分積行のうちの1つの1拡張ビットに、前記部分積行のうちの1つの前記符号ビットに基づいた、キャリービットを加えることによって生成される、請求項に記載の装置。
  13. 前記符号解析回路は、前記部分積に対応するスティッキー1ビットを評価するようにさらに構成され、前記評価されたスティッキー1ビットに基づいて、前記符号解析回路は、別の部分積の一部分のうちの選択された複数のビットに複数のデータ値を割り当てるように構成される、請求項に記載の装置。
  14. 前記評価されたスティッキー1ビットに少なくとも部分的に基づいて、前記データ値を提供するように構成されたマルチプレクサ、をさらに備える請求項13に記載の装置。
JP2011254030A 2006-02-15 2011-11-21 ブース乗算方法及びシステムのための電力効率の良い符号拡張 Expired - Fee Related JP5611923B2 (ja)

Applications Claiming Priority (2)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008555495A Division JP2009527064A (ja) 2006-02-15 2007-02-15 ブース乗算方法及びシステムのための電力効率の良い符号拡張

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014109020A Division JP2014209347A (ja) 2006-02-15 2014-05-27 ブース乗算方法及びシステムのための電力効率の良い符号拡張

Publications (2)

Publication Number Publication Date
JP2012089144A JP2012089144A (ja) 2012-05-10
JP5611923B2 true JP5611923B2 (ja) 2014-10-22

Family

ID=38121636

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2008555495A Withdrawn JP2009527064A (ja) 2006-02-15 2007-02-15 ブース乗算方法及びシステムのための電力効率の良い符号拡張
JP2011092161A Expired - Fee Related JP5215433B2 (ja) 2006-02-15 2011-04-18 ブース乗算方法及びシステムのための電力効率の良い符号拡張
JP2011254030A Expired - Fee Related JP5611923B2 (ja) 2006-02-15 2011-11-21 ブース乗算方法及びシステムのための電力効率の良い符号拡張
JP2014109020A Pending JP2014209347A (ja) 2006-02-15 2014-05-27 ブース乗算方法及びシステムのための電力効率の良い符号拡張

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2008555495A Withdrawn JP2009527064A (ja) 2006-02-15 2007-02-15 ブース乗算方法及びシステムのための電力効率の良い符号拡張
JP2011092161A Expired - Fee Related JP5215433B2 (ja) 2006-02-15 2011-04-18 ブース乗算方法及びシステムのための電力効率の良い符号拡張

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014109020A Pending JP2014209347A (ja) 2006-02-15 2014-05-27 ブース乗算方法及びシステムのための電力効率の良い符号拡張

Country Status (7)

Country Link
US (1) US7797366B2 (ja)
EP (1) EP1984809A1 (ja)
JP (4) JP2009527064A (ja)
KR (2) KR101086560B1 (ja)
CN (2) CN102279724B (ja)
TW (1) TWI332625B (ja)
WO (1) WO2007095626A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003289583A1 (en) * 2003-07-18 2005-02-04 Electronics And Telecommunications Research Institute System and method of multilingual rights data dictionary
TWI258694B (en) * 2004-04-02 2006-07-21 Ali Corp Method and system for sign extension of multiplier
EP1984810B1 (en) * 2006-02-15 2017-03-22 QUALCOMM Incorporated A booth multiplier with enhanced reduction tree circuitry
US7797366B2 (en) * 2006-02-15 2010-09-14 Qualcomm Incorporated Power-efficient sign extension for booth multiplication methods and systems
US7809783B2 (en) * 2006-02-15 2010-10-05 Qualcomm Incorporated Booth multiplier with enhanced reduction tree circuitry
US20160188327A1 (en) * 2014-12-24 2016-06-30 Elmoustapha Ould-Ahmed-Vall Apparatus and method for fused multiply-multiply instructions
US9917623B1 (en) * 2016-08-01 2018-03-13 Space Systems/Loral, Llc Digital beamforming architecture
US10175946B2 (en) * 2016-09-30 2019-01-08 International Business Machines Corporation Perform sign operation decimal instruction
US10409604B2 (en) 2017-04-24 2019-09-10 Arm Limited Apparatus and method for performing multiply-and-accumulate-products operations
US10409592B2 (en) * 2017-04-24 2019-09-10 Arm Limited Multiply-and-accumulate-products instructions
US10514924B2 (en) 2017-09-29 2019-12-24 Intel Corporation Apparatus and method for performing dual signed and unsigned multiplication of packed data elements
US10664277B2 (en) 2017-09-29 2020-05-26 Intel Corporation Systems, apparatuses and methods for dual complex by complex conjugate multiply of signed words
US10802826B2 (en) 2017-09-29 2020-10-13 Intel Corporation Apparatus and method for performing dual signed and unsigned multiplication of packed data elements
US11074073B2 (en) 2017-09-29 2021-07-27 Intel Corporation Apparatus and method for multiply, add/subtract, and accumulate of packed data elements
US10552154B2 (en) 2017-09-29 2020-02-04 Intel Corporation Apparatus and method for multiplication and accumulation of complex and real packed data elements
US10795677B2 (en) 2017-09-29 2020-10-06 Intel Corporation Systems, apparatuses, and methods for multiplication, negation, and accumulation of vector packed signed values
US10534838B2 (en) 2017-09-29 2020-01-14 Intel Corporation Bit matrix multiplication
US11243765B2 (en) 2017-09-29 2022-02-08 Intel Corporation Apparatus and method for scaling pre-scaled results of complex multiply-accumulate operations on packed real and imaginary data elements
US11256504B2 (en) 2017-09-29 2022-02-22 Intel Corporation Apparatus and method for complex by complex conjugate multiplication
US10795676B2 (en) 2017-09-29 2020-10-06 Intel Corporation Apparatus and method for multiplication and accumulation of complex and real packed data elements
CN110554854B (zh) * 2019-09-24 2024-05-03 上海寒武纪信息科技有限公司 数据处理器、方法、芯片及电子设备
CN110688087B (zh) * 2019-09-24 2024-03-19 上海寒武纪信息科技有限公司 数据处理器、方法、芯片及电子设备
TWI696947B (zh) 2019-09-26 2020-06-21 中原大學 乘積累加裝置及其方法
JP7381426B2 (ja) * 2020-03-19 2023-11-15 株式会社東芝 演算回路
US11327718B2 (en) 2020-03-19 2022-05-10 Kabushiki Kaisha Toshiba Arithmetic circuitry for power-efficient multiply-add operations
US11789701B2 (en) 2020-08-05 2023-10-17 Arm Limited Controlling carry-save adders in multiplication
US11868741B2 (en) * 2021-06-17 2024-01-09 Rebellions Inc. Processing element, neural processing device including same, and multiplication operation method using same

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4748582A (en) * 1985-06-19 1988-05-31 Advanced Micro Devices, Inc. Parallel multiplier array with foreshortened sign extension
JPS62229439A (ja) 1986-03-31 1987-10-08 Toshiba Corp 並列乗算器
US4901307A (en) 1986-10-17 1990-02-13 Qualcomm, Inc. Spread spectrum multiple access communication system using satellite or terrestrial repeaters
US4910701A (en) * 1987-09-24 1990-03-20 Advanced Micro Devices Split array binary multiplication
JPH01116764A (ja) 1987-10-29 1989-05-09 Ricoh Co Ltd 累積加算器
US5150322A (en) 1990-06-05 1992-09-22 Vlsi Technology, Inc. Mixed-radix serial/parallel multipliers
US5103459B1 (en) 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
JP3033212B2 (ja) 1991-01-31 2000-04-17 日本電気株式会社 乗算器
US5220525A (en) 1991-11-04 1993-06-15 Motorola, Inc. Recoded iterative multiplier
JPH06348455A (ja) 1993-06-14 1994-12-22 Matsushita Electric Ind Co Ltd 乗算における丸め込み方法及び乗算回路
JPH0713742A (ja) * 1993-06-25 1995-01-17 Mitsubishi Electric Corp 乗算装置
GB2287331B (en) * 1994-03-02 1998-04-29 Advanced Risc Mach Ltd Electronic multiplying and adding apparatus and method
KR0158647B1 (ko) * 1995-05-22 1998-12-15 윤종용 부호/무부호 수 겸용 곱셈기
US5880985A (en) * 1996-10-18 1999-03-09 Intel Corporation Efficient combined array for 2n bit n bit multiplications
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 丸め機能付き乗算方法及び乗算器
US5928316A (en) * 1996-11-18 1999-07-27 Samsung Electronics Co., Ltd. Fused floating-point multiply-and-accumulate unit with carry correction
TW407245B (en) * 1997-04-30 2000-10-01 Lucent Technologies Inc Method for providing pure carrysave output for muiltiplier
JPH10333885A (ja) 1997-05-30 1998-12-18 Sony Corp 乗算回路
US6183122B1 (en) 1997-09-04 2001-02-06 Cirrus Logic, Inc. Multiplier sign extension
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
US6167422A (en) 1998-06-19 2000-12-26 Ati International Srl, Beaumont House Booth multiplication structure which selectively integrates the function of either of incrementing or negating with the function of booth multiplication
US6073156A (en) * 1998-06-19 2000-06-06 Ati International Srl Circuit and method for wrap-around sign extension for signed numbers using replacement of most significant bit
JP2000081966A (ja) * 1998-07-09 2000-03-21 Matsushita Electric Ind Co Ltd 演算装置
EP0992885B1 (en) 1998-10-06 2005-12-28 Texas Instruments Incorporated Multiplier accumulator circuits
US6215584B1 (en) * 1999-05-10 2001-04-10 Jds Uniphase Inc. Input independent tilt free actively gain flattened broadband amplifier
JP3231298B2 (ja) * 1999-08-30 2001-11-19 富士通株式会社 乗算装置
US6353843B1 (en) 1999-10-08 2002-03-05 Sony Corporation Of Japan High performance universal multiplier circuit
JP2002157114A (ja) 2000-11-20 2002-05-31 Hitachi Ltd 乗算器及びそれを搭載した集積回路装置
US7809783B2 (en) 2006-02-15 2010-10-05 Qualcomm Incorporated Booth multiplier with enhanced reduction tree circuitry
US7797366B2 (en) * 2006-02-15 2010-09-14 Qualcomm Incorporated Power-efficient sign extension for booth multiplication methods and systems
EP1984810B1 (en) * 2006-02-15 2017-03-22 QUALCOMM Incorporated A booth multiplier with enhanced reduction tree circuitry

Also Published As

Publication number Publication date
KR101173405B1 (ko) 2012-08-10
JP2009527064A (ja) 2009-07-23
US20070192399A1 (en) 2007-08-16
TWI332625B (en) 2010-11-01
JP2014209347A (ja) 2014-11-06
JP5215433B2 (ja) 2013-06-19
WO2007095626A1 (en) 2007-08-23
JP2011222024A (ja) 2011-11-04
KR20110114698A (ko) 2011-10-19
EP1984809A1 (en) 2008-10-29
CN102279724A (zh) 2011-12-14
JP2012089144A (ja) 2012-05-10
CN101384990B (zh) 2012-09-19
CN102279724B (zh) 2015-09-16
KR20080094813A (ko) 2008-10-24
TW200802078A (en) 2008-01-01
KR101086560B1 (ko) 2011-11-23
US7797366B2 (en) 2010-09-14
CN101384990A (zh) 2009-03-11

Similar Documents

Publication Publication Date Title
JP5611923B2 (ja) ブース乗算方法及びシステムのための電力効率の良い符号拡張
JP4064989B2 (ja) パック・データの乗加算演算を実行する装置
EP0847551B1 (en) A set of instructions for operating on packed data
US7430578B2 (en) Method and apparatus for performing multiply-add operations on packed byte data
US6353843B1 (en) High performance universal multiplier circuit
US8745119B2 (en) Processor for performing multiply-add operations on packed data
US7809783B2 (en) Booth multiplier with enhanced reduction tree circuitry
US20070083585A1 (en) Karatsuba based multiplier and method
KR20050065672A (ko) 연산을 수행하는 방법 및 시스템 및 장치
JP5074425B2 (ja) 拡張された削減ツリー回路構成を有するブース乗算器
US8234326B2 (en) Processor core and multiplier that support both vector and single value multiplication
Tomar et al. Modified binary multiplier architecture to achieve reduced latency and hardware utilization
US9804998B2 (en) Unified computation systems and methods for iterative multiplication and division, efficient overflow detection systems and methods for integer division, and tree-based addition systems and methods for single-cycle multiplication
Schulte et al. Parallel saturating multioperand adders
Abraham et al. Canonic Signed Digit Recoding based RISC Processor Design
JPH1185471A (ja) 演算方法および演算装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20120515

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130430

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130628

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140527

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140604

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140903

R150 Certificate of patent or registration of utility model

Ref document number: 5611923

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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