JPH07121354A - 倍精度・単精度・内積演算および複素乗算が可能な乗算器 - Google Patents

倍精度・単精度・内積演算および複素乗算が可能な乗算器

Info

Publication number
JPH07121354A
JPH07121354A JP5263724A JP26372493A JPH07121354A JP H07121354 A JPH07121354 A JP H07121354A JP 5263724 A JP5263724 A JP 5263724A JP 26372493 A JP26372493 A JP 26372493A JP H07121354 A JPH07121354 A JP H07121354A
Authority
JP
Japan
Prior art keywords
multiplicand
input
multiplier
bit
word
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
Application number
JP5263724A
Other languages
English (en)
Other versions
JP3637073B2 (ja
Inventor
Mikio Shiraishi
幹雄 白石
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP26372493A priority Critical patent/JP3637073B2/ja
Priority to KR1019940026822A priority patent/KR100305530B1/ko
Priority to EP94116565A priority patent/EP0650115B1/en
Priority to DE69426801T priority patent/DE69426801T2/de
Priority to US08/326,210 priority patent/US5521856A/en
Publication of JPH07121354A publication Critical patent/JPH07121354A/ja
Application granted granted Critical
Publication of JP3637073B2 publication Critical patent/JP3637073B2/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/4806Computations with complex numbers
    • G06F7/4812Complex multiplication
    • 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
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (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)【要約】 【目的】一度に複数のデータ対の乗算が可能な乗算器を
提供する。 【構成】アンドゲ−ト7は、制御信号S1 に基づき、被
乗数の上位ワードY7-4が入力されるブースデコーダ1
の最下位ビット入力に、被乗数の下位ワードY3-0 の最
上位ビットと0とを切り替えて入力する。ブ−スのセレ
クタ2は、部分積の一部を0で置き換える。並列加算回
路3は、部分積の他の一部をそれよりも下位のビットの
部分積の1ビットで置き換える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、乗算器に関するもの
で、特に並列型乗算器に使用されるものである。
【0002】
【従来の技術】図5は、ブース(Booth)のアルゴ
リズムを利用した従来の並列型乗算器を示している。図
5において、1は、ブースのデコーダ、2は、ブースの
セレクタ、3は、部分積を加算するための並列加算回路
である。
【0003】図6は、図5のブースのデコーダ1を構成
する回路の一例を示している。図6において、4は、ナ
ンド・ゲート、5は、ノア・ゲート、6は、オア・ゲー
ト、7は、アンド・ゲート、8は、インバータである。
【0004】図7は、図5のブースのセレクタ2を構成
する回路の一例を示している。図7において、9は、エ
クスクルーシブ・ノア・ゲートである。なお、並列加算
回路3については、例えば特開昭63−55627に開
示されるものを使用することができる。
【0005】ブースのアルゴリズムは、第1式及び第2
式のように、2の補数表現された乗数Xと被乗数Yを高
速に乗算するためのアルゴリズムである。このアルゴリ
ズムでは、第3式のように、被乗数Yの値を3ビット毎
にデコーダ1でデコードし、そのデコード結果に応じて
乗数Xの各ビットをセレクタ2で選択すると、部分積p
m が生成される。
【0006】積Zは、第4式のように、部分積pm をm
=0からm=n/2−1まで足し合わせることによって
得られる。このアルゴリズムによれば、部分積の数は、
部分積の生成にアンドゲートを用いるアレイ型乗算器の
半分にできるため、演算速度を高速にできる。通常、m
=0のときのy2m-1の値は0とおく。 (乗数) X=−2n-1n-1 +2n-2n-2 +…+2x1 +x0 [1] (被乗数)Y=−2n-1n-1 +2n-2n-2 +…+2y1 +y0 [2] (部分積)pm =X(−2y2m+1+y2m+y2m-1)22m [3] ここで、 y-1=0である。 となる。
【0007】近年、携帯用情報通信機器の普及により、
これらの機器に搭載されるLSIには、電池寿命の長期
化を図るため、消費電力が少ないものが要求されてい
る。さらに、雑音や回線容量の不足に対処するため処理
のディジタル化が必須となり、当該機器には、ディジタ
ル信号処理用のLSI、即ちディジタル・シグナル・プ
ロセッサ(DSP)が搭載されるようになった。
【0008】また、近年の携帯用情報通信機器は、ディ
ジタル・シグナル・プロセッサの搭載により、複雑かつ
高度な処理が実現できるようになったが、処理が高度化
するにつれて、次のような問題も発生している。
【0009】即ち、ディジタル・シグナル・プロセッサ
の動作原理は、一般のマイクロプロセッサと変わらない
ため、処理が複雑になればなるほど処理時間が長くな
る。実時間動作が必要な携帯用情報通信機器において
は、処理時間に上限があるので、動作クロックの周波数
を上げざるを得ない。ところが、クロック周波数を上げ
ると、単位時間内にLSI内部で充放電される電流が増
え、消費電力が増大する。このような事態は、携帯用情
報通信機器に搭載されるLSIに対する要求と相反する
ものである。
【0010】こうした問題を回避する手段として、処理
の並列化がある。処理の並列化は、複数の処理を並列に
実行するもので、クロック周波数を上げずに、単位時間
内の処理量を増やすことが可能である。
【0011】しかし、ディジタル信号処理の基本演算
は、積和演算、即ち乗算した結果を累積加算する操作で
ある。従って、ディジタル・シグナル・プロセッサに
は、乗算器と加算器の両方が内蔵されている。
【0012】このため、上述のような従来の乗算器で
は、一度に1対のデータ(X,Y)しか乗算できないた
め、積和演算を並列化により、2倍の速度で実行しよう
とすると、2つの同じ乗算器2をディジタル・シグナル
・プロセッサに内蔵しなければならなくなる。
【0013】また、乗算結果を累積加算するためには、
少なくとも2つの加算器を内蔵する必要がある。さら
に、最終的な累積加算結果を得ようとすると、別々に加
算された結果を足し合わせなければならないため、もう
1つ加算器を内蔵するか、別々に加算された結果を保存
するためのレジスタ(アキュムレータ)を2組用意しな
ければならない。
【0014】こうした並列化されたアーキテクチャを使
いこなすには、最適化機能付きのコンパイラが不可欠で
ある。しかし、コンパイラのオブジェクト変換効率が十
分でないため、ディジタル・シグナル・プロセッサのプ
ログラミングは、普通アセンブラを用いて行われてい
る。このことから、並列化されたアーキテクチャは、プ
ログラムに最適化の負担をかけ、ソフトウエアの開発効
率を落としてしまう。
【0015】さらに、ディジタル信号処理には、演算精
度の問題が常につきまとう。これは、固定小数点DSP
を採用したときに特に問題となる。累積加算により、乗
算結果に含まれる誤差も累積され、システム全体の動作
が不安定になってしまうのである。
【0016】なお、倍精度演算を取り入れると、精度の
問題は改善されるが、倍精度乗算器は単精度乗算器の4
倍の回路規模があり、LSI上の面積占有率が大きくな
る。これに従来の乗算器を用いると、上で述べた理由か
ら、処理の並列化に際して乗算器が複数必要になるた
め、実用には、はなはだ不向きである。
【0017】
【発明が解決しようとする課題】このように、従来は、
処理が複雑になるにつれてクロック周波数を上げなけれ
ばならず、消費電力が増大する欠点がある。また、処理
の並列化は、ディジタル・シグナル・プロセッサの回路
規模を大きくする欠点がある。また、並列化されたア−
キテクチャはプログラマに最適化の負担をかけるなどの
欠点がある。
【0018】本発明は、上記欠点を解決すべくなされた
もので、その目的は、消費電力の増大や回路規模の増大
なく、一度に複数のデータ対の乗算が可能な乗算器を提
供することである。
【0019】
【課題を解決するための手段】上記目的を達成するた
め、本発明の乗算器は、ブースのアルゴリズムを利用
し、被乗数の上位ワードが入力されるブースデコーダの
最下位ビット入力に被乗数の下位ワードの最上位ビット
と0とを切り替えて入力する被乗数分割手段と、部分積
の一部を0で置き換える0化手段と、部分積の他の一部
をそれよりも下位のビットの部分積の1ビットで置き換
えるビット拡張手段とから構成されている。
【0020】本発明の乗算器は、ブースのアルゴリズム
を利用しており、被乗数の下位ワードが入力されるブー
スデコーダの最下位ビット入力に0と1とを切り替えて
入力すると共に、前記ブースデコーダに被乗数の下位ワ
ードとその反転信号とを切り替えて入力する被乗数補数
化手段と、被乗数の上位ワードが入力されるブースデコ
ーダの最下位ビット入力に被乗数の下位ワードの最上位
ビットと0とを切り替えて入力する被乗数分割手段と、
部分積の一部を0で置き換える0化手段と、部分積の他
の一部をそれよりも下位のビットの部分積の1ビットで
置き換えるビット拡張手段とから構成されている。
【0021】本発明の乗算器は、ブースのアルゴリズム
を利用しており、被乗数の上位ワードが入力されるブー
スデコーダの最下位ビット入力に被乗数の下位ワードの
最上位ビットと1とを切り替えて入力する被乗数分割手
段と、被乗数の上位ワードとその反転信号とを切り替え
て入力する被乗数反転手段と、部分積の一部を0で置き
換える0化手段と、部分積の他の一部をそれよりも下位
のビットの部分積の1ビットで置き換えるビット拡張手
段とから構成されている。
【0022】
【作用】上記構成によれば、乗算器内部で生成される部
分積の一部を0にし、また、部分積の他の一部をそれよ
りも下位の部分積の1ビットで置き換えることによっ
て、1つの乗算器の中で、複数のデータ対の乗算が可能
になる。
【0023】また、一度に複数のデータ対の乗算が可能
なため、1つの乗算器でありながら、通常の乗算はもち
ろんのこと、倍精度乗算、ベクトルの内積、複素乗算が
可能である。
【0024】本乗算器をプロセッサに応用すると、上記
すべての演算が単一マシンサイクルで実行できるため、
プログラムのステップ数が削減され、特に積和演算が主
体の信号処理プログラムにおいて、従来の約1/2にま
でステップ数を短縮できる。
【0025】また、演算スループットを同一とすると、
マシンサイクルは従来よりも長くとれるため、プロセッ
サ全体の消費電力が削減される。特に、信号処理を専門
に行うディジタル・シグナル・プロセッサにおいては、
従来の約1/2にまで消費電力を削減できる。
【0026】
【実施例】以下、図面を参照しながら、本発明の乗算器
について詳細に説明する。まず、第1の実施例について
説明する。図1は、本発明の第1の実施例に係わる乗算
器を示している。図1において、1は、ブースのデコー
ダ、2は、ブースのセレクタ、3は、部分積加算のため
の並列加算回路、7は、アンドゲート、10は、セレク
タである。
【0027】図2は、本発明の乗算器に使用するセレク
タ10の一例を示す回路図である。図2において、5
は、ノア・ゲート、7は、アンド・ゲート、8は、イン
バータである。
【0028】図1の乗算器の動作を説明する。まず、乗
数Xと被乗数Yとを上位ワードと下位ワードとに分割
し、 (乗数) X=XH +XL [5] (被乗数)Y=YH +YL [6] とする。
【0029】このとき、積Zは次式で表される。 (積) Z=(XH +XL )(YH +YL ) =XHH +XHL +XLH +XLL [7] なお、図1のX7-4 、X3-0 がそれぞれXH 、XL の入
力端子であり、図1のY7-4 、X3-0 がそれぞれYH
L の入力端子である。また、S1 は、制御信号であ
る。
【0030】この実施例では、入力信号をワードごとに
加工し、制御信号S1 を切り換えることにより、単精
度、倍精度、それに内積の3種類の乗算が可能である。
以下、単精度、倍精度及び内積の乗算について順次説明
する。
【0031】[単精度]第7式において、乗数、被乗数
の下位ワードXL 、YL をXL =0、YL =0とおく
と、第7式の第2〜4項はすべて0になるので、積Z
は、 (単精度) Z=XHH [8] になる。
【0032】XL =0、LL =0にするには、図1で制
御信号S1 =1とし、入力端子X3-0 、Y3-0 に0を入
力する。制御信号S1 =1のときには、この実施例の乗
算器は、図5の従来例と同じ動作を行う。セレクタ10
は、右側の入力X7 ,X6 ,X5 ,X4 を選択し、アン
ド・ゲート7は、一方の入力端子に入力されている制御
信号S1 が1になるので、他方の入力をそのまま出力す
る。
【0033】この状態で、XH 、YH 、即ちX7-4 、Y
7-4 に4ビットの単精度データを入力すれば、単精度乗
算の結果が得られる。入力データが固定小数点データの
ときは、出力の小数点位置は、Z14とZ13の間になり、
入力データが整数データのときは、出力の小数点位置
は、Z8 とZ7 の間になる。
【0034】[倍精度]第7式をそのまま計算する。図
1で制御信号S1 =1とすれば、本実施例の乗算器は、
図5の従来の乗算器と同じ動作をするので、X,Yに8
ビットの倍精度データを入力すれば、出力に倍精度乗算
の結果が得られる。
【0035】入力データが固定小数点データのときは、
出力の小数点位置は、Z14とZ13の間になり、入力デー
タが整数データのときは、出力の小数点位置は、Z0
すぐ下になる。
【0036】[内積] 2つのベクトル → A=(a0 ,a1 ) → B=(b0 ,b1 ) の内積は次のようにして計算できる。
【0037】まず、第7式において、 XH =a1 , XL =a0 , YH =b0 , YL =b1 . [9] とおいて乗算を実行する。
【0038】その結果、次式が得られる。 Z=a10 +a11 +a00 +a01 [10] 第10式において、第1項と第4項とを乗算器内部で0
にすると、第11式が (内積) Z=a11 +a00 [11] 第9式を実行するには、乗数の上位ワードX7-4 にa1
を、下位ワードX3-0にa0 をそれぞれ4ビット・デー
タとして入力し、被乗数の上位ワードY7-4 にb0 を、
下位ワードY3-0 にb1 をそれぞれ4ビット・データと
して入力する。
【0039】第10式で、第1項と第4項とを乗算器内
部で0にする操作は、制御信号S1=0にすることに対
応する。このとき、アンド・ゲート7は0を出力し、セ
レクタ10は乗数の下位ワードXL の符号ビットX3
出力するので、XLL =a01 に対応する部分積P
03〜P00、P13〜P10を生成するブースのセレクタ2の
左右の入力L、Rにはどちらにも0が入力され、XH
H =a10 に対応する部分積P28〜P24、P38〜P34
を生成するブースのセレクタ2の左右の入力L、Rには
どちらにも符号ビットX3 が入力される。
【0040】また、被乗数Yの上位ワードYH =b0
入力されるブースのデコーダ1の最下位ビット入力Y
m-1 には、Y3 の代わりに0が入力されるので、被乗数
Yの上位ワードYH =b0 と下位ワードYL =b1 とは
独立した4ビットの数値としてデコードされる。その結
果、第7式の第1項と第4項、即ち第10式の第1項と
第4項が0となって、第11式の値が出力される。
【0041】入力データが固定小数点データのときは、
出力の小数点位置は、Z10とZ9 の間になり、入力デー
タが整数データのときは、出力の小数点位置は、Z4
3の間になる。このことは、内積演算では、オーバー
フロー(桁溢れ)が生じないことを意味する。オーバー
フローは、乗算で1ビット、加算で1ビット発生する可
能性がある。内積演算では2組の乗算が行われるから、
オーバーフローの桁数は、合計3ビットである。符号ビ
ットの上には上下各ワードのビット数分符号拡張がされ
ているので、各ワードのビット数が2ビットよりも大き
ければオーバーフローは生じない。次に、第2の実施例
について説明する。図3は、本発明の第2の実施例に係
わる乗算器を示している。図3において、11は、エク
スクルーシブ・オア・ゲート、S2 は、制御信号であ
る。なお、図1と同じ構成要素には同じ番号を付して、
その説明を省略する。
【0042】本実施例の乗算器は、制御信号S2 が0の
ときには、図1の乗算器とまったく同じ動作をするが、
制御信号S2 が1になると、被乗数Yの下位ワードYL
の符号が反転する。このことを利用して、複素乗算が実
行できる。
【0043】いま、2つの複素数 F=a+jb G=c+jd の積を計算することを考える。
【0044】[実数部]積の実数部は、次のようにして
計算できる。まず、第7式において、 XH =b, XL =a, YH =c, YL =−d. [12] とおいて乗算を実行する。
【0045】その結果、次式が得られる。 Z=bc+b(−d)+ac+a(−d) [13] 第13式で、第1項と第4項とを乗算器内部で0にする
と次式が得られ、複素数F、Gの積の実数部が計算され
る。 (実数部)Z=ac−bd [14] 第12式を実行するには、乗数の上位ワードX7-4 にb
を、下位ワードX3-0にaをそれぞれ4ビット・データ
として入力し、被乗数の上位ワード入力Y7-4にcを、
下位ワードY3-0 にdをそれぞれ4ビット・データとし
て入力し、S2=1にする。
【0046】S2 =1にすると、エクスクルーシブ・オ
ア・ゲート11により下位ワードY3-0 の各ビットは反
転され、被乗数Yの下位ワードYL =dが入力されるブ
ースのデコーダ1の最下位ビット入力Ym-1 にはS2
1が入力されるので、下位ワードYL =dの符号は反転
される。この被乗数符号反転方法は、例えば特開昭62
−229439に開示されている。
【0047】第13式で、第1項と第4項とを乗算器内
部で0にする操作は、制御信号S=0にすることに対
応する。このとき、アンド・ゲート7は0を出力し、セ
レクタ10は乗数の下位ワードX の符号ビットX3
を出力するので、XLL =a(−d)に対応する部分
積P03〜P00、P13〜P10を生成するブースのセレクタ
2の左右の入力L、Rにはどちらにも0が入力され、X
HH =bcに対応する部分積P28〜P24、P38〜P34
を生成するブースのセレクタ2の左右の入力L、Rには
どちらにも符号ビットX3 が入力される。
【0048】また、被乗数Yの上位ワードYH =cが入
力されるブースのデコーダ1の最下位ビット入力Ym-1
には、Y3 の代わりに0が入力されるので、被乗数Yの
上位ワードYH =cと下位ワードYL =dとは独立した
4ビットの数値としてデコードされる。
【0049】その結果、第7式の第1項と第4項、すな
わち第13式の第1項と第4項が0になって、第14式
の値が出力される。入力データが固定小数点データのと
きは、出力の小数点位置は、Z10とZ9 の間になり、入
力データが整数データのときは、出力の小数点位置は、
4 とZ3 の間になる。この場合も、符号ビットの上に
は上下各ワードのビット数分符号拡張がされているの
で、各ワードのビット数が2ビットよりも大きければオ
ーバーフローは生じない。
【0050】[虚数部]積の虚数部は、次のようにして
計算できる。まず、第7式において、 XH =a, XL =b, YH =c, YL =d. [15] とおいて乗算を実行する。
【0051】その結果、次式が得られる。 Z=ac+ad+bc+bd [16] 第16式で、第1項と第4項とを乗算器内部で0にする
と第17式が得られ、複素数F、Gの積の虚数部が計算
される。 (虚数部)Z=ad+bc [17] 第15式を実行するには、乗数の上位ワードX7-4 にa
を、下位ワードX3-0にbをそれぞれ4ビット・データ
として入力し、被乗数の上位ワードY7-4 にcを、下位
ワードY3-0 にdをそれぞれ4ビット・データとして入
力し、S2 =0にする。
【0052】S2 =0にすると、エクスクルーシブ・オ
ア・ゲート11は下位ワードY3-0各ビットをそのまま
出力し、被乗数Yの下位ワードYL =dが入力されるブ
ースのデコーダ1の最下位ビット入力Ym-1 にはS2
0が入力されるので、下位ワードYL =dの符号は反転
されない。
【0053】第16式で、第1項と第4項とを乗算器内
部で0にする操作は、制御信号S1=0にすることに対
応する。このとき、アンド・ゲート7は0を出力し、セ
レクタ10は乗数の下位ワードXL の符号ビットX3
出力するので、XLL =bdに対応する部分積P03
00、P13〜P10を生成するブースのセレクタ2の左右
の入力L、Rにはどちらにも0が入力され、XHH
acに対応する部分積P28〜P24、P38〜P34を生成す
るブースのセレクタ2の左右の入力L、Rにはどちらに
も符号ビットX3 が入力される。
【0054】また、被乗数Yの上位ワードYH =cが入
力されるブースのデコーダ1の最下位ビット入力Ym-1
には、Y3 の代わりに0が入力されるので、被乗数Yの
上位ワードYH =cと下位ワードYL =dとは独立した
4ビットの数値としてデコードされる。
【0055】その結果、第7式の第1項と第4項、即ち
第16式の第1項と第4項が0になって、第17式の値
が出力される。入力データが固定小数点データのとき
は、出力の小数点位置はZ10とZ9 の間になり、入力デ
ータが整数データのときは、出力の小数点位置はZ4
3 の間になる。この場合も、各ワードのビット数が2
ビットよりも大きければオーバーフローは生じない。次
に、第3の実施例について説明する。図4は、本発明の
第3の実施例に係わる乗算器を示している。図4におい
て、6は、オア・ゲート、S2 は、制御信号である。な
お、図1及び図3の乗算器と同じ構成要素には同じ番号
を付して、その説明を省略する。
【0056】本実施例の乗算器は、制御信号S2 が0の
ときには、図1の乗算器とまったく同じ動作をするが、
制御信号S2 が1になると、被乗数Yの上位ワードYH
の符号が反転する。このことを利用して、複素乗算が実
行できる。
【0057】再び、2つの複素数 F=a+jb G=c+jd の積を計算することを考える。
【0058】[実数部]積の実数部は、次のようにして
計算できる。まず、第7式において、 XH =a, XL =b, YH =−d, YL =c. [18] とおいて乗算を実行する。
【0059】その結果、次式が得られる。 Z=a(−d)+ac+b(−d)+bc [19] 第19式で、第1項と第4項とを乗算器内部で0にする
と第20式が得られ、複素数F、Gの積の実数部が計算
される。 (実数部)Z=ac−bd [20] 第18式を実行するには、乗数の上位ワードX7-4 にa
を、下位ワードX3-0にbをそれぞれ4ビット・データ
として入力し、被乗数の上位ワードY7-4 にdを、下位
ワードY3-0 にcをそれぞれ4ビット・データとして入
力し、S2 =1にする。
【0060】S2 =1にすると、エクスクルーシブ・オ
ア・ゲート11により上位ワードY7-4 の各ビットは反
転され、被乗数Yの上位ワードYH =dが入力されるブ
ースのデコーダ1の最下位ビット入力Ym-1 にはオア・
ゲート6の出力(=1)が入力されるので、上位ワード
H =dの符号は反転される。
【0061】第19式で、第1項と第4項とを乗算器内
部で0にする操作は、制御信号S1=0にすることに対
応する。このとき、アンド・ゲート7は0を出力し、セ
レクタ10は乗数の下位ワードXL の符号ビットX3
出力するので、XLL =bcに対応する部分積P03
00、P13〜P10を生成するブースのセレクタ2の左右
の入力L、Rにはどちらにも0が入力され、XHH
a(−d)に対応する部分積P28〜P24、P38〜P34
生成するブースのセレクタ2の左右の入力L、Rにはど
ちらにも符号ビットX3 が入力される。
【0062】また、被乗数Yの上位ワードYH =dが入
力されるブースのデコーダ1の最下位ビット入力Ym-1
には、Y3 の代わりに1が入力されるので、被乗数Yの
上位ワードYH =dと下位ワードYL =cとは独立した
4ビットの数値としてデコードされる。
【0063】その結果、第7式の第1項と第4項、即ち
第19式の第1項と第4項が0になって、第20式の値
が出力される。入力データが固定小数点データのとき
は、出力の小数点位置は、Z10とZ9 の間になり、入力
データが整数データのときは、出力の小数点位置は、Z
4 とZ3 の間になる。各ワードのビット数が2ビットよ
りも大きければオーバーフローは生じない。
【0064】[虚数部]積の虚数部は、図3の実施例と
同じ様にして計算することができる。なお、本発明にお
いて、乗算されるデータ対の数は、2対に限定されるも
のではなく、3対以上であっても良い。
【0065】
【発明の効果】以上、説明したように、本発明の乗算器
によれば、次のような効果を奏する。一度に複数のデー
タ対の乗算が可能なため、1つの乗算器でありながら、
通常の乗算はもちろんのこと、倍精度乗算、ベクトルの
内積、複素乗算が可能である。本乗算器をプロセッサに
組み込んだ場合、上記すべての演算が単一マシンサイク
ルで実行可能なため、プログラムのステップ数削減に効
果があり、特に積和演算が主体の信号処理プログラムに
おいては、場合により従来の約1/2にまでステップ数
を短縮できる。逆に、演算スループットを同一とした場
合、マシンサイクルは従来よりも長くとれ、プロセッサ
全体の消費電力削減に効果がある。特に、信号処理を専
門に行うディジタル・シグナル・プロセッサにおいて
は、場合により従来の約1/2にまで消費電力を削減で
きる。
【図面の簡単な説明】
【図1】本発明の第1の実施例に係わる乗算器を示すブ
ロック図。
【図2】本発明の乗算器に使用するセレクタ10の一例
を示す回路図。
【図3】本発明の第2の実施例に係わる乗算器を示すブ
ロック図。
【図4】本発明の第3の実施例に係わる乗算器を示すブ
ロック図。
【図5】従来の乗算器を示すブロック図。
【図6】従来の乗算器に使用するブースのデコーダ1の
一例を示す回路図。
【図7】従来の乗算器に使用するブースのセレクタ2の
一例を示す回路図。
【符号の説明】
1 …ブースのデコーダ、 2 …ブースのセレクタ、 3 …並列加算回路、 4 …ナンド・ゲート、 5 …ノアゲート、 6 …オア・ゲート、 7 …アンド・ゲート、 8 …インバータ、 9 …エクスクルーシブ・ノア・ゲート、 10 …セレクタ、 11 …エクスクルーシブ・オア・ゲート。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 ブースのアルゴリズムを利用した乗算器
    において、 被乗数の上位ワードが入力されるブースデコーダの最下
    位ビット入力に被乗数の下位ワードの最上位ビットと0
    とを切り替えて入力する被乗数分割手段と、 部分積の一部を0で置き換える0化手段と、 部分積の他の一部をそれよりも下位のビットの部分積の
    1ビットで置き換えるビット拡張手段とを具備したこと
    を特徴とする乗算器。
  2. 【請求項2】 ブースのアルゴリズムを利用した乗算器
    において、 被乗数の下位ワードが入力されるブースデコーダの最下
    位ビット入力に0と1とを切り替えて入力すると共に、
    前記ブースデコーダに被乗数の下位ワードとその反転信
    号とを切り替えて入力する被乗数補数化手段と、 被乗数の上位ワードが入力されるブースデコーダの最下
    位ビット入力に被乗数の下位ワードの最上位ビットと0
    とを切り替えて入力する被乗数分割手段と、 部分積の一部を0で置き換える0化手段と、 部分積の他の一部をそれよりも下位のビットの部分積の
    1ビットで置き換えるビット拡張手段とを具備したこと
    を特徴とする乗算器。
  3. 【請求項3】 ブースのアルゴリズムを利用した乗算器
    において、 被乗数の上位ワードが入力されるブースデコーダの最下
    位ビット入力に被乗数の下位ワードの最上位ビットと1
    とを切り替えて入力する被乗数分割手段と、 被乗数の上位ワードとその反転信号とを切り替えて入力
    する被乗数反転手段と、 部分積の一部を0で置き換える0化手段と、 部分積の他の一部をそれよりも下位のビットの部分積の
    1ビットで置き換えるビット拡張手段とを具備したこと
    を特徴とする乗算器。
JP26372493A 1993-10-21 1993-10-21 倍精度・単精度・内積演算および複素乗算が可能な乗算器 Expired - Fee Related JP3637073B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP26372493A JP3637073B2 (ja) 1993-10-21 1993-10-21 倍精度・単精度・内積演算および複素乗算が可能な乗算器
KR1019940026822A KR100305530B1 (ko) 1993-10-21 1994-10-20 배정밀도.단정밀도.내적연산 및 복소승산이 가능한 승산기
EP94116565A EP0650115B1 (en) 1993-10-21 1994-10-20 Multiplier capable of calculating double precision, single precision, inner product and multiplying complex numbers
DE69426801T DE69426801T2 (de) 1993-10-21 1994-10-20 Multiplizierer zur Berechnung von einfacher Genauigkeit, doppelter Genauigkeit, innerem Produkt und zur Multiplikation von komplexen Zahlen in den Betriebsarten
US08/326,210 US5521856A (en) 1993-10-21 1994-10-20 Multiplier capable of calculating double precision, single precision, inner product and multiplying complex

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26372493A JP3637073B2 (ja) 1993-10-21 1993-10-21 倍精度・単精度・内積演算および複素乗算が可能な乗算器

Publications (2)

Publication Number Publication Date
JPH07121354A true JPH07121354A (ja) 1995-05-12
JP3637073B2 JP3637073B2 (ja) 2005-04-06

Family

ID=17393431

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26372493A Expired - Fee Related JP3637073B2 (ja) 1993-10-21 1993-10-21 倍精度・単精度・内積演算および複素乗算が可能な乗算器

Country Status (5)

Country Link
US (1) US5521856A (ja)
EP (1) EP0650115B1 (ja)
JP (1) JP3637073B2 (ja)
KR (1) KR100305530B1 (ja)
DE (1) DE69426801T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704762B1 (en) 1998-08-28 2004-03-09 Nec Corporation Multiplier and arithmetic unit for calculating sum of product
JP2021515936A (ja) * 2018-03-05 2021-06-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 16ビット浮動小数点乗算器を用いた行列と行列の乗算による複数精度整数乗算器

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US6295599B1 (en) * 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
JP3655403B2 (ja) 1995-10-09 2005-06-02 株式会社ルネサステクノロジ データ処理装置
US5677863A (en) * 1996-04-04 1997-10-14 Hewlett-Packard Co. Method of performing operand increment in a booth recoded multiply array
US5880985A (en) * 1996-10-18 1999-03-09 Intel Corporation Efficient combined array for 2n bit n bit multiplications
CA2227531C (en) * 1997-01-20 2003-03-18 Hitachi, Ltd. Graphics processing unit and graphics processing system
JPH11134175A (ja) * 1997-10-29 1999-05-21 Toshiba Corp 乗加減算器及び演算器
KR100324313B1 (ko) * 1998-11-02 2002-06-22 김영환 n비트와n/2비트를연산하는곱셈기
US6523055B1 (en) 1999-01-20 2003-02-18 Lsi Logic Corporation Circuit and method for multiplying and accumulating the sum of two products in a single cycle
US6692534B1 (en) * 1999-09-08 2004-02-17 Sun Microsystems, Inc. Specialized booth decoding apparatus
US20060224653A1 (en) * 2005-04-01 2006-10-05 Kimming So Method and system for dynamic session control of digital signal processing operations
US8539301B2 (en) * 2009-10-21 2013-09-17 Nec Laboratories America, Inc. Message-wise unequal error protection

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4680727A (en) * 1984-09-24 1987-07-14 Rockwell International Corporation Complex multiplier for binary two's complement numbers
FR2585150B1 (fr) * 1985-07-16 1987-10-09 Thomson Csf Multiplieur pour la multiplication de deux nombres complexes
US4754421A (en) * 1985-09-06 1988-06-28 Texas Instruments Incorporated Multiple precision multiplication device
JPS62229440A (ja) * 1986-03-31 1987-10-08 Toshiba Corp 配列乗算器
JPS62229439A (ja) * 1986-03-31 1987-10-08 Toshiba Corp 並列乗算器
JPS63241634A (ja) * 1987-03-30 1988-10-06 Toshiba Corp 並列型加算回路
US5262976A (en) * 1989-11-13 1993-11-16 Harris Corporation Plural-bit recoding multiplier
EP0813143A3 (en) * 1989-11-13 1998-01-28 Harris Corporation Sign extension in plural-bit recoding multiplier
JPH04184530A (ja) * 1990-11-20 1992-07-01 Matsushita Electric Ind Co Ltd 演算装置
US5420809A (en) * 1993-11-30 1995-05-30 Texas Instruments Incorporated Method of operating a data processing apparatus to compute correlation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704762B1 (en) 1998-08-28 2004-03-09 Nec Corporation Multiplier and arithmetic unit for calculating sum of product
JP2021515936A (ja) * 2018-03-05 2021-06-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 16ビット浮動小数点乗算器を用いた行列と行列の乗算による複数精度整数乗算器

Also Published As

Publication number Publication date
EP0650115B1 (en) 2001-03-07
DE69426801D1 (de) 2001-04-12
EP0650115A1 (en) 1995-04-26
JP3637073B2 (ja) 2005-04-06
DE69426801T2 (de) 2001-07-19
US5521856A (en) 1996-05-28
KR100305530B1 (ko) 2001-11-22

Similar Documents

Publication Publication Date Title
US7047272B2 (en) Rounding mechanisms in processors
US5790446A (en) Floating point multiplier with reduced critical paths using delay matching techniques
JP5273866B2 (ja) 乗算器/アキュムレータ・ユニット
EP0239899B1 (en) Multiplier array circuit
JPH0713742A (ja) 乗算装置
JP3667635B2 (ja) 演算装置
JPH1195981A (ja) 乗算回路
JPH07121354A (ja) 倍精度・単精度・内積演算および複素乗算が可能な乗算器
JPS6375932A (ja) ディジタル乗算器
US8019805B1 (en) Apparatus and method for multiple pass extended precision floating point multiplication
US5734599A (en) Performing a population count using multiplication
US4190894A (en) High speed parallel multiplication apparatus with single-step summand reduction
JPH0448255B2 (ja)
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
Belyaev et al. A high-perfomance multi-format simd multiplier for digital signal processors
Abid et al. Modified operand decomposition multiplication for high performance parallel multipliers
Spoorthi et al. A decimal multiplier with improved speed using semi-parallel iterative approach
Dorrigiv et al. Conditional speculative mixed decimal/binary adders via binary-coded-chiliad encoding
Patel et al. Efficient new approach for modulo 2n− 1 addition in rns
Puneeth et al. Design and Implementation of High Frequency 16-bit full adder on FPGA Families
JP2765516B2 (ja) 積和演算器
JP3435744B2 (ja) 乗算回路
JP2734438B2 (ja) 乗算装置
Shapran et al. DIVISION USING THE BASE RADIX16 NUMBER SYSTEM TO FORM FRACTION DIGITS
Aditya et al. ASIC Implementation of Approximate Single Precision Floating Point Multiplier

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050107

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

Free format text: PAYMENT UNTIL: 20080114

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090114

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100114

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees