JPH05216626A - 乗算器 - Google Patents
乗算器Info
- Publication number
- JPH05216626A JPH05216626A JP4017339A JP1733992A JPH05216626A JP H05216626 A JPH05216626 A JP H05216626A JP 4017339 A JP4017339 A JP 4017339A JP 1733992 A JP1733992 A JP 1733992A JP H05216626 A JPH05216626 A JP H05216626A
- Authority
- JP
- Japan
- Prior art keywords
- multiplier
- bit
- bits
- multiplication
- partial product
- 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.)
- Withdrawn
Links
Abstract
(57)【要約】
【目的】部分積の加算速度を速くすると共に、ハードウ
ェアの規模の増大を抑える。 【構成】2n×2nビットの乗算を(n+1)×nビッ
トの乗算を4回繰り返すようにYHレジスタ1,YLレ
ジスタ2,選択回路3、2次のブースのデコーダ4を構
成する。
ェアの規模の増大を抑える。 【構成】2n×2nビットの乗算を(n+1)×nビッ
トの乗算を4回繰り返すようにYHレジスタ1,YLレ
ジスタ2,選択回路3、2次のブースのデコーダ4を構
成する。
Description
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は乗算器に関し、特に単精
度乗算器を用いて倍精度乗算を実行する乗算器に関す
る。
度乗算器を用いて倍精度乗算を実行する乗算器に関す
る。
【0002】
【従来の技術】2の補数表示の2nビット×2nビット
の乗算を行う乗算器について説明する。
の乗算を行う乗算器について説明する。
【0003】図2は従来のこの種の乗算器の一例を示す
回路図である。
回路図である。
【0004】この従来の乗算器においては、2の補数表
示された2nビットの数どうしの乗算を行う場合、被乗
数をX、乗数をYとすると
示された2nビットの数どうしの乗算を行う場合、被乗
数をX、乗数をYとすると
【0005】
【0006】と書ける。X,Yの積をPとすると
【0007】
【0008】ここで
【0009】
【0010】とおくと P=(2n ・R+S)・(2n ・Q+T) =22nR・Q+2n ・(R・T+S・Q)+S・T …(10) となる。よって2nビットの倍精度乗算は、 R・Q:(2の補数)×(2の補数) R・T:(2の補数)×(絶対値) S・Q:(絶対値)×(2の補数) S・T:(絶対値×(絶対値) の4種のnビットの単精度乗算を行い式(10)に従っ
て22nまたは2n の重み付けのためのシフトと加算によ
って行うことができる。
て22nまたは2n の重み付けのためのシフトと加算によ
って行うことができる。
【0011】従来、2の補数と絶対値の混在したこの4
種のnビッド×nビット乗算を同一のハードウェアを用
いて実行するために、(n+1)ビット×(n+1)ビ
ットの乗算器を用いていた。これは2の補数表現のデー
タのMSBを1ビット符号拡張して(n+1)をビット
データとし、絶対値のデータはMSBの第(n+1)ビ
ット目を0にし、結局4種のnビット乗算を(n+1)
ビットの2の補数乗算に帰着させるものである。この規
則に従い、(6)式〜(9)式を変形した式が(11)
式〜(14)式でありその演算結果が(15)式であ
る。
種のnビッド×nビット乗算を同一のハードウェアを用
いて実行するために、(n+1)ビット×(n+1)ビ
ットの乗算器を用いていた。これは2の補数表現のデー
タのMSBを1ビット符号拡張して(n+1)をビット
データとし、絶対値のデータはMSBの第(n+1)ビ
ット目を0にし、結局4種のnビット乗算を(n+1)
ビットの2の補数乗算に帰着させるものである。この規
則に従い、(6)式〜(9)式を変形した式が(11)
式〜(14)式でありその演算結果が(15)式であ
る。
【0012】
【0013】よって Pa=22nRaQa+2n (RaTa+SaQa)+SaTa …(15) 2次のブースのデコーダ4aの入力として、YLレジス
タ2a及びYHレジスタ1aのいずれかが乗算の組合せ
によって選択されてる。YLレジスタ2aは(15)
式、YHレジスタ1aは(11)式に従ってレジスタが
構成されている。部分積生成回路8では、2次のブース
のデコーダ4a、選択回路7の出力を受けて(11)式
〜(15)式に従い部分積の各項が生成される。
タ2a及びYHレジスタ1aのいずれかが乗算の組合せ
によって選択されてる。YLレジスタ2aは(15)
式、YHレジスタ1aは(11)式に従ってレジスタが
構成されている。部分積生成回路8では、2次のブース
のデコーダ4a、選択回路7の出力を受けて(11)式
〜(15)式に従い部分積の各項が生成される。
【0014】次に部分積加算回路9において、部分積生
成回路8から出力された部分積が加算される。さらに、
部分積加算回路9から出力される結果を算術回路10に
よってシフト加算を繰り返すことによって2nビット×
2nビットの乗算を行うことができる。この時シフト量
は(15)式で示されている2n 及び22nの重み付けで
決まる。
成回路8から出力された部分積が加算される。さらに、
部分積加算回路9から出力される結果を算術回路10に
よってシフト加算を繰り返すことによって2nビット×
2nビットの乗算を行うことができる。この時シフト量
は(15)式で示されている2n 及び22nの重み付けで
決まる。
【0015】
【発明が解決しようとする課題】上述した従来の乗算器
では、2nビットの倍精度データを、2個のnビットの
単精度データに分けて(2の補数)×(2の補数)、
(2の補数)×(絶対値)、(絶対値)×(2の補数)
及び(絶対値)×(絶対値)の4種類の乗算を同一のハ
ードウェアで実行するために、2の補数データはMSB
を1ビット符号拡張し、絶対値データはMSBの第(n
+1)ビット目を0にし、結局(n+1)ビットの2の
補数乗算に帰着させている。よってデータのビット数が
元のデータのビット数よりも増加しているため、ブース
のアルゴリズムによって生成される部分積の数が1個増
加している。従って、部分積の演算スピードが遅くな
り、ハードウェアも大きくなるという問題があった。
では、2nビットの倍精度データを、2個のnビットの
単精度データに分けて(2の補数)×(2の補数)、
(2の補数)×(絶対値)、(絶対値)×(2の補数)
及び(絶対値)×(絶対値)の4種類の乗算を同一のハ
ードウェアで実行するために、2の補数データはMSB
を1ビット符号拡張し、絶対値データはMSBの第(n
+1)ビット目を0にし、結局(n+1)ビットの2の
補数乗算に帰着させている。よってデータのビット数が
元のデータのビット数よりも増加しているため、ブース
のアルゴリズムによって生成される部分積の数が1個増
加している。従って、部分積の演算スピードが遅くな
り、ハードウェアも大きくなるという問題があった。
【0016】
【課題を解決するための手段】本発明の乗算器は、2n
ビットの被乗数X,乗数Yのうちの乗数Yに2次のブー
スのアルゴリズムを用いてデコードし部分積生成回路の
乗数側に入力しn×nビット(nは任意の自然数)の単
精度乗算器により乗算する乗算器において、前記乗数Y
を
ビットの被乗数X,乗数Yのうちの乗数Yに2次のブー
スのアルゴリズムを用いてデコードし部分積生成回路の
乗数側に入力しn×nビット(nは任意の自然数)の単
精度乗算器により乗算する乗算器において、前記乗数Y
を
【0017】
【0018】と表しこの乗数Yに対する2次のブースの
アルゴリズムの式を Ej =−2y2j+1+y2j+y2j-1 …(c) としてこれをデコードするデコーダの入力を、
(y2j+1,y2j,y2j-1)としてEj =−2y2j+1+y
2j+y2j-1をデコードする場合と、(y2j+1+n,
y2j+n,y2j-1+n)としてEj+n =−2y2j+1+n+y
2j+n+y2j-1+nをデコードする場合とに切り替えるよう
にして構成される。
アルゴリズムの式を Ej =−2y2j+1+y2j+y2j-1 …(c) としてこれをデコードするデコーダの入力を、
(y2j+1,y2j,y2j-1)としてEj =−2y2j+1+y
2j+y2j-1をデコードする場合と、(y2j+1+n,
y2j+n,y2j-1+n)としてEj+n =−2y2j+1+n+y
2j+n+y2j-1+nをデコードする場合とに切り替えるよう
にして構成される。
【0019】
【実施例】次に本発明について図面を参照して説明す
る。
る。
【0020】図1は本発明の一実施例を示すブロック図
である。
である。
【0021】2の補数表現された2nビットの数どうし
の乗算を行う場合、被乗数Xは
の乗算を行う場合、被乗数Xは
【0022】
【0023】符号を1ビット拡張して
【0024】
【0025】と表現することができる。但し、
【0026】
【0027】この様に2nビットの2の補数データを上
位(n+1)ビット、下位(n+1)ビットの2つの2
の補数データにわけることができる。
位(n+1)ビット、下位(n+1)ビットの2つの2
の補数データにわけることができる。
【0028】乗数Yは2次のブースのアルゴリズムを用
いて
いて
【0029】
【0030】と表現することができる。但し、
【0031】
【0032】この様に上位nビット、下位nビットをわ
けることができる。
けることができる。
【0033】よってX、Yの積をPとおくと P=X・Y =(XH+XL)・(YH+YL) …(23) 従って、乗算X・Yは乗算XH・YH、XH・YL、X
L・YH及びXL・YLを行いその結果を累算するのと
等価である。
L・YH及びXL・YLを行いその結果を累算するのと
等価である。
【0034】実際に乗算を行ってみると
【0035】
【0036】ここで、
【0037】
【0038】符号部は、−Aj ・2n =−2n+1 +bA
j ・2n +2n (但し、bAはAの否定)とおくと、
j ・2n +2n (但し、bAはAの否定)とおくと、
【0039】
【0040】よって符号部は(26)式の様になり、マ
イナスは22n-1の項だけである。
イナスは22n-1の項だけである。
【0041】またAj はEj の値により Ej >0 Aj =xs Ej =0 Aj =0 Ej =0 Aj =bxs となるが、xs =0なのでEj の値にかかわらずAj =
0である。
0である。
【0042】数値部は
【0043】
【0044】となる。
【0045】同様にして、XH・YL、XL・YH、X
H・YHの乗算を行うと以下のようになる。
H・YHの乗算を行うと以下のようになる。
【0046】
【0047】これより、XH・YH、XH・YL、XL
・YH、XL・YLの乗算は乗算結果の重み付けを変え
るだけで、同一のハードウェアで実現できる事が解る。
・YH、XL・YLの乗算は乗算結果の重み付けを変え
るだけで、同一のハードウェアで実現できる事が解る。
【0048】図1を参照すると、2次のブースのデコー
ダ4の入力として、YLレジスタ2,YHレジスタ1の
いずれかが乗算の組合せによって選択されている。YL
レジスタ2のLSBには“0”、YHレジスタ1のLS
Bにはyn-1 が代入されており、これは(21)式及び
(22)式に従ってこれらレジスタが構成されているこ
とを示す。
ダ4の入力として、YLレジスタ2,YHレジスタ1の
いずれかが乗算の組合せによって選択されている。YL
レジスタ2のLSBには“0”、YHレジスタ1のLS
Bにはyn-1 が代入されており、これは(21)式及び
(22)式に従ってこれらレジスタが構成されているこ
とを示す。
【0049】部分積生成回路8では、2次のブースのデ
コーダ4,選択回路7の出力を受けて(27)式〜(3
0)式に従い部分積の各項が生成される。
コーダ4,選択回路7の出力を受けて(27)式〜(3
0)式に従い部分積の各項が生成される。
【0050】次に部分積加算回路9において、部分積生
成回路8から出力された部分積が加算される。さらに、
部分積加算回路9から出力される結果を算術回路10に
よってシフト加算を繰り返すことによって2nビット×
2nビットの乗算を行うことができる。この時シフト量
は(25)式(30)式で示されている重み付けで決ま
る。
成回路8から出力された部分積が加算される。さらに、
部分積加算回路9から出力される結果を算術回路10に
よってシフト加算を繰り返すことによって2nビット×
2nビットの乗算を行うことができる。この時シフト量
は(25)式(30)式で示されている重み付けで決ま
る。
【0051】
【発明の効果】以上説明したように本発明は、例えばn
が4ビット,8ビット,16ビット,32ビット、及び
64ビット等の場合の2nビット×2nビットの倍精度
乗算を(n+1)ビット×nビットの乗算を4回繰り返
すことによって行っているため、生成される部分積の数
を2次のブースのアルゴリズムを用いた場合n個にで
き、よって部分積の加算スピードを高めることができ、
またハードウェアの規模の増加を抑えることができる効
果がある。
が4ビット,8ビット,16ビット,32ビット、及び
64ビット等の場合の2nビット×2nビットの倍精度
乗算を(n+1)ビット×nビットの乗算を4回繰り返
すことによって行っているため、生成される部分積の数
を2次のブースのアルゴリズムを用いた場合n個にで
き、よって部分積の加算スピードを高めることができ、
またハードウェアの規模の増加を抑えることができる効
果がある。
【図1】本発明の一実施例のブロック図である。
【図2】従来の乗算器の一例を示すブロック図である。
1,1a YHレジスタ 2,2a YLレジスタ 3 選択回路 4,4a 2次のブースのデコーダ 5 XHレジスタ 6 XLレジスタ 7 選択回路 8 部分積生成回路 9 部分加算回路 10 算術回路 11 出力レジスタ
Claims (2)
- 【請求項1】 2nビットの被乗数X,乗数Yのうちの
乗数Yに2次のブースのアルゴリズムを用いてデコード
し部分積生成回路の乗数側に入力しn×nビット(nは
任意の自然数)の単精度乗算器により乗算する乗算器に
おいて、前記乗数Yを と表しこの乗数Yに対する2次のブースのアルゴリズム
の式を Ej =−2y2j+1+y2j+y2j-1 …(c) としてこれをデコードするデコーダの入力を、
(y2j+1,y2j,y2j-1)としてEj =−2y2j+1+y
2j+y2j-1をデコードする場合と、(y2j+1+n,
y2j+n,y2j-1+n)としてEj+n =−2y2j+1+n+y
2j+n+y2j-1+nをデコードする場合とに切り替えるよう
にしたことを特徴とする乗算器。 - 【請求項2】 2次のブースのデコーダの入力端に、E
j とEj+n とを切り替える選択回路が設けられた請求項
1記載の乗算器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4017339A JPH05216626A (ja) | 1992-02-03 | 1992-02-03 | 乗算器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4017339A JPH05216626A (ja) | 1992-02-03 | 1992-02-03 | 乗算器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05216626A true JPH05216626A (ja) | 1993-08-27 |
Family
ID=11941299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4017339A Withdrawn JPH05216626A (ja) | 1992-02-03 | 1992-02-03 | 乗算器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05216626A (ja) |
Cited By (1)
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 |
-
1992
- 1992-02-03 JP JP4017339A patent/JPH05216626A/ja not_active Withdrawn
Cited By (1)
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 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1231455A (en) | Nonrestoring divider | |
JPH0713742A (ja) | 乗算装置 | |
JPH0612229A (ja) | 乗累算回路 | |
JPH0456339B2 (ja) | ||
JPH07121354A (ja) | 倍精度・単精度・内積演算および複素乗算が可能な乗算器 | |
US5870322A (en) | Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication | |
JP3660075B2 (ja) | 除算装置 | |
JPH05216626A (ja) | 乗算器 | |
JP2578482B2 (ja) | 浮動小数点演算器 | |
JP3190826B2 (ja) | 積和演算装置 | |
JPH056263A (ja) | 加算器およびその加算器を用いた絶対値演算回路 | |
JPH02287874A (ja) | 積和演算装置 | |
JP2606326B2 (ja) | 乗算器 | |
JP3071607B2 (ja) | 乗算回路 | |
JPS58181143A (ja) | デイジタル乗算器 | |
JP3610564B2 (ja) | 情報処理装置 | |
JP4042215B2 (ja) | 演算処理装置およびその方法 | |
JPH0784762A (ja) | 乗算回路 | |
JP2508286B2 (ja) | 平方根演算装置 | |
JP2580413B2 (ja) | 乗算処理装置 | |
JP3198868B2 (ja) | 乗算処理装置 | |
JP3106767B2 (ja) | 乗算方法及び乗算回路 | |
JPH1011267A (ja) | 乗算器 | |
JP2001134556A (ja) | 繰り返し型乗算器とアレイ型乗算器 | |
JP2568608B2 (ja) | 乗算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19990518 |