(57)【要約】乗算手段のための能率的なサブワード（副語）並列の実現を提供する方法および構造である。好適な実施形態において、２つの部分からなる２の補数乗算が提供されるので、ｎビットの演算数Ｂが分割可能であり、演算数Ｂの各部分が他の演算数（被乗数）Ａと並列に乗算される。中間積（乗算の解）が加算器内で補正ベクトルと結合されて、ｐ＝ｎ／２である分割演算数ＢまたはＢ［ｐ−１：０］のｐビットの最下位またはより低位のビットを取り扱う乗算器からの２の補数の副次の積における何れかの虚偽の負符号を訂正する。補正ベクトルＣは簡単な回路を用いる演算数ＡおよびＢから派生している。この技術は、３またはそれ以上の並列乗算器へと容易に拡張可能であり、ｎビットの演算数Ｄが分割可能であり、これは並列に演算数Ａに乗算可能である。補正ベクトルＣは、同様に演算数Ｄから派生させられて、アナログ形式の演算数Ａが２つの部分からなる２の補数乗算器の実施形態となる。
2005504389.tif 000002
【特許請求の範囲】
【請求項１】
サブワード並列を利用する２の補数乗算を実現する方法であって、
複数の乗算器に第１の演算数Ｂを分割し、これらのそれぞれと第２の被乗数Ａとを乗算し、
複数の中間積と補正ベクトルとを加算して最終積を得る方法。
【請求項２】
乗算器は均等な幅を有している請求項１に記載の方法。
【請求項３】
前記補正ベクトルは、
分割演算数Ｂの所定の１つのＭＳＢへと導かれる疑似符号がない場合はゼロであり、
第２の被乗数Ａに拡張された符号のときは、小さい方の分割乗数の幅により左にシフトされる請求項２に記載の方法。
【請求項４】
前記補正ベクトルは、
中間積の加算ではなく付加的な加算、
中間積の加算と同時、または
並列乗算と同時
のうちの１つにより加算されている請求項１に記載の方法。
【請求項５】
同一の共有されたハードウェアで精度を変えて乗算を実行するために用いられている請求項１ないし請求項４の何れかに記載の方法。
【請求項６】
複数の乗数は、２つまたは３つの何れかである請求項５に記載の方法。
【請求項７】
２の捕捉演算の複数の精度を実行することができる集積回路であって、
２つの副乗算器と、
補正ベクトルを生成する回路と、
を備える回路。
【請求項８】
１つの副乗算器の被乗数のＭＳＢにおける非ゼロ符号ビットをテストする付加的回路をさらに備える請求項７に記載の回路。
【請求項９】
前記付加的回路は、前記補正ベクトルの値を制御する請求項８に記載の回路。
【請求項１０】
前記補正ベクトルは、
前記中間積加算器ではなく付加的加算器、
前記中間積加算器における付加的ポート、または、
２の補数乗算パネルにおける付加的列、
の何れか１つを介して加算される請求項７ないし請求項９の何れかに記載の回路。
【請求項１１】
Ｎ個の副乗算器と、
加算器と、
補正ベクトルを生成する回路と、
を備える２の補数乗算を実行することのできる集積回路。
【請求項１２】
一方の副乗算器の１つの被乗数のＭＳＢにおける非ゼロ符号をテストする付加的回路をさらに備える請求項１１に記載の回路。
【請求項１３】
前記付加的回路は、前記補正ベクトルの値を制御する請求項１２に記載の回路。
【請求項１４】
前記補正ベクトルは、
前記中間積加算器ではなく付加的加算器、
前記中間積加算器にお家得る付加的ポート、または、
２の補数乗算パネルにおける付加的列、
の何れか１つを介して加算される請求項１１ないし請求項１３の何れかに記載の回路。
【請求項１５】
１つの軸に沿って乗算器の各しきり用に１つの補正ベクトルが設けられている請求項１４に記載の回路。
【請求項１６】
１つの軸に沿って乗算器の各しきり用に１つの補正ベクトルが設けられている請求項５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はデジタル信号処理（ＤＳＰ―Digital Signal Processing―）に関し、特に、デジタル信号処理ＡＳＩＣ（Application Specific Integrated Circuits―特定用途向け集積回路―）の実施における乗算の演算最適化に関する。
【背景技術】
【０００２】
プログラム可能なデジタル信号処理システムは、信号処理変数の固定小数点精度を混合するアルゴリズムの実現にはとっては非能率であるものとして領域と累乗との両方で公知である。このシステムは、最高の精度を提供するための種々の演算上の精度間で共有されるべきである全てのハードウェアを有する必要性から非能率的に結果を出している。換言すれば、最大の必要精度は、共有のハードウェアによりサポートされていなくてはならない。したがって、非能率は、このハードウェアが、より少ない精度を要求する演算により用いられているときに、結果を出している。
【０００３】
固定のＡＳＩＣの実施において、ハードウェアの効率性を向上させるために精度はしばしば最小化される。良く知られた例は、デジタル地球的テレビジョン受信の適用例におけるベスティジタル・サイド（痕跡側）帯域（“ＡＴＳＣ８−ＶＳＢ”）に用いられる決定フィードバック・イコライザがあり、ここではデータ演算数（オペランド）が４ビットの決定シンボルより構成されている。イコライザのフィードフォワード部分のためには、完全１２ビットソフトシンボル精度が用いられている。フィードフォワードイコライザは、具体的には１６ビットの係数を備える６４のフォワードタップから構成され、これに対してフィードバックイコライザは、具体的には１６ビットの係数を備える１２８タップから構成されている。したがって、ＡＳＩＣのハードウェアで最適化されたとき、フィードバック演算は、１２８回の「４×１６」の乗算を必要とするであろうし、フィードフォワード演算は、６４回の「１２×１６」の乗算を必要とする。したがって、これらの演算は異なる乗算器に対して計画されるであろう。しかしながら、もしもイコライザがハードウェアを共有するプログラム可能なシステムで計画されたならば、このシステムは、ただ１つの乗算器でも有用であろうから、１２８個の「４×１６」乗算器を含み、同じ「１２×１６」乗算器へと計画されるべき全ての演算を要求するであろう。したがって、この後者の場合は、各フィードバック乗算演算の間に２／３の有用なハードウェアを効果的に使用する固定のＡＳＩＣの対応部分よりも３倍もたくさんの１２８個のマッピング（計算）例を導くことになるであろう。
【０００４】
理論上は、この非能率性を修正するため、非能率マッピングが数学的なおよび格納上の手段におけるサブワード並列によって幾分緩和されることが可能である。サブワード並列は、並列にフェッチ（捕捉）されて演算されるべき多数の演算子（オペランド）を許容すると共に、有用であるべき並列な数学的な手段に依存している。例えば、もしも共有されたハードウェアが「１２×１６」乗算を実施するために設計されているのならば、３並列の「４×１６」乗算を同時に実施することもまた容易に適合することができる。あるいは完全な「１２×１６」乗算のために、完全精度１２ビットワードを備えるようにして、このワードを３つ以上の「４×１６」乗算に分割しその中間的な結果を結合可能にする。しかしながら、この場合には、このワードが完全な精度の演算に結合されるべきであるならば、そのとき数学的な手段はまた、完全精度の演算に結合可能であるべきである。分割および結合の間に、数学的な手段の精度は、メモリおよび加算器としての簡単なユニットに対して直接的であり、２の補数乗算器としては難しい。例えばブース（Booth）やバウ・ウーリィ（Baugh Wooley）などのような、標準的な２の補数乗算器は、最も左（ＭＳＢ）、または負の数を識別するための印や位置における非ゼロビットを説明するであろう。したがって、図２の構成により示されるものとして試みられた、２つまたは３つの２の補数乗算器間の広い演算数の分散は、正しい積を簡単には生成しないであろう。
【０００５】
したがって、この技術分野で必要とされているものは、共有されたハードウェアを用いて精度を変更する２の補数乗算を効率的に実行するための手段である。
【０００６】
更に必要とされるものは、２の補数演算における多数の並列でより小さい乗算器を上回る大きな演算数をマッピングしたときに正しい積の結果を実現するための手段である。
【発明の概要】
【０００７】
この発明は、分割された２の補数乗算を実現するための方法および構成を提供することにより従来技術の上述した欠点を改善することを求めるものである。したがってこの発明は、乗算手段として効率的なサブワード並列を備える方法および構成を提供している。
【０００８】
好適な実施態様において、２つの部分からなる２の補数乗算器が設けられているので、ｎビットの演算数Ｂを分割することができ、演算数Ｂの各部分は他の演算数Ａと並列に乗算される。中間的な積は、加算器により補正ベクトルと結合されて、最下位の、またはより低位の、ｐビットの分割された演算数Ｂ、または、Ｂ［ｐ−１：０］、ここでｐ＝ｎ／２、を演算する乗算器からの２の補数の副次的な積における負の符号の何れかの誤りを補正している。補正ベクトルＣは、簡単な回路を用いて演算数ＡおよびＢから導き出される。
【０００９】
この発明の技術は、３またはそれ以上の並列乗算器に容易に拡張可能であり、ｎビットの演算数Ｄを分割して演算数Ａと並列に乗算することもできる。補正ベクトルＣは同様に演算数ＤおよびＡからアナログな方法により導き出されて、２つの部分からなる２の補数乗算器の実施態様へと出力される。
【００１０】
この発明は、乗算の手段のための能率的なサブワード並列を提供するために、分割された２の補数乗算を実現する手段について検討するものである。一例として、２つの部分からなる乗算器の構成が、図１に示されたように、２つの並列で低減された精度の演算を実現できるように求められている。これらの同じ構成の乗算器にとって、例えば図２に示されるように、１つの完全な鮮度の演算をサポートすることは望ましいことである。
【００１１】
上述されたＶＳＢ・ＤＦＥの例にとっては、３つの「４×１６」乗算器アレイが、３つの同時乗算、または、１つの「１２×１６」乗算の何れかを提供することができる。したがって、この分割乗算器は、領域と電力効率の良いハードウェアを共有するプログラム可能な手段を実現するための重要なツール（手段）となる。
【００１２】
次に、分割乗算器の実現は、２つに分割された２の補数乗算の場合として示されるであろう。図１を参照すると、２つの「ｍ×ｐ」個の２の補数乗算器１０１と１０２が、単一の共有されたｍビットの係数Ａの並列乗算を実現しており、したがって、ＡはＢとＣとの両方により並列に乗算してＢ×Ａの結果としての積Ｐ１と、Ｃ×Ａの結果としての積Ｐ０とを生成している。このような乗算は、上述した筋書きのように、２つのより少ない精度の乗算のために用いられているであろう。
【００１３】
図２は、２つの乗算器についての、より高精度の乗算の場合を示している。図２は、同一の２つのｍ×ｐ乗算器２０１，２０２についての単一のｎビットの演算数Ｂを分散して出力加算器２０３での副次的な積を結合することにより積を形成する試みを示している。示されたケースにおいては、演算数Ｂにおける「ｐ−１」番目のビットが、より低い順番の乗算器２０１内で２の補数の印として解釈されるであろうから、正しい積は実現されないであろう。
【００１４】
２つの乗算器において演算数Ｂを分割する正しい方法が、図３に示されている。図３において、正しい結果は、２つの乗算の副次的な積３２０と３２１に加えて、補正ベクトル３１０を最終の積の加算に挿入することにより実現される。補正ベクトルは、簡単な回路を用いる演算数ＡおよびＢから導き出される。このような回路の具体例は、図５に示されている。演算数ＡとＢおよび補正ベクトルＣの間の分析的な関係は、２つおよび３つの乗算器の場合には以下のように導かれるであろうし、それらから望まれるだけの多くの乗算器に対して容易に拡張可能である。
【００１５】
補正ベクトルは、（ｉ）副次的な積を結合する加算器（図示されず）に続く付加的な加算器、（ｉｉ）副次的な積の結合加算器３０３（図３に示された実施形態）における付加的なポート、または、（ｉｉｉ）２の補数乗算パネル（図示せず）のそれぞれにおける付加的な列、の何れかにより、積へと加算することができる。
【００１６】
さらに、分割乗算器は、単一の分割加算器と共に最終的な積を形成するために、２つに分離された２の補数乗算器として実現可能である。これらの設計オプションの何れかを実現することにより、この明細書により提供される分割乗算器の構造により、意味のあるゲート遅延の不利益を被る必要がなくなる。
【００１７】
ＶＳＢ・ＤＦＥ用に所望される３対１乗算器の場合については、２つの乗算器の場合のための以下のものと同様な微分が、３つの２の補数乗算器を１つの結合された乗算器に結合させるために要求される補正ベクトルを決定できる。例として、１つに結合された２つの分離乗算器用の補正ベクトルの微分は、次のように説明される。
【００１８】
演算数は２の補数フォーマットで以下の式（Equation）１により表現される：
【数１】
2005504389.tif 000003
式１において、最上位ビット（符号）のための負の値に注意してほしい。
【００１９】
被乗数ａｍおよびｂｎによるｍ×ｎの積は、以下の式（Equation）２で表現される：
【数２】
2005504389.tif 000004
より低い順位の乗算器内の二重のｍ×ｐ個の２の補数乗算器による分割ｎビットの被乗数Ｂの説明は、以下の式（Equation）３のように、セグメントの最上位ビットを符号として説明している：
【数３】
2005504389.tif 000005
式３の式２への代入は、以下のように、式（Equation）４をもたらしている：
【数４】
2005504389.tif 000006
式４を式２と比較すると、式（Equation）５に示されるように補正項が見つかる：
【数５】
2005504389.tif 000007
ここで、補正は式（Equation）６により与えられる：
【数６】
2005504389.tif 000008
もしも被乗数ＢのＭＳＢ（最上位ビット）ｂｐ−１がゼロに等しくなれば、この式は単純にゼロと等しくなり、または、もしもｂｐ−１＝０ならば、補正＝０である。
【００２０】
式６における負の項の加法項への置換は式（Equation）７をもたらす：
【数７】
2005504389.tif 000009
そして最後に、補正ベクトルは、式（Equation）８に示すように、が拡張された符号である被乗数Ａで、ｐにより左シフトされており、副乗算器の幅である。補正ベクトルは、非ゼロの疑似符号ｂｐ−１のために与えられるだけである。したがって、簡単なチェックが、ｐ−１番目の位置での非ゼロのためのハードウェアにより行なわれなければならない。もしもこのビットが１であれば、補正ベクトルは最終の加算器に対して与えられる。
【数８】
2005504389.tif 000010
次に、図４は、この発明の実施形態による完全な２つの乗算器を示しており、前の図のように、２つの乗算器４０１，４０２と加算器とを示している。被乗数Ｂは２つの乗算器４０１と４０２で分割されて、中間的な積４１１と４１２が、加算器４０３で共に補正ベクトル４１０に加算されて、正しい積４５０を導き出す。補正ベクトルは、もしも被乗数Ｂのｐ−１番目のビットがゼロならば、上述したようにゼロである。
【００２１】
次に、完全のために、３つの演算数の場合の補正ベクトルの微分が提供される。
【数９】
2005504389.tif 000011
上記の乗算式（Equation）１で導かれた２（双）方向の分割と同様の方法によって、式（Equation）９によって拡張された積を得る。合併整理された乗算（式―Equation―２）のために数式の１２の項をこの式と比較すると、式（Equation）１０が得られる：
【数１０】
2005504389.tif 000012
ここで、各補正項のためには：
【数１１】
2005504389.tif 000013
一般的に説明すると、何れかの演算数により２の補数乗算パネルで分割を導くために、我々は修正項（式―Equation―１１）を各パネルからの部分的な加算合計に足さなくてはならない。この修正項は、分割（演算数は非分割）に直交する簡単な被乗数、拡張された符号であり、分割演算数内の疑似符号により乗算されたもので、その後にシフトされているので、修正項のＬＳＢは、パネルの上半分により導かれた部分的な合計に加算することができる。このような分割は、乗算器の任意的な区分化を提供するために、何れかの演算数にしたがって反復的に導き出すことができる。乗算数の各分割は、最終的な積を修正するための１つの補正ベクトルのための必要性を発生させる。
【００２２】
一般的には、１つの軸に沿って乗算器の各区分のために１つの補正ベクトルが存在している。例えば、もしも各被乗数が一旦分割されるならば、乗算器を４つのパネルより構成することにより、２つの補正ベクトルが必要とされる。
【００２３】
上記の記載は本発明の好適な実施形態を説明しているが、種々の変形や変更、例えばこの発明を多数の乗算器にわたる分割演算数へと拡張することにより同一の共有のハードウェアにわたって実現されるべき種々のレベルの精度での乗算を可能にすることが実用化されることは、この発明の属する技術分野の熟練者により理解される。さらに、補正ベクトルを最終の加算器に加算する例示的方法における変形例の使用は、容易に実現できる。このような変更例は、特許請求の範囲に記載された請求項によりカバーされるべきであることを意図している。
【図面の簡単な説明】
【００２４】
【図１】並列演算を行なうオペランドを共有するｍ×ｐ個の２の補数乗算器を示すブロック図である。
【図２】２つのｍ×ｐの２の補数乗算器におけるオペランドを分散すると共に出力加算器における副次の積を結合させる状態を示すブロック図である。
【図３】この発明の好適な実施形態による図２の構造を改善例を示すブロック図である。
【図４】図３の構成をより詳細に示すブロック図である。
【図５】この発明による補正ベクトルを得るための具体的な回路例を示す回路図である。
【図１】
2005504389.tif 000014
【図２】
2005504389.tif 000015
【図３】
2005504389.tif 000016
【図４】
2005504389.tif 000017
【図５】
2005504389.tif 000018
【国際公開パンフレット】
2005504389.tif 000019
2005504389.tif 000020
2005504389.tif 000021
2005504389.tif 000022
2005504389.tif 000023
2005504389.tif 000024
2005504389.tif 000025
2005504389.tif 000026
2005504389.tif 000027
2005504389.tif 000028
2005504389.tif 000029
2005504389.tif 000030
2005504389.tif 000031
2005504389.tif 000032
2005504389.tif 000033
【国際公開パンフレット（コレクトバージョン）】
2005504389.tif 000034
【国際調査報告】
2005504389.tif 000035
2005504389.tif 000036
2005504389.tif 000037