JP3222313B2 - 演算装置及び演算方法 - Google Patents

演算装置及び演算方法

Info

Publication number
JP3222313B2
JP3222313B2 JP08422694A JP8422694A JP3222313B2 JP 3222313 B2 JP3222313 B2 JP 3222313B2 JP 08422694 A JP08422694 A JP 08422694A JP 8422694 A JP8422694 A JP 8422694A JP 3222313 B2 JP3222313 B2 JP 3222313B2
Authority
JP
Japan
Prior art keywords
result
digit
redundant binary
binary
binary number
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
JP08422694A
Other languages
English (en)
Other versions
JPH0793132A (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 JP08422694A priority Critical patent/JP3222313B2/ja
Publication of JPH0793132A publication Critical patent/JPH0793132A/ja
Application granted granted Critical
Publication of JP3222313B2 publication Critical patent/JP3222313B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、乗算や積和演算を行う
ための演算装置及び演算方法の改良に関し、特に、乗算
命令や積和演算命令を高速に実行するための演算装置及
び演算方法に関する。
【0002】
【従来の技術】近年、通信分野や画像処理分野における
高速かつ大量データを対象としたデジタル信号処理を行
うためのハードウェアとして、高速なデジタル・シグナ
ル・プロセッサ(DSP)の開発が進んでいる。特に、
DSPにおいて最も使用頻度の高い積和演算命令を高速
に実行するため、乗算器や累算器の高速化が行なわれて
いる。従来のDSPに搭載されている積和演算装置とし
ては、乗算器と累算処理を行うための加算器をパイプラ
イン構成したものがある。例えば、1993年ISSC
C technical paper pp.28−2
9記載参照。
【0003】以下図面を参照しながら、上記した従来の
積和演算装置の一例について説明する。図12は従来の
積和演算装置のブロック図を示すものである。図12に
おいて、101は部分積をキャリーセーブ加算器で加算
し、生成される1組の乗算結果を出力する乗算器であ
る。102は乗算器101の出力結果を加算し、2進数
にするキャリールックアヘッド加算器(以下、CLAと
略す)である。103はCLA102の出力の累算を行
う累算処理部である。104はソースオペランドを前記
乗算器101に供給する記憶装置である。
【0004】また、110〜113まではすべてラッチ
である。この内、110は乗数Yを蓄える第1の入力ラ
ッチ、111は被乗数Xを蓄える第2の入力ラッチ、1
12はCLA102の出力結果を蓄える中間ラッチ、1
13は累算処理部103の結果を蓄え、かつ出力を累算
処理部103に送る累算結果ラッチである。また、11
4は中間ラッチ112の出力と累算結果ラッチ113の
出力とを選択し出力するセレクタである。
【0005】以上のように構成された積和演算装置につ
いて、以下その動作について説明する。
【0006】乗算命令を実行する場合、まず命令のデコ
ード結果からセレクタ114を操作して中間ラッチ11
2の出力を積和演算装置の出力とする。また、記憶装置
104から1組のソースオペランド(X,Y)が選択、
出力される。
【0007】次に、前記ソースオペランド(X,Y)は
第1及び第2の入力ラッチ110〜111を通して供給
されると共に乗算器101において乗算を行ない1組の
乗算結果を生成する。前記乗算器101の出力結果はC
LA102において加算される。
【0008】次に、前記CLA102の出力結果は中間
ラッチ112にラッチされ、セレクタ114を通して出
力される。
【0009】積和演算命令を実行する場合、まず命令の
デコード結果からセレクタ114を操作して累算結果ラ
ッチ113の出力を積和演算装置の出力とする。また、
記憶装置104から1組のソースオペランド(X0,Y
0)が選択、出力される。
【0010】更に、前記ソースオペランド(X0,Y
0)は第1及び第2の入力ラッチ110〜111を通し
て供給されると共に乗算部101において乗算を行ない
1組の乗算結果を生成する。前記乗算部101の出力結
果はCLA102において加算される。
【0011】続いて、前記CLA102の出力結果は中
間ラッチ112にラッチされ、累算結果ラッチ113の
出力と共に累算処理部103に供給され、加算を行う。
【0012】次に、前記累算処理部103の出力は累算
結果ラッチ113にラッチされ、セレクタ114を通し
て出力される。
【0013】また、積和演算装置を構成する乗算器を考
える場合、従来の高速乗算器として冗長2進数乗算器が
ある。
【0014】以下、図面を参照しながら、上記した従来
の冗長2進数乗算器の一例について説明する。
【0015】図13は従来の16X16冗長2進数乗算
器のブロック図を示すものである。図13において、1
30〜133までは第1から第4の部分積生成回路アレ
イ(以下、PPGアレイと略す)である。また、140
はブースのリコード回路である。
【0016】120〜123は冗長2進数同士の加算を
行い、冗長2進数出力(符号と絶対値または正出力と負
出力の組み合わせ)を生成する冗長2進数加算器アレイ
(以下、RBAアレイと略す)である。この内、120
は上位桁側の結果を生成する第1のRBAアレイ、12
1は下位桁側の結果を生成する第2のRBAアレイ、1
22は前記第1のRBAアレイ120の結果と第2のR
BAアレイ121の結果を加算する第3のRBAアレ
イ、123は前記第3のRBAアレイ122の結果と第
1のPPGアレイ130が生成する補正項を加算する第
4のRBAアレイである。
【0017】以上のように構成された冗長2進数乗算器
について、以下、その動作について説明する。
【0018】第1の入力ラッチ110から供給される1
6桁の乗数はブースのリコード回路140で8組のリコ
ード値に変換される。第1〜第4のPPGアレイ130
〜133は前記8組のリコード値と第2の入力ラッチ1
11から供給される被乗数を用いて4つの部分積と4つ
の補正項を生成する。前記各補正項は、冗長2進数表現
での加算において、ある桁からの桁上げを必ずその1つ
上位の桁で吸収して、桁上げがそれ以上上位に伝播しな
いようにして、桁上げが高々1桁しか伝播しないように
するためのものである。第2のRBAアレイ121にお
いて、第4のPPGアレイ133で生成された部分積及
び補正項と第3のPPGアレイ132で生成された部分
積の加算が行なわれる。また、第1のRBAアレイ12
0において、第3のPPGアレイ132で生成された補
正項と第2のPPGアレイ131で生成された部分積及
び補正項と第1のPPGアレイ130で生成された部分
積との加算が行なわれる。つぎに第3のRBAアレイ1
22において、前記第1及び第2のRBAアレイ120
〜121の出力の加算が行なわれる。最後に第4のRB
Aアレイ123において、前記第3のRBAアレイ12
2の出力と第1のPPGアレイ130で生成された補正
項との加算を行ない、冗長2進数の出力を得る。
【0019】
【発明が解決しようとする課題】しかしながら、前記図
12のような従来の積和演算装置の構成では、乗算器1
01の処理時間と他のCLA等の各回路の処理時間とを
比較すると、乗算器101の処理時間が最も長く、この
ため、乗算器の動作速度が演算の高速化における律速条
件となるという問題点を有していた。
【0020】また、前記のような従来の冗長2進数乗算
器の構成では、乗数が4の倍数の場合に、図13のよう
な2進木加算構造をとるときには、第3のRBAアレイ
122の出力に最上位の補正項を加算する第4のRBA
アレイ123を必要とするために、加算段数が1段増え
るという問題点を有していた。
【0021】本発明は前記問題点に鑑み、その目的は、
冗長2進数乗算器を用いて乗算を行う演算装置、及び冗
長2進数乗算器を用いて積和演算を行う演算装置におい
て、その乗算命令や積和演算命令を高速に実行させると
共に、冗長2進数乗算器における最上位の補正項を加算
するためのゲート段数の増加を抑えることにある。
【0022】
【課題を解決するための手段】前記問題点を解決するた
めに、本発明では、冗長2進数表現の数同志の乗算後
は、その冗長2進数表現の乗算結果を2進数表現に変換
する場合に、その2進数表現への変換にキャリールック
アヘッド加算器を使用する点に着目し、その加算器にお
けるキャリーのプロパゲーション及びジェネレーション
の生成を前記冗長2進数乗算器における最上位の補正項
を考慮した形で行うことにより、前記前記冗長2進数乗
算器における最上位の補正項の加算を行ったに等しくす
る。
【0023】その場合に、本発明では、更に、冗長2進
数表現の数同志の乗算とその乗算結果の累積とを行う積
和演算において、その積和演算の演算時間を短縮する構
成を採用する。
【0024】すなわち、請求項1記載の発明の演算装置
では、乗算に関し、1組の冗長2進数乗算結果及び1つ
の補正項を生成する冗長2進数乗算部と、前記冗長2進
数乗算部により生成された補正項を用いて直接プロパゲ
ーション及びジェネレーションの生成を行ない、この生
成されたプロパゲーション及びジェネレーションを用い
て前記冗長2進数乗算部の出力の冗長2進数/2進数変
換を行なう冗長2進数/2進数変換部とを備える構成と
する。
【0025】また、請求項2記載の発明の演算装置で
は、積和演算に関し、前記請求項1記載の発明の構成に
加えて、冗長2進数乗算部と冗長2進数/2進数変換部
との間に配置される累算処理部を有し、前記累算処理部
は、前記冗長2進数乗算部の冗長2進数乗算結果と累算
値との加算を行ない、前記累算値は、前記累算処理部の
加算結果を冗長2進数/2進数変換した前記冗長2進数
/2進数変換部の出力である構成とする。
【0026】更に、請求項3記載の発明の演算装置で
は、1組の冗長2進数乗算結果及び1つの補正項を生成
する冗長2進数乗算部と、前記冗長2進数乗算部内の乗
数下位側部分と被乗数との下位側部分積加算結果及び乗
数上位側部分と被乗数との上位側部分積加算結果を取り
出すパスと、前記2組の部分積加算結果及び前記補正項
を蓄える第1、第2及び第3の中間ラッチと、累算結果
ラッチと、前記第1ないし第3の中間ラッチの結果と前
記累算結果ラッチの値を累算し、その累算結果を前記累
算結果ラッチに蓄える冗長2進数累算処理部と、前記冗
長2進数乗算部の結果及び前記冗長2進数累算処理部の
結果の何れか一方を選択するセレクタと、前記補正項を
用いて直接プロパゲーション及びジェネレーションの生
成を行なうと共に、このプロパゲーション及びジェネレ
ーションを用いて前記セレクタを介して供給される値を
2進数に変換する冗長2進数/2進数変換部とを備える
構成とする。
【0027】加えて、請求項4記載の発明の演算方法で
は、前記請求項3記載の演算装置を用いた演算方法を前
提として、乗算命令を実行する場合には、冗長2進数乗
算部により1組の冗長2進数乗算結果及び1つの補正項
を生成し、次いで、セレクタにより前記冗長2進数乗算
部の結果を選択し、冗長2進数/2進数変換部により前
記選択された冗長2進数乗算部の結果から前記補正項を
用いて直接プロパゲーション及びジェネレーションを生
成した後、その加算処理を行なって冗長2進数/2進数
変換を行うノンパイプライン動作を行い、積和演算命令
を実行する場合には、第1ステージにおいて冗長2進数
乗算部により2組の部分積加算結果及び1つの補正項の
生成を行った後、第2ステージにおいて冗長2進数累算
部により前記2組の部分積加算結果及び1つの補正項と
過去の累算値との冗長2進数加算を行い、次いで、積和
演算命令で指定された回数の乗算処理及び累算処理を各
々前記第1ステージ及び第2ステージで行なうことを繰
返し、その後、ステージ3において前記積和演算命令で
指定された回数の累算処理を終えた冗長2進数累算結果
をセレクタにより選択し、この冗長2進数累算結果を冗
長2進数/2進数変換部により2進数に変換するパイプ
ライン動作を第1ないし第3の中間ラッチより成る第1
のパイプラインラッチ及び累算結果ラッチより成る第2
のパイプラインラッチを用いて行う方法である。
【0028】また、請求項5記載の発明の演算方法で
は、積和演算に関し、乗算命令を実行する場合には、1
組の冗長2進数乗算結果及び1つの補正項を生成し、次
いで、前記1組の冗長2進数乗算結果から前記補正項を
用いて直接プロパゲーション及びジェネレーションを生
成し、その加算処理を行なって冗長2進数/2進数変換
を行うノンパイプライン動作を行い、一方、積和演算命
令を実行する場合には、第1ステージにおいて乗数下位
側部分と被乗数との下位側部分積加算結果及び乗数上位
側部分と被乗数との下位側部分積加算結果並びに1つの
補正項の生成を行った後、第2ステージにおいて前記2
組の部分積加算結果及び1つの補正項と過去の累算値と
の冗長2進数加算を行い、次いで、積和演算命令で指定
された回数の乗算処理及び累算処理を各々前記第1ステ
ージ及び第2ステージで行なうことを繰返し、その後、
第3ステージにおいて前記積和演算命令で指定された回
数の累算処理を終えた冗長2進数累算結果を2進数に変
換するパイプライン動作を行う演算方法である。
【0029】更に、請求項6記載の発明では、前記請求
項1〜3記載の演算装置において、冗長2進数/2進数
変換部は、冗長2進数入力に関して最上位の補正項の桁
位置より1桁下までの演算処理を行なう第1の加算器
と、前記最上位の補正項の桁位置の値及びこの桁位置よ
り上位の値に関してプロパゲーションとジェネレーショ
ンを生成するpg生成部と、前記pg生成部の出力及び
前記第1の加算器の桁上げ信号を用いて加算処理を行な
う第2の加算器とから成る構成とする。
【0030】加えて、請求項7記載の発明では、前記請
求項6記載の演算装置において、冗長2進数は、正出力
と負出力との組合せより成り、第1の加算器は、前記冗
長2進数入力に関して最上位の補正項の桁位置より1桁
下までの減算処理を行なうもので構成する。
【0031】また、請求項8記載の発明では、前記請求
項6記載の演算装置において、冗長2進数は絶対値と符
号から成り、pg生成部は、前記冗長2進数における最
上位の補正項の桁位置より上位の桁位置までの任意のi
桁目に関して、i桁目の絶対値とi‐1桁目の符号の反
転との論理積を中間桁上げ、i桁目の絶対値とi‐1桁
目の符号の反転との排他的論理和を中間和として、前記
i桁目の中間和とi‐1桁目の中間桁上げとの論理積を
ジェネレーション、前記i桁目の中間和とi‐1桁目の
中間桁上げとの排他的論理和をプロパゲーションとする
i桁目のpg生成セルを備える構成とする。
【0032】更に、請求項9記載の発明では、前記請求
項1〜請求項3又は請求項9記載の発明の演算装置にお
いて、冗長2進数乗算部により生成された補正項は絶対
値と符号とから成り、冗長2進数/2進数変換部は、前
記冗長2進数乗算部により生成された補正項を複数の選
択信号に変換する変換選択信号生成部を有し、前記変換
選択信号生成部により変換された複数の選択信号を用い
てプロパゲーション及びジェネレーションの生成を行な
う構成とする。
【0033】加えて、請求項10記載の発明では、前記
請求項9記載の発明の演算装置において、冗長2進数は
絶対値と符号から成り、pg生成部は、前記冗長2進数
における最上位の補正項の桁位置jに関して、j桁目の
絶対値と前記補正項の絶対値との排他的論理和をジェネ
レーションgjとし、1をプロパゲーションpjとする
と共に、前記補正項が1のとき、j桁目の絶対値の反転
を中間桁上げ、j桁目の符号をj桁目の符号とし、前記
補正項が0のとき、1を中間桁上げ、j桁目の符号をj
桁目の符号とし、前記補正項が−1のとき、j桁目の絶
対値とj桁目の符号の反転との積の反転を中間桁上げ、
1をj桁目の符号とするj桁目のpg生成セルを備える
構成とする。
【0034】また、請求項11記載の発明では、前記請
求項1〜請求項3記載の演算装置において、冗長2進数
/2進数変換部は、冗長2進数乗算部により生成された
1組の冗長2進数乗算結果のうち、最下位桁から所定桁
までの1部分を入力し、この1部分を冗長2進数から2
進数に変換する冗長2進数/2進数部分変換部を有する
構成とする。
【0035】更に、請求項12記載の発明の演算装置で
は、乗数の下位側部分と被乗数との下位側部分積加算結
果、前記乗数の上位側部分と被乗数との上位側部分積加
算結果、及び1つの補正項を生成する冗長2進数乗算部
分処理部と、前記下位側部分積加算結果のうち最下位桁
から所定桁までの一部分以外の部分と前記上位側部分積
加算結果との加算処理を行なう累算処理部と、前記下位
側部分積加算結果のうち最下位桁から所定桁までの一部
分を冗長2進数から2進数に変換する冗長2進数/2進
数部分変換部と、前記冗長2進数乗算部分処理部により
生成された補正項を用いてプロパゲーション及びジェネ
レーションを生成し、この生成されたプロパゲーション
及びジェネレーションを用いて前記累算処理部の演算処
理結果を冗長2進数から2進数に変換する冗長2進数/
2進数変換部とを備えて、1回の乗算機能を有する構成
とする。
【0036】加えて、請求項13記載の発明では、前記
請求項12記載の演算装置において、累算処理部は、冗
長2進数乗算部分処理部により生成された下位側部分積
加算結果のうち最下位桁から所定桁までの一部分及び補
正項と、累算値との3者を累算する累算処理と、この累
算処理結果及び加算処理結果とを加算する他の加算処理
とをも行なうものであり、前記他の加算処理結果は前記
累算値として用いられ、また、冗長2進数/2進数部分
変換部は、前記累算処理部による累算処理結果のうち最
下位桁から所定桁までの一部分を冗長2進数から2進数
に変換する機能を有し、更に、冗長2進数/2進数変換
部は、冗長2進数乗算部分処理部により生成された補正
項を無視してプロパゲーション及びジェネレーションを
生成し、この生成されたプロパゲーション及びジェネレ
ーションを用いて前記累算処理部の他の加算処理結果を
冗長2進数から2進数に変換する機能を有し、積和演算
機能を併有する構成とする。
【0037】また、請求項14記載の発明では、前記請
求項13記載の演算装置において、累算処理部は、冗長
2進数乗算部分処理部により生成された下位側部分積加
算結果のうち最下位桁から所定桁までの一部分以外の部
分と上位側部分積加算結果との加算処理結果と、この加
算処理結果と累算処理結果との加算処理結果との何れか
一方を選択して出力する第1セレクタを有し、冗長2進
数/2進数部分変換部の前段には、前記下位側部分積加
算結果のうち最下位桁から所定桁までの一部分と、累算
処理部による累算処理結果のうち最下位桁から所定桁ま
での一部分との何れか一方を選択して前記冗長2進数/
2進数部分変換部に出力する第2セレクタとを有する構
成とする。
【0038】更に、請求項15記載の発明では、前記請
求項11〜請求項14記載の演算装置において、冗長2
進数/2進数部分変換部は、冗長2進数の符合及び絶対
値を入力し、前記絶対値の論理否定をプロパゲーション
とし、前記符号の論理否定と前記絶対値との論理積をジ
ェネレーションとして、前記プロパゲーション及びジェ
ネレーションに基づき加算処理を行なう加算器を備える
構成とする。
【0039】加えて、請求項16記載の発明の演算方法
では、乗数の下位側部分と被乗数との下位側部分積加算
結果、前記乗数の上位側部分と被乗数との上位側部分積
加算結果、及び1つの補正項を生成した後、前記下位側
部分積加算結果のうち最下位桁から所定桁までの一部分
以外の部分と前記上位側部分積加算結果との加算処理を
行ない、この加算処理に併行して、前記下位側部分積加
算結果のうち最下位桁から所定桁までの一部分を冗長2
進数から2進数に変換し、その後、前記補正項を用いて
プロパゲーション及びジェネレーションを生成し、この
生成されたプロパゲーション及びジェネレーションを用
いて前記加算処理結果を冗長2進数から2進数に変換し
て、乗算命令の実行をノンパイプライン動作により行う
方法とする。
【0040】また、請求項17記載の発明の演算方法で
は、ステージ1では、乗数の下位側部分と被乗数との下
位側部分積加算結果、前記乗数の上位側部分と被乗数と
の上位側部分積加算結果、及び1つの補正項を生成し、
ステージ2では、前記2組の部分積加算結果と、前記1
つの補正項と、過去の累算値との累算を冗長2進数で行
ない、前記ステージ1とステージ2とをパイプライン動
作により繰返し行い、最終累算処理時での前記ステージ
2では、前記下位側部分積加算結果のうち最下位桁から
所定桁までの一部分以外の部分と前記上位側部分積加算
結果との加算処理を冗長2進数で行ない、この加算処理
に併行して、前記下位側部分積加算結果のうち最下位桁
から所定桁までの一部分を冗長2進数から2進数に変換
し、ステップS3では、前記最終累算処理におけるステ
ージ2での加算処理結果を冗長2進数から2進数に変換
する構成とする。
【0041】
【作用】以上の構成により、請求項1記載の発明の冗長
2進数の乗算を行う演算装置、及び請求項2記載の発明
の冗長2進数の積和演算を行う演算装置、並びに請求項
6、請求項7、請求項8及び請求項10記載の演算装置
では、冗長2進数乗算部により1組の冗長2進数乗算結
果と1つの補正項とが生成された後は、その補正項の影
響を考慮して冗長2進数/2進数変換部がプロパゲーシ
ョンとジェネレーションの生成を行なって、前記冗長2
進数乗算部の冗長2進数乗算結果を2進数に変換するの
で、冗長2進数乗算部において最上位の補正項の加算を
行うことなく、冗長2進数の乗算が可能となる。従っ
て、冗長2進数乗算部での最上位の補正項の加算を行う
ためのゲートを不要として、ゲート段数を削減すること
ができる。また、プロパゲーション及びジェネレーショ
ンの生成に際して補正項の影響が考慮されるので、その
プロパゲーション及びジェネレーションの生成に要する
時間は従来とほぼ同様であるので、従来の最上位の補正
項の加算を行う時間を無くして、乗算結果を高速に生成
することができる。
【0042】また、請求項3、請求項4及び請求項5記
載の発明の演算装置及び演算方法では、乗算命令を実行
する場合には、ノンパイプライン動作モードとなって、
1組の冗長2進数の乗算結果と1つの補正項を生成した
後、補正項の影響を考慮して直接プロパゲーションとジ
ェネレーションとの生成を行なって冗長2進数/2進数
変換を行うので、従来の最上位の補正項の加算を行う時
間が不要となり、乗算結果が高速に生成される。一方、
積和演算命令を実行する場合には、パイプライン動作モ
ードとなって、第1ステージでは2組の部分積加算結果
と1つの補正項の生成までを行ない、第2ステージでは
前記2組の部分積加算結果と1つの補正項と過去の累算
値との累算を冗長2進数で行ない、第3ステージでは前
記第2ステージにおいて最終まで累算された冗長2進数
の結果の2進数への変換のみを行なうので、第1及び第
2の各ステージの演算時間が相互に均一に近付き、従っ
てクロック周波数を高めることができ、演算速度が速く
なる。
【0043】更に、請求項9記載の演算装置では、1つ
の補正項が冗長2進数/2進数変換部内の変換選択信号
生成部により複数の選択信号に変換され、この複数の選
択信号を用いてプロパゲーション及びジェネレーション
が生成されるので、その1つの補正項を用いてプロパゲ
ーション及びジェネレーションを生成する場合に比し
て、その生成を簡易に且つ早期に行うことができる。
【0044】加えて、請求項11記載の演算装置では、
乗数と被乗数との乗算処理や積和処理において、その各
演算処理の途中の段階、即ち、その乗算結果や積和結果
の全桁が確定する前の段階で、その乗算結果や積和結果
のうち確定した最小桁から所定桁までの桁が、冗長2進
数/2進数部分変換部で早期に冗長2進数から2進数に
変換されるので、乗算結果や積和結果の全桁が最終的に
確定して行われる冗長2進数/2進数変換の桁数が少く
なって、その確定した残りの桁部分の乗算結果や積和結
果の冗長2進数/2進数変換が早期に行われる。従っ
て、乗算処理や積和処理を早期に実行することができ
る。
【0045】また、請求項12、請求項13、請求項1
4、請求項15、請求項16及び請求項17記載の演算
装置及び演算方法では、前記請求項11記載の発明と同
様に、冗長2進数/2進数部分変換部が乗算処理や積和
処理の途中で既に確定した最小桁から所定桁までの桁を
早期に冗長2進数から2進数に変換するので、乗算処理
や積和処理を早期に実行することができると共に、冗長
2進数乗算部分処理部は上位側部分積加算結果と下位側
部分責加算結果とを生成し、その両結果の加算処理は累
算処理部が累算処理と兼用して行うので、その分、ゲー
ト段数を削減することができる。
【0046】
【実施例】以下、本発明の一実施例の演算装置について
図面を参照しながら説明する。
【0047】(第1の実施例)図1は本発明の第1の実
施例における演算装置のブロック図を示す。
【0048】同図において、1は1組の冗長2進数乗算
結果と1つの補正項を生成する冗長2進数乗算部(以
下、RB乗算部と略す)である。4は冗長2進数/2進
数変換部(以下、RB/B変換部と略す)である。5は
ラッチに対するイネーブル信号を制御する制御部であ
る。6は、ソースオペランドを前記RB乗算部1に供給
する記憶装置である。
【0049】また、10〜11と16〜18まではすべ
てラッチである。この内、10は乗数Yを蓄える第1の
入力ラッチ、11は被乗数Xを蓄える第2の入力ラッ
チ、16はRB/B変換部4の出力を蓄える出力ラッ
チ、17はRB乗算部1の出力である1組の冗長2進数
乗算結果をラッチする乗算結果中間ラッチ、18はRB
乗算部1の出力である補正項及び変換選択信号生成部5
0の出力である変換選択信号をラッチする補正項及び変
換選択信号ラッチである。
【0050】また、19は出力ラッチ16からの出力ま
たは”0”を選択し、RBA累算アレイ26(後述)に
与える累算アレイ入力セレクタである。
【0051】更に、20〜22と26は冗長2進数同士
の加算を行い、冗長2進数出力(最上位の補正項の桁位
置である第16桁目以上の第16〜第40桁目では符号
と絶対値との組合せ、最上位の補正項の桁位置未満の第
1〜第15桁目では正出力と負出力の組み合わせより成
るものとする)を生成する冗長2進数加算器アレイ(以
下、RBAアレイと略す)であって、冗長2進数加算ツ
リーを構成する。このうち、20はRB乗算部1の上位
桁側の結果を生成する第1のRBAアレイ、21はRB
乗算部1の下位桁側の結果を生成する第2のRBAアレ
イ、22は第1のRBAアレイ20の結果と第2のRB
Aアレイの結果を加算しRB乗算部1の出力とする第3
のRBAアレイ、26は乗算結果中間ラッチ17の出力
結果とセレクタ19の出力結果を加算するRBA累算ア
レイである。
【0052】加えて、30〜33までは第1から第4の
部分積生成回路アレイ(以下、PPGアレイと略す)で
ある。40はブースのリコード回路である。
【0053】前記4個のPPGアレイ30〜33は、各
々、リコード回路40から供給されるリコード値と第2
の入力ラッチ11から供給される被乗数とを用いて部分
積と補正項を生成する。また、前記第2RBAアレイ2
1は、第4のPPGアレイ33で生成された部分積及び
補正項と第3のPPGアレイ32で生成された部分積と
の加算を行う。前記第1RBAアレイ20は、第3のP
PGアレイ32で生成された補正項と第2のPPGアレ
イ31で生成された部分積及び補正項と第1のPPGア
レイ30で生成された部分積との加算を行う。更に、第
3RBAアレイ22は、前記第1、第2RBAアレイ2
0、21の出力の加算を行う。従って、RB乗算部1の
出力は、第3RBAアレイ22から出力される1組の冗
長2進数と、第1のPPGアレイ30から出力される補
正項とから成る。
【0054】更にまた、50はRB/B変換部4に内蔵
される変換選択信号生成部であって、RB/B変換部4
において冗長2進数を2進数に変換する際に前記RB乗
算部1(具体的には第1のPPGアレイ30)により生
成された補正項Cの影響を選択するものである。
【0055】加えて、80はクロックΦである。82は
ブロックイネーブル信号である。83は第1及び第2の
入力ラッチ10〜11に対するイネーブル信号E1であ
る。86は出力ラッチ16に対するイネーブル信号E4
である。89は乗算結果中間ラッチ17及び補正項ラッ
チ18に対するイネーブル信号E5である。
【0056】図2は本発明の第1の実施例を示す演算装
置のタイミング図である。
【0057】以上のように構成された演算装置につい
て、以下、図1と図2を用いて第1の実施例の動作を説
明する。
【0058】乗算命令を実行する場合、まず命令のデコ
ード結果から累算アレイ入力セレクタ19を操作してR
BA累算アレイ26のRB/B変換部4出力結果入力側
を”0”とする。また、制御部5はブロックイネーブル
信号82を受けてイネーブル信号E1:83とE5:8
9をHighとする。また、記憶装置6から1組のソー
スオペランド(X,Y)が選択、出力される。
【0059】次に、第1及び第2の入力ラッチ10〜1
1はクロックΦ(80)の立ち上がりで前記ソースオペ
ランド(X,Y)をラッチし、RB乗算部1は前記ソー
スオペランド(X,Y)に関する乗算を行ない、1組の
冗長2進数乗算結果と1つの補正項を生成する。前記R
B乗算部1の出力結果XYRと補正項CRはそれぞれ乗
算結果中間ラッチ17と補正項ラッチ18に供給され
る。
【0060】続いて、乗算結果中間ラッチ17と補正項
ラッチ18はクロックΦ(80)の立ち上がりで前記R
B乗算部1の出力結果XYRと補正項CRをラッチす
る。前記出力結果XYRはRBA累算アレイ26におい
て前記セレクタ19からの出力である”0”と加算され
た後、RB/B変換部4に送られ、前記補正項CRを用
いて2進数XYに変換された後、出力ラッチ16に供給
される。また、制御部5はイネーブル信号E4(86)
をHighとする。
【0061】最終的に、出力ラッチ16は前記イネーブ
ル信号E4(86)を受け取り、クロックΦ(80)の
立ち上がりで前記演算結果XYをラッチする。
【0062】ここで、前記RB/B変換部4における2
進数変換動作について詳しく説明する。
【0063】図5は本発明の実施例におけるRB/B変
換部4のブロック図を示す。
【0064】図5において、70は、40桁の冗長2進
数のうちi=0〜14までの下位15桁の加算を実行す
るキャリールックアヘッド加算器1(以下、CLA1と
略す)である。また、60は、i=15(最上位の補正
項の桁位置である第16桁目)〜39までの上位25桁
の冗長2進数と、前記RB乗算部1(具体的には第1の
PPGアレイ30)により生成された補正項Cと、変換
選択信号生成部50の出力との3者から直接プロパゲー
ションpとジェネレーションgとを生成するpg生成部
である。71は前記CLA1(70)から出力されるキ
ャリー信号である。72は前記pg生成部60の出力p
及びgと前記CLA70のキャリー信号71とを用いて
加算を行うキャリールックアヘッド加算器2(以下、C
LA2と略す)である。また、50は前述した変換選択
信号生成部である。
【0065】図6は前記図5のpg生成部60の具体的
な論理回路図である。
【0066】図6において、61…は、i桁目(i=1
6(最上位の補正項の桁位置より1桁上位の桁)〜3
9)において、冗長2進数の符号Siの反転及びその絶
対値Aiと、i桁目の1桁下位からの中間桁上げ信号B
i- 1の反転とからi桁目のプロパゲーションpi及び
ジェネレーションgiを生成する複数個(24個)のp
gi生成セルである。また、62はi=15(最上位の
補正項の桁位置)において、冗長2進数の符号S15の
反転及びその絶対値A15と、変換選択信号生成部50
の出力t(2:0)と、補正項の符号CS及びその絶対
値CAとから、第16桁目(i=15)のプロパゲーシ
ョンp15及びジェネレーションg15を生成するpg
15生成セルである。
【0067】図7は、前記変換選択信号生成部50の論
理回路図を示しており、1個の排他的論理和50aと、
1個の論理積50bと、2個のインバータ50c,50
dとから成る。
【0068】次に、本発明の実施例におけるRB/B変
換部4の2進数変換動作について詳しく述べる。
【0069】2進数変換動作は、以下の2つの処理から
なる。
【0070】すなわち、第1の処理は第1のPPGアレ
イ30で生成される補正項Cの桁位置が最下位から16
桁目であることから、下位15桁は第3RBAアレイ2
2から出力される正出力と負出力の減算処理により2進
数に変換する。
【0071】第2の処理では、まず16桁目より上位に
ついて符号と絶対値で表される冗長2進数と補正項から
プロパゲーションpとジェネレーションgを生成する。
【0072】ここで、15桁以下の桁では冗長2進数を
正出力Plusと負出力Minusとで表現し、16桁
以上の桁では冗長2進数を符号Sと絶対値Aとで表現し
たが、全桁について冗長2進数の表現を一方の表現に統
一してもよい。
【0073】補正項の影響の伝搬を考慮し、冗長2進数
入力Miから中間和Riと中間桁上げBiとを生成す
る。前記冗長2進数入力Miと下位桁の符合Siと中間
和Riと中間桁上げBiとの関係を(表1)に示す。
【0074】
【表1】 i桁目の値は、i桁目の中間和Riとi- 1桁目の中間
桁上げBi- 1の和から1をひいたものである。これを
正値plusと負値minusで表されるとする。2進
数変換を行なうためには、前記正値plusと前記負値
minusの減算を行なえばよい。
【0075】したがって、i桁目のプロパゲーションp
iとジェネレーションgiは、それぞれ(数1)及び
(数2)で表される。
【0076】(数1) pi=EXOR(Ri,Bi- 1) (数2) gi=Ri・Bi- 1 以上のことから、i=16〜39の各pgi生成セル
(pg生成部)61…は、図6に具体的に示すように、
絶対値A及び符号Sから成る冗長2進数における最上位
の補正項の桁位置より上位の桁位置までの任意のi桁目
に関して、i桁目の絶対値Aiとi‐1桁目の符号Si
の反転との論理積61aを中間桁上げBiとし、i桁目
の絶対値Aiとi‐1桁目の符号Siの反転との排他的
論理和61bを中間和Riとして、前記i桁目の中間和
Riとi‐1桁目の中間桁上げBi- 1との論理積61
cをジェネレーションgiとし、前記i桁目の中間和R
iとi‐1桁目の中間桁上げBi- 1との排他的論理和
61dをプロパゲーションpiとしている。
【0077】次に、補正項Cの値によって16桁目の中
間桁上げB15及び符合S15は(表2)の関係にな
る。
【0078】
【表2】 (表1)及び(表2)の関係と(数1)及び(数2)の
関係に従って前記pg生成部60においてプロパゲーシ
ョン及びジェネレーションを生成する。
【0079】次に、前記プロパゲーション及びジェネレ
ーションとCLA1(70)のキャリー信号71を用い
ることにより、CLA2(72)において通常の加算処
理を行ない、2進数変換処理とする。
【0080】以上の2つの処理を並列に行なうことによ
り、冗長2進数/2進数変換を行なっている。
【0081】次に、N回の連続積和演算の実行例につい
て示す。
【0082】積和演算は一般に(数3)で表せる。
【0083】(数3) Z=A+ΣXiYi (i=0〜N- 1) (数3)のAの値としては、”0”または出力ラッチ1
6の値を命令により選択できるものとする。
【0084】積和演算命令を実行する場合、まず命令の
デコード結果から累算アレイ入力セレクタ19を操作し
てRBA累算アレイ26のRB/B変換部4出力結果入
力側に”0”または出力ラッチ16の値を供給する。ま
た、記憶装置6から1組のソースオペランド(Y0,X
0)が選択、出力される。また、制御部5はブロックイ
ネーブル信号82を受けてイネーブル信号E1(83)
とE5(89)をHighとする。
【0085】サイクル0において、第1及び第2の入力
ラッチ10〜11はクロックΦ(80)の立ち上がりで
前記ソースオペランド(Y0,X0)をラッチする。R
B乗算部1は前記ソースオペランド(Y0,X0)を乗
数Y0及び被乗数X0として乗算を行ない冗長2進数乗
算結果XYR0と1つの補正項CR0を生成し、乗算結
果中間ラッチ17と補正項ラッチ18に供給する。ま
た、記憶装置6から次のソースオペランド(Y1,X
1)が第1及び第2の入力ラッチ10〜11に供給され
る。
【0086】サイクル1において、第1及び第2の入力
ラッチ10〜11はクロックΦ(80)の立ち上がりで
前記ソースオペランド(Y1,X1)をラッチし、乗算
結果中間ラッチ17と補正項ラッチ18は前記冗長2進
数乗算結果XYR0と補正項CR0をラッチする。RB
乗算部1は前記ソースオペランド(Y1,X1)を乗数
Y1及び被乗数X1として乗算を行ない、冗長2進数乗
算結果XYR1と1つの補正項CR1を生成し、乗算結
果中間ラッチ17と補正項ラッチ18に供給する。ま
た、前記冗長2進数乗算結果XYR0はRBA累算アレ
イ26において前記累算アレイ入力セレクタ19を介し
て”0”または出力ラッチ16の値と加算された後、R
B/B変換部4に送られ、前記補正項CR0を用いて2
進数XY0に変換された後、出力ラッチ16に供給され
る。また、記憶装置6から次のソースオペランド(Y
2,X2)が第1及び第2の入力ラッチ10〜11に供
給される。また、制御部5はイネーブル信号E4(8
6)をHighとする。
【0087】サイクル2において、第1及び第2の入力
ラッチ10〜11はクロックΦ(80)の立ち上がりで
前記ソースオペランド(Y2,X2)をラッチし、乗算
結果中間ラッチ17と補正項ラッチ18は前記冗長2進
数乗算結果XYR1と補正項CR1をラッチし、出力ラ
ッチ16は前記2進数XY0をラッチする。RB乗算部
1は前記ソースオペランド(Y1,X1)を乗数Y1及
び被乗数X1として乗算を行ない、冗長2進数乗算結果
XYR1と1つの補正項CR1を生成し、乗算結果中間
ラッチ17と補正項ラッチ18に供給する。また、前記
冗長2進数乗算結果XYR0はRBA累算アレイ26に
おいて前記累算アレイ入力セレクタ19を介して出力ラ
ッチ16の値と加算された後、RB/B変換部4に送ら
れ、前記補正項CR0を用いて2進数XY1に変換され
た後、出力ラッチ16に供給される。また、記憶装置6
から次のソースオペランド(Y2,X2)が第1及び第
2の入力ラッチ10〜11に供給される。
【0088】サイクル3〜N- 1では、サイクル2と同
様の処理を行なう。
【0089】サイクルNにおいて、乗算結果中間ラッチ
17と補正項ラッチ18はクロックΦ(80)の立ち上
がりで前記冗長2進数乗算結果XYRN- 1と補正項C
RN- 1をラッチする。前記冗長2進数乗算結果XYR
N- 1はRBA累算アレイ26において前記累算アレイ
入力セレクタ19を介して出力ラッチ16の値と加算さ
れた後、RB/B変換部4に送られ、前記補正項CRN
- 1を用いて2進数演算結果Zに変換された後、出力ラ
ッチ16に供給される。
【0090】最終的に、出力ラッチ16はクロックΦ
(80)の立ち上がりで前記演算結果Zをラッチする。
【0091】以上のように本実施例によれば、演算装置
において1組の冗長2進数乗算結果と1つの補正項を生
成する冗長2進乗算部と、前記冗長2進数乗算結果と累
算値との加算を行なう冗長2進数加算器と、前記冗長2
進数加算器の出力を冗長2進数/2進数変換を行なう際
に前記補正項の影響を選択し、直接プロパゲーションと
ジェネレーションの生成を行なう冗長2進数/2進数変
換部とを設けることにより、冗長2進数乗算部における
補正項加算のためのゲート段数を削減でき、演算の高速
化を達成することができる。
【0092】(第2の実施例)以下、本発明の第2の実
施例について図3と図4を参照しながら説明する。
【0093】図3は本発明の第2の実施例における積和
演算装置のブロック図を示すものである。図3におい
て、1は1組の冗長2進数乗算結果と1つの補正項を生
成する冗長2進数乗算部(以下、RB乗算部と略す)で
ある。2はRB乗算部1内の中間結果である2組の部分
積加算結果を出力する乗算部分処理部である。3は乗算
部分処理部2の出力結果の累算を行なう冗長2進数累算
処理部(以下、RB累算処理部と略す)である。4はR
B乗算部1もしくはRB累算処理部3の出力結果を2進
数に変換する冗長2進数/2進数変換部(以下、RB/
B変換部と略す)である。5はパイプライン動作モード
とノンパイプライン動作モードにおいて積和演算装置全
体を制御する制御部である。6は、ソースオペランドを
前記RB乗算部1に供給する記憶装置である。
【0094】また、10〜16まではすべてラッチであ
る。この内、10は乗数Yを蓄える第1の入力ラッチ、
11は被乗数Xを蓄える第2の入力ラッチ、12は乗算
部分処理部2の上位桁側の結果を蓄える第1の中間ラッ
チ、13は乗算部分処理部2の下位桁側の結果を蓄える
第2の中間ラッチ、14は乗算部分処理部2の補正項を
蓄える第3の中間ラッチ、15はRB累算処理部3の結
果を蓄え、かつ出力をRB累算処理部3またはRB/B
変換部4に送り、リセット機能を有する累算結果中間ラ
ッチ、16はRB/B変換部4の出力を蓄える出力ラッ
チである。
【0095】また、20〜25まではすべて冗長2進数
加算器アレイ(以下、RBAアレイと略す)である。こ
の内、20は乗算部分処理部2の上位桁側の結果を生成
する第1のRBAアレイ、21は乗算部分処理部2の下
位桁側の結果を生成する第2のRBAアレイ、22は第
1のRBAアレイの結果と第2のRBAアレイの結果を
加算し、RB/B変換部4に入力する第3のRBAアレ
イ、23は乗算部分処理部2の上位桁側の結果と累算結
果中間ラッチ15の出力の上位桁側の値と第3の中間ラ
ッチ14の出力との加算を行なう第4のRBAアレイ、
24は乗算部分処理部2の下位桁側の結果と累算結果中
間ラッチ15の出力の下位桁側の値との加算を行なう第
5のRBAアレイ、25は第4のRBAアレイの出力と
第5のRBAアレイの出力との加算を行ない、結果を累
算結果中間ラッチ15に送る第6のRBAアレイであ
る。
【0096】更に、30〜33までは第1から第4の部
分積生成回路アレイ(以下、PPGアレイと略す)であ
る。40はブースのリコード回路である。
【0097】加えて、50はRB/B変換部4において
2進数変換する際に補正項の影響を選択する変換選択信
号生成部である。更に、51〜52は全てセレクタであ
る。このセレクタのうち、51はRB乗算部1の出力結
果または累算結果中間ラッチ15の出力結果又は”0”
を選択してRB/B変換部4に供給するRB/B変換部
入力セレクタである。52は補正項を強制的に”0”と
するための補正項セレクタである。
【0098】また、80〜88は全てて制御部5に対す
る入出力信号である。このうち、80はクロックΦであ
る。81はパイプライン動作またはノンパイプライン動
作の実行を指示するパイプライン動作信号である。82
はブロックイネーブル信号である。83は第1〜第2の
入力ラッチ10〜11に対するイネーブル信号E1であ
る。84は第1〜第3の中間ラッチ12〜14に対する
イネーブル信号E2である。85は累算結果中間ラッチ
15に対するイネーブル信号E3である。86は出力ラ
ッチ16に対するイネーブル信号E4である。87はR
B/B変換部入力セレクタ51に対するセレクト信号S
el1であり、Sel1=”00”の時前記セレクタ5
1の出力として”0”を選択し、Sel1=”01”の
時前記セレクタ51の出力として第3のRBAアレイ2
2の出力を選択しSel1=”10”の時前記セレクタ
51の出力として累算結果中間ラッチ15の出力を選択
する。88は補正項セレクタ52に対するセレクト信号
Sel2であり、Sel2=Lowの時前記補正項セレ
クタ52の出力として第1のPPGアレイ30の出力を
選択し、Sel2=Highの時前記補正項セレクタ5
2の出力として”0”を選択する。
【0099】図4は本発明の第2の実施例を示す積和演
算装置のタイミング図である。
【0100】以上のように構成された積和演算装置につ
いて、以下図3と図4を用いて第2の実施例の動作を説
明する。
【0101】初期状態として、制御部5の出力信号はす
べてLowである。
【0102】乗算命令を実行する場合、先ず、命令のデ
コード結果からパイプライン動作信号81がLowに設
定される。制御部5は、前記パイプライン動作信号81
とブロックイネーブル信号82を受けとり、イネーブル
信号E1(83)をHighとし、RB/B変換部入力
セレクタ51を操作して第3のRBAアレイ22の出力
をRB/B変換部4の入力とする。また、記憶装置6か
ら1組のソースオペランド(X,Y)が選択、出力され
る。
【0103】次に、第1及び第2の入力ラッチ10〜1
1はクロックΦ(80)の立ち上がりで前記ソースオペ
ランド(X,Y)をラッチし、RB乗算部1は前記ソー
スオペランドに関して乗算を行ない冗長2進数乗算結果
XYRと1つの補正項Cを生成する。
【0104】続いて、前記冗長2進数乗算結果XYR
は、RB/B変換部入力セレクタ51を介してRB/B
変換部4に入力され、前記補正項Cを用いて2進数XY
に変換された後、出力ラッチ16に供給される。
【0105】また、前記制御部5は前記イネーブル信号
E1(83)の立ち上がりから2クロック後にイネーブ
ル信号E4(86)をHighに設定する。
【0106】出力ラッチ16は前記イネーブル信号E4
(86)を受けとり、クロックΦ(80)の立ち上がり
で前記演算結果XYをラッチする。
【0107】次に、N回の連続積和演算の実行例につい
て示す。
【0108】(数3)の値としては、”0”または累算
結果中間ラッチ15の値を命令により選択できるものと
する。
【0109】積和演算命令を実行する場合、まず命令の
デコード結果からパイプライン動作信号81をHigh
とする。制御部5は、前記パイプライン動作信号81と
ブロックイネーブル信号82を受けとり、イネーブル信
号E1(83)をHighとする。また、RB/B変換
部入力セレクタ51を操作して”0”をRB/B変換部
4の入力とする。また、(数3)のAが”0”である場
合、リセット信号を送ることで累算結果中間ラッチ15
の値を”0”とする。また、記憶装置6から1組のソー
スオペランド(Y0,X0)が選択、出力される。
【0110】サイクル0において、第1及び第2の入力
ラッチ10〜11はクロックΦ80の立ち上がりで乗数
Y0及び被乗数X0をラッチし、RB乗算部1において
乗算を行ない1組の冗長2進数乗算結果(XY0H,X
Y0L)と1つの補正項C0を生成し、第1〜第3の中
間ラッチ12〜14に供給する。また、記憶装置6から
次のソースオペランド(Y1,X1)を第1及び第2の
入力ラッチ10〜11に供給する。また、制御部5は、
イネーブル信号E2(84)をHighとする。
【0111】サイクル1において、第1及び第2の入力
ラッチ10〜11はクロックΦ(80)の立ち上がりで
乗数Y1及び被乗数X1をラッチし、第1〜第3の中間
ラッチ12〜14は前記冗長2進数乗算結果(XY0
H,XY0L)と補正項C0をラッチする。RB乗算部
1では、前記乗数Y1と被乗数X1の乗算を行い、1組
の冗長2進数乗算結果(XY1H,XY1L)と1つの
補正項C1を生成し、第1〜第3の中間ラッチ12〜1
4に供給する。またRB累算処理部3では、前記冗長2
進数乗算結果(XY0H,XY0L)と補正項C0と累
算結果中間ラッチ15にラッチされた値の加算を行な
い、加算結果XY0Sを前記累算結果中間ラッチ15に
供給する。また、記憶装置6から次のソースオペランド
(Y2,X2)を第1及び第2の入力ラッチ10〜11
に供給する。また、制御部5はイネーブル信号E3(8
5)をHighとする。
【0112】サイクル2において、第1及び第2の入力
ラッチ10〜11はクロックΦ(80)の立ち上がりで
乗数Y2及び被乗数X2をラッチし、第1〜第3の中間
ラッチ12〜14は前記冗長2進数乗算結果(XY1
H,XY1L)と補正項C1をラッチし、累算結果中間
ラッチ15は前記加算結果XY0Sをラッチする。RB
乗算部1では、前記乗数Y2と被乗数X2の乗算を行
い、1組の冗長2進数乗算結果(XY2H,XY2L)
と1つの補正項C2を生成し、第1〜第3の中間ラッチ
12〜14に供給する。またRB累算処理部3では、前
記冗長2進数乗算結果(XY1H,XY1L)と補正項
C1と累算結果中間ラッチ15にラッチされた値XY0
Sの加算を行ない、加算結果XY1Sを前記累算結果中
間ラッチ15に供給する。また、記憶装置6から次のソ
ースオペランド(Y3,X3)を第1及び第2の入力ラ
ッチ10〜11に供給する。
【0113】サイクル3〜N- 2では、サイクル2と同
様の処理を行なう。
【0114】サイクルN- 1では、サイクル2と同様の
処理を行なうが、記憶装置6からのソースオペランドの
供給は行なわない。また、制御部5はイネーブル信号E
1(83)をLowとするサイクルNにおいて、第1〜
第3の中間ラッチ12〜14はクロックΦ(80)の立
ち上がりで前記冗長2進数乗算結果(XYN- 1H,X
YN- 1L)と補正項CN- 1をラッチし、累算結果中
間ラッチ15は前記加算結果XYN- 2Sをラッチす
る。RB累算処理部3では、前記冗長2進数乗算結果
(XYN- 1H,XYN- 1L)と補正項CN- 1と累
算結果中間ラッチ15にラッチされた値XYN- 2Sの
加算を行ない、加算結果XYN- 1Sを前記累算結果中
間ラッチ15に供給する。また、制御部5は、RB/B
変換部入力セレクタ51を操作して累算結果中間ラッチ
15の出力をRB/B変換部4の入力とし、補正項セレ
クタ52を操作して”0”を選択し、イネーブル信号E
2(84)をLowとする。
【0115】サイクルN+1において、累算結果中間ラ
ッチ15はクロックΦ(80)の立ち上がりで前記加算
結果XYN- 1Sをラッチする。RB/B変換部4は、
RB/B変換部入力セレクタ51を通して前記加算結果
XYN- 1Sを受けとり、補正項として”0”を受けと
り、冗長2進数から2進数への変換を行ない、演算結果
Zを得る。また、制御部5は、イネーブル信号E4(8
6)をHighとし、イネーブル信号E3(85)をL
owとする。
【0116】最終的に、出力ラッチ16はイネーブル信
号E4(86)を受けとり、クロックΦ(80)の立ち
上がりで前記演算結果Zをラッチする。
【0117】以上のように、本発明の第2の実施例に示
す積和演算装置は、ノンパイプライン動作とパイプライ
ン動作の2つの動作モードに対応するものであり、1組
の冗長2進数乗算結果と1つの補正項を生成するRB乗
算部と、前記RB乗算部内の冗長2進数加算木において
中間結果として生成される2組の部分積加算結果をとり
出すパスと、2組の部分積加算結果を蓄える第1〜第3
の中間ラッチと、前記第1〜第3の中間ラッチの結果と
累算結果ラッチの値を累算し前記累算結果ラッチに蓄え
るRB累算処理部と、前記RB乗算部の結果または前記
RB累算処理部の結果を2進数に変換するRB/B変換
部とを設けることにより、乗算命令実行時にはノンパイ
プライン動作モードとなり、乗算結果を生成するための
ゲート段数を削減し、積和演算命令実行時にはパイプラ
イン動作モードとなり各パイプラインステージの演算実
行時間を短縮することができ、かつ実効的に動作するゲ
ート数を削減することができる。
【0118】尚、第1の実施例において、RBA累算ア
レイ26は冗長2進数加算器としたが、キャリーセーブ
加算器としてもよい。
【0119】また、第2の実施例において、RB乗算部
1とRB/B変換部4から高速な乗算器を得ることがで
きる。
【0120】(第3の実施例)以下、本発明の第3の実
施例について図8〜図10に基いて説明する。
【0121】本第3の実施例は、前記図3の第2の実施
例を改良したものであり、その図3の4個のRBAアレ
イ22〜25を同一機能を保持しつつ3個に低減すると
共に、乗算途中で早期に確定する最下位桁から数桁目ま
での乗算結果を、それ以上上位の桁の演算途中の段階で
冗長2進数から2進数に変換することにより、最終的に
行われる残りの桁の冗長2進数/2進数変換を短時間で
終了して、乗算命令の実行速度を速めるようにしたもの
である。
【0122】図8は本発明の第3の実施例における積和
演算装置のブロック図を示す。同図において、2は2組
の部分積加算結果と1つの補正項を出力する乗算部分処
理部である。3は乗算部分処理部2の出力結果の累算を
行なう冗長2進数累算処理部(以下、RB累算処理部と
略す)である。4は冗長2進数乗算結果もしくは冗長2
進数累算結果を2進数に変換する冗長2進数/2進数変
換部(以下、RB/B変換部と略す)である。5はパイ
プライン動作モードとノンパイプライン動作モードにお
いて積和演算装置全体を制御する制御部である。6は、
ソ−スオペランドを前記乗算部分処理部2に供給する記
憶装置である。
【0123】また、10〜16、117はすべてラッチ
である。この内、10は乗数Yを蓄える第1の入力ラッ
チ、11は被乗数Xを蓄える第2の入力ラッチ、12は
乗算部分処理部2の上位桁側の結果を蓄える第1の中間
ラッチ、13は乗算部分処理部2の下位桁側の結果を蓄
える第2の中間ラッチ、14は乗算部分処理部2の補正
項を蓄える第3の中間ラッチ、15はRB累算処理部3
の結果を蓄え、かつ出力をRB累算処理部3またはRB
/B変換部4に送り、リセット機能を有する累算結果中
間ラッチ、16はRB/B変換部4の出力を蓄える出力
ラッチ、117は後述する部分変換部70の出力を蓄え
る部分変換出力ラッチである。
【0124】更に、20〜24まではすべて冗長2進数
加算器アレイ(以下、RBAアレイと略す)である。こ
の内、20は乗算部分処理部2の上位桁側の乗算結果を
生成する第1のRBAアレイ、21は乗算部分処理部2
の下位桁側の乗算結果を生成する第2のRBAアレイ、
22は前記第1のRBAアレイ20の結果と第2のRB
Aアレイ21の結果とを加算してRB/B変換部4また
は後述する第5のRBAアレイ24に出力する第3のR
BAアレイである。また、23は乗算部分処理部2の下
位桁側の一部の乗算結果と、乗算部分処理部2の補正項
と、後述する入力セレクタ55の出力(即ち、累算結果
中間ラッチ15の出力または出力ラッチ16の出力)と
の3者の加算を行なう第4のRBAアレイ、24は第3
のRBAアレイ22の出力と第4のRBAアレイ23の
出力との加算を行ない、その結果を累算結果中間ラッチ
15に送る第5のRBAアレイである。
【0125】加えて、30〜33までは第1から第4の
部分積生成回路アレイ(以下、PPGアレイと略す)で
ある。40はブースのリコード回路である。
【0126】更に、50は、RB/B変換部4において
冗長2進数/2進数変換する際に補正項の影響を選択す
る変換選択信号生成部である。
【0127】加えて、51〜56は全てセレクタであ
る。この内、51はRB累算処理部3の第3のRBAア
レイ22の出力または累算結果中間ラッチ15の出力を
選択してRB/B変換部4に供給するRB/B変換部入
力セレクタである。52は補正項を強制的に”0”とす
るための補正項セレクタである。53は第1のRBAア
レイ20の出力または第1の中間ラッチ12の出力を選
択して第3のRBAアレイ22に出力する第1のRB累
算処理部入力セレクタである。54は第2のRBAアレ
イ21の出力または第2の中間ラッチ13の出力を選択
して第3のRBAアレイ22及び第4のRBAアレイ2
3に出力する第2のRB累算処理部入力セレクタであ
る。55は累算結果中間ラッチ15の出力または出力ラ
ッチ16の出力を選択して第4のRBAアレイ23に出
力する第3のRB累算処理部入力セレクタである。56
は乗算部分処理部2の下位桁側の一部の結果(即ち、第
2のRBAアレイ21の出力の一部)または第4のRB
Aアレイ23の出力の一部を選択する部分変換部入力セ
レクタある。
【0128】また、70は前記部分変換部入力セレクタ
56の出力(即ち、乗算部分処理部2の下位桁側の一部
の結果または第4のRBAアレイ23の出力の一部)を
冗長2進数から2進数に変換する部分変換部である。
【0129】更に、80〜90はすべて制御部5に対す
る入出力信号である。この内、80はクロックΦであ
る。81はパイプライン動作またはノンパイプライン動
作の実行を指示するパイプライン動作信号である。82
はブロックイネ−ブル信号である。83は第1〜第2の
入力ラッチ10〜11に対するイネ−ブル信号E1であ
る。84は第1〜第3の中間ラッチ12〜14に対する
イネ−ブル信号E2である。85は累算結果中間ラッチ
15に対するイネ−ブル信号E3である。86は出力ラ
ッチ16に対するイネ−ブル信号E4である。
【0130】加えて、87はRB/B変換部入力セレク
タ51に対するセレクト信号Sel1であって、Sel
1=”00”のとき前記入力セレクタ51の出力とし
て”0”を選択させ、Sel1=”01”のとき前記入
力セレクタ51の出力として第3のRBAアレイ22の
出力を選択させ、Sel1=”10”のとき前記入力セ
レクタ51の出力として累算結果中間ラッチ15の出力
を選択させるものである。更に、88は補正項セレクタ
52に対するセレクト信号Sel2であって、Sel2
=Lowのとき前記補正項セレクタ52の出力として第
1のPPGアレイ30の出力を選択させ、Sel2=H
ighのとき前記補正項セレクタ52の出力として”
0”を選択させるものである。
【0131】また、89は第3のRB累算処理部入力セ
レクタ55に対するセレクト信号Sel3であって、S
el3=Lowのとき前記入力セレクタ55の出力とし
て累算結果中間ラッチ15の出力を選択し、Sel3=
Highのとき前記入力セレクタ55の出力として出力
ラッチ16の出力を選択させる。また、90は部分変換
部入力セレクタ56に対するセレクト信号Sel4であ
って、Sel4=Lowのとき前記入力セレクタ56の
出力として第2の中間ラッチ13の下位桁の出力を選択
させ、Sel4=Highのとき前記入力セレクタ56
の出力として第4のRBAアレイ23の下位桁の出力を
選択させるものである。
【0132】次に、第2のRB加算結果の下位側155
b及び第4のRB加算結果の下位側157bの冗長2進
数のデータを2進数に変換する部分変換部70について
詳細に説明する。
【0133】図11は前記図8の部分変換部70のブロ
ック図を示す。
【0134】同図において、190…は部分変換部入力
セレクタ56からの7桁の冗長2進数を表わすi桁目の
符号Si及び絶対値Aiからi桁目のプロパゲーション
pi及びジェネレーションgiを生成するi+1個(図
では7個)のpg生成回路である。また、191は前記
各pg生成回路190の出力であるプロパゲーションp
及びジェネレーションgを用いて加算を行なう加算器で
ある。
【0135】前記第1の実施例の冗長2進数/2進数変
換動作の説明で述べた通り、冗長2進数/2進数変換
は、正値plusと負値minusの減算により行われ
る点を考慮して、i桁目のプロパゲーションpi及びジ
ェネレーションgiは、冗長2進数を表わす1組のi桁
目の符合Si及び絶対値Aiを用いて(数4)及び(数
5)で表される。
【0136】[数4] pi=EXOR(plus,/minus) =/Ai [数5] gi=plus・/minus =/Si・Ai 尚、前記数4及び数5において、/minus、/Ai
及び/Siは各々負値minus、絶対値Ai及び符号
Siの論理反転を示す。
【0137】従って、前記(数4)及び(数5)の関係
に従って、前記各pg生成回路190…は、絶対値Ai
からプロパゲーションgiを生成するインバータ190
aと、符号Si及び絶対値Aiからジェネレーションg
iを生成するインバータ190b及び論理積190cを
備えて、1組の絶対値及び符号よりなるi桁の冗長2進
数を2進数に変換する処理を行う。
【0138】本実施例における図8に示すRB/B変換
部4は、図3に示した第2実施例のRB/B変換部4に
比して、部分変換部70が冗長2進数/2進数変換を担
当する桁数分だけ簡易な構成になっている。
【0139】次に、本第3の実施例における積和演算装
置の具体的な構成及び動作を図8、図9及び図10に基
いて説明する。
【0140】乗算命令を実行する場合には、次のように
動作する。
【0141】先ず、図8及び図9において、第1及び第
2の入力ラッチ10〜11に入力されたソ−スオペラン
ド(X,Y)に基づき、第1のPPGアレイ30は、第
1の部分積150と第1の補正項160とを生成し、第
2のPPGアレイ31は、第2の部分積151と第2の
補正項161とを生成し、同様に、第3及び第4のPP
Gアレイ32、33は、各々、第3及び第4の部分積1
52、153と第3及び第4の補正項162、163と
を生成する。ここで、各部分積150〜153は数桁づ
つずれていると共に、第1の補正項160が他の第2〜
第4の補正項161〜163に比して、最も上位に位置
する補正項である。
【0142】第1のRBAアレイ20は、前記第1及び
第2の各部分積150、151及び第2及び第3の各補
正項161、162を加算して第1の冗長2進数加算結
果(以下R、B加算結果と略す)154を生成する。同
様に、第2のRBAアレイ21は、前記第3の部分積1
52と第4の部分積153と第4の補正項163とを加
算して第2のRB加算結果155を生成する。
【0143】続いて、第3のRBAアレイ22は、前記
第1のRB加算結果154と、この第1のRB加算結果
154の最下位桁までの桁部分の第2のRB加算結果1
55aとをそれぞれ第1及び第2のRB累算処理部入力
セレクタ53、54を介して受けて加算し、その加算結
果である第3のRB加算結果156を生成する。同時
に、部分変換部70は、前記第2のRB加算結果155
のうち、前記第1のRB加算結果154の最下位桁より
未満の桁部分155bを部分変換部入力セレクタ56を
介して入力し、これ等より成る冗長2進数を2進数に変
換して、その変換結果171及びキャリ172を生成す
る。
【0144】次に、RB/B変換部4は、前記第3のR
B加算結果156をRB/B変換部入力セレクタ51を
介して入力すると共に、部分変換部70により生成され
たキャリ172を入力し、これ等より成る冗長2進数を
前記第1PPGアレイ30により生成された第1の補正
項160を用いて2進数に変換する。
【0145】前記RB/B変換部4により変換された2
進数(乗算結果の上位側)、及び前記部分変換部70に
より生成された変換結果171(乗算結果の下位側)
は、出力ラッチ16に供給される。
【0146】続いて、N回の連続積和演算の場合を図8
及び図10に基いて説明する。尚、(数3)のAの値と
しては、”0”、累算結果中間ラッチ15の値、または
出力ラッチ16の値を命令により選択できるものとす
る。
【0147】積和演算命令を実行する場合、ステージ1
の処理では、以下の動作を各クロックサイクル毎にN回
繰り返す。先ず、第1及び第2の入力ラッチ10〜11
に入力されたソ−スオペランド(Xi,Yi)(i=0
〜N−1)に基づき、第1〜第4のPPGアレイ30〜
33においてそれぞれ第1〜第4の部分積150〜15
3及び第1〜第4の補正項160〜163を生成した
後、第1のRBAアレイ20が前記第1及び第2の部分
積150、151並びに第2及び第3の補正項161、
162を加算して第1のRB加算結果154を生成する
と共に、第2のRBAアレイ21が前記第3の部分積1
52と第4の部分積153と第4の補正項163とを加
算して第2のRB加算結果155を生成する。
【0148】前記ステージ1に続くステージ2の処理
は、前記ステージ1の処理から1クロック遅れて開始さ
れる。ステージ2での1回目の動作(i=0)では、前
記第1のRB加算結果154と、第2のRB加算結果1
55のうち前記第1のRB加算結果154の最下位桁以
上の上位側桁部分155aとが、それぞれ第1及び第2
のRB累算処理部入力セレクタ53、54を介して第3
のRBAアレイ22に入力され、加算されて第3のRB
加算結果156となる。同時に、前記第2のRB加算結
果155のうち、前記第1のRB加算結果154の最下
位桁未満の下位側桁部分155bが第2のRB累算処理
部入力セレクタ54を介して第4のRBAアレイ23に
入力されると共に、この第4のRBAアレイ23には更
に第1の補正項160と、第3のRB累算処理部入力セ
レクタ55を介して被累算値(式1のAと等価の被累算
値)180としての出力ラッチ16の出力とが入力さ
れ、加算されて第4のRB加算結果157となる。次い
で、第5のRBAアレイ24は前記第3のRB加算結果
156と第4のRB加算結果157aとを入力し、前記
第3のRB加算結果156と、前記第4のRB加算結果
157のうち前記第3のRB加算結果156の最下位桁
以上の上位側桁部分157aとを加算して、第5のRB
加算結果158を生成する。この第5のRB加算結果1
58と第4のRB加算結果の下位側桁部分157bは累
算結果中間ラッチ15にラッチされる。
【0149】以後、ステージ2における2回目以降の動
作(i=1〜N−2)では、第3のRB累算処理部入力
セレクタ55を介して第4のRBAアレイ23に入力さ
れる被累算値180として前記累算結果中間ラッチ15
の出力が選択される。第3〜第5のRBAアレイ22〜
24の動作は前記1回目の動作と同様である。従って、
ここまでの動作では、部分変換部70は動作しない。
【0150】次に、N回目の動作(i=N−1)では、
前記2回目以降の動作と異なる点について説明すると、
第4のRBAアレイ23により生成された第4のRB加
算結果157のうち、第3のRB加算結果156の最下
位桁以上の上位側桁部分157aは、第5のRBAアレ
イ24に入力され、第3のRB加算結果156と加算さ
れて第5のRB加算結果158となる一方、前記第4の
RB加算結果157の下位側桁部分157bは部分変換
部入力セレクタ56を介して部分変換部70に供給され
て冗長2進数から2進数に変換されて、2進数変換結果
173とそのキャリ174とが生成される。
【0151】そして、ステージ3の処理では、前記第5
のRB加算結果158はRB/B変換部入力セレクタ5
1を介してRB/B変換部4に入力されると共に、この
RB/B変換部4には更に前記2進数変換結果173の
キャリ174が入力され、これ等が2進数に変換され
て、前記2進数変換結果173と合わせて、出力ラッチ
16に供給されることになる。
【0152】したがって、本第3の実施例に示す積和演
算装置では、乗算においては、乗算部分処理部2の2個
のRBAアレイ20、21で各々RBA加算結果15
4、155が生成された時点で、その一方の加算結果1
55のうち下位側桁部分155bが、ソースオペランド
(X,Y)の乗算結果の下位側桁部分として既に確定し
ていて、この下位桁側部分155bの冗長2進数/2進
数変換が前記ソースオペランド(X,Y)の乗算結果の
各桁が全て確定する前の段階(RBAアレイ22による
RBA加算結果155の上位側桁部分155aとRBA
加算結果154との加算動作と同時期)で早期に部分変
換部70で行われる。従って、部分変換部70が冗長2
進数/2進数変換を行う分だけRB/B変換部4が冗長
2進数/2進数変換する桁数が減って、その冗長2進数
/2進数変換が早期に終了するので、乗算命令の実行を
早期に完了することができる。
【0153】また、積和演算においては、N回目(最終
回)にRB累算処理部3の2個のRBAアレイ22、2
3で各々RBA累算結果156、157が生成された時
点で、その一方の累算結果157のうち下位側桁部分1
57bが、累算結果の下位側桁部分として既に確定して
いて、この下位桁側部分157bの冗長2進数/2進数
変換が、累算結果の各桁が全て確定する前の段階で(R
BAアレイ24によるRBA累算結果157の上位側桁
部分157aとRBA累算結果156との加算動作と同
時期)で早期に部分変換部70で行われる。従って、部
分変換部70が冗長2進数/2進数変換を行う分だけR
B/B変換部4が冗長2進数/2進数変換する桁数が減
って、その冗長2進数/2進数変換が早期に終了するの
で、積和演算命令の実行を早期に完了することができ
る。
【0154】しかも、RBAアレイ20〜24の数は5
個であるので、前記図3のRBAアレイ20〜25の数
(即ち、6個)より少なくて、構成が簡易である。
【0155】よって、本第3の実施例では、前記第2の
実施例の効果に加えて、更に、演算実行時間を短縮する
ことができると共に、実効的に動作するゲート数を削減
することができる。
【0156】尚、本第3の実施例では、RBAアレイ2
0〜24の数を削減して5個とした構成に対して更にR
B/B部分変換部70を設けたが、図3に示す第2の実
施例(即ち、RBAアレイ20〜25の数を6個とした
構成)に対して、前記RB/B部分変換部70と同一構
成のRB/B部分変換部を設けてもよいのは勿論であ
る。
【0157】
【発明の効果】以上説明したように、請求項1、請求項
2、請求項6、請求項7、請求項8及び請求項10記載
の発明の演算装置によれば、冗長2進数乗算によって生
成された最上位の補正項を考慮してプロパゲーション及
びジェネレーションの生成を行なって、冗長2進数/2
進数の変換を行ったので、最上位の補正項を加算するゲ
ートを不要にして、乗算実行部のゲート段数を削減する
ことができると共に、乗算結果を高速に生成することが
できる。
【0158】また、本発明の請求項3、請求項4及び請
求項5記載の発明の演算装置及び演算方法によれば、前
記冗長2進数乗算での冗長2進数加算木において中間結
果として生成される2組の部分積加算結果を取り出して
中間ラッチに蓄える第1ステージと、前記中間ラッチの
結果と累算結果ラッチの値とを累算した結果を前記累算
結果ラッチに蓄える第2ステージと、前記冗長2進数累
算結果を2進数に変換する第3ステージとを設け、2次
以上の積和演算命令の実行時には最終項の累算処理が終
わるまで第1及び第2ステージのみで処理を行い、前記
最終項の累算処理終了後の値に関して第3ステージにお
いて冗長2進数/2進数変換を行うので、第1ステージ
及び第2ステージの演算時間を相互に均一にできて、ク
ロック周波数を高めて演算の高速化を図ることができる
と共に、低電力化を実現できる。
【0159】更に、請求項9記載の発明の演算装置によ
れば、1つの補正項を複数の選択信号に変換し、この複
数の選択信号を用いてプロパゲーション及びジェネレー
ションが生成したので、そのプロパゲーション及びジェ
ネレーションの生成を簡易に且つ早期に行うことができ
る。
【0160】加えて、請求項11記載の演算装置によれ
ば、乗数と被乗数との乗算処理や積和処理の途中の段階
で、既に確定した最小桁から所定桁までの桁の結果を早
期に冗長2進数から2進数に変換したので、乗算結果や
積和結果の全桁が最終的に確定して行われる冗長2進数
/2進数変換の桁数を少く制限して、その確定した残り
の桁部分の冗長2進数/2進数変換を早期に行なうこと
ができ、乗算処理や積和処理を早期に実行できる。
【0161】また、請求項12、請求項13、請求項1
4、請求項15、請求項16及び請求項17記載の演算
装置及び演算方法によれば、前記請求項11記載の発明
と同様に、乗算処理や積和処理の途中の段階で既に確定
した最小桁から所定桁までの桁を早期に冗長2進数から
2進数に変換したで、乗算処理や積和処理を早期に実行
することができると共に、上位側部分積加算結果と下位
側部分責加算結果との加算処理を累算処理部で兼用して
行う構成としたので、その分、ゲート段数を削減するこ
とができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例の乗算を行う演算装置の
ブロック図である。
【図2】同実施例における動作説明のためのタイミング
図である。
【図3】本発明の第2の実施例の積和演算を行う演算装
置のブロック図である。
【図4】同実施例における動作説明のためのタイミング
図である。
【図5】本発明の第1の実施例の冗長2進数/2進数変
換部のブロック図である。
【図6】同第1の実施例におけるpg生成部の論理回路
図である。
【図7】同第1の実施例における変換選択信号生成部の
論理回路図である。
【図8】本発明の第3の実施例における積和演算装置の
ブロック図である。
【図9】同第3の実施例における乗算命令を実施した場
合の部分積加算関係の説明図である。
【図10】同第3の実施例における積和演算命令を実施
した場合の部分積加算関係の説明図である。
【図11】同第3の実施例における部分変換部のブロッ
ク図である。
【図12】従来の積和演算を行う演算装置のブロック図
である。
【図13】従来の冗長2進数乗算器のブロック図であ
る。
【符号の説明】 1 冗長2進数乗算部 2 乗算部分処理部 3 冗長2進数累算処理部 4 冗長2進数/2進数変換部 5 制御部 6 記憶装置 10 第1の入力ラッチ 11 第2の入力ラッチ 12 第1の中間ラッチ 13 第2の中間ラッチ 14 第3の中間ラッチ 15 累算結果中間ラッチ 16 出力ラッチ 17 乗算結果中間ラッチ 18 補正項及び変換選択信号ラッチ 19 累算アレイ入力セレクタ 20 第1のRBAアレイ 21 第2のRBAアレイ 22 第3のRBAアレイ 23 第4のRBAアレイ 24 第5のRBAアレイ 25 第6のRBAアレイ 26 RBA累算アレイ 50 変換選択信号生成部 51 RB/B変換部入力セレクタ 52 補正項セレクタ 60 pg生成部 61〜62 pg生成セル 70 部分変換部

Claims (17)

    (57)【特許請求の範囲】
  1. 【請求項1】 1組の冗長2進数乗算結果及び1つの補
    正項を生成する冗長2進数乗算部と、前記冗長2進数乗
    算部により生成された補正項を用いて直接プロパゲーシ
    ョン及びジェネレーションの生成を行ない、この生成さ
    れたプロパゲーション及びジェネレーションを用いて前
    記冗長2進数乗算部の出力の冗長2進数/2進数変換を
    行なう冗長2進数/2進数変換部とを備えたことを特徴
    とする演算装置。
  2. 【請求項2】 冗長2進数乗算部と冗長2進数/2進数
    変換部との間に配置される累算処理部を有し、前記累算
    処理部は、前記冗長2進数乗算部の冗長2進数乗算結果
    と累算値との加算を行ない、前記累算値は、前記累算処
    理部の加算結果を冗長2進数/2進数変換した前記冗長
    2進数/2進数変換部の出力であることを特徴とする請
    求項1記載の演算装置。
  3. 【請求項3】 1組の冗長2進数乗算結果及び1つの補
    正項を生成する冗長2進数乗算部と、前記冗長2進数乗
    算部内の乗数下位側部分と被乗数との下位側部分積加算
    結果及び乗数上位側部分と被乗数との上位側部分積加算
    結果を取り出すパスと、前記2組の部分積加算結果及び
    前記補正項を蓄える第1、第2及び第3の中間ラッチ
    と、累算結果ラッチと、前記第1ないし第3の中間ラッ
    チの結果と前記累算結果ラッチの値を累算し、その累算
    結果を前記累算結果ラッチに蓄える冗長2進数累算処理
    部と、前記冗長2進数乗算部の結果及び前記冗長2進数
    累算処理部の結果の何れか一方を選択するセレクタと、
    前記補正項を用いて直接プロパゲーション及びジェネレ
    ーションの生成を行なうと共に、このプロパゲーション
    及びジェネレーションを用いて前記セレクタを介して供
    給される値を2進数に変換する冗長2進数/2進数変換
    部とを備えたことを特徴とする演算装置。
  4. 【請求項4】 乗算命令を実行する場合には、冗長2進
    数乗算部により1組の冗長2進数乗算結果及び1つの補
    正項を生成し、次いで、セレクタにより前記冗長2進数
    乗算部の結果を選択し、冗長2進数/2進数変換部によ
    り前記選択された冗長2進数乗算部の結果から前記補正
    項を用いて直接プロパゲーション及びジェネレーション
    を生成した後、その加算処理を行なって冗長2進数/2
    進数変換を行うノンパイプライン動作を行い、 積和演算命令を実行する場合には、第1ステージにおい
    て冗長2進数乗算部により2組の部分積加算結果及び1
    つの補正項の生成を行った後、第2ステージにおいて冗
    長2進数累算部により前記2組の部分積加算結果及び1
    つの補正項と過去の累算値との冗長2進数加算を行い、
    次いで、積和演算命令で指定された回数の乗算処理及び
    累算処理を各々前記第1ステージ及び第2ステージで行
    なうことを繰返し、その後、ステージ3において前記積
    和演算命令で指定された回数の累算処理を終えた冗長2
    進数累算結果をセレクタにより選択し、この冗長2進数
    累算結果を冗長2進数/2進数変換部により2進数に変
    換するパイプライン動作を第1ないし第3の中間ラッチ
    より成る第1のパイプラインラッチ及び累算結果ラッチ
    より成る第2のパイプラインラッチを用いて行うことを
    特徴とする請求項3記載の演算装置を用いた演算方法。
  5. 【請求項5】 乗算命令を実行する場合には、1組の冗
    長2進数乗算結果及び1つの補正項を生成し、次いで、
    前記1組の冗長2進数乗算結果から前記補正項を用いて
    直接プロパゲーション及びジェネレーションを生成し、
    その加算処理を行なって冗長2進数/2進数変換を行う
    ノンパイプライン動作を行い、 積和演算命令を実行する場合には、第1ステージにおい
    て乗数下位側部分と被乗数との下位側部分積加算結果及
    び乗数上位側部分と被乗数との上位側部分積加算結果並
    びに1つの補正項の生成を行った後、第2ステージにお
    いて前記2組の部分積加算結果及び1つの補正項と過去
    の累算値との冗長2進数加算を行い、次いで、積和演算
    命令で指定された回数の乗算処理及び累算処理を各々前
    記第1ステージ及び第2ステージで行なうことを繰返
    し、その後、第3ステージにおいて前記積和演算命令で
    指定された回数の累算処理を終えた冗長2進数累算結果
    を2進数に変換するパイプライン動作を行うことを特徴
    とする演算方法。
  6. 【請求項6】 冗長2進数/2進数変換部は、冗長2進
    数入力に関して最上位の補正項の桁位置より1桁下まで
    の演算処理を行なう第1の加算器と、前記最上位の補正
    項の桁位置の値及びこの桁位置より上位の値に関してプ
    ロパゲーションとジェネレーションを生成するpg生成
    部と、前記pg生成部の出力及び前記第1の加算器の桁
    上げ信号を用いて加算処理を行なう第2の加算器とから
    成ることを特徴とする請求項1、請求項2又は請求項3
    記載の演算装置。
  7. 【請求項7】 冗長2進数は、正出力と負出力との組合
    せより成り、第1の加算器は、前記冗長2進数入力に関
    して最上位の補正項の桁位置より1桁下までの減算処理
    を行なうものであることを特徴とする請求項6記載の演
    算装置。
  8. 【請求項8】 冗長2進数は絶対値と符号から成り、p
    g生成部は、前記冗長2進数における最上位の補正項の
    桁位置より上位の桁位置までの任意のi桁目に関して、 i桁目の絶対値とi‐1桁目の符号の反転との論理積を
    中間桁上げ、i桁目の絶対値とi‐1桁目の符号の反転
    との排他的論理和を中間和として、 前記i桁目の中間和とi‐1桁目の中間桁上げとの論理
    積をジェネレーション、 前記i桁目の中間和とi‐1
    桁目の中間桁上げとの排他的論理和をプロパゲーション
    とするi桁目のpg生成セルを備えることを特徴とする
    請求項6記載の演算装置。
  9. 【請求項9】 冗長2進数乗算部により生成された補正
    項は絶対値と符号とから成り、冗長2進数/2進数変換
    部は、前記冗長2進数乗算部により生成された補正項を
    複数の選択信号に変換する変換選択信号生成部を有し、
    前記変換選択信号生成部により変換された複数の選択信
    号を用いてプロパゲーション及びジェネレーションの生
    成を行なうことを特徴とする請求項1、請求項2又は請
    求項3記載の演算装置。
  10. 【請求項10】 冗長2進数は絶対値と符号から成り、
    pg生成部は、前記冗長2進数における最上位の補正項
    の桁位置jに関して、 j桁目の絶対値と前記補正項の絶対値との排他的論理和
    をジェネレーションgjとし、1をプロパゲーションp
    jとすると共に、 前記補正項が1のとき、j桁目の絶対値の反転を中間桁
    上げ、j桁目の符号をj桁目の符号とし、 前記補正項が0のとき、1を中間桁上げ、j桁目の符号
    をj桁目の符号とし、 前記補正項が−1のとき、j桁目の絶対値とj桁目の符
    号の反転との積の反転を中間桁上げ、1をj桁目の符号
    とするj桁目のpg生成セルを備えることを特徴とする
    請求項1、請求項2、請求項3又は請求項9記載の演算
    装置。
  11. 【請求項11】 冗長2進数/2進数変換部は、冗長2
    進数乗算部により生成された1組の冗長2進数乗算結果
    のうち、最下位桁から所定桁までの1部分を入力し、こ
    の1部分を冗長2進数から2進数に変換する冗長2進数
    /2進数部分変換部を有することを特徴とする請求項
    1、請求項2又は請求項3記載の演算装置。
  12. 【請求項12】 乗数の下位側部分と被乗数との下位側
    部分積加算結果、前記乗数の上位側部分と被乗数との上
    位側部分積加算結果、及び1つの補正項を生成する冗長
    2進数乗算部分処理部と、前記下位側部分積加算結果の
    うち最下位桁から所定桁までの一部分以外の部分と前記
    上位側部分積加算結果との加算処理を行なう累算処理部
    と、前記下位側部分積加算結果のうち最下位桁から所定
    桁までの一部分を冗長2進数から2進数に変換する冗長
    2進数/2進数部分変換部と、前記冗長2進数乗算部分
    処理部により生成された補正項を用いてプロパゲーショ
    ン及びジェネレーションを生成し、この生成されたプロ
    パゲーション及びジェネレーションを用いて前記累算処
    理部の演算処理結果を冗長2進数から2進数に変換する
    冗長2進数/2進数変換部とを備えて、1回の乗算機能
    を有することを特徴とする演算装置。
  13. 【請求項13】 累算処理部は、冗長2進数乗算部分処
    理部により生成された下位側部分積加算結果のうち最下
    位桁から所定桁までの一部分及び補正項と、累算値との
    3者を累算する累算処理と、この累算処理結果及び加算
    処理結果とを加算する他の加算処理とをも行なうもので
    あり、前記他の加算処理結果は前記累算値として用いら
    れ、また、冗長2進数/2進数部分変換部は、前記累算
    処理部による累算処理結果のうち最下位桁から所定桁ま
    での一部分を冗長2進数から2進数に変換する機能を有
    し、更に、冗長2進数/2進数変換部は、冗長2進数乗
    算部分処理部により生成された補正項を無視してプロパ
    ゲーション及びジェネレーションを生成し、この生成さ
    れたプロパゲーション及びジェネレーションを用いて前
    記累算処理部の他の加算処理結果を冗長2進数から2進
    数に変換する機能を有し、積和演算機能を併有すること
    を特徴とする請求項12記載の演算装置。
  14. 【請求項14】 累算処理部は、冗長2進数乗算部分処
    理部により生成された下位側部分積加算結果のうち最下
    位桁から所定桁までの一部分以外の部分と上位側部分積
    加算結果との加算処理結果と、この加算処理結果と累算
    処理結果との加算処理結果との何れか一方を選択して出
    力する第1セレクタを有し、冗長2進数/2進数部分変
    換部の前段には、前記下位側部分積加算結果のうち最下
    位桁から所定桁までの一部分と、累算処理部による累算
    処理結果のうち最下位桁から所定桁までの一部分との何
    れか一方を選択して前記冗長2進数/2進数部分変換部
    に出力する第2セレクタとを有することを特徴とする請
    求項13記載の演算装置。
  15. 【請求項15】 冗長2進数/2進数部分変換部は、冗
    長2進数の符合及び絶対値を入力し、前記絶対値の論理
    否定をプロパゲーションとし、前記符号の論理否定と前
    記絶対値との論理積をジェネレーションとして、前記プ
    ロパゲーション及びジェネレーションに基づき加算処理
    を行なう加算器を備えることを特徴とする請求項11、
    請求項12、請求項13又は請求項14記載の演算装
    置。
  16. 【請求項16】 乗数の下位側部分と被乗数との下位側
    部分積加算結果、前記乗数の上位側部分と被乗数との上
    位側部分積加算結果、及び1つの補正項を生成した後、 前記下位側部分積加算結果のうち最下位桁から所定桁ま
    での一部分以外の部分と前記上位側部分積加算結果との
    加算処理を行ない、この加算処理に併行して、前記下位
    側部分積加算結果のうち最下位桁から所定桁までの一部
    分を冗長2進数から2進数に変換し、 その後、前記補正項を用いてプロパゲーション及びジェ
    ネレーションを生成し、この生成されたプロパゲーショ
    ン及びジェネレーションを用いて前記加算処理結果を冗
    長2進数から2進数に変換して、 乗算命令の実行をノンパイプライン動作により行うこと
    を特徴とする演算方法。
  17. 【請求項17】 ステージ1では、乗数の下位側部分と
    被乗数との下位側部分積加算結果、前記乗数の上位側部
    分と被乗数との上位側部分積加算結果、及び1つの補正
    項を生成し、 ステージ2では、前記2組の部分積加算結果と、前記1
    つの補正項と、過去の累算値との累算を冗長2進数で行
    ない、 前記ステージ1とステージ2とをパイプライン動作によ
    り繰返し行い、 最終累算処理時での前記ステージ2では、前記下位側部
    分積加算結果のうち最下位桁から所定桁までの一部分以
    外の部分と前記上位側部分積加算結果との加算処理を冗
    長2進数で行ない、この加算処理に併行して、前記下位
    側部分積加算結果のうち最下位桁から所定桁までの一部
    分を冗長2進数から2進数に変換し、 ステップS3では、前記最終累算処理におけるステージ
    2での加算処理結果を冗長2進数から2進数に変換する
    ことを特徴とする演算方法。
JP08422694A 1993-04-27 1994-04-22 演算装置及び演算方法 Expired - Fee Related JP3222313B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08422694A JP3222313B2 (ja) 1993-04-27 1994-04-22 演算装置及び演算方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP10090393 1993-04-27
JP5-100903 1993-04-27
JP08422694A JP3222313B2 (ja) 1993-04-27 1994-04-22 演算装置及び演算方法

Publications (2)

Publication Number Publication Date
JPH0793132A JPH0793132A (ja) 1995-04-07
JP3222313B2 true JP3222313B2 (ja) 2001-10-29

Family

ID=26425290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08422694A Expired - Fee Related JP3222313B2 (ja) 1993-04-27 1994-04-22 演算装置及び演算方法

Country Status (1)

Country Link
JP (1) JP3222313B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69808362T2 (de) * 1997-04-01 2003-03-06 Matsushita Electric Ind Co Ltd Multiplizierverfahren und Multiplizierschaltung
US9152382B2 (en) 2012-10-31 2015-10-06 Intel Corporation Reducing power consumption in a fused multiply-add (FMA) unit responsive to input data values
KR102501471B1 (ko) 2018-01-16 2023-02-20 삼성전자주식회사 다공성막, 이를 포함하는 세퍼레이터, 이를 포함하는 전기화학 소자, 및 다공성막 제조방법
CN112416294B (zh) * 2020-11-20 2022-09-16 安谋科技(中国)有限公司 处理器及其二进制累加方法和计算机可读介质

Also Published As

Publication number Publication date
JPH0793132A (ja) 1995-04-07

Similar Documents

Publication Publication Date Title
US6564239B2 (en) Computer method and apparatus for division and square root operations using signed digit
US5790446A (en) Floating point multiplier with reduced critical paths using delay matching techniques
US5636155A (en) Arithmetic processor and arithmetic method
Kenney et al. A high-frequency decimal multiplier
US4792793A (en) Converting numbers between binary and another base
Lang et al. A radix-10 digit-recurrence division unit: algorithm and architecture
US6295597B1 (en) Apparatus and method for improved vector processing to support extended-length integer arithmetic
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JPH0969040A (ja) 推測的演算を有する3つのオーバーラップしたステージにより基数2の平方根演算/除算を行う回路
JP3139466B2 (ja) 乗算器及び積和演算器
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JPH0368416B2 (ja)
EP2140345A1 (en) Multiply and multiply- accumulate unit for signed and unsigned operands
US5528529A (en) Electronic multiplying and adding apparatus and method
JPH0831025B2 (ja) 乗算回路
Kalaiyarasi et al. Design of an efficient high speed radix-4 booth multiplier for both signed and unsigned numbers
US20020040379A1 (en) Wide word multiplier using booth encoding
US5957999A (en) Booth multiplier with squaring operation accelerator
US5661673A (en) Power efficient booth multiplier using clock gating
JP3222313B2 (ja) 演算装置及び演算方法
US4866655A (en) Arithmetic processor and divider using redundant signed digit
JP2511527B2 (ja) 浮動小数点演算器
US5724280A (en) Accelerated booth multiplier using interleaved operand loading
US5734600A (en) Polynomial multiplier apparatus and method
US20020161810A1 (en) Method and apparatus for multiplication and/or modular reduction processing

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: 20010731

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

Free format text: PAYMENT UNTIL: 20070817

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20080817

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080817

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090817

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090817

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100817

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110817

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110817

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120817

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees