JPH04242425A - 10進乗算器 - Google Patents
10進乗算器Info
- Publication number
- JPH04242425A JPH04242425A JP1579691A JP1579691A JPH04242425A JP H04242425 A JPH04242425 A JP H04242425A JP 1579691 A JP1579691 A JP 1579691A JP 1579691 A JP1579691 A JP 1579691A JP H04242425 A JPH04242425 A JP H04242425A
- Authority
- JP
- Japan
- Prior art keywords
- intermediate product
- register
- circuit
- output
- shift
- 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.)
- Pending
Links
- 239000013067 intermediate product Substances 0.000 claims abstract description 142
- 238000000034 method Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 4
- 239000012467 final product Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【技術分野】本発明は10進乗算器に関し、特に情報処
理装置に使用される10進乗算器に関するものである。
理装置に使用される10進乗算器に関するものである。
【0002】
【従来技術】図2には従来の10進乗算器の回路図を示
す。この乗算器は、中間積の上位をセットする中間積上
位レジスタ1と、乗数及び中間積下位を択一的にセット
する中間積下位レジスタ2と、被乗数の0〜9倍の値を
セットする被乗数倍数レジスタ3と、中間積上位レジス
タ1の出力と被乗数倍数レジスタ3の出力とを加算する
加算回路4と、加算回路4の出力と中間積下位レジスタ
2の出力とを入力データとして、0桁又は1桁右シフト
を行なうシフト回路5と、中間積下位レジスタ2の最下
位桁の出力を読出しアドレスとして入力し、加算回路4
の出力により記憶しておいた被乗数の0〜9倍を出力す
る記憶回路6とを有している。
す。この乗算器は、中間積の上位をセットする中間積上
位レジスタ1と、乗数及び中間積下位を択一的にセット
する中間積下位レジスタ2と、被乗数の0〜9倍の値を
セットする被乗数倍数レジスタ3と、中間積上位レジス
タ1の出力と被乗数倍数レジスタ3の出力とを加算する
加算回路4と、加算回路4の出力と中間積下位レジスタ
2の出力とを入力データとして、0桁又は1桁右シフト
を行なうシフト回路5と、中間積下位レジスタ2の最下
位桁の出力を読出しアドレスとして入力し、加算回路4
の出力により記憶しておいた被乗数の0〜9倍を出力す
る記憶回路6とを有している。
【0003】乗算の動作は以下の如くである。まず、中
間積上位レジスタ1及び被乗数倍数レジスタ3に0をセ
ットし、記憶回路6のライトアドレスを0とすると、次
のクロックサイクルで記憶回路6には加算回路4の出力
0が記憶される。
間積上位レジスタ1及び被乗数倍数レジスタ3に0をセ
ットし、記憶回路6のライトアドレスを0とすると、次
のクロックサイクルで記憶回路6には加算回路4の出力
0が記憶される。
【0004】同クロックサイクルで被乗数倍数レジスタ
3に被乗数をセットし、記憶回路6の書込みアドレスを
1とすると、次のクロックサイクルで記憶回路6には加
算回路4の出力である被乗数の1倍が記憶される。
3に被乗数をセットし、記憶回路6の書込みアドレスを
1とすると、次のクロックサイクルで記憶回路6には加
算回路4の出力である被乗数の1倍が記憶される。
【0005】同クロックサイクルで中間積上位レジスタ
1に加算回路4の出力である被乗数の1倍をセットし、
記憶回路6の書込みアドレスを2とすると、次のクロッ
クサイクルで記憶回路6には加算回路4の出力である被
乗数の2倍が記憶される。同クロックサイクルで中間積
上位レジスタ1に加算回路4の出力である被乗数の2倍
をセットし、記憶回路6の書込みアドレスを3とする。
1に加算回路4の出力である被乗数の1倍をセットし、
記憶回路6の書込みアドレスを2とすると、次のクロッ
クサイクルで記憶回路6には加算回路4の出力である被
乗数の2倍が記憶される。同クロックサイクルで中間積
上位レジスタ1に加算回路4の出力である被乗数の2倍
をセットし、記憶回路6の書込みアドレスを3とする。
【0006】以下同様の動作を記憶回路6の書込みアド
レス9まで行なうと、記憶回路6には被乗数の0〜9倍
の数が記憶される。上記の動作中シフト回路5のシフト
量は0である。
レス9まで行なうと、記憶回路6には被乗数の0〜9倍
の数が記憶される。上記の動作中シフト回路5のシフト
量は0である。
【0007】次に中間積上位レジスタ1に0(中間積の
初期設定)をセットし、中間積下位レジスタ2に乗数を
セットする。さらに被乗数倍数レジスタ3には0をセッ
トする。次のクロックサイクルで中間積下位レジスタ2
の出力の乗数の最下位桁を読出しアドレスとして記憶回
路6から読出された被乗数の乗数最下位桁倍を被乗数倍
数レジスタ3にセットする。
初期設定)をセットし、中間積下位レジスタ2に乗数を
セットする。さらに被乗数倍数レジスタ3には0をセッ
トする。次のクロックサイクルで中間積下位レジスタ2
の出力の乗数の最下位桁を読出しアドレスとして記憶回
路6から読出された被乗数の乗数最下位桁倍を被乗数倍
数レジスタ3にセットする。
【0008】同時に加算回路4の出力0と中間積下位レ
ジスタ2の出力とをシフト回路5に入力し、右1桁シフ
トした結果を中間積上位レジスタ1、中間積下位レジス
タ2に夫々セットする。
ジスタ2の出力とをシフト回路5に入力し、右1桁シフ
トした結果を中間積上位レジスタ1、中間積下位レジス
タ2に夫々セットする。
【0009】次のクロックサイクルで、中間積下位レジ
スタ2の出力である乗数の(最下位−1)桁を読出しア
ドレスとして、記憶回路6から読出された被乗数の乗数
(最下位−1)桁倍を被乗数倍数レジスタ3にセットす
る。同時に加算回路4の出力、被乗数の乗数最下位桁倍
と中間積下位のレジスタ2の出力をシフト回路5に入力
し、右1桁シフトした結果を中間積上位レジスタ1、中
間積下位レジスタ2にセットする。
スタ2の出力である乗数の(最下位−1)桁を読出しア
ドレスとして、記憶回路6から読出された被乗数の乗数
(最下位−1)桁倍を被乗数倍数レジスタ3にセットす
る。同時に加算回路4の出力、被乗数の乗数最下位桁倍
と中間積下位のレジスタ2の出力をシフト回路5に入力
し、右1桁シフトした結果を中間積上位レジスタ1、中
間積下位レジスタ2にセットする。
【0010】このとき中間積の最下位桁は中間積下位レ
ジスタ2の最上位桁に、中間積の残りの部分は中間積上
位レジスタ1の下位に夫々セットされていることになる
。中間積下位レジスタ2の下位は乗数の上位部分(最下
位桁と最下位−1桁を除く部分)がセットされている。
ジスタ2の最上位桁に、中間積の残りの部分は中間積上
位レジスタ1の下位に夫々セットされていることになる
。中間積下位レジスタ2の下位は乗数の上位部分(最下
位桁と最下位−1桁を除く部分)がセットされている。
【0011】以下同様の動作を、乗数の全ての桁の演算
が終了しかつ中間積(最終的には最終積と呼ぶ)の最下
位桁が中間積下位レジスタ2の最下位桁にくるまで行な
う。
が終了しかつ中間積(最終的には最終積と呼ぶ)の最下
位桁が中間積下位レジスタ2の最下位桁にくるまで行な
う。
【0012】但し、後に最終積の最下位桁の下位に符号
を挿入するため、中間積下位レジスタ2の最下位−1桁
までで終了する場合もあり得る。
を挿入するため、中間積下位レジスタ2の最下位−1桁
までで終了する場合もあり得る。
【0013】以上の動作によって、十進数の乗算の結果
が中間積上位レジスタ1及び中間積下位レジスタ2に求
められる。
が中間積上位レジスタ1及び中間積下位レジスタ2に求
められる。
【0014】この従来の10進乗算器では、(被乗数)
×(乗数)の演算を乗数の下位桁から1桁ずつの倍数の
加算の繰返しにより行なっているため、乗数に0を含む
場合にも、途中までの加算結果である中間積に乗数の0
倍、即ち0を加算する動作を行なっている。このため乗
数が0のときには、加算を行なわなくてもよいのに、加
算を行なわなければならないため演算効率が悪いという
問題点がある。
×(乗数)の演算を乗数の下位桁から1桁ずつの倍数の
加算の繰返しにより行なっているため、乗数に0を含む
場合にも、途中までの加算結果である中間積に乗数の0
倍、即ち0を加算する動作を行なっている。このため乗
数が0のときには、加算を行なわなくてもよいのに、加
算を行なわなければならないため演算効率が悪いという
問題点がある。
【0015】
【発明の目的】本発明の目的は、乗数の桁が0の場合に
は、そのときの加算処理を省略して演算効率を向上可能
とした10進乗算器を提供することである。
は、そのときの加算処理を省略して演算効率を向上可能
とした10進乗算器を提供することである。
【0016】
【発明の構成】本発明による10進乗算器は、中間積の
上位をセットする中間積上位レジスタと、乗数及び中間
積の下位を択一的にセットする中間積下位レジスタと、
被乗数の1〜9倍の値を予め格納する記憶手段と、前記
記憶手段の記憶出力をセットする被乗数倍数レジスタと
、前記中間積上位レジスタと前記被乗数倍数レジスタと
の出力を加算する加算手段と、前記加算手段の出力また
は前記中間積上位レジスタ及び前記中間積下位レジスタ
の両出力の一方を入力し、シフト量に応じてシフト制御
するシフト手段と、前記中間積下位レジスタの出力の下
位桁から1以上連続して出現する0の数に応じて前記シ
フト手段のシフト量を制御するシフト制御手段と、前記
中間積下位レジスタの最下位桁と前記シフト手段の最下
位シフトアウト桁とを択一的に入力し、前記中間積下位
レジスタの最下位桁が0以外のときはこの最下位桁の値
を、0のときは前記最下位シフトアウト桁の値を、前記
記憶手段のアドレスとして発生するアドレス制御手段と
を含むことを特徴とする10進乗算器が得られる。
上位をセットする中間積上位レジスタと、乗数及び中間
積の下位を択一的にセットする中間積下位レジスタと、
被乗数の1〜9倍の値を予め格納する記憶手段と、前記
記憶手段の記憶出力をセットする被乗数倍数レジスタと
、前記中間積上位レジスタと前記被乗数倍数レジスタと
の出力を加算する加算手段と、前記加算手段の出力また
は前記中間積上位レジスタ及び前記中間積下位レジスタ
の両出力の一方を入力し、シフト量に応じてシフト制御
するシフト手段と、前記中間積下位レジスタの出力の下
位桁から1以上連続して出現する0の数に応じて前記シ
フト手段のシフト量を制御するシフト制御手段と、前記
中間積下位レジスタの最下位桁と前記シフト手段の最下
位シフトアウト桁とを択一的に入力し、前記中間積下位
レジスタの最下位桁が0以外のときはこの最下位桁の値
を、0のときは前記最下位シフトアウト桁の値を、前記
記憶手段のアドレスとして発生するアドレス制御手段と
を含むことを特徴とする10進乗算器が得られる。
【0017】
【実施例】次に本発明の実施例について図面を参照して
説明する。
説明する。
【0018】図1は本発明の一実施例のブロック図であ
り、図2と同等部分は同一符号により示す。中間積上位
レジスタ1は、中間積上位をセットするレジスタであり
、中間積下位レジスタ2は中間積下位と乗数をセットす
るレジスタであり、被乗数倍数レジスタ3は被乗数の1
〜9倍の値をセットするレジスタである。
り、図2と同等部分は同一符号により示す。中間積上位
レジスタ1は、中間積上位をセットするレジスタであり
、中間積下位レジスタ2は中間積下位と乗数をセットす
るレジスタであり、被乗数倍数レジスタ3は被乗数の1
〜9倍の値をセットするレジスタである。
【0019】加算回路4は中間積上位レジスタ1の出力
と被乗数倍数レジスタ3の出力とを入力データとして加
算を行なう回路である。
と被乗数倍数レジスタ3の出力とを入力データとして加
算を行なう回路である。
【0020】シフト量制御回路8は中間積下位レジスタ
2の出力の下位桁から1つまたは2つ以上連続して出現
する0の数をかぞえて、中間積上位レジスタ1と中間積
下位レジスタ2にセットするデータのシフト量を制御す
る。
2の出力の下位桁から1つまたは2つ以上連続して出現
する0の数をかぞえて、中間積上位レジスタ1と中間積
下位レジスタ2にセットするデータのシフト量を制御す
る。
【0021】シフト回路5は加算回路4の出力又は中間
積上位レジスタ1の出力及び中間積下位レジスタ2の出
力を入力データとし、シフト量制御回路8の出力をシフ
ト量としてシフト動作を行なう。
積上位レジスタ1の出力及び中間積下位レジスタ2の出
力を入力データとし、シフト量制御回路8の出力をシフ
ト量としてシフト動作を行なう。
【0022】アドレス制御回路7は中間積下位レジスタ
2の最下位桁とシフト回路6の出力の最下位シフトアウ
ト桁を入力し、中間積下位レジスタ2の最下位桁の値が
0以外のときは中間積下位レジスタ2の最下位桁の値を
、中間積下位レジスタ2の最下位桁の値が0のときはシ
フト回路6の最下位シフトアウト桁の値を、記憶回路6
のアドレスとして出力する。
2の最下位桁とシフト回路6の出力の最下位シフトアウ
ト桁を入力し、中間積下位レジスタ2の最下位桁の値が
0以外のときは中間積下位レジスタ2の最下位桁の値を
、中間積下位レジスタ2の最下位桁の値が0のときはシ
フト回路6の最下位シフトアウト桁の値を、記憶回路6
のアドレスとして出力する。
【0023】記憶回路6は書込みアドレスを1〜9に変
化させて、加算回路4の出力データである被乗数の1〜
9倍の値を書込み、アドレス制御回路7の出力データを
読出しアドレスとして、被乗数の倍数を読出す。
化させて、加算回路4の出力データである被乗数の1〜
9倍の値を書込み、アドレス制御回路7の出力データを
読出しアドレスとして、被乗数の倍数を読出す。
【0024】乗算の動作は以下の如くである。まず中間
積上位レジスタ1に0をセットし、中間積下位レジスタ
2にはデータ102 から乗数をセットする。被乗数倍
数レジスタ3にはデータ101 から被乗数をセットす
る。
積上位レジスタ1に0をセットし、中間積下位レジスタ
2にはデータ102 から乗数をセットする。被乗数倍
数レジスタ3にはデータ101 から被乗数をセットす
る。
【0025】さらに記憶回路6の書込みアドレス100
を1とすると、次のクロックサイクルで記憶回路6に
は、加算回路4の出力データ105 に送られた中間積
上位レジスタ1の出力データ103 の0と、被乗数倍
数レジスタ3の出力データ104 の被乗数との加算結
果である被乗数の1倍が記憶される。
を1とすると、次のクロックサイクルで記憶回路6に
は、加算回路4の出力データ105 に送られた中間積
上位レジスタ1の出力データ103 の0と、被乗数倍
数レジスタ3の出力データ104 の被乗数との加算結
果である被乗数の1倍が記憶される。
【0026】同クロックサイクルで中間積上位レジスタ
1には、加算回路4の出力データ105 をシフト量0
でシフト回路6を通したデータ106 をセットし、記
憶回路6の書込みアドレス100 を2とすると、次の
クロックサイクルで記憶回路6には、加算回路4の出力
データ105 に送られた、中間積上位レジスタ1の出
力データ103 の被乗数の1倍と被乗数倍数レジスタ
3の出力データ104 の被乗数との加算結果である被
乗数の2倍の数が記憶される。
1には、加算回路4の出力データ105 をシフト量0
でシフト回路6を通したデータ106 をセットし、記
憶回路6の書込みアドレス100 を2とすると、次の
クロックサイクルで記憶回路6には、加算回路4の出力
データ105 に送られた、中間積上位レジスタ1の出
力データ103 の被乗数の1倍と被乗数倍数レジスタ
3の出力データ104 の被乗数との加算結果である被
乗数の2倍の数が記憶される。
【0027】以下同様の動作を記憶回路6の書込みアド
レス100 を9まで行なうと、記憶回路6には被乗数
の1〜9倍の数が記憶される。
レス100 を9まで行なうと、記憶回路6には被乗数
の1〜9倍の数が記憶される。
【0028】同時に中間積の初期設定として、中間積上
位レジスタ1に0をセットし、また被乗数倍数レジスタ
3にも0をセットする。
位レジスタ1に0をセットし、また被乗数倍数レジスタ
3にも0をセットする。
【0029】次のクロックサイクルで中間積下位レジス
タ2の最下位桁107と、シフト回路5の最下位桁10
8 とをアドレス制御回路7に入力し、中間積下位レジ
スタ2の最下位桁107 が0以外の場合は、中間積下
位レジスタ2の最下位桁107 を、0の場合は、シフ
ト回路5の最下位シフトアウト桁108 のデータをア
ドレス制御回路7の出力データ109 として夫々出力
する。
タ2の最下位桁107と、シフト回路5の最下位桁10
8 とをアドレス制御回路7に入力し、中間積下位レジ
スタ2の最下位桁107 が0以外の場合は、中間積下
位レジスタ2の最下位桁107 を、0の場合は、シフ
ト回路5の最下位シフトアウト桁108 のデータをア
ドレス制御回路7の出力データ109 として夫々出力
する。
【0030】さらに記憶回路6ではアドレス制御回路7
の出力データ109 を読出しアドレスとして入力し、
被乗数の倍数を110 に出力する。またシフト量制御
回路8では、中間積下位レジスタ2の出力111 を入
力し、下位桁から1つまたは2つ以上連続して出現する
0の数をかぞえてその値に+1した数をシフト回路5の
シフト量としてデータ112 に送出する。
の出力データ109 を読出しアドレスとして入力し、
被乗数の倍数を110 に出力する。またシフト量制御
回路8では、中間積下位レジスタ2の出力111 を入
力し、下位桁から1つまたは2つ以上連続して出現する
0の数をかぞえてその値に+1した数をシフト回路5の
シフト量としてデータ112 に送出する。
【0031】但し、中間積下位レジスタ2の最下位桁が
0でない場合と演算の最後には、シフト量としてデータ
112 には1を送出する。
0でない場合と演算の最後には、シフト量としてデータ
112 には1を送出する。
【0032】シフト回路5では、中間積下位レジスタ2
の最下位桁が0のときは、加算回路4の出力105 と
中間積下位レジスタ2の出力111 とを入力データと
し、シフト量制御回路8の出力102 に送られた乗数
の最下位桁から1つまたは2つ以上連続する0の個数に
1を加えた数をシフト量としてシフト動作を行なった結
果をデータ106 に出力する。
の最下位桁が0のときは、加算回路4の出力105 と
中間積下位レジスタ2の出力111 とを入力データと
し、シフト量制御回路8の出力102 に送られた乗数
の最下位桁から1つまたは2つ以上連続する0の個数に
1を加えた数をシフト量としてシフト動作を行なった結
果をデータ106 に出力する。
【0033】中間積下位レジスタ2の最下位桁が0以外
のときは、加算回路4の出力105 と中間積下位レジ
スタ2の出力111 とを入力データとし、シフト量制
御回路8の出力102 に送られた“1”をシフト量と
してシフト動作を行なった結果をデータ106 に出力
する。
のときは、加算回路4の出力105 と中間積下位レジ
スタ2の出力111 とを入力データとし、シフト量制
御回路8の出力102 に送られた“1”をシフト量と
してシフト動作を行なった結果をデータ106 に出力
する。
【0034】次のクロックサイクルでシフト回路5の出
力106 を中間積上位レジスタ1と中間積下位レジス
タ2にセットすると、ここに、中間積と乗数の残りの桁
が求められる。
力106 を中間積上位レジスタ1と中間積下位レジス
タ2にセットすると、ここに、中間積と乗数の残りの桁
が求められる。
【0035】但し、次に演算するべき乗数の桁は、アド
レス制御回路7の出力109 に送られて、記憶回路6
から読出された被乗数の倍数データ110として、被乗
数倍数レジスタ3にセットされている。
レス制御回路7の出力109 に送られて、記憶回路6
から読出された被乗数の倍数データ110として、被乗
数倍数レジスタ3にセットされている。
【0036】以下、中間積上位レジスタ1と中間積下位
レジスタ2は、中間積下位レジスタの出力111 によ
って得られたシフト量制御回路8の出力112 をシフ
ト量としてシフト回路5 でシフトされたデータ105
とデータ111 とをセットすることを繰返す。また
、被乗数倍数レジスタ3は、中間積下位レジスタ2の最
下位桁データ107 とシフト回路5の最下位シフトア
ウト桁データ108 とによって、アドレス制御回路7
から出力されたデータ109 を読出しアドレスとして
記憶回路6から読出された被乗数の倍数データ110
をセットすることを繰返して、乗算が進行する。
レジスタ2は、中間積下位レジスタの出力111 によ
って得られたシフト量制御回路8の出力112 をシフ
ト量としてシフト回路5 でシフトされたデータ105
とデータ111 とをセットすることを繰返す。また
、被乗数倍数レジスタ3は、中間積下位レジスタ2の最
下位桁データ107 とシフト回路5の最下位シフトア
ウト桁データ108 とによって、アドレス制御回路7
から出力されたデータ109 を読出しアドレスとして
記憶回路6から読出された被乗数の倍数データ110
をセットすることを繰返して、乗算が進行する。
【0037】この動作は乗数の全ての桁の演算が終了し
かつ中間積(最終的には最終積と呼ぶ)の最下位桁が中
間積下位レジスタ2の最下位桁にくるまで行なう。但し
後に最終積の最下位桁の下位に符号を挿入するため中間
積下位レジスタ2の最下位−1桁までで終了する場合も
あり得る。
かつ中間積(最終的には最終積と呼ぶ)の最下位桁が中
間積下位レジスタ2の最下位桁にくるまで行なう。但し
後に最終積の最下位桁の下位に符号を挿入するため中間
積下位レジスタ2の最下位−1桁までで終了する場合も
あり得る。
【0038】以上の動作によって、十進数の乗算の結果
が中間積上位レジスタ1及び中間積レジスタ2に求めら
れる。
が中間積上位レジスタ1及び中間積レジスタ2に求めら
れる。
【0039】以下に具体的な数値を用いた例を示す(レ
ジスタは8桁とする)。
ジスタは8桁とする)。
【0040】例1.乗数に0が出現しない場合(被乗数
=1,乗数=12345678) ステップ1 中間積上位レジスタ1←00000
000 中間積下位レジス
タ2←乗数12345678
被乗数倍数レジスタ3←被乗数00000001
書込みアドレス100
←1 加算回路4の出力
105 ←00000000+00000001
=1,乗数=12345678) ステップ1 中間積上位レジスタ1←00000
000 中間積下位レジス
タ2←乗数12345678
被乗数倍数レジスタ3←被乗数00000001
書込みアドレス100
←1 加算回路4の出力
105 ←00000000+00000001
【00
41】 ステップ2 記憶回路6のワード1←00000
001(データ105 )
シフト回路5の出力106 (上位のみ)←0000
0001 中間積上位レジ
スタ1←00000001(データ106 )
書込みアドレス100 ←2
加算回路4の出力105 ←
00000001+00000001
41】 ステップ2 記憶回路6のワード1←00000
001(データ105 )
シフト回路5の出力106 (上位のみ)←0000
0001 中間積上位レジ
スタ1←00000001(データ106 )
書込みアドレス100 ←2
加算回路4の出力105 ←
00000001+00000001
【0042】
ステップ3 記憶回路6のワード2←00000
002 シフト回路6の出
力106 (上位のみ)←00000002
中間積上位レジスタ1←00000
002 書込みアドレス1
00 ←3 加算回路4の
出力105 ←00000002+00000001
002 シフト回路6の出
力106 (上位のみ)←00000002
中間積上位レジスタ1←00000
002 書込みアドレス1
00 ←3 加算回路4の
出力105 ←00000002+00000001
【
0043】 ステップ4 記憶回路6のワード3←00000
003 シフト回路5の出
力106 (上位のみ)←00000003
中間積上位レジスタ1←00000
003 書込みアドレス1
00 ←4 加算回路4の
出力105 ←00000003+00000001
0043】 ステップ4 記憶回路6のワード3←00000
003 シフト回路5の出
力106 (上位のみ)←00000003
中間積上位レジスタ1←00000
003 書込みアドレス1
00 ←4 加算回路4の
出力105 ←00000003+00000001
【
0044】 ステップ5 記憶回路6のワード4←00000
004 シフト回路5の出
力106 (上位のみ)←00000004
中間積上位レジスタ1←00000
004 書込みアドレス1
00 ←5 加算回路4の
出力105 ←00000004+00000001
0044】 ステップ5 記憶回路6のワード4←00000
004 シフト回路5の出
力106 (上位のみ)←00000004
中間積上位レジスタ1←00000
004 書込みアドレス1
00 ←5 加算回路4の
出力105 ←00000004+00000001
【
0045】 ステップ6 記憶回路6のワード5←00000
005 シフト回路5の出
力106 (上位のみ)←00000005
中間積上位レジスタ1←00000
005 書込みアドレス1
00 ←6 加算回路4の
出力105 ←00000005+00000001
0045】 ステップ6 記憶回路6のワード5←00000
005 シフト回路5の出
力106 (上位のみ)←00000005
中間積上位レジスタ1←00000
005 書込みアドレス1
00 ←6 加算回路4の
出力105 ←00000005+00000001
【
0046】 ステップ7 記憶回路6のワード6←00000
006 シフト回路6の出
力106 (上位のみ)←00000006
中間積上位レジスタ1←00000
006 書込みアドレス1
00 ←7 加算回路4の
出力105 ←00000006+00000001
0046】 ステップ7 記憶回路6のワード6←00000
006 シフト回路6の出
力106 (上位のみ)←00000006
中間積上位レジスタ1←00000
006 書込みアドレス1
00 ←7 加算回路4の
出力105 ←00000006+00000001
【
0047】 ステップ8 記憶回路6のワード7←00000
007 シフト回路5の出
力106 ←00000007
中間積上位レジスタ1←00000007
書込みアドレス100 ←8
加算回路4の出力105
←00000007+00000001
0047】 ステップ8 記憶回路6のワード7←00000
007 シフト回路5の出
力106 ←00000007
中間積上位レジスタ1←00000007
書込みアドレス100 ←8
加算回路4の出力105
←00000007+00000001
【0048】
ステップ9 記憶回路6のワード8←00000
008 シフト回路5の出
力106 ←00000008
中間積上位レジスタ1←00000008
書込みアドレス100 ←9
加算回路4の出力105
←00000008+00000001
008 シフト回路5の出
力106 ←00000008
中間積上位レジスタ1←00000008
書込みアドレス100 ←9
加算回路4の出力105
←00000008+00000001
【0049】
ステップ10 記憶回路6のワード9←0000
0009 中間積上位
レジスタ1←00000000(中間積の初期化)
被乗数倍数レジスタ3←
00000000(中間積の初期化)
0009 中間積上位
レジスタ1←00000000(中間積の初期化)
被乗数倍数レジスタ3←
00000000(中間積の初期化)
【0050】
ステップ11 シフト回路5の入力データ
←00000000,1234567
8
(データ105 )
(データ111 )
シフト回路5のシフト量112 ←1
(シフト量制御回路8の出力デー
タ) アドレス制御回
路7の出力109 ←8(データ107 )
(記憶回路6のリードアドレス
) 記憶回路6の出力
110 ←00000008
←00000000,1234567
8
(データ105 )
(データ111 )
シフト回路5のシフト量112 ←1
(シフト量制御回路8の出力デー
タ) アドレス制御回
路7の出力109 ←8(データ107 )
(記憶回路6のリードアドレス
) 記憶回路6の出力
110 ←00000008
【0051】
ステップ12 中間積上位レジスタ1←0,00
00000
(シフト回路5
の出力106 上位のみ)
中間積下位レジスタ2←0,1234567
(シフト回路5の出力106
下位のみ) 被乗数倍
数レジスタ3←00000008(データ110 )
シフト回路5の入力デ
ータ
←00000008,01
234567 シフト
回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←7(デ
ータ107 ) 記憶
回路6の出力110 ←00000007
00000
(シフト回路5
の出力106 上位のみ)
中間積下位レジスタ2←0,1234567
(シフト回路5の出力106
下位のみ) 被乗数倍
数レジスタ3←00000008(データ110 )
シフト回路5の入力デ
ータ
←00000008,01
234567 シフト
回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←7(デ
ータ107 ) 記憶
回路6の出力110 ←00000007
【0052】
ステップ13 中間積上位レジスタ1←0,00
00000 中間積下
位レジスタ2←8,0123456
被乗数倍数レジスタ3←0000000
7 シフト回路5の入
力データ
←00000007,
80123456 シ
フト回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←6
記憶回路6の出力1
10 ←00000006
00000 中間積下
位レジスタ2←8,0123456
被乗数倍数レジスタ3←0000000
7 シフト回路5の入
力データ
←00000007,
80123456 シ
フト回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←6
記憶回路6の出力1
10 ←00000006
【0053】
ステップ14 中間積上位レジスタ1←0,00
00000 中間積下
位レジスタ2←7,8012345
被乗数倍数レジスタ3←0000000
6 シフト回路5の入
力データ
←00000006,
78012345 シ
フト回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←5
記憶回路6の出力1
10 ←00000005
00000 中間積下
位レジスタ2←7,8012345
被乗数倍数レジスタ3←0000000
6 シフト回路5の入
力データ
←00000006,
78012345 シ
フト回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←5
記憶回路6の出力1
10 ←00000005
【0054】
ステップ15 中間積上位レジスタ1←0,00
00000 中間積下
位レジスタ2←6,7801234
被乗数倍数レジスタ3←0000000
5 シフト回路5の入
力データ
←00000005,
67801234 シ
フト回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←4
記憶回路6の出力1
10 ←00000004
00000 中間積下
位レジスタ2←6,7801234
被乗数倍数レジスタ3←0000000
5 シフト回路5の入
力データ
←00000005,
67801234 シ
フト回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←4
記憶回路6の出力1
10 ←00000004
【0055】
ステップ16 中間積上位レジスタ1←0,00
00000 中間積下
位レジスタ2←5,6780123
被乗数倍数レジスタ3←0000000
4 シフト回路5の入
力データ
←00000004,
56780123 シ
フト回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←3
記憶回路6の出力1
10 ←00000003
00000 中間積下
位レジスタ2←5,6780123
被乗数倍数レジスタ3←0000000
4 シフト回路5の入
力データ
←00000004,
56780123 シ
フト回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←3
記憶回路6の出力1
10 ←00000003
【0056】
ステップ17 中間積上位レジスタ1←0,00
00000 中間積下
位レジスタ2←4,5678012
被乗数倍数レジスタ3←0000000
3 シフト回路5の入
力データ
←00000003,
45678012 シ
フト回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←2
記憶回路6の出力1
10 ←00000002
00000 中間積下
位レジスタ2←4,5678012
被乗数倍数レジスタ3←0000000
3 シフト回路5の入
力データ
←00000003,
45678012 シ
フト回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←2
記憶回路6の出力1
10 ←00000002
【0057】
ステップ18 中間積上位レジスタ1←0,00
00000 中間積下
位レジスタ2←3,4567801
被乗数倍数レジスタ3←0000000
2 シフト回路5の入
力データ
←00000002,
34567801 シ
フト回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←1
記憶回路6の出力1
10 ←00000001
00000 中間積下
位レジスタ2←3,4567801
被乗数倍数レジスタ3←0000000
2 シフト回路5の入
力データ
←00000002,
34567801 シ
フト回路5のシフト量112 ←1
アドレス制御回路7の出力109 ←1
記憶回路6の出力1
10 ←00000001
【0058】
ステップ19 中間積上位レジスタ1←0,00
00000 中間積下
位レジスタ2←2,3456780
被乗数倍数レジスタ3←0000000
1 シフト回路5の入
力データ
←00000001,
23456780 シ
フト回路5のシフト量112 ←1(演算の最後)
00000 中間積下
位レジスタ2←2,3456780
被乗数倍数レジスタ3←0000000
1 シフト回路5の入
力データ
←00000001,
23456780 シ
フト回路5のシフト量112 ←1(演算の最後)
【0
059】 ステップ20 中間積上位レジスタ1←0,00
00000(演算結果上位)
中間積下位レジスタ2←1,2345678(
演算結果下位)。 以上で1×12345678の演
算が終了し、結果が中間積上位レジスタ1と中間積下位
レジスタ2に求められた。 この演算では符号埋込みの考慮はしていない。
059】 ステップ20 中間積上位レジスタ1←0,00
00000(演算結果上位)
中間積下位レジスタ2←1,2345678(
演算結果下位)。 以上で1×12345678の演
算が終了し、結果が中間積上位レジスタ1と中間積下位
レジスタ2に求められた。 この演算では符号埋込みの考慮はしていない。
【0060】例2.乗数に0が出現する場合(被乗数=
321 ,乗数10002030) ステップ1 中間積上位レジスタ1←00000
000 中間積下位レジス
タ2←乗数00100020
被乗数倍数レジスタ3←被乗数00000321
書込みアドレス←1
加算回路4の出力105 ←0
0000000+000000321
321 ,乗数10002030) ステップ1 中間積上位レジスタ1←00000
000 中間積下位レジス
タ2←乗数00100020
被乗数倍数レジスタ3←被乗数00000321
書込みアドレス←1
加算回路4の出力105 ←0
0000000+000000321
【0061】
ステップ2 記憶回路6のワード1←00000
321(データ105 )
シフト回路5の出力106(上位のみ)←00000
321 中間積上位レジス
タ1←00000321
書込みアドレス←2
321(データ105 )
シフト回路5の出力106(上位のみ)←00000
321 中間積上位レジス
タ1←00000321
書込みアドレス←2
【0062】ステップ3〜ステップ
9 記憶回路6への書込み動作は例1と同様のため省
略
9 記憶回路6への書込み動作は例1と同様のため省
略
【0063】
ステップ10 記憶回路6のワード9←0000
2889 中間積上位
レジスタ1←00000000(中間積の初期化)
被乗数倍数レジスタ3←
00000000(中間積の初期化)
2889 中間積上位
レジスタ1←00000000(中間積の初期化)
被乗数倍数レジスタ3←
00000000(中間積の初期化)
【0064】
ステップ11 シフト回路5の入力データ
←00000000,1000203
0
(データ103 )
(データ111 )
シフト回路5のシフト量112 ←2(0の個数1
+1) アドレス制御
回路7の出力109 ←3(データ108 )
記憶回路6の出力110 ←
00000963
←00000000,1000203
0
(データ103 )
(データ111 )
シフト回路5のシフト量112 ←2(0の個数1
+1) アドレス制御
回路7の出力109 ←3(データ108 )
記憶回路6の出力110 ←
00000963
【0065】
ステップ12 中間積上位レジスタ1←00,0
00000
(シフト回路6の出
力106 の上位のみ)
中間積下位レジスタ2←00,100020
被乗数倍数レジスタ3←0
0000963 シフ
ト回路5の入力データ
←000
00963,00100020
(データ105 ) (データ111 )
シフト回路5のシフト
量112 ←2 アド
レス制御回路7の出力109 ←2
記憶回路6の出力110 ←00000
642
00000
(シフト回路6の出
力106 の上位のみ)
中間積下位レジスタ2←00,100020
被乗数倍数レジスタ3←0
0000963 シフ
ト回路5の入力データ
←000
00963,00100020
(データ105 ) (データ111 )
シフト回路5のシフト
量112 ←2 アド
レス制御回路7の出力109 ←2
記憶回路6の出力110 ←00000
642
【0066】
ステップ13 中間積上位レジスタ1←00,0
00009 中間積下
位レジスタ2←63,001000
被乗数倍数レジスタ3←0000064
2 シフト回路5の入
力データ
←00000651,
63001000
(データ
105 ) (データ111 )
シフト回路5のシフト量112 ←
4(0の個数3+1)
アドレス制御回路7の出力109 ←1
記憶回路6の出力110 ←00
000321
00009 中間積下
位レジスタ2←63,001000
被乗数倍数レジスタ3←0000064
2 シフト回路5の入
力データ
←00000651,
63001000
(データ
105 ) (データ111 )
シフト回路5のシフト量112 ←
4(0の個数3+1)
アドレス制御回路7の出力109 ←1
記憶回路6の出力110 ←00
000321
【0067】
ステップ14 中間積上位レジスタ1←0000
,0000 中間積下
位レジスタ2←0651,6300
被乗数倍数レジスタ3←0000032
1 シフト回路5の入
力データ
←00000321,
06516300
(データ
105 ) (データ111 )
シフト回路5のシフト量112 ←
1(演算の最後)
,0000 中間積下
位レジスタ2←0651,6300
被乗数倍数レジスタ3←0000032
1 シフト回路5の入
力データ
←00000321,
06516300
(データ
105 ) (データ111 )
シフト回路5のシフト量112 ←
1(演算の最後)
【0068】
ステップ15 中間積上位レジスタ1←0,00
00032(演算結果上位)
中間積下位レジスタ2←1,0651630(
演算結果下位)以上で321 ×10002030の演
算が終了し、結果が中間積上位レジスタ1と中間積下位
レジスタ2に求められた。例と同様符号埋込みの考慮は
していない。
00032(演算結果上位)
中間積下位レジスタ2←1,0651630(
演算結果下位)以上で321 ×10002030の演
算が終了し、結果が中間積上位レジスタ1と中間積下位
レジスタ2に求められた。例と同様符号埋込みの考慮は
していない。
【0069】
【発明の効果】以上のべた如く、本発明によれば、乗数
の桁に0が出現したときには、そのときの加算処理を省
略するようにしたので演算効率が向上するという効果が
ある。
の桁に0が出現したときには、そのときの加算処理を省
略するようにしたので演算効率が向上するという効果が
ある。
【図1】本発明の一実施例の回路図である。
【図2】従来の10進乗算器の回路図である。
1 中間積上位レジスタ
2 中間積下位レジスタ
3 被乗数倍数レジスタ
4 加算回路
5 シフト回路
6 記憶回路
7 アドレス制御回路
8 シフト量制御回路
Claims (1)
- 【請求項1】 中間積の上位をセットする中間積上位
レジスタと、乗数及び中間積の下位を択一的にセットす
る中間積下位レジスタと、被乗数の1〜9倍の値を予め
格納する記憶手段と、前記記憶手段の記憶出力をセット
する被乗数倍数レジスタと、前記中間積上位レジスタと
前記被乗数倍数レジスタとの出力を加算する加算手段と
、前記加算手段の出力または前記中間積上位レジスタ及
び前記中間積下位レジスタの両出力の一方を入力し、シ
フト量に応じてシフト制御するシフト手段と、前記中間
積下位レジスタの出力の下位桁から1以上連続して出現
する0の数に応じて前記シフト手段のシフト量を制御す
るシフト制御手段と、前記中間積下位レジスタの最下位
桁と前記シフト手段の最下位シフトアウト桁とを択一的
に入力し、前記中間積下位レジスタの最下位桁が0以外
のときはこの最下位桁の値を、0のときは前記最下位シ
フトアウト桁の値を、前記記憶手段のアドレスとして発
生するアドレス制御手段とを含むことを特徴とする10
進乗算器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1579691A JPH04242425A (ja) | 1991-01-16 | 1991-01-16 | 10進乗算器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1579691A JPH04242425A (ja) | 1991-01-16 | 1991-01-16 | 10進乗算器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04242425A true JPH04242425A (ja) | 1992-08-31 |
Family
ID=11898804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1579691A Pending JPH04242425A (ja) | 1991-01-16 | 1991-01-16 | 10進乗算器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04242425A (ja) |
-
1991
- 1991-01-16 JP JP1579691A patent/JPH04242425A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4525796A (en) | Pipelined operation unit for vector data | |
US6209017B1 (en) | High speed digital signal processor | |
JPS5862746A (ja) | 割算装置 | |
JPH05250146A (ja) | 整数累乗処理を行なうための回路及び方法 | |
JP3271120B2 (ja) | 2進数を高速乗算する装置 | |
JPH04242425A (ja) | 10進乗算器 | |
JPH05197525A (ja) | オペランドを否定するための否定方法及び否定回路 | |
JP2737933B2 (ja) | 除算装置 | |
JP2885197B2 (ja) | 演算処理装置及び演算処理方法 | |
JP2705162B2 (ja) | 演算処理装置 | |
JP2734438B2 (ja) | 乗算装置 | |
US3624375A (en) | Binary coded decimal to binary conversion apparatus | |
JP2552087B2 (ja) | 10進乗算処理装置 | |
JP2928027B2 (ja) | 十進二進変換回路 | |
JPS58151644A (ja) | デイジタル演算装置 | |
JPH03142527A (ja) | 十進乗算器 | |
JPS6115233A (ja) | 乗算器 | |
JPS62209621A (ja) | 乗算装置 | |
JP2624738B2 (ja) | 丸め処理方式 | |
JP3088956B2 (ja) | 演算装置 | |
JPS6058503B2 (ja) | デ−タ処理制御方式 | |
SU491946A1 (ru) | Устройство дл извлечени корн -ой степени | |
JPS5944656B2 (ja) | デイジタル微分解析機の積分方式 | |
JPH05165875A (ja) | ベクトル演算処理装置 | |
JPH04182731A (ja) | 演算方法及び演算装置 |