説明

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

【課題】ディジタル信号プロセッサが通信(例えば、CDMA)システムにおける伝送処理をブース乗算方法を用いて電力効率の良い符号拡張を提供する。
【解決手段】符号ビットは、ブース乗算処理が符号拡張ステップを実行することを可能にする。これは、事前に決められた部分積行の正しい符号を保存するために符号ビットを使用してブース乗算ツリーの事前に決められた部分積行を1要素拡張することをさらに含む。この符号拡張ビットは、キャリー−アウト列中に置かれて、ブース乗算処理の積を拡張する。次に、方法及びシステムは、ブース乗算ツリーの事前に決められた列に置かれた符号ビットにキャリー−アウト値を加算することによってブース乗算ツリーから最終積を形成する。この結果は、符号を有する最終積のサム成分を効率的に拡張しそして最終積のキャリー成分をゼロ−拡張することである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディジタル信号プロセッサにおける数学プロセッサの分野に係わり、そしてより詳しくは、数値の高速乗算を実行するための数学プロセッサにおいて使用されるブース乗算に関する。より具体的には、本発明は、ブース乗算方法及びシステムにおける使用のために符号付きの及び符号のないバイナリ値に対する電力効率の良い符号拡張に関する。
【背景技術】
【0002】
ますます、電子装置及びサポート・ソフトウェア・アプリケーションは、ディジタル信号処理を必要とする。ホーム・シアター、コンピュータ・グラフィックス、医療画像技術及び電気通信技術は、全てディジタル信号処理技術を頼りにしている。ディジタル信号処理は、複雑であるが繰返しアルゴリズムの高速の数学演算を必要とする。多くのアプリケーションは、リアル−タイムの計算を必要とする、すなわち、信号は、時間の連続関数であり、それは数値処理のためにサンプリングされ、そしてディジタルに変換される必要がある。プロセッサは、サンプルが到着するとそのサンプルに個別の演算を実行するアルゴリズムを実行する必要がある。ディジタル信号プロセッサ、すなわちDSP(DSP:digital signal processor)、のアーキテクチャは、そのようなアルゴリズムを取り扱うために最適化される。良い信号処理エンジンの特性は、高速で柔軟な算術計算ユニット、その計算ユニットへのそしてそれからの非拘束データ・フロー、計算ユニットの精度及びダイナミック・レンジの拡張、デュアル・アドレス発生器、効率的なプログラム・シーケンシング、及びプログラミングの容易さ、を含む。
【0003】
DSP技術の1つの将来有望なアプリケーションは、衛星回線又は地上回線を介して複数のユーザ間の音声及びデータ通信をサポートする符号分割多元接続(CDMA:code division multiple access)システムのような通信システムを含む。多元接続通信システムにおけるCDMAプロセスの使用は、米国特許番号第4,901,307号、名称“衛星リピータ又は地上リピータを使用するスペクトル拡散多元接続通信システム”、及び米国特許番号第5,103,459号、名称“CDMAセルラ電話ハンドセット・システムにおいて波形を生成するためのシステム及び方法”に開示されており、両者とも特許請求された主題の譲受け人に譲渡されている。
【0004】
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(ウィンドウズ(登録商標)メディア・ビデオ)、同様に、そのような無線ハンドセットがますます利用するであろう多くの他の規格がある。
【0005】
高速で柔軟な算術計算ユニットを実現するために、高速乗算演算を実行する必要性がある。そのような演算を実行するための1つのプロセスは、ブース乗算として知られている。ブース乗算は、乗算される数値を記録することにより、より小さく、より早い乗算回路を可能にするプロセスである。ブース・プロセスを使用する乗算は、典型的に部分積を生成することにより実行される。部分積は、次に加算されて最終結果を求める。ブース乗算処理を用いると、部分積の個数は、乗数行列中の行の個数に等しい。用語“部分積”は、乗算ツリー中の行を呼ぶ。
【0006】
元々のブースのアルゴリズムへの数多くの変形があるが、基本的な原理は、ブース・エンコーディング・プロセスを使用してより少ない部分積を生成することである。基数−4ブース・レコーディングのプロセスを使用することによりほぼ半分に部分積の個数を減少させることが可能である。基数−4ブース・レコーディングは、0と1のバイナリ値で元々は表わされる乗数Bのビットを、−2,−1,0,1又は2の値を取ることが可能な乗算因子の集合へとマッピングする。この方法は、そうでなければ生じるはずの部分積の個数をほぼ半分にする利点を提供する。これは、回路の動作中の伝搬遅延に関係し、そしてその実施の複雑性と電力消費に関係するので、回路設計において重要である。0,1又は2で、そしてある乗数又はその等価なものだけで、乗算する際にほんのわずかしか複雑性の不利がない。
【0007】
ブース・エンコーディングのプロセスを使用して部分積が一旦生成されてしまうと、それらは削減技術を利用することにより一緒に加算される。削減のプロセスは、半加算器、全加算器、及びマルチ−オペランド(multi-operand)加算器を使用して並列処理で部分積ビットの複数の行を合計することを含む。この削減は、冗長フォーマットであると言われるビットの2行を結果としてもたらし、キャリー伝搬加算器を使用して分解するときに、その総和は最終積を表す。これらの行のうちの1つは、サム(Sum)Sと呼ばれ、そして他の行は、キャリー(Carry)Cと呼ばれる。乗算−累積(MAC:multiply-accumulate)演算において、[Z+(AxB)]中のZ項は、一般的に、最終CAPの前に削減ツリー中に含まれる。この処理は、冗長フォーマットでの乗算積の分解に対して及び引き続く累積に対しての両者でCPAを利用することを省略する。
【0008】
ある複数の部分積が負であり得るので、2の補集合を作るために必要なハードウェアは、ブース乗算器の1つの態様である。そのようなハードウェアを用いて、乗算積を生成することが可能なブース乗算器を提供する必要性がある。現在、DSPアプリケーションのために効率的に−(AxB)を生成することができる公知の方法又はシステムは、何も存在しない。したがって、DSPアプリケーションにおいて積の加算の逆、−(AxB)、を生成するためにブース乗算処理を使用することができる方法とシステムに対する必要性が存在する。
【0009】
しかしながら、一旦、そのような積が生成されると、“Z”から乗算の積“AxB”まで累積されようとしている値が積AxBよりも大きなビット幅の場合には、冗長積の“サム”と“キャリー”成分の両者は、適正に符号拡張される必要がある。
【0010】
時々、ビットの広い範囲にわたり符号拡張を実行することが、必要であり得る。したがって、DSP中でブース乗算処理の間に適正な符号拡張のプロセスに対する必要性がある。一般的に、乗算の両方の中間冗長積が、符号拡張されるであろう。
【0011】
冗長積のサム成分だけが符号拡張される必要がある状況に関して電力効率の良いプロセスに対するさらなる必要性がある。
【0012】
ブース乗算処理から最終積を生成する際にサム成分とキャリー成分の両方の符号拡張することを避ける必要性がある。
【0013】
ブース乗算処理の間に中間32−ビット積の部分積を符号拡張することから生じる電力消費を削減するためのさらなる必要性がある。
【0014】
ブース乗算の符号拡張のフェーズの間に動作している乗算回路の数を減少させることがさらに必要である。
【発明の概要】
【0015】
ブース乗算方法及びシステムのために電力効率の良い符号拡張を提供するための技術が開示され、そのプロセスは、パーソナル・コンピュータ、個人ディジタル補助装置、無線ハンドセット、及び類似の電子デバイスのますますエラーに強いソフトウェア・アプリケーションを処理するため、同様にますます増加している関係するディジタル信号プロセッサ速度及びサービス品質のための、ディジタル信号プロセッサの動作とディジタル信号プロセッサ命令の効率的な使用の両方を改善する。
【0016】
1つの態様によれば、開示された方法及びシステムは、ブース乗算処理のための電力効率の良い符号拡張方法及びシステムを含む。開示された主題は、複数の部分積行を備えるブース乗算ツリーに符号ビットを導入する。その符号ビットは、符号拡張ステップを必要とする該ブース乗算処理の事象において有用である。ここに開示された方法及びシステムは、事前に決められた部分積行の正しい符号を保存するために符号ビットを使用してブース乗算ツリーの事前に決められた部分積行を1要素拡張する(すなわち、その符号が“1”であるときに符号拡張する)能力を含む。符号ビットの信号値を分解する(resolve)ことは、ブース乗算ツリー中に符号拡張ビットを生成することを必然的に伴う。この符号拡張ビットは、キャリー−アウト列中に置かれることができ、ブース乗算処理の積を拡張する。次に、本発明は、ブース乗算ツリーの少なくとも事前に決められた列への符号ビットにキャリー−アウト値を加えることによってブース乗算ツリーから最終積を形成する。これは、符号を有する最終積のサム成分を拡張しそして最終積のキャリー成分をゼロ−拡張する効果を有する。
【0017】
開示された主題のこれらの利点及び他の利点、同様にさらなる新規な特徴は、本明細書中に提供される説明から明白であろう。このサマリーの意図するものは、権利を主張する主題の包括的な説明ではなく、むしろ主題の機能のうちのあるものの短い概要を提供することである。ここに提供される別のシステム、方法、特徴、及び利点は、次に続く図面及び詳細な説明を考察することで当業者に明らかになるであろう。全てのそのようなさらなるシステム、方法、特徴、及び利点が、本明細書の範囲内に含まれ、添付された特許請求の範囲内であることが、意図されている。
【図面の簡単な説明】
【0018】
【図1】本実施形態を実行することが可能である通信システムの単純化したブロック図である。
【図2】本実施形態の教示を実行するためのDSPアーキテクチャを図示する。
【図3】開示された主題の技術的な利点を提供するディジタル信号プロセッサの1つの実施形態のアーキテクチャ・ブロック図を与える。
【図4】開示された主題の様々な実行のためのデータ・パス図を表す。
【図5】開示された主題に適用可能な変形された16×16基数−4ブース・乗算ツリーを表す。
【図6】開示された主題のためのブース・レコーダを実装するための論理セルを与える。
【図7】開示された主題を用いる図7の論理セルに対するビット・グループ化の説明を与える。
【図8】−(AxB)積のためのブース・レコーディング論理回路を実装するための論理セルを表す。
【図9】開示された主題がブース乗算において引き算をどのようにして取り扱うかの表である。
【図10】開示された主題のさらなる教示にしたがった16×16ブース乗算削減ツリーを示す。
【発明の詳細な説明】
【0019】
開示された主題の特徴、本質、及び利点は、図面を使用して以下に述べる詳細な説明から、さらに明確になるであろう。図面では、同じ参照符号は一貫して対応するものを特定する。
【0020】
ここに示されるブース乗算方法及びシステムに対する電力効率の良い符号拡張のための開示された主題は、マルチ・スレッド処理を伴うアプリケーションを含む、非常に広範囲の様々なディジタル信号処理アプリケーションの使用を有する。1つのそのようなアプリケーションは、電気通信において見られ、そして特に、1又はそれより多くのディジタル信号処理回路を利用する無線ハンドセットにおいて見られる。その結果、下記の図1から図3は、電気通信DSPを説明し、その中では本教示は、有用であり得る。図4は、乗算処理のためのデータ・パスを述べ、その中では拡張ブース乗算演算の本開示が機能することができる。しかしながら、開示された主題が適用されることができるアプリケーションの実質的に無限の集合のうちの1つだけを、ここに説明されるインプリメンテーションが提供することを、忘れずにおくことである。
【0021】
そのような無線ハンドセットがどのように使用されることができるかを説明する目的のために、図1は、開示される中断処理方法及びシステムの本実施形態を実行することが可能である通信システム10の単純化したブロック図を与える。送信機ユニット12において、データは、データ・ソース14から送信(TX)データ・プロセッサ16に、一般的にブロックで送られ、その送信データ・プロセッサ16はデータをフォーマット化し、コード化し、そして処理して、1又はそれより多くのアナログ信号を生成する。アナログ信号は、次に送信機(TMTR)18に与えられ、それはベースバンド信号を変調し、フィルタし、増幅し、そしてアップコンバートして、変調された信号を生成する。変調された信号は、次に1又はそれより多くの受信機ユニットにアンテナ20を介して送信される。
【0022】
受信機ユニット22において、送信された信号は、アンテナ24により受信され、そして受信機(RCVR)26に与えられる。受信機26内で、受信された信号は、増幅され、フィルタされ、ダウンコンバートされ、復調され、そしてディジタル化されて、インフェーズ(I)と(Q)サンプルを生成する。サンプルは、次に受信(RX)データ・プロセッサ28によりデコードされそして処理されて、送信されたデータを再生する。受信機ユニット22におけるエンコーディングと処理は、送信機ユニット12において実行されたコーディングと処理に相補的な方法で実行される。再生されたデータは、次にデータ・シンク30に与えられる。
【0023】
上に記述された信号処理は、音声、ビデオ、パケット・データ、メッセージ送信、及び1方向の他のタイプの通信をサポートする。双方向通信システムは、2方向のデータ送信をサポートする。しかしながら、他の方向に対する信号処理は、単純化のために図1には示されない。通信システム10は、符号分割多元接続(CDMA:code division multiple access)システム、時分割多元接続(TDMA:time division multiple access)通信システム(例えば、GSM(登録商標)システム)、周波数分割多元接続(FDMA:frequency division multiple access)通信システム、又は地上回線を経由して複数のユーザ間の音声とデータ通信をサポートする他の多元接続通信システムであり得る。ある特定の実施形態では、通信システム10は、W−CDMA規格に準拠するCDMAシステムである。
【0024】
図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は、この例では、本実施形態において用いられるパケット・グループ化組み合わせを規定する。
【0025】
実行データ・パス62からの出力は、DSP40の動作からの結果を戻すために、レジスタ・ファイル書込み回路64に行き、しかもその回路は個々のスレッドT0:T5を適応させるように構成される。そのように、回路54からのデータ・パス及び様々なスレッドに応じて分けられるレジスタ・ファイル書込み回路64の前のデータ・パスは、処理パイプライン66を形成する。
【0026】
本実施形態は、6個までのスレッド、T0:T5、を有する1つのマイクロプロセッサを使用するヘテロジーニアス素子プロセッサ(HEP:heterogeneous element processor)の混成タイプを使用することができる。プロセッサ・パイプライン66は、6つのステージを有し、回路54からレジスタ60と64へのデータ項目を取り出すために必要なプロセッサ・サイクルの最小数を組み合わせる。DSP40は、プロセッサ・パイプライン66内の異なるスレッドT0:T5の命令を同時に実行する。すなわち、DSP40は、6個の独立したプログラム・カウンタ、プロセッサ・パイプライン66内のスレッドT0:T5の命令を識別する内部タッギング・メカニズム、及びスレッド・スイッチをトリガするメカニズム、を与える。スレッド・スイッチ・オーバーヘッドは、ゼロからほんの数サイクルまで変化する。
【0027】
DSP40は、それゆえ、広範囲の様々な信号、画像、及びビデオ処理アプリケーションにわたり高性能かつ低電力の目的で設計される汎用ディジタル信号プロセッサを提供する。図3は、DSP40アーキテクチャの簡単な全体像を与え、開示された主題の1つの表現のために関係する命令セット・アーキテクチャのある複数の態様を含む。DSP40アーキテクチャのインプリメンテーションは、インターリーブされたマルチスレッディング(IMT:interleaved multithreading)をサポートする。この実行モデルでは、ハードウェアは、パイプライン中の異なるスレッドからの命令をインターリーブすることにより複数のハードウェア・スレッドT0:T5の同時の実行をサポートする。この特徴は、DSP40が高いコア及びメモリ利用を維持したままで、アグレッシブなクロック周波数を含むことを可能にする。IMTは、費用のかかる補償機構、例えば、適切でない実行、大規模な転送ネットワーク、及びその他、を必要とせずに高スループットを提供する。
【0028】
図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と制御レジスタ命令を通信する。
【0029】
図3のM−パイプ84において述べたように単一スレッド処理のアーキテクチャ内では、高速数学処理が生じる。電力効率は、DSP40の動作に決定的であり、そしてM−パイプ84は、自身の動作においてこの考慮を含む必要がある。そのような乗算処理において生じるものは、乗算の結果が冗長形式で利用可能になることであり、そしてこれらの冗長な結果は、乗算−累積演算において使用される。そのような冗長な結果で、符号拡張が、両方の冗長積について生じる必要があり得る。開示された主題は、各乗算の2つの冗長積のうちの1つにだけ適用される符号拡張を提供する。これは、中間冗長積が大きなビット範囲にわたり符号拡張される必要があるケースでは顕著な省電力をもたらす。
【0030】
同様な電力効率の考えは、開示された主題が適用されることができるいずれのアプリケーションにおいてもおそらく存在する。したがって、ブース乗算処理が行われる速度は、個々に開示された題材の特徴的な新規な態様を提供する。
【0031】
開示された主題は、乗算のためのブース・エンコーディング・プロセスを提供し、それは部分積の最後の行が‘1要素’拡張される部分積生成の方法を利用する。乗数の削減ツリーの最下位列の削減を適切に操作することによって、‘サム’冗長積だけが符号拡張される必要があるが、‘キャリー’冗長積はゼロ拡張されることが可能であることを、開示されるプロセスは確実にする。‘サム’だけが符号拡張されるので、開示されるプロセス及び関係する構造は、乗算の冗長積を符号拡張することに含まれる電力コストを削減する。開示された主題がこれらの省電力と関連する効率をどのようにして実現するかの理解を得るために、特定の実施形態のさらなる実例による説明がここに与えられる。
【0032】
図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は、これらの中間冗長積の論理シフトと符号拡張を実行する責任がある。
【0033】
乗算器ブロック118は、M−パイプ84に対する命令に関連する乗算を実行する。これらの命令は、16×16乗算処理を基底として使用する複合命令として取り扱われることができる。乗算器ブロックは、4個の16×16乗算器ユニットM0:M3から構成される。各乗算器ユニットM0:M3は、複数のモードで機能することが可能であり、多種多様なM−タイプ命令をサポートする。符号付きモードと符号なしモードとがサポートされる。乗算器は、減算がその積に実行される必要があるケースでは、それらの積の2の補数を同様に生成することが可能である。
【0034】
開示された主題を用いて、M0:M3乗算器182から188は、基数−4ブース・エンコーディングを使用する。符号なしモードでは、それらは、符号ビットとして機能する追加の17番目のビットを有する17×17乗算に似ている。倍精度乗算(すなわち、32×32乗算)を除いて、全ての他の乗算命令は、“符号付き×符号付き”又は“符号なし×符号なし”である。倍精度32×32乗算及び複数の16×16乗数を使用する32×16乗算は、同様に“符号付き×符号なし”乗算と“符号なし×符号付き”乗算とを必要とする。これらのモードの全ては、M0:M3乗算器182から188の被乗数と乗数オペランド(operand)の符号ビットを制御することによりサポートされる。
【0035】
シフト/符号拡張ユニット148からの出力は、マルチ−オペランド加算器150に行き、そしてR0:R3入力へと分解される。マルチ−オペランド加算器150は、これらのR0:R3入力を受け取り、そして圧縮と累積ステージのセットの後で、最終的にRdd出力170を与える。
【0036】
データ・パス180は、4つのフェーズへと分割可能であるように理解されることができる。まず第1に、データ配送フェーズでは、RsとRtソース・レジスタからのデータは、乗算ブロック118に供給される。乗算ブロック118の中では、ソース・オペランドからの16−ビット・ハーフ・ワードは、命令に基づいて4個のM0:M3乗算器182から188に配送される。次に、部分積生成及び削減(reduction)ベクトル加算又は減算が行われる、そこでは、M0:M3乗算器182から188は、基数−4ブース・エンコーディングを使用して部分積を生成し、そして出力の冗長対へ削減を使用してそれらを削減する。
【0037】
マルチ−オペランド削減フェーズの間、乗算ブロック118からの冗長出力は、マルチ−オペランド加算器150へ入力され、その加算器はこれらの入力とオプションの累算値/丸めた値を2組の冗長出力へと削減する。最後に、加算/サチュレーション(saturation)フェーズでは、冗長出力は、キャリー増殖(propagate)加算を使用して解かれ、そしてサチュレーションは、適用可能であるときに実行される。
【0038】
開示された主題は、したがって、そのような値の変形されたブース乗算を規定する。そのような複素値を用いて、入力は、下位ハーフワードの実数16−ビット値と上位ハーフワードの虚数16−ビット値とを有する。乗算結果は、オプションとして0−1ビットだけスケーリングされる。丸め定数がそれぞれの実数和と虚数和に加算される。実数部と虚数部は、32ビットに個別にサチュレートされる。32−ビット結果のそれぞれの上位16−ビットは、32−ビット行先レジスタにパック(pack)される。
【0039】
この例では、S0:S3とC0:C3は、33−ビット幅である。16×16乗算の出力が32−ビットで表わされることが可能であるとしても、ある複数の命令は、符号なしモードで実行し、そして追加ビットが符号拡張を容易にするために符号ビットとしてこのケースでは使用される。S0:S3とC0:C3は、シフト/符号拡張ユニット148を経由して渡される。S0:S1とC0:C1は、パッキングの前に、最終結果の低次の32−ビットを与える。これは、結果の実数部を形成する。これらの4つの数は、命令で指定される場合には、1−ビットの左シフトによりオプションとしてスケーリングされる。
【0040】
これらの数のシフトされたバージョンは、R0:R3と名付けられる。R0:R3は、マルチ−オペランド加算器150を経由して渡される。マルチ−オペランド加算器150からの出力は、サチュレーション/加算ユニット170に流れる。
【0041】
ここで、開示された主題は、様々なブース乗算処理において実行されることができる。しかしながら、開示された主題の具体的な使用を理解することは、そのようなアプリケーションが起きることがある特定のブース乗算処理の表現を通して最も良く達成されることができる。したがって、図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番目の列からの追加のキャリー−アウト・ビットは、同様に、符号拡張を支援するための乗算器からの出力である。
【0042】
さらに図5を参照して、各部分積行220から236は、横方向に示される被乗数ビット238の倍数である。列番号は、図5の上部に示されている。乗数ビット240は、縦方向に示され、そしてこれらのビットは、部分積行220から236を形成するための乗算係数を生成するために記録される。図5に示される信号n0からn7は、スティッキー(sticky)“1”を示し、それは負の加重を受ける部分積行220から236に付加される。これらは、積の最終反転を必要としない乗算を扱うために十分である。乗数における−(AxB)陰関数表示のケースを取り扱うために、追加の信号n8が与えられる。
【0043】
乗算演算の積が乗数ツリー内で非明示的に減算されるときに、信号s0からs7は、符号拡張を取り扱う。AとBとが、それぞれ被乗数と乗数であると仮定される場合に、基数−4ブース・エンコーディングは、乗数オペランドBの3個のビットのグループをエンコーディングすることにより、そして集合{−2A,−A,0,A,2A}から部分積を選択するためにこのエンコーディングを使用することにより、進められる。ここで、最終積(AxB)が減算される必要がある場合には、それはAx−(B)を加算することに等しく、それは順に、積((−A)xB)を加算することに等しい。乗数は、ここでBから(−B)に変更される。
【0044】
開示された主題がそこにおいてアプリケーションを見出すことができるブース乗算処理の一部として、図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の補数を生成する。
【0045】
図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}から選択することができる。
【0046】
図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”出力を与える。
【0047】
本主題がそれに対する使用を見出すことができるブース乗算処理の開示されたアプリケーションでは、図8は、それゆえ、被乗数Aと乗数Bの積の負の値が、AとBの負の値との積を計算することによって得られるという特性を利用する。これは、それゆえ、最初にAxBの積を計算し、そして次に−(AxB)を得るために積の2の補数を計算する公知の2ステップ・プロセスを回避する。ブース・レコーダ回路270は、乗算のステージと並行して否定を実行する。
【0048】
積の2の補集合を作ることは、−(AxB)がAx(−B)に等価であるという事実を利用する。この例では、オペランド(−B)は、乗数として扱われる。乗数として(−B)を使用して生成されたブース乗算係数は、乗数オペランドとしてBを使用して生成された乗算係数に対応する付加的な逆である。積AxBを計算するために使用するブース乗算ハードウェア構成は、ブース乗算係数のそれぞれの符号を反転することによりAx(−B)を計算するために再使用されることが可能である。この符号は、ブース・レコーダ回路270の“neg”信号によって決定され、それは積を否定する際に“−neg”信号を生成するためにレコーディング・ハードウェアに対する変更である。
【0049】
ブース・レコーダ回路270において、XORゲート284は、非クリティカル・パス上にあり、そしてクリティカル・パスに寄与しない。その代りに、クリティカル・パスは、信号Aと2Aを生成するための乗数ビットを含む。部分積のための乗算係数の符号を反転させるこのプロセスは、最終積行の符号が負であり得るケースを導入する。これゆえ、信号“n8”は、上記の図5に見られるように、乗算ツリーに追加されることができる。行を追加することは、追加の行を適応させるために削減ステージを変更することにより削減されることができる。これは、しかしながら、追加の遅延と関係するハードウェアを意味することがある。
【0050】
ここに示されたプロセスは、削減ステージにおいて追加の行を含まないが、その代わりに乗算ツリーへの論理的な変更を行うことにより部分積の既存の9行中へとn8信号を吸収することに焦点を合わせている。乗算ツリーに追加される遅延は、最小である。
【0051】
形式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がその中に挿入されることができる位置は、全ての可能性のあるブース乗算係数に対して決定することが可能である。
【0052】
図9は、部分積行0の4つの最上位ビットに対する値の範囲、そして信号n8をこの4−ビット・フィールドに追加する効果を列挙する。MUX構成は、n8がハイであるときに、4−ビット・フィールドの変更された値を選択することを認める。言い換えると、開示されたプロセスは、信号n8が列16のところに追加される、すなわち、PP0_16である場合に、部分積行0の4つの最上位ビットの値を事前に計算し、そしてこの変更された4−ビット・フィールドを削減ステージにおいて使用する。MUX構成は、一旦PP0_16(表中に“a”として示される)が標準ブース多重送信回路系を使用して計算されるように最適化される。n8に基づく変更された4−ビット・フィールドは、この後で最小遅延で解かれる。乗算処理の残りは、積AxBを生成するための通常の乗算フローと同じである。
【0053】
図10は、開示された主題のさらなる態様に対して利用可能な変更された16×16基数−4ブース乗算ツリーを示す。図10から、本開示の重要な符号拡張と定数丸め機能とを理解することが可能である。16×16乗数の削減ステージへの変更は、9個の部分積行を通るクリティカル・パスを最小にし、そしてその積が冗長サム−キャリー・フォーマットで利用可能であるときに、符号拡張を効率的に与える。図10は、16×16基数−4ブース乗数のための変更された削減ツリー304を示す。変更された削減ツリー304は、符号付きオペランドと符号なしオペランドを適応させ、そして積を否定する可能性を有する。
【0054】
削減の第1ステージは、全加算器の3行を使用して9行を6行に削減する。削減の第2ステージは、全加算器の2行を使用して6行を4行に削減する。削減の第3ステージと最終ステージは、4:2マルチ−オペランド加算器のある行を利用して、4行を最終の冗長サムとキャリー行へと削減する。サムとキャリーの32ビットが16×16積を表示するために十分であるけれども、追加ビットは、符号拡張が符号なし乗算に対して正しく取り扱われることを確実にする。
【0055】
図10は、積を形成する下位の32ビットよりもすぐ上位である列306をさらに示す。本明細書は、最終部分積行308のための符号ビットs8を導入するために列#32から上方のブース乗算ツリーを変更する。この符号ビットs8は、積が符号拡張を必要としない場合には、必要とされない。ここで、部分積行8の正しい符号を保存するために、プロセスは、1ビットだけ部分積行308を拡張することを含む。#32よりも大きい列は、削減の最終ステージまで影響されない。そのような点において、信号〜s8は、列#31からのキャリー−アウトにより分解し、そして“c”として示されるキャリー−アウト310を生成する。
【0056】
最終積は、上方への行#33から1要素拡張にキャリー−アウト“c”310を加算することにより形成される。その効果は、符号としてcを有する最終積のサム成分を符号拡張するためであり、一方で最終積のキャリー成分はゼロ−拡張である。これらのステップは、サム成分とキャリー成分の両方を符号拡張する必要性を排除する。例えば、16×16乗算が32−ビット積への64−ビット値の累算を必要とするMAC演算の一部である場合には、64−ビット値に32−ビット積を加算する前に、32−ビット積を64−ビットに符号拡張することが、必要とされるはずである。中間32−ビット積が冗長形式で残され、そしてここに提示された符号拡張プロセスが適用される場合に、31−ビットにわたりキャリー成分を符号拡張するために使用する複数のMUXを排除することの可能性のために、相当量の電力節約が生じ得る。
【0057】
再び図10を参照して、本明細書は、乗数、Bに丸め定数を加算する能力をさらに提供する。DSP演算において16×16乗算に対する一般的丸め定数は、0×8000である。16×16乗算の積を丸めることは、一般的な演算であり、それは2ステップ演算として典型的に実行される、ここで、乗数が積を生成するために最初に使用され、そして次に丸め定数がその積に加算される。
【0058】
上に記述された表記を使用すると、図10ではPP8_15が0であることに注意する。乗算行列中のこのビット位置に“1”を挿入することにより、最初に積を生成しそして次にその積に値0×8000を加算することにより求められるはずの結果と同じ結果を生成することが可能である。このプロセスは、しかもクリティカル・パスにいかなる待ち時間も追加しない。
【0059】
乗算ブロック118中のハードウェアが乗算の積に1つの累算−オペランドを加算することが可能であるだけの能力に制限される場合には、乗算の積が丸められる必要があるときに累算−オペランドを有する丸め定数をMUXすることが、一般的である。これは、乗算の積についての丸め演算と累算演算との両方を単一ステップで実行することを困難にさせる。しかし、ここに開示されたプロセスを使用することは、そのような制限を排除する。
【0060】
要約すると、開示された主題は、設計のためのプロセス及びディジタル信号プロセッサの使用を提供し、通信(例えば、CDMA)システムにおける送信を処理することを含む。開示された方法及びシステムは、ブース乗算処理のための電力効率の良い符号拡張方法及びシステムを含む。開示された主題は、複数の部分積行を備えるブース乗算ツリーに符号ビットを導入する。符号ビットは、符号拡張ステップを必要とするブース乗算処理の事象(event)において有用である。ここに開示された方法及びシステムは、事前に決められた部分積行の正しい符号を保存するために符号ビットを使用してブース乗算ツリーの事前に決められた部分積行を1要素拡張する。符号ビットの信号値を分解することは、ブース乗算ツリーにおいて符号拡張ビットを生成することを必然的に伴う。符号拡張ビットは、キャリー−アウト列中に配置されることができて、ブース乗算処理の積を拡張する。次に本発明は、ブース乗算ツリーの少なくとも事前に決められた列に対する符号ビットにキャリー・アウト値を加算することによってブース乗算ツリーから最終積を形成する。これは、符号ビットを有する最終積のサム成分を拡張する効果を、そして最終積のキャリー成分をゼロ拡張する効果を有する。
【0061】
本発明は、変形されたブース乗数の技術的な利点をさらに提供し、それは形式[Z+−(AxB)+丸め定数]のMAC演算において使用されることが可能である。この乗数は、(a)ブース乗算係数を否定してそして余分なスティッキー・ビットを削減ツリー中へと吸収することにより、(b)丸め定数を削減ツリーへと詰め込む場所を見つけることにより、そして(c)冗長サムの符号拡張を必要とするだけの符号拡張プロセスを使用することにより、遅延、電力、及びハードウェアを最小にする。
【0062】
その上、本明細書中に記述された処理の特徴及び機能は、様々な方式で実施されることができる。例えば、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のコンピュータ使用可能な媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−222024(P2011−222024A)
【公開日】平成23年11月4日(2011.11.4)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−92161(P2011−92161)
【出願日】平成23年4月18日(2011.4.18)
【分割の表示】特願2008−555495(P2008−555495)の分割
【原出願日】平成19年2月15日(2007.2.15)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED