JPH0667851A - オーバーフロー検出機能付き乗算装置 - Google Patents
オーバーフロー検出機能付き乗算装置Info
- Publication number
- JPH0667851A JPH0667851A JP4219113A JP21911392A JPH0667851A JP H0667851 A JPH0667851 A JP H0667851A JP 4219113 A JP4219113 A JP 4219113A JP 21911392 A JP21911392 A JP 21911392A JP H0667851 A JPH0667851 A JP H0667851A
- Authority
- JP
- Japan
- Prior art keywords
- register
- output
- multiplier
- storing
- bit
- 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5332—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】 ハードウェアの増加を抑えて、高速のオーバ
ーフロー検出機能を備えた乗算装置の提供を目的とす
る。 【構成】 乗数を格納する乗数レジスタと、被乗数を格
納する被乗数レジスタと、前記乗数レジスタの出力値を
左又は右からサーチし、最初に1が立っているビット番
号数を出力するプライオリティエンコーダと、前記被乗
数レジスタの出力を前記プライオリティエンコーダの出
力値に従って所定方向へシフトするシフターと、加算結
果が格納される加算結果レジスタと、前記シフト手段の
出力と加算結果が格納される加算結果レジスタとの出力
とを加算する加算器と、前記プライオリティエンコーダ
の出力のビットパターンから所定のマスクパターンを出
力するマスクパターン発生器と、前記マスクパターン発
生器から出力されるマスクパターンと前記被乗数レジス
タの出力値の論理積演算を行うAND回路と、前記論理
積手段の出力と、前記加算手段から出力されるキャリー
成分の論理和演算を行うOR回路とからなるオーバーフ
ロー検出機能付き乗算装置。
ーフロー検出機能を備えた乗算装置の提供を目的とす
る。 【構成】 乗数を格納する乗数レジスタと、被乗数を格
納する被乗数レジスタと、前記乗数レジスタの出力値を
左又は右からサーチし、最初に1が立っているビット番
号数を出力するプライオリティエンコーダと、前記被乗
数レジスタの出力を前記プライオリティエンコーダの出
力値に従って所定方向へシフトするシフターと、加算結
果が格納される加算結果レジスタと、前記シフト手段の
出力と加算結果が格納される加算結果レジスタとの出力
とを加算する加算器と、前記プライオリティエンコーダ
の出力のビットパターンから所定のマスクパターンを出
力するマスクパターン発生器と、前記マスクパターン発
生器から出力されるマスクパターンと前記被乗数レジス
タの出力値の論理積演算を行うAND回路と、前記論理
積手段の出力と、前記加算手段から出力されるキャリー
成分の論理和演算を行うOR回路とからなるオーバーフ
ロー検出機能付き乗算装置。
Description
【0001】
【産業上の利用分野】本発明は、マイクロプロセッサや
データプロセッサに使用される乗算装置に関するもの
で、特に簡単なハードウェア構成で高速にオーバーフロ
ー検出を行う乗算装置に関する。
データプロセッサに使用される乗算装置に関するもの
で、特に簡単なハードウェア構成で高速にオーバーフロ
ー検出を行う乗算装置に関する。
【0002】
【従来の技術】図2は、従来の乗算装置の構成図であ
る。同図において、Yは被乗数を格納するための32ビ
ットのレジスタである。Xは乗数を格納するための32
ビットのレジスタであり最終的な演算結果が格納され
る。Zは乗算途中の演算結果を格納する累積加算のため
の32ビットレジスタである。ADDERはレジスタY
とZとの内容を加算する32ビットの加算器である。S
ELECTORは、X<31>が1のときはADDER
の出力値ADD<0:31>を出力し、X<31>が0
のときはレジスタZの内容Z<0:31>を出力する。
る。同図において、Yは被乗数を格納するための32ビ
ットのレジスタである。Xは乗数を格納するための32
ビットのレジスタであり最終的な演算結果が格納され
る。Zは乗算途中の演算結果を格納する累積加算のため
の32ビットレジスタである。ADDERはレジスタY
とZとの内容を加算する32ビットの加算器である。S
ELECTORは、X<31>が1のときはADDER
の出力値ADD<0:31>を出力し、X<31>が0
のときはレジスタZの内容Z<0:31>を出力する。
【0003】上記構成を有する従来の乗算装置の動作に
ついて以下に説明する。
ついて以下に説明する。
【0004】まず、Z<0>にADDERのCARRY
出力を書き込む。同時にZ<1:31>にSEL<0:
30>を、X<0>にセレクタのビットはX<1:31
>にSEL<0:30>を書き込む。これにより、X<
1:30>の内容が1ビット右にシフトする。
出力を書き込む。同時にZ<1:31>にSEL<0:
30>を、X<0>にセレクタのビットはX<1:31
>にSEL<0:30>を書き込む。これにより、X<
1:30>の内容が1ビット右にシフトする。
【0005】以上の動作を第3図のタイミング図を用い
て具体的に説明する。ここでは、6×133=798の
乗算処理が実行される。同図において、TIMEは実行
時間、Yは被乗数を格納するレジスタYの内容、Zは累
積結果の内容、Xは乗数の内容である。
て具体的に説明する。ここでは、6×133=798の
乗算処理が実行される。同図において、TIMEは実行
時間、Yは被乗数を格納するレジスタYの内容、Zは累
積結果の内容、Xは乗数の内容である。
【0006】E1は、レジスタYへの書き込みを許可す
る制御信号であり、E1=1のとき書き込み許可、E1
=0のときはレジスタYの値を保持する。
る制御信号であり、E1=1のとき書き込み許可、E1
=0のときはレジスタYの値を保持する。
【0007】E2は、レジスタZへの書き込みを許可す
る制御信号であり、E2=1のとき書き込み許可、E2
=0のときレジスタZはその内容を保持する。
る制御信号であり、E2=1のとき書き込み許可、E2
=0のときレジスタZはその内容を保持する。
【0008】E3は、レジスタXへの書き込みを許可す
る制御信号であり、E3=1のとき書き込みを許可し、
E3=0のときレジスタXはその内容を保持する。
る制御信号であり、E3=1のとき書き込みを許可し、
E3=0のときレジスタXはその内容を保持する。
【0009】例えば、TIME=00のとき、各レジス
タ、X,Y,Zの内容は不定である。E2を1に設定す
る。
タ、X,Y,Zの内容は不定である。E2を1に設定す
る。
【0010】TIME=01のとき、レジスタZに値0
が書き込まれる。さらに、E1を1に設定する。
が書き込まれる。さらに、E1を1に設定する。
【0011】TIME=02のとき、レジスタYに被乗
数6(0000…0110)が書き込まれる。そしてE
3=1に設定する。
数6(0000…0110)が書き込まれる。そしてE
3=1に設定する。
【0012】TIME=03のとき、レジスタXに乗数
133(0000…010000101)が書き込まれ
る。この時間から乗算命令が実行される。乗算中は、E
2およびE3が1に設定される。X<31>の値は1な
のでADDERは、レジスタYとZとの内容を加算して
結果(0000…0110)を出力する。
133(0000…010000101)が書き込まれ
る。この時間から乗算命令が実行される。乗算中は、E
2およびE3が1に設定される。X<31>の値は1な
のでADDERは、レジスタYとZとの内容を加算して
結果(0000…0110)を出力する。
【0013】TIME=04のとき、Z<1:31>に
ADDERでの加算結果SEL<0:30>の値が書き
込まれる。次にレジスタXの値が右シフトされX<0>
に加算結果であるSEL<0:31>のSEL<31>
の値が書き込まれる。
ADDERでの加算結果SEL<0:30>の値が書き
込まれる。次にレジスタXの値が右シフトされX<0>
に加算結果であるSEL<0:31>のSEL<31>
の値が書き込まれる。
【0014】この時、X<31>=0なので、SELE
CTORはレジスタZの値をそのまま出力する。
CTORはレジスタZの値をそのまま出力する。
【0015】以上の動作を32回繰り返す。
【0016】TIME=35のとき、レジスタXに乗算
結果の値である798(0000…11000111
0)が格納される。
結果の値である798(0000…11000111
0)が格納される。
【0017】ここで、レジスタZに格納された値は乗算
結果の上位32ビットである。
結果の上位32ビットである。
【0018】上記説明した様に、従来の乗算装置では、
乗数の値が0のときもシフト動作を実行する構造になっ
ているので無駄な演算が多くなるという問題があった。
即ち上記の場合、データの種類にかかわらず演算は32
回繰り返して実行されるため実行時間が長くかかるとい
う問題があった。
乗数の値が0のときもシフト動作を実行する構造になっ
ているので無駄な演算が多くなるという問題があった。
即ち上記の場合、データの種類にかかわらず演算は32
回繰り返して実行されるため実行時間が長くかかるとい
う問題があった。
【0019】そこで従来では、実行時間を速くするた
め、例えば第4図に示す構成を有する乗算装置が知られ
ている。
め、例えば第4図に示す構成を有する乗算装置が知られ
ている。
【0020】同図において、QRは乗数を格納する32
ビットのレジスタである。PREは、QRの出力のビッ
トを左からサーチしてはじめて1が立っているビットの
番号を求め、その番号を表わすビット列の各ビットを反
転した値を出力するプライオリティエンコーダである。
QRはPREによりサーチされた最初に1が立っている
ビットをリセットする機能を有している。またQRは、
QR自身の値が0になったことを検出する機能を有して
おりそれを外部へ伝えるためQRZERO信号を出力す
る。
ビットのレジスタである。PREは、QRの出力のビッ
トを左からサーチしてはじめて1が立っているビットの
番号を求め、その番号を表わすビット列の各ビットを反
転した値を出力するプライオリティエンコーダである。
QRはPREによりサーチされた最初に1が立っている
ビットをリセットする機能を有している。またQRは、
QR自身の値が0になったことを検出する機能を有して
おりそれを外部へ伝えるためQRZERO信号を出力す
る。
【0021】Yは、PREからの出力を保持する5ビッ
トのレジスタである。Zは、被乗数を格納する32ビッ
トのレジスタである。SHFは、Zの出力をYの出力で
示されるビット数だけ左へシフトするシフターである。
XLは、シフターの出力を格納する32ビットのレジス
タ、XRは、乗算演算の累積加算結果を格納する32ビ
ットのレジスタである。ADDERは、XRとXLとの
内容を加算する加算器である。加算器ADDERの出力
はXRに入力される。
トのレジスタである。Zは、被乗数を格納する32ビッ
トのレジスタである。SHFは、Zの出力をYの出力で
示されるビット数だけ左へシフトするシフターである。
XLは、シフターの出力を格納する32ビットのレジス
タ、XRは、乗算演算の累積加算結果を格納する32ビ
ットのレジスタである。ADDERは、XRとXLとの
内容を加算する加算器である。加算器ADDERの出力
はXRに入力される。
【0022】ORはシフターSHFから出力されたシフ
トアウトビット<0:31>とADDERから出力され
たCARRY信号の論理和演算を行ない、オーバーフロ
ーの発生を外部へ伝える機能を持つ。
トアウトビット<0:31>とADDERから出力され
たCARRY信号の論理和演算を行ない、オーバーフロ
ーの発生を外部へ伝える機能を持つ。
【0023】次に、QRの構成例を第5図を用いて説明
する。同図において、QREGは32ビットのレジスタ
である。INVはPREから出力されたRESET信号
PRE<0:4>の値を反転するインバータである。M
SKBはインバータINVの出力により示されるビット
番号の値のみ0に設定され、それ以外のビットは1に設
定され出力するマスク発生器である。ANDは、QRE
Gの出力と、MSKBとの各ビット同士の論理積を実行
する演算器である。ZDETはレジスタQREGの値が
0であることを検出する0検出回路である。
する。同図において、QREGは32ビットのレジスタ
である。INVはPREから出力されたRESET信号
PRE<0:4>の値を反転するインバータである。M
SKBはインバータINVの出力により示されるビット
番号の値のみ0に設定され、それ以外のビットは1に設
定され出力するマスク発生器である。ANDは、QRE
Gの出力と、MSKBとの各ビット同士の論理積を実行
する演算器である。ZDETはレジスタQREGの値が
0であることを検出する0検出回路である。
【0024】第6図は第5図に示されるQRの構成要素
であるマスク発生器MSKBの動作を示した真理値表で
ある。
であるマスク発生器MSKBの動作を示した真理値表で
ある。
【0025】まず入力(input )として、プライオリテ
ィエンコーダPREにより最初の1が立っているビット
番号を示す値がMSKBに供給される。MSKBの出力
(output)は図示の様に、入力(input )のビット番号
の部分のみが0に設定される。
ィエンコーダPREにより最初の1が立っているビット
番号を示す値がMSKBに供給される。MSKBの出力
(output)は図示の様に、入力(input )のビット番号
の部分のみが0に設定される。
【0026】次に、MSKBとQREGとの論理積が実
行され、結果はQREGへ再び書き込まれる。これによ
り、QREG内のサーチされたビットが0となる。
行され、結果はQREGへ再び書き込まれる。これによ
り、QREG内のサーチされたビットが0となる。
【0027】次に、PREの動作を第7図を用いて説明
する。まず、PREの入力としてinput に示される値が
入力される。同図において“X”は“0”でも“1”で
もいずれの値でも良い。不定であることを示す。そし
て、PREは、入力input を左側からサーチし、初めて
1が立っているビット番号を示す値の反転値(output)
を出力する。PREはこの動作を1サイクル内で実行す
る。
する。まず、PREの入力としてinput に示される値が
入力される。同図において“X”は“0”でも“1”で
もいずれの値でも良い。不定であることを示す。そし
て、PREは、入力input を左側からサーチし、初めて
1が立っているビット番号を示す値の反転値(output)
を出力する。PREはこの動作を1サイクル内で実行す
る。
【0028】次にシフターSHFの動作を第8図を用い
て説明する。
て説明する。
【0029】シフターSHFの入力としてシフトカウン
ト数(count )が入力される。シフトカウント数はレジ
スタYから供給される。シフトされるデータを2進数表
示した各ビットをd00,d11,…,d30,d31とすると
SHFはinput をcount 数に従って左へシフトさせ図示
の様にシフト結果(output)を出力する。outputの右側
にはシフトカウント数と同じビット数の“0”を設定す
る。
ト数(count )が入力される。シフトカウント数はレジ
スタYから供給される。シフトされるデータを2進数表
示した各ビットをd00,d11,…,d30,d31とすると
SHFはinput をcount 数に従って左へシフトさせ図示
の様にシフト結果(output)を出力する。outputの右側
にはシフトカウント数と同じビット数の“0”を設定す
る。
【0030】上記した構成を有する従来の乗算装置の乗
算方法を第9図を用いて説明する。ここでは、32ビッ
ト整数の乗算について説明する。同図において、
(a00,a01,…,a30,a31)は、被乗数を2進数表
示した各ビットを示す。(b00,b01,…,b30,
b31)は、乗数を2進数表示した各ビットを示す。
算方法を第9図を用いて説明する。ここでは、32ビッ
ト整数の乗算について説明する。同図において、
(a00,a01,…,a30,a31)は、被乗数を2進数表
示した各ビットを示す。(b00,b01,…,b30,
b31)は、乗数を2進数表示した各ビットを示す。
【0031】被乗数および乗数の入力値として32ビッ
ト数を入力する。
ト数を入力する。
【0032】次に、乗算は被乗数にb31を乗じた結果
と、被乗数を1ビット左シフトした結果に次のb30を乗
じた結果と、これらをb00まで32回繰り返しそれぞれ
の結果を加算して答が得られる。
と、被乗数を1ビット左シフトした結果に次のb30を乗
じた結果と、これらをb00まで32回繰り返しそれぞれ
の結果を加算して答が得られる。
【0033】加算結果は64ビットで得られるが、各乗
算の累積結果レジスタが32ビットである場合、乗算結
果の下位32ビットだけが累積結果レジスタにストアさ
れる。この場合乗算結果としての上位32ビット内に1
が立つとオーバーフローエラーになる。
算の累積結果レジスタが32ビットである場合、乗算結
果の下位32ビットだけが累積結果レジスタにストアさ
れる。この場合乗算結果としての上位32ビット内に1
が立つとオーバーフローエラーになる。
【0034】ところで、第9図において、乗数(b00…
b31)の中で値が0であるビットに関する乗算処理は実
行する必要はない。乗数のビットが0のとき、そのビッ
トと被乗数を掛けた結果は0であるから累積加算する必
要はない。従って、乗数のビットで値がのビットのみ乗
算処理を行なえば、それだけ実行クロック数が少なくて
すむ。
b31)の中で値が0であるビットに関する乗算処理は実
行する必要はない。乗数のビットが0のとき、そのビッ
トと被乗数を掛けた結果は0であるから累積加算する必
要はない。従って、乗数のビットで値がのビットのみ乗
算処理を行なえば、それだけ実行クロック数が少なくて
すむ。
【0035】以下、第4図の乗算装置を用いて、乗算6
×133=798を行った例を示す。
×133=798を行った例を示す。
【0036】図中で、TIMEは、実行時間を表わす。
【0037】Z は、被乗数を格納するレジスタの
内容を表わす。
内容を表わす。
【0038】QR は、乗数を格納するレジスタの内
容を表わす。
容を表わす。
【0039】Y は、乗数のビットを左からサーチ
して初めて1になるビット番号の反転が入っている。
して初めて1になるビット番号の反転が入っている。
【0040】XL は、シフターSHFの出力結果で
ある。
ある。
【0041】XR は、累積加算結果である。
【0042】ZE は、Zの書き込みを許可する信号
であり、ZE=1のとき書き込み、0のときZEは前の
値を保持する。
であり、ZE=1のとき書き込み、0のときZEは前の
値を保持する。
【0043】QRE は、QRの書き込みを許可する信
号。QRE=1のとき書き込み、0のときQRは前の値
を保持する。
号。QRE=1のとき書き込み、0のときQRは前の値
を保持する。
【0044】YE は、Yの書き込みを許可する信
号。YE=1のとき書き込み、0のときYEは前の値を
保持する。
号。YE=1のとき書き込み、0のときYEは前の値を
保持する。
【0045】XLE は、XLの書き込みを許可する信
号。XLE=1のとき書き込み、0のときXLは前の値
を保持する。
号。XLE=1のとき書き込み、0のときXLは前の値
を保持する。
【0046】XRE は、XRの書き込みを許可する信
号。XRE=1のとき書き込み、0のときXRは前の値
を保持する。
号。XRE=1のとき書き込み、0のときXRは前の値
を保持する。
【0047】時間TIMEに従って乗算処理の流れを説
明する。
明する。
【0048】TIME00:このときレジスタの内容は
不定である。ZE=1にする。
不定である。ZE=1にする。
【0049】TIME01:Zに被乗数6(0000…
0110)が書き込まれる。
0110)が書き込まれる。
【0050】QRE=1にする。
【0051】TIME02:QRに乗数133(000
0…10000101)が書き込まれる。XRE=1に
する。
0…10000101)が書き込まれる。XRE=1に
する。
【0052】TIME03:TMPRに初期値0が書き
込まれる。QRE=1にしてサーチされたQRのビット
をリセットする。YE=1にする。
込まれる。QRE=1にしてサーチされたQRのビット
をリセットする。YE=1にする。
【0053】TIME04:QRがリセットされる。R
LTにビット番号(00111)が書き込まれる。QR
E=1にしてサーチされたQRのビットをリセットす
る。YE=1にしてビット番号YEに書き込む。
LTにビット番号(00111)が書き込まれる。QR
E=1にしてサーチされたQRのビットをリセットす
る。YE=1にしてビット番号YEに書き込む。
【0054】XLE=1にして、XLにZをYに示され
たカウント数だけシフトして書き込む。
たカウント数だけシフトして書き込む。
【0055】TIME05:QRがリセットされる。Y
にビット番号(00111)が書き込まれる。QRE=
1にしてサーチされたQRのビットをリセットする。X
Lにシフト結果が書き込まれる。
にビット番号(00111)が書き込まれる。QRE=
1にしてサーチされたQRのビットをリセットする。X
Lにシフト結果が書き込まれる。
【0056】時間05,06,07で乗算命令を実行て
いる。シフターSHF、プライオリティエンコーダPR
E、加算器ADDERが同時に動作している。乗算中に
QRが0になるとQR内のZDETはQRが0であるこ
とを示す信号(QRZERO)を1にする。これは乗算
が終了したことを意味する。
いる。シフターSHF、プライオリティエンコーダPR
E、加算器ADDERが同時に動作している。乗算中に
QRが0になるとQR内のZDETはQRが0であるこ
とを示す信号(QRZERO)を1にする。これは乗算
が終了したことを意味する。
【0057】この様に従来の乗算装置は、第9図に示す
様に乗数のビット0(b00)が1であれば、PREは
(11111)を出力する(第7図)。(11111)
が入力されるとSHFは(a00…a31)を31ビット左
シフトする(第8図)。シフトした結果は累積レジスタ
(TMPR)に累積される。b00が0であればこのビッ
トに関する演算は行われない。同様にPREがサーチし
た(b00…b31)中の値が1となるビットの番号によっ
て、第7図に従った結果を出力して、シフターSHFは
第8図に従ってシフトし、結果を累積加算することによ
って乗算を実現している。
様に乗数のビット0(b00)が1であれば、PREは
(11111)を出力する(第7図)。(11111)
が入力されるとSHFは(a00…a31)を31ビット左
シフトする(第8図)。シフトした結果は累積レジスタ
(TMPR)に累積される。b00が0であればこのビッ
トに関する演算は行われない。同様にPREがサーチし
た(b00…b31)中の値が1となるビットの番号によっ
て、第7図に従った結果を出力して、シフターSHFは
第8図に従ってシフトし、結果を累積加算することによ
って乗算を実現している。
【0058】次に上記構成および動作を有する高速化さ
れた従来の乗算装置におけるオーバーフローの検出につ
いて以下に説明する。
れた従来の乗算装置におけるオーバーフローの検出につ
いて以下に説明する。
【0059】乗算結果は32ビット×32ビットの場
合、64ビットで得られる。しかし、結果を格納する場
所のビット数が32ビットである場合、乗算結果が32
ビットで表現できなければオーバーフローエラーとな
り、これを検出する手段が必要となる。図2に示した従
来の乗算装置の場合、乗算結果の上位32ビットはレジ
スタZへ、下位32ビットはレジスタXへ格納されるの
で、この乗算装置の場合、乗算後にレジスタZの各ビッ
トに一つでも1が存在するとオーバーフローが生じたこ
とになる。
合、64ビットで得られる。しかし、結果を格納する場
所のビット数が32ビットである場合、乗算結果が32
ビットで表現できなければオーバーフローエラーとな
り、これを検出する手段が必要となる。図2に示した従
来の乗算装置の場合、乗算結果の上位32ビットはレジ
スタZへ、下位32ビットはレジスタXへ格納されるの
で、この乗算装置の場合、乗算後にレジスタZの各ビッ
トに一つでも1が存在するとオーバーフローが生じたこ
とになる。
【0060】即ち、被乗数および乗数が32ビット×3
2ビットである乗算の結果は64ビットで得られるが、
結果を格納する場所のビット数が32ビットの場合、結
果が32ビットで表現できなければ、オーバーフローエ
ラーを検出する必要がある。例えば、図2に示した従来
の乗算装置では、乗算結果の上位32ビットがZに、下
位32ビットがXに得られるので、乗算演算後にZを検
査して、0でなければオーバーフローとなる。
2ビットである乗算の結果は64ビットで得られるが、
結果を格納する場所のビット数が32ビットの場合、結
果が32ビットで表現できなければ、オーバーフローエ
ラーを検出する必要がある。例えば、図2に示した従来
の乗算装置では、乗算結果の上位32ビットがZに、下
位32ビットがXに得られるので、乗算演算後にZを検
査して、0でなければオーバーフローとなる。
【0061】図4の場合、乗算結果レジスタが32ビッ
トなので、図2のような検出手段が使用できない。
トなので、図2のような検出手段が使用できない。
【0062】図4の場合、オーバーフローが生じる原因
としては以下の様な場合が考えられる。
としては以下の様な場合が考えられる。
【0063】(1)被乗数をシフトしたとき結果が32
ビットで表現できなかった場合。即ち、シフト動作によ
って桁あふれが生じた場合(この場合はシフターからシ
フトアウトビットを出力させる)。
ビットで表現できなかった場合。即ち、シフト動作によ
って桁あふれが生じた場合(この場合はシフターからシ
フトアウトビットを出力させる)。
【0064】(2)被乗数のシフト結果を累積加算した
とき、キャリー出力が生じた場合。そして、図4に示す
従来の乗算装置では、これらのオーバーフローを検出す
るため、上記シフトアウトビット出力と加算器ADDE
Rからのキャリーとの論理和(OR)を計算することで
オーバーフローが発生したことを検出していた。
とき、キャリー出力が生じた場合。そして、図4に示す
従来の乗算装置では、これらのオーバーフローを検出す
るため、上記シフトアウトビット出力と加算器ADDE
Rからのキャリーとの論理和(OR)を計算することで
オーバーフローが発生したことを検出していた。
【0065】図4に示される従来のオーバーフロー検出
機能を有する乗算装置では、シフターSHFからは、シ
フトアウトビット<0:31>がOR回路の一方の入力
へ送られる。また、加算器ADDERからはキャリービ
ットがOR回路の他方の入力へ送られる。OR回路はこ
れらの論理和を実行し、オーバーフローの発生を検出し
ていた。これを図9について説明すると、同図におい
て、“result[0:31]”と書かれた部分より左側、即ち乗
算結果上位32ビット内に1が出現すればオーバーフロ
ーである。検出方法は、以下のまたはが成立すると
オーバーフローが発生したことになる。
機能を有する乗算装置では、シフターSHFからは、シ
フトアウトビット<0:31>がOR回路の一方の入力
へ送られる。また、加算器ADDERからはキャリービ
ットがOR回路の他方の入力へ送られる。OR回路はこ
れらの論理和を実行し、オーバーフローの発生を検出し
ていた。これを図9について説明すると、同図におい
て、“result[0:31]”と書かれた部分より左側、即ち乗
算結果上位32ビット内に1が出現すればオーバーフロ
ーである。検出方法は、以下のまたはが成立すると
オーバーフローが発生したことになる。
【0066】シフトアウトビット(シフトして左側に
はみ出した部分)に1が存在する場合。
はみ出した部分)に1が存在する場合。
【0067】累積加算中に加算器のキャリー出力(桁
上げ)が1になった場合。
上げ)が1になった場合。
【0068】前述した様に図2に示した従来の乗算装置
では、乗算結果が64ビットにより得られる。従って上
位32ビットの内容を調べることによりオーバーフロー
の検出は容易にできる。しかし、この乗算装置は、乗算
処理に多くの時間がかかるという欠点がある。
では、乗算結果が64ビットにより得られる。従って上
位32ビットの内容を調べることによりオーバーフロー
の検出は容易にできる。しかし、この乗算装置は、乗算
処理に多くの時間がかかるという欠点がある。
【0069】
【発明が解決しようとする課題】以上説明した様に、従
来の乗算装置では、シフターからシフトアウトビットを
出力するためシフターの面積が倍になり、このためハー
ドウェアが大きくなるという問題があった。さらに、シ
フターの負荷容量が増加し、このためシフター自身の動
作速度が遅くなるという欠点があった。
来の乗算装置では、シフターからシフトアウトビットを
出力するためシフターの面積が倍になり、このためハー
ドウェアが大きくなるという問題があった。さらに、シ
フターの負荷容量が増加し、このためシフター自身の動
作速度が遅くなるという欠点があった。
【0070】本発明は、上記した従来の乗算装置の有す
る課題を解決するためのもので、その目的は、ハードウ
ェアを増大することなく高速に乗算演算を行ない、かつ
乗算時のオーバーフローを高速に検出することのできる
乗算装置を提供することにある。
る課題を解決するためのもので、その目的は、ハードウ
ェアを増大することなく高速に乗算演算を行ない、かつ
乗算時のオーバーフローを高速に検出することのできる
乗算装置を提供することにある。
【0071】
【課題を解決するための手段】前記課題を解決するため
に、本発明の請求項1に記載のオーバーフロー検出機能
付き乗算装置は、乗数を格納する乗数レジスタと、被乗
数を格納する被乗数レジスタと、前記乗数レジスタの最
上位ビット又は最下位ビットからサーチし最初に1が立
っているビット番号数を出力する検出手段と、前記被乗
数レジスタの出力を前記検出手段の出力値に従って所定
方向へシフトするシフト手段と、加算結果が格納される
加算結果レジスタと、前記シフト手段の出力と加算結果
が格納される加算結果レジスタとの出力とを加算する加
算手段と、前記検出手段の出力のビットパターンから所
定のマスクパターンを出力するマスクパターン発生手段
と、前記マスクパターン発生手段から出力されるマスク
パターンと前記被乗数レジスタの出力値の論理積演算を
行う論理積手段と、前記論理積手段の出力と、前記加算
手段から出力されるキャリー成分の論理和演算を行う論
理和手段とから構成されることを特徴としている。
に、本発明の請求項1に記載のオーバーフロー検出機能
付き乗算装置は、乗数を格納する乗数レジスタと、被乗
数を格納する被乗数レジスタと、前記乗数レジスタの最
上位ビット又は最下位ビットからサーチし最初に1が立
っているビット番号数を出力する検出手段と、前記被乗
数レジスタの出力を前記検出手段の出力値に従って所定
方向へシフトするシフト手段と、加算結果が格納される
加算結果レジスタと、前記シフト手段の出力と加算結果
が格納される加算結果レジスタとの出力とを加算する加
算手段と、前記検出手段の出力のビットパターンから所
定のマスクパターンを出力するマスクパターン発生手段
と、前記マスクパターン発生手段から出力されるマスク
パターンと前記被乗数レジスタの出力値の論理積演算を
行う論理積手段と、前記論理積手段の出力と、前記加算
手段から出力されるキャリー成分の論理和演算を行う論
理和手段とから構成されることを特徴としている。
【0072】また、請求項4に記載のオーバーフロー検
出機能付き乗算装置は、乗数を格納する乗数レジスタ
と、被乗数を格納する被乗数レジスタと、前記乗数レジ
スタの最上位ビット又は最下位ビットからサーチし最初
に1が立っているビット番号数を出力する検出手段と、
前記検出手段の内容を一時的に格納する検出結果格納手
段と、前記被乗数レジスタの出力を前記検出結果格納手
段の値に従って所定方向へシフトするシフト手段と、前
記シフト手段の内容を一時的に格納するシフト結果格納
手段と、加算結果が格納される加算結果レジスタと、前
記シフト結果格納手段の出力と加算結果が格納される加
算結果レジスタとの出力とを加算する加算手段と、前記
検出手段の出力のビットパターンから所定のマスクパタ
ーンを出力するマスクパターン発生手段と、前記マスク
パターン発生手段から出力されるマスクパターンと前記
被乗数レジスタの出力値の論理積演算を行う論理積手段
と、前記論理積手段の出力と、前記加算手段から出力さ
れるキャリー成分の論理和演算を行う論理和手段とから
構成されることを特徴としている。
出機能付き乗算装置は、乗数を格納する乗数レジスタ
と、被乗数を格納する被乗数レジスタと、前記乗数レジ
スタの最上位ビット又は最下位ビットからサーチし最初
に1が立っているビット番号数を出力する検出手段と、
前記検出手段の内容を一時的に格納する検出結果格納手
段と、前記被乗数レジスタの出力を前記検出結果格納手
段の値に従って所定方向へシフトするシフト手段と、前
記シフト手段の内容を一時的に格納するシフト結果格納
手段と、加算結果が格納される加算結果レジスタと、前
記シフト結果格納手段の出力と加算結果が格納される加
算結果レジスタとの出力とを加算する加算手段と、前記
検出手段の出力のビットパターンから所定のマスクパタ
ーンを出力するマスクパターン発生手段と、前記マスク
パターン発生手段から出力されるマスクパターンと前記
被乗数レジスタの出力値の論理積演算を行う論理積手段
と、前記論理積手段の出力と、前記加算手段から出力さ
れるキャリー成分の論理和演算を行う論理和手段とから
構成されることを特徴としている。
【0073】また、請求項6に記載のオーバーフロー検
出機能付き乗算装置は、請求項1および4に記載の乗算
装置において、前記乗数レジスタは、前記検出手段の出
力値に基づいて前記所定のパターンとは異なるパターン
を出力させる第二のマスクパターン発生手段と、前記乗
数値を格納する乗数格納レジスタと、前記乗数格納レジ
スタと前記第二のマスクパターン発生手段との論理積演
算を行う乗数論理積演算手段とから構成され、該乗数レ
ジスタは該乗数格納レジスタの値がゼロになったことを
検出する機能を有することを特徴としている。
出機能付き乗算装置は、請求項1および4に記載の乗算
装置において、前記乗数レジスタは、前記検出手段の出
力値に基づいて前記所定のパターンとは異なるパターン
を出力させる第二のマスクパターン発生手段と、前記乗
数値を格納する乗数格納レジスタと、前記乗数格納レジ
スタと前記第二のマスクパターン発生手段との論理積演
算を行う乗数論理積演算手段とから構成され、該乗数レ
ジスタは該乗数格納レジスタの値がゼロになったことを
検出する機能を有することを特徴としている。
【0074】
【作用】上記構成を有するオーバーフロー検出機能付き
乗算装置では、検出手段(例えばプライオリティエンコ
ーダ)からの出力値から、所定のビットパターンを持つ
マスクパターンを出力し、被乗数とのAND演算を行
い、その演算結果と加算器からのキャリー出力値とのO
R演算を行ない、高速オーバーフロー検出を行ってい
る。また、該マスクパターンの反転値である反転マスク
パターンを乗数のリセットに使用することも可能なので
オーバーフロー検出器を簡単なハードウェア構成で実現
することができる。
乗算装置では、検出手段(例えばプライオリティエンコ
ーダ)からの出力値から、所定のビットパターンを持つ
マスクパターンを出力し、被乗数とのAND演算を行
い、その演算結果と加算器からのキャリー出力値とのO
R演算を行ない、高速オーバーフロー検出を行ってい
る。また、該マスクパターンの反転値である反転マスク
パターンを乗数のリセットに使用することも可能なので
オーバーフロー検出器を簡単なハードウェア構成で実現
することができる。
【0075】
【実施例】以下、本発明のオーバーフロー検出機能付乗
算装置の実施例を図面を参照しながら説明する。
算装置の実施例を図面を参照しながら説明する。
【0076】第1図は、本発明の乗算装置の構成図であ
る。同図において、QRは乗数を格納する32ビットの
レジスタ、PREはQRからの出力の全ビットをサーチ
して最初に1が立っているビット番号を求め、その番号
を表わすビット列の各ビットを反転した値を出力するプ
ライオリティエンコーダである。また、QRはPREか
ら出力されたリセット信号RESETにより、PREに
よりサーチされた最初の1が立っているビットをリセッ
ト(0にする)する機能を有している。さらに、QRは
QR自身の値が0になったことを検出する機能を有して
おり、それを外部へ伝えるためQRZERO信号を出力
する。LLTは被乗数を格納する32ビットのレジスタ
である。SHFはPREから出力されるビット数に従っ
てLLTの内容を左へシフトするシフターである。TM
PRは加算器ADDERの出力を累積して蓄積するレジ
スタであり、ADDERはSHFからの出力値とTMP
Rからの出力値を加算し、その結果をTMPRへ格納す
る。
る。同図において、QRは乗数を格納する32ビットの
レジスタ、PREはQRからの出力の全ビットをサーチ
して最初に1が立っているビット番号を求め、その番号
を表わすビット列の各ビットを反転した値を出力するプ
ライオリティエンコーダである。また、QRはPREか
ら出力されたリセット信号RESETにより、PREに
よりサーチされた最初の1が立っているビットをリセッ
ト(0にする)する機能を有している。さらに、QRは
QR自身の値が0になったことを検出する機能を有して
おり、それを外部へ伝えるためQRZERO信号を出力
する。LLTは被乗数を格納する32ビットのレジスタ
である。SHFはPREから出力されるビット数に従っ
てLLTの内容を左へシフトするシフターである。TM
PRは加算器ADDERの出力を累積して蓄積するレジ
スタであり、ADDERはSHFからの出力値とTMP
Rからの出力値を加算し、その結果をTMPRへ格納す
る。
【0077】そして乗算演算時のオーバーフローを検出
するため、本実施例の乗算装置は、マスク発生器MSK
A、被乗数LLTとMSKAの出力との論理積をとる論
理演算器AND、およびANDの出力と加算器ADDE
Rからのキャリー出力のOR演算を行なう演算器ORか
ら構成されるオーバーフロー検出器OVFDが付加され
ている。
するため、本実施例の乗算装置は、マスク発生器MSK
A、被乗数LLTとMSKAの出力との論理積をとる論
理演算器AND、およびANDの出力と加算器ADDE
Rからのキャリー出力のOR演算を行なう演算器ORか
ら構成されるオーバーフロー検出器OVFDが付加され
ている。
【0078】第11図は、MSKAの動作を示した図で
ある。同図において、出力(output)が1となる部分
は、入力(input )に加えられたシフト数だけシフトし
た場合に左側にはみ出る部分を示している。このMSK
Aで得られるマスクパターンと、被乗数であるLLT内
の各ビットとの論理積をANDにて計算し、結果として
得られるビット列の中に一つでも1が存在すればシフト
アウトビット列内に1が存在することがわかる。この様
に本実施例の乗算装置のオーバーフロー検出機能は、A
NDの出力とADDERからのキャリー出力とのOR演
算をORにて行なうことにより、乗算中にオーバーフロ
ーが発生したことを検出できる。乗算中にオーバーフロ
ーが発生すると、ORの出力OVFの値が1となる。乗
算命令の実行中にOVFの値が一回でも1となると、演
算結果は32ビットで表現できないためオーバーフロー
の発生を検出することができる。
ある。同図において、出力(output)が1となる部分
は、入力(input )に加えられたシフト数だけシフトし
た場合に左側にはみ出る部分を示している。このMSK
Aで得られるマスクパターンと、被乗数であるLLT内
の各ビットとの論理積をANDにて計算し、結果として
得られるビット列の中に一つでも1が存在すればシフト
アウトビット列内に1が存在することがわかる。この様
に本実施例の乗算装置のオーバーフロー検出機能は、A
NDの出力とADDERからのキャリー出力とのOR演
算をORにて行なうことにより、乗算中にオーバーフロ
ーが発生したことを検出できる。乗算中にオーバーフロ
ーが発生すると、ORの出力OVFの値が1となる。乗
算命令の実行中にOVFの値が一回でも1となると、演
算結果は32ビットで表現できないためオーバーフロー
の発生を検出することができる。
【0079】以下に上記した実施例における乗算装置を
マイクロプログラム制御により実現する場合の構成例を
第12図を用いて説明する。
マイクロプログラム制御により実現する場合の構成例を
第12図を用いて説明する。
【0080】同図において、MROMはマイクロ命令を
格納する読みだし専用メモリ、MIRはMROMから読
み出したマイクロ命令を保持するレジスタ、RARはマ
イクロ命令のアドレスを格納するレジスタ、JUMPR
はマイクロ命令の分岐アドレスを格納するレジスタ、S
ELはRARとJUMPRを選択してMROMに供給す
るためのセレクタ、INCはマイクロ命令のアドレスを
カウントアップする、SADRは乗算命令の先頭アドレ
スを提供する信号、ENDは命令の実行が終わったこと
を示す信号、MULはEND信号によりINCとSAD
Rを選択してRARに供給するセレクタ本発明の乗算
器、GRは演算するデータや演算した結果を格納するレ
ジスタ群、FLGはオーバーフローなどの情報を格納す
るフラグである。
格納する読みだし専用メモリ、MIRはMROMから読
み出したマイクロ命令を保持するレジスタ、RARはマ
イクロ命令のアドレスを格納するレジスタ、JUMPR
はマイクロ命令の分岐アドレスを格納するレジスタ、S
ELはRARとJUMPRを選択してMROMに供給す
るためのセレクタ、INCはマイクロ命令のアドレスを
カウントアップする、SADRは乗算命令の先頭アドレ
スを提供する信号、ENDは命令の実行が終わったこと
を示す信号、MULはEND信号によりINCとSAD
Rを選択してRARに供給するセレクタ本発明の乗算
器、GRは演算するデータや演算した結果を格納するレ
ジスタ群、FLGはオーバーフローなどの情報を格納す
るフラグである。
【0081】上記構成を有するマイクロプログラム制御
により動作する乗算装置の動作を以下に説明する。
により動作する乗算装置の動作を以下に説明する。
【0082】まず、前の命令の実行が終わるとENDが
1になり、次の命令(乗算命令)のアドレスがSADR
に供給される。次に、乗算命令のアドレスがRARに書
き込まれて乗算命令のマイクロ命令群がMROMから読
み出されて順次実行される。乗算命令の実行中はまず、
乗数と被乗数がGRからMULに書き込まれる。そし
て、RARにはカウントアップされたマイクロ命令アド
レスが書き込まれて次々に実行される。乗算命令の実行
中にQRが0になり演算が終わると、QRZEROが1
になり、セレクタはJUMPRを選択する。次にJUM
PRには乗算命令の後処理のプログラムのアドレスが格
納されている。乗算結果がMULからGRに書き込まれ
る。そして、乗算中にオーバーフローが発生するとOV
Rが1になりFLGにオーバーフローが発生したことが
書き込まれる。
1になり、次の命令(乗算命令)のアドレスがSADR
に供給される。次に、乗算命令のアドレスがRARに書
き込まれて乗算命令のマイクロ命令群がMROMから読
み出されて順次実行される。乗算命令の実行中はまず、
乗数と被乗数がGRからMULに書き込まれる。そし
て、RARにはカウントアップされたマイクロ命令アド
レスが書き込まれて次々に実行される。乗算命令の実行
中にQRが0になり演算が終わると、QRZEROが1
になり、セレクタはJUMPRを選択する。次にJUM
PRには乗算命令の後処理のプログラムのアドレスが格
納されている。乗算結果がMULからGRに書き込まれ
る。そして、乗算中にオーバーフローが発生するとOV
Rが1になりFLGにオーバーフローが発生したことが
書き込まれる。
【0083】次に、第13図を用いて本発明の第2実施
例を説明する。尚、同図において、第1図に示した本発
明の第1実施例と同一の構成要素は同一の機能を有す
る。第1図に示した実施例と本実施例との違いは、シフ
ターSHFと加算器ADDERとの間にSHFの出力を
一時的に格納する32ビットのレジスタTMPLを付加
した点である。この様にTMPLを付加したことにより
PREの出力からSHFを通ってADDERに入り、T
MPRへ加算結果を書き込む信号経路の遅延時間を減少
させることができる。
例を説明する。尚、同図において、第1図に示した本発
明の第1実施例と同一の構成要素は同一の機能を有す
る。第1図に示した実施例と本実施例との違いは、シフ
ターSHFと加算器ADDERとの間にSHFの出力を
一時的に格納する32ビットのレジスタTMPLを付加
した点である。この様にTMPLを付加したことにより
PREの出力からSHFを通ってADDERに入り、T
MPRへ加算結果を書き込む信号経路の遅延時間を減少
させることができる。
【0084】次に、第14図を用いて本発明の第3実施
例を説明する。本実施例においては、第13図に示した
本発明の第2実施例と同一の構成要素は同一の機能を有
している。第13図の実施例と本実施例との違いは、プ
ライオリティエンコーダPREとシフターSHFとの間
に、PREの出力を格納する5ビットのレジスタRLT
を付加したことである。この構成により、各構成要素を
適当なブロックに分け、それぞれの動作を異なるステー
ジで実行することができ、例えば、パイプライン処理に
用いることができるので、加算演算の実行速度を向上さ
せることができる。
例を説明する。本実施例においては、第13図に示した
本発明の第2実施例と同一の構成要素は同一の機能を有
している。第13図の実施例と本実施例との違いは、プ
ライオリティエンコーダPREとシフターSHFとの間
に、PREの出力を格納する5ビットのレジスタRLT
を付加したことである。この構成により、各構成要素を
適当なブロックに分け、それぞれの動作を異なるステー
ジで実行することができ、例えば、パイプライン処理に
用いることができるので、加算演算の実行速度を向上さ
せることができる。
【0085】ところで上記した図13に示したオーバー
フロー検出機能付乗算装置において、マスクパターン発
生装置MSKAから出力されるマスクパターンを用いて
図5に示したQRの構成要素であるマスクパターン発生
器MSKBのマスクパターンを出力することができる。
つまり、MSKAの出力を用いてQRのリセット用のデ
ータを作成することができる。図15は上記した機能を
実現するマスクパターン発生器の実施例を示す。同図に
おいて、MSKAから出力されたマスクパターン111
10000は、1ビット左シフトされた値(11100
000)と反転された値(00001111)とのOR
演算を行なう。得られた値(11101111)はマス
クパターン発生器MSKBの反転値となっているので、
QR内にとり込み使用することができる。この様にMS
KAから出力されるマスクパターンを用いて容易に図5
内に示したMSKBのマスクパターンを作れるのでマス
クパターン発生器の回路を共用できる。これにより、ハ
ードウェアの削減を図ることができる。
フロー検出機能付乗算装置において、マスクパターン発
生装置MSKAから出力されるマスクパターンを用いて
図5に示したQRの構成要素であるマスクパターン発生
器MSKBのマスクパターンを出力することができる。
つまり、MSKAの出力を用いてQRのリセット用のデ
ータを作成することができる。図15は上記した機能を
実現するマスクパターン発生器の実施例を示す。同図に
おいて、MSKAから出力されたマスクパターン111
10000は、1ビット左シフトされた値(11100
000)と反転された値(00001111)とのOR
演算を行なう。得られた値(11101111)はマス
クパターン発生器MSKBの反転値となっているので、
QR内にとり込み使用することができる。この様にMS
KAから出力されるマスクパターンを用いて容易に図5
内に示したMSKBのマスクパターンを作れるのでマス
クパターン発生器の回路を共用できる。これにより、ハ
ードウェアの削減を図ることができる。
【0086】
【発明の効果】上記説明した様に、本発明のオーバーフ
ロー検出機能付乗算装置では、プライオリティエンコー
ダの出力値からマスクパターンを発生させ、被乗数との
AND演算を行ない、その結果と加算器からのキャリー
出力とのOR演算を行ない、オーバーフロー発生の検出
を行なっているので、少ないハードウェア構成で高速に
オーバーフローの発生の検出を行なうことができる。
ロー検出機能付乗算装置では、プライオリティエンコー
ダの出力値からマスクパターンを発生させ、被乗数との
AND演算を行ない、その結果と加算器からのキャリー
出力とのOR演算を行ない、オーバーフロー発生の検出
を行なっているので、少ないハードウェア構成で高速に
オーバーフローの発生の検出を行なうことができる。
【図1】本発明の第一実施例であるオーバーフロー検出
機能付乗算装置の構成図である。
機能付乗算装置の構成図である。
【図2】従来の乗算装置の基本構成図である。
【図3】図2の従来の乗算装置の各レジスタの内容を示
す図である。
す図である。
【図4】従来のオーバーフロー検出機能付乗算装置の構
成図である。
成図である。
【図5】図4の乗算装置の構成要素である乗数を格納す
るレジスタQRの構成図である。
るレジスタQRの構成図である。
【図6】図5に示すQRの動作を説明する図である。
【図7】図4の乗算装置の構成要素であるプライオリテ
ィエンコーダPREの動作を説明する図である。
ィエンコーダPREの動作を説明する図である。
【図8】図4の乗算装置の構成要素であるシフターSH
Fの動作を説明する図である。
Fの動作を説明する図である。
【図9】図4の乗算装置の乗算演算の原理を説明する図
である。
である。
【図10】図1に示した乗算装置の動作を説明する図で
ある。
ある。
【図11】図1に示した乗算装置の構成要素であるマス
クパターン発生器MSKAの動作を説明する図である。
クパターン発生器MSKAの動作を説明する図である。
【図12】図1に示した乗算装置をマイクロプログラム
制御方式を用いて実現した構成図である。
制御方式を用いて実現した構成図である。
【図13】本発明の第二実施例であるオーバーフロー検
出機能付乗算装置の構成図である。
出機能付乗算装置の構成図である。
【図14】本発明の第三実施例であるオーバーフロー検
出機能付乗算装置の構成図である。
出機能付乗算装置の構成図である。
【図15】図1の乗算装置におけるマスクパターン発生
器の他実施例の構成図である。
器の他実施例の構成図である。
QR 乗数を格納する32ビットのレジスタ PRE プライオリティエンコーダ LLT 被乗数を格納する32ビットのレジスタ SHF シフター ADDER 加算器 TMPR 累積加算結果を格納する32ビットのレジス
タ OVFD オーバーフロー検出器 MSKA マスクパターン発生器 AND AND演算器 OR OR演算器
タ OVFD オーバーフロー検出器 MSKA マスクパターン発生器 AND AND演算器 OR OR演算器
Claims (6)
- 【請求項1】 乗数を格納する乗数レジスタと、 被乗数を格納する被乗数レジスタと、 前記乗数レジスタの最上位ビット又は最下位ビットから
サーチし最初に1が立っているビット番号数を出力する
検出手段と、 前記被乗数レジスタの出力を前記検出手段の出力値に従
って所定方向へシフトするシフト手段と、 加算結果が格納される加算結果レジスタと、 前記シフト手段の出力と加算結果が格納される加算結果
レジスタとの出力とを加算する加算手段と、 前記検出手段の出力のビットパターンから所定のマスク
パターンを出力するマスクパターン発生手段と、 前記マスクパターン発生手段から出力されるマスクパタ
ーンと前記被乗数レジスタの出力値の論理積演算を行う
論理積手段と、 前記論理積手段の出力と、前記加算手段から出力される
キャリー成分の論理和演算を行う論理和手段とから構成
されること、 を特徴とするオーバーフロー検出機能付き乗算装置。 - 【請求項2】 前記シフト手段と前記加算手段の間に、
前記シフト手段の内容を一時的に格納するシフト結果格
納手段を有することを特徴とする請求項1に記載の乗算
装置。 - 【請求項3】 前記検出手段と前記シフト手段との間
に、前記検出手段の内容を一時的に格納する検出結果格
納手段を有することを特徴とする請求項1に記載の乗算
装置。 - 【請求項4】 乗数を格納する乗数レジスタと、 被乗数を格納する被乗数レジスタと、 前記乗数レジスタの最上位ビット又は最下位ビットから
サーチし最初に1が立っているビット番号数を出力する
検出手段と、 前記検出手段の内容を一時的に格納する検出結果格納手
段と、 前記被乗数レジスタの出力を前記検出結果格納手段の値
に従って所定方向へシフトするシフト手段と、 前記シフト手段の内容を一時的に格納するシフト結果格
納手段と、 加算結果が格納される加算結果レジスタと;前記シフト
結果格納手段の出力と加算結果が格納される加算結果レ
ジスタとの出力とを加算する加算手段と、 前記検出手段の出力のビットパターンから所定のマスク
パターンを出力するマスクパターン発生手段と、 前記マスクパターン発生手段から出力されるマスクパタ
ーンと前記被乗数レジスタの出力値の論理積演算を行う
論理積手段と、 前記論理積手段の出力と、前記加算手段から出力される
キャリー成分の論理和演算を行う論理和手段とから構成
されること、 を特徴とするオーバーフロー検出機能付き乗算装置。 - 【請求項5】 前記検出手段はプライオリティエンコー
ダから構成され、該プライオリティエンコーダは、前記
乗算レジスタの出力値を左又は右からサーチし最初に1
が立っているビットを検出し、そのビット番号を表す値
を出力することを特徴とする請求項1および4に記載の
乗算装置。 - 【請求項6】 前記乗数レジスタは、前記検出手段の出
力値に基づいて前記所定のパターンとは異なるパターン
を出力させる第二のマスクパターン発生手段と、 前記乗数値を格納する乗数格納レジスタと、 前記乗数格納レジスタと前記第二のマスクパターン発生
手段との論理積演算を行う乗数論理積演算手段とから構
成され、 該乗数レジスタは該乗数格納レジスタの値がゼロになっ
たことを検出する機能を有すること、 を特徴とする請求項1および4に記載の乗算装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04219113A JP3081710B2 (ja) | 1992-08-18 | 1992-08-18 | オーバーフロー検出機能付き乗算装置 |
US08/103,680 US5539685A (en) | 1992-08-18 | 1993-08-10 | Multiplier device with overflow detection function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04219113A JP3081710B2 (ja) | 1992-08-18 | 1992-08-18 | オーバーフロー検出機能付き乗算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0667851A true JPH0667851A (ja) | 1994-03-11 |
JP3081710B2 JP3081710B2 (ja) | 2000-08-28 |
Family
ID=16730458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04219113A Expired - Lifetime JP3081710B2 (ja) | 1992-08-18 | 1992-08-18 | オーバーフロー検出機能付き乗算装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5539685A (ja) |
JP (1) | JP3081710B2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5801977A (en) * | 1995-01-17 | 1998-09-01 | Hewlett-Packard Company | System and method for clipping integers |
US6009451A (en) * | 1996-11-22 | 1999-12-28 | Lucent Technologies Inc. | Method for generating barrel shifter result flags directly from input data |
US6078940A (en) * | 1997-01-24 | 2000-06-20 | Texas Instruments Incorporated | Microprocessor with an instruction for multiply and left shift with saturate |
US5954786A (en) * | 1997-06-23 | 1999-09-21 | Sun Microsystems, Inc. | Method for directing a parallel processing computing device to form an absolute valve of a signed valve |
US5901306A (en) * | 1997-06-23 | 1999-05-04 | Sun Microsystems, Inc. | Method and apparatus for reducing a computational result to the range boundaries of a signed 8-bit integer in case of overflow |
US5870320A (en) * | 1997-06-23 | 1999-02-09 | Sun Microsystems, Inc. | Method for reducing a computational result to the range boundaries of a signed 16-bit integer in case of overflow |
US6073150A (en) * | 1997-06-23 | 2000-06-06 | Sun Microsystems, Inc. | Apparatus for directing a parallel processing computing device to form an absolute value of a signed value |
US5887181A (en) * | 1997-06-23 | 1999-03-23 | Sun Microsystems, Inc. | Method and apparatus for reducing a computational result to the range boundaries of an unsigned 8-bit integer in case of overflow |
GB9826592D0 (en) * | 1998-12-04 | 1999-01-27 | Systolix Limited | A serial binary multiplier |
US6151616A (en) * | 1999-04-08 | 2000-11-21 | Advanced Micro Devices, Inc. | Method and circuit for detecting overflow in operand multiplication |
US6598066B1 (en) | 2000-05-23 | 2003-07-22 | Sun Microsystems, Inc. | Fast carry-out generation |
KR100403194B1 (ko) * | 2000-06-21 | 2003-10-23 | 주식회사 에이디칩스 | 승산장치 |
US7206800B1 (en) * | 2000-08-30 | 2007-04-17 | Micron Technology, Inc. | Overflow detection and clamping with parallel operand processing for fixed-point multipliers |
US6912560B2 (en) * | 2000-12-08 | 2005-06-28 | Agere Systems, Inc. | Adder with improved overflow flag generation |
US20040167954A1 (en) * | 2003-02-21 | 2004-08-26 | Infineon Technologies North America Corp. | Overflow detection system for multiplication |
US20070057972A1 (en) * | 2005-09-09 | 2007-03-15 | Samsung Electronics Co., Ltd. | Method and apparatus for blending colors |
US7774399B2 (en) * | 2007-09-24 | 2010-08-10 | Vns Portfolio Llc | Shift-add based parallel multiplication |
US8866662B1 (en) | 2012-10-21 | 2014-10-21 | Steve Naumov | Sequential analog/digital conversion and multiplication |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4282581A (en) * | 1979-10-15 | 1981-08-04 | Sperry Corporation | Automatic overflow/imminent overflow detector |
JPS6054070A (ja) * | 1983-09-02 | 1985-03-28 | Nec Corp | 演算装置 |
DE3677051D1 (de) * | 1985-05-17 | 1991-02-28 | Nec Corp | Verarbeitungsschaltung, die es erlaubt den akkumulationsdurchsatz zu erhoehen. |
US5138570A (en) * | 1990-09-20 | 1992-08-11 | At&T Bell Laboratories | Multiplier signed and unsigned overflow flags |
-
1992
- 1992-08-18 JP JP04219113A patent/JP3081710B2/ja not_active Expired - Lifetime
-
1993
- 1993-08-10 US US08/103,680 patent/US5539685A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5539685A (en) | 1996-07-23 |
JP3081710B2 (ja) | 2000-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3081710B2 (ja) | オーバーフロー検出機能付き乗算装置 | |
US20020116434A1 (en) | Apparatus and method for performing multiplication operations | |
EP0869432B1 (en) | Multiplication method and multiplication circuit | |
JPS63245518A (ja) | 除算演算装置 | |
JPH05250146A (ja) | 整数累乗処理を行なうための回路及び方法 | |
JPH0139131B2 (ja) | ||
US6519621B1 (en) | Arithmetic circuit for accumulative operation | |
JPS58182754A (ja) | 演算処理装置 | |
JPH0479015B2 (ja) | ||
US7647368B2 (en) | Data processing apparatus and method for performing data processing operations on floating point data elements | |
JPS608933A (ja) | 演算処理装置 | |
JPH1091395A (ja) | プロセッサ | |
JP3469645B2 (ja) | データ駆動型情報処理装置 | |
US6035310A (en) | Method and circuit for performing a shift arithmetic right operation | |
JP2591250B2 (ja) | データ処理装置 | |
JP2664750B2 (ja) | 演算装置及び演算処理方法 | |
JP3638218B2 (ja) | シフト機能付きalu命令を持つマイクロプロセッサ | |
JPH10333883A (ja) | 乗算方法および乗算回路 | |
US6470369B1 (en) | Euclid mutual division arithmetic circuit and processing circuit | |
JP4258350B2 (ja) | 演算処理装置 | |
JPH05181642A (ja) | 演算装置 | |
JPH0264730A (ja) | 演算装置 | |
JPH0553759A (ja) | 固定小数点演算ユニツト | |
JPH0260020B2 (ja) | ||
JPH02208774A (ja) | アドレス生成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090623 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090623 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100623 Year of fee payment: 10 |