JP2001134556A - 繰り返し型乗算器とアレイ型乗算器 - Google Patents

繰り返し型乗算器とアレイ型乗算器

Info

Publication number
JP2001134556A
JP2001134556A JP31798699A JP31798699A JP2001134556A JP 2001134556 A JP2001134556 A JP 2001134556A JP 31798699 A JP31798699 A JP 31798699A JP 31798699 A JP31798699 A JP 31798699A JP 2001134556 A JP2001134556 A JP 2001134556A
Authority
JP
Japan
Prior art keywords
data
bit
partial
multiplication
adder
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
JP31798699A
Other languages
English (en)
Other versions
JP3982965B2 (ja
Inventor
Isao Uchiumi
功朗 内海
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP31798699A priority Critical patent/JP3982965B2/ja
Publication of JP2001134556A publication Critical patent/JP2001134556A/ja
Application granted granted Critical
Publication of JP3982965B2 publication Critical patent/JP3982965B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 複素数の乗算及び整数の乗算が可能な乗算器
を少ないハード量で実現する。 【解決手段】 部分加算器10,20が行う加算によ
り、デコーダ4のデコード結果に基づき被乗数を変換し
たデータと、前の乗算サイクルで得られた加算データと
が加算され、その結果は、部分積レジスタ32,37に
累算されて格納される。被乗数の整数を被乗数レジスタ
1に格納し、乗数を乗数レジスタ2に格納しておけば、
乗算サイクルを繰り返すことにより、整数同士の乗算が
行われる。被乗数の複素数の実数部及び虚数部を被乗数
レジスタ1の上位側及び下位側にそれぞれ格納すると共
に、乗数の複素数を乗数レジスタ2に格納しておくこと
により、スワッパ3が被乗数の上位側と下位側とを適当
なタイミングで入れ替えるので、乗算サイクルを繰り返
すことにより、複素数同士の乗算で行われる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、汎用プロセッサ等に設
けられ、整数同士の乗算と複素数同士の乗算の両方の乗
算を行う繰り返し型乗算器及びアレイ型乗算器に関する
ものである。
【0002】
【従来の技術】RISC(Reduced Instruction Set Co
mputer)プロセッサには、ディジタル信号処理用に積和
演算機能の付いた乗算器が組み込まれている。一般に広
く使用されているRISCプロセッサには、例えば32
ビット×8の積和演算機能を有する乗算器が組み込まれ
ている。これらの乗算器においては、16ビットのハー
フワード同士を乗算するのに2サイクルかかる。ところ
で、通信用の信号処理を行う等化器等では、複素数表現
した数値に対して積和演算することが多い。2つの複素
数A,Bの乗算は、各複素数A,Bの実数部をAr ,B
r とすると共に虚数部をAi 、Bi とすると、次の
(1)式になる。 A・B=(Ar +jAi )(Br +jBi ) =(Ar ・Br −Ai ・Bi )+j(Ar ・Bi +Ai ・Br ) ・・・(1) これをそのまま演算すると、実数部及び虚数部共に乗算
が2回、加算が1回それぞれ必要である。この演算をR
ISCプロセッサの乗算器で行うと、実数部、虚数部
共、2サイクル×2回の乗算と1回の加算が必要にな
る。よって、最低10サイクルが必要になる。
【0003】従来の複素数の乗算が可能な乗算器は、例
えば次の文献1,2に記載されたものがあった。 文献1:CAVANAGH著“Digital Computer Arithmetic De
sign and Implementa-tion ”(1984)McGraw-Hil
l 発行、P.171,181 文献2;IEEE 1996 Custum Integrated Circuits Confe
rence 、IEEE、Shousheng He and Mats Torkelson
著“A Complex Array MultiplierUsing Distributed Ar
aithmetic ”P.71-74
【0004】図2は、従来の乗算器の積和演算サイクル
数を示す図である。前記文献1には、後述するブースの
アルゴリズムを用いた繰り返し型乗算器とアレイ型乗算
器が示されている。繰り返し型乗算器は、部分積を繰り
返して求めるものであり、16ビット×16ビットの乗
算器で1サイクルで2ビット分の処理を行うと、図2の
ように、整数16ビットの乗算には8サイクルかかり、
実数部が8ビットで虚数部が8ビットの複素数の乗算に
は、乗算の16サイクルと加算の2サイクルとが必要に
なる。アレイ型乗算器は、複数の部分積を同時に求める
構成になっており、同様の整数の乗算には2サイクルか
かり、複素数の乗算には乗算が4サイクルと加算が2サ
イクルかかる。一方、前記文献2の乗算器は、複素数専
用のものである。
【0005】
【発明が解決しようとする課題】しかしながら、前記従
来の乗算器では、次のような課題があった。従来のRI
SCプロセッサに組み込まれた乗算器では、複素数同士
の乗算を行うときには、乗算回数が整数の場合の4倍に
なり、文献1の乗算器でも、2倍以上のサイクルが必要
となり、いずれも、パフォーマンスが悪くなる。一方、
文献2に示された乗算器は整数同士の乗算を行うことが
できないので、汎用的でないばかりでなく、ハード量が
大きくなり、ディジタル信号処理用プロセッサのCPU
に搭載される乗算器には適していない。また、複素数に
対して実数部及び虚数部を個別に計算することは、ソフ
トウエアとして極めて繁雑になる。図3(a),(b)
は、複素数データと複素数表現を示す図である。例えば
実数部が16ビット及び虚数部が16ビットの複素数
を、図3(a)のように連続した1つのワードで処理で
きるようにすると、ソフトウエアの特にC言語では、図
3(b)の構造体で複素数表現が可能になる。これによ
り、繁雑さが緩和できることになる。つまり、1つの複
素数を図3(a)のように連続したワードで処理できる
乗算器が望まれている。
【0006】
【課題を解決するための手段】前記課題を解決するため
に、本発明のうちの第1の発明は、繰り返し型乗算器に
おいて、次のような構成にしている。即ち、整数同士の
乗算を行う整数乗算時には被乗数となる2n(nは正の
整数)ビットの整数を格納し、複素数同士の乗算を行う
複素数乗算時には被乗数となる複素数のnビットの実数
部を上位側に格納すると共にnビットの虚数部を下位側
に格納する被乗数レジスタと、前記整数乗算時には乗数
の2nビットの整数を格納し、前記複素数乗算時には乗
数となる複素数のnビットの実数部を上位側に格納する
と共にnビットの虚数部を下位側に格納する乗数レジス
タと、前記乗数レジスタに格納された乗数を乗算サイク
ルごとに複数ビットずつデコードするデコーダと、前記
整数乗算時には前記被乗数レジスタに格納された前記被
乗数の上位側と下位側とをパラレルに出力し、前記複素
数乗算時において前記被乗数に前記乗数の実数部を乗算
する乗算サイクルには前記被乗数の上位側と下位側とを
パラレルに出力し、該複素数乗算時において該被乗数に
前記乗数の虚数部を乗算する乗算サイクルには該被乗数
の上位側と下位側とを入れ替えてパラレルに出力する入
れ替え手段と、前記入れ替え手段が下位側及び上位側に
出力した各データを前記デコード結果に基づきそれぞれ
変換する下位側変換手段及び上位側変換手段と、前記乗
算サイクルごとに与えられる下位側被加算データ及び上
位側被加算データと前記下位側変換手段及び上位側変換
手段によって変換された各データとを加算し、下位側部
分加算データ及び上位側部分加算データをそれぞれ求め
る下位側部分加算器及び上位側部分加算器とを備えてい
る。
【0007】さらに、この繰り返し型乗算器には、前記
整数乗算時には前記下位側部分加算器の加算結果の桁上
がりを前記上位側部分加算器の加算に反映させ、前記複
素数乗算時には該桁上がりをマスクするマスク手段と、
前記下位側部分加算器及び上位側部分加算器がそれぞれ
出力する前記下位側部分加算データ及び上位側部分加算
データを前記乗算サイクルごとにそれぞれ桁移動させる
下位側桁移動手段及び上位側桁移動手段と、前記下位側
桁移動手段を介した前記下位側部分加算データ及び前記
上位側桁移動手段を介した前記上位側部分加算データを
前記乗算サイクルごとにそれぞれ取り込み格納内容を更
新しつつ格納する下位側部分積レジスタ部及び上位側部
分積レジスタ部と、前記下位側部分積レジスタ部に格納
された前記下位側部分加算データの一部及び前記上位側
部分積レジスタ部に格納された前記上位部分加算データ
の一部を前記乗算サイクルごとに桁をずらして読出し、
前記下位側被加算データ及び上位側被加算データをそれ
ぞれ生成する下位側シフタ及び上位側シフタと、前記複
素数乗算時の前記被乗数に前記乗数の実数部を乗算する
乗算サイクルが終了した段階で、該乗算の結果における
虚数部のデータの一部を格納する下位側補助レジスタ
と、前記複素数乗算時の前記被乗数に前記乗数の実数部
を乗算する乗算サイクルが終了した段階で、該乗算の結
果における実数部のデータの一部を格納する上位側補助
レジスタと、前記複素数乗算時の前記被乗数に前記乗数
の虚数部を乗算する乗算サイクルが終了した段階で、前
記下位側シフタで生成した前記下位側被加算データと前
記下位側補助レジスタが格納したデータとを前記下位側
部分加算器に加算させる下位側加算補助手段と、前記複
素数乗算時の前記被乗数に前記乗数の虚数部を乗算する
乗算サイクルが終了した段階で、前記上位側シフタで生
成した前記上位側被加算データと前記上位側補助レジス
タが格納したデータとを前記上位側部分加算器に加算さ
せる上位側加算補助手段とが、設けられている。
【0008】このような構成を採用したことにより、例
えばブースのアルゴリズムを用いれば、デコーダによる
デコードと下位側変換手段及び上位側変換手段による変
換とで、被乗数に乗数の一部を乗じたデータが得られ
る。下位側部分加算器及び上位側部分加算器により、前
の乗算サイクルで得られた下位側部分加算データ及び上
位側部分加算データと下位側変換手段及び上位側変換手
段で変換されたデータとがそれぞれ加算され、新たな下
位側部分加算データ及び上位側部分加算データが得られ
る。整数乗算時には、下位側部分加算器の加算の桁上が
りが上位側部分加算器の加算に反映される。新たな下位
側部分加算データ及び上位側部分加算データが下位側レ
ジスタ部と上位側レジスタ部とに更新されつつ、格納さ
れる。よって、乗算サイクルを繰り返すことにより、整
数同士の乗算が可能になっている。一方、複素数乗算時
には、マスク手段により、下位側部分加算器の加算の桁
上がりが上位側部分加算器に対してマスクされる。これ
により、虚数部同士の加算が下位側部分加算器で行わ
れ、実数部同士の加算が上位側部分加算器で行われるよ
うになる。被乗数の実数部と虚数部の入れ替えは、入れ
替え手段で行われる。また、被乗数に乗数の実数部の乗
算を行う乗算サイクルが終了した段階で得られた下位側
部分加算データ及び上位側部分加算データは、下位側補
助レジスタ及び上位側補助レジスタに格納され、被乗数
に乗数の虚数部の乗算を行う乗算サイクルが終了した段
階で、下位側部分加算器及び上位側部分加算器によって
加算される。よって、乗算サイクルを繰り返すことによ
り、複素数同士の乗算が可能になっている。
【0009】第2の発明では、アレイ型乗算器におい
て、次のような被乗数レジスタ、乗数レジスタ、入れ替
え手段、デコーダ、アレイ乗算部。レジスタ、入力マル
チプレクサ及び出力マルチプレクサにより、構成してい
る。前記被乗数レジスタ、乗数レジスタ及び入れ替え手
段は、第1の発明の被乗数レジスタ、乗数レジスタ及び
入れ替え手段と同様のものである。デコーダは、最初の
乗算サイクルでは前記乗数レジスタに格納された乗数の
下位側をデコードし、次の乗算サイクルでは該乗数の上
位側をデコードするものである。アレイ乗算部は、前記
入れ替え手段が下位側に出力したデータを入力すると共
に下位側被加算データを入力し、前記デコード結果に基
づき該入れ替え手段から入力したデータを変換して該下
位側被加算データと加算する下位側初段部分加算器、該
下位側初段部分加算器の出力側に複数段縦続接続され、
該入れ替え手段が下位側に出力したデータを桁移動した
上で該デコード結果に基づき変換し、前段から与えられ
たデータとそれぞれ加算する下位側縦続部分加算器、該
入れ替え手段が上位側に出力したデータを入力すると共
に上位側被加算データを入力し、該デコード結果に基づ
き該入れ替え手段から入力したデータを変換して該上位
側被加算データと加算する上位側初段部分加算器、該上
位側初段部分加算器の出力側に複数段縦続接続され、該
入れ替え手段が上位側に出力したデータを桁移動した上
で該デコード結果に基づき変換し、前段から与えられた
データとそれぞれ加算する上位側縦続部分加算器、及び
前記整数乗算時には該下位側初段部分加算器及び下位側
縦続部分加算器の加算結果の桁上がりを該上位側初段部
分加算器及び上位側縦続部分加算器の加算に反映させ、
前記複数乗算時には該桁上がりをマスクするマスク手段
を有している。
【0010】レジスタは、2nビット幅以上の格納領域
を持っている。入力マルチプレクサは、前記整数乗算時
及び前記複素数乗算時に、前記レジスタの格納領域のう
ちの前記各乗算サイクルごと設定された領域からデータ
をそれぞれ読出し前記下位側被加算データ及び上位側被
加算データとして前記アレイ乗算部に入力するものであ
る。出力マルチプレクサは、前記整数乗算時及び前記複
素数乗算時の前記各乗算サイクルの終了時に、前記レジ
スタの格納領域のうちの該各乗算サイクルごと設定され
た領域に前記アレイ乗算部が出力するデータを格納する
ものである。
【0011】このような構成を採用したことにより、下
位側初段部分加算器及び下位側縦続部分加算器と上位側
初段部分加算器及び上位側縦続部分加算器との加算によ
り、下位側部分加算データ及び上位側部分加算データが
累算される。整数乗算時には、下位側初段部分加算器及
び下位側縦続部分加算器の加算の桁上がりが上位側初段
部分加算器及び上位側縦続部分加算器の加算に反映さ
れ、累算結果が出力マルチプレクサを介してレジスタに
格納される。よって、整数同士の乗算が可能になってい
る。複素数乗算時には、マスク手段により、下位側初段
部分加算器及び下位側縦続部分加算器の加算の桁上がり
が上位側初段部分加算器及び上位側縦続部分加算器の加
算に反映されなず、下位側初段部分加算器及び下位側縦
続部分加算器により、虚数部の加算が行われ、上位側初
段部分加算器及び上位側縦続部分加算器により、実数部
の加算が行われる。被乗数の実数部と虚数部の入れ替え
は、入れ替え手段で行われる。また、乗算サイクルが終
了した段階で得られた累算結果から被加算データを乗算
サイクルに応じて読出すのは、入力マルチプレクサが行
う。よって、複素数同士の乗算も可能になっている。
【0012】
【発明の実施の形態】第1の実施形態 図1は、本発明の第1の実施形態を示す繰り返し型乗算
器の概略の構成図であり、制御信号の転送ルートは省略
している。この乗算器は、乗数及び被乗数が共に16ビ
ットで積が32ビットになる整数同士の乗算を行う機能
と、実数部及び虚数部が共に8ビットで積の実数部が1
6ビットで虚数部が16ビットとなる複素数同士の乗算
を行う機能を有する乗算器であり、被乗数を格納する1
6ビットの被乗数レジスタ1と、乗数を格納する乗数レ
ジスタ2とを備えている。被乗数レジスタ1には、入れ
替え手段であるスワッパ3が接続され、乗数レジスタ2
には、デコーダ4が接続されている。スワッパ3の出力
データにおける上位8ビットは、上位側加算補助手段で
ある2入力マルチプレクサ5の一方の入力ポートに入力
され、下位8はかい側加算補助手段である2入力マルチ
プレクサ6の一方の入力ポートに入力される接続になっ
ている。マルチプレクサ5の出力側に部分加算器10が
接続され、マルチプレクサ6の出力側に部分加算器20
が接続されている。部分加算器10は、2つの入力ポー
ト10a,10bを持ち、該入力ポート10bにマルチ
プレクサ5が8ビット幅で出力するデータが入力される
接続になっている。部分加算器20は、2つの入力ポー
ト20a,20bを持ち、該入力ポート20bにマルチ
プレクサ6が8ビット幅で出力するデータが入力される
接続になっている。
【0013】部分加算器10の出力ポート10sは、3
つの入力ポート31a,31b,31cを持つ上位側桁
移動手段であるマルチプレクサ31の入力ポート31a
に接続され、該マルチプレクサ31の出力ポート31o
が上位側部分積レジスタ32と上位側部分積補助レジス
タ33とに接続されている。部分積レジスタ32の出力
側がマルチプレクサ31の入力ポート31cとシフタ3
4の入力ポート34aとに接続されている。部分積補助
レジスタ33の出力側が、マルチプレクサ5の他方の入
力ポートに接続されている。部分加算器20の出力ポー
ト20sは、3つの入力ポート36a,36b,36c
を持つ下位側桁移動手段であるマルチプレクサ36の入
力ポート36bに接続され、該マルチプレクサ36の出
力ポート36oが下位側部分積レジスタ37と下位側部
分積補助レジスタ38とに接続されている。部分積レジ
スタ37の出力側がマルチプレクサ36の入力ポート3
6cとシフタ34の入力ポート34bと下位側シフタ3
5の入力ポート35bに接続されている。部分積補助レ
ジスタ38の出力側が、マルチプレクサ6の他方の入力
ポートに接続されている。部分加算器10の出力ポート
10sは、マルチプレクサ36の入力ポート36bにも
接続され、部分加算器20の出力ポート20sは、マル
チプレクサ31の入力ポート31bにも接続されてい
る。
【0014】以下に各部の機能を説明する。スワッパ3
は、複素数乗算時に被乗数レジスタ1の上位8ビットと
下位8ビットを入れ替えて出力するものである。図4
は、図1中のデコーダ4が使用するブースのアルゴリズ
ムを示す図である。図5(a),(b)は、図1中のデ
コーダ4が行う乗数のデコード順序を示す図であり、同
図(a)は整数乗算時を示す、同図(b)は複素数乗算
時を示している。デコーダ4は、乗数をデコードし制御
信号Scを出力するものであり、乗数が整数の場合に
は、該乗数の16ビットに対して図5(a)のようにサ
イクルCy1からCy8の8回にわけ、下位側から2ビ
ットずらせて3ビット単位で順にデコードする。但し、
最初のサイクルCy1のデコードでは、0ビットを最下
位に付加している。複素数の場合には、乗数の16ビッ
トに対して、図5(b)のように、実数部用にr1から
r4の4回にわけ、虚数部用に、j1からj4の4回に
わけ、それぞれの下位側から2ビットずらせて3ビット
単位で順にデコードする。但し、最初r1回目のデコー
ドとj1回目のデコードでは、0ビットを最下位に付加
している。各デコードで用いる3ビットのうちの上位2
ビットで構成される乗数ビットペアと下位1ビット(右
ビット)との組み合わせにより、デコード結果が異な
り、対応する制御信号Scを出力する。これらの制御信
号Scは、図4のように、加算器10,20における被
乗数の加算を制御する信号である。ここで、図4中のa
は、前演算処理結果を示し、bは被乗数を示している。
また、図4中の減算は、(1)式における「−Ai・B
i」の処理の場合を示している。
【0015】図6は、図1中の部分加算器10,20を
示す構成図である。部分加算器10には、上位側変換手
段である9個のマルチプレクサ(MUX)110 〜11
8 と、上位側部分加算器である9個のフルアダー回路
(FULLADDER)120 〜128 と、マスク回路
(MSK)13とを備えている。部分加算器20は、下
位側変換手段である9個のマルチプレクサ(MUX)2
0〜218 と、下位側部分加算器である9個のフルア
ダー回路(FULL ADDER)220 〜228 とを
備えている。部分加算器20中の最下位ビットを担当す
るマルチプレクサ210 には、“0”の固定データが3
本入力されると共に、シフタ35から与えられる8ビッ
トのデータa357 〜a350 のうちの最下位のデータ
a350 とその補数−a35 0 とが入力されている。部
分加算器20中のマルチプレクサ211 には、“0”の
固定データが1本入力されると共に、ブースのアルゴリ
ズムの2倍を実現するために下位のマルチプレクサ21
0 から与えられたデータa350 及びその補数−a35
0 と、シフタ35から与えられるデータa351 とが入
力されている。以下、マルチプレクサ217 までは、マ
ルチプレクサ211 と同様の入力データが与えられるよ
うになっている。最上位のマルチプレクサ218 は、符
号ビットの拡張用に設けられたものであり、該マルチプ
レクサ218 には、“0”の固定データが1本入力され
ると共に、下位のマルチプレクサ217 からデータa3
7 及びその補数−a357 が2本ずつ入力されるよう
になっている。
【0016】部分加算器20中の最下位ビットを担当す
るフルアダー回路220 には、“0”の固定データがキ
ャリーとして入力されると共に、マルチプレクサ6を介
した8ビットのデータb67 〜b60 のうちの最下位の
データb60 と、マルチプレクサ210 の出力データと
が与えられている。部分加算器20中のフルアダー回路
221 には、下位のフルアダー回路220 からキャリー
データc220 が入力されると共に、データb61 と、
マルチプレクサ211 の出力データとが与えられてい
る。以下、フルアダー回路227 までは、フルアダー回
路221 と同様に入力データが与えられるようになって
いる。最上位のフルアダー回路228 は、符号ビットの
拡張用に設けられたものであり、該フルアダー回路22
8 には、下位のフルアダー回路227 からキャリーc2
7 が入力されると共に、マルチプレクサ6から与えら
れるデータb67 と、マルチプレクサ217 の出力デー
タとが与えられる構成になっている。部分加算器10
は、整数の乗算を行うときには、部分加算器20と連結
して動作し、複素数の乗算を行うときには乗算器20と
は切り離されて動作する。この連結と切り離しを行うの
が、マスク回路13である。マスク回路13は、複素数
乗算時に、部分加算器20側のデータa357 とその補
数データ−a357 とフルアダー回路227 で発生する
キャリーc227 とを、部分加算器10に対してマスク
して“0”に固定する機能を有している。
【0017】部分加算器10中の最下位ビットを担当す
るマルチプレクサ110 には、“0”の固定データが1
本と、マスク回路13でマスクされるかまたはそのまま
通過するデータa357 とその補数データ−a357
が入力されると共に、シフタ34から与えられる8ビッ
トのデータa347 〜a340 のうちの最下位のデータ
a340 とその補数−a340 とが入力されている。部
分加算器10中のマルチプレクサ111 には、“0”の
固定データが1本入力されると共に、ブースのアルゴリ
ズムの2倍を実現するために下位のマルチプレクサ11
0 から与えられたデータa340 及びその補数−a34
0 と、シフタ34から与えられるデータa341 とが入
力されている。以下、マルチプレクサ117 までは、マ
ルチプレクサ111 と同様に入力データが与えられるよ
うになっている。最上位のマルチプレクサ118 は、符
号ビットの拡張用に設けられたものであり、該マルチプ
レクサ118 には、“0”の固定データが1本入力され
ると共に、下位のマルチプレクサ117 からデータa3
7 及びその補数−a347 が2本ずつ入力されるよう
になっている。各フルアダー回路220 〜228 がそれ
ぞれ出力するビットデータs220 〜s228 が、部分
加算器20の出力ポート20sから出力する9ビット幅
のデータになる。
【0018】部分加算器10中の最下位ビットを担当す
るフルアダー回路120 には、マスク回路13でマスク
されるかまたはそのまま通過するキャリーc227 が入
力されると共に、マルチプレクサ5が出力する8ビット
のデータb57 〜b50 のうちの最下位のデータb50
と、マルチプレクサ110 の出力データとが与えられて
いる。部分加算器10中の図示しないフルアダー回路1
1 には、下位のフルアダー回路120 からキャリーc
120 が入力されると共に、マルチプレクサ5から与え
られるデータb51 と、マルチプレクサ111 の出力デ
ータとが与えられている。以下、フルアダー回路127
までは、フルアダー回路121 と同様に入力データが与
えられるようになっている。最上位のフルアダー回路1
8 は、符号ビットの拡張用に設けられたものであり、
該フルアダー回路128 には、下位のフルアダー回路1
7 からキャリーc127 が入力されると共に、マルチ
プレクサ5から与えられるデータb57 〜b50 のうち
の対応するデータb57 と、マルチプレクサ117 の出
力データとが与えられる構成になっている。各フルアダ
ー回路120 〜128 がそれぞれ出力するビットデータ
s120 〜s128が、部分加算器10の出力ポート1
0sから出力する9ビット幅のデータになる。
【0019】図7(a),(b)は、マルチプレクサ3
1,36の選択を示す図であり、同図(a)は整数乗算
時、及び同図(b)は複素数乗算時をそれぞれ示してい
る。マルチプレクサ31,36は、部分加算器10,2
0及び各部分積補助レジスタ33,38の出力データか
ら選択したデータを16ビット幅で出力するものであ
り、その選択範囲と選択順序は、図7(a),(b)の
ようになる。なお、図7(a),(b)において、
a[],b[],c[]は、入力ポート31a,31
b,31c及び36a,36b,36cから入力された
データのビットデータをそれぞれ示すものであり、各a
[8]all及びb[8]allは、a[8],b
[8]のデータを連続的に配列したデータを示してい
る。部分積レジスタ32,37は、部分積を格納するも
のであり、整数の乗算では部分積レジスタ32に積の上
位側が格納され、部分積レジスタ37に積の下位がが格
納される。複素数の乗算では、部分積レジスタ32に実
数部が格納され、部分積レジスタ37には虚数部が格納
されるようになっている。部分積補助レジスタ33,3
8は、複素数乗算時に、部分積の上位8ヒットを4回目
の繰り返し完了時に取り込んで格納するものである。
【0020】図8(a),(b)は、シフタ34,35
が選択するフィールドを示す図であり、同図(a)は整
数乗算時、及び同図(b)は複素数乗算時をそれぞれ示
している。シフタ34,35は、部分積の値をシフトし
て加算器10,20にそれぞれ加算するものであり、各
部分積レジスタ32,37が出力する部分積から8ビッ
トのフィールドを図8のように選択し、2ビットシフト
して加算器10,20へ与えるようになっている。図8
中のa[],b[]は、部分積レジスタ32,37の出
力データにおけるビットをそれぞれ示している。また、
“0000000”は、すべて“0”が出力されること
を示し、a[]all、すべてa[]のデータが出力さ
れることを示している。
【0021】次に、図1の繰り返し型乗算器の動作を説
明する。前記(1)式の複素数は、次の(2)式に書換
えられる。 A・B=(Ar +jAi )(Br +jBi ) =(Ar +jAi )Br +(−Ai +jAr )Bi ・・・(2) この(2)式は、複素数の乗算を次の(i)〜(iii)に
別けて計算することが可能であることを示している。 (i)被乗数(Ar +jAi )の実数部Ar 、虚数部A
i に乗数Br を掛ける。 (ii) 被乗数の実数部Ar 、虚数部Ai とを入替え、実
数部の符号を反転させる。 (iii)(ii)の処理で得られた被乗数部に乗数の虚数部
Bi を掛ける。
【0022】図1の複素数乗算器は、(i)〜(iii)に
沿って複素数の乗算を行うと共に、整数の乗算も可能に
なっている。実数部が8ビットで虚数部が8ビットの複
素数同士の乗算は、次のサイクルCy1〜Cy9の9サ
イクルで演算する。16ビットの整数同士の乗算は、後
述するCy1〜Cy8の8サイクルで演算する。複素数
乗算時、最初のサイクルCy1において、乗数レジスタ
2に格納された16ビットデータのうちのビット[9:
8]の部分が、図5(b)の順序に従ってデコーダ5で
デコードされる。マルチプレクサ5及び6は、被乗数レ
ジスタ1からスワッパ3を介して与えられたデータを選
択し、部分加算器10及び20に与える。このとき各シ
フタ34,35は、“0”を出力している。部分加算器
10,20では、デコーダ5のデコード結果に基づく制
御信号Scにより、図4のブースのアルゴリズムに従っ
た加算を行う。加算結果は、図7(b)のようにマルチ
プレクサ31,36に選択されて部分積として部分積レ
ジスタ32,37にそれぞれ格納される。サイクルCy
2において、乗数レジスタ2に格納された16ビットの
データのうちのビット[11:9]の部分が、図5
(b)の順序に従ってデコーダ4でデコードされる。ま
た、このときには、部分積レジスタ32,37及びシフ
タ34,35によって、上位側被加算データ及び下位側
被加算データが生成されて部分加算器10,20に与え
られている。この被加算データは、図8(b)のように
シフトされたデータであり、ブースのアルゴリズムで選
択したデータと部分加算器10,20によって加算され
る。加算結果は、図7(b)のようにマルチプレクサ3
1,36に選択されて部分積として部分積レジスタ3
2,37にそれぞれ格納される。
【0023】サイクルCy3において、乗数レジスタ2
に格納された16ビットデータのうちのビット[13:
11]の部分が図5(b)の順序に従ってデコーダ4で
デコードされる。以下、サイクルCy2と同様に動作す
る。サイクルCy4において、乗数レジスタ2に格納さ
れた16ビットデータのうちのビット[15:13]の
部分が、図5(b)の順序に従ってデコーダ4でデコー
ドされる。以下、マルチプレクサ31,36まではサイ
クルCy2と同様に動作する。各マルチプレクサ31,
36の出力データのうち、下位8ビットが部分積レジス
タ32,37にそれぞれ格納され、上位8ビットが部分
積レジスタ33,38にそれぞれ格納される。よって、
このサイクルCy4が終了した段階で、(2)式の第1
項の乗算結果が、部分積レジスタ32,37と部分積レ
ジスタ33,38とにそれぞれ実数部及び虚数部に分け
て格納されたことになる。サイクルCy5において、乗
数レジスタ2に格納された16ビットデータのうちのビ
ット[1:0]の部分が、図5(b)の順序に従ってデ
コーダ4でデコードされる。スワッパ2は、被乗数レジ
スタ1に格納された複素数の実数部と虚数部を入替え、
マルチプレクサ5,6を介して部分加算器10,20に
与える。シフタ34,35は、部分積レジスタ32,3
7の出力データの下位8ビットを、図8(b)に従って
選択して部分加算器10,20に与える。これにより、
(2)式の第1項の(Ar +jAi )Br の実数部及び
虚数部の下位8ビットが第2項の(−Ai +jAr )B
i の実数部及び虚数部の各部分積に加算されることにな
る。なお、(2)式の第1項の(Ar +jAi )Br の
上位8ビットは、第2項の(−Ai +jAr )Bi の実
数部及び虚数部の部分積が求まった後のサイクルCy9
で、(−Ai +jAr )Bi の上位8ビットと加算され
る。
【0024】部分加算器10,20は、デコーダ4のデ
コード結果に基づき加算を行う。ここで、部分加算部1
0では、(2)式の第1項の実数部が負になるので、図
4の減算処置が採用する。つまり、補数のデータを選択
して加算を行う。部分加算器10,20の出力データ
は、マルチプレクサ31,36に図7に基いて選択さ
れ、部分積として部分積レジスタ32,37にそれぞれ
格納される。サイクルCy6〜Cy8は、乗数レジスタ
2に格納された16ビットデータのうちの図5(b)の
順序に従った部分が、デコーダ4でデコードされ、該各
デコード結果に基づき、以下サイクルCy5と同様に動
作する。サイクルCy9において、シフタ34,35
が、図8(b)に示すように、部分積レジスタ32,3
7の出力データの上位8ビットを選択し、部分加算器1
0,20に与える。また、マルチプレクサ5,6は、部
分積補助レジスタ33,38に格納されたデータを選択
して部分加算器10,20に与える。デコーダ4ではデ
コードを行わず、部分加算器10,20が、部分積補助
レジスタ33,38から与えられたデータとシフタ3
4,35から与えられたデータを加算する。部分加算器
10,20の出力データは、マルチプレクサ31,36
に図7(b)に基いて選択され、部分積として部分積レ
ジスタ32,37にそれぞれ格納される。以上の一連の
サイクルCy1〜Cy9の動作により、実数部が8ビッ
トで虚数部が8ビットの複素数同士の乗算が行われ、結
果が部分積レジスタ32,37にそれぞれ格納されたこ
とになる。
【0025】次に、整数同士の乗算を行う場合の動作を
説明する。被乗算レジスタ1には16ビットの被乗数が
格納され、乗数レジスタ2には16ビットの乗算が格納
されている。サイクルCy1において、デコーダ4が、
図5(a)のデコード順序に従い、乗算レジスタ2の
[1:0]のビットに0を付加した値をデコードする。
スワッパ3は、被乗数の入れ替えは行わない。マルチプ
レクサ5,6は、被乗数レジスタ1からスワッパ3を介
して与えられた非乗数データを選択して部分加算器1
0,20に与える。このとき、シフタ34,35からは
図8(a)のように“0000000”を部分加算器1
0,20に出力している。各部分加算器10,20は、
デコード結果に対応する乗算結果を“0000000”
に加算し、加算結果を部分積としてそれぞれ出力する。
マルチプレクサ31,36は、図7(a)の順序に従っ
た選択を行い、部分積レジスタ32,37にそれぞれ与
える。
【0026】サイクルCy2において、デコーダ4が、
図5(a)のデコード順序に従い、乗算レジスタ2の
[3:1]のビットの値をデコードする。マルチプレク
サ5,6は、被乗数レジスタ1からスワッパ3を介して
与えられたデータを選択して部分加算器10,20に与
える。このとき、シフタ34,35は、図8(a)のよ
うに、部分積レジスタ32,37から取得した部分積を
2ビットシフトし、部分加算器10,20に与えてい
る。各部分加算器10,20は、デコード結果に対応し
て被乗数と乗数の部分積を求め、シフタ34,35から
与えられた部分積に加算する。マルチプレクサ31,3
6は、図7(a)の順序に従った選択を行い、部分積レ
ジスタ32,37にそれぞれ与える。この結果、部分積
レジスタ32,37には、前のサイクルで得られた部分
積の上位2ビットが今回得られた部分積の積和演算結果
の下位側に付加された状態で格納される。サイクルCy
3〜Cy8において、サイクルCy2と同様に、乗数レ
ジスタ2のデコードするビットをずらしながら、積和演
算結果を部分積レジスタ32,37に格納して行く。サ
イクルCy8が終了すると、被乗数と乗数の積が部分積
レジスタ32,37に格納される。以上のように、この
第1の実施形態では、16ビットの整数の乗算が8サイ
クル、複素数の乗算が9サイクルで可能になる。しか
も、整数の乗算のみが可能な乗算器に対してマルチプレ
クサ5,6や部分積補助レジスタ33,38を付加する
だけで、極端なハード量の増加はない。
【0027】第2の実施形態 図9は、本発明の第2の実施形態を示すアレイ型乗算器
の構成図である。前述の第1の実施形態では積和演算を
繰り返す繰り返し型乗算器を示したが、この第2の実施
形態の乗算器は、16ビットの整数同士の乗算をサイク
ルCy1,Cy2の2サイクルで行うと共に、実数部が
8ビットで虚数部が8ビットの複素数同士の乗算をサイ
クルCy1,Cy2の2サイクルで行うでアレイ型であ
り、被乗数を入れる16ビットの被乗数レジスタ41
と、乗数を入れる乗数レジスタ42と、アレイ乗算部で
ある16ビット×8アレー乗算器50と、32ビット出
力マルチプレクサ70と、32ビットレジスタ71と、
32ビット入力マルチプレクサ72とを備えている。被
乗数レジスタ41には、スワッパ43が接続され、乗数
レジスタ42には、デコーダ44が接続されている。ス
ワッパ43は、第1の実施形態と同様に機能するもので
ある。
【0028】図10(a),(b)は、図1中のデコー
ダ44による乗数のデコード順序を示す図であり、同図
(a)は整数乗算時、及び同図(b)は複素数乗算時を
それぞれ示している。デコーダ44は、第1の実施形態
とは異なり、1サイクルで8ビット或いは9ビットをデ
コードする機能を有している。つまり、整数の乗算を行
うときには、図10(a)のように、最初のサイクルC
y1では最下位に“0”を付加した乗数の8ビット
[7:0]をデコードし、次のサイクルCy2では、上
位側の9ビット[15:7]をデコードする機能を持
ち、複素数の乗算を行うときには、図10(b)のよう
に、サイクルCy1で最下位を“0”として虚数部の8
ビット[7:0]をデコードし、サイクルCy2では、
実数部のビット[15:7]をデコードする機能を有し
ている。
【0029】図11は、図9中の16ビット×8アレー
乗算器50を示す構成図である。16ビット×8アレー
乗算器50は、上位側初段部分加算器及び下位側初段部
分加算器である2個の9ビット部分加算器51,52
と、2個の10ビット部分加算器53,54と、2個の
11ビット部分加算器55,56と、2個の12ビット
部分加算器57,58と、2個の11ビット部分加算器
55,56と、2個の12ビット部分加算器57,58
と、2個の11ビット加算器59,60とを有してい
る。10ビット部分加算器53、11ビット部分加算器
55及び12ビット部分加算器57は、複数段の上位側
縦続部分加算器を構成するものであり、9ビット部分加
算器51の出力側に縦続接続されている。10ビット部
分加算器54、11ビット部分加算器56及び12ビッ
ト部分加算器58は、複数段の下位側縦続部分加算器を
構成するものであり、9ビット部分加算器52の出力側
にマルチプレクサ61、マルチプレクサ62及びマルチ
プレクサ63を介して縦続接続されている。12ビット
部分加算器57,58の出力側に、11ビット加算器5
9,60が接続されると共に、該11ビット加算器5
9,60の出力側に8ビット加算器64,65がそれぞ
れ接続され、合計6段の積和演算回路が上位側及び下位
側に構成されている。
【0030】4段目までの9ビット部分加算器51,5
2、10ビット部分加算器53,54、11ビット部分
加算器55,56及び12ビット部分加算器57,58
は、部分和をビット単位で示すビット加算データDをそ
れぞれ出力するばかりでなく、ビットごとのキャリーC
も出力するキャリーセーブアダーをそれぞれ有してい
る。図11の各部分加算器51〜58の出力側の信号線
には、ビットごとの加算データを示すDとキャリーを示
すCとがそのビット数と共に示されている。9ビット部
分加算器51には、被乗数レジスタ41からスワッパ4
3を介して被乗数の一部の8ビットが入力されると共
に、固定の“0”と、32ビット入力マルチプレクサ7
2が出力する32ビットのデータのうちの上位側の下位
8ビットが入力される接続になっている。9ビット部分
加算器52には、被乗数レジスタ41からスワッパ43
を介した被乗数の残りの8ビットが入力されると共に、
固定の“0”と、32ビット入力マルチプレクサ72が
出力する32ビットのデータのうちの下位側の下位8ビ
ットとが入力される接続になっている。
【0031】マルチプレクサ61は、9ビット部分加算
器51及び52の出力データから10ビット部分加算器
54の入力データを選択するようになっている。マルチ
プレクサ62は、10ビット部分加算器53及び54の
出力データから、11ビット部分加算器56の入力デー
タを選択するようになっている。マルチプレクサ63
は、11ビット部分加算器55及び56の出力データか
ら、12ビット部分加算器58の入力データを選択する
ようになっている。9ビット部分加算器51の出力する
ビット加算データDの下位の1ビット分のデータは、3
2ビット出力マルチプレクサ70へ出力し、ビット加算
データDの残りの8ビット分と9ビット分のキャリーC
とは、10ビット部分加算器53の入力ポートに出力
し、該8ビット分のビット加算データDのうちの2ビッ
トと1ビット分のキャリーデータCがマルチプレクサ6
1の入力ポートに出力する接続になっている。一方、9
ビット部分加算器52のビット加算データDの下位の1
ビット分のデータは、32ビット出力マルチプレクサ7
0へ出力し、残りの8ビット分と9ビット分のキャリー
データCは、マルチプレクサ61の入力ポートに出力す
る構成になっている。
【0032】2段目の10ビット部分加算器53には、
9ビット部分加算器51から与えられるビット加算デー
タD及びキャリーCの他に、スワッパ43を介して与え
られるデータに下位1ビットの“0”を付加した9ビッ
トのデータが、入力されるようになっている。10ビッ
ト部分加算器54には、マルチプレクサ61が出力する
データが入力されると共に、32ビット入力マルチプレ
クサ72が出力する8ビットのデータの下位に“0”を
1ビット分追加したデータが、入力されるようになって
いる。10ビット部分加算器53が出力するビットデー
タDの下位の1ビット分のデータは、32ビット出力マ
ルチプレクサ70へ出力し、残りの9ビット分のビット
加算データと10ビット分のキャリーは、11ビット部
分加算器55の入力ポートに出力し、該残りの9ビット
分のデータのうちの2ビットと1ビット分のキャリーが
マルチプレクサ62の入力ポートに出力する接続になっ
ている。一方、9ビット部分加算器54のビットデータ
Dの下位の1ビット分のデータは、32ビット出力マル
チプレクサ70へ出力し、残りの9ビット分のデータと
10ビット分のキャリーCは、マルチプレクサ62の入
力ポートへ出力する構成になっている。
【0033】3段目の11ビット部分加算器55には、
10ビット部分加算器53から与えられるデータの他に
32ビット入力マルチプレクサ72が出力する8ビット
のデータの下位に“0”を2ビット分追加したデータ
が、入力されるようになっている。11ビット部分加算
器56には、マルチプレクサ62が出力するデータの他
に、32ビット入力マルチプレクサ72が出力する8ビ
ットのデータの下位に“0”を2ビット分追加したデー
タが、入力されるようになっている。11ビット部分加
算器55が出力するビットデータDの下位の1ビット分
のデータは、32ビット出力マルチプレクサ70へ出力
し、残りの10ビット分のビット加算データと11ビッ
ト分のキャリーCは、12ビット部分加算器57の入力
ポートへ出力し、該残りの10ビット分のデータのうち
の2ビットと1ビット分のキャリーCがマルチプレクサ
63の入力ポートへ出力する接続になっている。一方、
11ビット部分加算器56のビットデータDの下位の1
ビット分のデータは、32ビット出力マルチプレクサ7
0へ出力し、残りの10ビット分のデータと11ビット
分のキャリーCは、マルチプレクサ63の入力ポートへ
出力する構成になっている。
【0034】4段目の12ビット部分加算器57には、
11ビット部分加算器55から与えられるデータの他に
32ビット入力マルチプレクサ72が出力する8ビット
のデータの下位に“0”を3ビット分追加したデータが
入力されるようになっている。12ビット部分加算器5
8には、マルチプレクサ63が出力するデータの他に、
32ビット入力マルチプレクサ72が出力する8ビット
のデータの下位に“0”を3ビット分追加したデータ
が、入力されるようになっている。12ビット部分加算
器57が出力するビットデータDの下位の1ビット分の
データは、32ビット出力マルチプレクサ70へ出力
し、残りの11ビット分のビット加算データと11ビッ
ト分のキャリーCは、11ビット加算器59の入力ポー
トへ出力するようになっている。一方、12ビット部分
加算器58のビットデータDの下位の1ビット分のデー
タは、32ビット出力マルチプレクサ70へ出力し、残
りの11ビット分のデータと11ビット分のキャリーC
は、11ビット加算器60の入力ポートへそれぞれ出力
する構成になっている。
【0035】11ビット加算器59,60の出力側に
は、8ビット加算器64,65が接続されている。8ビ
ット加算器64には、11ビット加算器64が出力する
データの他に、32ビット入力マルチプレクサ72の出
力データの上位側の下位8ビットが入力されるようにな
っている。8ビット加算器65には、11ビット加算器
65が出力するデータの他に、32ビット入力マルチプ
レクサ72の出力データの下位側の下位8ビットが入力
されるようになっている。11ビット加算器59の出力
データの下位4ビットと8ビット加算器64の出力デー
タの8ビットが32ビット出力マルチプレクサ70へ出
力される構成になっている。8ビット加算器60の出力
データの下位4ビットと8ビット加算器65の出力デー
タの8ビットとが、32ビット出力マルチプレクサ70
へ出力される構成になっている。
【0036】図12は、図11中の9ビット部分加算器
51,52を示す構成図である。9ビット部分加算器5
1の入力側には、並列の9個のマルチプレクサ(MU
X)51−1a〜51−9aが設けられ、該各マルチプ
レクサ51−1a〜51−9aの出力側に、キャリーセ
ーブアダー(FULL ADDER)51−1b〜51
−9bがそれぞれ接続されている。また、9ビット加算
器51の9ビット加算器52側には、マスク手段である
マスク回路51cが設けられている。9ビット部分加算
器51の入力側には、並列の9個のマルチプレクサ51
−1a〜51−9aが設けられ、該各マルチプレクサ5
1−1a〜51−9aの出力側には、前記キャリーセー
ブアダー51−1b〜51−9bがそれぞれ接続されて
いる。図12には、9ビット部分加算器51の入力デー
タa510 〜a517 ,b51 0 〜b517 及び該入力
データa510 〜a517 の補数の−a510 〜−a5
7 と、9ビット部分加算器52の入力データa520
〜a527 ,b520 〜b527 及び該入力データa5
0 〜a527 の補数で−a520 〜−a527とが示
されている。
【0037】9ビット部分加算器52の入力データa5
0 〜a527 は、スワッパ43から与えられた8ビッ
トのデータであり、入力データa520 及び補数−a5
0は、マルチプレクサ52−1aに“0”と共に入力
され、かつ、該マルチプレクサ52−1aの上位側のマ
ルチプレクサ52−2aに入力されている。以下、同様
に、9ビット部分加算器52の入力データa521 〜a
527 及び補数−a521 〜−a527 は、各マルチプ
レクサ52−2a〜52−8aに“0”と共に入力さ
れ、かつ、その上位側のマルチプレクサ52−3a〜5
2−9aにそれぞれ入力される構成になっている。入力
データa527 及び補数−a527 は、さらに、マスク
回路51cを介して9ビット加算器51中のマルチプレ
クサ51−1aに入力される接続になっている。9ビッ
ト部分加算器52の入力データb520 〜b527 は、
32ビット入力マルチプレクサ72から与えられた8ビ
ットの下位側被加算データであり、該各入力データb5
0 〜b526 は、各マルチプレクサ52−1a〜52
−7aの出力するデータと共に、キャリーセーブアダー
52−1b〜52−7bにそれぞれ入力される。入力デ
ータb527 は、各マルチプレクサ52−8a及び52
−9aの出力データと共にキャリーセーブアダー52−
8b,52−9bに共通に入力される接続になってい
る。
【0038】9ビット部分加算器51の入力データa5
0 〜a517 は、スワッパ43から与えられた8ビッ
トのデータであり、入力データa510 及び補数−a5
0は、マルチプレクサ51−1aに“0”と共に入力
され、かつ、該マルチプレクサ51−1aの上位側のマ
ルチプレクサ51−2aに入力されている。以下、同様
に、9ビット部分加算器51の入力データa511 〜a
517 及び補数−a511 〜−a517 は、各マルチプ
レクサ51−2a〜51−8aに“0”と共に入力さ
れ、かつ、その上位側のマルチプレクサ51−3a〜5
1−9aにそれぞれ入力される構成になっている。9ビ
ット部分加算器51の入力データb510〜b51
7 は、32ビット入力マルチプレクサ72から与えられ
た8ビットの上位側被加算データであり、該各入力デー
タb510 〜b516 は、各マルチプレクサ51−1a
〜51−7aの出力するデータと共に、キャリーセーブ
アダー51−1b〜51−7bに入力される。入力デー
タb517 は、各マルチプレクサ51−8a及び51−
9aの出力データと共にキャリーセーブアダー51−8
b,51−9bにそれぞれ入力される接続になってい
る。9ビット部分加算器52の各キャリーセーブアダー
52−1b〜52−9bが、ビット単位の加算データd
520 〜d528 及びキャリーc520 〜c528をそ
れぞれ出力し、同様に、9ビット部分加算器51の各キ
ャリーセーブアダー51−1b〜51−9bが、ビット
単位の加算データd510 〜d518 及びキャリーc5
0 〜c518 をそれぞれ出力する構成になっている。
【0039】図13は、図11中の10ビット部分加算
器53,54を示す構成図てある。10ビット部分加算
器53の入力側には、並列の10個のマルチプレクサ5
3−1a〜53−10aが設けられ、該各マルチプレク
サ53−1a〜53−10aの出力側に、キャリーセー
ブアダー53−1b〜53−10bがそれぞれ接続され
ている。また、10ビット加算器53の10ビット加算
器54側には、マスク手段であるマスク回路53cが設
けられている。10ビット部分加算器54の入力側に
は、並列の10個のマルチプレクサ54−1a〜54−
10aが設けられ、該各マルチプレクサ54−1a〜5
4−10aの出力側には、キャリーセーブアダー54−
1b〜54−10bがそれぞれ接続されている。図13
には、10ビット部分加算器54の入力データa540
〜a548 ,b540 〜549 、該各入力データa54
0 〜a548 の補数−a540 〜−a548 及びビット
単位の入力キャリーci540 〜ci549 が示される
と共に、10ビット部分加算器53の入力データa53
0 〜a538 ,b530 〜b538 、該入力データa5
0 〜a538 の補数−a530 〜−a538 及び入力
キャリーci530〜ci538 が示されている。
【0040】10ビット部分加算器54の入力データa
540 〜a548 が、スワッパ43から与えられた8ビ
ットのデータの下位に“0”を付加したデータであり、
入力信号a540 及び補数−a540 は、マルチプレク
サ54−1aに“0”と共にされ、かつ、該マルチプレ
クサ54−1aの上位側のマルチプレクサ54−2aに
入力されている。以下、同様に、10ビット部分加算器
54の入力データa541 〜a548 及び補数−a54
1 〜−a548 は、各マルチプレクサ54−2a〜54
−8aに“0”と共に入力され、かつ、その上位側のマ
ルチプレクサ52−3a〜52−9aにそれぞれ入力さ
れる構成になっている。入力データa548 及び補数−
a548 は、さらに、マスク回路53cを介して10ビ
ット部分加算器53中のマルチプレクサ53−1aに入
力される接続になっている。10ビット部分加算器54
の入力データb540 〜b549 及び入力キャリーci
540 〜ci549 は、前段の9ビット部分加算器52
の出力データが9ビットであったのに対し、マルチプレ
クサ61で符号拡張されて入力されたものであり、該各
入力データb540 〜b549 及び入力キャリーci5
0 〜ci549 は、各マルチプレクサ54−1a〜5
4−10aの出力するデータと共に、キャリーセーブア
ダー54−1b〜52−10bに入力されようになって
いる。
【0041】10ビット部分加算器53の入力データa
530 〜a538 は、スワッパ43から与えられた8ビ
ットのデータの下位に“0”を付加したデータであり、
入力信号a530 及び補数−a530 は、マルチプレク
サ53−1aに“0”と共に入力され、かつ、該マルチ
プレクサ53−1aの上位側のマルチプレクサ53−2
aに入力される接続になっている。以下、同様に、10
ビット部分加算器53の入力データa531 〜a538
及び補数−a531 〜−a538 は、各マルチプレクサ
53−2a〜53−9aに“0”と共に入力され、か
つ、その上位側のマルチプレクサ53−3a〜53−1
0aにそれぞれ入力される構成になっている。10ビッ
ト部分加算器53の入力データb530 〜b538 及び
入力キャリーci530 〜ci538 は、前段の9ビッ
ト部分加算器52の出力と同じ9ビットであるが、キャ
リーセーブアダー53−10bにより、符号ビットが拡
張されたようになる。つまり、各入力データb530
b538 及び入力キャリーci530 〜ci538 は、
各マルチプレクサ53−1a〜53−10aの出力する
データと共にキャリーセーブアダー53−1b〜53−
9bに入力され、入力信号b538 及び入力キャリーc
i538 が、キャリーセーブアダー53−9bに入力さ
れる構成になっている。
【0042】10ビット部分加算器54の各キャリーセ
ーブアダー54−1b〜54−10bが、ビット単位の
加算データd540 〜d549 及びキャリーc0 〜c5
9をそれぞれ出力し、同様に、10ビット部分加算器
53の各キャリーセーブアダー53−1b〜53−10
bが、ビット単位のd530 〜d539 及びキャリーデ
ータc0 〜c539 をそれぞれ出力する構成になってい
る。11ビット部分加算器55,56、及び12ビット
部分加算器57,59も、入力信号のビット数、マルチ
プレクサの数、及びキャリーセーブアダーの数及び出力
信号のビット数が増加するだけで、基本的構成は図13
と同様になっている。
【0043】図14は、図11中のマルチプレクサ61
の選択の説明図である。マルチプレクサ61には、9ビ
ット部分加算器51の出力する加算データd510 〜d
518 及びキャリーc510 〜c518 のうちの下位2
ビットのデータd510 ,d511 及び下位のキャリー
c510 と、9ビット部分加算器52の出力する加算デ
ータd520 〜d528 及びキャリーc520 〜c52
8 のうちの上位8ビットのデータd521 〜d528
びすべてのキャリーc520 〜c528 を入力してい
る。マルチプレクサ61は、整数の乗算を行うときと複
素数の乗算を行うときとで、図14のようにこれらの選
択を切替えて出力するようになっている。マルチプレク
サ62,63も、ヒット数は異なるが、図14と同様の
切替えを行って11ビット部分加算器54及び12ビッ
ト部分加算器56に出力するようになっている。
【0044】図15は、図11中の11ビット加算器5
9,60を示す構成図である。5段目の11ビット加算
器59,60は、前段の12ビット部分加算器57,5
8から出力される加算データd570 〜d5711,d5
0 〜d5811及びキャリーc570 〜c5711,c5
0 〜c5811を加算するものである。11ビット加算
器59は、加算データd570 〜d5711とキャリーc
570 〜c57 11の加算を行う加算器59aと、マスク
回路(MSK)59b及びマスク回路59cとを備えて
いる。マスク回路59bは、整数の乗算を行うときに加
算データd570 〜d5711及びキャリーc570 〜c
5711のうちのデータd570 〜d572 をマスクして
“0”に固定し、キャリーc570 〜c572 を“1”
に固定するものであり、下位側の加算結果のキャリーが
4ビット目から反映されるようになっている。マスク回
路59cは、複素数の乗算を行うときに11ビット加算
器60から与えられるキャリーc60をマスクするもの
である。加算回路59aが加算結果をビット単位に示す
加算データd590 〜d5911とキャリーc59を出力
するようになっている。11ビット加算器60は、加算
データd580 〜d5811とキャリーc580〜c58
11の加算を行う加算器56aを備ている。加算回路60
aが加算結果をビット単位に示す加算データd600
d6010とキャリーc60を出力するようになってい
る。6段目の8ビット加算器64,65は、複数乗算時
には前記(2)式における右辺第1項の結果の上位8ビ
ットと、各8ビット加算器59,60の出力するデータ
の上位8ビットとをそれぞれ加算し、整数の乗算を行う
ときには“0”を加算するものである。
【0045】図16(a),(b)は、図9中の32ビ
ット出力マルチプレクサ70での選択の説明図であり、
同図(a)は整数乗算時、及び同図(b)は複素数乗算
時をそれぞれ示している。32ビット出力マルチプレク
サ70には、16×8アレー乗算器50から、上位側の
16ビットのデータと下位側の16ビットのデータとが
入力データとして32ビット幅で与えられている。32
ビット出力マルチプレクサ70は、整数乗算時には、図
16(a)のように、上位側の入力データのうちの9ビ
ットと、下位側の15ビットを有効とし、最初の乗算サ
イクルCy1には、有効なデータを下位側に並べて出力
し、次の乗算サイクルCy2には、上位側から並べて出
力する。複素数乗算時には、図16(b)のように、3
2ビット幅で与えられる入力データの上位の14ビット
と下位の14ビットとを有効とし、これらをそのまま3
2ビットレジスタ71に出力するように動作する。
【0046】図17(a),(b)は、図9中の32ビ
ット入力マルチプレクサ72の選択の説明図であり、同
図(a)は整数乗算時、及び同図(b)は複素数乗算時
をそれぞれ示している。32ビット入力マルチプレクサ
72は、32ビットレジスタ71からデータを選択して
16×8アレイ乗算器50に与える機能を有している。
32ビットレジスタ71から入力される上位側の16ビ
ットのデータと下位側の16ビットのデータに対し、3
2ビット入力マルチプレクサ72は、整数乗算時にはそ
の上位側の下位8ビットと下位側の上位8ビットを有効
とし、これらを図17(a)のように並べ、他のビット
を“0”とし、9ビット部分加算器51,52に分割し
て与える。複素数乗算時には、32ビットレジスタ71
から入力される上位側の16ビットのデータと下位側の
16ビットのデータに対し、これらを図17(b)のよ
うにして9ビット部分加算器51,52に分割して与え
るようになっている。
【0047】次に、整数乗算時の図9の乗算器の動作を
説明する。整数乗算時には、乗数レジスタ41に16ビ
ットの整数の被乗数が格納され、乗数レジスタ42に整
数の16ビットの乗数が格納される。最初のサイクルC
y1において、デコーダ44が乗数の下位8ビットの3
ビットずつデコードし、16×8アレイ乗算器50の動
作を指示する制御信号Scを生成し、該16×8アレイ
乗算器50の各部分加算器51〜58中のマルチプレク
サに与える。スワッパ43は、被乗数をそのまま出力
し、16×8アレイ乗算器50に与える。これに対し、
32ビット入力マルチプレクサ72は、初期値として格
納したオール“0”を16×8アレイ乗算器50に入力
する。16×8アレイ乗算器50において、上位側の1
段目の9ビット部分加算器51内のマルチプレクサ51
−1a〜51−9aは、デコード結果の制御信号Scに
基づき、前記ブースのアルゴリズムの加算を行うため
に、入力データである被乗数、補数または“0”を選択
し、各キャリーセーブアダー51−1b〜51−9b
が、マルチプレクサ51−1a〜51−9aで選択した
ビット単位のデータを“0”と加算する。同様に、9ビ
ット部分加算器52内のマルチプレクサ52−1a〜5
2−9aは、デコード結果に基づき入力データである被
乗数、補数または“0”を選択し、キャリーセーブアダ
ー52−1b〜52−9bがマルチプレクサ52−1a
〜52−9aの選択したデータを“0”と加算する。下
位側の1段目の9ビット部分加算器52内のマルチプレ
クサ52−1a〜52−9aは、デコード結果の制御信
号Scに基づき、入力データである被乗数、補数または
“0”を選択し、各キャリーセーブアダー52−1b〜
52−9bが、選択されたビット単位のデータと“0”
とを加算する。
【0048】9ビット部分加算器51が出力する加算結
果のうちの最下位のビット加算データd510 は、32
ビット出力マルチプレクサ70に与えられる。残りの加
算結果のビット加算データd511 〜d518 と、キャ
リーc510 〜c518 が、2段目の10ビット部分加
算器53に与えられる。また、9ビット部分加算器51
が出力する加算結果のうちの2個のビット加算データd
511 ,d512 と最下位のキャリーc510 は、マル
チプレクサ61にも与えられる。9ビット部分加算器5
2が出力する加算結果のうちの最下位のビット加算デー
タd520 は、32ビット出力マルチプレクサ70に与
えられる。残りの加算結果のビット加算データd521
〜d528 とキャリーc520 〜c528 は、マルチプ
レクサ61に与えられる。マルチプレクサ61は、図1
4の選択に基づき、下位側のビット加算データd521
〜d528 と上位側のビット加算データd510 及びd
511 とを選択し、これらを順に並べてパラレルに出力
し、かつ、下位側のキャリーc520 〜c528 と上位
側のキャリーc510 とを選択し、これらを順に並べて
パラレルに出力し、10ビット部分加算器54に与え
る。
【0049】2段目の10ビット部分加算器53におい
ても、デコード結果の制御信号Scに基づいた前記ブー
スのアルゴリズムの加算を行うために、各マルチプレク
サ53−1a〜53−10aが、入力データである被乗
数、補数または“0”を選択し、各キャリーセーブアダ
ー53−1b〜53−10bが、マルチプレクサ53−
1a〜53−10aで選択したビット単位のデータと、
前段の9ビット部分51から与えられデータとを加算す
る。同様に、2段目の10ビット部分加算器54も、デ
コード結果の制御信号Scに基づき、前記ブースのアル
ゴリズムの加算を行うために、各マルチプレクサ54−
1a〜54−10aが、入力データである被乗数、補数
または“0”を選択し、各キャリーセーブアダー54−
1b〜54−10bが、マルチプレクサ54−1a〜5
4−10aで選択したビット単位のデータと、マルチプ
レクサ61を介して与えられたデータとを加算する。
【0050】10ビット部分加算器53が出力する加算
結果のうちの最下位のビット加算データd530 は、3
2ビット出力マルチプレクサ70に与えられる。残りの
加算結果のビット加算データd531 〜d539 と、キ
ャリーc530 〜c539 が、3段目の11ビット部分
加算器55に与えられる。また、10ビット部分加算器
53が出力する加算結果のうちの2個のビット加算デー
タd531 ,d532と最下位のキャリーc530 は、
マルチプレクサ62にも与えられる。10ビット部分加
算器54が出力する加算結果のうちの最下位のビット加
算データd540 は、32ビット出力マルチプレクサ7
0に与えられる。残りの加算結果のビット加算データd
541 〜d549 とキャリーc540 〜c549 は、マ
ルチプレクサ62に与えられる。マルチプレクサ62
は、マルチプレクサ61と同様の選択を行う。
【0051】3段目の11ビット部分加算器55,56
は、2段目の10ビット部分加算器53,54と同様の
動作で部分加算結果を出力し、マルチプレクサ63がマ
ルチプレクサ61及び62と同様の選択をする。さら
に、4段目の12ビット部分加算器57,58が、2段
目の10ビット部分加算器53,54と同様の動作で部
分加算結果を出力する。5段目の12ビット加算器5
9,60は、それぞれ12ビットの加算結果を出力す
る。12ビット加算器59が出力する加算結果のうちの
下位4ビット分が直接32ビット出力マルチプレクサ7
0に与えられる。12ビット加算器59が出力する加算
結果のうちの上位8ビット分は、8ビット加算器64で
“0”と加算されて32ビット出力マルチプレクサ70
に与えられる。12ビット加算器60が出力する加算結
果のうちの下位4ビット分が直接32ビット出力マルチ
プレクサ70に与えられる。12ビット加算器60が出
力する加算結果のうちの上位8ビット分は、8ビット加
算器65で“0”と加算されて32ビット出力マルチプ
レクサ70に与えられる。32ビット出力マルチプレク
サ70には、合計32ビットのデータが入力されている
が、このサイクルでは、図16(a)に示すように、入
力の上位側の9ビットと下位の15ビットを選択し、下
位側から並べてパラレルに32ビットレジスタ71に出
力して格納する。
【0052】以上が最初の乗算サイクルCy1である。
この最初の乗算サイクルCy1の動作により、16ビッ
トの整数同士の乗算結果の32ビットip0 〜ip31
うちの下位側のip0 〜ip7 が確定する。9ビット部
分加算器52、10ビット部分加算器54及び11ビッ
ト部分加算器56、12ビット部分加算器58がそれぞ
れ32ビット出力マルチプレクサ70に直接出力する最
下位ビットのビット加算データが、図11に示すよう
に、乗算結果のip0 〜ip3 に相当し、11ビット加
算器60が32ビット出力マルチプレクサ70に出力す
る4ビットのビット加算データがip4 〜ip7 に相当
する。確定した乗算結果のip0 〜ip7は、32ビッ
ト出力マルチプレクサ70を介して32ビットレジスタ
71に格納される。乗算サイクルCy2において、デコ
ーダが44が、乗数レジスタ42に格納された乗数の上
位8ビットを3ビットずつ組みでデコードし、16×8
アレイ乗算器50の動作を指示する制御信号Scを発生
する。スワッパ43は、被乗数レジスタ41に格納され
た被乗数をそのまま16×8アレイ乗算器50へ転送す
る。32ビット入力マルチプレクサ72は、図17
(a)のように、32ビットレジスタ71に格納された
データのうちの上位側の下位8ビットのデータと、下位
側の上位8ビットのデータを取得し、該取得した下位8
ビットのデータの上位に8ビット分の“0”を追加し、
取得した上位8のデータの上位に8ビットの“0”を追
加し、これらをパラレルにして32ビットで出力する。
16×8アレイ乗算器50は、制御信号Scに基づきサ
イクルCy1と同様に動作する。32ビット出力マルチ
プレクサ70は、図16(a)のように、16×8アレ
イ乗算器50の出力するビットの上位側の9ビットと下
位の15ビットを選択し、上位側にならべて32ビット
レジスタに出力する。
【0053】以上により、乗算サイクルCy2が終了す
る。このサイクルCy2により、乗算結果の32ビット
のデータip0 〜ip31のうちの未確定であったデータ
ip 8 〜ip31が確定する。9ビット部分加算器52、
10ビット部分加算器54及び11ビット部分加算器5
6、12ビット部分加算器58がそれぞれ32ビット出
力マルチプレクサ70に直接出力する最下位ビットのビ
ット加算データが、図11に示すように、乗算結果のデ
ータip8 〜ip11に相当し、11ビット加算器60が
32ビット出力マルチプレクサ70に出力する4ビット
のビット加算データがip12〜ip15に相当する。8ビ
ット加算器65が出力する8ビットのビット加算データ
が乗算結果のデータip16〜ip23に相当し、8ビット
加算器64が出力する8ビットのビット加算データが乗
算結果のデータip24〜ip31に相当する。新たに確定
した乗算結果のデータip8 〜ip31が、32ビット出
力マルチプレクサ70を介して32ビットレジスタ71
に格納される。
【0054】次に、複素数同士の乗算を行うときの動作
を説明する。16ビットの複素数同士の乗算の場合、被
乗数レジスタ41の上位側に被乗数の複素数の実数部が
格納されると共に下位側に虚数部が格納され、乗数レジ
スタ42に乗数の複素数が格納される。最初のサイクル
Cy1にらおいて、デコーダち44は、乗数レジスタ4
2に格納された複素数のうちの実数部の8ビットを2ビ
ットずつ組でデコードし、16×8アレイ乗算器50の
動作を指示する制御信号Scを発生する。スワッパ43
は、乗数レジスタ41に上位側から順に格納された複素
数の8ビットの実数部と8ビットの虚数部をそのまま1
6×8アレイ乗算器50に転送する。32ビット入力マ
ルチプレクサ72は、32ビットレジスタ71の格納デ
ータがこの時点ですべて“0”なので、“0”を32ビ
ット幅で出力する。
【0055】16×8アレイ乗算器50において、被乗
数の実数部は、スワッパ43を介して9ビット部分加算
器51に与えられ、虚数部は9ビット部分加算器52に
与えられる。9ビット部分加算器51内のマルチプレク
サ51−1a〜51−9aは、デコード結果の制御信号
Scに基づき、ブースのアルゴリズムの加算を行うため
に、入力データである被乗数、補数または“0”を選択
し、各キャリーセーブアダー51−1b〜51−9b
が、マルチプレクサ51−1a〜51−9aで選択した
ビット単位のデータを“0”と加算する。これらと同時
に、9ビット部分加算器52内のマルチプレクサ52−
1a〜52−9aが、デコード結果に基づき入力データ
である被乗数、補数または“0”を選択し、該選択した
データをキャリーセーブアダー52−1b〜52−9b
が“0”と加算する。9ビット部分加算器51が出力す
る加算結果のうちの最下位のビット加算データd510
は、32ビット出力マルチプレクサ70に与えられる。
残りの加算結果のビット加算データd511 〜d518
と、キャリーc510 〜c518 が、2段目の10ビッ
ト部分加算器53に与えられる。また、9ビット部分加
算器51が出力する加算結果のうちの2個のビット加算
データd511 ,d512 と最下位のキャリーc510
は、マルチプレクサ61にも与えられる。マルチプレク
サ61は、図14の選択に基づき、下位側のビット加算
データd521 〜d52 8 と2ビット分の“0”とを順
に並べてパラレルに出力し、かつ、下位側のキャリーc
520 〜c528 を選択すると共にキャリーc528
追加して順に並べてパラレルに出力し、10ビット部分
加算器54に与える。
【0056】2段目の10ビット部分加算器53,5
4、3段目の11ビット部分加算器55,56、4段目
の12ビット部分加算器57,58、及び各段間のマル
チプレクサ62,63も、9ビット部分加算器51,5
2及びマルチプレクサ61と同様に動作する。5段目の
11ビット加算器59,60が、12ビットずつのデー
タを出力し、6段目の8ビット加算器64,65におい
て、11ビット加算器59,60の各出力データのうち
の上位8ビットと、32ビット入力マルチプレクサ72
の出力データの上位側の下位8ビット及び下位側の下位
8ビットとを加算する。ただし、32ビット入力マルチ
プレクサ72の出力データがこのときは“0”なので、
加算による変化は起こらない。32ビット出力マルチプ
レクサ70は、図16(b)のように、16×8アレイ
乗算器50からのデータをそのまま32ビットレジスタ
71に出力する。
【0057】以上が乗算サイクルCy1の動作である。
この乗算サイクルCy1の動作により、(2)式の第1
項目のAr・BrとAi・Brとが計算されたことにな
る。9ビット部分加算器52、10ビット部分加算器5
4、11ビット部分加算器56及び12ビット部分加算
器58がそれぞれ32ビット出力マルチプレクサ70に
直接出力する最下位ビットのビット加算データと、11
ビット加算器60と8ビット加算器65の出力するデー
タとを合成したものが、Ai・Brに相当し、9ビット
部分加算器51、10ビット部分加算器53、11ビッ
ト部分加算器55及び12ビット部分加算器57がそれ
ぞれ32ビット出力マルチプレクサ70に直接出力する
最下位ビットのビット加算データと、11ビット加算器
59と8ビット加算器64の出力するデータとを合成し
たものが、Ar・Brに相当する。これらのデータは、
32ビット出力マルチプレクサ70を介して32ビット
レジスタ71に格納される。乗算サイクルCy2におい
て、デコーダ44は、乗数レジスタ42に格納された虚
数部の8ビットを2ビットずつ組みでデコードし、16
×8アレイ乗算器50の動作を指示する制御信号Scを
発生する。スワッパ43は、被乗数レジスタ41に格納
されたデータの上位8ビットと下位8ビットを入れ替
え、16×8アレイ乗算器50に転送する。32ビット
入力マルチプレクサ72は、32ビットレジスタ71が
格納するデータをそのままパラレルに出力する。
【0058】16×8アレイ乗算器50において、被乗
算データが制御信号Scに基づき、マルチプレクサ51
−1a〜51−9a,52−1a〜52−9aで変形さ
れ、キャリーセーブアダー51−1b〜51−9b,5
2−1b〜52−9bによって、32ビット入力マルチ
プレクサ72から与えられたデータの上位側(実数部)
の下位8ビット及び下位側(虚数部)の下位8ビットと
加算される。ただし、被乗数の上位8ビットは(2)式
に示すように負になるので、実質的には補数を用いた減
算が行われる。以下、2段目の10ビット部分加算器5
3,54から5段目の12ビット加算器57,58ま
で、乗算サイクルCy1と同様の処理を行う。6段目の
8ビット加算器64,65が、11ビット加算器59,
60が出力するデータのうちの上位8ビットと、32ビ
ット入力マルチプレクサ72の出力データのうちの上位
側の下位8ビットのデータ及び下位側の下位8ビットの
データとをそれぞれ加算する。32ビット出力マルチプ
レクサ70は、16×8アレイ加算器50が出力したデ
ータを、そのまま32ビットレジスタ71に与えて格納
する。
【0059】以上により、乗算サイクルCy2が終了す
る。このサイクルCy2の動作により、(2)式の演算
結果が求められたことになる。演算結果の実数部をrp
0 〜rp15とし、虚数部をjp0 〜jp15とすると、乗
算サイクルCy2における9ビット部分加算器52、1
0ビット部分加算器54、11ビット部分加算器56及
び12ビット部分加算器58が、それぞれ32ビット出
力マルチプレクサ70に直接出力する最下位ビットのビ
ット加算データが、図11に示すように、虚数部のjp
0 〜jp3 に相当し、11ビット加算器60が32ビッ
ト出力マルチプレクサ70に出力する4ビットのビット
加算データがjp4 〜jp7 に相当する。8ビット加算
器65が出力する8ビットのビット加算データが乗算結
果のデータjp8 〜jp15に相当する。また、9ビット
部分加算器51、10ビット部分加算器53及び11ビ
ット部分加算器53、12ビット部分加算器57がそれ
ぞれ32ビット出力マルチプレクサ70に直接出力する
最下位ビットのビット加算データが、実数部のrp0
rp3 に相当し、11ビット加算器59が32ビット出
力マルチプレクサ70に出力する4ビットのビット加算
データがrp4 〜rp7 に相当する。8ビット加算器6
4が出力する8ビットのビット加算データが乗算結果の
データrp8 〜rp15に相当する。以上のように、この
第2の実施形態では、整数同士の乗算ばかりでなく、複
素数同士の乗算が可能なアレイ型乗算器になっており、
しかも、整数のみを乗算するアレイ型乗算器に対して
も、わずかなハードウエアの追加で構成できる。
【0060】なお、本発明は、上記実施形態に限定され
ず種々の変形が可能である。例えば、第1の実施形態で
は、符号付データの乗算に対応する繰り返し型乗算器を
説明したが、レジスタビット数を1つ増やし、反復回数
をもう1回増やせば、符号なしデータに対しても整数乗
算及び複素数乗算が可能である。第2の実施形態でも符
号付データの乗算に対応するアレイ型乗算器を説明した
が、レジスタビット数を1つ増やし、16×8アレイ乗
算器の部分加算器の段数を1段増やすことにより、符号
なしデータに対しても整数乗算及び複素数乗算が可能で
ある。
【0061】
【発明の効果】以上詳細に説明したように、第1の発明
によれば、被乗数レジスタ、乗数レジスタ、デコーダ及
び入れ替え手段と、下位側変換手段及び上位側変換手段
と、下位側部分加算器及び上位側部分加算器と、下位側
桁移動手段及び上位側桁移動手段と、下位側部分積レジ
スタ部及び上位側部分積レジスタ部と、下位側シフタ及
び上位側シフタとを備えると共に、マスク手段、下位側
補助レジスタ及び上位側補助レジスタを設けたので、整
数同士の乗算と複素数同士の乗算との両方が可能な繰り
返し型乗算器を少ないハード量で実現できる。第2の発
明によれば、被乗数レジスタ、乗数レジスタ、デコーダ
及び入れ替え手段と、デコーダと、下位側初段部分加算
器、下位側縦続部分加算器、上位側初段部分加算器、上
位側縦続部分加算器及びマスク手段を有するアレイ乗算
部と、レジスタと、入力マルチプレクサと、出力マルチ
プレクサとを設けたので、整数同士の乗算と複素数同士
の乗算との両方が可能なアレイ型乗算器を少ないハード
量で実現できる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態を示す繰り返し型乗算
器の概略の構成図である。
【図2】従来の乗算器の積和演算サイクル数を示す図で
ある。
【図3】複素数データと複素数表現を示す図である。
【図4】図1中のデコーダ4が使用するブースのアルゴ
リズムを示す図である。
【図5】図1中のデコーダ4が行う乗数のデコード順序
を示す図である。
【図6】図1中の部分加算器10,20を示す構成図で
ある。
【図7】マルチプレクサ31,36の選択を示す図であ
る。
【図8】シフタ34,35が選択するフィールドを示す
図である。
【図9】本発明の第2の実施形態を示すアレイ型乗算器
の構成図である。
【図10】図1中のデコーダ44による乗数のデコード
順序を示す図である。
【図11】図9中の16ビット×8アレー乗算器50を
示す構成図である。
【図12】図11中の9ビット部分加算器51,52を
示す構成図である。
【図13】図11中の10ビット部分加算器53,54
を示す構成図てある。
【図14】図11中のマルチプレクサ61の選択の説明
図である。
【図15】図11中の11ビット加算器59,60を示
す構成図である。
【図16】図9中の32ビット出力マルチプレクサ70
の選択の説明図である。
【図17】図9中の32ビット入力マルチプレクサ72
の選択の説明図である。
【符号の説明】
1,41 被乗数レジスタ 2,42 乗数レジスタ 3,43 スワッパ 4,44 デコーダ 5,6,31,36 マルチプレクサ 10,20 部分加算器 32,37 部分積レジスタ 33,38 部分積補助レジスタ 34,35 シフタ 50 16×8アレイ乗算器 70 出力マルチプレクサ 71 レジスタ 72 入力マルチプレクサ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 整数同士の乗算を行う整数乗算時には被
    乗数となる2n(nは正の整数)ビットの整数を格納
    し、複素数同士の乗算を行う複素数乗算時には被乗数と
    なる複素数のnビットの実数部を上位側に格納すると共
    にnビットの虚数部を下位側に格納する被乗数レジスタ
    と、 前記整数乗算時には乗数の2nビットの整数を格納し、
    前記複素数乗算時には乗数となる複素数のnビットの実
    数部を上位側に格納すると共にnビットの虚数部を下位
    側に格納する乗数レジスタと、 前記乗数レジスタに格納された乗数を乗算サイクルごと
    に複数ビットずつデコードするデコーダと、 前記整数乗算時には前記被乗数レジスタに格納された前
    記被乗数の上位側と下位側とをパラレルに出力し、前記
    複素数乗算時において前記被乗数に前記乗数の実数部を
    乗算する乗算サイクルには前記被乗数の上位側と下位側
    とをパラレルに出力し、該複素数乗算時において該被乗
    数に前記乗数の虚数部を乗算する乗算サイクルには該被
    乗数の上位側と下位側とを入れ替えてパラレルに出力す
    る入れ替え手段と、 前記入れ替え手段が下位側及び上位側に出力した各デー
    タを前記デコード結果に基づきそれぞれ変換する下位側
    変換手段及び上位側変換手段と、 前記乗算サイクルごとに与えられる下位側被加算データ
    及び上位側被加算データと前記下位側変換手段及び上位
    側変換手段によって変換された各データとを加算し、下
    位側部分加算データ及び上位側部分加算データをそれぞ
    れ求める下位側部分加算器及び上位側部分加算器と、 前記整数乗算時には前記下位側部分加算器の加算結果の
    桁上がりを前記上位側部分加算器の加算に反映させ、前
    記複素数乗算時には該桁上がりをマスクするマスク手段
    と、 前記下位側部分加算器及び上位側部分加算器がそれぞれ
    出力する前記下位側部分加算データ及び上位側部分加算
    データを前記乗算サイクルごとにそれぞれ桁移動させる
    下位側桁移動手段及び上位側桁移動手段と、 前記下位側桁移動手段を介した前記下位側部分加算デー
    タ及び前記上位側桁移動手段を介した前記上位側部分加
    算データを前記乗算サイクルごとにそれぞれ取り込み格
    納内容を更新しつつ格納する下位側部分積レジスタ部及
    び上位側部分積レジスタ部と、 前記下位側部分積レジスタ部に格納された前記下位側部
    分加算データの一部及び前記上位側部分積レジスタ部に
    格納された前記上位部分加算データの一部を前記乗算サ
    イクルごとに桁をずらして読出し、前記下位側被加算デ
    ータ及び上位側被加算データをそれぞれ生成する下位側
    シフタ及び上位側シフタと、 前記複素数乗算時の前記被乗数に前記乗数の実数部を乗
    算する乗算サイクルが終了した段階で、該乗算の結果に
    おける虚数部のデータの一部を格納する下位側補助レジ
    スタと、 前記複素数乗算時の前記被乗数に前記乗数の実数部を乗
    算する乗算サイクルが終了した段階で、該乗算の結果に
    おける実数部のデータの一部を格納する上位側補助レジ
    スタと、 前記複素数乗算時の前記被乗数に前記乗数の虚数部を乗
    算する乗算サイクルが終了した段階で、前記下位側シフ
    タで生成した前記下位側被加算データと前記下位側補助
    レジスタが格納したデータとを前記下位側部分加算器に
    加算させる下位側加算補助手段と、 前記複素数乗算時の前記被乗数に前記乗数の虚数部を乗
    算する乗算サイクルが終了した段階で、前記上位側シフ
    タで生成した前記上位側被加算データと前記上位側補助
    レジスタが格納したデータとを前記上位側部分加算器に
    加算させる上位側加算補助手段とを、備えたことを特徴
    する繰り返し型乗算器。
  2. 【請求項2】 請求項1記載の被乗数レジスタ、乗数レ
    ジスタ及び入れ替え手段と、 最初の乗算サイクルでは前記乗数レジスタに格納された
    乗数の下位側をデコードし、次の乗算サイクルでは該乗
    数の上位側をデコードするデコーダと、 前記入れ替え手段が下位側に出力したデータを入力する
    と共に下位側被加算データを入力し、前記デコード結果
    に基づき該入れ替え手段から入力したデータを変換して
    該下位側被加算データと加算する下位側初段部分加算
    器、該下位側初段部分加算器の出力側に複数段縦続接続
    され、該入れ替え手段が下位側に出力したデータを桁移
    動した上で該デコード結果に基づき変換し、前段から与
    えられたデータとそれぞれ加算する下位側縦続部分加算
    器、該入れ替え手段が上位側に出力したデータを入力す
    ると共に上位側被加算データを入力し、該デコード結果
    に基づき該入れ替え手段から入力したデータを変換して
    該上位側被加算データと加算する上位側初段部分加算
    器、該上位側初段部分加算器の出力側に複数段縦続接続
    され、該入れ替え手段が上位側に出力したデータを桁移
    動した上で該デコード結果に基づき変換し、前段から与
    えられたデータとそれぞれ加算する上位側縦続部分加算
    器、及び前記整数乗算時には該下位側初段部分加算器及
    び下位側縦続部分加算器の加算結果の桁上がりを該上位
    側初段部分加算器及び上位側縦続部分加算器の加算に反
    映させ、前記複数乗算時には該桁上がりをマスクするマ
    スク手段を有するアレイ乗算部と、 2nビット幅以上の格納領域を持つレジスタと、 前記整数乗算時及び前記複素数乗算時に、前記レジスタ
    の格納領域のうちの前記各乗算サイクルごと設定された
    領域からデータをそれぞれ読出し前記下位側被加算デー
    タ及び上位側被加算データとして前記アレイ乗算部に入
    力する入力マルチプレクサと、 前記整数乗算時及び前記複素数乗算時の前記各乗算サイ
    クルの終了時に、前記レジスタの格納領域のうちの該各
    乗算サイクルごと設定された領域に前記アレイ乗算部が
    出力するデータを格納する出力マルチプレクサとを、備
    えたことを特徴とするアレイ型乗算器。
JP31798699A 1999-11-09 1999-11-09 繰り返し型乗算器とアレイ型乗算器 Expired - Fee Related JP3982965B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31798699A JP3982965B2 (ja) 1999-11-09 1999-11-09 繰り返し型乗算器とアレイ型乗算器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31798699A JP3982965B2 (ja) 1999-11-09 1999-11-09 繰り返し型乗算器とアレイ型乗算器

Publications (2)

Publication Number Publication Date
JP2001134556A true JP2001134556A (ja) 2001-05-18
JP3982965B2 JP3982965B2 (ja) 2007-09-26

Family

ID=18094218

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31798699A Expired - Fee Related JP3982965B2 (ja) 1999-11-09 1999-11-09 繰り返し型乗算器とアレイ型乗算器

Country Status (1)

Country Link
JP (1) JP3982965B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009048532A (ja) * 2007-08-22 2009-03-05 Nec Electronics Corp マイクロプロセッサ
US20110103490A1 (en) * 2009-10-29 2011-05-05 Chi-Chang Kuo Deblocking Filtering Apparatus And Method For Video Compression
US10061559B2 (en) 2015-09-09 2018-08-28 Samsung Electronics Co., Ltd Apparatus and method for controlling operation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009048532A (ja) * 2007-08-22 2009-03-05 Nec Electronics Corp マイクロプロセッサ
US20110103490A1 (en) * 2009-10-29 2011-05-05 Chi-Chang Kuo Deblocking Filtering Apparatus And Method For Video Compression
US8494062B2 (en) * 2009-10-29 2013-07-23 Industrial Technology Research Institute Deblocking filtering apparatus and method for video compression using a double filter with application to macroblock adaptive frame field coding
US10061559B2 (en) 2015-09-09 2018-08-28 Samsung Electronics Co., Ltd Apparatus and method for controlling operation

Also Published As

Publication number Publication date
JP3982965B2 (ja) 2007-09-26

Similar Documents

Publication Publication Date Title
JP3479438B2 (ja) 乗算回路
KR100715770B1 (ko) 연산을 수행하는 방법 및 시스템 및 장치
KR100714358B1 (ko) 연산을 수행하기 위한 방법, 시스템 및 장치
US5457804A (en) Accumulating multiplication circuit executing a double-precision multiplication at a high speed
US6609143B1 (en) Method and apparatus for arithmetic operation
JPS6347874A (ja) 算術演算装置
US20080243976A1 (en) Multiply and multiply and accumulate unit
US6009450A (en) Finite field inverse circuit
US5870322A (en) Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication
JP2001134556A (ja) 繰り返し型乗算器とアレイ型乗算器
JP3660075B2 (ja) 除算装置
JP3563043B2 (ja) 平方根の逆数計算方法、計算回路、及びプログラム
JP3855491B2 (ja) 乗算器
JPH02115929A (ja) 乗算器
KR100251547B1 (ko) 디지탈신호처리기(Digital Sgnal Processor)
JPH08292876A (ja) 演算装置
JPH11134174A (ja) 演算回路
JPH0784762A (ja) 乗算回路
JPH11282651A (ja) 並列乗算器
JPH02114324A (ja) 乗算器
JPS6152741A (ja) シフト機能付乗算回路
KR100246472B1 (ko) 디지탈신호처리기
JPH0371332A (ja) 剰余乗算回路および剰余乗算方法
JPH05241793A (ja) 倍精度乗算器
JP2000187584A (ja) 演算回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070628

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070703

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

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 3

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 5

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees