JPS6175927A - 符号付nビツト2進数乗算方式 - Google Patents
符号付nビツト2進数乗算方式Info
- Publication number
- JPS6175927A JPS6175927A JP19831884A JP19831884A JPS6175927A JP S6175927 A JPS6175927 A JP S6175927A JP 19831884 A JP19831884 A JP 19831884A JP 19831884 A JP19831884 A JP 19831884A JP S6175927 A JPS6175927 A JP S6175927A
- Authority
- JP
- Japan
- Prior art keywords
- register
- bit
- multiplication
- shift
- circuit
- 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
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/527—Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel
- G06F7/5272—Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel with row wise addition of partial products
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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
〔産業上の利用分野〕
本発明は、計算機等に使用される乗算器に関し。
特に符号付nビット2進数乗算を、nビット幅で演算す
る乗算方式に関する。 〔従来の技術〕 一般に従来の符号付nビット2進数の乗算器は。 n+1ビットの加算器と、さらに乗算時に発生するオー
バーフローを処理する回路とを用も)て構成されている
のが普通である。その動作原理番よ、被乗数を乗数の各
ビットの値にしたがって累算およびシフトを繰り返し実
行してゆくもので、第2図はその基本構成を示したもの
である。 第2図において、21および22はそれぞれ33ビツト
のAレジスタおよびSレジスタ、23しま32ビツトの
Sレジスタ、24は加算回路、25および26はシフト
回路であり、またAOPは演算制御ビット、十は2進加
算、THはAレジスタへのスルー(加算なし転送)演算
、SRIは通常の右1ビツトシフI−,ASRIは最左
端ビ・ノドを拡張シフトする算術右1ビットシフトを表
してし)る。 SRIおよびASR1の作用は次の通りである。 なお、do乃至d、はn+1ビ・ノドの2進数である。 i) 5RI (溢れ) ii)ASRI (拡張) (溢れ)加算回路
24の演算結果出力は、シフト回路25で1ビツト右シ
フト(ASRI)された後、Aレジスタ21の(0:
313の領域に部分積として格納される。またこのとき
シフト回路25で生じた下位へのシフト溢れ(Spil
l out)は最上位桁
る乗算方式に関する。 〔従来の技術〕 一般に従来の符号付nビット2進数の乗算器は。 n+1ビットの加算器と、さらに乗算時に発生するオー
バーフローを処理する回路とを用も)て構成されている
のが普通である。その動作原理番よ、被乗数を乗数の各
ビットの値にしたがって累算およびシフトを繰り返し実
行してゆくもので、第2図はその基本構成を示したもの
である。 第2図において、21および22はそれぞれ33ビツト
のAレジスタおよびSレジスタ、23しま32ビツトの
Sレジスタ、24は加算回路、25および26はシフト
回路であり、またAOPは演算制御ビット、十は2進加
算、THはAレジスタへのスルー(加算なし転送)演算
、SRIは通常の右1ビツトシフI−,ASRIは最左
端ビ・ノドを拡張シフトする算術右1ビットシフトを表
してし)る。 SRIおよびASR1の作用は次の通りである。 なお、do乃至d、はn+1ビ・ノドの2進数である。 i) 5RI (溢れ) ii)ASRI (拡張) (溢れ)加算回路
24の演算結果出力は、シフト回路25で1ビツト右シ
フト(ASRI)された後、Aレジスタ21の(0:
313の領域に部分積として格納される。またこのとき
シフト回路25で生じた下位へのシフト溢れ(Spil
l out)は最上位桁
〔0〕に格納される。他方、シ
フト回路26の1ビツト右シフト(SRI)出力は、S
レジスタ23の(1: 31)の領域に格納される。ま
たシフト回路26からの下位へのシフト溢れ(Spil
lout )は演算制御ビットAOPとして加算回路2
4に印加される。 まず動作の開始時に、Aレジスタ21.Sレジスタ23
.Sレジスタ22をそれぞれクリアし。 次にSレジスタ22に被乗数を設定し、Sレジスタ23
に乗数を設定する。 次に乗数をシフト回路26で1ビツト右シフト(SRI
)L、下位へのシフト溢れ(Spill out)を、
演算制御ピッ1−AOPとして取り出す。AOPが1か
0かにより以下の演算■または■が行われる。なおたと
えばAC−1:31)はAレジスタの桁位置−1から3
1の領域にある値を表しており、以下同様である。 ■ AOP=1の場合 マA (−1:31 ) +S (4:31 ) ’A
SRI−A (−1:31)V B (0:
31) ’SRI
−B (に31)Spill out″’ A
(−1:31 ) +S (−1:31 )マASR
I−B
フト回路26の1ビツト右シフト(SRI)出力は、S
レジスタ23の(1: 31)の領域に格納される。ま
たシフト回路26からの下位へのシフト溢れ(Spil
lout )は演算制御ビットAOPとして加算回路2
4に印加される。 まず動作の開始時に、Aレジスタ21.Sレジスタ23
.Sレジスタ22をそれぞれクリアし。 次にSレジスタ22に被乗数を設定し、Sレジスタ23
に乗数を設定する。 次に乗数をシフト回路26で1ビツト右シフト(SRI
)L、下位へのシフト溢れ(Spill out)を、
演算制御ピッ1−AOPとして取り出す。AOPが1か
0かにより以下の演算■または■が行われる。なおたと
えばAC−1:31)はAレジスタの桁位置−1から3
1の領域にある値を表しており、以下同様である。 ■ AOP=1の場合 マA (−1:31 ) +S (4:31 ) ’A
SRI−A (−1:31)V B (0:
31) ’SRI
−B (に31)Spill out″’ A
(−1:31 ) +S (−1:31 )マASR
I−B
〔0〕
5pill out’B (0: 31)
’SRI −=AOP(次のAOPの値) ■ AOP=0の場合 マA (−1:31 ) マA S R1−A (−L
:31)マB (0:31) マSRI →
B (1:31)Spill out’ A C−1:
31) vASRI−=B (0)Spill out
’ B (0: 31)マSRI −AOP(次のAO
Pの値) 以上の動作を、Sレジスタ23の長さ分だけすなわち3
2回実行すれば、演算が終了する。 すなわち−膜化して、被乗数Sを符号付nビット2進数
のS=S、S、・・−・8つとし1乗数Bを同じく符号
付nビット2進数のB = b a b + ’−’−
’ b −とし、さらにj回目の演算結果の部分積をP
P。 で表すとすれば、上述した従来の乗算器では。 PP、やr = (S−b、1−、 ・2’ +PP
j ) ・2伺 ・−(1)の演算が行われる。ただ
しPP、=0である。 なお2乗数や被乗数の負の値が絶対値で表されている場
合には、符号の処理が必要であり、他方。 補数で表されている場合には、演算の補正が必要である
。 このように、符号付32ビツト2進数の乗数を行う従来
の乗算器は、AレジスタやSレジスタとともに33ビツ
ト幅で構成する必要がある。そのため乗算器のゲート数
が増大するばかりでなく。 チェック用のパリティ予測(P ari ty P r
edict)回路もこれに伴って複雑化し、たとえば3
2ビツト用と33ビツト用との両方が必要であった。 また乗算器以外の論理演算などのための演算器は32ビ
ツトで構成されるため、演算器間で整合をとる必要があ
った。 〔発明が解決しようとする問題点〕 上述したように、従来の符号付nビット2進数乗算器で
はfi、+llビットに拡張した回路構成が必要となっ
てそれだけ複雑化し、またこれを避けようとすれば符号
付nビット2進数乗算をあきらめて1乗算あるいは被乗
数が負のときにはこれを正に変換して乗算しなければな
らず、その場合。 乗数および被乗数がともに負の最大数であったときには
特別な処理が必要となるという問題があった。 〔問題点を解決するための手段〕 本発明は、上記した問題を符号付nビット2進数の乗算
器をnビット幅の回路構成を用いて、演算制御方式の工
夫により解決するものであり、その構成は、それぞれが
nビット幅で構成された部分積を格納する第1のレジス
タと、被乗数を格納する第2のレジスタと2乗数を格納
する第3のレジスタと、上記第1および第2のレジスタ
の内容について指示された演算を行う加減算回路と、該
加減算回路の出力を右1ビットシフトして第1のレジス
タに戻すとともに右シフト溢れを第3のレジスタの最左
端ビットに格納する第1のシフト回路と、第3のレジス
タの内容を右1ビットシフトして該第3のレジスタの最
左端ビットを除く領域に格納するとともに右シフト溢れ
を加減算回路へ印加する第2のシフト回路とをそなえ、
n−1個の乗算命令と1個の乗算補正命令により乗算を
実行する符号付nビット2進数乗算方式であって。 上記加減算回路は第2のシフト回路の右1ビットシフト
溢れが1か0かにより2乗算命令実行時であれば第1お
よび第2の各レジスタの内容を加算するか第1のレジス
タの内容をそのまま出力するスルー演算を行い、また乗
算補正命令実行時であれば第1のレジスタの内容から第
2のレジスタの内容を減算するか第1のレジスタの内容
をそのまま出力するスルー演算を行い、上記第1のシフ
ト回路は加減算回路出力の左端20のビットのいずれか
一方にt行上げが発生した場合、最左端ビ、2トの桁上
げ値を最左端に設定する特別者1ビットシフトを行い、
その他の場合には最左端ビットを右拡張する算術布1ビ
ットシフトを行うことを特徴としている。 〔発明の作用〕 本発明によれば、前記(1)式の部分積の代りに。 次の(2)式が用いられる。 ここで。 CRY :加算時に生じた最も左のビットからの溢れ。 S:符号付nビットの被乗数S =So S+ 5z−
S、l ゆ す、−1:符号付nビットの乗数B=b、b、b。 −・・blにおいて、j回目の加算に使用されるビット
(=力6算制御ビットAOP)。 PP、:j回目の加算による部分積。 ASRI:最も左のビット (符号ピント)を右へ拡張
する右、1ビットシフト。 0VFL:加算時に左から2番目のビ・ノドに生じた溢
れをCRYlとしたとき、上 記のCRYとの排他的論理和EQR によって与えられる。 0VFL=CRY(E9CRY 1 である。また′11”は結合(たとえば上位ビ・ノド配
列に下位ビット配列を連結すること)を表す記号である
。 したがって1乗算とその他の演算とは同じビット幅で演
算されるため、整合性をとるための特別な手段は不要と
なり、また負数の乗算の際の正数への変換も不要である
。 〔実施例〕 以下に2本発明の詳細を実施例にしたがって説明する。 符号付2進乗算方法には種々の方法があるか。 本実施例ではRobertsonの方法(例えば、萩原
宏 1著「電子計算機通論2演算・制御装置」朝倉書店
参jj、7 )を用いる。この方法では、Zを乗算結果
の積とし、So boをそれぞれ被乗数S2乗数Bの
符号ビットとしたとき、n回目の部分積PP、、との間
に1次のような関係が生じる。なお、0”は正、“1”
は負の符号を表している。 ・・−・−−−−−−−−(3) 上記関係式を実現するために、第1図に示す回路構成と
9乗算命令(M)および乗算補正命令(MC)の2つの
マイクロ命令を使用する。マイクロ乗算命令(M)は2
乗数の各1ビツトごとに発行されて部分積をつくる1ビ
ツト乗算を行い、またマイクロ乗算補正命令(MC)は
、演算の最後に発行され1乗数が負(bo=1)の場合
の上記(3)式中の“−bo ・S・2″ ”の補正を
行う。 第1図において、1.2.3はそれぞれ32ビツトのA
レジスタ、Sレジスタ、Sレジスタである。4は加減算
回路、5は最左端ビットを右方に拡張してシフトすると
ともに最左端ビットに加算結果の溢れを挿入する特別台
1ビットシフト5SR1を行うシフト回路、6は通常の
右1ビットシフトSR1を行うシフト回路、AOPは演
算制御ピッI”+ CRYは加算時に生じる最左端か
らのキャリ、そして加減算回路4内の+、−、THはそ
れぞれ2進加算、2進減算、スルー演算を表している。 以後の説明で使用される主なステータスは次の通りであ
る。 CRY :加減算回路出力AO(0:31)のビットO
よりのキャリ CRYI:加減算回路出力AO(0:31)(7)ビッ
ト1よりのキャリ 0VFL : CRYΦCRY I AOP : 5pill out’B (0: 31)
’ SRIただし、加減算回路4の出力AO(0:3
1)は。 AOP=1またはAOP=0により、加算結果またはス
ルー演算結果を示す。すなわち。 となる。 さらに、特別右1ビットシフl−3SR1は、上述した
定義を用いると。 If 0VFL、1 =) CRYIIAO(0:
30) −’ A (0:31)ELSE ゆ’AO
(0:31) ’ASRI→A (0:31)となる。 マイクロ乗算命令(M)は、Sレジスタ3の乗数をシフ
ト回路6で右1ビットシフトして溢れさせ(Spill
out)得られる演算制御ビットAOPに基づいてA
レジスタ1とSレジスタ3とにまたがって存在する部分
積にSレジスタ2の被乗数を加算する1ビツト乗算演算
を実行させる。 ■ AOP=”lの場合には、加減算回路4は加算動作
を行うように制御され、Aレジスタ1の値とSレジスタ
2の値とを2進加算し、結果をシフト回路5で特別右1
ビ・ノドシフト5SRIしてAレジスタ1へ戻し、同時
にシフト回路5からの右シフト溢れ(Spill ou
t)をSレジスタ3の最左端ビットに格納する。またシ
フト回路6で右1ビットシフトSRIされたSレジスタ
出力は、Sレジスタ3の左から2番目以降の領域に格納
される。すなわち2次式のようになる。 マ A (0:31) +S (0:31)
マ5SRI−A (0:31)マB (0:31)
マSRI −B (1:31)Spill
out ’ A (0:31) +S (0:31)マ
ーB (0)Spill out ’ B (0:31
)マ −AOP■ AOP=0の場合には、加減算回
路4はスル−演算動作を行うように制御され、Aレジス
タ1の値がそのままシフト回路5へ転送され、特別右1
ビットシフトSSR1されてAレジスタ1へ戻される。 同時にシフト回路5からの右シフト溢れ(Spill
out)はSレジスタ3の最左端ビットに格納される。 またシフト回路6で右1ビットシフトSRIされたBレ
ジスタ出力は。 Sレジスタ3の最左端ビットに格納される。すなわち1
次式のようになる。 ’A (0:31) ’ 5SRI −A (0:
31)VB (0:31) ’ SRI −B C
1:31)Spill out ’A (0:31)
’ −B (0)Spill out ’ B
(0:31)マ −AOP次にマイクロ乗算補正命令(
MC)の機能について述べる。 マイクロ乗算補正命令(MC)は、AOPの値に基づい
てAレジスタ1およびSレジスタ3にまたがって存在す
る部分積からSレジスタ2の被乗数を減算するかあるい
はAレジスタ1中の部分積のスルー演算を行う補正演算
を実行させる。 ■ AOP=1の場合には、Aレジスタ1の部分積から
Sレジスタ2の被乗数を減算し、さらに1を加算したも
のを特別右1ビットシフト5SRIしてAレジスタ1に
戻し、同時に右シフト溢れ(Spill out)をS
レジスタ3の最左端ビットに格納する。他方Bレジスタ
3の値は、右1ビットシフトSRIしてSレジスタ3の
〔1:31〕に戻す。すなわち1次式で表される。 ’ A (0:31) +S (0:31)
+1’5SR1−A (0:31)マB (0:3
1) SRI →B (1:31)Sp
ill out’ A (0:31) +S (0:3
1) +1マーB
’SRI −=AOP(次のAOPの値) ■ AOP=0の場合 マA (−1:31 ) マA S R1−A (−L
:31)マB (0:31) マSRI →
B (1:31)Spill out’ A C−1:
31) vASRI−=B (0)Spill out
’ B (0: 31)マSRI −AOP(次のAO
Pの値) 以上の動作を、Sレジスタ23の長さ分だけすなわち3
2回実行すれば、演算が終了する。 すなわち−膜化して、被乗数Sを符号付nビット2進数
のS=S、S、・・−・8つとし1乗数Bを同じく符号
付nビット2進数のB = b a b + ’−’−
’ b −とし、さらにj回目の演算結果の部分積をP
P。 で表すとすれば、上述した従来の乗算器では。 PP、やr = (S−b、1−、 ・2’ +PP
j ) ・2伺 ・−(1)の演算が行われる。ただ
しPP、=0である。 なお2乗数や被乗数の負の値が絶対値で表されている場
合には、符号の処理が必要であり、他方。 補数で表されている場合には、演算の補正が必要である
。 このように、符号付32ビツト2進数の乗数を行う従来
の乗算器は、AレジスタやSレジスタとともに33ビツ
ト幅で構成する必要がある。そのため乗算器のゲート数
が増大するばかりでなく。 チェック用のパリティ予測(P ari ty P r
edict)回路もこれに伴って複雑化し、たとえば3
2ビツト用と33ビツト用との両方が必要であった。 また乗算器以外の論理演算などのための演算器は32ビ
ツトで構成されるため、演算器間で整合をとる必要があ
った。 〔発明が解決しようとする問題点〕 上述したように、従来の符号付nビット2進数乗算器で
はfi、+llビットに拡張した回路構成が必要となっ
てそれだけ複雑化し、またこれを避けようとすれば符号
付nビット2進数乗算をあきらめて1乗算あるいは被乗
数が負のときにはこれを正に変換して乗算しなければな
らず、その場合。 乗数および被乗数がともに負の最大数であったときには
特別な処理が必要となるという問題があった。 〔問題点を解決するための手段〕 本発明は、上記した問題を符号付nビット2進数の乗算
器をnビット幅の回路構成を用いて、演算制御方式の工
夫により解決するものであり、その構成は、それぞれが
nビット幅で構成された部分積を格納する第1のレジス
タと、被乗数を格納する第2のレジスタと2乗数を格納
する第3のレジスタと、上記第1および第2のレジスタ
の内容について指示された演算を行う加減算回路と、該
加減算回路の出力を右1ビットシフトして第1のレジス
タに戻すとともに右シフト溢れを第3のレジスタの最左
端ビットに格納する第1のシフト回路と、第3のレジス
タの内容を右1ビットシフトして該第3のレジスタの最
左端ビットを除く領域に格納するとともに右シフト溢れ
を加減算回路へ印加する第2のシフト回路とをそなえ、
n−1個の乗算命令と1個の乗算補正命令により乗算を
実行する符号付nビット2進数乗算方式であって。 上記加減算回路は第2のシフト回路の右1ビットシフト
溢れが1か0かにより2乗算命令実行時であれば第1お
よび第2の各レジスタの内容を加算するか第1のレジス
タの内容をそのまま出力するスルー演算を行い、また乗
算補正命令実行時であれば第1のレジスタの内容から第
2のレジスタの内容を減算するか第1のレジスタの内容
をそのまま出力するスルー演算を行い、上記第1のシフ
ト回路は加減算回路出力の左端20のビットのいずれか
一方にt行上げが発生した場合、最左端ビ、2トの桁上
げ値を最左端に設定する特別者1ビットシフトを行い、
その他の場合には最左端ビットを右拡張する算術布1ビ
ットシフトを行うことを特徴としている。 〔発明の作用〕 本発明によれば、前記(1)式の部分積の代りに。 次の(2)式が用いられる。 ここで。 CRY :加算時に生じた最も左のビットからの溢れ。 S:符号付nビットの被乗数S =So S+ 5z−
S、l ゆ す、−1:符号付nビットの乗数B=b、b、b。 −・・blにおいて、j回目の加算に使用されるビット
(=力6算制御ビットAOP)。 PP、:j回目の加算による部分積。 ASRI:最も左のビット (符号ピント)を右へ拡張
する右、1ビットシフト。 0VFL:加算時に左から2番目のビ・ノドに生じた溢
れをCRYlとしたとき、上 記のCRYとの排他的論理和EQR によって与えられる。 0VFL=CRY(E9CRY 1 である。また′11”は結合(たとえば上位ビ・ノド配
列に下位ビット配列を連結すること)を表す記号である
。 したがって1乗算とその他の演算とは同じビット幅で演
算されるため、整合性をとるための特別な手段は不要と
なり、また負数の乗算の際の正数への変換も不要である
。 〔実施例〕 以下に2本発明の詳細を実施例にしたがって説明する。 符号付2進乗算方法には種々の方法があるか。 本実施例ではRobertsonの方法(例えば、萩原
宏 1著「電子計算機通論2演算・制御装置」朝倉書店
参jj、7 )を用いる。この方法では、Zを乗算結果
の積とし、So boをそれぞれ被乗数S2乗数Bの
符号ビットとしたとき、n回目の部分積PP、、との間
に1次のような関係が生じる。なお、0”は正、“1”
は負の符号を表している。 ・・−・−−−−−−−−(3) 上記関係式を実現するために、第1図に示す回路構成と
9乗算命令(M)および乗算補正命令(MC)の2つの
マイクロ命令を使用する。マイクロ乗算命令(M)は2
乗数の各1ビツトごとに発行されて部分積をつくる1ビ
ツト乗算を行い、またマイクロ乗算補正命令(MC)は
、演算の最後に発行され1乗数が負(bo=1)の場合
の上記(3)式中の“−bo ・S・2″ ”の補正を
行う。 第1図において、1.2.3はそれぞれ32ビツトのA
レジスタ、Sレジスタ、Sレジスタである。4は加減算
回路、5は最左端ビットを右方に拡張してシフトすると
ともに最左端ビットに加算結果の溢れを挿入する特別台
1ビットシフト5SR1を行うシフト回路、6は通常の
右1ビットシフトSR1を行うシフト回路、AOPは演
算制御ピッI”+ CRYは加算時に生じる最左端か
らのキャリ、そして加減算回路4内の+、−、THはそ
れぞれ2進加算、2進減算、スルー演算を表している。 以後の説明で使用される主なステータスは次の通りであ
る。 CRY :加減算回路出力AO(0:31)のビットO
よりのキャリ CRYI:加減算回路出力AO(0:31)(7)ビッ
ト1よりのキャリ 0VFL : CRYΦCRY I AOP : 5pill out’B (0: 31)
’ SRIただし、加減算回路4の出力AO(0:3
1)は。 AOP=1またはAOP=0により、加算結果またはス
ルー演算結果を示す。すなわち。 となる。 さらに、特別右1ビットシフl−3SR1は、上述した
定義を用いると。 If 0VFL、1 =) CRYIIAO(0:
30) −’ A (0:31)ELSE ゆ’AO
(0:31) ’ASRI→A (0:31)となる。 マイクロ乗算命令(M)は、Sレジスタ3の乗数をシフ
ト回路6で右1ビットシフトして溢れさせ(Spill
out)得られる演算制御ビットAOPに基づいてA
レジスタ1とSレジスタ3とにまたがって存在する部分
積にSレジスタ2の被乗数を加算する1ビツト乗算演算
を実行させる。 ■ AOP=”lの場合には、加減算回路4は加算動作
を行うように制御され、Aレジスタ1の値とSレジスタ
2の値とを2進加算し、結果をシフト回路5で特別右1
ビ・ノドシフト5SRIしてAレジスタ1へ戻し、同時
にシフト回路5からの右シフト溢れ(Spill ou
t)をSレジスタ3の最左端ビットに格納する。またシ
フト回路6で右1ビットシフトSRIされたSレジスタ
出力は、Sレジスタ3の左から2番目以降の領域に格納
される。すなわち2次式のようになる。 マ A (0:31) +S (0:31)
マ5SRI−A (0:31)マB (0:31)
マSRI −B (1:31)Spill
out ’ A (0:31) +S (0:31)マ
ーB (0)Spill out ’ B (0:31
)マ −AOP■ AOP=0の場合には、加減算回
路4はスル−演算動作を行うように制御され、Aレジス
タ1の値がそのままシフト回路5へ転送され、特別右1
ビットシフトSSR1されてAレジスタ1へ戻される。 同時にシフト回路5からの右シフト溢れ(Spill
out)はSレジスタ3の最左端ビットに格納される。 またシフト回路6で右1ビットシフトSRIされたBレ
ジスタ出力は。 Sレジスタ3の最左端ビットに格納される。すなわち1
次式のようになる。 ’A (0:31) ’ 5SRI −A (0:
31)VB (0:31) ’ SRI −B C
1:31)Spill out ’A (0:31)
’ −B (0)Spill out ’ B
(0:31)マ −AOP次にマイクロ乗算補正命令(
MC)の機能について述べる。 マイクロ乗算補正命令(MC)は、AOPの値に基づい
てAレジスタ1およびSレジスタ3にまたがって存在す
る部分積からSレジスタ2の被乗数を減算するかあるい
はAレジスタ1中の部分積のスルー演算を行う補正演算
を実行させる。 ■ AOP=1の場合には、Aレジスタ1の部分積から
Sレジスタ2の被乗数を減算し、さらに1を加算したも
のを特別右1ビットシフト5SRIしてAレジスタ1に
戻し、同時に右シフト溢れ(Spill out)をS
レジスタ3の最左端ビットに格納する。他方Bレジスタ
3の値は、右1ビットシフトSRIしてSレジスタ3の
〔1:31〕に戻す。すなわち1次式で表される。 ’ A (0:31) +S (0:31)
+1’5SR1−A (0:31)マB (0:3
1) SRI →B (1:31)Sp
ill out’ A (0:31) +S (0:3
1) +1マーB
〔0〕
■ AOP=Oの場合には、加減算回路4はスルー演算
を行い、Aレジスタ1の部分積を特別右1ビットSSR
I してAレジスタ1へ戻し、同時に右シフト溢れ(S
pill out)をSレジスタ3の最左端ビットに格
納する。他方、Sレジスタ3の右1ビットシフトSRI
出力は、Sレジスタ3の(1: 31)に格納される。 すなわち。 次式で表される。 マA (0: 31) ’SSR1−A (0
: 31)マB(0:31) マSRI −B
(1: 31)Spill out’A (0:
31 ) マーB(0)次に、第3図乃至第6図に
より具体的な乗算例を説明する。 第3図は、 5=0111(7) 、 B=(Hll
(7)の乗算例である。被乗数Sと乗数Bの符号ビット
がそれぞれ30 =0.b0=oであり、双方とも正で
あるため、ステップ■で実行されるMC命令ではAop
=oとなり、スルー演算(TH)が行われる。 なおステップ■、■のM命令では、0VFL=1となる
ため、特別右1ビットシフトSSR1において、最左端
ビットにCRY=Oが設定される。 このようにして、積S −B =00110001(4
9)が得られる。 第4図は、 5=1000(−8)、 B=010
1(5)の乗算例である。この場合、30 =i b
0=0となるため、被乗数が負9乗数が正となっている
。このため、ステップ■のMC命令ではAOP=Oとな
り、スルー演算(TH)が行われる。なおステップ■の
M命令では、加算結果の最左端ビットが“0”となるが
、0VFL=1.CRY=1であることにより、5SR
Iによりシフトされた最左端ビットにはCRY=1が設
定され、負表示が保持される。このようにして、積S
−B =11011000が得られる。これは補数表現
形式をとっており、絶対値表現“00100111”に
変換して−40となる。 第5図は、 5=0101(5) 、 B=1100(
−4)の乗算例である。この場合、S(1=0.b、=
1で乗数Bが負であるため、ステップ■のMC命令でA
OP=1となり、加減算回路4およびシフト回路5では
、前述した ’A (0:31) +3 (0:31) + 1 ’
SSR1の補正演算が行われる。すなわち、Aレジ
スタ1の内容”0010”からSレジスタ2の内容“0
101”を減算(補数加算)シ、さらに+1する演算を
行い1次の5SRIでは0VFL=0であることにより
、最左端ビットを右拡張する算術布1ビットシフトのA
SR1が行われる。このようにして積s −B =11
101100が得られる。これは絶対値で“00010
100”の−20を表す。 第6図は、 5=1000(−8)、 B=100
0(−8)の乗算例であり、第5図の例と同様に、ステ
ップ■のMC命令でAOP=1となり、補正演算が実行
される。この場合には、0VFL=l CRY=0で
あるため、5SRIの右1ビットシフト時に最左端ヒツ
ト12はCRY=0が設定される。このようにして、積
S・B =01000000すなわち64が得られる。 〔発明の効果〕 以上のように本発明によれば、符号付nビット2退数乗
算器をnビット幅で構成することができるので、計算機
の演算装置の構成が簡単になり。 また補数変換やビット幅変換が不要であるため高速化が
可能になる。
を行い、Aレジスタ1の部分積を特別右1ビットSSR
I してAレジスタ1へ戻し、同時に右シフト溢れ(S
pill out)をSレジスタ3の最左端ビットに格
納する。他方、Sレジスタ3の右1ビットシフトSRI
出力は、Sレジスタ3の(1: 31)に格納される。 すなわち。 次式で表される。 マA (0: 31) ’SSR1−A (0
: 31)マB(0:31) マSRI −B
(1: 31)Spill out’A (0:
31 ) マーB(0)次に、第3図乃至第6図に
より具体的な乗算例を説明する。 第3図は、 5=0111(7) 、 B=(Hll
(7)の乗算例である。被乗数Sと乗数Bの符号ビット
がそれぞれ30 =0.b0=oであり、双方とも正で
あるため、ステップ■で実行されるMC命令ではAop
=oとなり、スルー演算(TH)が行われる。 なおステップ■、■のM命令では、0VFL=1となる
ため、特別右1ビットシフトSSR1において、最左端
ビットにCRY=Oが設定される。 このようにして、積S −B =00110001(4
9)が得られる。 第4図は、 5=1000(−8)、 B=010
1(5)の乗算例である。この場合、30 =i b
0=0となるため、被乗数が負9乗数が正となっている
。このため、ステップ■のMC命令ではAOP=Oとな
り、スルー演算(TH)が行われる。なおステップ■の
M命令では、加算結果の最左端ビットが“0”となるが
、0VFL=1.CRY=1であることにより、5SR
Iによりシフトされた最左端ビットにはCRY=1が設
定され、負表示が保持される。このようにして、積S
−B =11011000が得られる。これは補数表現
形式をとっており、絶対値表現“00100111”に
変換して−40となる。 第5図は、 5=0101(5) 、 B=1100(
−4)の乗算例である。この場合、S(1=0.b、=
1で乗数Bが負であるため、ステップ■のMC命令でA
OP=1となり、加減算回路4およびシフト回路5では
、前述した ’A (0:31) +3 (0:31) + 1 ’
SSR1の補正演算が行われる。すなわち、Aレジ
スタ1の内容”0010”からSレジスタ2の内容“0
101”を減算(補数加算)シ、さらに+1する演算を
行い1次の5SRIでは0VFL=0であることにより
、最左端ビットを右拡張する算術布1ビットシフトのA
SR1が行われる。このようにして積s −B =11
101100が得られる。これは絶対値で“00010
100”の−20を表す。 第6図は、 5=1000(−8)、 B=100
0(−8)の乗算例であり、第5図の例と同様に、ステ
ップ■のMC命令でAOP=1となり、補正演算が実行
される。この場合には、0VFL=l CRY=0で
あるため、5SRIの右1ビットシフト時に最左端ヒツ
ト12はCRY=0が設定される。このようにして、積
S・B =01000000すなわち64が得られる。 〔発明の効果〕 以上のように本発明によれば、符号付nビット2退数乗
算器をnビット幅で構成することができるので、計算機
の演算装置の構成が簡単になり。 また補数変換やビット幅変換が不要であるため高速化が
可能になる。
第1図は本発明方式の1実施例の構成図、第2図は従来
方式の1例の構成図、第3図乃至第6図はそれぞれ乗算
例の説明図である。 図中、1はΔレジスタ、2はSレジスタ、3はSレジス
タ、4は加減算回路、5および6はシフト回路を示す。
方式の1例の構成図、第3図乃至第6図はそれぞれ乗算
例の説明図である。 図中、1はΔレジスタ、2はSレジスタ、3はSレジス
タ、4は加減算回路、5および6はシフト回路を示す。
Claims (1)
- それぞれがnビット幅で構成された部分積を格納する第
1のレジスタと、被乗数を格納する第2のレジスタと、
乗数を格納する第3のレジスタと、上記第1および第2
のレジスタの内容について指示された演算を行う加減算
回路と、該加減算回路の出力を右1ビットシフトして第
1のレジスタに戻すとともに右シフト溢れを第3のレジ
スタの最左端ビットに格納する第1のシフト回路と、第
3のレジスタの内容を右1ビットシフトして該第3のレ
ジスタの最左端ビットを除く領域に格納するとともに右
シフト溢れを加減算回路へ印加する第2のシフト回路と
をそなえ、n−1個の乗算命令と1個の乗算補正命令に
より乗算を実行する符号付nビット2進数乗算方式であ
って、上記加減算回路は第2のシフト回路の右1ビット
シフト溢れが1か0かにより、乗算命令実行時であれば
第1および第2の各レジスタの内容を加算するか第1の
レジスタの内容をそのまま出力するスルー演算を行い、
また乗算補正命令実行時であれば第1のレジスタの内容
から第2のレジスタの内容を減算するか第1のレジスタ
の内容をそのまま出力するスルー演算を行い、上記第1
のシフト回路は加減算回路出力の左端2つのビットのい
ずれか一方に桁上げが発生した場合、最左端ビットの桁
上げ値を最左端に設定する特別右1ビットシフトを行い
、その他の場合には最左端ビットを右拡張する算術右1
ビットシフトを行うことを特徴とする符号付nビット2
進数乗算方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19831884A JPS6175927A (ja) | 1984-09-21 | 1984-09-21 | 符号付nビツト2進数乗算方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19831884A JPS6175927A (ja) | 1984-09-21 | 1984-09-21 | 符号付nビツト2進数乗算方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS6175927A true JPS6175927A (ja) | 1986-04-18 |
Family
ID=16389122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19831884A Pending JPS6175927A (ja) | 1984-09-21 | 1984-09-21 | 符号付nビツト2進数乗算方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6175927A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258633A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5086949A (ja) * | 1973-12-03 | 1975-07-12 | ||
JPS5378743A (en) * | 1976-12-23 | 1978-07-12 | Fujitsu Ltd | Multiplier |
-
1984
- 1984-09-21 JP JP19831884A patent/JPS6175927A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5086949A (ja) * | 1973-12-03 | 1975-07-12 | ||
JPS5378743A (en) * | 1976-12-23 | 1978-07-12 | Fujitsu Ltd | Multiplier |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258633A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN111258633B (zh) * | 2018-11-30 | 2022-08-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101173405B1 (ko) | 부스 곱셈 방법들 및 시스템들을 위한 전력-효율적인 부호 확장 | |
US3878985A (en) | Serial-parallel multiplier using booth{3 s algorithm with combined carry-borrow feature | |
JPH0477932B2 (ja) | ||
JP2502836B2 (ja) | 除算回路の前処理装置 | |
US5870322A (en) | Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication | |
KR101073343B1 (ko) | 개선된 감소 트리 회로를 갖는 부스 곱셈기 | |
JPH0234054B2 (ja) | ||
JPH02194430A (ja) | 除算器 | |
JPS6175927A (ja) | 符号付nビツト2進数乗算方式 | |
JPH0346024A (ja) | 浮動小数点演算器 | |
US20060253522A1 (en) | Large number mutpilication method and device | |
JPH05158659A (ja) | 乗算器 | |
JP2682142B2 (ja) | 乗算装置 | |
JP2777265B2 (ja) | 高基数開平演算装置 | |
SU926650A1 (ru) | Устройство дл одновременного вычислени двух многочленов | |
JP2995721B2 (ja) | 除算装置および除算方法 | |
JP3522167B2 (ja) | 演算処理回路及び演算処理方法 | |
JPS6265131A (ja) | 乗算器 | |
JPH0260020B2 (ja) | ||
JP2569330B2 (ja) | 乗算回路 | |
JPS58119048A (ja) | 演算方式 | |
JPS60186933A (ja) | 2進化10進乗算方式 | |
JPS60230266A (ja) | 演算装置 | |
JPH07160480A (ja) | 10進除算器 | |
JPS6129020B2 (ja) |