JPS60140429A - 10進乗算装置 - Google Patents
10進乗算装置Info
- Publication number
- JPS60140429A JPS60140429A JP58246929A JP24692983A JPS60140429A JP S60140429 A JPS60140429 A JP S60140429A JP 58246929 A JP58246929 A JP 58246929A JP 24692983 A JP24692983 A JP 24692983A JP S60140429 A JPS60140429 A JP S60140429A
- Authority
- JP
- Japan
- Prior art keywords
- multiplier
- register
- digit
- subtraction
- addition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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/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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は10進乗算方式に関し、特に乗数と中間積を同
一のレジスタに納め、桁シフトのためのステップを省略
して演算時間を短縮できる10進乗算方式に関するもの
である。
一のレジスタに納め、桁シフトのためのステップを省略
して演算時間を短縮できる10進乗算方式に関するもの
である。
〔発明の背景〕
従来の10進乗算方式の一〇の例は第1図に示すように
1乗数を格納するレジスタA、被乗数を格納するレジス
タC1初期値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にてシフトして(左端
には’o o o o″が入る)、結果をレジスタBに
セットし右端からこぼれる1桁の数をシフトレジスタD
の左端から与えレジスタDの内容は順次布へ1桁シフト
する。すなわち、レジスタBとDを一連のレジスタとみ
たとき全体を右に1桁シフトし、中間積の上位をレジス
タBに下位をレジスタDに納める。上記乗数より切り出
した1桁nの回数だけ加算する内側ループと、次桁のた
めの上記シフト動作をくり返す外側ループとにより乗算
が行われ、積はレジスタBとDにもとまる。
1乗数を格納するレジスタA、被乗数を格納するレジス
タC1初期値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にてシフトして(左端
には’o o o o″が入る)、結果をレジスタ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回減算を少なくする)ことで、加算減口数
を減らして、高速化を計る方法も一般的に行われている
。
数nが大きい(例えば6以上)場合には中間積の上位で
あるレジスタBの内容Xから被乗数Yを(10−n)回
減算し、1つ上の桁の加減算ループで1回加算を余計に
する(又は1回減算を少なくする)ことで、加算減口数
を減らして、高速化を計る方法も一般的に行われている
。
このように、第1図の10進乗算方式では、高速化を妨
げる要因として、次の様な問題点がある。
げる要因として、次の様な問題点がある。
(+)加減算のための内側ループと、桁ごとのシフトの
ための外側ループの二重ループで構成され、これらのル
ープ処理が別々の処理として行われていること。
ための外側ループの二重ループで構成され、これらのル
ープ処理が別々の処理として行われていること。
(11)演算途中の中間積がレジスタBとレジスタDに
分かれるため、桁ごとのシフトでは通常のレジスタの倍
の長さのレジスタ(即ちBとDを一連のレジスタとして
見る必要がある)のシフトを行う必要があること。
分かれるため、桁ごとのシフトでは通常のレジスタの倍
の長さのレジスタ(即ちBとDを一連のレジスタとして
見る必要がある)のシフトを行う必要があること。
(tit )最終的な結果、即ち、積も、レジスタBと
しレジスタDに分かれてまるため、これらを合成する必
要があり、後処理が多くかかること。
しレジスタDに分かれてまるため、これらを合成する必
要があり、後処理が多くかかること。
本発明の目的は、このような従来の問題点を解決し、加
減算゛のだめの内側ループと1桁シフl−のための外側
ループを別々に処理することなく一連の動作として処理
し、かつ乗数と中間積を同一かつ一本のレジスタに混在
させて、複数のレジスタに渡る積の合成を行う後処理の
時間をなくして、演算時r!IIを短縮できる10進乗
算方式を提供することにある。
減算゛のだめの内側ループと1桁シフl−のための外側
ループを別々に処理することなく一連の動作として処理
し、かつ乗数と中間積を同一かつ一本のレジスタに混在
させて、複数のレジスタに渡る積の合成を行う後処理の
時間をなくして、演算時r!IIを短縮できる10進乗
算方式を提供することにある。
上記目的を達成するために、本発明の10進乗算方式は
、乗数の符号を含めたままの有効桁数分だけ左にシフト
した被乗数を加減算における加減算数とし、乗数の入っ
たレジスタをそのまま中間積用のレジスタに兼用し、一
方、加減算器の中間積側の入口に右に4ビツト10進で
代数シフトできるプリシフタを設けて、各桁の最初の加
減算にては該プリシフタを有効にし、各桁2回目の加減
算はプリシフタを無効として加減算を行うことを特徴と
している。
、乗数の符号を含めたままの有効桁数分だけ左にシフト
した被乗数を加減算における加減算数とし、乗数の入っ
たレジスタをそのまま中間積用のレジスタに兼用し、一
方、加減算器の中間積側の入口に右に4ビツト10進で
代数シフトできるプリシフタを設けて、各桁の最初の加
減算にては該プリシフタを有効にし、各桁2回目の加減
算はプリシフタを無効として加減算を行うことを特徴と
している。
以下1本発明の実施例を図面により説明する。
第2図は1本発明の一実施例を示す10進乗算方式のブ
ロック図である。
ロック図である。
第2図においては、乗数及び中間積を格納するレジスタ
A、被乗数を格納するレジスタB、10進の加減算器1
.10進1桁右代数シフト機能を有すプリシフタ2、レ
ジスタAの下方より乗数の1桁を線10により切り出し
て演算制御を行う乗数デコーダ3、および+0や一〇が
できるようにレジスタBの出力をゼロとするためのゲー
ト4を具備する。
A、被乗数を格納するレジスタB、10進の加減算器1
.10進1桁右代数シフト機能を有すプリシフタ2、レ
ジスタAの下方より乗数の1桁を線10により切り出し
て演算制御を行う乗数デコーダ3、および+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図に示す。乗数デコーダ3は、
上記乗数の1桁に対応する加減算の内の最初の加減算で
ある(=0)か否か(=1)を示すフラグH21と、加
算を行う(=0)か減算を行う(=1)かを示すフラグ
S22と、上記乗数の1桁で行われる加減算の残り回数
(0〜4)を記憶するカウンタM23を具備する。
20の動作の詳細を第4図に示す。乗数デコーダ3は、
上記乗数の1桁に対応する加減算の内の最初の加減算で
ある(=0)か否か(=1)を示すフラグH21と、加
算を行う(=0)か減算を行う(=1)かを示すフラグ
S22と、上記乗数の1桁で行われる加減算の残り回数
(0〜4)を記憶するカウンタM23を具備する。
各フラグの初期値は0、即ち、第4図の上側、H=0.
S=Oの状態で、線10の値に従って、フラグH21,
S22及びカウンタM23及び線11〜13に値が設定
される。線11,12゜13により、第2図のプリシフ
タ2、ゲート4、加減算器1を制御して演算 X+0又
は X+Y又は’X−Yが行われる。デコーダ20で線
11を1にすることにより、プリシフタ2でレジスタA
の内容Xを右に1桁即ち4ビツトシフトし、左端の空い
た1桁には、10進の0 (=0000)を埋め込む。
S=Oの状態で、線10の値に従って、フラグH21,
S22及びカウンタM23及び線11〜13に値が設定
される。線11,12゜13により、第2図のプリシフ
タ2、ゲート4、加減算器1を制御して演算 X+0又
は X+Y又は’X−Yが行われる。デコーダ20で線
11を1にすることにより、プリシフタ2でレジスタA
の内容Xを右に1桁即ち4ビツトシフトし、左端の空い
た1桁には、10進の0 (=0000)を埋め込む。
これを記号 Xで示す。線12は0であるときゲート4
をオンにし、レジスタBの内容Yをそのまま出力し、線
12が1であるときゲート4をオフにして加減算器1の
入力をOにする。
をオンにし、レジスタBの内容Yをそのまま出力し、線
12が1であるときゲート4をオフにして加減算器1の
入力をOにする。
線13がOのとき加減算器1で加算を行い、1であると
きは、減算を行う。例えば、H=O,S=0の状態で線
10が2のとき、デコーダ20では線11,12.13
をそれぞれ1.O,Oとすることにより、レジスタAの
内容Xを1桁右へシフトして左端に0を埋めた値 Xと
レジスタBの内容Yを加算し、(記号 x+yで簡単に
示す)、かつ1次サイクルの演算のために、フラグH2
1゜S22.及びカウンタM23をそれぞれ1,0゜1
に設定する。
きは、減算を行う。例えば、H=O,S=0の状態で線
10が2のとき、デコーダ20では線11,12.13
をそれぞれ1.O,Oとすることにより、レジスタAの
内容Xを1桁右へシフトして左端に0を埋めた値 Xと
レジスタBの内容Yを加算し、(記号 x+yで簡単に
示す)、かつ1次サイクルの演算のために、フラグH2
1゜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=O,S=1の状態は、今行う加減算が、乗数1
桁に対応する最初の加減算であるとともに、前桁では減
算が行われた事を示している。この状態では、線10の
値に従い、フラグH21,S22およびカウンタM23
は、第4図中程の様に設定されると同時に、演算 X+
Y又は X−Y又は’x−oが行われる。 Xとは、線
11を2とすることによりプリシフタ2でレジスタAの
内容Xを右に1桁シフトしかつ左端の空いた1桁には1
0進の9(=1001)を埋め込んだ値を意味する。
桁に対応する最初の加減算であるとともに、前桁では減
算が行われた事を示している。この状態では、線10の
値に従い、フラグH21,S22およびカウンタM23
は、第4図中程の様に設定されると同時に、演算 X+
Y又は X−Y又は’x−oが行われる。 Xとは、線
11を2とすることによりプリシフタ2でレジスタAの
内容Xを右に1桁シフトしかつ左端の空いた1桁には1
0進の9(=1001)を埋め込んだ値を意味する。
この状態では、前桁で減算したために奇術で余分に1回
多く加算又は1回少なく減算する必要があるため、線1
0が1〜7の場合H=1.5〜9の場合S=1となるよ
う動作する。
多く加算又は1回少なく減算する必要があるため、線1
0が1〜7の場合H=1.5〜9の場合S=1となるよ
う動作する。
条件H=1.S=Oの状態は、乗数1桁に対応する2回
目以降の演算でかつ、加算であることを示している。こ
の状態では、加算の残り回数を示すカウンタM23の値
に従って、フラグを第4図下側の様にセットし、カウン
タM23の値を−1する。又、線11を0としてプリシ
フタ2でレジスタAの内容Xをそのまま通し、線12を
OにしてレジスタBの内容をYをそのまま通し、線13
を0とすることによりこれらXとYを加減算器lで加算
する。これを記号X+Yで示す。
目以降の演算でかつ、加算であることを示している。こ
の状態では、加算の残り回数を示すカウンタM23の値
に従って、フラグを第4図下側の様にセットし、カウン
タM23の値を−1する。又、線11を0としてプリシ
フタ2でレジスタAの内容Xをそのまま通し、線12を
OにしてレジスタBの内容をYをそのまま通し、線13
を0とすることによりこれらXとYを加減算器lで加算
する。これを記号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の状態ではカウンタM23の値が
1以下になるまで、フラグSに従い加算又は減算を行っ
て残り1回でその桁の加減算が終了する(即ち、M=1
)所で、H=Oとし、第4図上中側の状態に戻る。
1以下になるまで、フラグSに従い加算又は減算を行っ
て残り1回でその桁の加減算が終了する(即ち、M=1
)所で、H=Oとし、第4図上中側の状態に戻る。
以上の加減算を、乗数の最上位有効桁分が終了するまで
くり返すことにより、所望の積を得ることができる。
くり返すことにより、所望の積を得ることができる。
第2図〜第4図における乗数動作をより具体的にするた
め、実例により説明する。第5図は本発明の10進乗算
方式にもとづいた乗算操作の各ステップにおけるレジス
タA、Bの内容を示す図である。なお、−例として、1
012x902=912824の場合で説明する。
め、実例により説明する。第5図は本発明の10進乗算
方式にもとづいた乗算操作の各ステップにおけるレジス
タA、Bの内容を示す図である。なお、−例として、1
012x902=912824の場合で説明する。
まず、ステップ0は、乗数を開始するに当りレジスタA
、Bにセットされた内容を示している。
、Bにセットされた内容を示している。
簡単のため、レジスタA、Bの長さはともに4バイトで
内容は、2進化10進コード8桁で示す。
内容は、2進化10進コード8桁で示す。
1012>902であるので、絶対値の小さい902を
乗数としてレジスタAに入れる。又、最右桁の′C′は
902が正であることを示す符号であり、これを含めた
乗数の有効桁数は4となる。
乗数としてレジスタAに入れる。又、最右桁の′C′は
902が正であることを示す符号であり、これを含めた
乗数の有効桁数は4となる。
従って、絶対値の大きい1012は左へ4桁シフトされ
てレジスタBに入れられる。
てレジスタBに入れられる。
第2図の線10は、第5図の、印で示した、レジスタA
の右から2桁目であり、本例の場合、最初は12′であ
る。
の右から2桁目であり、本例の場合、最初は12′であ
る。
ステップIでは、H=O,S=O,線10=2であ・す
、第4図に従って、H=1.S=O,M=1、とすると
同時に線11,12.13を1,0゜0として演算 X
+Yを行う。即ち X=’00000902’とY =
’10120000’を加算した結果の右端に符号を
つけた値’1012090C’ がレジスタAに入る。
、第4図に従って、H=1.S=O,M=1、とすると
同時に線11,12.13を1,0゜0として演算 X
+Yを行う。即ち X=’00000902’とY =
’10120000’を加算した結果の右端に符号を
つけた値’1012090C’ がレジスタAに入る。
ステップ■では、H=1.S=0.M=1であり、第4
図に従って、H=O,S=O,M=Oとすると同時に線
11,10.13を0.0.0として演算X+Yを行う
。即ち、X = ’1012090C’とY = ’1
0120000’を加算した結果に符号をつけた値’2
024090C’ がレジスタAに入る。
図に従って、H=O,S=O,M=Oとすると同時に線
11,10.13を0.0.0として演算X+Yを行う
。即ち、X = ’1012090C’とY = ’1
0120000’を加算した結果に符号をつけた値’2
024090C’ がレジスタAに入る。
ステップ■では、H=0.S=O,ml O=0であり
、第4図に従って、H=O,S=O,M=0及び0X+
0を演算する。即ち、。X=’02024096’に符
号をつけた値’0202409 G ’ がレジスタA
に入る。
、第4図に従って、H=O,S=O,M=0及び0X+
0を演算する。即ち、。X=’02024096’に符
号をつけた値’0202409 G ’ がレジスタA
に入る。
ステップ■では、H=0.S=O,線10=9であり、
第4図に従って、)!==O,S=l、M=O2及び
x−yを演算する。即ち、 X=’00202409’
からY = ’10120000’を減算した結果に符
号をつけた値’9008240 C’ がレジスタAに
入る。
第4図に従って、)!==O,S=l、M=O2及び
x−yを演算する。即ち、 X=’00202409’
からY = ’10120000’を減算した結果に符
号をつけた値’9008240 C’ がレジスタAに
入る。
ステップ■では、H=0.S=1.、線10=0であり
、第4図に従って、H=O,S=0.M=0.及び X
+Yを演算する。即ち、左端に9をうめ込んだ X =
’9900B240’とY = ’10120000
’を加算した結果の最右端に符号を埋め込んだ値’09
12824C’ がレジスタAに入る。
、第4図に従って、H=O,S=0.M=0.及び X
+Yを演算する。即ち、左端に9をうめ込んだ X =
’9900B240’とY = ’10120000
’を加算した結果の最右端に符号を埋め込んだ値’09
12824C’ がレジスタAに入る。
ここでレジスタAに1012 X 902 = 912
824 を得るとかできる。なお、乗算の終了は、前記
符号も含めた乗数の有効桁数回だけH=0とした所、本
例では、ステップIを除く■〜■のステップでH=0と
しており、ステップVが4回目であることをもって乗算
終了する。
824 を得るとかできる。なお、乗算の終了は、前記
符号も含めた乗数の有効桁数回だけH=0とした所、本
例では、ステップIを除く■〜■のステップでH=0と
しており、ステップVが4回目であることをもって乗算
終了する。
このように、本発明においては、乗数の有効桁を符号ま
で含めて調べること、及び、毎回加減算結果に符号を付
加することにより、最後のステップでレジスタAに得ら
れた結果は所望の符号付き演算結果’0912824C
’ となっており、従来必要だったレジスタ間に渡る積
の合成や符号付けを行う、後処理のステップを省略でき
る。
で含めて調べること、及び、毎回加減算結果に符号を付
加することにより、最後のステップでレジスタAに得ら
れた結果は所望の符号付き演算結果’0912824C
’ となっており、従来必要だったレジスタ間に渡る積
の合成や符号付けを行う、後処理のステップを省略でき
る。
なお1本実施例では1乗数と中間積を同一のレジスタに
格納したが、必ずしも、同一である必要はなく、別々の
レジスタに納めても構わないことは言うまでもない。ま
た、別々のレジスタに格納することで、乗数の切り出し
、デコードと加減算とを分離でき、本例では同一サイク
ルで行っていたこれらの処理を、別のす、イクルで行い
、ゲート遅れ時間などを緩和する方法も容易に類推され
る。
格納したが、必ずしも、同一である必要はなく、別々の
レジスタに納めても構わないことは言うまでもない。ま
た、別々のレジスタに格納することで、乗数の切り出し
、デコードと加減算とを分離でき、本例では同一サイク
ルで行っていたこれらの処理を、別のす、イクルで行い
、ゲート遅れ時間などを緩和する方法も容易に類推され
る。
以上説明したように、本発明によれば、10進乗算方式
において、乗数の各桁の値に従って被乗数を加減算する
処理と、次桁の演算のための桁シフト処理とを一連の動
作で行え、かつ、中間積と乗数を同一のレジスタに納め
ることができるため、複数のレジスタを合成する後処理
が省略できるので、演算ループを高速化するとともに、
後処理も高速化することが可能である。
において、乗数の各桁の値に従って被乗数を加減算する
処理と、次桁の演算のための桁シフト処理とを一連の動
作で行え、かつ、中間積と乗数を同一のレジスタに納め
ることができるため、複数のレジスタを合成する後処理
が省略できるので、演算ループを高速化するとともに、
後処理も高速化することが可能である。
第1図は従来の10進乗算方式のブロック図、第2図は
本発明の実施例を示す10進乗算方式のブロック図、第
3図は第2図の乗算デコーダ3のブロック図、第4図は
第3薗のデコーダ2oの動作を説明する表、第5図は本
発明の10進乗算方式にもとづく乗算操作を示す実例説
明図である。 A、B、C,D・・・レジスタ、1・・・加減算器、2
・・・シフタ又はプリシフタ、3・・・乗数デコーダ、
4・・・ゲート、5・・・セレクタ、21・・・フラグ
H122・・・第 2 図 第 3 阻 第 4 (支) 第 S 図
本発明の実施例を示す10進乗算方式のブロック図、第
3図は第2図の乗算デコーダ3のブロック図、第4図は
第3薗のデコーダ2oの動作を説明する表、第5図は本
発明の10進乗算方式にもとづく乗算操作を示す実例説
明図である。 A、B、C,D・・・レジスタ、1・・・加減算器、2
・・・シフタ又はプリシフタ、3・・・乗数デコーダ、
4・・・ゲート、5・・・セレクタ、21・・・フラグ
H122・・・第 2 図 第 3 阻 第 4 (支) 第 S 図
Claims (1)
- 【特許請求の範囲】 1、乗数から切り出した1桁の値nに従い、被乗数をn
回加算する内側ループと、桁シフトを行って乗数のN桁
について上記内側ループの演算をくり返す外側ループに
より構成される10進乗算方式あるいは、上記内側ルー
プの演算に於て、nの値によりn回加算を行うか、10
−n回減算して1つ上の桁で1回余分に加算することに
より内側ループを高速化した10進乗算方式、あるいは
、上記内側ループの演算に於て、被乗数の倍数を用いる
ことにより内側ループを高速化した10進乗算方式に於
て、 上記内側ループの演算に、上記N桁左にシフトした被乗
数又はその倍数を加減算数として加減算に用いることを
特徴とする10進乗算方式。 2、前記桁数Nを乗数の長さでなく、符号部分も含めた
乗数のゼロでない最上位の桁により決定することを特徴
とする特許請求範囲第1項記載の10進乗算方式。 3、前記内側ループの演算で、上記加減算途中の中間積
を格納するレジスタAと上記加減算数を格納するレジス
タBとの間の加減算に於て、上記内側ループの最初の加
減算は、上記レジスタAの内容を代数的に右に1桁シフ
トした値と上記レジスタBとの間で行い、2回目以降の
加減算ではレジスタAとレジスタBとの間で行って、上
記、内側ループと外側ループとを一連の動作で実行する
ことを特徴とする特許請求範囲第1項又は第2項記載の
10進乗算方式。 4、前記レジスタAに最初に乗数を格納し、演算途中で
は上記中間積と乗数の一部が混在したまま演算を行うこ
とを特徴とする特許請求範囲第1項から第3項のいずれ
か記載の10進乗算方式。 5、前記乗数及び被乗数は、10進乗算命令の2つのオ
ペランドデータの大小比較により、小さい方を乗数、大
きい方を被乗数として使用することを特徴とする特許請
求範囲第1項から第4項のいずれか記載の10進乗算方
式。 6.前記加減算を行う加減算器の一方の入力に、入力さ
れたデータを右4ビツトシフトして、左端の4ビツトに
は’o o o o″か1001’を生成できるプリシ
フタを設け、前桁で加算を行ったか減算を行ったかによ
り’o o o o’を生成するか1001’を生成す
るかを決定するためのフラグを設けたことを特徴とする
特許請求範囲第1項から第5項のいずれかに記載の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 true JPS60140429A (ja) | 1985-07-25 |
JPH053614B2 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01293437A (ja) * | 1988-05-20 | 1989-11-27 | Hitachi Ltd | 10進乗算装置 |
Families Citing this family (12)
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 |
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 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5127977A (ja) * | 1974-09-03 | 1976-03-09 | Takeo Kobayashi |
Family Cites Families (9)
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 |
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
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5127977A (ja) * | 1974-09-03 | 1976-03-09 | Takeo Kobayashi |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01293437A (ja) * | 1988-05-20 | 1989-11-27 | Hitachi Ltd | 10進乗算装置 |
Also Published As
Publication number | Publication date |
---|---|
US4745569A (en) | 1988-05-17 |
DE3447729C2 (ja) | 1989-12-21 |
DE3447729A1 (de) | 1985-07-18 |
JPH053614B2 (ja) | 1993-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS6347874A (ja) | 算術演算装置 | |
JPS60140429A (ja) | 10進乗算装置 | |
JPH0713742A (ja) | 乗算装置 | |
JPH0477932B2 (ja) | ||
JP2502836B2 (ja) | 除算回路の前処理装置 | |
JPH07107664B2 (ja) | 乗算回路 | |
JPH10111791A (ja) | 除算装置 | |
JPH0831024B2 (ja) | 演算プロセッサ | |
JPS6222178A (ja) | 2つの複素数の乗算のための乗算器 | |
JPS5595148A (en) | Binary arithmetic circuit | |
JPS6259828B2 (ja) | ||
JP2653470B2 (ja) | 10進乗算装置 | |
JPS60247736A (ja) | 除算回路 | |
JPS593634A (ja) | 乗算器 | |
JP3477866B2 (ja) | 除算器の除算方法 | |
JPS6149234A (ja) | 浮動小数点乗算回路 | |
JPH10333885A (ja) | 乗算回路 | |
JPS61289425A (ja) | 乗算回路 | |
JPS63254525A (ja) | 除算装置 | |
JP2995721B2 (ja) | 除算装置および除算方法 | |
JPH04160533A (ja) | マイクロ・プロセッサ | |
JPS5985539A (ja) | 除算処理装置 | |
JPS61228530A (ja) | 乗算器 | |
JPH0239234A (ja) | マイクロコンピュータ | |
JPS61101835A (ja) | 除算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |