JPH08335166A - N個の数の積を求めるための装置および方法 - Google Patents

N個の数の積を求めるための装置および方法

Info

Publication number
JPH08335166A
JPH08335166A JP7140357A JP14035795A JPH08335166A JP H08335166 A JPH08335166 A JP H08335166A JP 7140357 A JP7140357 A JP 7140357A JP 14035795 A JP14035795 A JP 14035795A JP H08335166 A JPH08335166 A JP H08335166A
Authority
JP
Japan
Prior art keywords
digit
numbers
product
array
register cell
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.)
Withdrawn
Application number
JP7140357A
Other languages
English (en)
Inventor
Donald D Mondul
ドナルド・ディー・モンドゥール
Safdar M Asghar
サフダー・エム・アシャー
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
Priority to JP7140357A priority Critical patent/JPH08335166A/ja
Publication of JPH08335166A publication Critical patent/JPH08335166A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【目的】 基底をZとするN個の数の積を求める。 【構成】 第1および後続の記憶アレイを設ける。第1
の記憶アレイは第1の桁と第2の桁との積の標示を含む
記憶場所を有する。第1のポインタは第1の桁により位
置決めされ、第2のポインタは第2の桁により位置決め
され、これらは協働して第1の積を含む第1の目標場所
を識別する。後続の記憶アレイは後続のN個の数と関連
する。第3の桁に関連する第3のポインタは後続の記憶
アレイのうち第2の目標場所を識別する。各後続のアレ
イは、そのアレイに関連する数の桁の積の標示および先
行するアレイにより識別された積の標示をストアする。
N個の数の各桁の各組合せに対する部分積を求める。各
部分積は含まれる各桁の重みにより確立される合成の重
みを有する。特定の関係に従い階層的に配列されたセル
において部分積を累算する。セルのうちでシフト累算演
算を行なう。

Description

【発明の詳細な説明】
【0001】
【発明の背景】この発明は、複数の、すなわちN個の数
の積を求めるための方法、およびその方法を実行するた
めの装置に関する。
【0002】好ましくはサブストレート上に配列される
シリコン素子から構成される、固体素子を用いる計算シ
ステムにおいて、一定の基本的設計基準が一般に用いら
れる。たとえば、各素子によって占有されるサブストレ
ート上のスペースはできる限り小さいことが所望され
る。さらに、装置によって消費されるエネルギは、特に
電池電源型のシステムにおいては、できる限り最小限に
されることが所望される。また、計算機システムはでき
る限り高速で動作することが所望される。
【0003】かかる計算機システムのための乗算器は、
一般にスイッチングトランジスタのマトリックスで作ら
れ、そのマトリックスは計算機装置によって取扱われる
べき数の予想される最大のサイズに対処するのに十分な
サイズを有する。したがって、たとえば4桁の数と4桁
の数の乗算を行なうために、乗算器は乗算に含まれるキ
ャリおよびその他のオーバヘッド動作に対処するための
付加的行または列またはその両方を有する16×16ビ
ットのマトリックス(つまり16列のトランジスタであ
り、各列は16行のトランジスタを有する)を必ず含む
であろう。
【0004】より小さい数に対して、乗算器マトリック
ス内の上位のビットは、乗算演算に含まれる被乗数およ
び乗数を正確にストアするために適当であるように、0
で満たされる。しかしながら、これらの0で満たされた
ビットはかかる0で満たすことを行なうためになお駆動
されなければならない。かかる0で満たされたビットは
乗算器によって行なわれる計算中に必然的に含まれてお
り、そのため乗算演算のためにより大きな数に対処する
ときに、動作速度、電力要求およびサブストレート上の
占有面積(つまりスペース)はすべて犠牲にされる。
【0005】メモリフェッチ動作は、一般的に乗算動作
よりも高速であり、乗算動作よりも消費電力が一般に小
さいことは、当業者には周知である。これら両方の特
徴、すなわち高速化および低電力消費は、特に今日の電
池電源型ラップトップおよびノードブックコンピュー
タ、ならびにさらに小さなデバイスにおいては、望まし
い特徴である。
【0006】特定の数のセットの積は、そのセットのこ
れら特定の数が乗算されるときは常に結果として同じ数
であろう。積が所望されるたびに積を再計算する必要は
ない。前もって積を求め、必要なときに検索するために
その積をストアすれば十分である。
【0007】複数の数の積を求めるために乗算器を必要
としない、複数個の数を乗算するための方法および装置
を有することは有利であろう。
【0008】
【発明の概要】この発明は、基底Zで表わされる、複数
の、すなわちN個の数の積を求めるための方法を含み、
N個の数の各々の数は、最下位桁から最上位桁へと階層
的に配列された複数個の桁を有する。好ましい実施例に
おいて、この方法は、以下のステップを含む。
【0009】(1) 複数の、N−1個の記憶ユニット
を与えるステップ。それぞれの記憶ユニットは各々S個
のアレイを有し、各アレイは(Z−1)−正方形アレイ
の記憶場所を含む。数Sは、以下の関係より求められ
る。
【0010】
【数5】
【0011】X=それぞれの記憶ユニットが採用され
る、順序付けられた連続体である。複数の記憶ユニット
は第1の記憶ユニットおよび後続の記憶ユニットに配列
される。第1の記憶ユニットは第1の複数の記憶場所を
含み、それぞれの第1の記憶場所は各々、N個の数の第
1の数のそれぞれの第1の桁と、N個の数の第2の数の
それぞれの第2の桁との積の標示を含む。複数の第1の
記憶場所は、第1の要素ポインタおよび第2の要素ポイ
ンタを含む複数のポインタによりアドレス指定可能であ
る。第1のアレイに関連する第1の要素ポインタのロケ
ーションは、それぞれの第1の桁により決定され、第1
のアレイに関連する第2の要素ポインタのロケーション
はそれぞれの第2の桁により決定される。第1の要素ポ
インタと第2の要素ポインタとは協働して、第1の複数
の記憶場所の中で第1の目標場所を識別する。第1の目
標場所はそれぞれの第1の桁とそれぞれの第2の桁との
部分積の標示を含む。複数の後続の記憶ユニットは各
々、N個の数のうちの次の後続の数に関連付けられる。
第1の要素ポインタおよび第2の要素ポインタのうち一
方のポインタは、後続の記憶ユニットにおける指定され
た後続のアレイを識別し、第1の要素ポインタおよび第
2の要素ポインタの他方のポインタは、指定された後続
のアレイにおける記憶場所の指定されたサブセットを識
別する。次の後続の数の特定のそれぞれの桁に関連する
第3の要素ポインタは、指定されたサブセットのうちの
第2の目標場所を識別する。各後続のアレイのポインタ
は協働して、次の後続のアレイと記憶場所の指定された
サブセットとを指定し、各後続のアレイは、N個の数の
次の後続の数の桁に関連する要素ポインタを有し、すべ
てのN個の数が部分積に含まれるまで、後続の目標場所
を指定する。それぞれの後続のアレイの各々における各
記憶場所は、後続のアレイに関連する特定の数の特定の
桁の部分積および先行するアレイにより識別された部分
積の標示を含む。
【0012】(2) N個の数の各々の複数の桁の各組
合せに対するそれぞれの部分積を含む複数の部分積を求
めるステップ。各部分積は、それぞれの部分積に含まれ
るN個の組合せの各々の各桁の重みにより確立される合
成の重みを有する。
【0013】(3) 以下の関係に従い、複数の階層的
に配列されたレジスタセルの特定されたレジスタセルに
おいて累算を行なうステップ。
【0014】P[m,n,o,p,…]−−−[累算]
−−r[x]、ここで、x=(m+n+o+p+…)−
(N−1)、P[m,n,o,p,…]は、選択された
部分積を表わし、m=選択された部分積に含まれるN個
の数の第1の数からの桁の重みであり、m=1,2,
3,…であり、n=選択された部分積に含まれるN個の
数の第2の数からの桁の重みであり、n=1,2,3,
…であり、o=選択された部分積に含まれるN個の数の
第3の数からの桁の重みであり、o=1,2,3,…で
あり、p,…=選択された部分積に含まれる後続の数か
らの桁の重みであり、p(および後続の各重み)=1,
2,3,…であり、r[x]=重み「x」を有する特定
されたレジスタセルである。
【0015】(4) 下位のレジスタセルにストアされ
た累算値の特定の桁を、累算値を含む次の上位のレジス
タセルにシフトすること、およびその特定の桁を最下位
桁として次の上位のレジスタセルにストアされた累算値
に加算することを含む、シフト累算演算を行なうステッ
プ。特定の桁は、累算値の最下位桁よりも上位のより下
位のレジスタセルにストアされた累算値の桁であり、シ
フト累算演算は、レジスタ内の最下位レジスタセルから
最上位レジスタセルへと、重みが隣接するレジスタセル
の間で順次的に行なわれる。
【0016】この発明のさらなる局面は、上記の方法を
実行するための装置を含み、この装置はその好ましい実
施例において、予め定められた数の積の標示をストアす
るための複数の記憶ユニットと、複数のポインタを採用
して部分積を複数の記憶ユニットに位置決めしおよびそ
こからフェッチするための論理回路と、累算値をストア
するための、階層的な重みを有する複数のレジスタセル
を有するレジスタと、選択された部分積を累算し累算値
を生じさせるための累算回路とを含み、累算回路は上記
の関係に従って特定されたレジスタセルにおいて累算値
をストアする。
【0017】したがって、この発明の目的は、積を求め
るために乗算器を必要としない、複数の、すなわちN個
の数の積を求めるための方法および装置を提供すること
である。
【0018】この発明のさらなる目的および特徴は、こ
の発明の好ましい実施例を示す添付の図面と関連付けて
考慮されるとき、以下の詳細な説明および前掲特許請求
の範囲より明らかになるであろう。
【0019】
【詳細な説明】旧式の高速データ信号処理装置は、音声
圧縮、高速モデム操作、デジタルフィルタの操作等の機
能のためのアルゴリズムを実行するために高速乗算器を
用いる。典型的には、このような機能のために用いられ
る乗算器は、大きく(16×16ビットアレイのオーダ
で)、かつ電力消費が大きく、ダイス領域が広く(サブ
ストレート上の占有面積)、高精度である。算術論理ユ
ニット等の乗算器の他の使用は一般に、高速操作を維持
するために、同一の欠点、つまり高電力消費および広い
ダイス領域の影響を受け、かつこの欠点はより速い速
度、より高い精度、およびより大きな数への要求に伴っ
て悪化する。
【0020】この発明は、2つの数の積を求めるための
方法(つまり乗算の方法)を含み、その方法は、1つの
乗算器で乗算するために要求されるであろう乗算器のサ
イズよりも小さい複数個の乗算器の間で乗算操作を分散
することを含む。かかる分散処理は演算の速度と結果の
正確さとを維持する一方で、必要なダイス領域は小さ
く、かつ特定の乗算演算に含まれる特定の被乗数および
乗数に要求される分配処理機構中の、特定の乗算ユニッ
トのみを駆動する機会を与える。
【0021】一般に、この方法は、被乗数と乗数との一
部の部分積の発生を含み、その部分積の各々は、それぞ
れより小さい乗算ユニットが必要であり、かつ被乗数の
桁数と乗数の桁数との特定のそれぞれの重みに従って、
部分積がその中で累算されているレジスタ中でシフト累
算演算を行なう。
【0022】この発明の方法を説明する上で使用される
用語の理解を容易にするために、次の用語が図示され
る。
【0023】
【表1】
【0024】
【表2】
【0025】
【数6】
【0026】この発明の第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のセグメントのそれぞれは所与の重みのスパンに
対して同数の桁数を含む。
【0027】第1のセグメント対の各々と第2のセグメ
ント対の各々とについて加算圧縮が計算される。つま
り、式「(am +bm )」で表わされる、第1のセグメ
ント対の各々についての第1の加算圧縮と、式「(cn
+dn )」によって表わされる第2のセグメント対の各
々についての第2の加算圧縮とが計算される。同様に、
式「(am −bm )」で表わされる第1のセグメント対
の各々についての第1の減算圧縮と、式「(cn
n )」で現わされる第2のセグメント対の各々につい
ての第2の減算圧縮とがまた計算される。
【0028】第1のセグメント対の各々のうちの下位セ
グメントの各々と、第2のセグメント対の各々のうちの
下位セグメントの各々との積を含む、1組の1次部分積
が計算される。各1次部分積は式「P1m,n 」で現わさ
れ、ここでP1m,n =bm n であり、かつ「m、n」
は1次部分積の各々について合成の重みを確立する。
【0029】第1の加算圧縮の各々と、第2の加算圧縮
の各々との積を含む、1組の2次の部分積が計算され
る。2次部分積の各々は、式「P2m,n 」で表わされ、
ここでP2m,n =(am +bm )(cn +dn )であ
り、かつ「m,n」は2次部分積の各々について合成の
重みを確率する。
【0030】第1の減算圧縮の各々と、第2の減算圧縮
の各々との積を含む、1組の3次部分積が計算される。
3次部分積の各々は式「P3m,n 」で表わされ、ここで
P3 m,n =(am −bm )(cn −dn )であり、かつ
「m,n」は3次部分積の各々について合成の重みを確
立する。
【0031】特定の2次部分積と、同一の合成の重みを
有する特定の3次部分積との和が計算される。こうして
計算された和は、2で除算されて中間結果を与える。中
間結果の計算で使用された2次および3次部分積の合成
の重みと同じ合成の重みを有する1次部分積は、その中
間結果から減算されて加算係数を生成する。各々の加算
係数は式「F+ m,n 」、ここでF+ m,n =[(P2m,n
+P3m,n )÷2]−P1m,nで表わされる。
【0032】2次部分積から、同一の合成の重みを有す
る3次部分積を引いた差が計算され、中間差を生じる。
中間差は2で除算されて減算係数を生成する。各減算係
数は式「F- m,n 」、ここでF- m,n =(P2m,n +P
m,n )÷2で表わされる。
【0033】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 に従って行なわれる。
【0034】それから、レジスタセルのアレイ内の下位
レジスタセルから、レジスタセルのアレイ内の次の上位
のセルへ、シフト累算演算が行なわれる。シフト累算演
算は最下位レジスタセルで始まり、かつ下位レジスタセ
ル中の累算値の特定の桁数を次の上位のレジスタセルへ
シフトし、シフトされた上位の桁数を下位桁として、次
の上位のレジスタセル内で累算値と加算することを含
む。シフトされるべき特定の桁数は、第1の数がそれに
除算される第1のセグメントの各々の桁の数に等しい、
下位のレジスタセル中の累算値の下位桁の数よりも上位
のすべての桁数を含む。シフト累算演算は最下位セルか
ら継続し、かつ次の上位レジスタセルが(4j−1)セ
ル、つまり中に累算値がストアされた最上位セルとなる
まで、重みの隣接したレジスタセルの間で連続して行な
われる。上述のシフト累算演算が完了した後、レジスタ
セルのアレイ内にストアされる数は、第1の数と第2の
数との積を含み、かつレジスタセルのアレイの外へシフ
トされてこの発明の方法を用いる装置内で適切なさらな
る処理において使用されてもよい。
【0035】この発明の方法は以下の例によって例示さ
れるであろう。例I: 256×256の乗算を行なうために (1) 被乗数と乗数とを分離して式(1)のようにセ
グメント対にする。
【0036】(2) 加算圧縮および減算圧縮を式
(2)のように定める。 (3) 式(3)のように1次部分積(P1)を定め
る。
【0037】(4) 加算係数(F+ )および減算係数
(F- )を式(4)のように定める。
【0038】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の定められた項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(5)のようになる。
【0039】
【数7】
【0040】(b) このように、レジスタセルのアレ
イは累算値について表3(A)のように定められる。
【0041】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位のレジスタ
セルの累算値から次の上位のレジスタセルへシフトし、
かつそれらのシフトされた特定の桁数を次の上位のレジ
スタセル中の累算値に下位桁として加算する。シフトさ
れた特定の桁数はすべて、「b」中の桁の数よりも上位
の桁数であり、「b」と「d」とは同数の桁数を有する
ことが要求される。表3(B)参照。
【0042】
【表3】
【0043】(7) レジスタの内容は正解(65,5
36)を含み、かつその内容をレジスタセルのアレイか
ら直列または並列のいずれかで適切にシフトすることに
より、他の処理のために利用可能である。
【0044】この方法は、「a」と「c」とが同数の桁
数(ブランクは0として扱われる)を有する限りかつ
「b」と「d」とが同数の桁数を有する限り、被乗数と
乗数とがどのように分離されようとも、正確な結果を与
える。
【0045】例II: (1) 被乗数と乗数とを式(6)のように分離する。
【0046】(2) 加算圧縮および減算圧縮を式
(7)のように定める。 (3) 1次部分積(P1)を式(8)のように定め
る。
【0047】(4) 加算係数(F+ )および減算係数
(F- )を式(9)のように定める。
【0048】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(10)のようになる。
【0049】
【数8】
【0050】(b) このように、レジスタセルのアレ
イは累算値に対して表4(A)のように設定される。
【0051】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から、次に上位のレジスタセルへシフトし、
かつそれらのシフトされた特定の桁数を次に上位のレジ
スタセル中の累算値に下位桁として加算する。シフトさ
れた特定の桁数はすべて、「b」中の桁の数よりも上位
の桁数であり、「b」と「d」とは同数の桁数を有する
べきである。表4(B)参照。
【0052】
【表4】
【0053】(7) レジスタの内容は正解(250,
000)を含み、かつその内容をレジスタセルのアレイ
から直列または並列のいずれかで適切にシフトすること
によって、他の処理について利用可能である。
【0054】この方法はより大きな数にも対処する。例III :1,234×5,678を乗算するために (1) 被乗数と乗数とを式(11)のように分離す
る。
【0055】(2) 加算圧縮および減算圧縮を式(1
2)のように定める。 (3) 1次部分積(P1)を式(13)のように定め
る。
【0056】(4) 加算係数(F+ )および減算係数
(F- )を式(14)のように定める。
【0057】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(15)のようになる。
【0058】
【数9】
【0059】(b) したがってレジスタセルのアレイ
は累算値に対して表5(A)のように設定される。
【0060】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から、次に上位のレジスタセルへシフトし、
かつそれらのシフトされた特定の桁数を次に上位のレジ
スタセル中の累算値に下位桁として加算する。シフトさ
れた特定の桁数はすべて「b」中の桁数より上位の桁数
であり、「b」と「d」とは同数の桁数を有するべきで
ある。表5(B)参照。
【0061】
【表5】
【0062】(7) レジスタの内容は正解(7,00
6,652)を含み、かつその内容をレジスタセルのア
レイから直列または並列のいずれかで適切にシフトする
ことによって、他の処理について利用可能である。
【0063】この方法は10を底とする数以外の数につ
いても有効に働く。たとえば135×214(7を底と
する)の乗算を行なうために:例IV :(7を底とする) (1) 被乗数と乗数とを式(16)のように分離す
る。
【0064】(2) 加算圧縮および減算圧縮を式(1
7)のように定める。 (3) 1次部分積(P1)を式(18)のように定め
る。
【0065】(4) 加算係数(F+ )および減算係数
(F- )を式(19)のように定める。
【0066】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(20)のようになる。
【0067】
【数10】
【0068】
【数11】
【0069】(b) したがって、レジスタセルのアレ
イは累算値に対して表6(A)のように設定される。
【0070】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から次に上位のレジスタセルへシフトし、か
つそれらのシフトされた特定の桁数を次に上位のレジス
タセル中の累算値に下位桁として加算する。シフトされ
た特定の桁数はすべて、「b」中の桁数よりも上位の桁
数であり、「b」および「d」は同数の桁数を有するこ
とが要求される。表6(B)参照。
【0071】
【表6】
【0072】(7) レジスタの内容は正解(32,5
56)を含み、かつその内容をレジスタセルのアレイか
ら直列または並列のいずれかで適切にシフトすることに
より、他の処理のために利用可能である。
【0073】この方法は乗算演算をさらに分配するため
に、被乗数および乗数をより完全に分離し、それにより
分散処理においてより小さい乗算器を用いるように拡張
されることが可能である。
【0074】例V: (1) 被乗数と乗数とを式(21)のように分離す
る。
【0075】(2) 加算圧縮および減算圧縮を式(2
2)のように定める。 (3) 1次部分積(P1m,n )を式(23)のように
定める。
【0076】(4) 加算係数 (F+ m,n )および減
算係数 (F- m,n )を式(24)(25)のように定
める。
【0077】
【数12】
【0078】
【数13】
【0079】
【数14】
【0080】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと表7のようになる。
【0081】(b) したがって、レジスタセルのアレ
イは累算値について表8のように設定される。
【0082】
【表7】
【0083】
【表8】
【0084】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から次に上位のレジスタセルにシフトし、か
つそれらのシフトされた特定の桁数を次の上位のレジス
タセル中の累算値に下位桁として加算する。シフトされ
た特定の桁数はすべて「bm 」中の桁の数よりも上位の
桁数であり、「bm 」と「dn 」とは同数の桁数を有す
ることが要求される。表9参照。
【0085】(7) レジスタの内容は正解(7,00
6,652)を含み、かつその内容をレジスタセルのア
レイから直列または並列のいずれかで適切にシフトする
ことによって他の処理のために利用可能である。
【0086】一般に認められた乗算のマニュアルの方法
を調べると、この発明の上述の方法に対する簡略化した
アプローチがわかり、かつその方法の代わりの実施例を
生じる。
【0087】特にたとえば4桁の数について、レジスタ
のセットアップは表10のように定められる。
【0088】マニュアル乗算技術のかかる応用から生じ
る「斜交マトリックス」は正方マトリックスとして表1
1のように表わされ得る(4桁の数、n=2)。
【0089】
【表9】
【0090】
【表10】
【0091】
【表11】
【0092】この発明のこの方法の第1の実施例に関連
して先に説明されたレジスタのセットアップが対角線上
にみられる。1次部分積(P1m,n )、加算係数(F+
m,n)、および減算係数(F- m,n )もまた対角線上に
みられることに注目されたい。表12参照。
【0093】つまり、(列1,行1)を介して延長する
対角線はP11,1 (b11 )を含み、この対角線上の
値はレジスタセルr1 中で累算する。
【0094】(列2,行1)から(列1,行2)へ延び
る対角線はF- 1,1 ( a11 +b 11 ) を含み、こ
の対角線上の値はレジスタセルr2 中で累算する。
【0095】(列3,行1)から(列1,行3)へ延び
る対角線はP12,1 (b21 )と、F+ 1,1 (a1
1 )とP11,2 (b12 )とを含み、この対角線上の
値はレジスタセルr3 中で累算する。
【0096】(列4,行1)から(列1,行4)へ延長
する対角線はF- 2,1 ( a21 +b21 ) とF-
1,2 ( a12 +b12 ) とを含み、この対角線上の
値はレジスタセル4 中で累算する。
【0097】(列4,行2)から(列2,行4)へ延長
する対角線はF+ 2,1 (a21 )と、P12,2 (b2
2 )と、F+ 1,2 (a12 )とを含み、この対角線
上の値はレジスタセルr5 中で累算する。
【0098】(列4,行3)から(列3,行4)ヘ延在
する対角線はF- 2,2 (a22 +b22 )を含み、
この対角線上の値はレジスタセルr6 中で累算する。
【0099】(列4,行4)を介する対角線はF+ 2,2
(a22 )を含み、この対角線上の値はレジスタセル
7 中で累算する。
【0100】こうしてたとえばn=3である6桁の数に
ついて、正方マトリックスは表13のように設定され得
る。またたとえばn=4である8桁の数について、正方
マトリックスは表14のように設定され得る。レジスタ
のセットアップは対角線に沿ってあることがみられ、か
つ次の公式で表わされることができる(比較を容易にす
るためにn=2、n=3、およびn=4についての場合
は欄送りされる)。表15−表17参照。
【0101】
【表12】
【0102】
【表13】
【0103】
【表14】
【0104】
【表15】
【0105】
【表16】
【0106】
【表17】
【0107】調べてみると、レジスタのセットアップは
次の関係に従って行なわれることが認められ得る。
【0108】 一次部分積: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の
番号を付けられた行もまた示され、これは正方マトリッ
クスの上から下へ増えていく重みを示す。
【0109】それぞれのレジスタrx 中に累算されるべ
き項は平行対角線上にみられるように示される。たとえ
ば1つの数が4つの第1のセグメント対と4つの第2の
セグメント対とに除算される(つまりm=4およびn=
4である)場合では、8列8行の正方マトリックスは、
(列m、行1)から(列1、行n)へと走る対角線、こ
こでm=n、に沿ってそれぞれのレジスタ中で累算され
るべきエレメントを与えるであろう。但し、様々な対角
線に沿って平方8×8マトリックス(図1中で太字で輪
郭を描かれる)内に入る項は、適切なレジスタ中で累算
されるであろう。一旦累算が行なわれれば、この発明の
方法の第1の実施例に関連して前述されたシフト累算演
算が行なわれる。
【0110】被乗数および乗数のセグメント対について
の合成の重みを示す添字(m、n)の代わりに(列、
行)の数をレジスタ番号と比較すると、レジスタセル中
の項のまたは部分積の累算は図2に示される表に従って
行なわれることが調べるとわかる。図2を参照して、レ
ジスタrX は、それぞれのレジスタ中で累算されるべき
部分積の(列、行)ロケーションが、それらが累算され
るべきレジスタrX の右のそれぞれのレジスタに関して
同一直線上に欄送りされて列挙されている。検査による
と、(列、行)の数の和(Σm+n)はいつも、1増加
したレジスタ指定xに等しいことがわかる。つまりm+
n=x+1である。したがって、所与の部分積がその中
に累算されるべきレジスタrX は、適切な正方マトリッ
クス内のその(列、行)ロケーションを確定することに
よりすべて定められ得る。
【0111】したがって、この発明に従う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」を有する特定されたレジスタセルを表わす。
【0112】それからレジスタ中でシフト累算演算が行
なわれる。シフト累算演算は、下位レジスタセル中にス
トアされた累算値の特定の桁数を、累算値を含むレジス
タセルの内の次に上位のレジスタセルにシフトし、かつ
特定の桁数を下位桁として、次に上位のレジスタセル中
にストアされた累算値に加算することを含む。シフトさ
れた特定の桁数は、累算値の最下位桁よりも上位の下位
レジスタ中にストアされた累算値の桁数である。シフト
累算演算は、最下位レジスタセルから累算値を含む最上
位レジスタセルまでの重みの隣接したレジスタセルの間
で順次連続して行なわれる。シフト累算演算が完了した
後、レジスタセルのアレイ内に含まれる結果は、被乗数
と乗数との積でありかつ他の処理に要求されるように直
列または並列にシフトするために利用可能である。被乗
数と乗数とのそれぞれの桁数の重みは、正方マトリック
スにおいて各部分積のロケーションを直接定め、かつ正
方マトリックス中のロケーションは、どのレジスタセル
中へ各部分積がシフト累算演算のために累算されるかを
定める。
【0113】実際この好ましい方法を行なうための適切
な装置を用いれば、マトリックスは要求されない。それ
ぞれの部分積に含まれる第1の桁と第2の桁との重み
は、関係x=(m+n)−1に従って、どのレジスタセ
ル中に部分積が累算されるべきかを定める。
【0114】図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)は、その中にそれぞれの部分
積が累算されるべきそれぞれのレジスタセルを完全に識
別する。したがって、それぞれの部分積の合成の重み
は、その中に部分積が累算されるべきレジスタセルを完
全に識別し、かつその中にそれぞれの部分積が累算され
るべきレジスタセルを定めるための中間ステップまたは
装置としてマトリックスが用いられる必要がない。
【0115】同様の態様で、6桁の被乗数と6桁の乗数
との積は、6×6正方マトリックスを規定する図3中の
太線104によって規定される正方マトリックスによっ
て求められることが可能である。8桁の被乗数と8桁の
乗数との積は、この発明のこの好ましい方法に従って、
図3中の太線106によって規定される8×8平方マト
リックスによって求められることが可能であり、10桁
の被乗数と10桁の乗数との積は、図3中の太線108
によって規定される10×10平方マトリックスによっ
て定められ得る。
【0116】したがって、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ビットの占有領域のみ)だけを用いて占有面積を
節約することを選んでもよい。
【0117】またさらに、特定の乗算演算に必要とされ
る乗算器およびレジスタセルのみを駆動するように制御
ソフトウェアまたはハードウェアがプログラムされても
よい。こうして、たとえば4×4システムが2桁の乗算
演算に対処して、必要な乗算器(m×n=2×2=4の
乗算器のみが要求される)のみを駆動してもよく、かつ
駆動される必要があるのは必要なレジスタセル(つまり
m+n−1=2+2−1=3のレジスタセルのみが要求
される)のみである。
【0118】部分積の分配決定に用いられる乗算器の数
を適正に選択することは、実際乗算演算の速度を上げ得
る、なぜなら部分積を求めるための数多くの下位の乗算
演算は同時に発生するからである。こうして、もし設計
者が16の4×4乗算器(占有面積=16×4×4=2
56ビット)を使用して、4×4乗算演算に対処する
(つまり4桁の数を乗算する)ことを選べば、先行技術
では如何なる占有面積の利点も実現されないが、乗算演
算はより少ないクロックサイクルで完了されるであろ
う。
【0119】この発明の他の局面は、この発明のこの方
法を行なうための装置である。図4は2つの数の積を求
めるための先行技術の装置の概略のブロック図である。
図4において、乗算器装置11は、被乗数を乗算器ユニ
ット14に与える被乗数入力12と、乗数を乗算器ユニ
ット14に与える乗数入力16とを含んで示される。乗
算器ユニット14は、被乗数と乗数との積を表わす結果
を生成し、バス18を介して結果レジスタ20に与え
る。乗算器ユニット14は、被乗数と乗数との予め定め
られたサイズに対処するのに十分大きい。たとえば4桁
の被乗数と4桁の乗数とに対処するために、乗算器ユニ
ット14は16×16ビットの乗算器でなければならな
い。つまり、図4の乗算器装置11のような先行技術の
乗算器装置において、乗算器ユニット14は乗算に含ま
れるキャリおよび他のオーバヘッド操作に対処するため
に、16列のトランジスタを含み、各々の列は16行の
トランジスタを有し、かつ付加的行または列またはその
両方を有する。
【0120】図5はこの発明のこの装置の第1の実施例
を実行するための装置の概略図であり、そこで第1の数
は単一の第1のセグメント対に区分され、かつ第2の数
は単一の第2のセグメント対に区分される。かかる区分
は例Iないし例IVに関連して示されかつ議論された。
図5において、乗算器装置30は、入力34で第1のセ
グメント対(a、b)の上位セグメント「a」を受け、
かつ入力36で第1のセグメント対(a、b)の下位セ
グメント「b」を受ける、算術論理ユニット(ALU)
32を含んで示される。
【0121】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とを有する。
【0122】乗算器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)を生成す
る。
【0123】ALU70は入力72で乗算器52の出力
54から二次部分積P2を受けかつ入力74で乗算器5
6の出力62から三次部分積P3を受ける。ALU70
は合計出力76と差出力78とを有する。二次部分積P
2と三次部分積P3との和は、合計出力76で生成さ
れ、除算器80によって2で除算されかつ入力84でA
LU82に渡される。ALU82はまた入力86で乗算
器56の出力68から一次部分積P1を受け、かつ差出
力88で加算係数F+ (F+ =[(P2+P3)÷2]
−P1)を生成する。
【0124】ALU70の差出力78で生成された出力
は、除算器90によって2で除算されて減算係数F
- (F- =[(P2−P3)÷2])を生成する。加算
係数F+、減算係数F- 、および一次部分積P1は、こ
の発明のこの方法の第1の実施例に関連して説明された
関係に従って、レジスタ92へ適切に与えられる。レジ
スタ92は、この発明のこの方法の第1の実施例の説明
に関連して説明されたシフト累算演算を行ない、第1の
セグメント対(a,b)と第2のセグメント対(c,
d)とによって表される数の積を出力94で発生する。
【0125】図6はこの発明のこの方法の第1の実施例
を実行するための装置の概略のブロック図であり、そこ
で被乗数は第1のセグメント対(a1 ,b1 )と(a
2 ,b 2 )とに区分され、かつ乗数は第2のセグメント
対(c1 ,d1 )と(c2 ,d 2 )とに区分される。図
6において、乗算器装置100は、下位乗算器サブシス
テム102と、上位乗算器サブシステム104と、クロ
ス乗算サブシステム106とを含んで示される。下位乗
算器サブシステム102および上位乗算器サブシステム
104の各々は、図5に示される乗算器装置30と実質
的に同一である。
【0126】したがって、下位乗算器サブシステム10
2は、第1のセグメント対(a1 ,b1 )の上位セグメ
ント「a1 」および下位セグメント「b1 」を入力とし
て受ける、ALU108と、第2のセグメント対(c
1 ,d1 )の上位セグメント「c1 」および下位セグメ
ント「d1 」を入力として受けるALU110とを含
む。
【0127】乗算器112は、ALU108の合計出力
114と、ALU110の合計出力118とから入力を
受けて、出力122で二次部分積P21,1 (P21,1
(=[a1 +b1 ][c1 +d1 ])を与える。乗算器
124は、ALU108の差出力116と、ALU11
0の差出力120とから入力を受けて、出力126で三
次部分積P31,1 (P31,1 =[a1 −b1 ][c1
1 ])を与える。
【0128】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) を与える。
【0129】上位乗算サブシステム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 ])を生成する。
【0130】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 」および量「d
2 」を入力として受け、かつ出力176で一次部分積P
2,2 (P12,2 =b22 )を生成する。出力176
は作動的に接続されて、ALU172への入力として一
次部分積P12,2 を与え、かつアキュムレータ142中
に累算されるようにP12,2 を与える。ALU172の
差出力178は、アキュムレータ142中で累算される
ように加算係数 F+ 2,2 (F+ 2,2 =[P22,2 +P32,2 ]÷2−P12,2 ) を与える。
【0131】クロス乗算サブシステム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 +d
2 ])を生成する。乗算器186は、ALU146の差
出力154で生成された量(c2−d1 )と、ALU1
08の差出力116で生成された量(a1 −b1 )とを
入力として受け、かつ出力194で三次部分積P31,2
(P31.2 =[a1 −b1][c2 −d2 ])を生成す
る。
【0132】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) を生成する。
【0133】乗算器158は量「b2 」および量「d
1 」を付加的入力として受け、かつ出力208で一次部
分積P12,1 (P12,1 =b21 )を生成する。出力
208は作動的に接続されて、一次部分積P12,1 を入
力としてALU204に与え、かつアキュムレータ14
2中に累算されるためにP12,1 を与える。ALU20
4は、アキュムレータ142中に累算されるために加算
係数 F+ 2,1 (F+ 2,1 =[P22,1 +P32,1 ]÷2−P11,1 ) をその差出力210で与える。
【0134】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で与える。
【0135】乗算器112は、量「b1 」および「d
2 」を入力として受け、かつ出力224で一次部分積P
1,2 (P11,2 =b12 )を生成する。出力224
は作動的に接続されて、一次部分積P11,2 を入力とし
てALU220に与え、かつアキュムレータ142中に
累算されるためにP11,2 を与える。ALU220は、
アキュムレータ142中に累算されるために加算係数 F+ 1,2 (F+ 1,2 =[P21,2 +P31,2 ]÷2−P11,2 ) をその差出力226で生成する。
【0136】アキュムレータ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を介し
てシフトするために利用可能である。
【0137】図7はこの発明のこの方法の好ましい実施
例を実行するための装置の概略のブロック図である。図
7において、乗算装置240は、被乗数入力242から
被乗数を受け、かつ乗数入力244から乗数を受ける。
被乗数は、入力248でマルチプレクサ246によって
受けられ、かつ乗数はマルチプレクサ246の入力25
0で受けられる。
【0138】乗算器254のアレイ252はバス256
によってマルチプレクサ246に作動的に接続される。
マルチプレクサ246は、入力248および250で受
けられた、被乗数および乗数のそれぞれの桁数の重みを
実現するようにプログラムされ、その結果、被乗数の桁
数と乗数の桁数との対の組合せのそれぞれを、かかる対
の組合せの各々についてのそれぞれ部分積を生成した
後、利用可能な乗算器254に送って乗算し、かつバス
256を介して乗算器254のアレイ252からそれぞ
れの部分積を受けた後、マルチプレクサ246は、それ
ぞれの部分積に含まれる対の組合せの被乗数の桁数の重
みと乗数の桁数の重みとに従って、それぞれの部分積を
結果レジスタ260中の適切なレジスタセル258で累
算することを指示する。
【0139】結果レジスタ260は、この発明のこの方
法の好ましい実施例に関連して説明されたシフト累算演
算を行ない、シフト累算演算が完了した後、レジスタセ
ル258のアレイに残っている数は、マルチプレクサ2
46の入力248および250で受けられた被乗数入力
と乗数入力との積である。その結果は、乗算装置240
を用いるシステムによる使用または他の処理のために、
出力262を介して直列または並列のいずれか適切なよ
うにシフトするために利用可能である。
【0140】図8は、本発明の方法の好ましい実施例を
実行するための乗算装置の選択された部分へ電力を与え
るための装置の好ましい実施例の概略のブロック図であ
る。
【0141】理解を明確にするために、図7中のエレメ
ントと同様の図8中のエレメントは100だけ増やした
同じ参照番号で示される。
【0142】図8において、乗算装置340は被乗数入
力342から被乗数を受けかつ乗数入力344から乗数
を受ける。被乗数Md1 、Md2 、…、Mdm は被乗数
入力342で待ち行列に入れられてもよく、乗数Mr
1 、Mr2 、…、Mrn は乗数入力344で待ち行列に
入れられてもよい。乗算装置340による乗算演算にお
いて用いられるべき現在の被乗数Md1 は、入力348
でマルチプレクサ346によって受け取られ、かつ現在
の被乗数Md1 との乗算演算において使用されるべき現
在の乗数Mr1 は、マルチプレクサ346の入力350
で受け取られる。
【0143】乗算器354のアレイ352はバス356
によってマルチプレクサ346に作動的に接続される。
マルチプレクサ346は、入力348、350で受け取
られた被乗数Mdm および乗数Mrn のそれぞれの桁数
の重みを実現するようにプログラムされ、その結果、被
乗数の桁数と乗数の桁数との対の組合せ(am ,bn
図 3参照)のそれぞれを適切な乗算器354に送って乗
算し、各かかる対の組合せ(an ,bn )についてのそ
れぞれの部分積を生成したのち、かつバス356を介し
て乗算器354のアレイ352からそれぞれの部分積を
受取った後、マルチプレクサ346は、各部分積に含ま
れる対の組合せの被乗数桁数am の重みと乗数の桁数b
n の重みとに従って、結果レジスタ360の適切なレジ
スタセル358で各部分積の累算を指示する。
【0144】結果レジスタ360は本発明の方法の好ま
しい実施例に関連して説明されたシフト累算演算を実行
し、シフト累算演算が完了した後、レジスタセル358
のアレイに残っている数はマルチプレクサ346の入力
348、350で受け取られた被乗数Mdm と乗数Mr
n との積である。その結果は直列または並列のいずれか
適切なように出力362を介してシフトするために利用
可能であり、乗算装置340を用いるシステムによって
用いられるかまたは他の処理がなされる。
【0145】乗算装置340はまた電力制御モジュール
370および電力伝達バス372、374を含む。電力
制御モジュール370は入力376を介して被乗数入力
Md m を受け、かつ入力378を介して乗数入力Mrn
を受ける。入力376、378は現在の被乗数Md1
よび現在の乗数Mr1 を受けてもよく、または図8に示
されるように早期の(つまりまだ処理されていない)被
乗数Mdm および早期の乗数Mrn を受けてもよい。
【0146】図8に示される企図された好ましい実施例
における乗算装置340の選択された素子の「駆動」
は、主として電界効果トランジスタ(FET)切換装置
のプリチャージを行なうことからなる。かかるプリチャ
ージは1クロックサイクル内で容易に完遂され得る。
【0147】電力伝達バス372は結果レジスタ360
と作動的に接続され、特に個々の電力ライン380を介
してそれぞれのレジスタセルr1 、…rx へ選択的に電
力を供給するように作動的に接続される。電力伝達バス
374は、適切な電力ライン382を介してそれぞれの
乗算器354へ電力を選択的に供給するように作動的に
接続される。
【0148】電力制御モジュール370は被乗数入力M
m および乗数入力Mrn を受け取り、かつ所与の乗算
演算に関連したそれぞれの被乗数入力Mdm および乗数
Mr n のサイズを決定する。図2および図3に関連して
議論したように、所与の乗算演算に含まれる桁数の数を
知るだけで本発明の好ましい方法に対処するために必要
なレジスタセルの数を決定することができ、さらに本発
明の好ましい方法の実行に含まれるそれぞれの部分積を
求めるために必要な乗算器の数を決定できる。
【0149】電力制御モジュール370は被乗数Mdm
および乗数Mrn のサイズを決定するための多数の手段
のうちの任意の適切な手段を用いてもよい。たとえば、
1つの数のうちの0でない桁の数が数えられてもよく、
または予め定められた数の桁数を含むフォーマットにお
いて先行0の数が数えられてもよい。
【0150】したがって、例により、電力制御モジュー
ル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によって他の
アルゴリズムの関係が用いられなければならない。
【0151】当然、乗算器354への電力のみが、また
は結果レジスタrx への電力のみが制御されるように、
電力伝達バス372または電力伝達バス374のいずれ
かが省略されてもよい。
【0152】図9はこの発明の装置の一実施例の概略の
ブロック図である。図9には、第1の反復乗算器41
0、第2の反復乗算器412、およびn番目の反復乗算
器414を含む、複数個の数を乗算するための装置40
0が示される。
【0153】第1の反復乗算器410は被乗数入力41
6、乗数入力418、および乗算器のアレイ420(図
8の乗算器アレイ352の配列と同じように配列され
る)を含む。もちろん、図8の電力制御モジュール37
0のような電力制御モジュールが、図9または図10に
示される装置とともに用いられる。第1の反復乗算器4
10は、マルチプレクサ422、結果レジスタ424、
および応答レジスタ426をさらに含む。
【0154】第2の反復乗算器412は被乗数入力42
8、および乗算器のアレイ430(これもまた図8の乗
算器アレイ352と同様である)を含む。電力制御モジ
ュール370のような電力制御モジュールが第2の反復
乗算器412とともに用いられるか、または装置400
の各乗算器410、412および414に給電するよう
にマスタ電力制御モジュールが用いられ得る。第2の反
復乗算器412は、マルチプレクサ432、結果レジス
タ434、および応答レジスタ436をさらに含む。
【0155】n番目の反復乗算器414は、任意の複数
個の数の乗算を行なうために、装置400に用いられる
乗算器の数はいくつであってもよいということを示すた
めに指定される。n番目の反復乗算器414は被乗数入
力438、乗算器アレイ440(図8の乗算器アレイ3
52と同様)、マルチプレクサ442、および結果レジ
スタ444を含む。
【0156】動作においては、装置400はn個の数に
関する積を求める。したがって、第1の反復乗算器41
0は被乗数入力416を介して被乗数を受取り、かつ乗
数入力418を介して乗数を受取る。被乗数入力416
はマルチプレクサ422への第1の被乗数をマルチプレ
クサ422の入力417に与え、かつ乗数入力418は
マルチプレクサ422への第1の乗数をマルチプレクサ
422の入力419に与える。乗算器アレイ420はバ
ス421によってマルチプレクサ422へ作動的に接続
される。マルチプレクサ422は、入力417、419
において受取った被乗数と乗数とのそれぞれの桁数の重
みを認識するようにプログラムされており、被乗数の桁
数と乗数の桁数との対の組合わせの各々を乗算のために
乗算器アレイ420中の利用可能な乗算器へ経路指定し
て、かかる対の組合わせの各々についての部分積を求め
た後、かつバス421を介して乗算器アレイ420から
各部分積を受取った後、マルチプレクサ422は各部分
積に含まれる対の組合わせの被乗数の桁数の重みと乗数
の桁数の重みとに従って、結果レジスタ424中の適切
なレジスタセル中に各部分積を累算することを指示す
る。
【0157】結果レジスタ424は、本発明の方法に関
連して説明したシフト累算演算を行ない、シフト累算演
算が完了した後、結果レジスタ424に存在する数はマ
ルチプレクサ422の入力417、419で受取った第
1の被乗数と第1の乗数との結果積である。この結果積
はバス425を介して応答レジスタ426へ送られる。
【0158】第2の反復乗算器412は、装置400に
よって求められるべき積に含まれる複数個の数の反復的
な処理を継続する。つまり、被乗数入力428から第2
の被乗数が第2のマルチプレクサ432によって入力4
29で受取られ、かつマルチプレクサ432はバス42
7を介して第1の反復乗算器410から結果積を入力4
31に受取る。代替的には、結果レジスタ424からの
バス425はマルチプレクサ432の入力431に直接
接続されて、応答レジスタ426に対するあらゆる必要
性を無効にする。好ましくは、被乗数入力428は、装
置400によって求められるべき積に含まれる複数個の
数のうちの次の数を、第2の被乗数としてマルチプレク
サ432の入力429に与える。
【0159】マルチプレクサ432は入力429、43
1で受取った被乗数および乗数の各桁数の重み(つま
り、第1の反復乗算器410からの結果積)を認識する
ようにプログラムされており、被乗数桁数と乗数桁数と
の対の組合わせのそれぞれを乗算器アレイ430中の利
用可能な乗算器へ経路指定して、かかる各対の組合わせ
についての部分積を求めるよう乗算した後、かつバス4
33を介して乗算器アレイ430からそれぞれの部分積
を受取った後、マルチプレクサ432は、各部分積に含
まれる対の組合わせの被乗数桁の重みと乗数桁の重みと
に従って結果レジスタ434の適切なレジスタでの各部
分積の累算を指示する。
【0160】結果レジスタ434はこの発明の方法に関
連して説明したシフト累算演算を実行し、シフト累算演
算が完了した後、結果レジスタ434に残っている数は
マルチプレクサ432の入力429で受取った被乗数の
結果積および第1の反復乗算器410からマルチプレク
サ432の入力431で受取った結果積である。つま
り、結果レジスタ434中の結果積は、被乗数入力41
6によって与えられた被乗数、乗数入力418によって
与えられた乗数、および被乗数入力428によって与え
られた被乗数の積である。その積はバス435を介して
結果レジスタ436へシフトするために利用可能であ
る。
【0161】連続した反復乗算器410、412、41
4からの連続した結果積を、複数個の数のうちの次の後
続の数各々でこのように反復的に乗算することにより、
最終積が求められる。複数個のn個の数の最終積は出力
446で結果レジスタ444からシフトされ得る。
【0162】図10はこの発明の装置の好ましい実施例
の概略的なブロック図である。図10中には複数個の数
の積を求めるための装置500が示される。装置500
は入力装置510を含み、これにより、所望される積に
含まれる複数個の数の後続の数が入力514でマルチプ
レクサ512へ導入され得る。マルチプレクサ512は
入力510から入力514に導入された第1の数と第2
の数との各桁数の重みを認識するようにプログラムされ
る。したがって、第1の桁数と第2の桁数との各対の組
合わせを乗算器アレイ516(図8の乗算器アレイ35
2と同様)に書込んで、かかる組合わせについてそれぞ
れの部分積を求めるように乗算した後、かつバス518
を介して乗算器アレイ516から各部分積を受取った
後、マルチプレクサ512は、入力514で受取った各
部分積に含まれる対の組合わせの第1の桁の重みと第2
の桁の重みとに従って、結果レジスタ520の適切なレ
ジスタセルでの各部分積の累算を指示する。結果レジス
タ520は本発明の方法に関連して説明したシフト累算
演算を行ない、このシフト累算演算が完了した後、レジ
スタ520に存在する数はマルチプレクサ512の入力
514で受取られた第1の数と第2の数との結果積であ
る。
【0163】この結果積は直列または並列のいずれか適
切な形で出力バス522を介してシフトされることがで
き、さらなる処理のために用いられることができる。つ
まり、バス522を介して伝えられた結果積は応答レジ
スタ524に伝えられ得る。応答レジスタ524はバス
525に結果積を与える。バス525の作動接続は、バ
ス530を介してマルチプレクサ512の入力528に
対して確立されるか、または出力バス532に対して確
立されるように制御装置526を介して制御される。
【0164】こうして装置500は、応答レジスタ52
4中の結果積を第2の乗算係数(つまり被乗数または乗
数)として、入力528を介してマルチプレクサ512
に与えることにより、複数個の数の反復的な乗算を行な
うために用いられ得る。かかる態様では、第3の数(最
終積を求めることが所望される複数個の数から連続的に
与えられる)が入力装置510から入力514へ与えら
れて、応答レジスタ524からの結果積とともに反復的
に処理され得る。つまり、装置500によって行なわれ
る第2の反復乗算のために、入力514に与えられる第
3の数は被乗数の態様で取扱われ、バス530を介して
入力528に与えられる結果積は乗数の態様で取扱われ
る。その後、最終積を求めることが所望される複数個の
数の内の残っている後続の数の各々は、マルチプレクサ
512の入力514に与えられて被乗数の態様で処理さ
れ、マルチプレクサ512の入力528にバス530を
介して受取ったその前の反復結果積(乗数として取扱わ
れる)と乗算されてもよい。
【0165】最終積を求めることが所望される複数個の
数のうちの残っている数すべてが先行する反復結果積と
反復的に乗算されてしまうと、結果レジスタ520は最
終積を求めることが所望される複数個の数のうちのすべ
ての数の最終積を含む。当然、必要な反復乗算演算を行
なうために、バス522は制御ブロック526に直接接
続されてもよく、またはバス530に直接接続されても
よい。
【0166】図9および図10は、複数個の数の積を求
めるためのこの発明の方法を例示する。反復乗算処理が
行なわれ、これにより第1の2つの数(被乗数と乗数)
が先に説明した次の関係に従ってレジスタセル中で累算
され得る。
【0167】 一次部分積:P1m,n −[代入]→r2(m+n)-3 減算係数 :E- m,n −[代入]→r2(m+n)-2 加算係数 :F+ m,n −[代入]→r2(m+n)-1 2つの数の乗算に関連してこの方法とともに説明したシ
フト累算演算は、累算が発生するレジスタ中で行なわ
れ、シフト累算演算が終了した後、レジスタは複数個の
数のうちの第1の数と複数個の数のうちの第2の数との
結果積を含む。この方法のステップは、複数個の数のう
ちの次の連続した数を被乗数および乗数の一方の数とし
て用いて、かつ先行する反復乗算演算の結果としてレジ
スタに含まれる結果積を被乗数および乗数の他方の数と
して用いて繰返されて、次の反復結果積を発生し、発生
した次の反復結果積は、複数個の数のうちのすべての数
がその前の反復結果積で反復的に乗算されてしまうま
で、複数個の数のうちのその次の数とともに用いられ
る。最後のシフト累算演算が完了した後のレジスタの内
容は含まれる複数個の数すべての所望される最終積であ
る。同様の反復方法はここに説明したさまざまな代替的
な方法のうちのレジスタセル中で部分積を累算するため
に用いられるどのような手段を用いても適用され得る。
【0168】図11は、4つの数の乗算を表わす傾斜マ
トリックスの上部分であり、図12はその下部分であ
り、この発明の好ましい実施例のレジスタのセットアッ
プ(内容)を図示する。
【0169】図11および12において、マトリックス
600は複数の行610と複数の列612とからなる。
行620での重みの増加する3つの桁(a1 、a2 、a
3 )を含む第1の数は、行622での重みの増加する3
つの桁(b1 、b2 、b3 )を含む第2の数により乗算
される。(a1 、a2 、a3 )(b1 、b2 、b3 )の
乗算を行なうための部分積は、行624、626、62
8における、一般的に行なわれているマニュアル乗算の
方法に従い配列される。
【0170】レジスタr1 、r2 、r3 、…は、行63
0(図12)に示されるとおりに割当てられる。マトリ
ックス600のそれぞれの各列に配列された各部分積に
含まれる桁の重みの総和は、(a1 、a2 、a3 )(b
1 、b2 、b3 )の乗算に対し、ライン632で示され
る。
【0171】上記の乗算(a1 、a2 、a3 )(b1
2 、b3 )に対し、マトリックス600を調べること
により、それぞれの各列におけるそれぞれの部分積の重
みの総和(すなわち合成の重み)間の関係は、以下のよ
うに、割当てられたレジスタに関係することが明らかに
なる。
【0172】Σm+n −−−[累算]−−−r[x]、こ
こで、x=(m+n)−(N−1)、N=2、すなわち
乗算に含まれる数の個数である。
【0173】図11および12の説明を続けると、重み
の増加する3つの桁(c1 、c2 、c3 )を含む第3の
数が、ライン634(図11)に示され、乗算(a1
2、a3 )(b1 、b2 、b3 )(c1 、c2
3 )を行なうための部分積が、行640、642、6
44、646、648、650、652、654、65
6において一般的に受容されているマニュアル乗算の方
法に従って配置される。
【0174】乗算(a1 、a2 、a3 )(b1 、b2
3 )(c1 、c2 、c3 )に含まれるマトリックス6
00のそれぞれの各列に配置された各部分積に含まれる
桁の重みの総和は、ライン658(図11)に示され
る。乗算に含まれる合成の重みの総和と、それぞれの列
に対するそれぞれのレジスタ指定との間の関係は、以下
のとおりである。
【0175】Σm+n+o −−−[累算]−−−r[x]、
ここで、x=(m+n+o)−(N−1)、N=3、す
なわち乗算に含まれる数の個数である。
【0176】重みの増加する3つの桁(d1 、d2 、d
3 )を含む第4の数は、ライン660(図11)に示さ
れる。乗算(a1 、a2 、a3 )(b1 、b2 、b3
(c 1 、c2 、c3 )(d1 、d2 、d3 )を行なうた
めの部分積は、行662、664、666、668、6
70、672、674、676、678、680、68
2、684、686、688、690、692、69
4、696、698、700、702に示される一般的
に受容されたマニュアル乗算の方法に従い配列される。
【0177】部分積の合成の重みの総和は、以下のよう
に、マトリックス600のそれぞれの各列に対するレジ
スタ指定に関係する。
【0178】Σm+n+o+p −−−[累算]−−−r
[x]、ここで、x=(m+n+o+p)−(N−
1)、N=4、すなわち乗算に含まれる数の個数であ
る。
【0179】したがって、上記のように図10との関連
で示したように、複数個の数の乗算を達成するために複
数個の数の反復乗算を行なう必要がないことがわかるで
あろう。乗算に含まれるN個の数のさまざまな部分積に
対する、合成の重みおよび指定されたレジスタに関す
る、図11および12と関連付けて上述した関係は、乗
算に含まれる数(N)の個数にかかわらず、およびN個
の数の各々にそれぞれ含まれる桁の個数にかかわらず、
真を維持する。
【0180】したがって、それぞれのレジスタセルにお
いて累算される部分積は以下のとおりである。
【0181】P[m,n,o,p,…]−−−[累算]
−−r[x]、ここで、x=(m+n+o+p+…)−
(N−1)、P[m,n,o,p,…]は、選択された
部分積を表わし、m=選択された部分積に含まれるN個
の数の第1の数からの桁の重みであり、m=1,2,
3,…であり、n=選択された部分積に含まれるN個の
数の第2の数からの桁の重みであり、n=1,2,3,
…であり、o=選択された部分積に含まれるN個の数の
第3の数からの桁の重みであり、o=1,2,3,…で
あり、p,…=選択された部分積に含まれる後続の数か
らの桁の重みであり、p(および後続の各重み)=1,
2,3,…であり、r[x]=重み「x」を有する特定
されたレジスタセルである。
【0182】2つの数の乗算に関する方法との関連で上
述したシフト累算演算は、レジスタ内で行なわれ、一旦
レジスタセル内の部分積の累算が完了すれば、N個の数
の乗算が完了する。シフト累算演算の完了後のレジスタ
の内容は、複数の、すなわちN個の数の全体の所望され
る積である。
【0183】したがって、複数の、すなわちN個の数の
乗算のために必要な、余分の乗算ステージまたは反復乗
算はない。必要なのは、図11および12と関連付けて
上述した関係に従い、適切なレジスタセルにおけるN個
の数の桁の部分積の適切な累算、およびレジスタ内での
シフト累算演算の完了である。
【0184】もちろん、第1の数および第2の数が乗算
されるときはいつも同じ積が結果として生じるだろう。
同様に、同じ数のいかなる所与のセットが乗算されても
いつも同じ積が発生するだろう。したがって、乗算を行
なうための多くの装置が実際にその乗算を実行する。
【0185】図13は、この発明の好ましい実施例に従
い、3つの数の乗算を行なうための記憶ユニット配置を
概略的に表わす。図13において、基底10の数の体系
は、9×9の記憶アレイ710にストアされた2つの数
の非ゼロ積すべてを有し得る。プログラムを実行する論
理ユニット(図13では示さず)が、積に含まれる2つ
の桁の第1の桁に従い、第1の要素ポインタP1 を配置
し得る。第2の要素ポインタP2 は、積に含まれる第2
の桁に従って指定され得る。したがって、たとえば乗算
(7×9)を行なうとき、論理ユニットプログラムは第
1の要素ポインタP1 を行7に隣接して配置し、記憶ユ
ニット710を含む記憶場所のサブセットとして、行7
にストアされた数を識別する。第2の要素ポインタP2
は、図13に示されるように、乗算(7×9)に含まれ
る数の第2の桁(9)に従い、論理ユニットにより指定
され得る。したがって、第1の要素ポインタP1 により
識別された記憶場所のサブセット(すなわち行7)は今
や、図13に示すように、記憶場所のそのサブセット内
に、乗算(7×9)の積の標示を含む第1の目標場所を
識別したことになる。
【0186】この方策は、当業者には周知である乗算テ
ーブルに類似する。しかしながら、図13はまた、後続
の記憶ユニット712を含む。記憶ユニット710の各
列に対し、それぞれの後続の記憶アレイがある。たとえ
ば、後続の記憶アレイ714は、記憶ユニット710の
列9に関連し、図13に示された記憶ユニット配置の説
明を容易にするために拡大して示される。
【0187】したがって、3つの数の乗算(たとえば7
×9×5)の積を求めることを望めば、先に述べたよう
に、論理ユニットを採用して第1の要素ポインタP1
記憶ユニット710の行7に隣接して位置決めし、記憶
場所のサブセットを識別してもよい。第2の要素ポイン
タP2 が論理ユニット(図13には示さず)により、第
2の桁(9)を用いて記憶ユニット710に対して指定
されてもよい。このようにして、積63が、第1の要素
ポインタP1 および第2の要素ポインタP2 により識別
された第1の目標場所に含まれる。
【0188】乗算(7×9×5)を完了するには、後続
の記憶ユニット712のどの後続の記憶アレイがその乗
算に含まれるかを識別することが必要である。この場
合、乗算に含まれる第2の桁は9であり、後続の記憶ア
レイ714が、この例において行なわれる特定の乗算に
含まれる指定された後続のアレイとして識別される。第
1の派生ポインタD1 が、(論理ユニット−図13に示
さず−により)記憶ユニット710における第1の要素
ポインタP1 と第2の要素ポインタP2 との交差点に従
い、後続の記憶アレイ714に対して指定される。この
ようにして、第1の派生ポインタD1 は、後続の記憶ア
レイ714を指定された後続の記憶アレイとして識別
し、さらに、記憶ユニット710内で識別された第1の
目標場所に関連する行に沿い整列する後続の記憶アレイ
714内の記憶場所の指定されたサブセットを識別す
る。
【0189】乗算(7×9×5)に含まれる第3の桁
(5)に関連する第3の要素ポインタP3 は、第1の派
生ポインタD1 により後続の記憶アレイ714内に識別
された記憶場所の指定されたサブセットと、第3の要素
ポインタP3 により後続の記憶アレイ714内に識別さ
れた列との交差点で、第2の目標場所を後続の記憶アレ
イ714内に識別する。図13を調べることによりわか
るように、(7×9×5)の積を識別する第2の目標場
所におけるストアされた値は、その乗算の積、数315
の標示を含む。
【0190】したがって、(7×9×5)の積は、必要
とされるたびに再計算される必要はない。探索およびフ
ェッチが適切なポインタを用いて行なわれ、積が要求さ
れるたびに、その積の予めストアされた標示を示す。図
13に示されるような3つの数の積は、3つの要素ポイ
ンタP1 、P2 、P3 により達成されることが理解され
るだろう。実際、以降図示されるように、N個の数の積
は、N個の要素ポインタを図13に示されるような(N
−1)個の記憶ユニットとともに用いて、発見されフェ
ッチされるだろう。
【0191】図13に示されるような記憶ユニット配置
を、この明細書中で上述した複数個の数の乗算を行なう
ための装置または方法による使用のために採用して、部
分積を求めてもよい。
【0192】図14は、この発明の好ましい実施例に従
い、5つの数の乗算を行なうための記憶ユニットを概略
的に表わす。図14では、基底10で表わされる2つの
1桁の数のすべての積の標示を含む、9×9正方形マト
リックスを有する第1の記憶ユニット710が図示され
る。記憶ユニット710に関連するのは、第1の後続の
記憶ユニット712における複数の第1の後続の記憶ア
レイであり、記憶ユニット710の各列は、関連する9
×9の第1の後続の記憶アレイを有する。したがって、
列9に関連する第1の後続の記憶アレイ714、列8に
関連する第1の後続の記憶アレイ716、列7に関連す
る第1の後続の記憶アレイ718、列6に関連する第1
の後続の記憶アレイ720、列5に関連する第1の後続
の記憶アレイ722、列4に関連する第1の後続の記憶
アレイ724、列3に関連する第1の後続の記憶アレイ
726、列2に関連する第1の後続の記憶アレイ72
8、および列1に関連する第1の後続の記憶アレイ73
0がある。
【0193】図13に関連付けて先に述べたように、記
憶ユニット710と後続の記憶ユニット712とは、基
底10で表わされる3つの桁の全部分積の全標示を与え
るのに十分である。もちろん、10よりも小さなその他
の基底で表わされる桁の乗算を行なうには、より小さな
アレイでも十分であろう。(Z−1)−正方形アレイ
は、基底Zで表わされる2つの桁の積の全標示をストア
するだろう。
【0194】基底10で表わされる4つの桁の乗算を行
なうために、後続の記憶ユニット712における第1の
後続の記憶アレイ714、716、718、720、7
22、724、726、728、730の各々に対し、
第2の後続の記憶ユニット732内に複数の第2の後続
の記憶アレイが設けられる。したがって、たとえば図1
4に示されるように、第1の後続の記憶アレイ714
は、その列9に関連する第2の後続の記憶アレイ73
4、その列8に関連する第2の後続の記憶アレイ73
6、その列7に関連する第2の後続の記憶アレイ73
8、その列6に関連する第2の後続の記憶アレイ74
0、その列5に関連する第2の後続の記憶アレイ74
2、その列4に関連する第2の後続の記憶アレイ74
4、その列3に関連する第2の後続の記憶アレイ74
6、その列2に関連する第2の後続の記憶アレイ74
8、およびその列1に関連する第2の後続の記憶アレイ
750を有するだろう。
【0195】基底10で表わされる5つの桁の乗算を行
なうために、第2の後続の記憶アレイの各々(たとえば
第2の後続の記憶アレイ734、736、738、74
0、742、744、746、748、750)は、第
3の後続の記憶ユニット752内に、それぞれの複数の
第3の後続の記憶アレイを有する。したがって、たとえ
ば、第2の後続の記憶アレイ750は、その列9に関連
する第3の後続の記憶アレイ754、その列8に関連す
る第3の後続の記憶アレイ756、その列7に関連する
第3の後続の記憶アレイ758、その列6に関連する第
3の後続の記憶アレイ760、その列5に関連する第3
の後続の記憶アレイ762、その列4に関連する第3の
後続の記憶アレイ764、その列3に関連する第3の後
続の記憶アレイ766、その列2に関連する第3の後続
の記憶アレイ768、およびその列1に関連する第3の
後続の記憶アレイ770を有する。
【0196】このようにして、図14を調べてみれば、
各後続の記憶ユニットにおける(Z−1)−正方形アレ
イの合計の数Sは、以下の関係により決定されることが
明らかである。
【0197】
【数15】
【0198】ここで、Xは、乗算演算においてそれぞれ
の記憶ユニットが採用される順序付けられた連続体であ
る。
【0199】例示のため、乗算(9×9)の積は、第1
の要素ポインタP1 と第2の要素ポインタP2 とを用い
て示され、図14において文字「A」により示される記
憶場所として第1の目標場所を識別する。もし乗算(9
×9×9)の積を確定することを望めば、第1の目標場
所Aに関連する第1の派生ポインタD1 、および第1の
後続の記憶アレイ714に関連する第3の要素ポインタ
3 を採用し、図14において文字「B」で示される記
憶場所にある第2の目標場所を識別する。
【0200】図14を調べることにより、文字「C」で
識別される記憶場所は、乗算(9×9×2×9)の積の
標示を含むことがわかるだろう。同様に、文字「D」で
示される記憶場所は、乗算(9×9×1×9)の積の標
示を含む。
【0201】このようにして、図14に示されるよう
に、数の積の標示を予めストアし、必要なときにそれら
の積をフェッチしてもよい。すなわち、基底Zで表わさ
れる数の体系において、N個の数の積をN個のポインタ
と(N−2)個の派生ポインタとを用いて求めるため
に、複数の、(Z−1)−正方形アレイの順序付けられ
た連続体がアクセスされてもよい。
【0202】図15は、数の乗算を行なうための、この
発明の記憶ユニットに関連するポインタの採用について
概略的に表わす。図15では、第1の記憶ユニット71
0は、協調して第1の目標場所L1 を識別する第1の要
素ポインタP1 と第2の要素ポインタP2 とによりアド
レス指定されるものとして図示される。第1の目標場所
1 は、第1の後続の記憶アレイ714のような指定さ
れた後続の記憶アレイを識別し、第1の後続の記憶アレ
イ714の特定の行713に沿う記憶場所の指定された
サブセットを識別する第1の派生ポインタD1 を位置決
めする。
【0203】第3の要素ポインタP3 は、積が求められ
る乗算に関連する第3の数に従って、第1の後続の記憶
アレイ714と整列する。第3の要素ポインタP3 は、
第1の派生ポインタD1 と協働し、第2の目標場所L2
を識別する。第2の目標場所L2 は、第2の後続の記憶
アレイ750といった指定された次の後続の記憶アレイ
を識別する第2の派生ポインタD2 を位置決めする。第
2の派生ポインタD2はまた、特定の行749に沿う第
2の後続の記憶アレイ750内の記憶場所の指定された
サブセットを識別する。
【0204】第2の後続の記憶アレイ750に関連する
第4の要素ポインタP4 は、積が求められる特定の乗算
に含まれる次の後続の数により、第2の後続の記憶アレ
イ750に対して位置決めされる。第4の要素ポインタ
4 は第2の派生ポインタD 2 と協働し、第3の目標場
所L3 を識別する。第3の目標場所L3 は第3の派生ポ
インタD3 を位置決めする。第3の派生ポインタD
3 は、第3の後続の記憶アレイ754といった指定され
た次の後続のアレイを識別し、第3の後続の記憶アレイ
754の特定の行753に関連する記憶場所の指定され
たサブセットを識別する。
【0205】第3の後続の記憶アレイ754に関連する
第5の要素ポインタP5 は、積が求められる乗算に含ま
れる次の後続の数により、第3の後続の記憶アレイ75
4に対して位置決めされる。第5の要素ポインタP5
第3の派生ポインタD3 と協働し、要素ポインタP1
2 、P3 、P4 、P5 を位置決めしたこれらの数の積
の標示を含む第4の記憶場所L4 を識別する。
【0206】このようにして、複数の、すなわちN個の
数に対し、(N−1)の記憶アレイをアドレス指定する
際に複数のN個の要素ポインタが複数の(N−2)個の
派生ポインタと協働し、乗算に含まれる特定のN個の数
の積の予めストアされた標示を示す。
【0207】もちろん、この明細書において、「行」お
よび「列」といった用語の使用は任意的である。つま
り、水平に指定されたブロックのセットは、「列」とし
ても「行」としても呼ばれることができるが、この発明
の範囲または動作に影響することはない。また、垂直に
指定されたブロックのセットはまた、「行」としても
「列」としても呼ばれてもよいが、この発明の範囲また
は動作に影響を及ぼさない。
【0208】所与の詳細な図面および具体例がこの発明
の好ましい実施例を説明するが、一方、それらは例示の
ためだけであり、この発明の装置は開示された厳密な詳
細および条件に限定されず、前掲の特許請求の範囲によ
り規定されるこの発明の精神から逸脱することなくさま
ざまな変更が行なわれ得るということが理解されるべき
でる。
【図面の簡単な説明】
【図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】この発明の方法の好ましい実施例を実行するた
めの乗算装置の選択された部分へ電力を供給するための
装置の概略ブロック図である。
【図9】この発明の装置の一実施例の概略ブロック図で
ある。
【図10】この発明の装置の好ましい実施例の概略ブロ
ック図である。
【図11】この発明の好ましい実施例のレジスタのセッ
トアップ(内容)を示す、4個の数の乗算を表わす傾斜
マトリックスの上部分の図である。
【図12】この発明の好ましい実施例のレジスタのセッ
トアップ(内容)を示す、4個の数の乗算を表わす傾斜
マトリックスの下部分の図である。
【図13】この発明の好ましい実施例に従い、3つの数
の乗算を行なうための記憶ユニット配置を表わす概略図
である。
【図14】この発明の好ましい実施例に従い、5つの数
の乗算を行なうための記憶ユニットを表わす概略図であ
る。
【図15】数の乗算を行なうための、この発明の記憶ユ
ニットと関連するポインタの採用について概略的に表わ
す図である。
【符号の説明】
710 記憶ユニット 714 記憶アレイ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04L 9/12 (72)発明者 ドナルド・ディー・モンドゥール アメリカ合衆国、53202 ウィスコンシン 州、ミルウォーキー、ノース・ブロードウ ェイ、234、アパートメント・305 (72)発明者 サフダー・エム・アシャー アメリカ合衆国、78750 テキサス州、オ ースティン、クウィル・リーフ・コーブ、 7010

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 基底Zで表されるN個の数の積を求める
    ための装置であって、前記N個の数の各数は最下位桁か
    ら最上位桁へ階層的に配列された複数の桁を有し、この
    装置は、 複数の、N−1個の記憶ユニットを含み、前記N−1個
    の記憶ユニットのそれぞれの記憶ユニットの各々はS個
    のアレイを有し、前記アレイの各々は(Z−1)−正方
    形アレイの記憶場所を含み、前記数Sは以下の関係より
    決定され、 【数1】 ここで、Xは前記それぞれの記憶ユニットが採用され
    る、順序付けられた連続体であり、 前記複数の記憶ユニットは第1の記憶ユニットおよび複
    数の後続の記憶ユニットに配列され、前記第1の記憶ユ
    ニットは第1の複数の前記記憶場所を含み、前記第1の
    複数の記憶場所の第1の記憶場所の各々は、前記N個の
    数の第1の数のそれぞれの第1の桁と前記N個の数の第
    2の数の対応の第2の桁との部分積の標示を含み、前記
    複数の第1の記憶場所は、複数のポインタのうちの第1
    の要素ポインタと、前記複数のポインタのうちの第2の
    要素ポインタとによりアドレス指定可能であり、前記第
    1のアレイに関する前記第1の要素ポインタのロケーシ
    ョンは前記第1の桁の各々により決定され、前記第1の
    アレイに関する前記第2の要素ポインタのロケーション
    は前記対応の第2の桁により決定され、前記第1の要素
    ポインタと前記第2の要素ポインタとは協働して前記第
    1の複数の記憶場所のうちの第1の目標場所を識別し、
    前記第1の目標場所は前記第1の桁と各対応の第2の桁
    との部分積の標示を含み、前記複数の後続の記憶ユニッ
    トは各々前記N個の数の次の後続の数に関連し、前記第
    1の要素ポインタおよび前記第2の要素ポインタの一方
    のポインタは前記後続の記憶ユニットにおける指定され
    た後続のアレイを識別し、前記第1の要素ポインタおよ
    び前記第2の要素ポインタの他方のポインタは前記指定
    された後続のアレイにおける記憶場所の指定されたサブ
    セットを識別し、前記次の後続の数の特定のそれぞれの
    桁に関連する前記複数のポインタのうちの第3の要素ポ
    インタは前記指定されたサブセットのうちの第2の目標
    場所を識別し、各後続のアレイのポインタは協働して次
    の後続のアレイおよび記憶場所の指定されたサブセット
    を指定し、前記後続のアレイの各々は前記N個の数の前
    記次の後続の数の桁に関連する前記複数のポインタのう
    ちの要素ポインタを有し、すべてのN個の数が前記部分
    積に含まれるまで後続の目標場所を指定し、それぞれの
    後続のアレイ各々における各記憶場所は、前記後続のア
    レイに関連する特定の数の特定の桁の部分積および先行
    するアレイにより識別された部分積の標示を含み、さら
    に、 前記複数の記憶ユニットに結合された論理手段を含み、
    この論理手段は前記複数のポインタを採用して前記N個
    の数の各々の前記複数の桁の各組合せに対するそれぞれ
    の部分積を含む複数の部分積を指定し、フェッチするた
    めのものであり、前記部分積の各々は合成の重みを有
    し、前記合成の重みは、前記それぞれの部分積に含まれ
    る前記組合せの前記N個の数の各々の各前記桁の前記重
    みにより確立され、さらに、 前記論理手段に結合され、情報をストアするためのレジ
    スタ手段を含み、前記レジスタ手段は累算値をストアす
    るための複数のレジスタセル手段を含み、前記複数のレ
    ジスタセル手段の各々は階層的な重みを有し、さらに、 前記論理手段と前記レジスタ手段とに結合され、以下の
    関係に従って、前記複数の部分積の選択された部分積を
    累算し、前記複数のレジスタセル手段の特定されたレジ
    スタセルにおいて累算値を生成するための、累算手段を
    含み、 P[m,n,o,p,…]−−−[累算]−−r
    [x]、ここで、 x=(m+n+o+p+…)−(N−1)、 P[m,n,o,p,…]は、前記選択された部分積を
    表わし、 m=前記選択された部分積に含まれる前記N個の数の第
    1の数からの前記桁の重みであり、m=1,2,3,…
    であり、 n=前記選択された部分積に含まれる前記N個の数の第
    2の数からの前記桁の重みであり、n=1,2,3,…
    であり、 o=前記選択された部分積に含まれる前記N個の数の第
    3の数からの前記桁の重みであり、o=1,2,3,…
    であり、 p,…=前記選択された部分積に含まれる後続の数から
    の前記桁の重みであり、p(および後続の各重み)=
    1,2,3,…であり、 r[x]=重み「x」を有する前記特定されたレジスタ
    セル手段であり、さらに、 シフト累算演算を行なう前記レジスタ手段は、前記複数
    のレジスタセル手段の下位のレジスタセル手段にストア
    された前記累算値の特定の桁を、累算値を含む前記複数
    のレジスタセル手段の次の上位のレジスタセル手段にシ
    フトし、前記特定の桁を前記次の上位のレジスタセル手
    段にストアされた前記累算値に最下位桁として加算する
    ステップを含み、前記特定の桁は前記累算値の最下位桁
    よりも上位の前記下位のレジスタセル手段にストアされ
    た前記累算値の桁であり、前記シフト累算演算は、前記
    レジスタセル手段手段内の最下位レジスタセル手段から
    最上位レジスタセル手段へと前記複数のレジスタセル手
    段の重みの隣接するレジスタ手段の間で順次的に行なわ
    れる、N個の数の積を求めるための装置。
  2. 【請求項2】 基底Zで表わされるN個の数の積を求め
    るための方法であって、前記N個の数の各数は最下位桁
    から最上位桁へ階層的に配列された複数の桁を有し、こ
    の方法は、 複数の、N−1個の記憶ユニットを設けるステップを含
    み、前記N−1個の記憶ユニットのそれぞれの記憶ユニ
    ットの各々はS個のアレイを有し、前記アレイの各々は
    (Z−1)−正方形アレイの記憶場所を含み、前記数S
    は以下の関係より決定され、 【数2】 ここで、Xは前記それぞれの記憶ユニットが採用され
    る、順序付けられた連続体であり、 前記複数の記憶ユニットは第1の記憶ユニットおよび複
    数の後続の記憶ユニットに配列され、前記第1の記憶ユ
    ニットは第1の複数の前記記憶場所を含み、前記第1の
    複数の記憶場所の第1の記憶場所の各々は、前記N個の
    数の第1の数のそれぞれの第1の桁と前記N個の数の第
    2の数の対応の第2の桁との部分積の標示を含み、前記
    複数の第1の記憶場所は、複数のポインタのうちの第1
    の要素ポインタと、前記複数のポインタのうちの第2の
    要素ポインタとによりアドレス指定可能であり、前記第
    1のアレイに関する前記第1の要素ポインタのロケーシ
    ョンは前記第1の桁の各々により決定され、前記第1の
    アレイに関する前記第2の要素ポインタのロケーション
    は前記対応の第2の桁により決定され、前記第1の要素
    ポインタと前記第2の要素ポインタとは協働して前記第
    1の複数の記憶場所のうちの第1の目標場所を識別し、
    前記第1の目標場所は前記第1の桁と各対応の第2の桁
    との部分積の標示を含み、前記複数の後続の記憶ユニッ
    トは各々前記N個の数の次の後続の数と関連し、前記第
    1の要素ポインタおよび前記第2の要素ポインタの一方
    のポインタは前記後続の記憶ユニットにおける指定され
    た後続のアレイを識別し、前記第1の要素ポインタおよ
    び前記第2の要素ポインタの他方のポインタは前記指定
    された後続のアレイにおける記憶場所の指定されたサブ
    セットを識別し、前記次の後続の数の特定のそれぞれの
    桁に関連する前記複数のポインタのうちの第3の要素ポ
    インタは前記指定されたサブセットのうちで第2の目標
    場所を識別し、各後続のアレイのポインタは協働して次
    の後続のアレイおよび記憶場所の指定されたサブセット
    を指定し、前記後続のアレイの各々は、前記N個の数の
    前記次の後続の数の桁に関連する前記複数のポインタの
    うちの要素ポインタを有し、すべてのN個の数が前記部
    分積に含まれるまで後続の目標場所を指定し、それぞれ
    の後続のアレイ各々における各記憶場所は、前記後続の
    アレイに関連する特定の数の特定の桁の部分積および先
    行するアレイにより識別された部分積の標示を含み、さ
    らに、 前記複数のポインタを採用して前記N個の数の各々の前
    記複数の桁の各組合せに対するそれぞれの部分積を含む
    複数の部分積を指定しフェッチするための論理手段を与
    えるステップを含み、前記部分積の各々は合成の重みを
    有し、前記合成の重みは、前記それぞれの部分積に含ま
    れる前記組合せの前記N個の数の各々の各前記桁の前記
    重みにより確立され、さらに、 前記論理手段に結合され、情報をストアするためのレジ
    スタ手段を設けるステップを含み、前記レジスタ手段は
    累算値をストアするための複数のレジスタセル手段を含
    み、前記複数のレジスタセル手段の各々は階層的な重み
    を有し、さらに、 前記論理手段と前記レジスタ手段とに結合され、以下の
    関係に従って、前記複数の部分積の選択された部分積を
    累算し、前記複数のレジスタセル手段の特定されたレジ
    スタセルにおいて累算値を生成するための、累算手段を
    設けるステップを含み、 P[m,n,o,p,…]−−−[累算]−−r
    [x]、ここで、 x=(m+n+o+p+…)−(N−1)、 P[m,n,o,p,…]は、前記選択された部分積を
    表わし、 m=前記選択された部分積に含まれる前記N個の数の第
    1の数からの前記桁の重みであり、m=1,2,3,…
    であり、 n=前記選択された部分積に含まれる前記N個の数の第
    2の数からの前記桁の重みであり、n=1,2,3,…
    であり、 o=前記選択された部分積に含まれる前記N個の数の第
    3の数からの前記桁の重みであり、o=1,2,3,…
    であり、 p,…=前記選択された部分積に含まれる後続の数から
    の前記桁の重みであり、p(および後続の各重み)=
    1,2,3,…であり、 r[x]=重み「x」を有する前記特定されたレジスタ
    セル手段であり、さらに、 前記複数のレジスタセル手段の下位のレジスタセル手段
    にストアされた前記累算値の特定の桁を、累算値を含む
    前記複数のレジスタセル手段の次の上位のレジスタセル
    手段にシフトし、前記特定の桁を前記次の上位のレジス
    タセル手段にストアされた前記累算値に最下位桁として
    加算するステップを含むシフト累算演算を行なうステッ
    プを含み、前記特定の桁は前記累算値の最下位桁よりも
    上位の前記下位のレジスタセル手段にストアされた前記
    累算値の桁であり、前記シフト累算演算は、前記レジス
    タ手段内の最下位レジスタセル手段から最上位レジスタ
    セル手段へと前記複数のレジスタセル手段の重みの隣接
    するレジスタセル手段の間で順次的に行なわれる、N個
    の数の積を求めるための方法。
  3. 【請求項3】 基底Zで表わされるN個の数の積を求め
    るための方法であって、前記N個の数の各々の数は最下
    位桁から最上位桁へ階層的に配列された複数の桁を有
    し、この方法は、 複数の、N−1個の記憶ユニットを設けるステップを含
    み、前記N−1個の記憶ユニットのそれぞれの記憶ユニ
    ットの各々はS個のアレイを有し、前記アレイの各々は
    (Z−1)−正方形アレイの記憶場所を含み、前記数S
    は以下の関係より決定され、 【数3】 ここで、Xは前記それぞれの記憶ユニットが採用され
    る、順序付けられた連続体であり、 前記複数の記憶ユニットは第1の記憶ユニットおよび複
    数の後続の記憶ユニットに配列され、前記第1の記憶ユ
    ニットは第1の複数の前記記憶場所を含み、前記第1の
    複数の記憶場所の第1の記憶場所の各々は、前記N個の
    数の第1の数のそれぞれの第1の桁と前記N個の数の第
    2の数の対応の第2の桁との部分積の標示を含み、前記
    複数の第1の記憶場所は、複数のポインタの第1の要素
    ポインタと、前記複数のポインタの第2の要素ポインタ
    とによりアドレス指定可能であり、前記第1のアレイに
    関する前記第1の要素ポインタのロケーションは前記第
    1の桁の各々により決定され、前記第1のアレイに関す
    る前記第2の要素ポインタのロケーションは前記対応の
    第2の桁により決定され、前記第1の要素ポインタと前
    記第2の要素ポインタとは協働して前記第1の複数の記
    憶場所のうち第1の目標場所を識別し、前記第1の目標
    場所は前記第1の桁と前記各対応の第2の桁との部分積
    の標示を含み、前記複数の後続の記憶ユニットは各々前
    記N個の数の次の後続の数に関連し、前記第1の要素ポ
    インタおよび前記第2の要素ポインタの一方のポインタ
    は前記後続の記憶ユニットにおける指定された後続のア
    レイを識別し、前記第1の要素ポインタおよび前記第2
    の要素ポインタの他方のポインタは前記指定された後続
    のアレイにおける記憶場所の指定されたサブセットを識
    別し、前記次の後続の数の特定のそれぞれの桁に関連す
    る前記複数のポインタの第3の要素ポインタは前記指定
    されたサブセットのうちの第2の目標場所を識別し、各
    後続のアレイのポインタは協働して次の後続のアレイお
    よび記憶場所の指定されたサブセットを指定し、前記後
    続のアレイの各々は、前記N個の数の前記次の後続の数
    の桁に関連する前記複数のポインタの要素ポインタを有
    し、前記部分積にすべてのN個の数が含まれるまで後続
    の目標場所を指定し、それぞれの後続のアレイ各々にお
    ける各記憶場所は、前記後続のアレイに関連する特定の
    数の特定の桁の部分積および先行するアレイにより識別
    された部分積の標示を含み、さらに、 前記N個の数の各々の前記複数の桁の各組合せに対する
    それぞれの部分積を含む複数の部分積を求めるステップ
    を含み、前記部分積の各々は合成の重みを有し、前記合
    成の重みは、前記それぞれの部分積に含まれる前記組合
    せの前記N個の数の各々の前記桁各々の前記重みにより
    確立され、さらに、 複数のレジスタセルにおいて前記複数の部分積を累算す
    るステップを含み、前記複数のレジスタセルの各々は階
    層的な重みを有し、さらに、 以下の関係に従って、前記複数のレジスタセルの特定さ
    れたレジスタセルにおいて前記累算を行なうステップを
    含み、 P[m,n,o,p,…]−−−[累算]−−r
    [x]、ここで、 x=(m+n+o+p+…)−(N−1)、 P[m,n,o,p,…]は、前記選択された部分積を
    表わし、 m=前記選択された部分積に含まれる前記N個の数の第
    1の数からの前記桁の重みであり、m=1,2,3,…
    であり、 n=前記選択された部分積に含まれる前記N個の数の第
    2の数からの前記桁の重みであり、n=1,2,3,…
    であり、 o=前記選択された部分積に含まれる前記N個の数の第
    3の数からの前記桁の重みであり、o=1,2,3,…
    であり、 p,…=前記選択された部分積に含まれる後続の数から
    の前記桁の重みであり、p(および後続の各重み)=
    1,2,3,…であり、 r[x]=重み「x」を有する前記特定されたレジスタ
    セルであり、さらに、前記複数のレジスタセルの下位の
    レジスタセルにストアされた前記累算値の特定の桁を累
    算値を含む前記複数のレジスタセルの次の上位のレジス
    タセルにシフトし、前記特定の桁を前記次の上位のレジ
    スタセルにストアされた前記累算値に最下位桁として加
    算するステップを含むシフト累算演算を行なうステップ
    を含み、前記特定の桁は、前記累算値の最下位桁よりも
    上位の前記下位のレジスタセルにストアされた前記累算
    値の桁であり、前記シフト累算演算は、最下位レジスタ
    セルから最上位レジスタセルへと前記複数のレジスタセ
    ルの重みの隣接するレジスタセルの間で順次的に行なわ
    れる、N個の数の積を求めるための方法。
  4. 【請求項4】 基底Zで表わされるN個の数の積を求め
    るための装置であって、前記N個の数の数は各々、最下
    位位置からそれぞれの最上位位置へと階層的に配列され
    た複数の桁を有し、この装置は、 情報をストアするための記憶手段を含み、前記記憶手段
    は順序付けられた複数の記憶ユニットとしてアドレス指
    定するように構成され、前記順序付けられた複数の記憶
    ユニットの記憶ユニットは各々、少なくとも1つの対応
    の(Z−1)−正方形アレイの記憶場所を含み、第1の
    各前記記憶ユニットは記憶場所の第1の前記アレイに1
    から(Z−1)までの数のすべての組合せの第1次の乗
    算の積の標示を含み、前記第1のアレイの特定の第1の
    列は第1のポインタにより識別され、前記第1のアレイ
    の特定の行は第2のポインタにより識別され、前記第1
    のポインタと前記第2のポインタとは協働して前記第1
    のアレイにおける第1の目標場所を識別し、前記第1の
    ポインタは前記N個の数の第1の数からの第1の桁によ
    り前記第1のアレイに対して指定され、前記第2のポイ
    ンタは前記N個の数の第2の数からの第2の桁により前
    記第1のアレイに対して指定され、前記第1の目標場所
    は前記第1の桁と前記第2の桁との積の標示を含み、前
    記順序付けられた複数の記憶ユニットの各後続の順序付
    けられた記憶ユニットはj番目の(Z−1)−正方形ア
    レイの記憶場所のセットを含み、前記順序付けられた複
    数の記憶ユニットの先行する(j−1)番目の記憶ユニ
    ットにおける各(j−1)番目のアレイの各列に対しそ
    れぞれ前記j番目のアレイがあり、各前記j番目のアレ
    イの記憶場所は、1から(Z−1)の数のすべての組合
    せのj番目の乗算の積×前記順序付けられた複数の記憶
    ユニットの先行する(j−1)番目の記憶ユニットにお
    いて識別された(j−1)番目の乗算の積の標示を含
    み、特定のj番目の目標場所はj番目のポインタと(j
    −1)番目の派生ポインタとにより識別され、前記j番
    目のポインタは、前記N個の数のj番目の数のj番目の
    桁により前記順序付けられた複数の記憶ユニットの前記
    j番目の記憶ユニットに対して指定され、前記(j−
    1)番目の派生ポインタは前記(j−1)番目の乗算の
    積により前記j番目の記憶ユニットに対して指定され、
    さらに、 前記記憶手段に結合され、前記記憶手段を採用して複数
    の部分積を求めるための論理手段を含み、前記複数の部
    分積は前記N個の数のそれぞれの各複数桁の組合せに対
    するそれぞれの部分積であり、前記論理手段は前記複数
    の部分積を前記のように求める間、空白の桁を値0を有
    するものと見なし、前記それぞれの部分積の各々は合成
    の重みを有し、前記合成の重みは、各前記部分積に含ま
    れる前記N個の数からのそれぞれの桁の重みにより確立
    され、さらに、 前記論理手段に結合され、情報をストアするためのレジ
    スタを含み、前記レジスタは累算値をストアするための
    複数の記憶セルを含み、前記複数のレジスタセルの各々
    は階層的な重みを有し、さらに、 以下の関係に従って、前記複数の部分積の選択された部
    分積を累算し、特定されたレジスタセル手段において累
    算値を生成するための累算手段を含み、 P[m,n,o,p,…]−−−[累算]−−r
    [x]、ここで、 x=(m+n+o+p+…)−(N−1)、 P[m,n,o,p,…]は、前記選択された部分積を
    表わし、 m=前記選択された部分積に含まれる前記N個の数の第
    1の数からの前記桁の重みであり、m=1,2,3,…
    であり、 n=前記選択された部分積に含まれる前記N個の数の第
    2の数からの前記桁の重みであり、n=1,2,3,…
    であり、 o=前記選択された部分積に含まれる前記N個の数の第
    3の数からの前記桁の重みであり、o=1,2,3,…
    であり、 p,…=前記選択された部分積に含まれる後続の数から
    の前記桁の重みであり、p(および後続の各重み)=
    1,2,3,…であり、 r[x]=重み「x」を有する前記特定されたレジスタ
    セルであり、さらに、前記レジスタ手段は、前記複数の
    レジスタセル手段の下位のレジスタセル手段にストアさ
    れた累算値の特定の桁を累算値を含む前記複数のレジス
    タセル手段の次の上位のレジスタセル手段にシフトし、
    前記特定の桁を前記次の上位のレジスタセル手段にスト
    アされた前記累算値に最下位桁として加算するステップ
    を含むシフト累算演算を行ない、前記特定の桁は、前記
    下位のレジスタセル手段にストアされた前記累算値の最
    下位の値よりも上位の前記下位のレジスタセル手段にス
    トアされた前記累算値の桁であり、前記シフト累算演算
    は、最下位レジスタセル手段から累算値を含む最上位レ
    ジスタセル手段へと前記複数のレジスタセル手段の重み
    の隣接するレジスタセル手段の間で順次的に行なわれ、 前記シフト累算演算の完了後の前記複数のレジスタセル
    手段の内容は、前記積を含む、N個の数の積を求めるた
    めの装置。
  5. 【請求項5】 前記複数の順序付けられた記憶ユニット
    は(N−1)個の記憶ユニットを含む、請求項4に記載
    の、基底Zで表されるN個の数の積を求めるための装
    置。
  6. 【請求項6】 前記順序付けられた複数の記憶ユニット
    のそれぞれの記憶ユニットの各々に含まれる前記少なく
    とも1つの(Z−1)−正方形アレイの合計数Sは、以
    下の関係により決定され、 【数4】 ここで、Xは前記それぞれの記憶ユニットが採用され
    る、順序付けられた連続体である、請求項4に記載の、
    基底Zで表されるN個の数の積を求めるための装置。
  7. 【請求項7】 前記複数の順序付けられた記憶ユニット
    は(N−1)個の記憶ユニットを含む、請求項6に記載
    の、基底Zで表されるN個の数の積を求めるための装
    置。
  8. 【請求項8】 基底Zで表されるN個の数の積を求める
    ための方法であって、前記N個の数の数は各々、最下位
    桁からそれぞれの最上位桁へと階層的に配列された複数
    の桁を有し、この方法は、 情報をストアするための記憶手段を設けるステップを含
    み、前記記憶手段は順序付けられた複数の記憶ユニット
    としてアドレス指定するように構成され、前記順序付け
    られた複数の記憶ユニットの記憶ユニットは各々少なく
    とも1つの対応の(Z−1)−正方形アレイの記憶場所
    を含み、第1の各前記記憶ユニットは記憶場所の第1の
    前記アレイに1から(Z−1)までの数のすべての組合
    せの第1次の乗算の積の標示を含み、前記第1のアレイ
    の特定の第1の列は第1のポインタにより識別され、前
    記第1のアレイの特定の行は第2のポインタにより識別
    され、前記第1のポインタと前記第2のポインタとは協
    働して前記第1のアレイにおける第1の目標場所を識別
    し、前記第1のポインタは前記N個の数の第1の数から
    の第1の桁により前記第1のアレイに対して指定され、
    前記第2のポインタは前記N個の数の第2の数からの第
    2の桁により前記第1のアレイに対して指定され、前記
    第1の目標場所は前記第1の桁と前記第2の桁との積の
    標示を含み、前記順序付けられた複数の記憶ユニットの
    各後続の順序付けられた記憶ユニットはj番目の(Z−
    1)−正方形アレイの記憶場所のセットを含み、前記順
    序付けられた複数の記憶ユニットの前段の(j−1)番
    目の記憶ユニットにおける各(j−1)番目のアレイの
    各列に対しそれぞれ前記j番目のアレイがあり、各前記
    j番目のアレイの記憶場所は、1から(Z−1)の数の
    すべての組合せのj番目の乗算の積×前記順序付けられ
    た複数の記憶ユニットの前段の(j−1)番目の記憶ユ
    ニットにおいて識別された(j−1)番目の乗算の積の
    標示を含み、特定のj番目の目標場所はj番目のポイン
    タと(j−1)番目の派生ポインタとにより識別され、
    前記j番目のポインタは、前記N個の数のj番目の数の
    j番目の桁により前記順序付けられた複数の記憶ユニッ
    トの前記j番目の記憶ユニットに対して指定され、前記
    (j−1)番目の派生ポインタは、前記(j−1)番目
    の乗算の積により前記j番目の記憶ユニットに対して指
    定され、さらに、 複数の部分積を求めるステップを含み、前記複数の部分
    積は、前記N個の数のそれぞれの各複数桁の組合せに対
    するそれぞれの部分積であり、前記複数の部分積を前記
    のように求める間、空白の桁は0の値を有するものと見
    なし、前記それぞれの部分積は各々合成の重みを有し、
    前記合成の重みは、各前記部分積に含まれる前記N個の
    数からのそれぞれの桁の重みにより確立され、さらに、 情報をストアするためのレジスタ手段を設けるステップ
    を含み、前記レジスタ手段は累算値をストアするための
    複数のレジスタセル手段を含み、前記複数のレジスタセ
    ル手段の各々は階層的な重みを有し、さらに、 以下の関係に従って、前記複数の部分積の選択された部
    分積を累算し、前記複数のレジスタセル手段の特定され
    たレジスタセルにおいて累算値を生成するための累算手
    段を設けるステップを含み、 P[m,n,o,p,…]−−−[累算]−−r
    [x]、ここで、 x=(m+n+o+p+…)−(N−1)、 P[m,n,o,p,…]は、前記選択された部分積を
    表わし、 m=前記選択された部分積に含まれる前記N個の数の第
    1の数からの前記桁の重みであり、m=1,2,3,…
    であり、 n=前記選択された部分積に含まれる前記N個の数の第
    2の数からの前記桁の重みであり、n=1,2,3,…
    であり、 o=前記選択された部分積に含まれる前記N個の数の第
    3の数からの前記桁の重みであり、o=1,2,3,…
    であり、 p,…=前記選択された部分積に含まれる後続の数から
    の前記桁の重みであり、p(および後続の各重み)=
    1,2,3,…であり、 r[x]=重み「x」を有する前記特定されたレジスタ
    セル手段であり、さらに、 前記複数のレジスタセル手段の下位のレジスタセル手段
    にストアされた累算値の特定の桁を累算値を含む前記複
    数のレジスタセル手段の次の上位のレジスタセル手段に
    シフトし、前記特定の桁を前記次の上位のレジスタセル
    手段にストアされた前記累算値に最下位桁として加算す
    るステップを含むシフト累算演算を行なうステップを含
    み、前記特定の桁は、前記累算値の最下位桁よりも上位
    の前記下位のレジスタセル手段にストアされた前記累算
    値の桁であり、前記シフト累算演算は、前記レジスタセ
    ル手段内の最下位レジスタセル手段から最上位レジスタ
    セル手段へと前記複数のレジスタセル手段の重みの隣接
    するレジスタセル手段の間で順次的に行なわれる、N個
    の数の積を求めるための方法。
  9. 【請求項9】 基底Zで表されるN個の数の積を求める
    ための方法であって、前記N個の数の数は各々、最下位
    桁からそれぞれの最上位桁へと階層的に配列された複数
    の桁を有し、この方法は、 情報をストアするための記憶手段を設けるステップを含
    み、前記記憶手段は順序付けられた複数の記憶ユニット
    としてアドレス指定するように構成され、前記順序付け
    られた複数の記憶ユニットの記憶ユニットは各々、少な
    くとも1つの対応の(Z−1)−正方形アレイの記憶場
    所を含み、第1の前記記憶ユニットは記憶場所の第1の
    前記アレイに1から(Z−1)までの数のすべての組合
    せの第1次の乗算の積の標示を含み、前記第1のアレイ
    の特定の第1の列は第1のポインタにより識別され、前
    記第1のアレイの特定の行は第2のポインタにより識別
    され、前記第1のポインタと前記第2のポインタとは協
    働して前記第1のアレイにおける第1の目標場所を識別
    し、前記第1のポインタは前記N個の数の第1の数から
    の第1の桁により前記第1のアレイに対して指定され、
    前記第2のポインタは前記N個の数の第2の数からの第
    2の桁により前記第1のアレイに対して指定され、前記
    第1の目標場所は前記第1の桁と前記第2の桁との積の
    標示を含み、前記順序付けられた複数の記憶ユニットの
    各後続の順序付けられた記憶ユニットは、j番目の(Z
    −1)−正方形アレイの記憶場所のセットを含み、前記
    順序付けられた複数の記憶ユニットの先行する(j−
    1)番目の記憶ユニットにおける各(j−1)番目のア
    レイの各列に対しそれぞれ前記j番目のアレイがあり、
    前記j番目のアレイの記憶場所は各々1から(Z−1)
    の数のすべての組合せのj番目の乗算の積×前記順序付
    けられた複数の記憶ユニットの先行する(j−1)番目
    の記憶ユニットにおいて識別された(j−1)番目の乗
    算の積の標示を含み、特定のj番目の目標場所はj番目
    のポインタと(j−1)番目の派生ポインタとにより識
    別され、前記j番目のポインタは前記N個の数のj番目
    の数のj番目の桁により前記順序付けられた複数の記憶
    ユニットの前記j番目の記憶ユニットに対して指定さ
    れ、前記(j−1)番目の派生ポインタは、前記(j−
    1)番目の乗算の積により前記j番目の記憶ユニットに
    対して指定され、さらに、 前記N個の数の各々の前記複数の桁の各組合せに対する
    それぞれの部分積を含む複数の部分積を求めるステップ
    を含み、前記部分積の各々は合成の重みを有し、前記合
    成の重みは、前記それぞれの部分積に含まれる前記組合
    せの前記N個の数の各々の前記桁の各々の前記重みによ
    り確立され、この方法はさらに、 複数のレジスタセルにおいて前記複数の部分積を累算す
    るステップを含み、前記複数のレジスタセルは階層的な
    重みを有し、さらに、 以下の関係に従い、前記複数のレジスタセルの特定のレ
    ジスタセルにおいて前記累算を行なうステップを含み、 P[m,n,o,p,…]−−−[累算]−−r
    [x]、ここで、 x=(m+n+o+p+…)−(N−1)、 P[m,n,o,p,…]は、前記選択された部分積を
    表わし、 m=前記選択された部分積に含まれる前記N個の数の第
    1の数からの前記桁の重みであり、m=1,2,3,…
    であり、 n=前記選択された部分積に含まれる前記N個の数の第
    2の数からの前記桁の重みであり、n=1,2,3,…
    であり、 o=前記選択された部分積に含まれる前記N個の数の第
    3の数からの前記桁の重みであり、o=1,2,3,…
    であり、 p,…=前記選択された部分積に含まれる後続の数から
    の前記桁の重みであり、p(および後続の各重み)=
    1,2,3,…であり、 r[x]=重み「x」を有する前記特定されたレジスタ
    セルであり、さらに、 前記複数のレジスタセルの下位のレジスタセルにストア
    された前記累算値の特定の桁を累算値を含む前記複数の
    レジスタセルの次の上位のレジスタセルにシフトし、前
    記特定の桁を前記次の上位のレジスタセルにストアされ
    た前記累算値に最下位桁として加算するステップを含む
    シフト累算演算を行なうステップを含み、前記特定の桁
    は、前記累算値の最下位桁よりも上位の前記下位のレジ
    スタセルにストアされた前記累算値の桁であり、前記シ
    フト累算演算は、最下位レジスタセルから最上位レジス
    タセルへと前記複数のレジスタセルの重みの隣接するレ
    ジスタセルの間で順次的に行なわれる、N個の数の積を
    求めるための方法。
JP7140357A 1995-06-07 1995-06-07 N個の数の積を求めるための装置および方法 Withdrawn JPH08335166A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7140357A JPH08335166A (ja) 1995-06-07 1995-06-07 N個の数の積を求めるための装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7140357A JPH08335166A (ja) 1995-06-07 1995-06-07 N個の数の積を求めるための装置および方法

Publications (1)

Publication Number Publication Date
JPH08335166A true JPH08335166A (ja) 1996-12-17

Family

ID=15266950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7140357A Withdrawn JPH08335166A (ja) 1995-06-07 1995-06-07 N個の数の積を求めるための装置および方法

Country Status (1)

Country Link
JP (1) JPH08335166A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010102351A (ja) * 2003-05-16 2010-05-06 Analog Devices Inc 複合ガロア体エンジンおよびガロア体除算器および平方根エンジンおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010102351A (ja) * 2003-05-16 2010-05-06 Analog Devices Inc 複合ガロア体エンジンおよびガロア体除算器および平方根エンジンおよび方法

Similar Documents

Publication Publication Date Title
US10853448B1 (en) Hiding latency of multiplier-accumulator using partial results
US5226171A (en) Parallel vector processing system for individual and broadcast distribution of operands and control information
US5081573A (en) Parallel processing system
US5347482A (en) Multiplier tree using nine-to-three adders
CN111353126A (zh) 分块矩阵乘法运算系统
US4769779A (en) Systolic complex multiplier
JP3388608B2 (ja) 乗算装置の選択された部分へ電力を与えるための装置および電源から乗算装置の選択された部分への電力伝達を制御するための装置
JPS62229330A (ja) 乗算回路
US6598061B1 (en) System and method for performing modular multiplication
CN104063357B (zh) 处理器以及处理方法
CN100489764C (zh) 用于比乘法器硬件的位数宽的大整数操作数的有效的乘法序列
WO1987002156A2 (en) Multizone processor
JPH08335166A (ja) N個の数の積を求めるための装置および方法
EP0543494B1 (en) Methods and apparatuses for determining the product of two numbers
US5214599A (en) Advanced dimensional processing with division
US5452242A (en) Method and apparatus for multiplying a plurality of numbers
US5291430A (en) Method and apparatus for multiplying a plurality of numbers
US5424970A (en) Method and apparatus for multiplying a plurality of N numbers
US5072419A (en) Binary tree multiplier constructed of carry save adders having an area efficient floor plan
US5777915A (en) Multiplier apparatus and method for real or complex numbers
US20150154005A1 (en) Methods and Apparatuses for Performing Multiplication
US20230206043A1 (en) Deep learning acceleration with mixed precision
US20230206061A1 (en) Deep learning acceleration with mixed precision
US20230206041A1 (en) Deep learning acceleration with mixed precision
US20230206044A1 (en) Deep learning acceleration with mixed precision

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030805