JP3096574B2 - 倍精度乗算を実行する方法及び演算装置 - Google Patents

倍精度乗算を実行する方法及び演算装置

Info

Publication number
JP3096574B2
JP3096574B2 JP06167577A JP16757794A JP3096574B2 JP 3096574 B2 JP3096574 B2 JP 3096574B2 JP 06167577 A JP06167577 A JP 06167577A JP 16757794 A JP16757794 A JP 16757794A JP 3096574 B2 JP3096574 B2 JP 3096574B2
Authority
JP
Japan
Prior art keywords
multiplier
word
multiplication
multiplicand
latch
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 - Fee Related
Application number
JP06167577A
Other languages
English (en)
Other versions
JPH0830439A (ja
Inventor
英之 蕪尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP06167577A priority Critical patent/JP3096574B2/ja
Publication of JPH0830439A publication Critical patent/JPH0830439A/ja
Application granted granted Critical
Publication of JP3096574B2 publication Critical patent/JP3096574B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA

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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、倍精度乗算を実行する
方法及び演算装置に関し、特に単精度乗算器を用いた倍
精度乗算の実行に関するものである。
【0002】
【従来の技術】近年、通信分野や画像処理分野における
高速かつ大量のデータを対象としたデジタル信号処理を
行なうためのハードウェアの1つとして、高速なデジタ
ル・シグナル・プロセッサ(DSP)の開発が進んでい
る。特にDSPでは、乗算命令、積和演算命令等の乗算
系命令を高速に実行できることが要求される。
【0003】高木直史ほか「冗長2進加算木を用いたV
LSI向き高速乗算器」(電子通信学会論文誌Vol.
J66−D No.6 1983年6月 pp.683
−690)には、内部計算に冗長2進表現を利用した並
列乗算器が提案されている。通常の2進表現によれば、
各桁は0又は1の値を持つ。これに対し、冗長2進表現
では符号付きの桁(SD:Signed Digit)が採用され、
各桁は−1,0又は1の値を持つ。この冗長2進表現
は、基数2のSD表現であって、2進SD表現とも呼ば
れる。部分積の個数を低減するためには、2ビットのブ
ース(Booth )の方法を利用して、基数4のSD表現す
なわち4進SD表現を乗数の内部表現に採用する。4進
SD表現では、各桁は−2,−1,0,1又は2の値を
持つ。
【0004】高木らの並列乗算器は、乗数リコード回路
と、部分積加算木と、冗長2進数/2進数変換回路とを
備えている。部分積加算木は、部分積生成回路及び冗長
2進数加算回路により構成される。この乗算器によれ
ば、各々2の補数表示の2進表現がなされた被乗数と乗
数との乗算を実行する場合、乗数である2の補数表示の
2進数は、乗数リコード回路により表1の規則に従って
4進SD数にリコードされる。そして、被乗数と乗数リ
コード結果から、部分積生成回路により冗長2進表現の
部分積が生成される。この際、4進SD表現がなされた
乗数の各桁毎に1つの部分積が生成されるので、部分積
の個数は2進表現の場合の半分になる。しかも、冗長2
進数加算回路では冗長性のゆえ桁上げ伝搬が抑制される
ので、乗算結果が高速に求められる。部分積加算木の出
力(冗長2進表現の積)は、冗長2進数/2進数変換回
路により2の補数表示の2進表現に変換される。
【0005】
【表1】
【0006】従来、倍精度乗算の実行に単精度乗算器を
用いることがあった。倍精度乗算器は、単精度乗算器に
比べて回路規模が大きい。そこで、ハードウェアコス
ト、チップ上に占める面積、消費電力、倍精度乗算の実
行頻度等を考慮して、単一の単精度乗算器を繰り返し使
用することで倍精度乗算の結果を得るようにしていたの
である。
【0007】図4は、単一の単精度乗算器を用いた従来
の倍精度乗算実行方法を示している。各々2の補数表示
の2進表現がなされた倍精度被乗数Xと倍精度乗数Yと
の乗算を実行する。被乗数X及び乗数Yは、いずれも2
ワード長の固定小数点数である。被乗数Xは上位ワード
XH と下位ワードXL とで構成され、乗数Yは上位ワー
ドYH と下位ワードYL とで構成される。1ワードは、
n桁(nは偶数、例えば16)で構成される。積X×Y
は、4つの積XL ×YL 、XL ×YH 、XH ×YL 及び
XH ×YH の桁合わせ加算により求められる。
【0008】さて、被乗数下位ワードXL は、符号なし
2進数であり、最上位ビット(MSB)が符号を表わす
2の補数表示の2進数とは違って、全てのビットが有効
桁として扱われるべきものである。乗数下位ワードYL
もまた、符号なし2進数である。ところが、従来の乗算
器は与えられた被乗数及び乗数を各々2の補数表示の2
進数として扱う結果、MSBが1である被乗数下位ワー
ドXL をそのまま乗算器に入力したり、MSBが1であ
る乗数下位ワードYL をそのまま乗算器に入力したりす
ると、正しい積が得られない。
【0009】そこで、従来は、図4に示すように、誤演
算を回避するためにやむを得ず、被乗数下位ワードXL
及び乗数下位ワードYL の各々の最下位ビット(LS
B)を捨てていた。具体的に説明すると、被乗数下位ワ
ードXL に1桁右シフト処理を施す。この際、被乗数下
位ワードXL のMSBは0に設定され、そのLSBは捨
てられる。このようにして得られた新たな被乗数下位ワ
ードXL'が、元の被乗数下位ワードXL に代えて用いら
れる。また、乗数下位ワードYL に1桁右シフト処理を
施す。この際、乗数下位ワードYL のMSBは0に設定
され、そのLSBは捨てられる。このようにして得られ
た新たな乗数下位ワードYL'が、元の乗数下位ワードY
L に代えて用いられる。そして、4つの積XL'×YL'、
XL'×YH、XH ×YL'及びXH ×YH の桁合わせ加算
により、倍精度乗算結果を求めるのである。なお、乗数
上位ワードYH の最下位2ビットのリコード処理には、
乗数下位ワードYL の最下位2ビットのリコード処理の
場合と同様に、更なる下位ビットとして値0が用いられ
る。
【0010】
【発明が解決しようとする課題】上記単一の単精度乗算
器を用いた従来の倍精度乗算実行方法は、誤演算を回避
するために被乗数下位ワードXL 及び乗数下位ワードY
L の各々のLSBを捨てるようにしていたので、演算結
果が最大2-(2n-2) の誤差を含むという問題点を有して
いた。
【0011】本発明の目的は、単一の単精度乗算器を用
いて正確な倍精度乗算を実行できるようにすることにあ
る。
【0012】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、単一の単精度乗算器を備えた演算装置に
おいて、乗数下位ワードYL のMSBが1である場合に
該乗数下位ワードYL の変換結果である4進SD数が負
の数になっても問題が生じないように、乗数下位ワード
YL のMSBを乗数上位ワードYH の最下位2ビットの
リコード処理に反映させることとしたものである。ま
た、該演算装置において、被乗数下位ワードXL を符号
なし2進数として、被乗数上位ワードXH を2の補数表
示の2進数として各々区別して取り扱うこととした。
【0013】具体的に説明すると、請求項1の発明に係
る倍精度乗算実行方法は、単精度乗算のための各々2の
補数表示の2進数対応のリコード部と乗算処理部とを備
えた演算装置において各々2の補数表示の2進表現がな
された倍精度被乗数Xと倍精度乗数Yとの乗算を実行す
るための方法であって、乗数下位ワードYL のMSBを
保存するステップと、乗数下位ワードYL の表現を4進
SD表現に変換するようにかつ該乗数下位ワードYL の
最下位2ビットの処理には更なる下位ビットとして値0
を用いて前記リコード部で乗数下位ワードYL にリコー
ド処理を施すステップと、被乗数Xの1ワード(XL 又
はXH )と前記リコード処理が施された乗数下位ワード
YL との部分積を生成し該生成した部分積を加え合わせ
ることにより前記乗算処理部で第1の乗算結果(XL ×
YL 又はXH ×YL )を求めるステップと、乗数上位ワ
ードYH の表現を4進SD表現に変換するようにかつ該
乗数上位ワードYH の最下位2ビットの処理には更なる
下位ビットとして前記保存された乗数下位ワードYL の
MSBを用いて前記リコード部で乗数上位ワードYH に
リコード処理を施すステップと、前記被乗数Xの1ワー
ド(XL 又はXH )と前記リコード処理が施された乗数
上位ワードYH との部分積を生成し該生成した部分積を
加え合わせることにより前記乗算処理部で第2の乗算結
果(XL ×YH 又はXH ×YH )を求めるステップと、
前記第1及び第2の乗算結果の倍精度桁合わせ加算を実
行するステップとを備えた構成を採用したものである。
【0014】請求項2の発明では、前記第1及び第2の
乗算結果を求めるステップのそれぞれにおいて、被乗数
下位ワードXL を前記乗算処理部で例外的に符号なし2
進数として処理することとした。
【0015】請求項3の発明では、前記第1及び第2の
乗算結果を求めるステップのそれぞれにおいて、被乗数
上位ワードXH を前記乗算処理部で2の補数表示の2進
数として処理することとした。
【0016】請求項4の発明では、前記乗数上位ワード
YH にリコード処理を施すステップを起動できることを
示すように、前記乗数下位ワードYL のMSBを保存す
るステップと、前記乗数下位ワードYL にリコード処理
を施すステップと、前記第1の乗算結果を求めるステッ
プとの完了時に下位乗算実行フラグをセットするステッ
プを更に備えることとした。
【0017】また、請求項5の発明に係る演算装置は、
各々2の補数表示の2進表現がなされた倍精度被乗数X
と倍精度乗数Yとの乗算を実行するための演算装置であ
って、次のような被乗数ラッチ手段と、乗数ラッチ手段
と、乗数MSBラッチ手段と、選択手段と、リコード手
段と、乗算手段と、桁合わせ加算手段とを備えた構成を
採用したものである。すなわち、被乗数ラッチ手段は、
被乗数下位ワードXLと被乗数上位ワードXH とを選択
的に保持するものである。乗数ラッチ手段は、乗数下位
ワードYL と乗数上位ワードYH とを選択的に保持する
ものである。乗数MSBラッチ手段は、乗数下位ワード
YL のMSBを保持するものである。選択手段は、乗数
ラッチ手段に乗数下位ワードYL が保持された場合には
値0を、乗数ラッチ手段に乗数上位ワードYH が保持さ
れた場合には乗数MSBラッチ手段の出力(乗数下位ワ
ードYL のMSB)を各々選択出力するものである。リ
コード手段は、乗数ラッチ手段の出力(YL 又はYH )
の表現を4進SD表現に変換するように、かつ該乗数ラ
ッチ手段の出力の最下位2ビットの処理には更なる下位
ビットとして前記選択手段の出力(0又はYL のMS
B)を用いて、乗数ラッチ手段の出力にリコード処理を
施すものである。乗算手段は、被乗数ラッチ手段の出力
(XL 又はXH )とリコード手段の出力との部分積を生
成し、該生成した部分積を加え合わせることにより、前
記乗数ラッチ手段に乗数下位ワードYLが保持された場
合には第1の乗算結果(XL ×YL 又はXH ×YL )を
求め、前記乗数ラッチ手段に乗数上位ワードYH が保持
された場合には第2の乗算結果(XL ×YH 又はXH ×
YH )を求めるものである。そして、桁合わせ加算手段
は、乗算手段で求められた第1及び第2の乗算結果の倍
精度桁合わせ加算を実行するものである。
【0018】請求項6の発明では、前記乗算手段は、被
乗数ラッチ手段に被乗数下位ワードXL が保持された場
合には該被乗数下位ワードXL を符号なし2進数として
処理する一方、被乗数ラッチ手段に被乗数上位ワードX
H が保持された場合には該被乗数上位ワードXH を2の
補数表示の2進数として処理する機能を備えることとし
た。
【0019】請求項7の発明では、前記桁合わせ加算手
段は、前記第1の乗算結果に右シフト処理を施すための
アライナと、その右シフト処理が施された第1の乗算結
果と前記第2の乗算結果との倍精度加算を実行するため
の加算器とを備えることとした。
【0020】請求項8の発明では、前記リコード手段に
よる乗数上位ワードYH の処理を開始できることを示す
ように、前記乗数下位ワードYL に基づく第1の乗算結
果の算出時にセットされる下位乗算実行フラグを格納す
るための状態レジスタ手段を更に備えることとした。
【0021】
【作用】請求項1の発明によれば、乗数下位ワードYL
の最下位2ビットのリコード処理には更なる下位ビット
として値0が、乗数上位ワードYH の最下位2ビットの
リコード処理には更なる下位ビットとして乗数下位ワー
ドYL のMSBが各々用いられる。つまり、乗数上位ワ
ードYH と乗数下位ワードYL とが一連の符号付き倍精
度数として扱われる結果、単一の単精度乗算器を備えた
演算装置において、乗数下位ワードYL のMSBが1で
あっても、該乗数下位ワードYL の全体を反映させた正
確な倍精度乗算結果が得られる。
【0022】請求項2の発明によれば、部分積の生成・
加算にあたって被乗数下位ワードXL が例外的に符号な
し2進数として扱われる。この結果、被乗数下位ワード
XLのMSBが1であっても、積XL ×YL 及びXL ×
YH が正しく演算される。
【0023】請求項3の発明によれば、部分積の生成・
加算にあたって被乗数上位ワードXH が2の補数表示の
2進数として扱われる。この結果、被乗数上位ワードX
H のMSBの値に応じて、積XH ×YL 及びXH ×YH
が正しく演算される。
【0024】請求項4の発明によれば、乗数下位ワード
YL に関する一連の処理が完了した時点で下位乗算実行
フラグがセットされる。下位乗算実行フラグがセットさ
れている場合には、乗数上位ワードYH にリコード処理
を施すステップから始まる倍精度乗算の残りのステップ
を実行する前に、当該演算装置を該倍精度乗算以外の演
算に利用できる。また、下位乗算実行フラグのセットを
認識できれば、乗数上位ワードYH の最下位2ビットの
リコード処理に更なる下位ビットとして乗数下位ワード
YL のMSBを用いればよいことが確認される。
【0025】請求項5の発明によれば、選択手段からリ
コード手段へ、乗数下位ワードYLのリコード処理時に
は値0が、乗数上位ワードYH のリコード処理時には乗
数MSBラッチ手段の出力すなわち乗数下位ワードYL
のMSBが各々供給される。これにより乗数上位ワード
YH と乗数下位ワードYL とが一連の符号付き倍精度数
として扱われる結果、乗算手段が単精度数入力対応であ
りながら、乗数下位ワードYL の全体を反映させた正確
な倍精度乗算結果が得られる。
【0026】請求項6の発明によれば、乗算手段におけ
る部分積の生成・加算にあたって、被乗数下位ワードX
L が符号なし2進数として、被乗数上位ワードXH が2
の補数表示の2進数として各々扱われる。つまり、被乗
数上位ワードXH と被乗数下位ワードXL とが一連の符
号付き倍精度数として扱われる結果、乗算手段が単精度
数入力対応でありながら、被乗数下位ワードXL のMS
Bが1であっても、該被乗数下位ワードXL の全体を反
映させた正確な倍精度乗算結果が得られる。
【0027】請求項7の発明によれば、乗算手段で順次
求められた第1及び第2の乗算結果の加算にあたって、
桁合わせのために第1の乗算結果(XL ×YL 又はXH
×YL )に右シフト処理が施されたうえ、該右シフト処
理の結果と第2の乗算結果(XL ×YH 又はXH ×YH
)との倍精度加算が実行される。
【0028】請求項8の発明によれば、乗数下位ワード
YL に基づく第1の乗算結果の算出時に状態レジスタ手
段中の下位乗算実行フラグがセットされる。下位乗算実
行フラグがセットされている場合には、乗数上位ワード
YH に基づく第2の乗算結果の算出過程を実行する前
に、例えば桁合わせ加算手段を該倍精度乗算以外の演算
に利用できる。また、第2の乗算結果の算出過程開始時
に下位乗算実行フラグのセットを認識できれば、選択手
段からリコード手段へ乗数MSBラッチ手段の出力(乗
数下位ワードYL のMSB)を供給すればよいことが確
認される。
【0029】
【実施例】図1は、単一の単精度乗算器を用いた本発明
に係る倍精度乗算実行方法における乗数上位ワードYH
及び乗数下位ワードYL のリコード処理方法を示す説明
図である。
【0030】各々2の補数表示の2進表現がなされた倍
精度被乗数Xと倍精度乗数Yとの乗算を実行する場合、
乗数下位ワードYL は、前掲の表1の規則に従って4進
SD数にリコードされる。この乗数下位ワードYL の最
下位2ビットYL1,YL0のリコード処理には、更なる下
位ビットとして値0が用いられる。乗数上位ワードYH
も、表1の規則に従って4進SD数にリコードされる。
ただし、乗数上位ワードYH の最下位2ビットYH1,Y
H0のリコード処理には、更なる下位ビットとして、値0
に代えて乗数下位ワードYL のMSBすなわちYLn-1が
用いられる。つまり、乗数上位ワードYH と乗数下位ワ
ードYL とが一連の符号付き倍精度数として扱われる結
果、乗数下位ワードYL のMSB(YLn-1)が1である
場合に該乗数下位ワードYL の変換結果である4進SD
数が負の数になっても問題が生じない。
【0031】以下、図1のリコード処理方法を適用した
本発明の実施例に係る2つの演算装置について順次説明
する。
【0032】(実施例1)図2は、各々2の補数表示の
2進表現がなされた倍精度被乗数Xと倍精度乗数Yとの
乗算を実行するための本発明の第1の実施例に係る演算
装置のブロック図である。被乗数X及び乗数Yは、いず
れも2ワード長の固定小数点数である。被乗数Xは上位
ワードXH と下位ワードXL とで構成され、乗数Yは上
位ワードYH と下位ワードYL とで構成される。1ワー
ドは、n桁(nは偶数、例えば16)で構成される。
【0033】図2において、31は3つのポートを有す
る記憶装置、32,33は該記憶装置31に接続された
第1及び第2のデータバスである。被乗数X及び乗数Y
は、いずれも記憶装置31に格納されている。
【0034】R1〜R7は全てラッチである。このう
ち、R1は第1のデータバス32上のデータを保持する
ための1ワード長の被乗数ラッチ、R2は第2のデータ
バス33上のデータを保持するための1ワード長の乗数
ラッチ、R3は乗数ラッチR2のMSBを保持するため
の1ビット長の乗数MSBラッチ、R4は2ワード長の
乗算結果ラッチ、R5及びR6は各々2ワード長の第1
及び第2の加算器入力ラッチ、R7は2ワード長の加算
結果ラッチである。
【0035】11は、乗数ラッチR2の出力の表現を4
進SD表現に変換するように、該乗数ラッチR2の出力
にリコード処理を施すためのリコード部である。12
は、被乗数ラッチR1の出力とリコード部11の出力と
の部分積を生成し、該生成した部分積を加え合わせるこ
とにより乗算中間結果を求めるための乗算処理部であ
る。乗算処理部12の出力は、乗算結果ラッチR4に保
持される。13は、第1の加算器入力ラッチR5の出力
をそのまま出力し、もしくは該第1の加算器入力ラッチ
R5の出力に右シフト処理を施し、又は2ワード定数
“0”を出力するためのアライナである。14は、第2
の加算器入力ラッチR6の出力とアライナ13の出力と
の倍精度加算を実行するための加算器である。
【0036】21〜24は、全てセレクタである。この
うち、21は、乗数MSBラッチR3の出力又は1ビッ
ト定数“0”を最下位2ビットのリコード処理のために
リコード部11へ供給する第1のセレクタである。22
は、加算結果ラッチR7の上位ワード又は下位ワードを
選択出力する第2のセレクタである。第2のセレクタ2
2の出力は、記憶装置31に格納される。23は、加算
結果ラッチR7の出力又は第1のデータバス32上のデ
ータを第1の加算器入力ラッチR5へ出力する第1の加
算器入力セレクタである。24は、乗算結果ラッチR4
の出力又は第2のデータバス33上のデータを第2の加
算器入力ラッチR6へ出力する第2の加算器入力セレク
タである。
【0037】41は命令デコード及び制御部、42は状
態レジスタ、43は下位乗算実行フラグ、44はAND
ゲートである。命令デコード及び制御部41は、命令を
デコードし、かつ状態レジスタ42の中に設けられた下
位乗算実行フラグ43を設定する機能を持っている。ま
た、命令デコード及び制御部41は、第1及び第2の読
み出しデータアドレスRA1,RA2、書き込みデータ
アドレスWA、乗算入力ラッチイネーブル信号E1、乗
算結果ラッチイネーブル信号E2、第1及び第2の加算
器入力ラッチイネーブル信号E3A,E3B、加算結果
ラッチイネーブル信号E4、乗数MSBラッチイネーブ
ル信号E5、第1〜第4のセレクタ制御信号S1〜S
4、アライナ制御信号C1、及び、被乗数極性反転信号
C2を出力する。
【0038】第1の読み出しデータアドレスRA1は第
1のデータバス32へのデータの読み出しのために、第
2の読み出しデータアドレスRA2は第2のデータバス
33へのデータの読み出しのために、書き込みデータア
ドレスWAは第2のセレクタ22の出力の書き込みのた
めに各々記憶装置31に与えられる。
【0039】乗算入力ラッチイネーブル信号E1は、第
1及び第2のデータバス32,33上のデータを保持す
るように被乗数ラッチR1及び乗数ラッチR2に共通に
与えられる。乗算結果ラッチイネーブル信号E2は、乗
算処理部12の出力を保持するように乗算結果ラッチR
4に与えられる。第1の加算器入力ラッチイネーブル信
号E3Aは第1の加算器入力セレクタ23の出力を保持
するように第1の加算器入力ラッチR5に、第2の加算
器入力ラッチイネーブル信号E3Bは第2の加算器入力
セレクタ24の出力を保持するように第2の加算器入力
ラッチR6に各々与えられる。加算結果ラッチイネーブ
ル信号E4は、加算器14の出力を保持するように加算
結果ラッチR7に与えられる。乗数MSBラッチイネー
ブル信号E5は、乗数ラッチR2のMSBを保持するよ
うに乗数MSBラッチR3に与えられる。
【0040】第1のセレクタ制御信号S1は、下位乗算
実行フラグ43とともにANDゲート44に入力され
る。第1のセレクタ21は、ANDゲート44の出力が
“1”(High)ならば乗数MSBラッチR3の出力
を、“0”(Low)ならば1ビット定数“0”を各々
選択する。第2〜第4のセレクタ制御信号S2,S3,
S4は、第2〜第4のセレクタ22,23,24におけ
る選択の制御にそれぞれ供される。第2のセレクタ22
は、第2のセレクタ制御信号S2が“1”ならば加算結
果ラッチR7の上位ワードを、“0”ならば該加算結果
ラッチR7の下位ワードを各々選択する。第3のセレク
タ23は、第3のセレクタ制御信号S3が“1”ならば
加算結果ラッチR7の出力を、“0”ならば第1のデー
タバス32上のデータを各々選択する。第4のセレクタ
24は、第4のセレクタ制御信号S4が“1”ならば乗
算結果ラッチR4の出力を、“0”ならば第2のデータ
バス33上のデータを各々選択する。
【0041】アライナ制御信号C1は、アライナ13の
動作を制御するための2ビットの信号である。すなわ
ち、アライナ制御信号C1が“00”ならば、アライナ
13は2ワード定数“0”を出力する。アライナ制御信
号C1が“01”ならば、アライナ13は第1の加算器
入力ラッチR5の出力に右シフト処理を施し、該右シフ
ト処理の結果を出力する。アライナ制御信号C1が“1
0”ならば、アライナ13は第1の加算器入力ラッチR
5の出力をそのまま加算器14に供給する。
【0042】被乗数極性反転信号C2は、乗算処理部1
2の動作を制御するための1ビットの信号である。乗算
処理部12は、被乗数極性反転信号C2が“1”ならば
被乗数ラッチR1の出力を符号なし2進数として扱い、
“0”ならば被乗数ラッチR1の出力を2の補数表示の
2進数として扱う。具体的には、被乗数極性反転信号C
2は、乗算処理部12の一部を構成する部分積生成回路
及び冗長2進数加算回路の中で、被乗数ワードのMSB
の符号反転制御に使用され、あるいは加減算の切り替え
信号として使用される。
【0043】図2の演算装置は、表2に示す7つの命令
A〜Gを順次実行することにより、4つの積XL ×YL
、XL ×YH 、XH ×YL 及びXH ×YH を順次求
め、かつそれらの桁合わせ加算により積X×Yを求め
る。表2は、命令ごとの、演算装置の中のデータの流れ
並びに乗算処理部12及び加算器14の処理内容を示し
ている。
【0044】
【表2】
【0045】表2において、RA1−0及びRA1−1
は被乗数下位ワードXL の読み出しアドレス、RA1−
2及びRA1−2は被乗数上位ワードXH の読み出しア
ドレス、RA2−0及びRA2−2は乗数下位ワードY
L の読み出しアドレス、RA2−1及びRA2−3は乗
数上位ワードYH の読み出しアドレスである。WA−0
〜WA−3は、4ワード長の積X×Yの書き込みアドレ
スである。なお、初期状態では、下位乗算実行フラグ4
3、全てのラッチイネーブル信号E1〜E5、全てのセ
レクタ制御信号S1〜S4、及び、被乗数極性反転信号
C2が“0”であるものとする。また、アライナ制御信
号C1は“00”であるものとする。
【0046】以下、図2の演算装置の動作シーケンスを
詳細に説明する。
【0047】まず、命令Aが命令デコード及び制御部4
1によりデコードされる。命令デコード及び制御部41
は、命令Aのデコード結果に応じて、RA1−0及びR
A2−0を記憶装置31に供給し、乗算入力ラッチイネ
ーブル信号E1及び乗数MSBラッチイネーブル信号E
5を“1”とし、第1のセレクタ制御信号S1を“1”
とし、被乗数極性反転信号C2を“1”とする。
【0048】記憶装置31は、RA1−0及びRA2−
0で指定されるデータXL ,YL をそれぞれ第1及び第
2のデータバス32,33に出力する。これら第1及び
第2のデータバス32,33に出力されたデータXL ,
YL は、それぞれ被乗数ラッチR1及び乗数ラッチR2
に保持される。データYL のMSBは、乗数MSBラッ
チR3に保持される。第1のセレクタ制御信号S1が
“1”になっても、下位乗算実行フラグ43が“0”な
のでANDゲート44の出力が“0”となり、第1のセ
レクタ21は1ビット定数“0”を選択出力する。乗数
ラッチR2に保持されたデータYL は、第1のセレクタ
21の出力を該データYL の最下位2ビットの更なる下
位ビットとしてリコード部11においてリコード処理さ
れる。リコード処理されたデータYL は、被乗数ラッチ
R1に保持されたデータXL とともに乗算処理部12に
供給される。乗算処理部12は、両データXL ,YL の
部分積の生成と該生成した部分積の加え合わせとを実行
する。この際、被乗数極性反転信号C2が“1”なの
で、データXL は符号なし2進数として扱われる。そし
て、積XL ×YL が乗算結果ラッチR4に供給される。
【0049】更に、命令デコード及び制御部41は、状
態レジスタ42の中の下位乗算実行フラグ43に“1”
をセットし、乗算結果ラッチイネーブル信号E2を
“1”とし、アライナ13が2ワード定数“0”を出力
するようにアライナ制御信号C1を“00”とする。乗
算処理部12の出力XL ×YL は、乗算結果ラッチR4
に保持される。
【0050】次に、命令Bが命令デコード及び制御部4
1によりデコードされる。命令デコード及び制御部41
は、命令Bのデコード結果に応じて、RA1−1及びR
A2−1を記憶装置31に供給し、乗算入力ラッチイネ
ーブル信号E1を“1”とし、乗数MSBラッチイネー
ブル信号E5を“0”とし、第1及び第4のセレクタ制
御信号S1,S4を“1”とし、被乗数極性反転信号C
2を“1”とし、第2の加算器入力ラッチイネーブル信
号E3Bを“1”とする。
【0051】記憶装置31は、RA1−1及びRA2−
1で指定されるデータXL ,YH をそれぞれ第1及び第
2のデータバス32,33に出力する。これら第1及び
第2のデータバス32,33に出力されたデータXL ,
YH は、それぞれ被乗数ラッチR1及び乗数ラッチR2
に保持される。乗数MSBラッチイネーブル信号E5が
“0”なので、乗数MSBラッチR3に保持されていた
データYL のMSBは更新されない。
【0052】乗算結果ラッチR4に保持されていた積X
L ×YL は、第2の加算器入力セレクタ24を通して第
2の加算器入力ラッチR6に供給され、ここに保持され
る。加算器14は、アライナ13の2ワード定数出力
“0”と第2の加算器入力ラッチR6の出力との倍精度
加算を実行する。その加算結果すなわちXL ×YL は、
加算結果ラッチR7に供給される。
【0053】一方、第1のセレクタ制御信号S1が
“1”になると、該第1のセレクタ制御信号S1と下位
乗算実行フラグ43との論理積(ANDゲート44の出
力)が“1”となり、第1のセレクタ21は乗数MSB
ラッチR3の出力すなわちデータYL のMSBを選択出
力する。乗数ラッチR2に保持されたデータYH は、第
1のセレクタ21の出力を該データYH の最下位2ビッ
トの更なる下位ビットとしてリコード部11においてリ
コード処理される。リコード処理されたデータYHは、
被乗数ラッチR1に保持されたデータXL とともに乗算
処理部12に供給される。乗算処理部12は、両データ
XL ,YH の部分積の生成と該生成した部分積の加え合
わせとを実行する。この際、被乗数極性反転信号C2が
“1”なので、データXL は符号なし2進数として扱わ
れる。そして、積XL ×YH が乗算結果ラッチR4に供
給される。
【0054】更に、命令デコード及び制御部41は、状
態レジスタ42の中の下位乗算実行フラグ43を“0”
にリセットし、加算結果ラッチイネーブル信号E4を
“1”とし、乗算結果ラッチイネーブル信号E2を
“1”とし、アライナ13が第1の加算器入力ラッチR
5の出力に右シフト処理を施すことができるようにアラ
イナ制御信号C1を“01”とする。加算器14の出力
XL ×YL は加算結果ラッチR7に、乗算処理部12の
出力XL ×YH は乗算結果ラッチR4に各々保持され
る。
【0055】次に、命令Cが命令デコード及び制御部4
1によりデコードされる。命令デコード及び制御部41
は、命令Cのデコード結果に応じて、RA1−2、RA
2−2及びWA−0を記憶装置31に供給し、乗算入力
ラッチイネーブル信号E1及び乗数MSBラッチイネー
ブル信号E5を“1”とし、第1、第3及び第4のセレ
クタ制御信号S1,S3,S4を“1”とし、被乗数極
性反転信号C2を“0”とし、第1及び第2の加算器入
力ラッチイネーブル信号E3A,E3Bを“1”とす
る。
【0056】記憶装置31は、RA1−2及びRA2−
2で指定されるデータXH ,YL をそれぞれ第1及び第
2のデータバス32,33に出力する。これら第1及び
第2のデータバス32,33に出力されたデータXH ,
YL は、それぞれ被乗数ラッチR1及び乗数ラッチR2
に保持される。データYL のMSBは、乗数MSBラッ
チR3に保持される。
【0057】第2のセレクタ制御信号S2が“0”なの
で、加算結果ラッチR7に保持されていた加算結果XL
×YL のうちの下位ワード(XL ×YL )L は、第2の
セレクタ22を通して記憶装置31に書き込まれる。同
加算結果XL ×YL の全体は、第1の加算器入力セレク
タ23を通して第1の加算器入力ラッチR5に供給さ
れ、ここに保持される。アライナ13は、第1の加算器
入力ラッチR5の出力XL ×YL のうちの上位ワードが
下位側にシフトするように、該第1の加算器入力ラッチ
R5の出力に右シフト処理を施したうえ、該シフト処理
の結果すなわちrshift(XL ×YL )を出力する。この
際、(XL ×YL )L は捨てられる。一方、乗算結果ラ
ッチR4に保持されていた積XL ×YH は、第2の加算
器入力セレクタ24を通して第2の加算器入力ラッチR
6に供給され、ここに保持される。加算器14は、アラ
イナ13の出力rshift(XL ×YL )と第2の加算器入
力ラッチR6の出力XL ×YH との倍精度加算を実行す
る。その加算結果すなわちXL ×YH +rshift(XL ×
YL )は、加算結果ラッチR7に供給される。
【0058】一方、第1のセレクタ制御信号S1が
“1”になっても、下位乗算実行フラグ43が“0”な
のでANDゲート44の出力が“0”となり、第1のセ
レクタ21は1ビット定数“0”を選択出力する。乗数
ラッチR2に保持されたデータYL は、第1のセレクタ
21の出力を該データYL の最下位2ビットの更なる下
位ビットとしてリコード部11においてリコード処理さ
れる。リコード処理されたデータYL は、被乗数ラッチ
R1に保持されたデータXH とともに乗算処理部12に
供給される。乗算処理部12は、両データXH ,YL の
部分積の生成と該生成した部分積の加え合わせとを実行
する。この際、被乗数極性反転信号C2が“0”なの
で、データXH は2の補数表示の2進数として扱われ
る。そして、積XH ×YL が乗算結果ラッチR4に供給
される。
【0059】更に、命令デコード及び制御部41は、状
態レジスタ42の中の下位乗算実行フラグ43に“1”
をセットし、加算結果ラッチイネーブル信号E4を
“1”とし、乗算結果ラッチイネーブル信号E2を
“1”とし、アライナ13が第1の加算器入力ラッチR
5の出力をそのまま出力できるようにアライナ制御信号
C1を“10”とする。加算器14の出力XL ×YH +
rshift(XL ×YL )は加算結果ラッチR7に、乗算処
理部12の出力XH ×YL は乗算結果ラッチR4に各々
保持される。
【0060】次に、命令Dが命令デコード及び制御部4
1によりデコードされる。命令デコード及び制御部41
は、命令Dのデコード結果に応じて、RA1−3及びR
A2−3を記憶装置31に供給し、乗算入力ラッチイネ
ーブル信号E1を“1”とし、乗数MSBラッチイネー
ブル信号E5を“0”とし、第1、第3及び第4のセレ
クタ制御信号S1,S3,S4を“1”とし、被乗数極
性反転信号C2を“0”とし、第1及び第2の加算器入
力ラッチイネーブル信号E3A,E3Bを“1”とす
る。
【0061】記憶装置31は、RA1−3及びRA2−
3で指定されるデータXH ,YH をそれぞれ第1及び第
2のデータバス32,33に出力する。これら第1及び
第2のデータバス32,33に出力されたデータXH ,
YH は、それぞれ被乗数ラッチR1及び乗数ラッチR2
に保持される。乗数MSBラッチイネーブル信号E5が
“0”なので、乗数MSBラッチR3に保持されていた
データYL のMSBは更新されない。
【0062】加算結果ラッチR7に保持されていた加算
結果XL ×YH +rshift(XL ×YL )の全体は、第1
の加算器入力セレクタ23を通して第1の加算器入力ラ
ッチR5に供給され、ここに保持される。アライナ13
は、第1の加算器入力ラッチR5の出力XL ×YH +rs
hift(XL ×YL )をそのまま出力する。一方、乗算結
果ラッチR4に保持されていた積XH ×YL は、第2の
加算器入力セレクタ24を通して第2の加算器入力ラッ
チR6に供給され、ここに保持される。加算器14は、
アライナ13の出力XL ×YH +rshift(XL ×YL )
と第2の加算器入力ラッチR6の出力XH ×YL との倍
精度加算を実行する。その加算結果すなわちXH ×YL
+XL ×YH +rshift(XL ×YL )は、加算結果ラッ
チR7に供給される。
【0063】一方、第1のセレクタ制御信号S1が
“1”になると、該第1のセレクタ制御信号S1と下位
乗算実行フラグ43との論理積(ANDゲート44の出
力)が“1”となり、第1のセレクタ21は乗数MSB
ラッチR3の出力すなわちデータYL のMSBを選択出
力する。乗数ラッチR2に保持されたデータYH は、第
1のセレクタ21の出力を該データYH の最下位2ビッ
トの更なる下位ビットとしてリコード部11においてリ
コード処理される。リコード処理されたデータYHは、
被乗数ラッチR1に保持されたデータXH とともに乗算
処理部12に供給される。乗算処理部12は、両データ
XH ,YH の部分積の生成と該生成した部分積の加え合
わせとを実行する。この際、被乗数極性反転信号C2が
“0”なので、データXH は2の補数表示の2進数とし
て扱われる。そして、積XH ×YH が乗算結果ラッチR
4に供給される。
【0064】更に、命令デコード及び制御部41は、状
態レジスタ42の中の下位乗算実行フラグ43を“0”
にリセットし、加算結果ラッチイネーブル信号E4を
“1”とし、乗算結果ラッチイネーブル信号E2を
“1”とし、アライナ13が第1の加算器入力ラッチR
5の出力に右シフト処理を施すことができるようにアラ
イナ制御信号C1を“01”とする。加算器14の出力
XH ×YL +XL ×YH +rshift(XL ×YL )は加算
結果ラッチR7に、乗算処理部12の出力XH ×YHは
乗算結果ラッチR4に各々保持される。
【0065】次に、命令Eが命令デコード及び制御部4
1によりデコードされる。命令デコード及び制御部41
は、命令Eのデコード結果に応じて、WA−1を記憶装
置31に供給し、乗算入力ラッチイネーブル信号E1を
“0”とし、第3及び第4のセレクタ制御信号S3,S
4を“1”とし、第1及び第2の加算器入力ラッチイネ
ーブル信号E3A,E3Bを“1”とする。
【0066】第2のセレクタ制御信号S2が“0”なの
で、加算結果ラッチR7に保持されていた加算結果XH
×YL +XL ×YH +rshift(XL ×YL )のうちの下
位ワード{XH ×YL +XL ×YH +rshift(XL ×Y
L )}L は、第2のセレクタ22を通して記憶装置31
に書き込まれる。同加算結果XH ×YL +XL ×YH+r
shift(XL ×YL )の全体は、第1の加算器入力セレ
クタ23を通して第1の加算器入力ラッチR5に供給さ
れ、ここに保持される。アライナ13は、第1の加算器
入力ラッチR5の出力XH ×YL +XL ×YH +rshift
(XL ×YL )のうちの上位ワードが下位側にシフトす
るように、該第1の加算器入力ラッチR5の出力に右シ
フト処理を施したうえ、該シフト処理の結果すなわちrs
hift{XH ×YL +XL ×YH +rshift(XL ×YL
)}を出力する。この際、{XH ×YL +XL ×YH
+rshift(XL ×YL )}L は捨てられる。一方、乗算
結果ラッチR4に保持されていた積XH ×YH は、第2
の加算器入力セレクタ24を通して第2の加算器入力ラ
ッチR6に供給され、ここに保持される。加算器14
は、アライナ13の出力rshift{XH ×YL +XL ×Y
H +rshift(XL ×YL )}と第2の加算器入力ラッチ
R6の出力XH ×YH との倍精度加算を実行する。その
加算結果すなわちXH ×YH +rshift{XH ×YL +X
L ×YH +rshift(XL ×YL )}は、加算結果ラッチ
R7に供給される。
【0067】更に、命令デコード及び制御部41は、加
算結果ラッチイネーブル信号E4を“1”とし、乗算結
果ラッチイネーブル信号E2を“0”とし、アライナ制
御信号C1を“00”に戻す。加算器14の出力XH ×
YH +rshift{XH ×YL +XL ×YH +rshift(XL
×YL )}は加算結果ラッチR7に保持される。
【0068】次に、命令Fが命令デコード及び制御部4
1によりデコードされる。命令デコード及び制御部41
は、命令Fのデコード結果に応じて、WA−2を記憶装
置31に供給し、第1及び第2の加算器入力ラッチイネ
ーブル信号E3A,E3Bを“0”とする。
【0069】第2のセレクタ制御信号S2が“0”なの
で、加算結果ラッチR7に保持されていた加算結果XH
×YH +rshift{XH ×YL +XL ×YH +rshift(X
L ×YL )}のうちの下位ワード[XH ×YH +rshift
{XH ×YL +XL ×YH +rshift(XL ×YL )}]
L は、第2のセレクタ22を通して記憶装置31に書き
込まれる。
【0070】更に、命令デコード及び制御部41は、加
算結果ラッチイネーブル信号E4を“0”とし、第2の
セレクタ制御信号S2を“1”とする。
【0071】次に、命令Gが命令デコード及び制御部4
1によりデコードされる。命令デコード及び制御部41
は、命令Gのデコード結果に応じて、WA−3を記憶装
置31に供給する。
【0072】第2のセレクタ制御信号S2が“1”なの
で、加算結果ラッチR7に保持されていた加算結果XH
×YH +rshift{XH ×YL +XL ×YH +rshift(X
L ×YL )}のうちの上位ワード[XH ×YH +rshift
{XH ×YL +XL ×YH +rshift(XL ×YL )}]
H は、第2のセレクタ22を通して記憶装置31に書き
込まれる。
【0073】以上のとおり、4つの単精度乗算命令(命
令A〜D)を含む7命令を順次実行することにより、4
ワード長の倍精度乗算結果X×Yが記憶装置31の中に
格納される。しかも、本実施例によれば、第1のセレク
タ21からリコード部11へ、乗数下位ワードYL のリ
コード処理時には1ビット定数“0”が、乗数上位ワー
ドYH のリコード処理時には乗数MSBラッチR3の出
力すなわち乗数下位ワードYL のMSBが各々供給され
ので、乗数上位ワードYH と乗数下位ワードYL とが一
連の符号付き倍精度数として扱われる。また、乗算処理
部12における部分積の生成・加算にあたって、被乗数
極性反転信号C2に従い、被乗数下位ワードXL が符号
なし2進数として、被乗数上位ワードXH が2の補数表
示の2進数として各々扱われる。つまり、被乗数上位ワ
ードXH と被乗数下位ワードXLとが一連の符号付き倍
精度乗数として扱われる。したがって、本実施例の演算
装置によれば、乗算処理部12が単精度数入力対応であ
りながら、従来とは違って、被乗数下位ワードXL と乗
数下位ワードYL との全体を反映させた正確な倍精度乗
算結果が得られる。
【0074】また、本実施例によれば、乗数下位ワード
YL に基づく乗算を実行した時に状態レジスタ42の中
の下位乗算実行フラグ43に“1”をセットし、乗数上
位ワードYH に基づく乗算を実行した時に該下位乗算実
行フラグ43を“0”にリセットする構成を採用したの
で、プログラミングの自由度が高められる。例えば、上
述の命令Aと命令Bとの間に当該倍精度乗算に関係しな
い命令Jが挿入され、命令デコード及び制御部41が命
令A,J,Bをこの順にデコードする場合でも、命令B
の実行時には第1のセレクタ21が乗数MSBラッチR
3の出力を正しく選択できる。また、上述の命令Bと命
令Cとの間に当該倍精度乗算に関係しない命令Kが挿入
され、命令デコード及び制御部41が命令B,K,Cを
この順にデコードする場合でも、命令Cの実行時には第
1のセレクタ21が1ビット定数“0”を正しく選択で
きる。
【0075】上記の命令J,Kは、加算器14とその周
辺回路とを使用する加算命令であってもよい。例えば、
第3及び第4のセレクタ制御信号S3,S4を“0”と
すれば、記憶装置31から第1及び第2のデータバス3
2,33上に読み出された2つのデータを、被乗数ラッ
チR1及び乗数ラッチR2を介さずに、加算器14へ直
接導くことも可能である。ただし、加算結果ラッチR7
に保持された倍精度乗算の途中結果を壊さないようにす
るためには、加算命令の場合の加算器14の出力を保持
するための他の加算結果ラッチを設ける。
【0076】(実施例2)図3は、各々2の補数表示の
2進表現がなされた倍精度被乗数Xと倍精度乗数Yとの
乗算を実行するための本発明の第2の実施例に係る演算
装置のブロック図である。本実施例は、乗数上位ワード
YH に基づく乗算が乗数下位ワードYL に基づく乗算の
直後に必ず実行される場合に好適な実施例である。
【0077】図3中のR8は2ワード長のパイプライン
ラッチであって、図2中の乗算結果ラッチR4に相当す
るものである。図3中のR9は2ワード長の累算結果ラ
ッチであって、図2中の加算結果ラッチR7に相当する
ものである。本実施例では、図2中の第1の加算器入力
セレクタ23及び第1の加算器入力ラッチR5の配設は
省略され、累算結果ラッチR9の出力がアライナ13に
直接入力される。また、図2中の第2の加算器入力セレ
クタ24及び第2の加算器入力ラッチR6の配設は省略
され、パイプラインラッチR8の出力が加算器14に直
接入力される。パイプラインラッチイネーブル信号E8
は乗算処理部12の出力を保持するようにパイプライン
ラッチR8に、累算結果ラッチイネーブル信号E9は加
算器14の出力を保持するように累算結果ラッチR9に
各々命令デコード及び制御部41から与えられる。
【0078】本実施例では、被乗数ラッチR1及び乗数
ラッチR2に共通の乗算入力ラッチイネーブル信号が与
えられるのではなく、被乗数ラッチイネーブル信号E6
と乗数ラッチイネーブル信号E7とが分離されている。
また、命令デコード及び制御部41から出力される第1
のセレクタ制御信号S1は、ANDゲートを介さずに第
1のセレクタ21に直接供給される。第1のセレクタ2
1は、第1のセレクタ制御信号S1が“1”ならば乗数
MSBラッチR3の出力を、“0”ならば1ビット定数
“0”を各々選択する。
【0079】その他の点は図2と同様であるので、構成
の詳細説明は省略する。
【0080】図3の演算装置は、2つの単精度数/倍精
度数乗算命令P,Qを順次実行することにより、倍精度
乗算結果X×Yを求める。命令Pは、符号なし2進表現
がなされた単精度被乗数XL と2の補数表示の2進表現
がなされた倍精度乗数Yとの乗算のための命令である。
命令Qは、2の補数表示の2進表現がなされた単精度被
乗数XH と前記倍精度乗数Yとの乗算のための命令であ
る。命令Pの実行により2つの積XL ×YL 及びXL ×
YH が順次求められ、命令Qの実行により2つの積XH
×YL 及びXH ×YH が順次求められる。
【0081】図3の演算装置の動作シーケンスは、第1
の実施例と同様である。ただし、乗算XL ×YL に続く
乗算XL ×YH の実行時には、また乗算XH ×YL に続
く乗算XH ×YH の実行時には、命令デコード及び制御
部41は、被乗数ラッチイネーブル信号E6と乗数ラッ
チイネーブル信号E7とのうちの後者のみを“1”とす
る。この場合、第1の読み出しデータアドレスRA1を
記憶装置31に供給する必要はない。
【0082】本実施例の場合にも、第1のセレクタ21
からリコード部11へ、乗数下位ワードYL のリコード
処理時には1ビット定数“0”が、乗数上位ワードYH
のリコード処理時には乗数MSBラッチR3の出力すな
わち乗数下位ワードYL のMSBが各々供給されので、
乗数上位ワードYH と乗数下位ワードYL とが一連の符
号付き倍精度数として扱われる。また、乗算処理部12
における部分積の生成・加算にあたって、被乗数極性反
転信号C2に従い、被乗数下位ワードXL が符号なし2
進数として、被乗数上位ワードXH が2の補数表示の2
進数として各々扱われる。つまり、被乗数上位ワードX
H と被乗数下位ワードXL とが一連の符号付き倍精度数
として扱われる。したがって、本実施例の演算装置によ
っても、乗算処理部12が単精度数入力対応でありなが
ら、従来とは違って、被乗数下位ワードXL と乗数下位
ワードYL との全体を反映させた正確な倍精度乗算結果
が得られる。
【0083】
【発明の効果】以上説明してきたとおり、請求項1,5
の発明によれば、乗数上位ワードYHと乗数下位ワード
YL とが一連の符号付き倍精度数として扱われるよう
に、乗数下位ワードYL のMSBを乗数上位ワードYH
の最下位2ビットのリコード処理に反映させる構成を採
用したので、乗数下位ワードYL のMSBが1であって
も、単一の単精度乗算器で正確な倍精度乗算を実行でき
るようになる。
【0084】請求項2,3,6の発明によれば、被乗数
下位ワードXL を符号なし2進数として、被乗数上位ワ
ードXH を2の補数表示の2進数として各々区別して取
り扱う構成を採用したので、被乗数下位ワードXL のM
SBが1であっても、単一の単精度乗算器で正確な倍精
度乗算を実行できるようになる。
【0085】請求項4,8の発明によれば、乗数下位ワ
ードYL に関する一連の処理が完了した時点で下位乗算
実行フラグをセットする構成を採用したので、該乗数下
位ワードYL に関する一連の処理と乗数上位ワードYH
に関する一連の処理とを分離することが可能となる。
【0086】請求項7の発明によれば、単精度乗算器で
順次求められた第1及び第2の乗算結果の加算にあたっ
て、桁合わせのために第1の乗算結果に右シフト処理を
施したうえ該右シフト処理の結果と第2の乗算結果との
倍精度加算を実行する構成を採用したので、正確な倍精
度桁合わせ加算の実行が保証される。
【図面の簡単な説明】
【図1】本発明に係る倍精度乗算実行方法における乗数
上位ワード及び乗数下位ワードのリコード処理方法を示
す説明図である。
【図2】本発明の第1の実施例に係る演算装置のブロッ
ク図である。
【図3】本発明の第2の実施例に係る演算装置のブロッ
ク図である。
【図4】単一の単精度乗算器を用いた従来の倍精度乗算
実行方法を概念的に示す説明図である。
【符号の説明】
R1 被乗数ラッチ(被乗数ラッチ手段) R2 乗数ラッチ(乗数ラッチ手段) R3 乗数MSBラッチ(乗数MSBラッチ手段) R4 乗算結果ラッチ R5 第1の加算器入力ラッチ R6 第2の加算器入力ラッチ R7 加算結果ラッチ R8 パイプラインラッチ R9 累算結果ラッチ 11 リコード部(リコード手段) 12 乗算処理部(乗算手段) 13 アライナ(桁合わせ加算手段) 14 加算器(桁合わせ加算手段) 21 第1のセレクタ(選択手段) 22 第2のセレクタ 23,24 第1及び第2の加算器入力セレクタ 31 記憶装置 32,33 第1及び第2のデータバス 41 命令デコード及び制御部 42 状態レジスタ(状態レジスタ手段) 43 下位乗算実行フラグ 44 ANDゲート C1 アライナ制御信号 C2 被乗数極性反転信号 E1 乗算入力ラッチイネーブル信号 E2 乗算結果ラッチイネーブル信号 E3A 第1の加算器入力ラッチイネーブル信号 E3B 第2の加算器入力ラッチイネーブル信号 E4 加算結果ラッチイネーブル信号 E5 乗数MSBラッチイネーブル信号 E6 被乗数ラッチイネーブル信号 E7 乗数ラッチイネーブル信号 E8 パイプラインラッチイネーブル信号 E9 累算結果ラッチイネーブル信号 RA1 第1の読み出しデータアドレス RA2 第2の読み出しデータアドレス S1〜S4 第1〜第4のセレクタ制御信号 WA 書き込みデータアドレス XH 被乗数上位ワード XL 被乗数下位ワード YH 乗数上位ワード YL 乗数下位ワード

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 単精度乗算のための各々2の補数表示の
    2進数対応のリコード部と乗算処理部とを備えた演算装
    置において各々2の補数表示の2進表現がなされた倍精
    度被乗数と倍精度乗数との乗算を実行するための方法で
    あって、 乗数下位ワードの最上位ビットを保存するステップと、 前記乗数下位ワードの表現を各桁が−2,−1,0,1
    又は2の値を持つ4進SD表現に変換するように、かつ
    該乗数下位ワードの最下位2ビットの処理には更なる下
    位ビットとして値0を用いて、前記リコード部で乗数下
    位ワードにリコード処理を施すステップと、 被乗数の1ワードと前記リコード処理が施された乗数下
    位ワードとの部分積を生成し、該生成した部分積を加え
    合わせることにより、前記乗算処理部で第1の乗算結果
    を求めるステップと、 乗数上位ワードの表現を各桁が−2,−1,0,1又は
    2の値を持つ4進SD表現に変換するように、かつ該乗
    数上位ワードの最下位2ビットの処理には更なる下位ビ
    ットとして前記保存された乗数下位ワードの最上位ビッ
    トを用いて、前記リコード部で乗数上位ワードにリコー
    ド処理を施すステップと、 前記被乗数の1ワードと前記リコード処理が施された乗
    数上位ワードとの部分積を生成し、該生成した部分積を
    加え合わせることにより、前記乗算処理部で第2の乗算
    結果を求めるステップと、 前記第1及び第2の乗算結果の倍精度桁合わせ加算を実
    行するステップとを備えたことを特徴とする倍精度乗算
    実行方法。
  2. 【請求項2】 請求項1記載の倍精度乗算実行方法にお
    いて、 前記第1及び第2の乗算結果を求めるステップは、被乗
    数下位ワードを前記乗算処理部で例外的に符号なし2進
    数として処理するステップをそれぞれ備えたことを特徴
    とする倍精度乗算実行方法。
  3. 【請求項3】 請求項1記載の倍精度乗算実行方法にお
    いて、 前記第1及び第2の乗算結果を求めるステップは、被乗
    数上位ワードを前記乗算処理部で2の補数表示の2進数
    として処理するステップをそれぞれ備えたことを特徴と
    する倍精度乗算実行方法。
  4. 【請求項4】 請求項1記載の倍精度乗算実行方法にお
    いて、 前記乗数上位ワードにリコード処理を施すステップを起
    動できることを示すように、前記乗数下位ワードの最上
    位ビットを保存するステップと、前記乗数下位ワードに
    リコード処理を施すステップと、前記第1の乗算結果を
    求めるステップとの完了時に下位乗算実行フラグをセッ
    トするステップを更に備えたことを特徴とする倍精度乗
    算実行方法。
  5. 【請求項5】 各々2の補数表示の2進表現がなされた
    倍精度被乗数と倍精度乗数との乗算を実行するための演
    算装置であって、 被乗数下位ワードと被乗数上位ワードとを選択的に保持
    するための被乗数ラッチ手段と、 乗数下位ワードと乗数上位ワードとを選択的に保持する
    ための乗数ラッチ手段と、 乗数下位ワードの最上位ビットを保持するための乗数M
    SBラッチ手段と、 前記乗数ラッチ手段に乗数下位ワードが保持された場合
    には値0を、前記乗数ラッチ手段に乗数上位ワードが保
    持された場合には前記乗数MSBラッチ手段の出力を各
    々選択出力するための選択手段と、 前記乗数ラッチ手段の出力の表現を各桁が−2,−1,
    0,1又は2の値を持つ4進SD表現に変換するよう
    に、かつ該乗数ラッチ手段の出力の最下位2ビットの処
    理には更なる下位ビットとして前記選択手段の出力を用
    いて、前記乗数ラッチ手段の出力にリコード処理を施す
    ためのリコード手段と、 前記被乗数ラッチ手段の出力と前記リコード手段の出力
    との部分積を生成し、該生成した部分積を加え合わせる
    ことにより、前記乗数ラッチ手段に乗数下位ワードが保
    持された場合には第1の乗算結果を求め、前記乗数ラッ
    チ手段に乗数上位ワードが保持された場合には第2の乗
    算結果を求めるための乗算手段と、 前記乗算手段で求められた第1及び第2の乗算結果の倍
    精度桁合わせ加算を実行するための桁合わせ加算手段と
    を備えたことを特徴とする演算装置。
  6. 【請求項6】 請求項5記載の演算装置において、 前記乗算手段は、前記被乗数ラッチ手段に被乗数下位ワ
    ードが保持された場合には該被乗数下位ワードを符号な
    し2進数として処理し、前記被乗数ラッチ手段に被乗数
    上位ワードが保持された場合には該被乗数上位ワードを
    2の補数表示の2進数として処理する機能を備えたこと
    を特徴とする演算装置。
  7. 【請求項7】 請求項5記載の演算装置において、 前記桁合わせ加算手段は、 前記第1の乗算結果に右シフト処理を施すためのアライ
    ナと、 前記右シフト処理が施された第1の乗算結果と、前記第
    2の乗算結果との倍精度加算を実行するための加算器と
    を備えたことを特徴とする演算装置。
  8. 【請求項8】 請求項5記載の演算装置において、 前記リコード手段による乗数上位ワードの処理を開始で
    きることを示すように前記乗数下位ワードに基づく第1
    の乗算結果の算出時にセットされる下位乗算実行フラグ
    を格納するための状態レジスタ手段を更に備えたことを
    特徴とする演算装置。
JP06167577A 1994-07-20 1994-07-20 倍精度乗算を実行する方法及び演算装置 Expired - Fee Related JP3096574B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06167577A JP3096574B2 (ja) 1994-07-20 1994-07-20 倍精度乗算を実行する方法及び演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06167577A JP3096574B2 (ja) 1994-07-20 1994-07-20 倍精度乗算を実行する方法及び演算装置

Publications (2)

Publication Number Publication Date
JPH0830439A JPH0830439A (ja) 1996-02-02
JP3096574B2 true JP3096574B2 (ja) 2000-10-10

Family

ID=15852332

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06167577A Expired - Fee Related JP3096574B2 (ja) 1994-07-20 1994-07-20 倍精度乗算を実行する方法及び演算装置

Country Status (1)

Country Link
JP (1) JP3096574B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233597B1 (en) 1997-07-09 2001-05-15 Matsushita Electric Industrial Co., Ltd. Computing apparatus for double-precision multiplication

Also Published As

Publication number Publication date
JPH0830439A (ja) 1996-02-02

Similar Documents

Publication Publication Date Title
US6564239B2 (en) Computer method and apparatus for division and square root operations using signed digit
JP4477279B2 (ja) 結合された積和演算器を備えたデジタル信号プロセッサ
EP1293891B2 (en) Arithmetic processor accomodating different finite field size
US6209017B1 (en) High speed digital signal processor
US5583804A (en) Data processing using multiply-accumulate instructions
US5426600A (en) Double precision division circuit and method for digital signal processor
JP7096828B2 (ja) 入力オペランド値を処理するための装置及び方法
JP2001524698A (ja) マルチプレシジョン整数演算用の装置
JPS5862746A (ja) 割算装置
JP2006146644A (ja) プロセッサ
JPH0844540A (ja) 並列乗算論理回路
JPH0570180B2 (ja)
US20040117421A1 (en) Methods and systems for computing floating-point intervals
JP3096574B2 (ja) 倍精度乗算を実行する方法及び演算装置
US5912904A (en) Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method
US8219604B2 (en) System and method for providing a double adder for decimal floating point operations
KR100481586B1 (ko) 모듈러 곱셈 장치
CN113050919A (zh) 用于乘法器密集映射的高效逻辑块架构
JP3336986B2 (ja) 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器
JP2508286B2 (ja) 平方根演算装置
JPH04314126A (ja) 逆数発生装置
JP2778478B2 (ja) 相関演算プロセッサ
KR100246472B1 (ko) 디지탈신호처리기
JPH08292875A (ja) 乗算処理装置
Hartley et al. Online Arithmetic

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000725

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070804

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080804

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080804

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090804

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090804

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100804

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110804

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110804

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120804

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees