JPH06175823A - 乗算装置の選択された部分へ電力を与えるための装置および電源から乗算装置の選択された部分への電力伝達を制御するための装置 - Google Patents

乗算装置の選択された部分へ電力を与えるための装置および電源から乗算装置の選択された部分への電力伝達を制御するための装置

Info

Publication number
JPH06175823A
JPH06175823A JP5192179A JP19217993A JPH06175823A JP H06175823 A JPH06175823 A JP H06175823A JP 5192179 A JP5192179 A JP 5192179A JP 19217993 A JP19217993 A JP 19217993A JP H06175823 A JPH06175823 A JP H06175823A
Authority
JP
Japan
Prior art keywords
multiplier
register
digits
digit
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.)
Granted
Application number
JP5192179A
Other languages
English (en)
Other versions
JP3388608B2 (ja
Inventor
Safdar M Asghar
サフダー・エム・アシュガー
Donald D Mondul
ドナルド・ディ・モンデュール
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH06175823A publication Critical patent/JPH06175823A/ja
Application granted granted Critical
Publication of JP3388608B2 publication Critical patent/JP3388608B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/3816Accepting numbers of variable word length

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 第1の複数個の桁数を有する第1の数と第2
の複数個の桁数を有する第2の数との積を求めるための
乗算装置の選択された部分への電源からの電力伝達を制
御するための装置。 【構成】 乗算装置340は複数個の部分積を求める複
数個の乗算ユニット354と情報を記憶するレジスタユ
ニット360とを含む複数個の素子を含み、レジスタユ
ニット360は所定の配列に従って部分積を累算的に記
憶するための複数個のレジスタセル358を含み、この
装置は電源から乗算装置340へ電力を伝達するための
制御可能な伝達経路を与えるための電力バス372,3
74と、伝達経路を制御して特定の素子と電源との間で
選択的に作動的接続を行なう制御ユニットとを含む。制
御ユニットは第1と第2の数とを比較し、かつ第1と第
2の数と第2の数との間の大きい方の桁数の数を定める
ための論理ユニットを含む。

Description

【発明の詳細な説明】
【0001】
【発明の背景】この発明は、2つの数の積を求めるため
の方法と、その方法を行なうための装置とに関する。
【0002】好ましくはサブストレート上に配列される
シリコン素子から構成される、固体素子を用いる計算シ
ステムにおいて、一定の基本的設計規準が一般に用いら
れる。たとえば、各素子によって占有されるサブストレ
ート上のスペースができる限り小さいことが所望され
る。さらに、装置によって消費されるエネルギは、特に
電池で電力を与えられるシステムにおいては、できる限
り最小限にされることが所望される。また、計算機シス
テムはできる限り高速で動作することが所望される。
【0003】かかる計算機システムのための乗算器は、
一般にスイッチングトランジスタのマトリックスで作ら
れ、そのマトリックスは計算機装置によって取扱われる
べき数の予想される最大のサイズに対処するために十分
なサイズである。したがってたとえば4桁の数による4
桁の数の乗算を行なうために、乗算器は乗算に含まれる
キャリおよびその他のオーバーヘッド動作に対処するた
めの付加的行または列またはその両方を有する16×1
6ビットのマトリックス(つまり16列のトランジスタ
であり、各々の列は16行のトランジスタを有する)を
必ず含むであろう。
【0004】より小さい数に対して、乗算器マトリック
ス内の上位のビットは、乗算演算に含まれる被乗数およ
び乗数を正確にストアするために適当であるように、0
で満たされる。しかしながら、これらの0で満たされた
ビットはかかる0で満たすことを行なうためになお駆動
されなければならない。かかる0で満たされたビットは
乗算器によって行なわれる計算中に必然的に含まれてお
り、そのため乗算演算のためにより大きな数に対処する
時に、動作速度、電力要求およびサブストレート上の占
有面積(つまりスペース)はすべて犠牲にされる。
【0005】特に電池で電力を与えられるシステムにお
いて、電力を節約するために、特定の乗算演算のために
必要な十分な数のビットのみを駆動する乗算器を有する
ことは有利であろう。スペースを節約しかつ乗算器を使
用するシステムの実装密度を上げるために、サブストレ
ート上にできる限り少ない占有面積を占有する乗算器を
有することはさらに有利であろう。乗算器を使用するシ
ステムの動作速度を促進するために乗算演算を高速で行
なう乗算器を有することはまたさらに有利であろう。
【0006】上述の所望される利点を実現できる乗算器
の設計および動作を容易にする方法によって乗算を行な
うこともまた有利であろう。
【0007】
【発明の概要】この発明は第1の数と第2の数との積を
求めるための方法を含み、その第1の数は第1の下位桁
から第1の上位桁へ階層的に配列された複数個の第1の
桁数を有し、かつその第2の数は第2の下位桁から第2
の上位桁へ階層的に配列された複数個の第2の桁数を有
する。この方法はその好ましい実施例において次のステ
ップを含む: (1) 複数個の部分積を求める(より短い数のブラン
クの桁を0と取扱う)ステップであり、複数個の部分積
は、それぞれの数の第1の桁数と第2の桁数との対の組
合せについての部分積を含み、それにより各部分積に含
まれる対の組合せの第1の桁数の重みと第2の桁数の重
みとによって定められる合成の重みを確立する。
【0008】(2) 累算値をストアするための階層的
重みを有する複数個のレジスタセルを有するレジスタを
提供する。
【0009】(3) 次の関係 Pm,n −[累算して]→rx ; x=(m+n)−1 に従って、レジスタセルの特定されたものにおいて累算
値を生成するために、それぞれの部分積の選択されたも
のを累算し、ここで「Pm n 」はそれぞれの部分積を
表わし、「m」は第1の重み(m=1、2、…)を表わ
し、「n」は第2の重み(n=1、2、…)を表わし、
かつ「rx 」は重み「x」を有する特定されたレジスタ
セルを表わす。
【0010】(4) 下位のレジスタセルにストアされ
た累算値の特定の桁数を累算値を含む次の上位のレジス
タセルにシフトすることと、特定の桁数を、次の上位の
レジスタセルに最下位桁数としてストアされた累算値に
加算することとを含むシフト累算演算を行ない、特定の
桁数は累算値の最下位桁よりも上位である、下位のレジ
スタセルにストアされた累算値の桁数であり、シフト累
算演算は、レジスタ内の最下位レジスタセルから最上位
レジスタセルまで、重みの隣接したレジスタセルの間で
順次連続して行なわれる。
【0011】(5) 積を確定するために複数個のレジ
スタセルの内容を読出す。この発明の他の局面は、前述
の方法を実行するための装置を含み、その装置はその好
ましい実施例において、複数個の第1の桁数と複数個の
第2の桁数との対の組合せの各々についての部分積を定
めるための論理回路と、累算値をストアするための、階
層的重みを有する複数個のレジスタセルを有するレジス
タと、累算値を生成するためにそれぞれの部分積の選択
されたものを累算するための累算回路とを含み、累算回
路は上記の関係に従って、累算値を特定のレジスタセル
にストアする。
【0012】したがってこの発明の目的は、電力消費を
節約するために特定の乗算演算に必要なだけの素子を駆
動することを容易にする、2つの数の積を求めるための
方法およびその装置を提供することである。
【0013】この発明の他の目的は、この装置を用いる
システム中でサブストレート上で効率的にスペースを占
有する、2つの数の積を求めるための方法およびその装
置を提供することである。
【0014】この発明のさらに他の目的は、この装置を
用いるシステムの動作速度を速くするために乗算演算を
高速で行なう、2つの数の積の値を求めるための方法お
よびその装置を提供することである。
【0015】この発明の他の目的および特徴は、この発
明の好ましい実施例を示す添付の図面に関連して考慮さ
れるときに、以下の詳細な説明および前掲の特許請求の
範囲から明らかになるであろう。
【0016】
【詳細な説明】旧式の高速データ信号処理装置は、音声
圧縮、高速モデム操作、デジタルフィルタの操作等の機
能のためのアルゴリズムを実行するために高速乗算器を
用いる。典型的には、このような機能のために用いられ
る乗算器は、大きく(16×16ビットアレイのオーダ
で)、かつ高電力消費と、広いダイス領域(サブストレ
ート上の占有面積)と、高精度とを含む。算術論理ユニ
ット等の乗算器の他の使用は一般に、高速操作を維持す
るために、同一の欠点、つまり高電力消費および広いダ
イス領域の影響を受け、かつこの欠点はより速い速度、
より高い精度、およびより大きな数への要求に伴って悪
化する。
【0017】この発明は、2つの数の積を求めるための
方法(つまり乗算の方法)を含み、その方法は、1つの
乗算器で乗算するために要求されるであろう乗算器のサ
イズよりも小さい複数個の乗算器の間で乗算操作を分散
することを含む。かかる分散処理は演算の速度と結果の
正確さとを維持する一方で、より小さなダイス領域要求
を与え、かつ特定の乗算演算に含まれる特定の被乗数お
よび乗数に要求される分配処理配列中で、特定の乗算ユ
ニットのみを駆動する機会を与える。
【0018】一般に、この方法は、被乗数と乗数との一
部の部分積の発生を含み、その部分積の各々は、それぞ
れより小さい乗算ユニットを要求し、かつ被乗数の桁数
と乗数の桁数との特定のそれぞれの重みに従って、部分
積がその中で累算されているレジスタ中でシフト累算演
算を行なう。
【0019】この発明の方法を説明する上で使用される
用語の理解を容易にするために、次の用語が図示され
る。
【0020】
【表1】
【0021】
【表2】
【0022】
【数1】
【0023】この発明の第1の実施例に従って、第1の
数と第2の数とが乗算される。第1の数は、下位桁から
上位桁へ階層的に配列された複数個の第1の桁数を有
し、かつ第2の数は下位桁から上位桁へ階層的に配列さ
れた複数個の第2の桁数を有する。2つの数のうちの短
い方の数の最上位桁は、第1および第2の数が同数の桁
数を有するように適切に0で満たされる。第1の数は少
なくとも1つの第1のセグメント対に区分され、その第
1のセグメント対の各々は式「am ,bm 」で表わさ
れ、ここで「a」はそれぞれの第1のセグメント対のう
ちの上位の第1のセグメントを表わし、かつ「b」はそ
れぞれの第1のセグメント対のうちの下位の第1のセグ
メントを表わす(「m」=1、2、3、…)。「m」は
第1の数内のそれぞれの第1のセグメント対の重みを表
わす。第2の数は同様に少なくとも1つの第2のセグメ
ント対に区分され、その第2のセグメント対の各々は式
「cn,dn 」で表わされ、ここで「c」はそれぞれの
第2のセグメント対のうちの上位の第2のセグメントを
表わし、かつ「d」はそれぞれの第2のセグメント対の
下位の第2のセグメントを表わす(「n」=1、2、
3、…)。「n」は第2の数内でのそれぞれの第2のセ
グメント対の重みを表わす。こうして、2つの数は同数
のセグメント対に区分され、かつ第1のセグメントおよ
び第2のセグメントのそれぞれは所与の重みのスパンに
対して同数の桁数を含む。
【0024】第1のセグメント対の各々と第2のセグメ
ント対の各々とについて加算圧縮が計算される。つま
り、式「(am +bm )」で表わされる、第1のセグメ
ント対の各々についての第1の加算圧縮と、式「(cn
+dn )」によって表わされる第2のセグメント対の各
々についての第2の加算圧縮とが計算される。同様に、
式「(am −bm )」で表わされる第1のセグメント対
の各々についての第1の減算圧縮と、式「(cn
n )」で現わされる第2のセグメント対の各々につい
ての第2の減算圧縮とがまた計算される。
【0025】第1のセグメント対の各々のうちの下位セ
グメントの各々と、第2のセグメント対の各々のうちの
下位セグメントの各々との積を含む、1組の1次部分積
が計算される。各1次部分積は式「P1m,n 」で現わさ
れ、ここでP1m,n =bm n であり、かつ「m、n」
は1次部分積の各々について合成の重みを確立する。
【0026】第1の加算圧縮の各々と、第2の加算圧縮
の各々との積を含む、1組の2次の部分積が計算され
る。2次部分積の各々は、式「P2m,n 」で表わされ、
ここでP2m,n =(am +bm )(cn +dn )であ
り、かつ「m,n」は2次部分積の各々について合成の
重みを確率する。
【0027】第1の減算圧縮の各々と、第2の減算圧縮
の各々との積を含む、1組の3次部分積が計算される。
3次部分積の各々は式「P3m,n 」で表わされ、ここで
P3 m,n =(am −bm )(cn −dn )であり、かつ
「m,n」は3次部分積の各々について合成の重みを確
立する。
【0028】特定の2次部分積と、同一の合成の重みを
有する特定の3次部分積との和が計算される。こうして
計算された和は、2で除算されて中間結果を与える。中
間結果の計算で使用された2次および3次部分積の合成
の重みと同じ合成の重みを有する1次部分積は、その中
間結果から減算されて加算係数を生成する。各々の加算
係数は式 「F+ m,n 」、ここでF+ m,n =[(P2m,n +P3
m,n )÷2]−P1m,n で表わされる。
【0029】2次部分積から、同一の合成の重みを有す
る3次部分積を引いた差が計算され、中間差を生じる。
中間差は2で除算されて減算係数を生成する。各減算係
数は式 「F- m,n 」、ここでF- m,n =(P2m,n +P
m,n )÷2 で表わされる。
【0030】1次部分積と、減算係数と、加算係数と
は、レジスタセルのアレイを有するレジスタ中で累算さ
れて、レジスタセルの適切なものの中で累算値を生じ
る。レジスタセルは、第1のレジスタセルから(4j−
1)レジスタセルまで階層的に配列され、ここで「j」
は第1のセグメント対の数を表わす。第1のレジスタセ
ルは階層的配列中で最下位の重みを有し、複数個のレジ
スタセルの各々は、rx によって表わされ、ここで
「x」はそれぞれのレジスタセルの重みを示す。それぞ
れのレジスタセル中の複数個の1次部分積の累算は関係 P1m,n =bm n −[累算して]→ r2(m+n)-3 に従って行なわれる。それぞれのレジスタセル中の減算
係数の累算は、関係 F- m,n −[累算して] → r2(m+n)-2 に従って行なわれる。それぞれのレジスタセル中の加算
係数の累算は、関係 F+ m,n −[累算して] → r2(m+n)-1 に従って行なわれる。
【0031】それから、レジスタセルのアレイ内の下位
レジスタセルから、レジスタセルのアレイ内の次の上位
のセルへ、シフト累算演算が行なわれる。シフト累算演
算は最下位レジスタセルで始まり、かつ下位レジスタセ
ル中の累算値の特定の桁数を次の上位のレジスタセルへ
シフトし、シフトされた上位の桁数を下位桁として、次
の上位のレジスタセル内で累算値と加算することを含
む。シフトされるべき特定の桁数は、第1の数がそれに
除算される第1のセグメントの各々の桁の数に等しい、
下位のレジスタセル中の累算値の下位桁の数よりも上位
のすべての桁数を含む。シフト累算演算は最下位セルか
ら継続し、かつ次の上位レジスタセルが(4j−1)セ
ル、つまり中に累算値がストアされた最上位セルとなる
まで、重みの隣接したレジスタセルの間で連続して行な
われる。上述のシフト累算演算が完了した後、レジスタ
セルのアレイ内にストアされる数は、第1の数と第2の
数との積を含み、かつレジスタセルのアレイの外へシフ
トされてこの発明の方法を用いる装置内で適切なさらな
る処理において使用されてもよい。
【0032】この発明の方法は以下の例によって例示さ
れるであろう。例I: 256×256の乗算を行なうために (1) 被乗数と乗数とを分離して式(1)のようにセ
グメント対にする。
【0033】(2) 加算圧縮および減算圧縮を式
(2)のように定める。 (3) 式(3)のように1次部分積(P1)を定め
る。
【0034】(4) 加算係数(F+ )および減算係数
(F- )を式(4)のように定める。
【0035】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の定められた項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(5)のようになる。
【0036】
【数2】
【0037】(b) このように、レジスタセルのアレ
イは累算値について表3(A)のように定められる。
【0038】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位のレジスタ
セルの累算値から次の上位のレジスタセルへシフトし、
かつそれらのシフトされた特定の桁数を次の上位のレジ
スタセル中の累算値に下位桁として加算する。シフトさ
れた特定の桁数はすべて、「b」中の桁の数よりも上位
の桁数であり、「b」と「d」とは同数の桁数を有する
ことが要求される。表3(B)参照。
【0039】
【表3】
【0040】(7) レジスタの内容は正解(65,5
36)を含み、かつその内容をレジスタセルのアレイか
ら直列または並列のいずれかで適切にシフトすることに
より、他の処理のために利用可能である。
【0041】この方法は、「a」と「c」とが同数の桁
数(ブランクは0として扱われる)を有する限りかつ
「b」と「d」とが同数の桁数を有する限り、被乗数と
乗数とがどのように分離されようとも、正確な結果を与
える。
【0042】例II: (1) 被乗数と乗数とを式(6)のように分離する。
【0043】(2) 加算圧縮および減算圧縮を式
(7)のように定める。 (3) 1次部分積(P1)を式(8)のように定め
る。
【0044】(4) 加算係数(F+ )および減算係数
(F- )を式(9)のように定める。
【0045】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(10)のようになる。
【0046】
【数3】
【0047】(b) このように、レジスタセルのアレ
イは累算値に対して表4(A)のように設定される。
【0048】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から、次に上位のレジスタセルへシフトし、
かつそれらのシフトされた特定の桁数を次に上位のレジ
スタセル中の累算値に下位桁として加算する。シフトさ
れた特定の桁数はすべて、「b」中の桁の数よりも上位
の桁数であり、「b」と「d」とは同数の桁数を有する
べきである。表4(B)参照。
【0049】
【表4】
【0050】(7) レジスタの内容は正解(250,
000)を含み、かつその内容をレジスタセルのアレイ
から直列または並列のいずれかで適切にシフトすること
によって、他の処理について利用可能である。
【0051】この方法はより大きな数にも対処する。例III : 1,234×5,678を乗算するために (1) 被乗数と乗数とを式(11)のように分離す
る。
【0052】(2) 加算圧縮および減算圧縮を式(1
2)のように定める。 (3) 1次部分積(P1)を式(13)のように定め
る。
【0053】(4) 加算係数(F+ )および減算係数
(F- )を式(14)のように定める。
【0054】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(15)のようになる。
【0055】
【数4】
【0056】(b) したがってレジスタセルのアレイ
は累算値に対して表5(A)のように設定される。
【0057】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から、次に上位のレジスタセルへシフトし、
かつそれらのシフトされた特定の桁数を次に上位のレジ
スタセル中の累算値に下位桁として加算する。シフトさ
れた特定の桁数はすべて「b」中の桁数より上位の桁数
であり、「b」と「d」とは同数の桁数を有するべきで
ある。表5(B)参照。
【0058】
【表5】
【0059】(7) レジスタの内容は正解(7,00
6,652)を含み、かつその内容をレジスタセルのア
レイから直列または並列のいずれかで適切にシフトする
ことによって、他の処理について利用可能である。
【0060】この方法は10を底とする数以外の数につ
いても有効に働く。たとえば135×214(7を底と
する)の乗算を行なうために:例IV :(7を底とする) (1) 被乗数と乗数とを式(16)のように分離す
る。
【0061】(2) 加算圧縮および減算圧縮を式(1
7)のように定める。 (3) 1次部分積(P1)を式(18)のように定め
る。
【0062】(4) 加算係数(F+ )および減算係数
(F- )を式(19)のように定める。
【0063】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(20)のようになる。
【0064】
【数5】
【0065】
【数6】
【0066】(b) したがって、レジスタセルのアレ
イは累算値に対して表6(A)のように設定される。
【0067】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から次に上位のレジスタセルへシフトし、か
つそれらのシフトされた特定の桁数を次に上位のレジス
タセル中の累算値に下位桁として加算する。シフトされ
た特定の桁数はすべて、「b」中の桁数よりも上位の桁
数であり、「b」および「d」は同数の桁数を有するこ
とが要求される。表6(B)参照。
【0068】
【表6】
【0069】(7) レジスタの内容は正解(32,5
56)を含み、かつその内容をレジスタセルのアレイか
ら直列または並列のいずれかで適切にシフトすることに
より、他の処理のために利用可能である。
【0070】この方法は乗算演算をさらに分配するため
に、被乗数および乗数をより完全に分離し、それにより
分散処理においてより小さい乗算器を用いるように拡張
されることが可能である。
【0071】例V: (1) 被乗数と乗数とを式(21)のように分離す
る。
【0072】(2) 加算圧縮および減算圧縮を式(2
2)のように定める。 (3) 1次部分積(P1m,n )を式(23)のように
定める。
【0073】(4) 加算係数 (F+ m,n )および減
算係数 (F- m,n )を式(24)(25)のように定
める。
【0074】
【数7】
【0075】
【数8】
【0076】
【数9】
【0077】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと表7のようになる。
【0078】(b) したがって、レジスタセルのアレ
イは累算値について表8のように設定される。
【0079】
【表7】
【0080】
【表8】
【0081】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から次に上位のレジスタセルにシフトし、か
つそれらのシフトされた特定の桁数を次の上位のレジス
タセル中の累算値に下位桁として加算する。シフトされ
た特定の桁数はすべて「bm 」中の桁の数よりも上位の
桁数であり、「bm 」と「dn 」とは同数の桁数を有す
ることが要求される。表9参照。
【0082】(7) レジスタの内容は正解(7,00
6,652)を含み、かつその内容をレジスタセルのア
レイから直列または並列のいずれかで適切にシフトする
ことによって他の処理のために利用可能である。
【0083】一般に認められた乗算のマニュアルの方法
を調べると、この発明の上述の方法に対する簡略化した
アプローチがわかり、かつその方法の代わりの実施例を
生じる。
【0084】特にたとえば4桁の数について、レジスタ
のセットアップは表10のように定められる。
【0085】マニュアル乗算技術のかかる応用から生じ
る「斜交マトリックス」は正方マトリックスとして表1
1のように表わされ得る(4桁の数、n=2)。
【0086】
【表9】
【0087】
【表10】
【0088】
【表11】
【0089】この発明のこの方法の第1の実施例に関連
して先に説明されたレジスタのセットアップが対角線上
にみられる。1次部分積(P1m,n )、加算係数(F+
m,n)、および減算係数(F- m,n )もまた対角線上に
みられることに注目されたい。表12参照。
【0090】つまり、(列1,行1)を介して延長する
対角線はP11,1 (b1 1 )を含み、この対角線上の
値はレジスタセルr1 中で累算する。
【0091】(列2,行1)から(列1,行2)へ延び
る対角線はF- 1,1 ( a1 1 +b 1 1 ) を含み、こ
の対角線上の値はレジスタセルr2 中で累算する。
【0092】(列3,行1)から(列1,行3)へ延び
る対角線はP12,1 (b2 1 )と、F+ 1,1 (a1
1 )とP11,2 (b1 2 )とを含み、この対角線上の
値はレジスタセルr3 中で累算する。
【0093】(行4,列1)から(行1,列4)へ延長
する対角線はF- 2,1 ( a2 1 +b2 1 ) とF-
1,2 ( a1 2 +b1 2 ) とを含み、この対角線上の
値はレジスタセル4 中で累算する。
【0094】(列4,行2)から(列2,行4)へ延長
する対角線はF+ 2,1 (a2 1 )と、P12,2 (b2
2 )と、F+ 1,2 (a1 2 )とを含み、この対角線
上の値はレジスタセルr5 中で累算する。
【0095】(列4,行3)から(列3,行4)ヘ延在
する対角線はF- 2,2 (a2 2 +b2 2 )を含み、
この対角線上の値はレジスタセルr6 中で累算する。
【0096】(列4,行4)を介する対角線はF+ 2,2
(a2 2 )を含み、この対角線上の値はレジスタセル
7 中で累算する。
【0097】こうしてたとえばn=3である6桁の数に
ついて、正方マトリックスは表13のように設定され得
る。またたとえばn=4である8桁の数について、正方
マトリックスは表14のように設定され得る。レジスタ
のセットアップは対角線に沿ってあることがみられ、か
つ次の公式で表わされることができる(比較を容易にす
るためにn=2、n=3、およびn=4についての場合
は欄送りされる)。表15−表17参照。
【0098】
【表12】
【0099】
【表13】
【0100】
【表14】
【0101】
【表15】
【0102】
【表16】
【0103】
【表17】
【0104】調べてみると、レジスタのセットアップは
次の関係に従って行なわれることが認められ得る。
【0105】 一次部分積:Plm,n −[代入して]→r2(m+n)-3 減算係数 :F- m,n −[代入して]→r2(m+n)-2 加算係数 :F+ m,n −[代入して]→r2(m+n)-1 この発明のこの方法の第1の実施例に従って、第1の数
と第2の数との乗算のためのレジスタのセットアップを
定めるための、正方マトリックスの一般化された場合が
図1に示される。図1において、1ないしmの番号を付
けた列が示され、これは正方マトリックスの頂部を横切
って右から左へ増加している重みを示し、1ないしnの
番号を付けられた行もまた示され、これは正方マトリッ
クスの上から下へ増えていく重みを示す。
【0106】それぞれのレジスタrx 中に累算されるべ
き項は平行対角線上にみられるように示される。たとえ
ば1つの数が4つの第1のセグメント対と4つの第2の
セグメント対とに除算される(つまりm=4およびn=
4である)場合では、8列8行の正方マトリックスは、
(列m、行1)から(列1、行n)へと走る対角線、こ
こでm=n、に沿ってそれぞれのレジスタ中で累算され
るべきエレメントを与えるであろう。但し、様々な対角
線に沿って平方8×8マトリックス(図1中で太字で輪
郭を描かれる)内に入る項は、適切なレジスタ中で累算
されるであろう。一旦累算が行なわれれば、この発明の
方法の第1の実施例に関連して前述されたシフト累算演
算が行なわれる。
【0107】被乗数および乗数のセグメント対について
の合成の重みを示す添字(m、n)の代わりに(列、
行)の数をレジスタ番号と比較すると、レジスタセル中
の項のまたは部分積の累算は図2に示される表に従って
行なわれることが調べるとわかる。図2を参照して、レ
ジスタrX は、それぞれのレジスタ中で累算されるべき
部分積の(列、行)ロケーションが、それらが累算され
るべきレジスタrX の右のそれぞれのレジスタに関して
同一直線上に欄送りされて列挙されている。検査による
と、(列、行)の数の和(Σm+n)はいつも、1増加
したレジスタ指定xに等しいことがわかる。つまりm+
n=x+1である。したがって、所与の部分積がその中
に累算されるべきレジスタrX は、適切な正方マトリッ
クス内のその(列、行)ロケーションを確定することに
よりすべて定められ得る。
【0108】したがって、この発明に従う2つの数の積
を求めるためのより単純で好ましい方法は、被乗数と乗
数とをセグメント対に区分する必要がない。この発明の
好ましい方法に従って、第1の数(たとえば被乗数)
は、第1の下位桁から第1の上位桁へ階層的に配列され
た複数個の第1の桁数を有し、かつ、第2の数(たとえ
ば乗数)は、第2の下位桁から第2の上位桁へ階層的に
配列された複数個の第2の桁数を有する。この好ましい
方法は、複数個の部分積を求めるステップを含み(複数
個の部分積を求めている間、2つの数の内の短い方の数
のブランクの桁を0として扱う)、その複数個の部分積
は第1の桁数と第2の桁数との対の組合せの各々につい
てそれぞれの部分積を含む。こうしてそれぞれ部分積の
各々は、それぞれの部分積に含まれる対の組合せの第1
の桁の重みと、それぞれの部分積に含まれる対の組合せ
の第2の桁の重みとによって確立される、合成の重みを
有する。レジスタは情報をストアするために設けられ、
そのレジスタは、累算値をストアするために複数個のレ
ジスタセルを有し、各々のレジスタセルは階層的重みを
有する。選択された部分積は累算されて、次の関係 Pm,n −〔累算して〕→rx ; x=(m+n)−1 に従って、特定されたレジスタセル中で累算値を生成
し、ここで「Pm,n 」はそれぞれの部分積を表し、
「m」(m=1,2,3,…)はそれぞれの部分積に含
まれる対の組合せの第1の桁の重みを表し、「n」(n
=1,2,3,…)はそれぞれの部分積に含まれる対の
組合せの第2の桁の重みを表し、かつ「rx 」は、重み
「x」を有する特定されたレジスタセルを表わす。
【0109】それからレジスタ中でシフト累算演算が行
なわれる。シフト累算演算は、下位レジスタセル中にス
トアされた累算値の特定の桁数を、累算値を含むレジス
タセルの内の次に上位のレジスタセルにシフトし、かつ
特定の桁数を下位桁として、次に上位のレジスタセル中
にストアされた累算値に加算することを含む。シフトさ
れた特定の桁数は、累算値の最下位桁よりも上位の下位
レジスタ中にストアされた累算値の桁数である。シフト
累算演算は、最下位レジスタセルから累算値を含む最上
位レジスタセルまでの重みの隣接したレジスタセルの間
で順次連続して行なわれる。シフト累算演算が完了した
後、レジスタセルのアレイ内に含まれる結果は、被乗数
と乗数との積でありかつ他の処理に要求されるように直
列または並列にシフトするために利用可能である。被乗
数と乗数とのそれぞれの桁数の重みは、正方マトリック
スにおいて各部分積のロケーションを直接定め、かつ正
方マトリックス中のロケーションは、どのレジスタセル
中へ各部分積がシフト累算演算のために累算されるかを
定める。
【0110】実際この好ましい方法を行なうための適切
な装置を用いれば、マトリックスは要求されない。それ
ぞれの部分積に含まれる第1の桁と第2の桁との重み
は、関係x=(m+n)−1に従って、どのレジスタセ
ル中に部分積が累算されるべきかを定める。
【0111】図3はこの発明の好ましい方法に従って、
レジスタのセットアップを定めるための一般化された正
方マトリックスを表わす。図3において、第1の数(た
とえば被乗数)の桁数は、am (「m」は第1の桁の重
みを示し、m=1,2,3,…)で示され、かつ第2の
数(たとえば乗数)の桁数は、bn (「n」は第2の桁
の重みを示し、n=1,2,3,…)で示される。かか
る配列によって、第1の桁数のそれぞれの重みは図3の
正方マトリックスの列の数と直接相関関係があり、かつ
第2の桁数のそれぞれの重みは、図3の正方マトリック
スの行の数と直接相関関係がある。したがって、4桁の
数は、太線101内に含まれる4×4正方マトリックス
によって表されかつ図3の一般化された正方マトリック
ス中の、(列m、行1)から(列1、行n)へ走りここ
でm=nである対角線は、太線101で規定される4×
4マトリックス内で、特定されたレジスタセルrx 中で
累算されるべき部分積を識別する。図3に示されるマト
リックスは、この好ましい方法を実行するために不可欠
ではないが、この方法の実務を例示しかつ説明するのに
有用である。つまり、図3の正方マトリックス内の部分
積の配置は、それぞれの部分積に含まれる対の組合せの
第1の桁と第2の桁との合成の重みにすべて依存し、
(列、行)指定(m、n)は、その中にそれぞれの部分
積が累算されるべきそれぞれのレジスタセルを完全に識
別する。したがって、それぞれの部分積の合成の重み
は、その中に部分積が累算されるべきレジスタセルを完
全に識別し、かつその中にそれぞれの部分積が累算され
るべきレジスタセルを定めるための中間ステップまたは
装置としてマトリックスが用いられる必要がない。
【0112】同様の態様で、6桁の被乗数と6桁の乗数
との積は、6×6正方マトリックスを規定する図3中の
太線104によって規定される正方マトリックスによっ
て求められることが可能である。8桁の被乗数と8桁の
乗数との積は、この発明のこの好ましい方法に従って、
図3中の太線106によって規定される8×8平方マト
リックスによって求められることが可能であり、10桁
の被乗数と10桁の乗数との積は、図3中の太線108
によって規定される10×10平方マトリックスによっ
て定められ得る。
【0113】したがって、2つの数を乗算するためのシ
ステムの一定の設計パラメータは、このシステムによっ
て対処されるべき被乗数−乗数演算の予期されるサイズ
を知るだけで容易に確定されることが可能である。たと
えば図3を再び参照して、レジスタr7 中の項の累算を
示す対角線は(列、行)位置(4,4)を通過し、設計
者は、被乗数または乗数のいずれかが4桁を含むであろ
うということのみを知る必要がある。それがわかれば、
Σm+n=x+1を計算してx=7を生成する。こうし
て、乗算に4つの桁が含まれるであろうということを知
るだけで、設計者は4桁の被乗数と4桁の乗数との演算
のためにこの発明のこの好ましい方法に対処するよう
に、7つのレジスタセルのアレイを設けることが要求さ
れるであろうと決定できる。また、所与の被乗数−乗数
演算のために要求される数のサイズを定めることによ
り、この発明のこの好ましい方法を実行することに含ま
れる、それぞれの部分積を求めるために要求される乗算
器の数を決定することが可能である。つまり、4桁の演
算(4×4マトリックスを要求する)のために、16の
部分積が計算される。システムの設計者は16個の乗算
器を設けることを選択してもよく、それにより、一クロ
ックサイクルで要求される16の部分積を決定すること
を許容するか、または複数クロックサイクルで要求され
る16の部分積を決定することを可能にするために、よ
り少ない数の乗算器が設けられてもよい。その上、単一
桁の乗算は部分積を求めるときにのみ含まれるので、4
×4の乗算器のみが要求される。こうして、先行技術の
乗算器装置に要求されるように、4桁の乗算演算のため
に256(つまり16×16)ビットの乗算器の代わり
に、設計者は8つの4×4乗算器(つまり8×4×4=
128ビットの占有領域のみ)だけを用いて占有面積を
節約することを選んでもよい。
【0114】またさらに、特定の乗算演算に必要とされ
る乗算器およびレジスタセルのみを駆動するように制御
ソフトウェアまたはハードウェアがプログラムされても
よい。こうして、たとえば4×4システムが2桁の乗算
演算に対処して、必要な乗算器(m×n=2×2=4の
乗算器のみが要求される)のみを駆動してもよく、かつ
駆動される必要があるのは必要なレジスタセル(つまり
m+n−1=2+2−1=3のレジスタセルのみが要求
される)のみである。
【0115】部分積の分配決定に用いられる乗算器の数
を適正に選択することは、実際乗算演算の速度を上げ得
る、なぜなら部分積を求めるための数多くの下位の乗算
演算は同時に発生するからである。こうして、もし設計
者が16の4×4乗算器(占有面積=16×4×4=2
56ビット)を使用して、4×4乗算演算に対処する
(つまり4桁の数を乗算する)ことを選べば、先行技術
では如何なる占有面積の利点も実現されないが、乗算演
算はより少ないクロックサイクルで完了されるであろ
う。
【0116】この発明の他の局面は、この発明のこの方
法を行なうための装置である。図4は2つの数の積を求
めるための先行技術の装置の概略のブロック図である。
図4において、乗算器装置11は、被乗数を乗算器ユニ
ット14に与える被乗数入力12と、乗数を乗算器ユニ
ット14に与える乗数入力16とを含んで示される。乗
算器ユニット14は、被乗数と乗数との積を表わす結果
を生成し、バス18を介して結果レジスタ20に与え
る。乗算器ユニット14は、被乗数と乗数との予め定め
られたサイズに対処するのに十分大きい。たとえば4桁
の被乗数と4桁の乗数とに対処するために、乗算器ユニ
ット14は16×16ビットの乗算器でなければならな
い。つまり、図4の乗算器装置11のような先行技術の
乗算器装置において、乗算器ユニット14は乗算に含ま
れるキャリおよび他のオーバヘッド操作に対処するため
に、16列のトランジスタを含み、各々の列は16行の
トランジスタを有し、かつ付加的行または列またはその
両方を有する。
【0117】図5はこの発明のこの装置の第1の実施例
を実行するための装置の概略図であり、そこで第1の数
は単一の第1のセグメント対に区分され、かつ第2の数
は単一の第2のセグメント対に区分される。かかる区分
は例Iないし例IVに関連して示されかつ議論された。
図5において、乗算器装置30は、入力34で第1のセ
グメント対(a、b)の上位セグメント「a」を受け、
かつ入力36で第1のセグメント対(a、b)の下位セ
グメント「b」を受ける、算術論理ユニット(ALU)
32を含んで示される。
【0118】ALU38は、入力40で第2のセグメン
ト対(c,d)の上位セグメント「c」を受け、かつ入
力42で第2のセグメント対(c,d)の下位セグメン
ト「d」を受ける。ALU32はそこで和(a+b)が
生成される合計出力44と、そこで差(a−b)が生成
される差出力46とを有する。ALU38はそこで和
(c+d)が生成される合計出力48と、そこで差(c
−d)が生成される差出力50とを有する。
【0119】乗算器52は入力57でALU32の合計
出力44を受けるように接続され、かつ入力59でAL
U38の合計出力48を受けるように接続される。乗算
器52は出力54で二次部分積(P2=[a+b][c
+d])を生成する。乗算器56は入力58でALU3
2の差出力46を受けるように接続され、かつ入力60
でALU38の差出力50を受けるように接続される。
乗算器56は出力62で三次部分積(P3=[a−b]
[c−d])を生成する。乗算器56はまた入力64で
ALU32の入力36から量「b」を受け、かつ入力6
6でALU38の入力42から量「d」を受ける。乗算
器は出力68で一次部分積P1(P1=bd)を生成す
る。ALU70は入力72で乗算器52の出力54から
二次部分積P2を受けかつ入力74で乗算器56の出力
62から三次部分積P3を受ける。ALU70は合計出
力76と差出力78とを有する。二次部分積P2と三次
部分積P3との和は、合計出力76で生成され、除算器
80によって2で除算されかつ入力84でALU82に
渡される。ALU82はまた入力86で乗算器56の出
力68から一次部分積P1を受け、かつ差出力88で加
算係数F+ (F+ =[(P2+P3)÷2]−P1)を
生成する。
【0120】ALU70の差出力78で生成された出力
は、除算器90によって2で除算されて減算係数F
- (F- =[(P2−P3)÷2])を生成する。加算
係数F+、減算係数F- 、および一次部分積P1は、こ
の発明のこの方法の第1の実施例に関連して説明された
関係に従って、レジスタ92へ適切に与えられる。レジ
スタ92は、この発明のこの方法の第1の実施例の説明
に関連して説明されたシフト累算演算を行ない、第1の
セグメント対(a,b)と第2のセグメント対(c,
d)とによって表される数の積を出力94で発生する。
【0121】図6はこの発明のこの方法の第1の実施例
を実行するための装置の概略のブロック図であり、そこ
で被乗数は第1のセグメント対(a1 ,b1 )と
(a2 ,b 2 )とに区分され、かつ乗数は第2のセグメ
ント対(c1 ,d1 )と(c2 ,d 2 )とに区分され
る。図6において、乗算器装置100は、下位乗算器サ
ブシステム102と、上位乗算器サブシステム104
と、クロス乗算サブシステム106とを含んで示され
る。下位乗算器サブシステム102および上位乗算器サ
ブシステム104の各々は、図5に示される乗算器装置
30と実質的に同一である。
【0122】したがって、下位乗算器サブシステム10
2は、第1のセグメント対(a1 ,b1 )の上位セグメ
ント「a1 」および下位セグメント「b1 」を入力とし
て受ける、ALU108と、第2のセグメント対
(c1 ,d1 )の上位セグメント「c1 」および下位セ
グメント「d1 」を入力として受けるALU110とを
含む。
【0123】乗算器112は、ALU108の合計出力
114と、ALU110の合計出力118とから入力を
受けて、出力122で二次部分積P21,1 (P2
1,1 (=[a1 +b1 ][c1 +d1 ])を与える。乗
算器124は、ALU108の差出力116と、ALU
110の差出力120とから入力を受けて、出力126
で三次部分積P31,1 (P31,1 =[a1 −b1 ][c
1 −d1 ])を与える。
【0124】ALU128は乗算器112の出力122
から二次部分積P21,1 と、乗算器124の出力126
から三次部分積P31,1 とを入力として受ける。量(P
1, 1 +P31,1 )はALU128の合計出力130で
与えられ、除算器134によって2で除算され、かつA
LU138へ入力として与えられる。量「b1 」と量
「d1 」とは乗算器124が出力127で一次部分積P
1,1 (P11,1 =b11 )を与えるように、乗算器
124に与えられる。P11,1 はALU138に入力と
して与えられ、かつアキュムレータ142中に累算する
ために与えられる。ALU138の差出力140はアキ
ュムレータ142中に累算されるために、加算係数 F+ 1,1 (F+ 1,1 =[(P21,1 +P31,1 )÷2]
−P11,1 ) を与える。量(P21,1 −P31,1 )はALU128の
差出力132で与えられ、かつ除算器136によって2
で除算されて、アキュムレータ142中に累算されるた
めに減算係数 F- 1,1 (F- 1,1 =[P21,1 −P31,1 ]÷2) を与える。
【0125】上位乗算サブシステム104は、第1のセ
グメント対(a2 ,b2 )の上位セグメント「a2 」と
下位セグメント「b2 」とを入力として受ける、ALU
144を含む。ALU146は、第2のセグメント対
(c2 ,d2 )の上位セグメント「c2 」と下位セグメ
ント「d2 」とを入力として受ける。乗算器156は、
ALU144の合計出力148と、ALU146の合計
出力152とから入力を受ける。乗算器158は、AL
U144の差出力150と、ALU146の差出力15
4とから入力を受ける。乗算器156は、出力160で
二次部分積P22, 2 (P22,2 =[a2 +b2 ][c2
+d2 ])を生成し、乗算器158は、出力162で三
次部分積P32,2 (P32,2 =[a2 −b2 ][c2
2 ])を生成する。
【0126】ALU164は、乗算器156の出力16
0から二次部分積P22,2 と、乗算器158の出力16
2から三次部分積P32,2 とを入力として受ける。量
(P2 2,2 +P32,2 )はALU164の合計出力16
6で生成され、除算器170によって2で除算され、か
つALU172へ入力として与えられる。量(P22,2
−P32,2 )はALU164の差出力168で生成さ
れ、かつ除算器174によって2で除算されて、アキュ
ムレータ142中に累算されるために減算係数 F- 2,2 (F- 2,2 =[P22,2 −P32,2 ]÷2) を与える。乗算器156は、量「b2 」および量
「d2 」を入力として受け、かつ出力176で一次部分
積P12,2 (P12,2 =b2 2 )を生成する。出力1
76は作動的に接続されて、ALU172への入力とし
て一次部分積P12,2 を与え、かつアキュムレータ14
2中に累算されるようにP12,2 を与える。ALU17
2の差出力178は、アキュムレータ142中で累算さ
れるように加算係数 F+ 2,2 (F+ 2,2 =[P22,2 +P32,2 ]÷2−P
2,2 ) を与える。
【0127】クロス乗算サブシステム106は、乗算器
180、182、184、および186を含む。乗算器
180は、ALU144の合計出力148で生成された
量(a2 +b2 )と、ALU110の合計出力118で
生成された量(c1 +d1 )とを入力として受け、かつ
出力188で二次部分積P22,1 (P22,1 =[a2
2 ][c1 +d1 ])を生成する。乗算器182は、
ALU144の差出力150で生成された量(a2 −b
2 )と、ALU110の差出力120で生成された量
(c1 −d1 )とを入力として受け、かつ出力190で
三次部分積P32, 1 (P32,1 =[a2 −b2 ][c1
−d1 ])を生成する。乗算器184は、ALU146
の合計出力152で生成された量(c2 +d2 )と、A
LU108の合計出力114で生み出された量(a1
1 )とを入力として受け、かつ出力192で二次部分
積P21,2 (P21,2 =[a1 +b1 ][c2
2 ])を生成する。乗算器186は、ALU146の
差出力154で生成された量(c2−d1 )と、ALU
108の差出力116で生成された量(a1 −b1 )と
を入力として受け、かつ出力194で三次部分積P3
1,2 (P31.2 =[a1 −b1][c2 −d2 ])を生
成する。
【0128】ALU196は、乗算器180の出力18
8から二次部分積P22,1 と、乗算器182の出力19
0から三次部分積P32,1 とを受ける。ALU196の
合計出力198で生成された量(P22,1 +P32,1
は、除算器202によって2で除算され、かつALU2
04へ入力として与えられる。ALU196の差出力2
00で生成された量(P22,1 −P32,1 )は、除算器
206によって2で除算されて、アキュムレータ142
中に累算されるために、減算係数 F- 2,1 (F- 2,1 =[P22,1 −P32,1 ]÷2) を生成する。
【0129】乗算器158は量「b2 」および量
「d1 」を付加的入力として受け、かつ出力208で一
次部分積P12,1 (P12,1 =b2 1 )を生成する。
出力208は作動的に接続されて、一次部分積P12,1
を入力としてALU204に与え、かつアキュムレータ
142中に累算されるためにP12,1 を与える。ALU
204は、アキュムレータ142中に累算されるために
加算係数 F+ 2,1 (F+ 2,1 =[P22,1 +P32,1 ]÷2−P
1,1 ) をその差出力210で与える。
【0130】ALU212は、乗算器184の出力19
2から二次部分積P21,2 (P22, 1 =[a1 +b1
[c2 +d2 ])と、乗算器186の出力194から三
次部分積P31,2 (P31,2 =[a1 −b1 ][c2
2 ])とを入力として受ける。ALU212は、除算
器218によって2で除算され、かつALU220への
入力として与えられる、量(P21,2 +P31,2 )をそ
の合計出力214で与える。ALU212はまた、除算
器222によって2で除算され、アキュムレータ142
中に累算されるために減算係数 F- 1,2 (F- 1,2 =[P21,2 −P31,2 ]÷2) を生成する、量(P21,2 −P31,2 )をその差出力2
16で与える。
【0131】乗算器112は、量「b1 」および
「d2 」を入力として受け、かつ出力224で一次部分
積P11,2 (P11,2 =b1 2 )を生成する。出力2
24は作動的に接続されて、一次部分積P11,2 を入力
としてALU220に与え、かつアキュムレータ142
中に累算されるためにP11,2 を与える。ALU220
は、アキュムレータ142中に累算されるために加算係
数 F+ 1,2 (F+ 1,2 =[P21,2 +P31,2 ]÷2−P
1,2 ) をその差出力226で生成する。
【0132】アキュムレータ142は、さまざまな一次
部分積P1m,n と、加算係数F+ m, n と、減算係数F-
m,n とを累算して、レジスタ228内のレジスタセル2
30のアレイに記憶する。レジスタ228は、この発明
のこの方法の第1の実施例の説明に関連して説明され
た、シフト累算演算を行ない、シフト累算演算が完了し
た後レジスタ228内に残っている数は、第1のセグメ
ント対(a1 ,b1 )および(a2 ,b2 )を含む第1
の数と、第2のセグメント対(c1 ,d1 )および(c
2 ,d2 )を含む第2の数との積である。その積は、直
列か並列かのいずれか適切なように、出力232を介し
てシフトするために利用可能である。
【0133】図7はこの発明のこの方法の好ましい実施
例を実行するための装置の概略のブロック図である。図
7において、乗算装置240は、被乗数入力242から
被乗数を受け、かつ乗数入力244から乗数を受ける。
被乗数は、入力248でマルチプレクサ246によって
受けられ、かつ乗数はマルチプレクサ246の入力25
0で受けられる。
【0134】乗算器254のアレイ252はバス256
によってマルチプレクサ246に作動的に接続される。
マルチプレクサ246は、入力248および250で受
けられた、被乗数および乗数のそれぞれの桁数の重みを
実現するようにプログラムされ、その結果、被乗数の桁
数と乗数の桁数との対の組合せのそれぞれを、かかる対
の組合せの各々についてのそれぞれ部分積を生成した
後、利用可能な乗算器254に送って乗算し、かつバス
256を介して乗算器254のアレイ252からそれぞ
れの部分積を受けた後、マルチプレクサ246は、それ
ぞれの部分積に含まれる対の組合せの被乗数の桁数の重
みと乗数の桁数の重みとに従って、それぞれの部分積を
結果レジスタ260中の適切なレジスタセル258で累
算することを指示する。
【0135】結果レジスタ260は、この発明のこの方
法の好ましい実施例に関連して説明されたシフト累算演
算を行ない、シフト累算演算が完了した後、レジスタセ
ル258のアレイに残っている数は、マルチプレクサ2
46の入力248および250で受けられた被乗数入力
と乗数入力との積である。その結果は、乗算装置240
を用いるシステムによる使用または他の処理のために、
出力262を介して直列または並列のいずれか適切なよ
うにシフトするために利用可能である。
【0136】図8は、本発明の方法の好ましい実施例を
実行するための乗算装置の選択された部分へ電力を与え
るための装置の好ましい実施例の概略のブロック図であ
る。
【0137】理解を明確にするために、図7中のエレメ
ントと同様の図8中のエレメントは100だけ増やした
同じ参照番号で示される。
【0138】図8において、乗算装置340は被乗数入
力342から被乗数を受けかつ乗数入力344から乗数
を受ける。被乗数Md1 、Md2 、…、Mdm は被乗数
入力342で待ち行列に入れられてもよく、乗数M
1 、Mr2 、…、Mrn は乗数入力344で待ち行列
に入れられてもよい。乗算装置340による乗算演算に
おいて用いられるべき現在の被乗数Md1 は、入力34
8でマルチプレクサ346によって受け取られ、かつ現
在の被乗数Md1 との乗算演算において使用されるべき
現在の乗数Mr1 は、マルチプレクサ346の入力35
0で受け取られる。
【0139】乗算器354のアレイ352はバス356
によってマルチプレクサ346に作動的に接続される。
マルチプレクサ346は、入力348、350で受け取
られた被乗数Mdm および乗数Mrn のそれぞれの桁数
の重みを実現するようにプログラムされ、その結果、被
乗数の桁数と乗数の桁数との対の組合せ(am ,bn
図 3参照)のそれぞれを適切な乗算器354に送って乗
算し、各かかる対の組合せ(an ,bn )についてのそ
れぞれの部分積を生成したのち、かつバス356を介し
て乗算器354のアレイ352からそれぞれの部分積を
受取った後、マルチプレクサ346は、各部分積に含ま
れる対の組合せの被乗数桁数am の重みと乗数の桁数b
n の重みとに従って、結果レジスタ360の適切なレジ
スタセル358で各部分積の累算を指示する。
【0140】結果レジスタ360は本発明の方法の好ま
しい実施例に関連して説明されたシフト累算演算を実行
し、シフト累算演算が完了した後、レジスタセル358
のアレイに残っている数はマルチプレクサ346の入力
348、350で受け取られた被乗数Mdm と乗数Mr
n との積である。その結果は直列または並列のいずれか
適切なように出力362を介してシフトするために利用
可能であり、乗算装置340を用いるシステムによって
用いられるかまたは他の処理がなされる。
【0141】乗算装置340はまた電力制御モジュール
370および電力伝達バス372、374を含む。電力
制御モジュール370は入力376を介して被乗数入力
Md m を受け、かつ入力378を介して乗数入力Mrn
を受ける。入力376、378は現在の被乗数Md1
よび現在の乗数Mr1 を受けてもよく、または図8に示
されるように早期の(つまりまだ処理されていない)被
乗数Mdm および早期の乗数Mrn を受けてもよい。
【0142】図8に示される企図された好ましい実施例
における乗算装置340の選択された素子の「駆動」
は、主として電界効果トランジスタ(FET)切換装置
のプリチャージを行なうことからなる。かかるプリチャ
ージは1クロックサイクル内で容易に完遂され得る。
【0143】電力伝達バス372は結果レジスタ360
と作動的に接続され、特に個々の電力ライン380を介
してそれぞれのレジスタセルr1 、…rx へ選択的に電
力を供給するように作動的に接続される。電力伝達バス
374は、適切な電力ライン382を介してそれぞれの
乗算器354へ電力を選択的に供給するように作動的に
接続される。
【0144】電力制御モジュール370は被乗数入力M
m および乗数入力Mrn を受け取り、かつ所与の乗算
演算に関連したそれぞれの被乗数入力Mdm および乗数
Mr n のサイズを決定する。図2および図3に関連して
議論したように、所与の乗算演算に含まれる桁数の数を
知るだけで本発明の好ましい方法に対処するために必要
なレジスタセルの数を決定することができ、さらに本発
明の好ましい方法の実行に含まれるそれぞれの部分積を
求めるために必要な乗算器の数を決定できる。
【0145】電力制御モジュール370は被乗数Mdm
および乗数Mrn のサイズを決定するための多数の手段
のうちの任意の適切な手段を用いてもよい。たとえば、
1つの数のうちの0でない桁の数が数えられてもよく、
または予め定められた数の桁数を含むフォーマットにお
いて先行0の数が数えられてもよい。
【0146】したがって、例により、電力制御モジュー
ル370は桁数a1 ,a2 ,a3 ,0を含む被乗数Md
m を受けてもよく、かつ桁数b1 ,b2 ,b3 ,b4
含む乗数Mrn を受けてもよい。図2に図示されるアル
ゴリズムの関係に従って、3桁の被乗数と4桁の乗数と
を含む本発明の好ましい方法に対処するために必要なレ
ジスタrx の数は、rx =m+n−1=(3+4−1)
=6として求められ得る。したがって、電力制御モジュ
ール370は6つの結果レジスタrx が、現在サンプリ
ングされている特定の被乗数Mdm と乗数Mrn とを含
む乗算演算に対処するために駆動されなければならない
ということを決定し得る。同様に、電力制御モジュール
370は、3桁の被乗数Mdn (つまりa1 ,a2 ,a
3 ,0)および4桁の乗数Mrn (つまりb1 ,b2
3 ,b4 )は、12(つまり3×4)の部分積が計算
される必要があるということを決定し得る。したがっ
て、電力制御モジュール370は、12の乗算器354
が関連した特定の乗算演算を完遂するために電力を必要
とするということを決定し得る。当然、図2および図3
に関連して述べたように、設計者は多サイクルの部分積
計算を企図してもよく、その結果もし利用可能な乗算器
354が12より少なければ、必要なサイクルの数を決
定し、かつそれによって、所望される特定の乗算を行な
うためにプリチャージされるべき乗算器354の数を決
定するために、電力制御モジュール370によって他の
アルゴリズムの関係が用いられなければならない。
【0147】当然、乗算器354への電力のみが、また
は結果レジスタrx への電力のみが制御されるように、
電力伝達バス372または電力伝達バス374のいずれ
かが省略されてもよい。
【0148】与えられた詳細な図面および具体例が本発
明の好ましい実施例を説明するが、一方、それらは例示
のためだけであり、本発明の装置は開示された正確な詳
細および条件に限定されず、前掲の特許請求の範囲によ
って規定される本発明の精神から逸脱することなく様々
な変更が行なわれ得るということが理解されるべきであ
る。
【図面の簡単な説明】
【図1】この発明の方法の第1の実施例に従うレジスタ
セットアップを定めるための一般化されたマトリックス
を表わす図である。
【図2】この発明の方法に従う累算値のそれぞれのレジ
スタセルへの割当を示す表である。
【図3】この発明の方法の好ましい実施例に従うレジス
タセットアップを定めるための一般化されたマトリック
スを表わす図である
【図4】2つの数の積を求めるための先行技術の装置の
概略のブロック図である。
【図5】第1の数が単一の第1のセグメント対に区分さ
れかつ第2の数が単一の第2のセグメント対に区分され
る、この発明の方法の第1の実施例を実行するための装
置の概略図である。
【図6】被乗数は第1のセグメント対(a1 ,b1 )お
よび(a2 ,b2 )に分離されかつ乗数は第2のセグメ
ント対(c1 ,d1 )および(c2 ,d2 )に分離され
る、この発明の方法の第1の実施例を実行するための装
置の概略のブロック図である。
【図7】この発明の方法の好ましい実施例を行なうため
の装置の概略のブロック図である。
【図8】本発明の方法の好ましい実施例を実行するため
の乗算装置の選択された部分へ電力を供給するための装
置の概略のブロック図である。
【符号の説明】
340 乗算装置 354 乗算器 358 レジスタセル 360 結果レジスタ 372,374 電力バス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ドナルド・ディ・モンデュール アメリカ合衆国、60540 イリノイ州、ネ パービル、クラレモント・ドライブ、110

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 乗算装置の選択された部分へ電力を与え
    るための装置であって、前記乗算装置は第1の複数個の
    桁数を有する第1の数と第2の複数個の桁数を有する第
    2の数との積を求め、前記乗算装置は複数個の部分積を
    求めるための複数個の乗算ユニットを含む複数個の素子
    を含み、前記複数個の部分積は前記第1の複数個の桁数
    と前記第2の複数個の桁数との対の組合せの各々につい
    ての部分積を含み、さらに前記複数個の素子は情報を記
    憶するためのレジスタ手段を含み、前記レジスタ手段は
    予め定められた配列に従って前記複数個の部分積を累算
    的に記憶するための複数個のレジスタセルを含み、前記
    装置は、 作動的に接続されて、前記第1の数と前記第2の数とを
    受け、かつ前記第1の複数個の桁数を前記第2の複数個
    の桁数と比較する、比較手段を含み、前記比較手段は前
    記第1の複数個の桁数または前記第2の複数個の桁数に
    含まれる最上位の桁数を求め、前記比較手段は、前記複
    数個の乗算ユニットのうちの特定の乗算ユニット、前記
    複数個のレジスタセルのうちの特定のレジスタセル、お
    よび前記電力の供給源と作動的に接続され、前記比較手
    段は予め定められたアルゴリズムの関係において前記最
    上位の桁数の数を用いて前記複数個の素子のうちの特定
    の素子へ前記電力を選択的に与える、装置。
  2. 【請求項2】 前記特定の素子は前記複数個の乗算ユニ
    ットのうちの特定の乗算ユニットを含む、請求項1に記
    載の乗算装置の選択された部分へ電力を与えるための装
    置。
  3. 【請求項3】 前記特定の素子は前記複数個のレジスタ
    セルのうちの特定のレジスタセルを含む、請求項1に記
    載の乗算装置の選択された部分へ電力を与えるための装
    置。
  4. 【請求項4】 前記特定の素子は前記複数個のレジスタ
    セルのうちの特定のレジスタセルを含む、請求項2に記
    載の乗算装置の選択された部分へ電力を与えるための装
    置。
  5. 【請求項5】 電源から乗算装置の選択された部分への
    電力伝達を制御するための装置であって、前記乗算装置
    は第1の複数個の桁数を有する第1の数と第2の複数個
    の桁数を有する第2の数との積を求め、前記乗算装置は
    複数個の素子を含み、前記複数個の素子は複数個の部分
    積を求めるための複数個の乗算ユニットを含み、前記複
    数個の部分積は前記第1の複数個の桁数と前記第2の複
    数個の桁数との対の組合せの各々についての部分積を含
    み、さらに前記複数個の素子は情報を記憶するためのレ
    ジスタ手段を含み、前記レジスタ手段は予め定められた
    配列に従って前記複数個の部分積を累算的に記憶するた
    めの複数個のレジスタセルを含み、前記装置は、 前記電力を前記電源から前記乗算装置へ伝達するために
    複数個の制御可能伝達経路を設けるための電力バス手段
    と、 前記伝達経路を制御して前記複数個の素子のうちの特定
    の素子と前記電源との間で選択的に作動的接続を実行す
    るための制御手段とを含み、 前記制御手段は前記電源、前記電力バス手段、および前
    記特定の素子と作動的に接続され、前記制御手段は前記
    第1の数を前記第2の数と比較するための論理手段を含
    み、前記論理手段は作動的に接続されて、少なくとも前
    記乗算装置と同じくらい早期に前記第1の数および前記
    第2の数を受け取り、 前記論理手段は前記第1の数と前記第2の数との間で桁
    数の大きい方の数を決定し、前記制御手段は前記桁数の
    大きい方の数を用いる前記論理手段に応答して、前記電
    力を前記複数個の素子のうちの特定の素子へ選択的に与
    える、装置。
  6. 【請求項6】 前記特定の素子は前記複数個の乗算ユニ
    ットのうちの特定の乗算ユニットを含む、請求項5に記
    載の電源から乗算装置の選択された部分への電力伝達を
    制御するための装置。
  7. 【請求項7】 前記特定の素子は前記複数個のレジスタ
    セルのうちの特定のレジスタセルを含む、請求項5に記
    載の電源から乗算装置の選択された部分への電力伝達を
    制御するための装置。
  8. 【請求項8】 前記特定の素子は前記複数個のレジスタ
    セルのうちの特定のレジスタセルをさらに含む、請求項
    6に記載の電源から乗算装置の選択された部分への電力
    伝達を制御するための装置。
JP19217993A 1992-08-03 1993-08-03 乗算装置の選択された部分へ電力を与えるための装置および電源から乗算装置の選択された部分への電力伝達を制御するための装置 Expired - Fee Related JP3388608B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/924,346 US5200912A (en) 1991-11-19 1992-08-03 Apparatus for providing power to selected portions of a multiplying device
US924346 1992-08-03

Publications (2)

Publication Number Publication Date
JPH06175823A true JPH06175823A (ja) 1994-06-24
JP3388608B2 JP3388608B2 (ja) 2003-03-24

Family

ID=25450106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19217993A Expired - Fee Related JP3388608B2 (ja) 1992-08-03 1993-08-03 乗算装置の選択された部分へ電力を与えるための装置および電源から乗算装置の選択された部分への電力伝達を制御するための装置

Country Status (4)

Country Link
US (1) US5200912A (ja)
EP (1) EP0583120B1 (ja)
JP (1) JP3388608B2 (ja)
DE (1) DE69326403T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009528638A (ja) * 2006-02-27 2009-08-06 クゥアルコム・インコーポレイテッド 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
US8918446B2 (en) 2010-12-14 2014-12-23 Intel Corporation Reducing power consumption in multi-precision floating point multipliers

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5424970A (en) 1991-11-19 1995-06-13 Advanced Micro Devices, Inc. Method and apparatus for multiplying a plurality of N numbers
US5787029A (en) * 1994-12-19 1998-07-28 Crystal Semiconductor Corp. Ultra low power multiplier
US5923273A (en) * 1996-11-18 1999-07-13 Crystal Semiconductor Corporation Reduced power FIR filter
US6604120B1 (en) * 1997-09-04 2003-08-05 Cirrus Logic, Inc. Multiplier power saving design
US6901423B1 (en) * 2001-04-23 2005-05-31 Cirrus Logic, Inc. Noise invariant circuits, systems and methods
US7318080B2 (en) * 2003-11-06 2008-01-08 Telefonaktiebolaget L M Ericsson (Publ) Split radix multiplication
US9323498B2 (en) * 2013-03-13 2016-04-26 Wisconsin Alumni Research Foundation Multiplier circuit with dynamic energy consumption adjustment
CN111971649A (zh) * 2018-03-30 2020-11-20 国立研究开发法人理化学研究所 运算装置和运算系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3535560A (en) * 1967-06-09 1970-10-20 Nasa Data processor having multiple sections activated at different times by selective power coupling to the sections
US4594679A (en) * 1983-07-21 1986-06-10 International Business Machines Corporation High speed hardware multiplier for fixed floating point operands
JP2672956B2 (ja) * 1988-01-25 1997-11-05 沖電気工業株式会社 並列乗算器
US5128890A (en) * 1991-05-06 1992-07-07 Motorola, Inc. Apparatus for performing multiplications with reduced power and a method therefor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009528638A (ja) * 2006-02-27 2009-08-06 クゥアルコム・インコーポレイテッド 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
JP2012230684A (ja) * 2006-02-27 2012-11-22 Qualcomm Inc 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
US8595279B2 (en) 2006-02-27 2013-11-26 Qualcomm Incorporated Floating-point processor with reduced power requirements for selectable subprecision
JP2015133111A (ja) * 2006-02-27 2015-07-23 クゥアルコム・インコーポレイテッドQualcomm Incorporated 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
US8918446B2 (en) 2010-12-14 2014-12-23 Intel Corporation Reducing power consumption in multi-precision floating point multipliers

Also Published As

Publication number Publication date
EP0583120B1 (en) 1999-09-15
EP0583120A1 (en) 1994-02-16
DE69326403T2 (de) 2000-05-11
US5200912A (en) 1993-04-06
JP3388608B2 (ja) 2003-03-24
DE69326403D1 (de) 1999-10-21

Similar Documents

Publication Publication Date Title
CN110383237B (zh) 可重新配置的矩阵乘法器系统和方法
US4168530A (en) Multiplication circuit using column compression
US6654730B1 (en) Neural network arithmetic apparatus and neutral network operation method
US6539368B1 (en) Neural processor, saturation unit, calculation unit and adder circuit
US5280439A (en) Apparatus for determining booth recoder input control signals
JP3388608B2 (ja) 乗算装置の選択された部分へ電力を与えるための装置および電源から乗算装置の選択された部分への電力伝達を制御するための装置
US9372665B2 (en) Method and apparatus for multiplying binary operands
US7308471B2 (en) Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding
US4965762A (en) Mixed size radix recoded multiplier
US20190303103A1 (en) Common factor mass multiplication circuitry
JPS62229330A (ja) 乗算回路
US6598061B1 (en) System and method for performing modular multiplication
EP0543494B1 (en) Methods and apparatuses for determining the product of two numbers
JPH06309150A (ja) 複数個の数の積を求めるための方法およびその装置
JP3227538B2 (ja) 2進整数乗算器
KR20230121151A (ko) 디지털 곱셈기 회로망의 수치 정밀도
JPH08335166A (ja) N個の数の積を求めるための装置および方法
US5424970A (en) Method and apparatus for multiplying a plurality of N numbers
US20230222315A1 (en) Systems and methods for energy-efficient data processing
WO2009063050A1 (en) Method and apparatus for multiplying binary operands
JPS63201825A (ja) 演算処理装置
JPH04348422A (ja) 分割積型乗算装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20021126

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