JP3388608B2 - 乗算装置の選択された部分へ電力を与えるための装置および電源から乗算装置の選択された部分への電力伝達を制御するための装置 - Google Patents
乗算装置の選択された部分へ電力を与えるための装置および電源から乗算装置の選択された部分への電力伝達を制御するための装置Info
- Publication number
- JP3388608B2 JP3388608B2 JP19217993A JP19217993A JP3388608B2 JP 3388608 B2 JP3388608 B2 JP 3388608B2 JP 19217993 A JP19217993 A JP 19217993A JP 19217993 A JP19217993 A JP 19217993A JP 3388608 B2 JP3388608 B2 JP 3388608B2
- Authority
- JP
- Japan
- Prior art keywords
- multiplier
- register
- digit
- digits
- multiplication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012546 transfer Methods 0.000 title claims description 11
- 230000005540 biological transmission Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 61
- 239000011159 matrix material Substances 0.000 description 33
- 238000009825 accumulation Methods 0.000 description 31
- 230000006835 compression Effects 0.000 description 20
- 238000007906 compression Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 239000002131 composite material Substances 0.000 description 8
- 239000000654 additive Substances 0.000 description 6
- 230000000996 additive effect Effects 0.000 description 6
- 239000000758 substrate Substances 0.000 description 6
- 238000013461 design Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5324—Multiplying 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/3816—Accepting 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)
Description
【0001】
【発明の背景】この発明は、2つの数の積を求めるため
の方法と、その方法を行なうための装置とに関する。
の方法と、その方法を行なうための装置とに関する。
【0002】好ましくはサブストレート上に配列される
シリコン素子から構成される、固体素子を用いる計算シ
ステムにおいて、一定の基本的設計規準が一般に用いら
れる。たとえば、各素子によって占有されるサブストレ
ート上のスペースができる限り小さいことが所望され
る。さらに、装置によって消費されるエネルギは、特に
電池で電力を与えられるシステムにおいては、できる限
り最小限にされることが所望される。また、計算機シス
テムはできる限り高速で動作することが所望される。
シリコン素子から構成される、固体素子を用いる計算シ
ステムにおいて、一定の基本的設計規準が一般に用いら
れる。たとえば、各素子によって占有されるサブストレ
ート上のスペースができる限り小さいことが所望され
る。さらに、装置によって消費されるエネルギは、特に
電池で電力を与えられるシステムにおいては、できる限
り最小限にされることが所望される。また、計算機シス
テムはできる限り高速で動作することが所望される。
【0003】かかる計算機システムのための乗算器は、
一般にスイッチングトランジスタのマトリックスで作ら
れ、そのマトリックスは計算機装置によって取扱われる
べき数の予想される最大のサイズに対処するために十分
なサイズである。したがってたとえば4桁の数による4
桁の数の乗算を行なうために、乗算器は乗算に含まれる
キャリおよびその他のオーバーヘッド動作に対処するた
めの付加的行または列またはその両方を有する16×1
6ビットのマトリックス(つまり16列のトランジスタ
であり、各々の列は16行のトランジスタを有する)を
必ず含むであろう。
一般にスイッチングトランジスタのマトリックスで作ら
れ、そのマトリックスは計算機装置によって取扱われる
べき数の予想される最大のサイズに対処するために十分
なサイズである。したがってたとえば4桁の数による4
桁の数の乗算を行なうために、乗算器は乗算に含まれる
キャリおよびその他のオーバーヘッド動作に対処するた
めの付加的行または列またはその両方を有する16×1
6ビットのマトリックス(つまり16列のトランジスタ
であり、各々の列は16行のトランジスタを有する)を
必ず含むであろう。
【0004】より小さい数に対して、乗算器マトリック
ス内の上位のビットは、乗算演算に含まれる被乗数およ
び乗数を正確にストアするために適当であるように、0
で満たされる。しかしながら、これらの0で満たされた
ビットはかかる0で満たすことを行なうためになお駆動
されなければならない。かかる0で満たされたビットは
乗算器によって行なわれる計算中に必然的に含まれてお
り、そのため乗算演算のためにより大きな数に対処する
時に、動作速度、電力要求およびサブストレート上の占
有面積(つまりスペース)はすべて犠牲にされる。
ス内の上位のビットは、乗算演算に含まれる被乗数およ
び乗数を正確にストアするために適当であるように、0
で満たされる。しかしながら、これらの0で満たされた
ビットはかかる0で満たすことを行なうためになお駆動
されなければならない。かかる0で満たされたビットは
乗算器によって行なわれる計算中に必然的に含まれてお
り、そのため乗算演算のためにより大きな数に対処する
時に、動作速度、電力要求およびサブストレート上の占
有面積(つまりスペース)はすべて犠牲にされる。
【0005】特に電池で電力を与えられるシステムにお
いて、電力を節約するために、特定の乗算演算のために
必要な十分な数のビットのみを駆動する乗算器を有する
ことは有利であろう。スペースを節約しかつ乗算器を使
用するシステムの実装密度を上げるために、サブストレ
ート上にできる限り少ない占有面積を占有する乗算器を
有することはさらに有利であろう。乗算器を使用するシ
ステムの動作速度を促進するために乗算演算を高速で行
なう乗算器を有することはまたさらに有利であろう。
いて、電力を節約するために、特定の乗算演算のために
必要な十分な数のビットのみを駆動する乗算器を有する
ことは有利であろう。スペースを節約しかつ乗算器を使
用するシステムの実装密度を上げるために、サブストレ
ート上にできる限り少ない占有面積を占有する乗算器を
有することはさらに有利であろう。乗算器を使用するシ
ステムの動作速度を促進するために乗算演算を高速で行
なう乗算器を有することはまたさらに有利であろう。
【0006】上述の所望される利点を実現できる乗算器
の設計および動作を容易にする方法によって乗算を行な
うこともまた有利であろう。
の設計および動作を容易にする方法によって乗算を行な
うこともまた有利であろう。
【0007】
【発明の概要】この発明は第1の数と第2の数との積を
求めるための方法を含み、その第1の数は第1の下位桁
から第1の上位桁へ階層的に配列された複数個の第1の
桁数を有し、かつその第2の数は第2の下位桁から第2
の上位桁へ階層的に配列された複数個の第2の桁数を有
する。この方法はその好ましい実施例において次のステ
ップを含む: (1) 複数個の部分積を求める(より短い数のブラン
クの桁を0と取扱う)ステップであり、複数個の部分積
は、それぞれの数の第1の桁数と第2の桁数との対の組
合せについての部分積を含み、それにより各部分積に含
まれる対の組合せの第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」を有する特定されたレジスタ
セルを表わす。
値を生成するために、それぞれの部分積の選択されたも
のを累算し、ここで「Pm ,n 」はそれぞれの部分積を
表わし、「m」は第1の重み(m=1、2、…)を表わ
し、「n」は第2の重み(n=1、2、…)を表わし、
かつ「rx 」は重み「x」を有する特定されたレジスタ
セルを表わす。
【0010】(4) 下位のレジスタセルにストアされ
た累算値の特定の桁数を累算値を含む次の上位のレジス
タセルにシフトすることと、特定の桁数を、次の上位の
レジスタセルに最下位桁数としてストアされた累算値に
加算することとを含むシフト累算演算を行ない、特定の
桁数は累算値の最下位桁よりも上位である、下位のレジ
スタセルにストアされた累算値の桁数であり、シフト累
算演算は、レジスタ内の最下位レジスタセルから最上位
レジスタセルまで、重みの隣接したレジスタセルの間で
順次連続して行なわれる。
た累算値の特定の桁数を累算値を含む次の上位のレジス
タセルにシフトすることと、特定の桁数を、次の上位の
レジスタセルに最下位桁数としてストアされた累算値に
加算することとを含むシフト累算演算を行ない、特定の
桁数は累算値の最下位桁よりも上位である、下位のレジ
スタセルにストアされた累算値の桁数であり、シフト累
算演算は、レジスタ内の最下位レジスタセルから最上位
レジスタセルまで、重みの隣接したレジスタセルの間で
順次連続して行なわれる。
【0011】(5) 積を確定するために複数個のレジ
スタセルの内容を読出す。この発明の他の局面は、前述
の方法を実行するための装置を含み、その装置はその好
ましい実施例において、複数個の第1の桁数と複数個の
第2の桁数との対の組合せの各々についての部分積を定
めるための論理回路と、累算値をストアするための、階
層的重みを有する複数個のレジスタセルを有するレジス
タと、累算値を生成するためにそれぞれの部分積の選択
されたものを累算するための累算回路とを含み、累算回
路は上記の関係に従って、累算値を特定のレジスタセル
にストアする。
スタセルの内容を読出す。この発明の他の局面は、前述
の方法を実行するための装置を含み、その装置はその好
ましい実施例において、複数個の第1の桁数と複数個の
第2の桁数との対の組合せの各々についての部分積を定
めるための論理回路と、累算値をストアするための、階
層的重みを有する複数個のレジスタセルを有するレジス
タと、累算値を生成するためにそれぞれの部分積の選択
されたものを累算するための累算回路とを含み、累算回
路は上記の関係に従って、累算値を特定のレジスタセル
にストアする。
【0012】したがってこの発明の目的は、電力消費を
節約するために特定の乗算演算に必要なだけの素子を駆
動することを容易にする、2つの数の積を求めるための
方法およびその装置を提供することである。
節約するために特定の乗算演算に必要なだけの素子を駆
動することを容易にする、2つの数の積を求めるための
方法およびその装置を提供することである。
【0013】この発明の他の目的は、この装置を用いる
システム中でサブストレート上で効率的にスペースを占
有する、2つの数の積を求めるための方法およびその装
置を提供することである。
システム中でサブストレート上で効率的にスペースを占
有する、2つの数の積を求めるための方法およびその装
置を提供することである。
【0014】この発明のさらに他の目的は、この装置を
用いるシステムの動作速度を速くするために乗算演算を
高速で行なう、2つの数の積の値を求めるための方法お
よびその装置を提供することである。
用いるシステムの動作速度を速くするために乗算演算を
高速で行なう、2つの数の積の値を求めるための方法お
よびその装置を提供することである。
【0015】この発明の他の目的および特徴は、この発
明の好ましい実施例を示す添付の図面に関連して考慮さ
れるときに、以下の詳細な説明および前掲の特許請求の
範囲から明らかになるであろう。
明の好ましい実施例を示す添付の図面に関連して考慮さ
れるときに、以下の詳細な説明および前掲の特許請求の
範囲から明らかになるであろう。
【0016】
【詳細な説明】旧式の高速データ信号処理装置は、音声
圧縮、高速モデム操作、デジタルフィルタの操作等の機
能のためのアルゴリズムを実行するために高速乗算器を
用いる。典型的には、このような機能のために用いられ
る乗算器は、大きく(16×16ビットアレイのオーダ
で)、かつ高電力消費と、広いダイス領域(サブストレ
ート上の占有面積)と、高精度とを含む。算術論理ユニ
ット等の乗算器の他の使用は一般に、高速操作を維持す
るために、同一の欠点、つまり高電力消費および広いダ
イス領域の影響を受け、かつこの欠点はより速い速度、
より高い精度、およびより大きな数への要求に伴って悪
化する。
圧縮、高速モデム操作、デジタルフィルタの操作等の機
能のためのアルゴリズムを実行するために高速乗算器を
用いる。典型的には、このような機能のために用いられ
る乗算器は、大きく(16×16ビットアレイのオーダ
で)、かつ高電力消費と、広いダイス領域(サブストレ
ート上の占有面積)と、高精度とを含む。算術論理ユニ
ット等の乗算器の他の使用は一般に、高速操作を維持す
るために、同一の欠点、つまり高電力消費および広いダ
イス領域の影響を受け、かつこの欠点はより速い速度、
より高い精度、およびより大きな数への要求に伴って悪
化する。
【0017】この発明は、2つの数の積を求めるための
方法(つまり乗算の方法)を含み、その方法は、1つの
乗算器で乗算するために要求されるであろう乗算器のサ
イズよりも小さい複数個の乗算器の間で乗算操作を分散
することを含む。かかる分散処理は演算の速度と結果の
正確さとを維持する一方で、より小さなダイス領域要求
を与え、かつ特定の乗算演算に含まれる特定の被乗数お
よび乗数に要求される分配処理配列中で、特定の乗算ユ
ニットのみを駆動する機会を与える。
方法(つまり乗算の方法)を含み、その方法は、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のセグメントのそれぞれは所与の重みのスパンに
対して同数の桁数を含む。
数と第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 −
dn )」で現わされる第2のセグメント対の各々につい
ての第2の減算圧縮とがまた計算される。
ント対の各々とについて加算圧縮が計算される。つま
り、式「(am +bm )」で表わされる、第1のセグメ
ント対の各々についての第1の加算圧縮と、式「(cn
+dn )」によって表わされる第2のセグメント対の各
々についての第2の加算圧縮とが計算される。同様に、
式「(am −bm )」で表わされる第1のセグメント対
の各々についての第1の減算圧縮と、式「(cn −
dn )」で現わされる第2のセグメント対の各々につい
ての第2の減算圧縮とがまた計算される。
【0025】第1のセグメント対の各々のうちの下位セ
グメントの各々と、第2のセグメント対の各々のうちの
下位セグメントの各々との積を含む、1組の1次部分積
が計算される。各1次部分積は式「P1m,n 」で現わさ
れ、ここでP1m,n =bm d n であり、かつ「m、n」
は1次部分積の各々について合成の重みを確立する。
グメントの各々と、第2のセグメント対の各々のうちの
下位セグメントの各々との積を含む、1組の1次部分積
が計算される。各1次部分積は式「P1m,n 」で現わさ
れ、ここでP1m,n =bm d n であり、かつ「m、n」
は1次部分積の各々について合成の重みを確立する。
【0026】第1の加算圧縮の各々と、第2の加算圧縮
の各々との積を含む、1組の2次の部分積が計算され
る。2次部分積の各々は、式「P2m,n 」で表わされ、
ここでP2m,n =(am +bm )(cn +dn )であ
り、かつ「m,n」は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次部分積の各々について合成の重みを確
立する。
の各々との積を含む、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 で表わされる。
有する特定の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
3m,n )÷2 で表わされる。
る3次部分積を引いた差が計算され、中間差を生じる。
中間差は2で除算されて減算係数を生成する。各減算係
数は式 「F- m,n 」、ここでF- m,n =(P2m,n +P
3m,n )÷2 で表わされる。
【0030】1次部分積と、減算係数と、加算係数と
は、レジスタセルのアレイを有するレジスタ中で累算さ
れて、レジスタセルの適切なものの中で累算値を生じ
る。レジスタセルは、第1のレジスタセルから(4j−
1)レジスタセルまで階層的に配列され、ここで「j」
は第1のセグメント対の数を表わす。第1のレジスタセ
ルは階層的配列中で最下位の重みを有し、複数個のレジ
スタセルの各々は、rx によって表わされ、ここで
「x」はそれぞれのレジスタセルの重みを示す。それぞ
れのレジスタセル中の複数個の1次部分積の累算は関係 P1m,n =bm dn −[累算して]→ r2(m+n)-3 に従って行なわれる。それぞれのレジスタセル中の減算
係数の累算は、関係 F- m,n −[累算して] → r2(m+n)-2 に従って行なわれる。それぞれのレジスタセル中の加算
係数の累算は、関係 F+ m,n −[累算して] → r2(m+n)-1 に従って行なわれる。
は、レジスタセルのアレイを有するレジスタ中で累算さ
れて、レジスタセルの適切なものの中で累算値を生じ
る。レジスタセルは、第1のレジスタセルから(4j−
1)レジスタセルまで階層的に配列され、ここで「j」
は第1のセグメント対の数を表わす。第1のレジスタセ
ルは階層的配列中で最下位の重みを有し、複数個のレジ
スタセルの各々は、rx によって表わされ、ここで
「x」はそれぞれのレジスタセルの重みを示す。それぞ
れのレジスタセル中の複数個の1次部分積の累算は関係 P1m,n =bm dn −[累算して]→ 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の
数との積を含み、かつレジスタセルのアレイの外へシフ
トされてこの発明の方法を用いる装置内で適切なさらな
る処理において使用されてもよい。
レジスタセルから、レジスタセルのアレイ内の次の上位
のセルへ、シフト累算演算が行なわれる。シフト累算演
算は最下位レジスタセルで始まり、かつ下位レジスタセ
ル中の累算値の特定の桁数を次の上位のレジスタセルへ
シフトし、シフトされた上位の桁数を下位桁として、次
の上位のレジスタセル内で累算値と加算することを含
む。シフトされるべき特定の桁数は、第1の数がそれに
除算される第1のセグメントの各々の桁の数に等しい、
下位のレジスタセル中の累算値の下位桁の数よりも上位
のすべての桁数を含む。シフト累算演算は最下位セルか
ら継続し、かつ次の上位レジスタセルが(4j−1)セ
ル、つまり中に累算値がストアされた最上位セルとなる
まで、重みの隣接したレジスタセルの間で連続して行な
われる。上述のシフト累算演算が完了した後、レジスタ
セルのアレイ内にストアされる数は、第1の数と第2の
数との積を含み、かつレジスタセルのアレイの外へシフ
トされてこの発明の方法を用いる装置内で適切なさらな
る処理において使用されてもよい。
【0032】この発明の方法は以下の例によって例示さ
れるであろう。例I: 256×256の乗算を行なうために (1) 被乗数と乗数とを分離して式(1)のようにセ
グメント対にする。
れるであろう。例I: 256×256の乗算を行なうために (1) 被乗数と乗数とを分離して式(1)のようにセ
グメント対にする。
【0033】(2) 加算圧縮および減算圧縮を式
(2)のように定める。 (3) 式(3)のように1次部分積(P1)を定め
る。
(2)のように定める。 (3) 式(3)のように1次部分積(P1)を定め
る。
【0034】(4) 加算係数(F+ )および減算係数
(F- )を式(4)のように定める。
(F- )を式(4)のように定める。
【0035】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の定められた項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(5)のようになる。
複数個のレジスタセル中の定められた項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(5)のようになる。
【0036】
【数2】
【0037】(b) このように、レジスタセルのアレ
イは累算値について表3(A)のように定められる。
イは累算値について表3(A)のように定められる。
【0038】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位のレジスタ
セルの累算値から次の上位のレジスタセルへシフトし、
かつそれらのシフトされた特定の桁数を次の上位のレジ
スタセル中の累算値に下位桁として加算する。シフトさ
れた特定の桁数はすべて、「b」中の桁の数よりも上位
の桁数であり、「b」と「d」とは同数の桁数を有する
ことが要求される。表3(B)参照。
行なうことであり、これは特定の桁数を下位のレジスタ
セルの累算値から次の上位のレジスタセルへシフトし、
かつそれらのシフトされた特定の桁数を次の上位のレジ
スタセル中の累算値に下位桁として加算する。シフトさ
れた特定の桁数はすべて、「b」中の桁の数よりも上位
の桁数であり、「b」と「d」とは同数の桁数を有する
ことが要求される。表3(B)参照。
【0039】
【表3】
【0040】(7) レジスタの内容は正解(65,5
36)を含み、かつその内容をレジスタセルのアレイか
ら直列または並列のいずれかで適切にシフトすることに
より、他の処理のために利用可能である。
36)を含み、かつその内容をレジスタセルのアレイか
ら直列または並列のいずれかで適切にシフトすることに
より、他の処理のために利用可能である。
【0041】この方法は、「a」と「c」とが同数の桁
数(ブランクは0として扱われる)を有する限りかつ
「b」と「d」とが同数の桁数を有する限り、被乗数と
乗数とがどのように分離されようとも、正確な結果を与
える。
数(ブランクは0として扱われる)を有する限りかつ
「b」と「d」とが同数の桁数を有する限り、被乗数と
乗数とがどのように分離されようとも、正確な結果を与
える。
【0042】例II:
(1) 被乗数と乗数とを式(6)のように分離する。
【0043】(2) 加算圧縮および減算圧縮を式
(7)のように定める。 (3) 1次部分積(P1)を式(8)のように定め
る。
(7)のように定める。 (3) 1次部分積(P1)を式(8)のように定め
る。
【0044】(4) 加算係数(F+ )および減算係数
(F- )を式(9)のように定める。
(F- )を式(9)のように定める。
【0045】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(10)のようになる。
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(10)のようになる。
【0046】
【数3】
【0047】(b) このように、レジスタセルのアレ
イは累算値に対して表4(A)のように設定される。
イは累算値に対して表4(A)のように設定される。
【0048】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から、次に上位のレジスタセルへシフトし、
かつそれらのシフトされた特定の桁数を次に上位のレジ
スタセル中の累算値に下位桁として加算する。シフトさ
れた特定の桁数はすべて、「b」中の桁の数よりも上位
の桁数であり、「b」と「d」とは同数の桁数を有する
べきである。表4(B)参照。
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から、次に上位のレジスタセルへシフトし、
かつそれらのシフトされた特定の桁数を次に上位のレジ
スタセル中の累算値に下位桁として加算する。シフトさ
れた特定の桁数はすべて、「b」中の桁の数よりも上位
の桁数であり、「b」と「d」とは同数の桁数を有する
べきである。表4(B)参照。
【0049】
【表4】
【0050】(7) レジスタの内容は正解(250,
000)を含み、かつその内容をレジスタセルのアレイ
から直列または並列のいずれかで適切にシフトすること
によって、他の処理について利用可能である。
000)を含み、かつその内容をレジスタセルのアレイ
から直列または並列のいずれかで適切にシフトすること
によって、他の処理について利用可能である。
【0051】この方法はより大きな数にも対処する。例III
:
1,234×5,678を乗算するために
(1) 被乗数と乗数とを式(11)のように分離す
る。
る。
【0052】(2) 加算圧縮および減算圧縮を式(1
2)のように定める。 (3) 1次部分積(P1)を式(13)のように定め
る。
2)のように定める。 (3) 1次部分積(P1)を式(13)のように定め
る。
【0053】(4) 加算係数(F+ )および減算係数
(F- )を式(14)のように定める。
(F- )を式(14)のように定める。
【0054】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(15)のようになる。
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(15)のようになる。
【0055】
【数4】
【0056】(b) したがってレジスタセルのアレイ
は累算値に対して表5(A)のように設定される。
は累算値に対して表5(A)のように設定される。
【0057】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から、次に上位のレジスタセルへシフトし、
かつそれらのシフトされた特定の桁数を次に上位のレジ
スタセル中の累算値に下位桁として加算する。シフトさ
れた特定の桁数はすべて「b」中の桁数より上位の桁数
であり、「b」と「d」とは同数の桁数を有するべきで
ある。表5(B)参照。
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から、次に上位のレジスタセルへシフトし、
かつそれらのシフトされた特定の桁数を次に上位のレジ
スタセル中の累算値に下位桁として加算する。シフトさ
れた特定の桁数はすべて「b」中の桁数より上位の桁数
であり、「b」と「d」とは同数の桁数を有するべきで
ある。表5(B)参照。
【0058】
【表5】
【0059】(7) レジスタの内容は正解(7,00
6,652)を含み、かつその内容をレジスタセルのア
レイから直列または並列のいずれかで適切にシフトする
ことによって、他の処理について利用可能である。
6,652)を含み、かつその内容をレジスタセルのア
レイから直列または並列のいずれかで適切にシフトする
ことによって、他の処理について利用可能である。
【0060】この方法は10を底とする数以外の数につ
いても有効に働く。たとえば135×214(7を底と
する)の乗算を行なうために:例IV :(7を底とする) (1) 被乗数と乗数とを式(16)のように分離す
る。
いても有効に働く。たとえば135×214(7を底と
する)の乗算を行なうために:例IV :(7を底とする) (1) 被乗数と乗数とを式(16)のように分離す
る。
【0061】(2) 加算圧縮および減算圧縮を式(1
7)のように定める。 (3) 1次部分積(P1)を式(18)のように定め
る。
7)のように定める。 (3) 1次部分積(P1)を式(18)のように定め
る。
【0062】(4) 加算係数(F+ )および減算係数
(F- )を式(19)のように定める。
(F- )を式(19)のように定める。
【0063】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(20)のようになる。
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと式(20)のようになる。
【0064】
【数5】
【0065】
【数6】
【0066】(b) したがって、レジスタセルのアレ
イは累算値に対して表6(A)のように設定される。
イは累算値に対して表6(A)のように設定される。
【0067】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から次に上位のレジスタセルへシフトし、か
つそれらのシフトされた特定の桁数を次に上位のレジス
タセル中の累算値に下位桁として加算する。シフトされ
た特定の桁数はすべて、「b」中の桁数よりも上位の桁
数であり、「b」および「d」は同数の桁数を有するこ
とが要求される。表6(B)参照。
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から次に上位のレジスタセルへシフトし、か
つそれらのシフトされた特定の桁数を次に上位のレジス
タセル中の累算値に下位桁として加算する。シフトされ
た特定の桁数はすべて、「b」中の桁数よりも上位の桁
数であり、「b」および「d」は同数の桁数を有するこ
とが要求される。表6(B)参照。
【0068】
【表6】
【0069】(7) レジスタの内容は正解(32,5
56)を含み、かつその内容をレジスタセルのアレイか
ら直列または並列のいずれかで適切にシフトすることに
より、他の処理のために利用可能である。
56)を含み、かつその内容をレジスタセルのアレイか
ら直列または並列のいずれかで適切にシフトすることに
より、他の処理のために利用可能である。
【0070】この方法は乗算演算をさらに分配するため
に、被乗数および乗数をより完全に分離し、それにより
分散処理においてより小さい乗算器を用いるように拡張
されることが可能である。
に、被乗数および乗数をより完全に分離し、それにより
分散処理においてより小さい乗算器を用いるように拡張
されることが可能である。
【0071】例V:
(1) 被乗数と乗数とを式(21)のように分離す
る。
る。
【0072】(2) 加算圧縮および減算圧縮を式(2
2)のように定める。 (3) 1次部分積(P1m,n )を式(23)のように
定める。
2)のように定める。 (3) 1次部分積(P1m,n )を式(23)のように
定める。
【0073】(4) 加算係数 (F+ m,n )および減
算係数 (F- m,n )を式(24)(25)のように定
める。
算係数 (F- m,n )を式(24)(25)のように定
める。
【0074】
【数7】
【0075】
【数8】
【0076】
【数9】
【0077】(5) 重みに従って階層的に配列された
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと表7のようになる。
複数個のレジスタセル中の決定された項の累算は次のよ
うに定められる: (a) 一般に、一般に認められたマニュアル乗算の方
法に従うと表7のようになる。
【0078】(b) したがって、レジスタセルのアレ
イは累算値について表8のように設定される。
イは累算値について表8のように設定される。
【0079】
【表7】
【0080】
【表8】
【0081】(6) 次のステップはシフト累算演算を
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から次に上位のレジスタセルにシフトし、か
つそれらのシフトされた特定の桁数を次の上位のレジス
タセル中の累算値に下位桁として加算する。シフトされ
た特定の桁数はすべて「bm 」中の桁の数よりも上位の
桁数であり、「bm 」と「dn 」とは同数の桁数を有す
ることが要求される。表9参照。
行なうことであり、これは特定の桁数を下位レジスタセ
ルの累算値から次に上位のレジスタセルにシフトし、か
つそれらのシフトされた特定の桁数を次の上位のレジス
タセル中の累算値に下位桁として加算する。シフトされ
た特定の桁数はすべて「bm 」中の桁の数よりも上位の
桁数であり、「bm 」と「dn 」とは同数の桁数を有す
ることが要求される。表9参照。
【0082】(7) レジスタの内容は正解(7,00
6,652)を含み、かつその内容をレジスタセルのア
レイから直列または並列のいずれかで適切にシフトする
ことによって他の処理のために利用可能である。
6,652)を含み、かつその内容をレジスタセルのア
レイから直列または並列のいずれかで適切にシフトする
ことによって他の処理のために利用可能である。
【0083】一般に認められた乗算のマニュアルの方法
を調べると、この発明の上述の方法に対する簡略化した
アプローチがわかり、かつその方法の代わりの実施例を
生じる。
を調べると、この発明の上述の方法に対する簡略化した
アプローチがわかり、かつその方法の代わりの実施例を
生じる。
【0084】特にたとえば4桁の数について、レジスタ
のセットアップは表10のように定められる。
のセットアップは表10のように定められる。
【0085】マニュアル乗算技術のかかる応用から生じ
る「斜交マトリックス」は正方マトリックスとして表1
1のように表わされ得る(4桁の数、n=2)。
る「斜交マトリックス」は正方マトリックスとして表1
1のように表わされ得る(4桁の数、n=2)。
【0086】
【表9】
【0087】
【表10】
【0088】
【表11】
【0089】この発明のこの方法の第1の実施例に関連
して先に説明されたレジスタのセットアップが対角線上
にみられる。1次部分積(P1m,n )、加算係数(F+
m,n)、および減算係数(F- m,n )もまた対角線上に
みられることに注目されたい。表12参照。
して先に説明されたレジスタのセットアップが対角線上
にみられる。1次部分積(P1m,n )、加算係数(F+
m,n)、および減算係数(F- m,n )もまた対角線上に
みられることに注目されたい。表12参照。
【0090】つまり、(列1,行1)を介して延長する
対角線はP11,1 (b1 d1 )を含み、この対角線上の
値はレジスタセルr1 中で累算する。
対角線はP11,1 (b1 d1 )を含み、この対角線上の
値はレジスタセルr1 中で累算する。
【0091】(列2,行1)から(列1,行2)へ延び
る対角線はF- 1,1 ( a1 d1 +b 1 c1 ) を含み、こ
の対角線上の値はレジスタセルr2 中で累算する。
る対角線はF- 1,1 ( a1 d1 +b 1 c1 ) を含み、こ
の対角線上の値はレジスタセルr2 中で累算する。
【0092】(列3,行1)から(列1,行3)へ延び
る対角線はP12,1 (b2 d1 )と、F+ 1,1 (a1 c
1 )とP11,2 (b1 d2 )とを含み、この対角線上の
値はレジスタセルr3 中で累算する。
る対角線はP12,1 (b2 d1 )と、F+ 1,1 (a1 c
1 )とP11,2 (b1 d2 )とを含み、この対角線上の
値はレジスタセルr3 中で累算する。
【0093】(行4,列1)から(行1,列4)へ延長
する対角線はF- 2,1 ( a2 d1 +b2 c1 ) とF-
1,2 ( a1 d2 +b1 c2 ) とを含み、この対角線上の
値はレジスタセル4 中で累算する。
する対角線はF- 2,1 ( a2 d1 +b2 c1 ) とF-
1,2 ( a1 d2 +b1 c2 ) とを含み、この対角線上の
値はレジスタセル4 中で累算する。
【0094】(列4,行2)から(列2,行4)へ延長
する対角線はF+ 2,1 (a2 c1 )と、P12,2 (b2
d2 )と、F+ 1,2 (a1 c2 )とを含み、この対角線
上の値はレジスタセルr5 中で累算する。
する対角線はF+ 2,1 (a2 c1 )と、P12,2 (b2
d2 )と、F+ 1,2 (a1 c2 )とを含み、この対角線
上の値はレジスタセルr5 中で累算する。
【0095】(列4,行3)から(列3,行4)ヘ延在
する対角線はF- 2,2 (a2 d2 +b2 c2 )を含み、
この対角線上の値はレジスタセルr6 中で累算する。
する対角線はF- 2,2 (a2 d2 +b2 c2 )を含み、
この対角線上の値はレジスタセルr6 中で累算する。
【0096】(列4,行4)を介する対角線はF+ 2,2
(a2 c2 )を含み、この対角線上の値はレジスタセル
r7 中で累算する。
(a2 c2 )を含み、この対角線上の値はレジスタセル
r7 中で累算する。
【0097】こうしてたとえばn=3である6桁の数に
ついて、正方マトリックスは表13のように設定され得
る。またたとえばn=4である8桁の数について、正方
マトリックスは表14のように設定され得る。レジスタ
のセットアップは対角線に沿ってあることがみられ、か
つ次の公式で表わされることができる(比較を容易にす
るためにn=2、n=3、およびn=4についての場合
は欄送りされる)。表15−表17参照。
ついて、正方マトリックスは表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の
番号を付けられた行もまた示され、これは正方マトリッ
クスの上から下へ増えていく重みを示す。
と第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の実施例に関連して前述されたシフト累算演
算が行なわれる。
き項は平行対角線上にみられるように示される。たとえ
ば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 は、適切な正方マトリッ
クス内のその(列、行)ロケーションを確定することに
よりすべて定められ得る。
の合成の重みを示す添字(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」を有する特定されたレジスタセルを表わす。
を求めるためのより単純で好ましい方法は、被乗数と乗
数とをセグメント対に区分する必要がない。この発明の
好ましい方法に従って、第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に従って、どのレジスタセ
ル中に部分積が累算されるべきかを定める。
な装置を用いれば、マトリックスは要求されない。それ
ぞれの部分積に含まれる第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)は、その中にそれぞれの部分
積が累算されるべきそれぞれのレジスタセルを完全に識
別する。したがって、それぞれの部分積の合成の重み
は、その中に部分積が累算されるべきレジスタセルを完
全に識別し、かつその中にそれぞれの部分積が累算され
るべきレジスタセルを定めるための中間ステップまたは
装置としてマトリックスが用いられる必要がない。
レジスタのセットアップを定めるための一般化された正
方マトリックスを表わす。図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平方マトリックスによっ
て定められ得る。
との積は、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ビットの占有領域のみ)だけを用いて占有面積を
節約することを選んでもよい。
ステムの一定の設計パラメータは、このシステムによっ
て対処されるべき被乗数−乗数演算の予期されるサイズ
を知るだけで容易に確定されることが可能である。たと
えば図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のレジスタセルのみが要求
される)のみである。
る乗算器およびレジスタセルのみを駆動するように制御
ソフトウェアまたはハードウェアがプログラムされても
よい。こうして、たとえば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桁の数を乗算する)ことを選べば、先行技術
では如何なる占有面積の利点も実現されないが、乗算演
算はより少ないクロックサイクルで完了されるであろ
う。
を適正に選択することは、実際乗算演算の速度を上げ得
る、なぜなら部分積を求めるための数多くの下位の乗算
演算は同時に発生するからである。こうして、もし設計
者が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行の
トランジスタを有し、かつ付加的行または列またはその
両方を有する。
法を行なうための装置である。図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を含んで示される。
を実行するための装置の概略図であり、そこで第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とを有する。
ト対(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)を
生成する。
出力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で発生する。
は、除算器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と実質的に同一である。
を実行するための装置の概略のブロック図であり、そこ
で被乗数は第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とを
含む。
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 ])を与える。
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
21, 1 +P31,1 )はALU128の合計出力130で
与えられ、除算器134によって2で除算され、かつA
LU138へ入力として与えられる。量「b1 」と量
「d1 」とは乗算器124が出力127で一次部分積P
11,1 (P11,1 =b1d1 )を与えるように、乗算器
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) を与える。
から二次部分積P21,1 と、乗算器124の出力126
から三次部分積P31,1 とを入力として受ける。量(P
21, 1 +P31,1 )はALU128の合計出力130で
与えられ、除算器134によって2で除算され、かつA
LU138へ入力として与えられる。量「b1 」と量
「d1 」とは乗算器124が出力127で一次部分積P
11,1 (P11,1 =b1d1 )を与えるように、乗算器
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 −
d2 ])を生成する。
グメント対(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 −
d2 ])を生成する。
【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 d2 )を生成する。出力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
12,2 ) を与える。
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 d2 )を生成する。出力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
12,2 ) を与える。
【0127】クロス乗算サブシステム106は、乗算器
180、182、184、および186を含む。乗算器
180は、ALU144の合計出力148で生成された
量(a2 +b2 )と、ALU110の合計出力118で
生成された量(c1 +d1 )とを入力として受け、かつ
出力188で二次部分積P22,1 (P22,1 =[a2+
b2 ][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 +
b1 )とを入力として受け、かつ出力192で二次部分
積P21,2 (P21,2 =[a1 +b1 ][c2 +
d2 ])を生成する。乗算器186は、ALU146の
差出力154で生成された量(c2−d1 )と、ALU
108の差出力116で生成された量(a1 −b1 )と
を入力として受け、かつ出力194で三次部分積P3
1,2 (P31.2 =[a1 −b1][c2 −d2 ])を生
成する。
180、182、184、および186を含む。乗算器
180は、ALU144の合計出力148で生成された
量(a2 +b2 )と、ALU110の合計出力118で
生成された量(c1 +d1 )とを入力として受け、かつ
出力188で二次部分積P22,1 (P22,1 =[a2+
b2 ][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 +
b1 )とを入力として受け、かつ出力192で二次部分
積P21,2 (P21,2 =[a1 +b1 ][c2 +
d2 ])を生成する。乗算器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) を生成する。
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 d1 )を生成する。
出力208は作動的に接続されて、一次部分積P12,1
を入力としてALU204に与え、かつアキュムレータ
142中に累算されるためにP12,1 を与える。ALU
204は、アキュムレータ142中に累算されるために
加算係数 F+ 2,1 (F+ 2,1 =[P22,1 +P32,1 ]÷2−P
11,1 ) をその差出力210で与える。
「d1 」を付加的入力として受け、かつ出力208で一
次部分積P12,1 (P12,1 =b2 d1 )を生成する。
出力208は作動的に接続されて、一次部分積P12,1
を入力としてALU204に与え、かつアキュムレータ
142中に累算されるためにP12,1 を与える。ALU
204は、アキュムレータ142中に累算されるために
加算係数 F+ 2,1 (F+ 2,1 =[P22,1 +P32,1 ]÷2−P
11,1 ) をその差出力210で与える。
【0130】ALU212は、乗算器184の出力19
2から二次部分積P21,2 (P22, 1 =[a1 +b1 ]
[c2 +d2 ])と、乗算器186の出力194から三
次部分積P31,2 (P31,2 =[a1 −b1 ][c2 −
d2 ])とを入力として受ける。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で与える。
2から二次部分積P21,2 (P22, 1 =[a1 +b1 ]
[c2 +d2 ])と、乗算器186の出力194から三
次部分積P31,2 (P31,2 =[a1 −b1 ][c2 −
d2 ])とを入力として受ける。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 d2 )を生成する。出力2
24は作動的に接続されて、一次部分積P11,2 を入力
としてALU220に与え、かつアキュムレータ142
中に累算されるためにP11,2 を与える。ALU220
は、アキュムレータ142中に累算されるために加算係
数 F+ 1,2 (F+ 1,2 =[P21,2 +P31,2 ]÷2−P
11,2 ) をその差出力226で生成する。
「d2 」を入力として受け、かつ出力224で一次部分
積P11,2 (P11,2 =b1 d2 )を生成する。出力2
24は作動的に接続されて、一次部分積P11,2 を入力
としてALU220に与え、かつアキュムレータ142
中に累算されるためにP11,2 を与える。ALU220
は、アキュムレータ142中に累算されるために加算係
数 F+ 1,2 (F+ 1,2 =[P21,2 +P31,2 ]÷2−P
11,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を介し
てシフトするために利用可能である。
部分積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で受けられる。
例を実行するための装置の概略のブロック図である。図
7において、乗算装置240は、被乗数入力242から
被乗数を受け、かつ乗数入力244から乗数を受ける。
被乗数は、入力248でマルチプレクサ246によって
受けられ、かつ乗数はマルチプレクサ246の入力25
0で受けられる。
【0134】乗算器254のアレイ252はバス256
によってマルチプレクサ246に作動的に接続される。
マルチプレクサ246は、入力248および250で受
けられた、被乗数および乗数のそれぞれの桁数の重みを
実現するようにプログラムされ、その結果、被乗数の桁
数と乗数の桁数との対の組合せのそれぞれを、かかる対
の組合せの各々についてのそれぞれ部分積を生成した
後、利用可能な乗算器254に送って乗算し、かつバス
256を介して乗算器254のアレイ252からそれぞ
れの部分積を受けた後、マルチプレクサ246は、それ
ぞれの部分積に含まれる対の組合せの被乗数の桁数の重
みと乗数の桁数の重みとに従って、それぞれの部分積を
結果レジスタ260中の適切なレジスタセル258で累
算することを指示する。
によってマルチプレクサ246に作動的に接続される。
マルチプレクサ246は、入力248および250で受
けられた、被乗数および乗数のそれぞれの桁数の重みを
実現するようにプログラムされ、その結果、被乗数の桁
数と乗数の桁数との対の組合せのそれぞれを、かかる対
の組合せの各々についてのそれぞれ部分積を生成した
後、利用可能な乗算器254に送って乗算し、かつバス
256を介して乗算器254のアレイ252からそれぞ
れの部分積を受けた後、マルチプレクサ246は、それ
ぞれの部分積に含まれる対の組合せの被乗数の桁数の重
みと乗数の桁数の重みとに従って、それぞれの部分積を
結果レジスタ260中の適切なレジスタセル258で累
算することを指示する。
【0135】結果レジスタ260は、この発明のこの方
法の好ましい実施例に関連して説明されたシフト累算演
算を行ない、シフト累算演算が完了した後、レジスタセ
ル258のアレイに残っている数は、マルチプレクサ2
46の入力248および250で受けられた被乗数入力
と乗数入力との積である。その結果は、乗算装置240
を用いるシステムによる使用または他の処理のために、
出力262を介して直列または並列のいずれか適切なよ
うにシフトするために利用可能である。
法の好ましい実施例に関連して説明されたシフト累算演
算を行ない、シフト累算演算が完了した後、レジスタセ
ル258のアレイに残っている数は、マルチプレクサ2
46の入力248および250で受けられた被乗数入力
と乗数入力との積である。その結果は、乗算装置240
を用いるシステムによる使用または他の処理のために、
出力262を介して直列または並列のいずれか適切なよ
うにシフトするために利用可能である。
【0136】図8は、本発明の方法の好ましい実施例を
実行するための乗算装置の選択された部分へ電力を与え
るための装置の好ましい実施例の概略のブロック図であ
る。
実行するための乗算装置の選択された部分へ電力を与え
るための装置の好ましい実施例の概略のブロック図であ
る。
【0137】理解を明確にするために、図7中のエレメ
ントと同様の図8中のエレメントは100だけ増やした
同じ参照番号で示される。
ントと同様の図8中のエレメントは100だけ増やした
同じ参照番号で示される。
【0138】図8において、乗算装置340は被乗数入
力342から被乗数を受けかつ乗数入力344から乗数
を受ける。被乗数Md1 、Md2 、…、Mdm は被乗数
入力342で待ち行列に入れられてもよく、乗数M
r1 、Mr2 、…、Mrn は乗数入力344で待ち行列
に入れられてもよい。乗算装置340による乗算演算に
おいて用いられるべき現在の被乗数Md1 は、入力34
8でマルチプレクサ346によって受け取られ、かつ現
在の被乗数Md1 との乗算演算において使用されるべき
現在の乗数Mr1 は、マルチプレクサ346の入力35
0で受け取られる。
力342から被乗数を受けかつ乗数入力344から乗数
を受ける。被乗数Md1 、Md2 、…、Mdm は被乗数
入力342で待ち行列に入れられてもよく、乗数M
r1 、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で各部分積の累算を指示する。
によってマルチプレクサ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を用いるシステムによって
用いられるかまたは他の処理がなされる。
しい実施例に関連して説明されたシフト累算演算を実行
し、シフト累算演算が完了した後、レジスタセル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 を受けてもよい。
370および電力伝達バス372、374を含む。電力
制御モジュール370は入力376を介して被乗数入力
Md m を受け、かつ入力378を介して乗数入力Mrn
を受ける。入力376、378は現在の被乗数Md1 お
よび現在の乗数Mr1 を受けてもよく、または図8に示
されるように早期の(つまりまだ処理されていない)被
乗数Mdm および早期の乗数Mrn を受けてもよい。
【0142】図8に示される企図された好ましい実施例
における乗算装置340の選択された素子の「駆動」
は、主として電界効果トランジスタ(FET)切換装置
のプリチャージを行なうことからなる。かかるプリチャ
ージは1クロックサイクル内で容易に完遂され得る。
における乗算装置340の選択された素子の「駆動」
は、主として電界効果トランジスタ(FET)切換装置
のプリチャージを行なうことからなる。かかるプリチャ
ージは1クロックサイクル内で容易に完遂され得る。
【0143】電力伝達バス372は結果レジスタ360
と作動的に接続され、特に個々の電力ライン380を介
してそれぞれのレジスタセルr1 、…rx へ選択的に電
力を供給するように作動的に接続される。電力伝達バス
374は、適切な電力ライン382を介してそれぞれの
乗算器354へ電力を選択的に供給するように作動的に
接続される。
と作動的に接続され、特に個々の電力ライン380を介
してそれぞれのレジスタセルr1 、…rx へ選択的に電
力を供給するように作動的に接続される。電力伝達バス
374は、適切な電力ライン382を介してそれぞれの
乗算器354へ電力を選択的に供給するように作動的に
接続される。
【0144】電力制御モジュール370は被乗数入力M
dm および乗数入力Mrn を受け取り、かつ所与の乗算
演算に関連したそれぞれの被乗数入力Mdm および乗数
Mr n のサイズを決定する。図2および図3に関連して
議論したように、所与の乗算演算に含まれる桁数の数を
知るだけで本発明の好ましい方法に対処するために必要
なレジスタセルの数を決定することができ、さらに本発
明の好ましい方法の実行に含まれるそれぞれの部分積を
求めるために必要な乗算器の数を決定できる。
dm および乗数入力Mrn を受け取り、かつ所与の乗算
演算に関連したそれぞれの被乗数入力Mdm および乗数
Mr n のサイズを決定する。図2および図3に関連して
議論したように、所与の乗算演算に含まれる桁数の数を
知るだけで本発明の好ましい方法に対処するために必要
なレジスタセルの数を決定することができ、さらに本発
明の好ましい方法の実行に含まれるそれぞれの部分積を
求めるために必要な乗算器の数を決定できる。
【0145】電力制御モジュール370は被乗数Mdm
および乗数Mrn のサイズを決定するための多数の手段
のうちの任意の適切な手段を用いてもよい。たとえば、
1つの数のうちの0でない桁の数が数えられてもよく、
または予め定められた数の桁数を含むフォーマットにお
いて先行0の数が数えられてもよい。
および乗数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 ,
b3 ,b4 )は、12(つまり3×4)の部分積が計算
される必要があるということを決定し得る。したがっ
て、電力制御モジュール370は、12の乗算器354
が関連した特定の乗算演算を完遂するために電力を必要
とするということを決定し得る。当然、図2および図3
に関連して述べたように、設計者は多サイクルの部分積
計算を企図してもよく、その結果もし利用可能な乗算器
354が12より少なければ、必要なサイクルの数を決
定し、かつそれによって、所望される特定の乗算を行な
うためにプリチャージされるべき乗算器354の数を決
定するために、電力制御モジュール370によって他の
アルゴリズムの関係が用いられなければならない。
ル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 ,
b3 ,b4 )は、12(つまり3×4)の部分積が計算
される必要があるということを決定し得る。したがっ
て、電力制御モジュール370は、12の乗算器354
が関連した特定の乗算演算を完遂するために電力を必要
とするということを決定し得る。当然、図2および図3
に関連して述べたように、設計者は多サイクルの部分積
計算を企図してもよく、その結果もし利用可能な乗算器
354が12より少なければ、必要なサイクルの数を決
定し、かつそれによって、所望される特定の乗算を行な
うためにプリチャージされるべき乗算器354の数を決
定するために、電力制御モジュール370によって他の
アルゴリズムの関係が用いられなければならない。
【0147】当然、乗算器354への電力のみが、また
は結果レジスタrx への電力のみが制御されるように、
電力伝達バス372または電力伝達バス374のいずれ
かが省略されてもよい。
は結果レジスタrx への電力のみが制御されるように、
電力伝達バス372または電力伝達バス374のいずれ
かが省略されてもよい。
【0148】与えられた詳細な図面および具体例が本発
明の好ましい実施例を説明するが、一方、それらは例示
のためだけであり、本発明の装置は開示された正確な詳
細および条件に限定されず、前掲の特許請求の範囲によ
って規定される本発明の精神から逸脱することなく様々
な変更が行なわれ得るということが理解されるべきであ
る。
明の好ましい実施例を説明するが、一方、それらは例示
のためだけであり、本発明の装置は開示された正確な詳
細および条件に限定されず、前掲の特許請求の範囲によ
って規定される本発明の精神から逸脱することなく様々
な変更が行なわれ得るということが理解されるべきであ
る。
【図1】この発明の方法の第1の実施例に従うレジスタ
セットアップを定めるための一般化されたマトリックス
を表わす図である。
セットアップを定めるための一般化されたマトリックス
を表わす図である。
【図2】この発明の方法に従う累算値のそれぞれのレジ
スタセルへの割当を示す表である。
スタセルへの割当を示す表である。
【図3】この発明の方法の好ましい実施例に従うレジス
タセットアップを定めるための一般化されたマトリック
スを表わす図である
タセットアップを定めるための一般化されたマトリック
スを表わす図である
【図4】2つの数の積を求めるための先行技術の装置の
概略のブロック図である。
概略のブロック図である。
【図5】第1の数が単一の第1のセグメント対に区分さ
れかつ第2の数が単一の第2のセグメント対に区分され
る、この発明の方法の第1の実施例を実行するための装
置の概略図である。
れかつ第2の数が単一の第2のセグメント対に区分され
る、この発明の方法の第1の実施例を実行するための装
置の概略図である。
【図6】被乗数は第1のセグメント対(a1 ,b1 )お
よび(a2 ,b2 )に分離されかつ乗数は第2のセグメ
ント対(c1 ,d1 )および(c2 ,d2 )に分離され
る、この発明の方法の第1の実施例を実行するための装
置の概略のブロック図である。
よび(a2 ,b2 )に分離されかつ乗数は第2のセグメ
ント対(c1 ,d1 )および(c2 ,d2 )に分離され
る、この発明の方法の第1の実施例を実行するための装
置の概略のブロック図である。
【図7】この発明の方法の好ましい実施例を行なうため
の装置の概略のブロック図である。
の装置の概略のブロック図である。
【図8】本発明の方法の好ましい実施例を実行するため
の乗算装置の選択された部分へ電力を供給するための装
置の概略のブロック図である。
の乗算装置の選択された部分へ電力を供給するための装
置の概略のブロック図である。
340 乗算装置
354 乗算器
358 レジスタセル
360 結果レジスタ
372,374 電力バス
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 サフダー・エム・アシュガー
アメリカ合衆国、78750 テキサス州、
オースティン、クイル・リーフ・コー
ブ、7010
(72)発明者 ドナルド・ディ・モンデュール
アメリカ合衆国、60540 イリノイ州、
ネパービル、クラレモント・ドライブ、
110
(56)参考文献 特開 平1−189724(JP,A)
特開 平4−316129(JP,A)
(58)調査した分野(Int.Cl.7,DB名)
G06F 7/52 310
Claims (8)
- 【請求項1】 乗算装置の選択された部分へ電力を与え
るための装置であって、前記乗算装置は第1の複数個の
桁数を有する第1の数と第2の複数個の桁数を有する第
2の数との積を求め、前記乗算装置は複数個の部分積を
求めるための複数個の乗算ユニットを含む複数個の素子
を含み、前記複数個の部分積は前記第1の複数個の桁数
と前記第2の複数個の桁数との対の組合せの各々につい
ての部分積を含み、さらに前記複数個の素子は情報を記
憶するためのレジスタ手段を含み、前記レジスタ手段は
予め定められた配列に従って前記複数個の部分積を累算
的に記憶するための複数個のレジスタセルを含み、前記
装置は、 作動的に接続されて、前記第1の数と前記第2の数とを
受け、かつ前記第1の複数個の桁数を前記第2の複数個
の桁数と比較する、比較手段を含み、前記比較手段は前
記第1の複数個の桁数または前記第2の複数個の桁数に
含まれる最上位の桁数を求め、前記比較手段は、前記複
数個の乗算ユニットのうちの特定の乗算ユニット、前記
複数個のレジスタセルのうちの特定のレジスタセル、お
よび前記電力の供給源と作動的に接続され、前記比較手
段は予め定められたアルゴリズムの関係において前記最
上位の桁数の数を用いて前記複数個の素子のうちの特定
の素子へ前記電力を選択的に与える、装置。 - 【請求項2】 前記特定の素子は前記複数個の乗算ユニ
ットのうちの特定の乗算ユニットを含む、請求項1に記
載の乗算装置の選択された部分へ電力を与えるための装
置。 - 【請求項3】 前記特定の素子は前記複数個のレジスタ
セルのうちの特定のレジスタセルを含む、請求項1に記
載の乗算装置の選択された部分へ電力を与えるための装
置。 - 【請求項4】 前記特定の素子は前記複数個のレジスタ
セルのうちの特定のレジスタセルを含む、請求項2に記
載の乗算装置の選択された部分へ電力を与えるための装
置。 - 【請求項5】 電源から乗算装置の選択された部分への
電力伝達を制御するための装置であって、前記乗算装置
は第1の複数個の桁数を有する第1の数と第2の複数個
の桁数を有する第2の数との積を求め、前記乗算装置は
複数個の素子を含み、前記複数個の素子は複数個の部分
積を求めるための複数個の乗算ユニットを含み、前記複
数個の部分積は前記第1の複数個の桁数と前記第2の複
数個の桁数との対の組合せの各々についての部分積を含
み、さらに前記複数個の素子は情報を記憶するためのレ
ジスタ手段を含み、前記レジスタ手段は予め定められた
配列に従って前記複数個の部分積を累算的に記憶するた
めの複数個のレジスタセルを含み、前記装置は、 前記電力を前記電源から前記乗算装置へ伝達するために
複数個の制御可能伝達経路を設けるための電力バス手段
と、 前記伝達経路を制御して前記複数個の素子のうちの特定
の素子と前記電源との間で選択的に作動的接続を実行す
るための制御手段とを含み、 前記制御手段は前記電源、前記電力バス手段、および前
記特定の素子と作動的に接続され、前記制御手段は前記
第1の数を前記第2の数と比較するための論理手段を含
み、前記論理手段は作動的に接続されて、少なくとも前
記乗算装置と同じくらい早期に前記第1の数および前記
第2の数を受け取り、 前記論理手段は前記第1の数と前記第2の数との間で桁
数の大きい方の数を決定し、前記制御手段は前記桁数の
大きい方の数を用いる前記論理手段に応答して、前記電
力を前記複数個の素子のうちの特定の素子へ選択的に与
える、装置。 - 【請求項6】 前記特定の素子は前記複数個の乗算ユニ
ットのうちの特定の乗算ユニットを含む、請求項5に記
載の電源から乗算装置の選択された部分への電力伝達を
制御するための装置。 - 【請求項7】 前記特定の素子は前記複数個のレジスタ
セルのうちの特定のレジスタセルを含む、請求項5に記
載の電源から乗算装置の選択された部分への電力伝達を
制御するための装置。 - 【請求項8】 前記特定の素子は前記複数個のレジスタ
セルのうちの特定のレジスタセルをさらに含む、請求項
6に記載の電源から乗算装置の選択された部分への電力
伝達を制御するための装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US924346 | 1992-08-03 | ||
US07/924,346 US5200912A (en) | 1991-11-19 | 1992-08-03 | Apparatus for providing power to selected portions of a multiplying device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06175823A JPH06175823A (ja) | 1994-06-24 |
JP3388608B2 true 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) |
Families Citing this family (10)
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 |
US8595279B2 (en) * | 2006-02-27 | 2013-11-26 | Qualcomm Incorporated | Floating-point processor with reduced power requirements for selectable subprecision |
US8918446B2 (en) | 2010-12-14 | 2014-12-23 | Intel Corporation | Reducing power consumption in multi-precision floating point multipliers |
US9323498B2 (en) * | 2013-03-13 | 2016-04-26 | Wisconsin Alumni Research Foundation | Multiplier circuit with dynamic energy consumption adjustment |
EP3779670A4 (en) * | 2018-03-30 | 2022-01-05 | Riken | DEVICE AND SYSTEM OF ARITHMETIC OPERATIONS |
Family Cites Families (4)
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 |
-
1992
- 1992-08-03 US US07/924,346 patent/US5200912A/en not_active Expired - Lifetime
-
1993
- 1993-07-30 DE DE69326403T patent/DE69326403T2/de not_active Expired - Fee Related
- 1993-07-30 EP EP93306060A patent/EP0583120B1/en not_active Expired - Lifetime
- 1993-08-03 JP JP19217993A patent/JP3388608B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06175823A (ja) | 1994-06-24 |
US5200912A (en) | 1993-04-06 |
EP0583120A1 (en) | 1994-02-16 |
DE69326403T2 (de) | 2000-05-11 |
EP0583120B1 (en) | 1999-09-15 |
DE69326403D1 (de) | 1999-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10817587B2 (en) | Reconfigurable matrix multiplier system and method | |
US4168530A (en) | Multiplication circuit using column compression | |
US5771186A (en) | System and method for multiplying in a data processing system | |
US5280439A (en) | Apparatus for determining booth recoder input control signals | |
JP3388608B2 (ja) | 乗算装置の選択された部分へ電力を与えるための装置および電源から乗算装置の選択された部分への電力伝達を制御するための装置 | |
US7308471B2 (en) | Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding | |
US9372665B2 (en) | Method and apparatus for multiplying binary operands | |
US4965762A (en) | Mixed size radix recoded multiplier | |
US20190303103A1 (en) | Common factor mass multiplication circuitry | |
JPS62229330A (ja) | 乗算回路 | |
EP0817006A2 (en) | Parallel multiply accumulate array circuit | |
GB2352309A (en) | A system for performing modular multiplication | |
CN100489764C (zh) | 用于比乘法器硬件的位数宽的大整数操作数的有效的乘法序列 | |
EP1573510B1 (en) | Multiplier with look up tables | |
JPH05224890A (ja) | 第1の数と第2の数との積を求めるための方法およびその装置 | |
US5291430A (en) | Method and apparatus for multiplying a plurality of numbers | |
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 | |
KR20240135773A (ko) | 반복 혼성 행렬 곱셈기 | |
JP2818512B2 (ja) | 乗算装置 | |
WO2009063050A1 (en) | Method and apparatus for multiplying binary operands | |
CN113033788A (zh) | 数据处理器、方法、装置及芯片 |
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 |