JPH053614B2 - - Google Patents
Info
- Publication number
- JPH053614B2 JPH053614B2 JP58246929A JP24692983A JPH053614B2 JP H053614 B2 JPH053614 B2 JP H053614B2 JP 58246929 A JP58246929 A JP 58246929A JP 24692983 A JP24692983 A JP 24692983A JP H053614 B2 JPH053614 B2 JP H053614B2
- Authority
- JP
- Japan
- Prior art keywords
- multiplier
- register
- digit
- adder
- digits
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/491—Computations with decimal numbers radix 12 or 20.
- G06F7/4915—Multiplying; Dividing
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は10進乗算方式に関し、特に乗数と中間
積を同一のレジスタに納め、桁シフトのためのス
テツプを省略して演算時間を短縮できる10進乗算
方式に関するものである。
積を同一のレジスタに納め、桁シフトのためのス
テツプを省略して演算時間を短縮できる10進乗算
方式に関するものである。
従来の10進乗算方式の一つの例は第1図に示す
ように、乗数を格納するレジスタA、被乗数を格
納するレジスタC、初期値0であり演算途中の中
間積を格納する2本のレジスタB,D、レジスタ
Aより乗数の1桁を切り出して加算器1とゲート
4を制御する乗数デコーダ3、および、シフタ2
とセレクタ5により行つている。すなわち、乗数
であるレジスタAの下位から切に出した1桁の数
nに従い、乗数デコーダ3の制御により、加減算
器1でレジスタBの内容Xと被乗数であるレジス
タCの内容をn回加算し結果をレジスタBに戻
す。これで、1桁分の乗算が行えたことになり、
順次上位の桁の乗数を行つてゆくのであるが、そ
のための桁シフトを次の様な手順で行う。該1桁
分の積はレジスタBにあり、これを右に1桁分
(即ち4ビツト)シフタ2にてシフトして(左端
には“0000”が入る)、結果をレジスタBにセツ
トし右端からこぼれる1桁の数ををシフトレジス
タDの左端から与えレジスタDの内容は順次右へ
1桁シフトする。すなわち、レジスタBとDを一
連のレジスタとみたとき全体を右に1桁シフト
し、中間積の上位をレジスタBに下位をレジスタ
Dに納める。上記乗数より切り出した1桁nの回
数だけ加算する内側ループと、次桁のための上記
シフト動作をくり返す外側ループとにより乗算が
行われ、積はレジスタBとDにもとまる。
ように、乗数を格納するレジスタA、被乗数を格
納するレジスタC、初期値0であり演算途中の中
間積を格納する2本のレジスタB,D、レジスタ
Aより乗数の1桁を切り出して加算器1とゲート
4を制御する乗数デコーダ3、および、シフタ2
とセレクタ5により行つている。すなわち、乗数
であるレジスタAの下位から切に出した1桁の数
nに従い、乗数デコーダ3の制御により、加減算
器1でレジスタBの内容Xと被乗数であるレジス
タCの内容をn回加算し結果をレジスタBに戻
す。これで、1桁分の乗算が行えたことになり、
順次上位の桁の乗数を行つてゆくのであるが、そ
のための桁シフトを次の様な手順で行う。該1桁
分の積はレジスタBにあり、これを右に1桁分
(即ち4ビツト)シフタ2にてシフトして(左端
には“0000”が入る)、結果をレジスタBにセツ
トし右端からこぼれる1桁の数ををシフトレジス
タDの左端から与えレジスタDの内容は順次右へ
1桁シフトする。すなわち、レジスタBとDを一
連のレジスタとみたとき全体を右に1桁シフト
し、中間積の上位をレジスタBに下位をレジスタ
Dに納める。上記乗数より切り出した1桁nの回
数だけ加算する内側ループと、次桁のための上記
シフト動作をくり返す外側ループとにより乗算が
行われ、積はレジスタBとDにもとまる。
また、もう一つの例として、乗数より切り出し
た1桁の数nが大きい(例えば6以上)場合には
中間積の上位であるレジスタBの内容Xから被乗
数Yを(10−n)回減算し、1つ上の桁数の加減
算ループで1回加算を余計にする(又は1回減算
を少なくする)ことで、加減算回数を減らして、
高速化を計る方法も一般的に行われている。
た1桁の数nが大きい(例えば6以上)場合には
中間積の上位であるレジスタBの内容Xから被乗
数Yを(10−n)回減算し、1つ上の桁数の加減
算ループで1回加算を余計にする(又は1回減算
を少なくする)ことで、加減算回数を減らして、
高速化を計る方法も一般的に行われている。
このように、第1図の10進乗算方式では、高速
化を妨げる要因として、次の様な問題点がある。
化を妨げる要因として、次の様な問題点がある。
(i) 加減算のための内側ループと、桁ごとのシフ
トのための外側ループの二重ループで構成さ
れ、これらのループ処理が別々の処理として行
われていること。
トのための外側ループの二重ループで構成さ
れ、これらのループ処理が別々の処理として行
われていること。
(ii) 演算途中の中間積がレジスタBとレジスタD
に分かれるため、桁ごとのシフトでは通常のレ
ジスタの倍の長さのレジスタ(即ちBとDを一
連のレジスタとして見る必要がある)のシフト
を行う必要があること。
に分かれるため、桁ごとのシフトでは通常のレ
ジスタの倍の長さのレジスタ(即ちBとDを一
連のレジスタとして見る必要がある)のシフト
を行う必要があること。
(iii) 最終的な結果、即ち、積も、レジスタBとし
てレジスタDに分かれて求まるため、これらを
合成する必要があり、後処理が多くかかるこ
と。
てレジスタDに分かれて求まるため、これらを
合成する必要があり、後処理が多くかかるこ
と。
本発明の目的は、このような従来の問題点を解
決し、加減算のための内側ループと1桁シフトの
ための外側ループを別々に処理することなく一連
の動作として処理し、かつ乗数と中間積を同一か
つ一本のレジスタに混在させて、複数のレジスタ
に渡る積の合成を行う後処理の時間をなくして、
乗算時間を短縮できる10進乗算方式を提供するこ
とになる。
決し、加減算のための内側ループと1桁シフトの
ための外側ループを別々に処理することなく一連
の動作として処理し、かつ乗数と中間積を同一か
つ一本のレジスタに混在させて、複数のレジスタ
に渡る積の合成を行う後処理の時間をなくして、
乗算時間を短縮できる10進乗算方式を提供するこ
とになる。
上記目的を達成するために、本発明の10進乗算
方式は、乗数の符号を含めたままの有効桁数分だ
け左にシフトした被乗数を加減算における加減算
数とし、乗数の入つたレジスタをそのまま中間積
用のレジスタに兼用し、一方、加減算器の中間積
側の入口に右に4ビツト10進で代数シフトできる
プリシフタを設けて、各桁の最初の加減算にては
該プリシフタを有効にし、各桁2回目の加減算は
プリシフタを無効として加減算を行うことを特徴
としている。
方式は、乗数の符号を含めたままの有効桁数分だ
け左にシフトした被乗数を加減算における加減算
数とし、乗数の入つたレジスタをそのまま中間積
用のレジスタに兼用し、一方、加減算器の中間積
側の入口に右に4ビツト10進で代数シフトできる
プリシフタを設けて、各桁の最初の加減算にては
該プリシフタを有効にし、各桁2回目の加減算は
プリシフタを無効として加減算を行うことを特徴
としている。
以下、本発明の実施例を図面により説明する。
第2図は、本発明の一実施例を示す10進乗算方
式のブロツク図である。
式のブロツク図である。
第2図においては、乗数及び中間積を格納する
レジスタA、被乗数を格納するレジスタB、10進
の加減算器1、10進1桁右代数シフト機能を有す
プリシフタ2、レジスタAの下方より乗数の1桁
を線10により切り出して乗算制御を行う乗数デ
コーダ3、および+0や−0ができるようにレジ
スタBの出力をゼロとするためのゲート4を具備
する。
レジスタA、被乗数を格納するレジスタB、10進
の加減算器1、10進1桁右代数シフト機能を有す
プリシフタ2、レジスタAの下方より乗数の1桁
を線10により切り出して乗算制御を行う乗数デ
コーダ3、および+0や−0ができるようにレジ
スタBの出力をゼロとするためのゲート4を具備
する。
第2図の動作概要を説明する。
まず、乗算を行う2つのオペランドデータの
内、絶対値の大きい方を被乗数、小さい方を乗数
と呼ぶと、乗数はレジスタAに格納され、被乗数
は符号を除去したのち乗数の有効桁数だけ左にシ
フトしたものがレジスタBに格納される。このと
き、乗算結果である積が1本のレジスタに納まる
ことが前提である様な仕様の乗算では、上記被乗
数の左シフトを行つても、レジスタから有効桁が
こぼれ落ちることはない。
内、絶対値の大きい方を被乗数、小さい方を乗数
と呼ぶと、乗数はレジスタAに格納され、被乗数
は符号を除去したのち乗数の有効桁数だけ左にシ
フトしたものがレジスタBに格納される。このと
き、乗算結果である積が1本のレジスタに納まる
ことが前提である様な仕様の乗算では、上記被乗
数の左シフトを行つても、レジスタから有効桁が
こぼれ落ちることはない。
レジスタAから、線10を介して乗数の1桁を
切り出し、乗数デコーダ3ではデコードし加算器
1、プリシフタ2、ゲート4を制御する。
切り出し、乗数デコーダ3ではデコードし加算器
1、プリシフタ2、ゲート4を制御する。
乗数デコーダ3のブロツク図を第3図に、又、
デコーダ20の動作の詳細を第4図に示す。乗数
デコーダは、上記乗数の1桁に対応する加減算の
内の最初の加減算である(=0)か否か(=1)
を示すグラフH21と、加算を行う(=0)か減
算を行う(=1)かを示すフラグS22と、上記
乗数の1桁で行われる加減算の残り回数(0〜
4)を記憶するカウンタM23を具備する。
デコーダ20の動作の詳細を第4図に示す。乗数
デコーダは、上記乗数の1桁に対応する加減算の
内の最初の加減算である(=0)か否か(=1)
を示すグラフH21と、加算を行う(=0)か減
算を行う(=1)かを示すフラグS22と、上記
乗数の1桁で行われる加減算の残り回数(0〜
4)を記憶するカウンタM23を具備する。
各フラグの初期値は0、即ち、第4図の上側、
H=0,S=0の状態で、線10の値に従つて、
フラグH21,S22及びカウンタM23及び線
11〜13に値が設定される。線11,12,1
3により、第2図のプリシフタ2、ゲート4、加
減算器1を制御して演算0X+0又は0X+Y又は
0X−Yが行われる。デコーダ20で線11を1
にすることにより、プリシフタ2でレジスタAの
内容Xを右に1桁即ち4ビツトシフトし、左端の
空いた1桁には、10進の0(=0000)を埋め込む。
これを記号0Xで示す。線12は0であるときゲ
ート4をオンにし、レジスタBの内容Yをそのま
ま出力し、線12が1であるときゲート4をオフ
にして加減算器1の入力を0にする。線13が0
のとき加減算器1で加算を行い、1であるとき
は、減算を行う。例えば、H=0,S=0の状態
で線10が2のとき、デコーダ20では線11,
12,13をそれぞれ1,0,0とすることによ
り、レジスタAの内容Xを1桁右へシフトして左
端に0を埋めた値0XとレジスタBの内容Yを加
算し、(記号0X+Yで簡単に示す)、かつ、次サ
イクルの演算のために、フラグH21,S22、
及びカウンタM23をそれぞれ1,0,1に設定
する。
H=0,S=0の状態で、線10の値に従つて、
フラグH21,S22及びカウンタM23及び線
11〜13に値が設定される。線11,12,1
3により、第2図のプリシフタ2、ゲート4、加
減算器1を制御して演算0X+0又は0X+Y又は
0X−Yが行われる。デコーダ20で線11を1
にすることにより、プリシフタ2でレジスタAの
内容Xを右に1桁即ち4ビツトシフトし、左端の
空いた1桁には、10進の0(=0000)を埋め込む。
これを記号0Xで示す。線12は0であるときゲ
ート4をオンにし、レジスタBの内容Yをそのま
ま出力し、線12が1であるときゲート4をオフ
にして加減算器1の入力を0にする。線13が0
のとき加減算器1で加算を行い、1であるとき
は、減算を行う。例えば、H=0,S=0の状態
で線10が2のとき、デコーダ20では線11,
12,13をそれぞれ1,0,0とすることによ
り、レジスタAの内容Xを1桁右へシフトして左
端に0を埋めた値0XとレジスタBの内容Yを加
算し、(記号0X+Yで簡単に示す)、かつ、次サ
イクルの演算のために、フラグH21,S22、
及びカウンタM23をそれぞれ1,0,1に設定
する。
ここで線10が2〜8の場合にはH=1とな
り、その桁の加減算が1回で終了しなかつた事を
示し、次のサイクルでは、第4図の下側条件H=
1の動作状態に入る。また、線10が6〜9の場
合にはS=1となり、その桁の加減算として減算
が行われることを示している。
り、その桁の加減算が1回で終了しなかつた事を
示し、次のサイクルでは、第4図の下側条件H=
1の動作状態に入る。また、線10が6〜9の場
合にはS=1となり、その桁の加減算として減算
が行われることを示している。
条件H=0,S=1の状態は、今行う加減算
が、乗数1桁に対応する最初の加減算であるとと
もに、前桁では減算が行われた事を示している。
この状態では、線10の値に従い、フラグH2
1,S22およびカウンタM23は、第4図中程
の様に設定されると同時に、演算9X+Y又は9X
−Y又は9X−Y又は9X−0が行われる。9Xとは、
線11を2とすることによりプリシフタ2レジス
タAの内容Xを右に1桁シフトかつ左端の空いた
1桁には10進の9(=1001)を埋め込んだ値を意
味する。
が、乗数1桁に対応する最初の加減算であるとと
もに、前桁では減算が行われた事を示している。
この状態では、線10の値に従い、フラグH2
1,S22およびカウンタM23は、第4図中程
の様に設定されると同時に、演算9X+Y又は9X
−Y又は9X−Y又は9X−0が行われる。9Xとは、
線11を2とすることによりプリシフタ2レジス
タAの内容Xを右に1桁シフトかつ左端の空いた
1桁には10進の9(=1001)を埋め込んだ値を意
味する。
この状態では、前桁で減算したために今桁で余
分に1回多く加算又は1回少なく減算する必要が
あるため、線10が1〜7の場合H=1,5〜9
の場合S=1となるよう動作する。
分に1回多く加算又は1回少なく減算する必要が
あるため、線10が1〜7の場合H=1,5〜9
の場合S=1となるよう動作する。
条件H=1,S=0の状態は、乗数1桁に対応
する2回目以降の演算でかつ、加算であることを
示している。この状態では、加算の残り回数を示
すカウンタM23の値に従つて、フラグを第4図
下側の様にセツトし、カウンタM23の値を−1
する。又、線11を0としてプリシフタ2でレジ
スタAの内容Xをそのまま通し、線12を0にし
てレジスタBの内容をYをそのまま通し、線13
を0とすることによりこれらXとYを加減算器1
で加算する。これを記号X+Yで示す。
する2回目以降の演算でかつ、加算であることを
示している。この状態では、加算の残り回数を示
すカウンタM23の値に従つて、フラグを第4図
下側の様にセツトし、カウンタM23の値を−1
する。又、線11を0としてプリシフタ2でレジ
スタAの内容Xをそのまま通し、線12を0にし
てレジスタBの内容をYをそのまま通し、線13
を0とすることによりこれらXとYを加減算器1
で加算する。これを記号X+Yで示す。
条件H=1,S=1の状態は、乗数1桁の2回
目以降の演算でかつ、減算であることを示してい
る。この状態でデコーダ20は減算の残り回数を
示すカウンタM23の値に従つて、フラグを第4
図最下側の様にセツトし、カウンタM23の値を
−1すると同時に、X−Y即ち、第2図でレジス
タAとレジスタBの内容を加減算器1で減算す
る。
目以降の演算でかつ、減算であることを示してい
る。この状態でデコーダ20は減算の残り回数を
示すカウンタM23の値に従つて、フラグを第4
図最下側の様にセツトし、カウンタM23の値を
−1すると同時に、X−Y即ち、第2図でレジス
タAとレジスタBの内容を加減算器1で減算す
る。
すなわち、条件H=1の状態ではカウンタM2
3の値が1以下になるまで、フラグSに従い加算
又は減算を行つて残り1回でその桁の加減算が終
了する(即ち、M=1)所で、H=0とし、第4
図上中側の状態に戻る。
3の値が1以下になるまで、フラグSに従い加算
又は減算を行つて残り1回でその桁の加減算が終
了する(即ち、M=1)所で、H=0とし、第4
図上中側の状態に戻る。
以上の加減算を、乗数の最上位有効桁分が終了
するまでくり返すことにより、所望の積を得るこ
とができる。
するまでくり返すことにより、所望の積を得るこ
とができる。
第2図〜第4図における乗数動作をより具体的
にするため、実例により説明する。第5図は本発
明の10進乗算方式にもとづいた乗算操作の各ステ
ツプにおけるレジスタA,Bの内容を示す図であ
る。なお、一例として、1012×902=912824の場
合で説明する。
にするため、実例により説明する。第5図は本発
明の10進乗算方式にもとづいた乗算操作の各ステ
ツプにおけるレジスタA,Bの内容を示す図であ
る。なお、一例として、1012×902=912824の場
合で説明する。
まず、ステツプ0は、乗数を開始するに当りレ
ジスタA,Bにセツトされた内容を示している。
簡単のため、レジスタA,Bの長さはともに4バ
イトで内容は、2進化10進コード8桁で示す。
1012>902であるので、絶対値の小さい902を乗数
としてレジスタAに入れる。又、最右桁の‘C'は
902が正であることを示す符号であり、これを含
めた乗数の有効桁数は4となる。従つて、絶対値
の大きい1012は左へ4桁シフトされてレジスタB
に入れられる。
ジスタA,Bにセツトされた内容を示している。
簡単のため、レジスタA,Bの長さはともに4バ
イトで内容は、2進化10進コード8桁で示す。
1012>902であるので、絶対値の小さい902を乗数
としてレジスタAに入れる。又、最右桁の‘C'は
902が正であることを示す符号であり、これを含
めた乗数の有効桁数は4となる。従つて、絶対値
の大きい1012は左へ4桁シフトされてレジスタB
に入れられる。
第2図の線10は、第5図の印で示した、レ
ジスタAの右から2桁目であり、本例の場合、最
初は‘2'である。
ジスタAの右から2桁目であり、本例の場合、最
初は‘2'である。
ステツプでは、H=0,S=0、線10=2
であり、第4図に従つて、H=1,S=0,M=
1、とすると同時に線11,12,13を1,
0,0として演算0X+Yを行う。即ち0X=‘
00000902'とY=‘10120000'を加算した結果の右
端に符号をつけた値‘1012090C'がレジスタAに
入る。
であり、第4図に従つて、H=1,S=0,M=
1、とすると同時に線11,12,13を1,
0,0として演算0X+Yを行う。即ち0X=‘
00000902'とY=‘10120000'を加算した結果の右
端に符号をつけた値‘1012090C'がレジスタAに
入る。
ステツプでは、H=1,S=0,M=1であ
り、第4図に従つて、H=0,S=0,M=0と
すると同時に線11,10,13を0,0,0と
して演算X+Yを行う。即ち、Y=‘1012090C'
とY=‘10120000'を加算した結果に符号をつけ
た値‘2024090C'がレジスタAに入る。
り、第4図に従つて、H=0,S=0,M=0と
すると同時に線11,10,13を0,0,0と
して演算X+Yを行う。即ち、Y=‘1012090C'
とY=‘10120000'を加算した結果に符号をつけ
た値‘2024090C'がレジスタAに入る。
ステツプでは、H=0,S=0、線10=0
であり、第4図に従つて、H=0,S=0,M=
0及び0X+0を演算する。即ち0X=‘02024096'
に符号をつけた値‘0202409C'がレジスタAに入
る。
であり、第4図に従つて、H=0,S=0,M=
0及び0X+0を演算する。即ち0X=‘02024096'
に符号をつけた値‘0202409C'がレジスタAに入
る。
ステツプでは、H=0,S=0、線10=9
であり、第4図に従つて、H=0,S=1,M=
0、及び0X−Yを演算する。即ち、0X=‘
00202409'からY=‘10120000'を減算した結果に
符号をつけた値‘9008240C'がレジスタAに入る。
であり、第4図に従つて、H=0,S=1,M=
0、及び0X−Yを演算する。即ち、0X=‘
00202409'からY=‘10120000'を減算した結果に
符号をつけた値‘9008240C'がレジスタAに入る。
ステツプでは、H=0,S=1、線10=0
であり、第4図に従つて、H=0,S=0,M=
0、及び9X+Yを演算する。即ち、左端に9を
うめ込んだ9X=‘99008240'とY=‘10120000'を
加算した結果の最右端に符号を埋め込んだ値‘
0912824C'がレジスタAに入る。
であり、第4図に従つて、H=0,S=0,M=
0、及び9X+Yを演算する。即ち、左端に9を
うめ込んだ9X=‘99008240'とY=‘10120000'を
加算した結果の最右端に符号を埋め込んだ値‘
0912824C'がレジスタAに入る。
ここでレジスタAに1012×902=912824を得る
とができる。なお、乗算の終了は、前記符号も含
めた乗数の有効桁数回だけH=0とした所、本例
では、ステツプを除く〜のステツプでH=
0としており、ステツプが4回目であることを
もつて乗算終了する。
とができる。なお、乗算の終了は、前記符号も含
めた乗数の有効桁数回だけH=0とした所、本例
では、ステツプを除く〜のステツプでH=
0としており、ステツプが4回目であることを
もつて乗算終了する。
このように、本発明においては、乗数の有効桁
を符号まで含めて調べること、及び、毎回加減算
結果に符号を付加することにより、最後のステツ
プでレジスタAに得られた結果は所望の符号付き
演算結果‘0912824C'となつており、従来必要だ
つたレジスタ間に渡る積の合成や符号付けを行
う、後処理のステツプを省略できる。
を符号まで含めて調べること、及び、毎回加減算
結果に符号を付加することにより、最後のステツ
プでレジスタAに得られた結果は所望の符号付き
演算結果‘0912824C'となつており、従来必要だ
つたレジスタ間に渡る積の合成や符号付けを行
う、後処理のステツプを省略できる。
なお、本実施例では、乗数と中間積を同一のレ
ジスタに格納したが、必ずしも、同一である必要
はなく、別々のレジスタに納めても構わないこと
は言うまでもない。また、別々レジスタに格納す
ることで、乗数の切り出し、デコードと加減算と
を分離でき、本例では同一サイクルで行つていた
これらの処理を、別のサイクルで行い、ゲート遅
れ時間などを緩和する方法も容易に類推される。
ジスタに格納したが、必ずしも、同一である必要
はなく、別々のレジスタに納めても構わないこと
は言うまでもない。また、別々レジスタに格納す
ることで、乗数の切り出し、デコードと加減算と
を分離でき、本例では同一サイクルで行つていた
これらの処理を、別のサイクルで行い、ゲート遅
れ時間などを緩和する方法も容易に類推される。
以上説明したように、本発明によれば、10進乗
算方式において、乗数の各桁の値に従つて被乗数
を加減算する処理と、次桁の演算のための桁シフ
ト処理とを一連の動作で行え、かつ、中間積と乗
数を同一のレジスタに納めることができるため、
複数のレジスタを合成する後処理が省略できるの
で、演算ループを高速化するとともに、後処理も
高速化することが可能である。
算方式において、乗数の各桁の値に従つて被乗数
を加減算する処理と、次桁の演算のための桁シフ
ト処理とを一連の動作で行え、かつ、中間積と乗
数を同一のレジスタに納めることができるため、
複数のレジスタを合成する後処理が省略できるの
で、演算ループを高速化するとともに、後処理も
高速化することが可能である。
第1図は従来の10進乗算方式のブロツク図、第
2図は本発明の実施例を示す10進乗算方式のブロ
ツク図、第3図は第2図の乗算デコーダ3のブロ
ツク図、第4図は第3図のデコーダ20の動作を
説明する表、第5図は本発明の10進乗算方式にも
とづく乗算操作を示す実例説明図である。 A,B,C,D…レジスタ、1…加減算器、2
…シフタ又はプリシフタ、3…乗数デコーダ、4
…ゲート、5…セレクタ、21…フラグH、22
…フラグS、23…カウンタM、20…デコー
ダ。
2図は本発明の実施例を示す10進乗算方式のブロ
ツク図、第3図は第2図の乗算デコーダ3のブロ
ツク図、第4図は第3図のデコーダ20の動作を
説明する表、第5図は本発明の10進乗算方式にも
とづく乗算操作を示す実例説明図である。 A,B,C,D…レジスタ、1…加減算器、2
…シフタ又はプリシフタ、3…乗数デコーダ、4
…ゲート、5…セレクタ、21…フラグH、22
…フラグS、23…カウンタM、20…デコー
ダ。
Claims (1)
- 【特許請求の範囲】 1 10進で表示された乗数の桁数と10進で表示さ
れた被乗数の桁数の和以上の桁数でもつて、加算
又は減算を行う加減算器と、 該和以上の桁数を有し、該加減算器から与えら
れる乗算の中間結果を保持し、その中間結果を次
の加算又は減算のために該加減算器に供給するレ
ジスタ1と、 シフタと、 該乗数の有効桁数以上の桁数だけ上位桁側にシ
フトされた後の該被乗数を該加減算器に供給する
手段と、 該乗数の各桁に最下位桁から定まる順に応答し
て、レジスタ1内の中間結果に該シフトされた被
乗数を各桁の値に依存する回数だけ繰返して加算
または減算する処理を実行し、該乗数の各桁につ
いての上記処理の実行後に該加減算器により得ら
れた中間結果を、一桁分下位桁側に該シフタによ
りシフトし、そのシフト後の中間結果を該乗数の
次の桁に対する上記処理で使用するように、上記
加減算器による加減算の実行を制御する手段とを
有する10進乗算装置。 2 該供給手段は、該乗数の桁数と該被乗数の桁
数の和以上の桁数を有し、少なくともその乗数の
有効桁数分だけ上位桁側にシフトされた該被乗数
を保持するレジスタ2と、そのシフトされた被乗
数を該加減算器に供給する手段とからなる請求項
1記載の10進乗算装置。 3 該シフタは、該レジスタ1と該加減算器の間
に設けられ、そのレジスタ1に保持された中間結
果をシフトして該加減算器に与えるためのシフタ
からなり、 該制御手段は、 該乗数のある桁についての上記処理の実行中に
該加減算器により得られた新たな中間結果はその
まま該レジスタ1に格納する手段と、 該乗数の次の桁に対する上記処理を開始すると
きに、該レジスタ1に保持された中間結果を一桁
分下位桁側にシフトし、そのシフト後の中間結果
を該加減算器に供給するように該シフタを制御す
る手段を有する請求項1または2記載の10進乗算
装置は 4 互いの積を求めるべき二つのデータのうち、
桁数が小さい方が、該乗数として、該レジスタ1
にセツトされ、桁数が大きい方が、該被乗数とし
て該レジスタ3にセツトされる請求項2記載の10
進乗算装置。 5 該乗数は、該レジスタ1の下位側の部分に保
持され、 該加減算器は、該レジスタ1に保持された中間
結果と該乗数の組と該シフトされた被乗数に対し
て、加算又は減算を行い、 該シフタは、該乗数のある桁についての上記処
理の実行後に、その加減算器の出力に含まれる中
間結果の部分と乗数の部分の組を一桁分下位桁側
にシフトする請求項1記載の10進乗算装置。 6 該シフタは、該レジスタ1と該加減算器の間
に設けられ、レジスタ1に保持された中間結果お
よび乗数の組をシフトして該加減算器に与え、 該制御手段は、 該乗数のある桁についての上記処理の実行中に
該加減算器により得られた中間結果はそのまま該
レジスタ1に格納する手段と、 該乗数の次の桁に対する上記処理を開始すると
きに、該レジスタ1に保持された中間結果と乗数
の組を一桁分下位桁側にシフトするように該シフ
タを制御する手段とを有する請求項5記載の10進
乗算装置。 7 該レジスタ1に保持される該乗数は、その符
号部分を含み、 該シフタは、該レジスタ1に含まれた、中間結
果と、該乗数の内の符号以外の部分との組をシフ
トし、 該制御手段は、該シフタが動作するのに応じて
該レジスタ1の特定位置に表れる該乗数の次の桁
に応答するように構成されている請求項6記載の
10進乗算装置。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58246929A JPS60140429A (ja) | 1983-12-28 | 1983-12-28 | 10進乗算装置 |
| DE19843447729 DE3447729A1 (de) | 1983-12-28 | 1984-12-21 | Verfahren und vorrichtung zur dezimal-multiplikation |
| US06/686,692 US4745569A (en) | 1983-12-28 | 1984-12-27 | Decimal multiplier device and method therefor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58246929A JPS60140429A (ja) | 1983-12-28 | 1983-12-28 | 10進乗算装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS60140429A JPS60140429A (ja) | 1985-07-25 |
| JPH053614B2 true JPH053614B2 (ja) | 1993-01-18 |
Family
ID=17155851
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58246929A Granted JPS60140429A (ja) | 1983-12-28 | 1983-12-28 | 10進乗算装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US4745569A (ja) |
| JP (1) | JPS60140429A (ja) |
| DE (1) | DE3447729A1 (ja) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4947364A (en) * | 1985-10-23 | 1990-08-07 | Hewlett-Packard Company | Method in a computing system for performing a multiplication |
| JPH07107664B2 (ja) * | 1987-02-13 | 1995-11-15 | 日本電気株式会社 | 乗算回路 |
| FR2738365A1 (fr) * | 1987-10-23 | 1997-03-07 | Thomson Csf | Procede et circuits pour la multiplication modulo un nombre binaire n de deux nombres binaires et leurs utilisations aux calculs d'exponentiations |
| JP2653470B2 (ja) * | 1988-05-20 | 1997-09-17 | 株式会社日立製作所 | 10進乗算装置 |
| JPH07118630B2 (ja) * | 1989-06-29 | 1995-12-18 | 三菱電機株式会社 | 乗算用信号処理回路 |
| KR100389082B1 (ko) * | 1995-04-24 | 2004-09-04 | 삼성전자주식회사 | 가산기와감산기의조합을이용한승산기 |
| JP2000322235A (ja) * | 1999-05-07 | 2000-11-24 | Sony Corp | 情報処理装置 |
| US7167889B2 (en) * | 2003-05-12 | 2007-01-23 | International Business Machines Corporation | Decimal multiplication for superscaler processors |
| US7136893B2 (en) * | 2003-07-10 | 2006-11-14 | International Business Machines Corporation | Decimal multiplication using digit recoding |
| US7519647B2 (en) * | 2005-02-09 | 2009-04-14 | International Business Machines Corporation | System and method for providing a decimal multiply algorithm using a double adder |
| US7475104B2 (en) * | 2005-02-09 | 2009-01-06 | International Business Machines Corporation | System and method for providing a double adder for decimal floating point operations |
| US8417761B2 (en) * | 2008-12-08 | 2013-04-09 | International Business Machines Corporation | Direct decimal number tripling in binary coded adders |
| US8495124B2 (en) * | 2010-06-23 | 2013-07-23 | International Business Machines Corporation | Decimal floating point mechanism and process of multiplication without resultant leading zero detection |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1053686A (ja) * | 1964-07-22 | |||
| US3500026A (en) * | 1965-09-10 | 1970-03-10 | Vyzk Ustav Matemat Stroju | Multiplication apparatus utilizing either a positive or a negative multiplier wherein form conversion at each interface of the multiplying unit is unnecessary |
| JPS5127977A (ja) * | 1974-09-03 | 1976-03-09 | Takeo Kobayashi | |
| DD119891A1 (ja) * | 1975-05-15 | 1976-05-12 | ||
| JPS54159833A (en) * | 1978-06-08 | 1979-12-18 | Hitachi Ltd | Decimal multiplier |
| JPS5624645A (en) * | 1979-08-08 | 1981-03-09 | Hitachi Ltd | Decimal multiplication system |
| JPS58119047A (ja) * | 1982-01-11 | 1983-07-15 | Hitachi Ltd | 10進乗算又は除算装置 |
| JPS58129653A (ja) * | 1982-01-29 | 1983-08-02 | Hitachi Ltd | 乗算方式 |
| JPS6011927A (ja) * | 1983-07-01 | 1985-01-22 | Hitachi Ltd | 10進乗算装置 |
| JPS60247735A (ja) * | 1984-05-24 | 1985-12-07 | Nec Corp | 10進乗算回路 |
-
1983
- 1983-12-28 JP JP58246929A patent/JPS60140429A/ja active Granted
-
1984
- 1984-12-21 DE DE19843447729 patent/DE3447729A1/de active Granted
- 1984-12-27 US US06/686,692 patent/US4745569A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS60140429A (ja) | 1985-07-25 |
| DE3447729C2 (ja) | 1989-12-21 |
| DE3447729A1 (de) | 1985-07-18 |
| US4745569A (en) | 1988-05-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH053614B2 (ja) | ||
| US3234367A (en) | Quotient guess divider | |
| JPH0477932B2 (ja) | ||
| JPH0479015B2 (ja) | ||
| JPH0234054B2 (ja) | ||
| JPH0831024B2 (ja) | 演算プロセッサ | |
| JPS6222178A (ja) | 2つの複素数の乗算のための乗算器 | |
| JP2653470B2 (ja) | 10進乗算装置 | |
| JP2777265B2 (ja) | 高基数開平演算装置 | |
| JP2951685B2 (ja) | 固定小数点演算器 | |
| JP3477866B2 (ja) | 除算器の除算方法 | |
| JP3259116B2 (ja) | パイプライン型除算処理装置 | |
| JP2928027B2 (ja) | 十進二進変換回路 | |
| JPS6074028A (ja) | 演算装置における十進除算方式 | |
| JPH0368415B2 (ja) | ||
| JPS60108932A (ja) | 十進演算処理装置 | |
| JPH03208168A (ja) | 日数計算装置 | |
| JPS5985539A (ja) | 除算処理装置 | |
| JPS6120133A (ja) | 10進乗算器 | |
| JPH01233520A (ja) | 高基数非回復型除算装置 | |
| JPS58119047A (ja) | 10進乗算又は除算装置 | |
| JPS59174945A (ja) | 整数乗算器に於ける実数乗算方式 | |
| JPH01161437A (ja) | 除算装置 | |
| JP2000076045A (ja) | シフト機能付きalu命令を持つマイクロプロセッサ | |
| JPS6224816B2 (ja) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |