JP2653470B2 - 10進乗算装置 - Google Patents
10進乗算装置Info
- Publication number
- JP2653470B2 JP2653470B2 JP63124167A JP12416788A JP2653470B2 JP 2653470 B2 JP2653470 B2 JP 2653470B2 JP 63124167 A JP63124167 A JP 63124167A JP 12416788 A JP12416788 A JP 12416788A JP 2653470 B2 JP2653470 B2 JP 2653470B2
- Authority
- JP
- Japan
- Prior art keywords
- digit
- value
- register
- multiplier
- decimal
- 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 - Lifetime
Links
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、絶対値と符号により表現される10進数の乗
算を行う10進乗算装置に関するものである。
算を行う10進乗算装置に関するものである。
従来、一般的な10進乗算方法として、乗数の1桁の数
値に対応する回数だけ被乗数の加算を繰り返して、1桁
乗算の結果の中間積を求め、桁シフトして桁対応に1桁
乗算の演算を乗数の桁数分だけ繰り返し行って積を求め
る乗算方法がある。この乗算方法では、乗数の桁の数値
をn(=0,1,・・・,9)とすれば、1桁当りn回の加算
が必要である。このため、平均4.5回/桁の加算が行わ
れる。これに対して、各桁の加算を繰り返す乗算方法に
おける各桁の加算回数を減少して、演算を高速化するた
め、乗数より切り出した1桁の数値nが大きい場合(例
えば6以上の場合)、中間積から被乗数を(10−n)回
減算し、その上位桁での加算を1回余計にする。これに
より、加算回数を減らすことができ、平均2.9回/桁の
加算とすることができる。このように1桁当りの加算回
数を減少させて、乗算演算を高速化する方法がある。
値に対応する回数だけ被乗数の加算を繰り返して、1桁
乗算の結果の中間積を求め、桁シフトして桁対応に1桁
乗算の演算を乗数の桁数分だけ繰り返し行って積を求め
る乗算方法がある。この乗算方法では、乗数の桁の数値
をn(=0,1,・・・,9)とすれば、1桁当りn回の加算
が必要である。このため、平均4.5回/桁の加算が行わ
れる。これに対して、各桁の加算を繰り返す乗算方法に
おける各桁の加算回数を減少して、演算を高速化するた
め、乗数より切り出した1桁の数値nが大きい場合(例
えば6以上の場合)、中間積から被乗数を(10−n)回
減算し、その上位桁での加算を1回余計にする。これに
より、加算回数を減らすことができ、平均2.9回/桁の
加算とすることができる。このように1桁当りの加算回
数を減少させて、乗算演算を高速化する方法がある。
また、1桁当りの加算回数を減少させて乗算演算を高
速化している他の例として、乗数の各桁に対して中間積
を求める加減算を行うために、被乗数n倍数(例えば1
倍数,2倍数,4倍数,8倍数)を発生する倍数回路を設け
て、中間積を求める各桁の加減算の回数を減らす方法が
ある。これによると、平均1.4回/桁の加算とすること
ができる。
速化している他の例として、乗数の各桁に対して中間積
を求める加減算を行うために、被乗数n倍数(例えば1
倍数,2倍数,4倍数,8倍数)を発生する倍数回路を設け
て、中間積を求める各桁の加減算の回数を減らす方法が
ある。これによると、平均1.4回/桁の加算とすること
ができる。
このように、1桁当りの加減算の回数を減少させて乗
算演算を高速化している10進乗算装置として、例えば、
特開昭58−119047号公報に記載の10進乗算装置がある。
算演算を高速化している10進乗算装置として、例えば、
特開昭58−119047号公報に記載の10進乗算装置がある。
しかしながら、上記のような10進乗算装置における高
速化は、いずれも乗算処理の中間積を求める乗数の各桁
の1桁当りの加算回数を減少させて乗算演算を高速化し
ているものである。このような10進乗算装置においては
乗算演算が、乗数の各桁の1桁分の加減算を行う内側ル
ープ演算のステップと、桁の間の桁シフトを行う内側ル
ープ演算ステップとを相互に行う外側ループ演算の二重
ループ演算となっている。このため、結局、桁シフトを
行うステップと各桁の加減算を行うステップとが順次繰
り返して行われ、10進乗算処理が行われることになる。
したがって、乗算処理の高速化は限られたものであっ
た。
速化は、いずれも乗算処理の中間積を求める乗数の各桁
の1桁当りの加算回数を減少させて乗算演算を高速化し
ているものである。このような10進乗算装置においては
乗算演算が、乗数の各桁の1桁分の加減算を行う内側ル
ープ演算のステップと、桁の間の桁シフトを行う内側ル
ープ演算ステップとを相互に行う外側ループ演算の二重
ループ演算となっている。このため、結局、桁シフトを
行うステップと各桁の加減算を行うステップとが順次繰
り返して行われ、10進乗算処理が行われることになる。
したがって、乗算処理の高速化は限られたものであっ
た。
本発明の目的は、10進乗算の演算を更に高速化するこ
とにある。
とにある。
本発明の他の目的は、10進乗算の演算における桁シフ
トを行うステップと各桁の加減算のステップとを同時に
並列して行い、演算時間を短縮した10進演算装置を提供
することにある。
トを行うステップと各桁の加減算のステップとを同時に
並列して行い、演算時間を短縮した10進演算装置を提供
することにある。
本発明の前記ならびにその他の目的と新規な特徴は、
本明細書の記述及び添付図面によって明らかになるであ
ろう。
本明細書の記述及び添付図面によって明らかになるであ
ろう。
上記目的を達成するため、本発明においては、乗数に
従って被乗数の加算を繰り返し行い、乗算結果を求める
10進乗算装置であって、乗数の奇数桁,偶数桁に対する
中間積を別々に保持する2つのレジスタと、前記2つの
レジスタの一方の中間積と被乗数との加算を行う10進加
算器と、前記2つのレジスタの他方の中間積を2桁また
は1桁シフトするシフタと、前記2つのレジスタに格納
されたそれぞれの中間積に対して、前記10進加算器によ
る10進加算処理と、前記シフタによる桁シフト処理を同
時に並列して行う演算制御手段とを備えたことを特徴と
する。
従って被乗数の加算を繰り返し行い、乗算結果を求める
10進乗算装置であって、乗数の奇数桁,偶数桁に対する
中間積を別々に保持する2つのレジスタと、前記2つの
レジスタの一方の中間積と被乗数との加算を行う10進加
算器と、前記2つのレジスタの他方の中間積を2桁また
は1桁シフトするシフタと、前記2つのレジスタに格納
されたそれぞれの中間積に対して、前記10進加算器によ
る10進加算処理と、前記シフタによる桁シフト処理を同
時に並列して行う演算制御手段とを備えたことを特徴と
する。
前記手段によれば、10進乗算装置には、乗数の奇数
桁,偶数桁に対する中間積を別々に保持する2つのレジ
スタと、前記2つのレジスタの一方の中間積と被乗数と
の加算を行う10進加算器と、前記2つのレジスタの他方
の中間積を2桁または1桁シフトするシフタが備えられ
る。演算制御手段は、前記2つのレジスタに格納された
それぞれの中間積に対して、前記10進加算器による10進
加算処理と、前記シフタによる桁シフト処理を同時に並
列して行う。
桁,偶数桁に対する中間積を別々に保持する2つのレジ
スタと、前記2つのレジスタの一方の中間積と被乗数と
の加算を行う10進加算器と、前記2つのレジスタの他方
の中間積を2桁または1桁シフトするシフタが備えられ
る。演算制御手段は、前記2つのレジスタに格納された
それぞれの中間積に対して、前記10進加算器による10進
加算処理と、前記シフタによる桁シフト処理を同時に並
列して行う。
ここでは、2つのレジスタには、乗数の奇数桁,偶数
桁に対するそれぞれの中間積が常に別々に保持される。
一方のレジスタを用いて1桁乗算演算の加算処理を行っ
ている間に、他方のレジスタを用いて次桁の処理のため
の2桁右シフトを行う。このため、乗算の奇数桁,偶数
桁に対するそれぞれの中間積を同時に求めることができ
る。したがって、1桁乗算演算の加算のステップと、桁
シフトのステップを別々に処理する必要がなく、乗算の
演算時間の短縮ができる。このように、乗数の各桁にし
たがって被乗数の加算を繰り返し行う10進乗算の演算処
理は、各桁における加算処理と桁シフト処理とが同時に
並列して、演算を進行させることができ、乗算処理を高
速に行うことができる。
桁に対するそれぞれの中間積が常に別々に保持される。
一方のレジスタを用いて1桁乗算演算の加算処理を行っ
ている間に、他方のレジスタを用いて次桁の処理のため
の2桁右シフトを行う。このため、乗算の奇数桁,偶数
桁に対するそれぞれの中間積を同時に求めることができ
る。したがって、1桁乗算演算の加算のステップと、桁
シフトのステップを別々に処理する必要がなく、乗算の
演算時間の短縮ができる。このように、乗数の各桁にし
たがって被乗数の加算を繰り返し行う10進乗算の演算処
理は、各桁における加算処理と桁シフト処理とが同時に
並列して、演算を進行させることができ、乗算処理を高
速に行うことができる。
以下、本発明の一実施例を図面を用いて具体的に説明
する。
する。
第1図は本発明の一実施例にかかる10進乗算装置の要
部の構成を示すブロック図である。第1図において、1
は10進加算器、2はシフタである。シフタ2は制御信号
により10進1桁または2桁を右に代数シフトする桁シフ
トを行う。3は演算制御を行うデコーダ、4は乗算の桁
数(処理回数)を格納し、1桁の演算処理が終了するご
とに1減算していくデジットカウンタである。5は乗数
を格納する乗数レジスタ、6は被乗数を格納するレジス
タ、7は第1の中間積を格納するレジスタ、8は第2の
中間積を格納するレジスタである。9はデジットカウン
タ4の値が減算されるにしたがって切り出す乗数の桁を
最下位桁から上位桁へ順に切換えるセレクタであり、10
は制御信号によりレジスタ6の内容をそのまま出力する
かまたは“0"を出力するゲートである。また、11はセレ
クタであり、制御信号によりレジスタ7の出力またはレ
ジスタ8の出力をセレクトして、10進加算器1に供給す
る。ここでのシフタ2,レジスタ6,レジスタ8,ゲート10,
およびセレクタ11に供給される制御信号は、デコーダ3
により生成される。すなわち、デコーダ3は、デジット
カウンタ4の出力,乗数レジスタ5から切り出した乗数
の各桁の出力,内部カウンタの出力等の入力条件をデコ
ードして制御信号を生成し出力する。このデコーダ3か
らの制御信号により、乗算の演算処理の制御が行われ
る。
部の構成を示すブロック図である。第1図において、1
は10進加算器、2はシフタである。シフタ2は制御信号
により10進1桁または2桁を右に代数シフトする桁シフ
トを行う。3は演算制御を行うデコーダ、4は乗算の桁
数(処理回数)を格納し、1桁の演算処理が終了するご
とに1減算していくデジットカウンタである。5は乗数
を格納する乗数レジスタ、6は被乗数を格納するレジス
タ、7は第1の中間積を格納するレジスタ、8は第2の
中間積を格納するレジスタである。9はデジットカウン
タ4の値が減算されるにしたがって切り出す乗数の桁を
最下位桁から上位桁へ順に切換えるセレクタであり、10
は制御信号によりレジスタ6の内容をそのまま出力する
かまたは“0"を出力するゲートである。また、11はセレ
クタであり、制御信号によりレジスタ7の出力またはレ
ジスタ8の出力をセレクトして、10進加算器1に供給す
る。ここでのシフタ2,レジスタ6,レジスタ8,ゲート10,
およびセレクタ11に供給される制御信号は、デコーダ3
により生成される。すなわち、デコーダ3は、デジット
カウンタ4の出力,乗数レジスタ5から切り出した乗数
の各桁の出力,内部カウンタの出力等の入力条件をデコ
ードして制御信号を生成し出力する。このデコーダ3か
らの制御信号により、乗算の演算処理の制御が行われ
る。
第2図は、デコーダにおける入力の条件と出力の制御
信号の関係を規定する制御テーブルを示す図である。第
2図を参照して、10進乗算装置の動作を説明する。
信号の関係を規定する制御テーブルを示す図である。第
2図を参照して、10進乗算装置の動作を説明する。
乗算演算を行うについて、乗数は、符号を除いて乗数
レジスタ5に右詰にセットする。乗数レジスタ5の残り
の上位桁部分には“0"をセットする。また、被乗数(符
号なし)は、乗数の桁数に符号1桁分を加えた桁数だけ
左にシフトして、レジスタ6にセットする。更に、乗数
の桁数をデジットカウンタ4にセットする。
レジスタ5に右詰にセットする。乗数レジスタ5の残り
の上位桁部分には“0"をセットする。また、被乗数(符
号なし)は、乗数の桁数に符号1桁分を加えた桁数だけ
左にシフトして、レジスタ6にセットする。更に、乗数
の桁数をデジットカウンタ4にセットする。
乗算演算のスタートが指示されると、デジットカウン
タ4の値により制御されたセレクタ9が、乗数を格納し
ている乗数レジスタ5から、乗数1桁のデータをセレク
トして信号線9Aを介して、デコーダ3に入力する。デコ
ーダ3は乗数1桁のデータが信号線9Aから入力される
と、信号線9Aの値,デジットカウンタ4からの信号線4A
の値,各桁の演算処理を制御する桁演算制御フラグの信
号線3Aの値,および内部カウンタ出力の信号線3Bの値か
ら、第2図に示すような制御テーブルの入力の条件にし
たがい、デコード出力の各々の信号線3A,3B,3C,3D,3E,3
Fに制御信号を出力する。
タ4の値により制御されたセレクタ9が、乗数を格納し
ている乗数レジスタ5から、乗数1桁のデータをセレク
トして信号線9Aを介して、デコーダ3に入力する。デコ
ーダ3は乗数1桁のデータが信号線9Aから入力される
と、信号線9Aの値,デジットカウンタ4からの信号線4A
の値,各桁の演算処理を制御する桁演算制御フラグの信
号線3Aの値,および内部カウンタ出力の信号線3Bの値か
ら、第2図に示すような制御テーブルの入力の条件にし
たがい、デコード出力の各々の信号線3A,3B,3C,3D,3E,3
Fに制御信号を出力する。
各信号線の出力の初期値は“0"である。デジットカウ
ンタ4の値が“0"でなければ、第2図の制御テーブルの
上側部分の条件により、各々の信号線の制御信号が出力
される。桁演算制御フラグの信号線3Aが“0"の状態であ
れば、信号線9Aの値すなわち乗数1桁の値の0〜9にし
たがって、各信号線3A〜3Fに、それぞれの制御信号の値
がセットされる。
ンタ4の値が“0"でなければ、第2図の制御テーブルの
上側部分の条件により、各々の信号線の制御信号が出力
される。桁演算制御フラグの信号線3Aが“0"の状態であ
れば、信号線9Aの値すなわち乗数1桁の値の0〜9にし
たがって、各信号線3A〜3Fに、それぞれの制御信号の値
がセットされる。
信号線3Dおよび信号線3Eの制御信号は、それぞれセレ
クタ11およびゲート10を制御する。レジスタ6の出力を
A、レジスタ7の出力をB、レジスタ8の出力をCとす
ると、ゲート10およびセレクタ11の制御により、10進加
算器1は「A+B」,「A+C」,または「“0"+C」
の演算を行う。すなわち、セレクタ11は信号線3Dの値が
“0"であるとき、レジスタ7の出力Bをセレクトし、信
号線3Dの値が“1"であるとき、レジスタ8の出力Cをセ
レクトする。また、ゲート10は、信号線3Eの値が“0"で
あるとき、レジスタ6の出力Aをそのまま出力し、信号
線3Eの値が“1"であるときは、データ値“0"を出力す
る。セレクタ11およびゲート10からの出力は、10進加算
器1に入力され、両値の加算が行われて演算「A+
B」,「A+C」,または「“0"+C」が行われる。
クタ11およびゲート10を制御する。レジスタ6の出力を
A、レジスタ7の出力をB、レジスタ8の出力をCとす
ると、ゲート10およびセレクタ11の制御により、10進加
算器1は「A+B」,「A+C」,または「“0"+C」
の演算を行う。すなわち、セレクタ11は信号線3Dの値が
“0"であるとき、レジスタ7の出力Bをセレクトし、信
号線3Dの値が“1"であるとき、レジスタ8の出力Cをセ
レクトする。また、ゲート10は、信号線3Eの値が“0"で
あるとき、レジスタ6の出力Aをそのまま出力し、信号
線3Eの値が“1"であるときは、データ値“0"を出力す
る。セレクタ11およびゲート10からの出力は、10進加算
器1に入力され、両値の加算が行われて演算「A+
B」,「A+C」,または「“0"+C」が行われる。
信号線3Cおよび信号線3Fの制御信号は、レジスタ6,レ
ジスタ8に対するデータの入力制御およびシフタ2の動
作制御を行う。信号線3Cの値が“1"であるとき、シフタ
2からの出力がレジスタ8にセットされ、信号線3Cの値
が“0"であるとき、シフタ2の出力はレジスタ8にセッ
トされない。信号線3Fの値が“1"であると、シフタ2は
1桁右にシフトする桁シフト動作を行うと共に、シフタ
2の出力がレジスタ6にセットされる。信号線3Fの値が
“0"であるとき、シフタ2は2桁右にシフトする桁シフ
ト動作を行うが、同時に信号線3Fの制御信号によるシフ
タ2の出力のレジスタ6のセット動作は行われない。
ジスタ8に対するデータの入力制御およびシフタ2の動
作制御を行う。信号線3Cの値が“1"であるとき、シフタ
2からの出力がレジスタ8にセットされ、信号線3Cの値
が“0"であるとき、シフタ2の出力はレジスタ8にセッ
トされない。信号線3Fの値が“1"であると、シフタ2は
1桁右にシフトする桁シフト動作を行うと共に、シフタ
2の出力がレジスタ6にセットされる。信号線3Fの値が
“0"であるとき、シフタ2は2桁右にシフトする桁シフ
ト動作を行うが、同時に信号線3Fの制御信号によるシフ
タ2の出力のレジスタ6のセット動作は行われない。
これらの制御信号による動作において、入力の条件と
して、例えば、デジットカウンタ4の出力線4Aの値が0
でなく(≠0)、信号線3Aの値が0であり、信号線9Aの
値が「2〜9」のとき、デコーダ3は、信号線3C,3D,3
E,3Fにそれぞれ“1",“1",“0",“0"を出力し、10進加
算器1はレジスタ6の出力Aとレジスタ8の出力Cとの
加算を行う。また、この加算と同時に、シフタ2はレジ
スタ7の出力を2桁右にシフトし、シフト結果の出力を
レジスタ8にセットする。信号線9Aの値が「2〜9」の
場合には、信号線3Aの桁演算制御フラグの値としては
“1"が出力され、当該桁における被乗数の加減算が1回
で終了しなかったことを示している。次のステップで
は、第2図の制御テーブルにおける条件のデジットカウ
ンタ4の信号線4Aの値が0でなく(≠0)、信号線3Aの
値が1である場合の動作状態に入る。この動作状態で
は、加算の残り回数を示す信号線3Bの値(デコーダ3の
内部カウンタの値)を1減算すると共に、他の信号線
に、第2図に示すように、信号線3C〜3Fのすべてに値
“0"が出力される。これにより、レジスタ7の出力Bと
レジスタ6の出力Aとの加算が10進加算器1で行われ
る。このとき、シフタ2はレジスタ7の出力を2桁右に
シフトするが、信号線3Cの値が“0"となっており、シフ
タ2の出力はレジスタ8にセットされない。このように
信号線3Aの値が“1の状態では信号線3Bの値が“1"にな
るまで、レジスタ6の値すなわち被乗数とレジスタ7の
値である中間値のデータとの加算が繰り返し行われ、デ
コーダの内部カウンタの値(信号線3Bの値)の減算が行
われる。その桁の加減算が終了するステップになると、
すなわち信号線3Bの値が“1"になると、信号線3Aには
“0"をセットして、次桁の処理に移る。また、このとき
に、デジットカウンタ4の値を1減算する。
して、例えば、デジットカウンタ4の出力線4Aの値が0
でなく(≠0)、信号線3Aの値が0であり、信号線9Aの
値が「2〜9」のとき、デコーダ3は、信号線3C,3D,3
E,3Fにそれぞれ“1",“1",“0",“0"を出力し、10進加
算器1はレジスタ6の出力Aとレジスタ8の出力Cとの
加算を行う。また、この加算と同時に、シフタ2はレジ
スタ7の出力を2桁右にシフトし、シフト結果の出力を
レジスタ8にセットする。信号線9Aの値が「2〜9」の
場合には、信号線3Aの桁演算制御フラグの値としては
“1"が出力され、当該桁における被乗数の加減算が1回
で終了しなかったことを示している。次のステップで
は、第2図の制御テーブルにおける条件のデジットカウ
ンタ4の信号線4Aの値が0でなく(≠0)、信号線3Aの
値が1である場合の動作状態に入る。この動作状態で
は、加算の残り回数を示す信号線3Bの値(デコーダ3の
内部カウンタの値)を1減算すると共に、他の信号線
に、第2図に示すように、信号線3C〜3Fのすべてに値
“0"が出力される。これにより、レジスタ7の出力Bと
レジスタ6の出力Aとの加算が10進加算器1で行われ
る。このとき、シフタ2はレジスタ7の出力を2桁右に
シフトするが、信号線3Cの値が“0"となっており、シフ
タ2の出力はレジスタ8にセットされない。このように
信号線3Aの値が“1の状態では信号線3Bの値が“1"にな
るまで、レジスタ6の値すなわち被乗数とレジスタ7の
値である中間値のデータとの加算が繰り返し行われ、デ
コーダの内部カウンタの値(信号線3Bの値)の減算が行
われる。その桁の加減算が終了するステップになると、
すなわち信号線3Bの値が“1"になると、信号線3Aには
“0"をセットして、次桁の処理に移る。また、このとき
に、デジットカウンタ4の値を1減算する。
このように、デジットカウンタ4からの信号線4Aの値
が0でなく(≠0)、かつ信号線3Aの値が“0"のとき
は、2桁前までの中間積に対し加算処理を始め、同時に
前桁までの加算処理後の中間積を2桁右にシフトする。
2桁右にシフトされた値は、信号線3Aの出力値が再び
“0"となり1桁の処理が終るまで、加算に無関係なレジ
スタ8に格納される。この操作を、乗数の最上位桁の処
理が終了する(デジットカウンタ4からの信号線4Aの値
“0"となる)まで繰り返すことにより、乗数の偶数桁に
対する中間積と、奇数桁に対する中間積がそれぞれレジ
スタ7,レジスタ8の一方に得られる。
が0でなく(≠0)、かつ信号線3Aの値が“0"のとき
は、2桁前までの中間積に対し加算処理を始め、同時に
前桁までの加算処理後の中間積を2桁右にシフトする。
2桁右にシフトされた値は、信号線3Aの出力値が再び
“0"となり1桁の処理が終るまで、加算に無関係なレジ
スタ8に格納される。この操作を、乗数の最上位桁の処
理が終了する(デジットカウンタ4からの信号線4Aの値
“0"となる)まで繰り返すことにより、乗数の偶数桁に
対する中間積と、奇数桁に対する中間積がそれぞれレジ
スタ7,レジスタ8の一方に得られる。
最終桁の最後の加算時、すなわち信号線4Aの値が“1"
で、信号線3Aおよび信号線3Bの値が共に“1"の状態で
は、第2図に示す制御テーブルの条件にしたがって、信
号線3Aの出力の値として“0"がセットされ、デジットカ
ウンタ4の値が1減算されて、信号線4Aの値は“0"とな
る。次ステップでは、このような制御信号の条件を受け
て、信号線3Fの値が“1"となる。これにより、シフタ2
でレジスタ7の出力Bを1桁右にシフトした後、シフト
した出力がレジスタ6にセットされる。なお、このとき
の信号線3Cの値は“0"であるので、シフトした出力はレ
ジスタ8にはセットされない。また、このとき、次ステ
ップのために信号線3Aには“1"がセットされる。
で、信号線3Aおよび信号線3Bの値が共に“1"の状態で
は、第2図に示す制御テーブルの条件にしたがって、信
号線3Aの出力の値として“0"がセットされ、デジットカ
ウンタ4の値が1減算されて、信号線4Aの値は“0"とな
る。次ステップでは、このような制御信号の条件を受け
て、信号線3Fの値が“1"となる。これにより、シフタ2
でレジスタ7の出力Bを1桁右にシフトした後、シフト
した出力がレジスタ6にセットされる。なお、このとき
の信号線3Cの値は“0"であるので、シフトした出力はレ
ジスタ8にはセットされない。また、このとき、次ステ
ップのために信号線3Aには“1"がセットされる。
信号線3Aの値として“1"がセットされると、第2図の
制御テーブルの条件にしたがい、信号線3Dの値が“1"と
なり、セレクタ11がレジスタ8の出力Cをセレクトす
る。また、信号線3Eの値が“0"となるので、ゲート10で
はレジスタ6の出力Aが出力される。したがって、出力
Cと出力Aの両値が10進加算器1により加算され、この
加算出力がレジスタ7にセットされて、乗算演算の一連
の処理が終了する。この最終的な加算の処理は、奇数桁
および偶数桁に対応する2つの中間積を加算することで
あり、これにより、所望の乗算結果の積が得られる。
制御テーブルの条件にしたがい、信号線3Dの値が“1"と
なり、セレクタ11がレジスタ8の出力Cをセレクトす
る。また、信号線3Eの値が“0"となるので、ゲート10で
はレジスタ6の出力Aが出力される。したがって、出力
Cと出力Aの両値が10進加算器1により加算され、この
加算出力がレジスタ7にセットされて、乗算演算の一連
の処理が終了する。この最終的な加算の処理は、奇数桁
および偶数桁に対応する2つの中間積を加算することで
あり、これにより、所望の乗算結果の積が得られる。
次に、このような10進乗算装置における動作の理解を
容易にするため、一つの乗算の例を具体的に説明する。
ここでは「1111×121」の乗算を行うものとする。第3a
図,第3b図および第3c図は、乗算演算の処理例を各ステ
ップ毎に説明する図である。第3a図,第3b図および第3c
図においては、乗算演算の処理例が10進加算器1とシフ
タ2の動作と、レジスタ6〜8の具体的な内容として、
各ステップ毎に示されている。第3a図,第3b図および第
3c図を参照して、乗算の演算の動作例を説明する。
容易にするため、一つの乗算の例を具体的に説明する。
ここでは「1111×121」の乗算を行うものとする。第3a
図,第3b図および第3c図は、乗算演算の処理例を各ステ
ップ毎に説明する図である。第3a図,第3b図および第3c
図においては、乗算演算の処理例が10進加算器1とシフ
タ2の動作と、レジスタ6〜8の具体的な内容として、
各ステップ毎に示されている。第3a図,第3b図および第
3c図を参照して、乗算の演算の動作例を説明する。
乗算の処理を開始するにあたって、乗算レジスタ5に
は符号を除いた乗数の「121」を右詰めでセットし、ま
た、レジスタ6(出力A)には被乗数「1111」を、乗数
の桁数「3」に符号分の桁数「1」を加えた4桁分だけ
左にシフトして、数値「0011110000」をセットをする。
また、レジスタ7(出力B),レジスタ8(出力C)に
は、初期値として「0」をセットしておく。なお、各レ
ジスタ長は5バイトであり、各レジスタには10桁の10進
数の数値が格納される。
は符号を除いた乗数の「121」を右詰めでセットし、ま
た、レジスタ6(出力A)には被乗数「1111」を、乗数
の桁数「3」に符号分の桁数「1」を加えた4桁分だけ
左にシフトして、数値「0011110000」をセットをする。
また、レジスタ7(出力B),レジスタ8(出力C)に
は、初期値として「0」をセットしておく。なお、各レ
ジスタ長は5バイトであり、各レジスタには10桁の10進
数の数値が格納される。
ステップ1では、デジットカウンタ4に格納された桁
数は「3」であるから、信号線4Aの出力値は「3」とな
る。信号線3Aの出力値は演算前の初期値の「0」であ
る。信号線9Aの出力値は乗数の第1番目の桁の値が切出
されて、値「1」がセットされる。このような入力の条
件によりデコーダ3では、第2図に示す制御テーブルに
したがって、信号線4Aの値(デジットカウンタ4の値)
を1減算し、信号線3Aの値を「0」、信号線3Bの値
「0」とすると共に、信号線3C,信号線3D,信号線3Eの制
御信号の値を、それぞれ“1",“1",“0"とする。これに
より、10進加算器1では「A+C」の加算を行う。すな
わちレジスタ6の出力Aの「0011110000」とレジスタ8
の出力Cの「0000000000」との加算を行い、加算結果の
「0011110000」をレジスタ7に格納する。
数は「3」であるから、信号線4Aの出力値は「3」とな
る。信号線3Aの出力値は演算前の初期値の「0」であ
る。信号線9Aの出力値は乗数の第1番目の桁の値が切出
されて、値「1」がセットされる。このような入力の条
件によりデコーダ3では、第2図に示す制御テーブルに
したがって、信号線4Aの値(デジットカウンタ4の値)
を1減算し、信号線3Aの値を「0」、信号線3Bの値
「0」とすると共に、信号線3C,信号線3D,信号線3Eの制
御信号の値を、それぞれ“1",“1",“0"とする。これに
より、10進加算器1では「A+C」の加算を行う。すな
わちレジスタ6の出力Aの「0011110000」とレジスタ8
の出力Cの「0000000000」との加算を行い、加算結果の
「0011110000」をレジスタ7に格納する。
この結果、ステップ2においては、デジットカウンタ
4に格納されている値は「2」であるから、信号線4Aの
出力値は「2」となる。信号線3Aの出力値は「0」とな
り、信号線9Aの出力値は乗数の第2番目の桁の値が切出
されて、値「2」がセットされる。このような入力の条
件によりデコーダ3では、第2図に示す制御テーブルに
したがって、信号線3Aの値を「1」、信号線3Bの値を
「1」とすると同時に、信号線3C,信号線3D,信号線3E,
信号線3Fの制御信号の値をそれぞれ“1",“1",“0",
“0"とする。このため、10進加算器1では「A+C」の
加算を行うと共に、レジスタ7の出力Bを2桁右シフト
する。すなわち、レジスタ6の出力Aの「0011110000」
とレジスタ8の出力Cの「0000000000」との加算を行
い、加算結果の「0011110000」をレジスタ7に入れると
同時に、ステップ1の処理結果であるレジスタ7の出力
Bの「0011110000」を2桁右に桁シフトして、シフト結
果の「0000111100」をレジスタ8に格納する。
4に格納されている値は「2」であるから、信号線4Aの
出力値は「2」となる。信号線3Aの出力値は「0」とな
り、信号線9Aの出力値は乗数の第2番目の桁の値が切出
されて、値「2」がセットされる。このような入力の条
件によりデコーダ3では、第2図に示す制御テーブルに
したがって、信号線3Aの値を「1」、信号線3Bの値を
「1」とすると同時に、信号線3C,信号線3D,信号線3E,
信号線3Fの制御信号の値をそれぞれ“1",“1",“0",
“0"とする。このため、10進加算器1では「A+C」の
加算を行うと共に、レジスタ7の出力Bを2桁右シフト
する。すなわち、レジスタ6の出力Aの「0011110000」
とレジスタ8の出力Cの「0000000000」との加算を行
い、加算結果の「0011110000」をレジスタ7に入れると
同時に、ステップ1の処理結果であるレジスタ7の出力
Bの「0011110000」を2桁右に桁シフトして、シフト結
果の「0000111100」をレジスタ8に格納する。
次に、ステップ3の処理となる。ステップ2の処理だ
けでは、未だ第2番目の桁の処理は終了しておらず、デ
ジットカウンタ4に格納されている値は「2」であり、
信号線4Aの値は「2」である。信号線3Aの値は「1」で
あり、また信号線3Bの値は「1」である。このような入
力の条件によりデコーダ3は、第2図に示す制御テーブ
ルにしたがって、信号線3Aの値を「0」、信号線3Bの値
を「0」とし、信号線4Aの値を1減算すると共に、信号
線3C,信号線3D,信号線3E,信号線3Fの制御信号の値をそ
れぞれ“0",“0",“0",“0"とする。これらの制御信号
により「A+B」の加算を行う。すなわち、レジスタ6
の出力Aの「0011110000」とレジスタ7の出力Bの「00
11110000」との加算を行い、加算結果の「0022220000」
をレジスタ7に入れる。また、このとき、シフタ2はレ
ジスタ7の出力Bの値を2桁右シフトするが、このシフ
ト出力の結果はどのレジスタにもセットされない。
けでは、未だ第2番目の桁の処理は終了しておらず、デ
ジットカウンタ4に格納されている値は「2」であり、
信号線4Aの値は「2」である。信号線3Aの値は「1」で
あり、また信号線3Bの値は「1」である。このような入
力の条件によりデコーダ3は、第2図に示す制御テーブ
ルにしたがって、信号線3Aの値を「0」、信号線3Bの値
を「0」とし、信号線4Aの値を1減算すると共に、信号
線3C,信号線3D,信号線3E,信号線3Fの制御信号の値をそ
れぞれ“0",“0",“0",“0"とする。これらの制御信号
により「A+B」の加算を行う。すなわち、レジスタ6
の出力Aの「0011110000」とレジスタ7の出力Bの「00
11110000」との加算を行い、加算結果の「0022220000」
をレジスタ7に入れる。また、このとき、シフタ2はレ
ジスタ7の出力Bの値を2桁右シフトするが、このシフ
ト出力の結果はどのレジスタにもセットされない。
次のステップ4では、デジットカウンタ4に格納され
ている値は「1」となり、信号線4Aの出力値は「1」と
なる。また、信号線3Aの出力値は「0」となり、信号線
9Aの出力値は乗数の第3番目の桁の値が切出されて、値
「1」がセットされる。このような入力の条件によりデ
コーダ3では、第2図に示ず制御テーブルにしたがっ
て、信号線3Aの値を「0」とし、信号線3Bの値を「0」
とし、信号線4Aの値を1減算すると同時に、信号線3C,
信号線3D,信号線3E,信号線3Fの制御信号の値をそれぞれ
“1",“1",“0",“0"とする。これより、10進加算器1
で「A+C」の加算を行うと共に、レジスタ7の出力B
を2桁右シフトする。すなわち、レジスタ6の出力Aの
「0011110000」とレジスタ8の出力Cの「0000111100」
との加算を行い、加算結果の「0011221100」をレジスタ
7に入れると同時に、ステップ3の処理結果であるレジ
スタ7の出力Bの「0022220000」を2桁右に桁シフトし
て、シフト結果の「0000222200」をレジスタ8に格納す
る。
ている値は「1」となり、信号線4Aの出力値は「1」と
なる。また、信号線3Aの出力値は「0」となり、信号線
9Aの出力値は乗数の第3番目の桁の値が切出されて、値
「1」がセットされる。このような入力の条件によりデ
コーダ3では、第2図に示ず制御テーブルにしたがっ
て、信号線3Aの値を「0」とし、信号線3Bの値を「0」
とし、信号線4Aの値を1減算すると同時に、信号線3C,
信号線3D,信号線3E,信号線3Fの制御信号の値をそれぞれ
“1",“1",“0",“0"とする。これより、10進加算器1
で「A+C」の加算を行うと共に、レジスタ7の出力B
を2桁右シフトする。すなわち、レジスタ6の出力Aの
「0011110000」とレジスタ8の出力Cの「0000111100」
との加算を行い、加算結果の「0011221100」をレジスタ
7に入れると同時に、ステップ3の処理結果であるレジ
スタ7の出力Bの「0022220000」を2桁右に桁シフトし
て、シフト結果の「0000222200」をレジスタ8に格納す
る。
この結果、次にステップ5においては、デジットカウ
ンタ4に格納されている値は「0」となり、信号線4Aの
出力値は「0」となる。また、信号線3Aの出力値は
「0」となる。この結果、このような入力の条件により
デコーダ3では、第2図に示す制御テーブルにしたがっ
て、信号線3Aの値を「1」とすると同時に、信号線3C,
信号線3Fの制御信号の値をそれぞれ“0",“1"として、
レジスタ7の出力Bの右1桁シフトを行う。すなわち、
レジスタ7の出力Bの「0011221100」を1桁右に桁シフ
トして、シフト結果の「0001122110」をレジスタ6に格
納する。なお、このときのシフト結果はレジスタ8には
格納されず、レジスタ8には前のステップ4のシフト結
果の「0000222200」がそのまま保持されている。
ンタ4に格納されている値は「0」となり、信号線4Aの
出力値は「0」となる。また、信号線3Aの出力値は
「0」となる。この結果、このような入力の条件により
デコーダ3では、第2図に示す制御テーブルにしたがっ
て、信号線3Aの値を「1」とすると同時に、信号線3C,
信号線3Fの制御信号の値をそれぞれ“0",“1"として、
レジスタ7の出力Bの右1桁シフトを行う。すなわち、
レジスタ7の出力Bの「0011221100」を1桁右に桁シフ
トして、シフト結果の「0001122110」をレジスタ6に格
納する。なお、このときのシフト結果はレジスタ8には
格納されず、レジスタ8には前のステップ4のシフト結
果の「0000222200」がそのまま保持されている。
次のステップ6においては、信号線4Aの出力値が
「0」であり、信号線3Aの出力値が「1」となってい
る。この結果、このような入力の条件によりデコーダ3
では、第2図に示す制御テーブルにしたがって、信号線
3C,信号線3D,信号線3Eの制御信号の値をそれぞれ“0",
“1",“0"とする。したがって、10進加算器1において
は「A+C」の加算を行う。すなわち、レジスタ6の出
力の「0001122110」とレジスタ8の出力Cの「00002222
00」との加算を行い、それと同時に加算結果の右端に符
号を入れ、結果の「000134431C」をレジスタ7に入れ
る。ここでの符号“C"は“+”を意味する。
「0」であり、信号線3Aの出力値が「1」となってい
る。この結果、このような入力の条件によりデコーダ3
では、第2図に示す制御テーブルにしたがって、信号線
3C,信号線3D,信号線3Eの制御信号の値をそれぞれ“0",
“1",“0"とする。したがって、10進加算器1において
は「A+C」の加算を行う。すなわち、レジスタ6の出
力の「0001122110」とレジスタ8の出力Cの「00002222
00」との加算を行い、それと同時に加算結果の右端に符
号を入れ、結果の「000134431C」をレジスタ7に入れ
る。ここでの符号“C"は“+”を意味する。
以上説明したように、本実施例によれば、10進乗算装
置において、乗数の偶数桁,奇数桁の中間桁の中間積を
別々に保持する2つのレジスタを備えることにより、一
方の中間積に対する加算処理と、他方の中間積の2桁の
桁シフトを同時に行うことができ、演算時間の短縮が可
能となる。
置において、乗数の偶数桁,奇数桁の中間桁の中間積を
別々に保持する2つのレジスタを備えることにより、一
方の中間積に対する加算処理と、他方の中間積の2桁の
桁シフトを同時に行うことができ、演算時間の短縮が可
能となる。
このような10進乗算装置における乗算演算方式は、各
桁の加減算のステップと桁シフトのステップを順次繰り
返して乗算を行う他の一般の乗算装置に対応可能であ
る。また、本実施例では2つのレジスタにおける偶数桁
と奇数桁に対する中間積をレジスタ間でやりとりしてい
るが、それぞれ偶数桁と奇数桁に対する中間積を保持す
るレジスタを固定的に設けて、各レジスタ間で中間積を
やりとりしないで処理するような構成とすることもでき
る。
桁の加減算のステップと桁シフトのステップを順次繰り
返して乗算を行う他の一般の乗算装置に対応可能であ
る。また、本実施例では2つのレジスタにおける偶数桁
と奇数桁に対する中間積をレジスタ間でやりとりしてい
るが、それぞれ偶数桁と奇数桁に対する中間積を保持す
るレジスタを固定的に設けて、各レジスタ間で中間積を
やりとりしないで処理するような構成とすることもでき
る。
以上、本発明を実施例にもとづき具体的に説明した
が、本発明は、前記実施例に限定されるものではなく、
その要旨を逸脱しない範囲において種々変更可能である
ことは言うまでもない。
が、本発明は、前記実施例に限定されるものではなく、
その要旨を逸脱しない範囲において種々変更可能である
ことは言うまでもない。
以上、説明したように、本発明によれば、10進乗算装
置において、乗数の奇数桁、偶数桁に対する中間積を別
々に保持しておくための2つのレジスタと、このレジス
タの一方の中間積と被乗数の加算を行う10進加算器と、
2つのレジスタの他方の中間積を1桁または2桁シフト
するシフタを備えることにより、中間積の一方の加算処
理を行っている間に、他方の中間積は次の桁の加算処理
のための桁シフトを行うことが可能となる。このため、
各桁の加算ステップと桁の間の桁シフトステップを順次
別々に処理する必要がなくなり、演算時間が短縮でき
る。
置において、乗数の奇数桁、偶数桁に対する中間積を別
々に保持しておくための2つのレジスタと、このレジス
タの一方の中間積と被乗数の加算を行う10進加算器と、
2つのレジスタの他方の中間積を1桁または2桁シフト
するシフタを備えることにより、中間積の一方の加算処
理を行っている間に、他方の中間積は次の桁の加算処理
のための桁シフトを行うことが可能となる。このため、
各桁の加算ステップと桁の間の桁シフトステップを順次
別々に処理する必要がなくなり、演算時間が短縮でき
る。
第1図は、本発明の一実施例にかかる10進乗算装置の要
部の構成を示すブロック図、 第2図は、デコーダにおける入力の条件と出力の制御信
号の関係を規定する制御テーブルを示す図、 第3a図,第3b図および第3c図は、乗算演算の処理例を各
ステップ毎に説明する図である。 図中、1……10進加算器、2……シフタ、3……デコー
ダ、4……デジットカウンタ、5……乗数レジスタ、6,
7,8……レジスタ、9,11……セレクタ、10……ゲート。
部の構成を示すブロック図、 第2図は、デコーダにおける入力の条件と出力の制御信
号の関係を規定する制御テーブルを示す図、 第3a図,第3b図および第3c図は、乗算演算の処理例を各
ステップ毎に説明する図である。 図中、1……10進加算器、2……シフタ、3……デコー
ダ、4……デジットカウンタ、5……乗数レジスタ、6,
7,8……レジスタ、9,11……セレクタ、10……ゲート。
Claims (3)
- 【請求項1】乗数に従って被乗数の加算を繰り返し行
い、乗算結果を求める10進乗算装置であって、乗数の奇
数桁,偶数桁に対する中間積を別々に保持する2つのレ
ジスタと、前記2つのレジスタの一方の中間積と被乗数
との加算を行う10進加算器と、前記2つのレジスタの他
方の中間積を2桁または1桁シフトするシフタと、前記
2つのレジスタに格納されたそれぞれの中間積に対し
て、前記10進加算器による10進加算処理と、前記シフタ
による桁シフト処理を同時に並列して行う演算制御手段
とを備えたことを特徴とする10進乗算装置。 - 【請求項2】前記10進加算器による10進加算処理は、N
桁の乗数から切り出した1桁の値nに従い、桁シフトを
行った被乗数をn回加算する処理を行い、または被乗数
を(10−n)回減算してその上位桁で1回余分に加算を
行う処理であることを特徴とする請求項1に記載された
10進乗算装置。 - 【請求項3】前記演算制御手段は、前記N桁または前記
N桁に符号部分1桁を含めた桁数だけシフトした被乗数
の加算を、N桁の乗数から切り出した各桁の値nに従っ
て繰り返す内側ループ演算の制御を行い、更に、桁シフ
トを行って該内側ループ演算をN回行う外側ループ演算
の制御を行うことを特徴とする請求項1に記載された10
進乗算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63124167A JP2653470B2 (ja) | 1988-05-20 | 1988-05-20 | 10進乗算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63124167A JP2653470B2 (ja) | 1988-05-20 | 1988-05-20 | 10進乗算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01293437A JPH01293437A (ja) | 1989-11-27 |
JP2653470B2 true JP2653470B2 (ja) | 1997-09-17 |
Family
ID=14878607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63124167A Expired - Lifetime JP2653470B2 (ja) | 1988-05-20 | 1988-05-20 | 10進乗算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2653470B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0833814B2 (ja) * | 1989-12-20 | 1996-03-29 | 株式会社ピーエフユー | 乗除算装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57125441A (en) * | 1981-01-27 | 1982-08-04 | Hitachi Ltd | Operaton system |
JPS60140429A (ja) * | 1983-12-28 | 1985-07-25 | Hitachi Ltd | 10進乗算装置 |
-
1988
- 1988-05-20 JP JP63124167A patent/JP2653470B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH01293437A (ja) | 1989-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS6347874A (ja) | 算術演算装置 | |
US4041292A (en) | High speed binary multiplication system employing a plurality of multiple generator circuits | |
US4745569A (en) | Decimal multiplier device and method therefor | |
JP2653470B2 (ja) | 10進乗算装置 | |
JPH0234054B2 (ja) | ||
JP3660075B2 (ja) | 除算装置 | |
JPS58129653A (ja) | 乗算方式 | |
JPH08314697A (ja) | 符号付き/符号なし数兼用乗算器 | |
JP3851024B2 (ja) | 乗算器 | |
JPH01116826A (ja) | 10進乗算装置 | |
JP3230349B2 (ja) | 10進乗算器 | |
JP3130797B2 (ja) | 積和演算処理方法およびその装置 | |
JP3284690B2 (ja) | 10進乗算器 | |
JP3277497B2 (ja) | 除算装置 | |
JP3120435B2 (ja) | ディジタル演算回路 | |
EP0055124B1 (en) | Digital multipliers | |
JPH1049347A (ja) | 乗算器 | |
JP3261729B2 (ja) | 直線補間方法及びその回路 | |
JP2568608B2 (ja) | 乗算回路 | |
JPS61289425A (ja) | 乗算回路 | |
JP3477866B2 (ja) | 除算器の除算方法 | |
SU748409A1 (ru) | Устройство дл умножени двоично- дес тичных чисел | |
JP3205020B2 (ja) | 演算装置 | |
JPH02239325A (ja) | 除算回路 | |
JPS63182738A (ja) | 乗算回路 |