JPH0427587B2 - - Google Patents

Info

Publication number
JPH0427587B2
JPH0427587B2 JP59105053A JP10505384A JPH0427587B2 JP H0427587 B2 JPH0427587 B2 JP H0427587B2 JP 59105053 A JP59105053 A JP 59105053A JP 10505384 A JP10505384 A JP 10505384A JP H0427587 B2 JPH0427587 B2 JP H0427587B2
Authority
JP
Japan
Prior art keywords
input
barrel shifter
register
data
minimum value
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 - Lifetime
Application number
JP59105053A
Other languages
English (en)
Other versions
JPS60247781A (ja
Inventor
Natsume Kurosaki
Katsuhiko Ueda
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 Holdings Corp
Original Assignee
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP59105053A priority Critical patent/JPS60247781A/ja
Publication of JPS60247781A publication Critical patent/JPS60247781A/ja
Publication of JPH0427587B2 publication Critical patent/JPH0427587B2/ja
Granted 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/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
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49921Saturation, i.e. clipping the result to a minimum or maximum value

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
産業上の利用分野 本発明は、デイジタル信号処理に用いられる演
算装置に関するものである。 従来例の構成とその問題点 近年、デイジタル信号処理の応用拡大そして
LSI化の促進により、デイジタル信号処理法に高
速性とともに高精度性が要求されるようになつて
きた。 このデイジタル信号処理手法のひとつに積和演
算が上げられる。積和演算を高速に行うため、従
来から第1図に示す様な演算装置が用いられてい
る。1は2つの入力データの積を求める乗算器、
2,3は乗算器1の入力ラツチである。4,5は
加算器6の入力ラツチであり、7は加算器6の出
力を蓄えるアキユムレータである。加算器6では
乗算器1の出力と、アキユムレータ7の出力との
加算を行う。 以上のように構成された従来の演算装置につい
て、以下その動作を説明する。なお、数体系は、
固定小数点で2の補数表現の系を用いる。 乗算器1の入力ラツチ2に与えられる入力系列
をxi入力ラツチ3に与えられる入力系列をyiとす
ると、乗算器1ではxi・yiが求められる。一方、
加算器6は、入力ラツチ5を通じて、乗算器1の
出力と接続し、加算結果にこれを足しこむ構成に
なつている。そこで乗算器1と加算器6をパイプ
ライン動作させることにより高速に積和演算を行
い最終的に〓xi・yiが求まる。 しかしながら上記のような構成では、加算によ
るオーバーフローという問題を考えた場合、求め
る値と全く異つた結果がでてくる可能性がある。
とくに、入力系列のxiとyiが同じ場合、たとえば
信号のパワー計算においてもしオーバーフローが
生じれば求める値と出力値との間の誤差は積和計
算を繰り返せば繰り返すほど拡大していくことに
なる。 この問題点に関して、従来からとられている処
理は、加算器6で生じるオーバーフロー回数lを
あらかじめ予測し、入力系列xi,yiを右にlビツ
トシフトした値、2-lxi,2-lyiを乗算器1の入力と
する方法である。しかしすべての入力系列xi,yi
に対しシフト演算を行うことは、本来の積和演算
に対して大きなオーバーヘツドになつていた。加
えて、2lビツトの左シフト演算を行つて、最終結
果2-2l・〓xiyiを入力系列のデータxi,yiと同じ桁
にあわせる際に生じる可能性のあるシフタのオー
バーフローに対する対策が何もとられていないと
いう欠点を有していた。 発明の目的 本発明の第1の目的は、上記従来の問題を解決
し、積和演算を行う際のオーバーフローが生じに
くく、また、もしオーバーフローが生じても、そ
れに対する対策をもつ演算装置を提供することに
ある。 本発明の第2の目的は、累積加算等、積和演算
以外の算術演算に対しても、オーバーフローの生
じにくく、また、もしオーバーフローが生じても
それに対する対策をもつ演算装置を提供すること
にある。 発明の構成 本発明は、2つの入力データの積を求める乗算
器と、前記乗算器の出力を1つの入力すると2入
力の第1のマルチプレクサと、前記第1のマルチ
プレクサで選ばれるデータを格納する第3のレジ
スタと、前記第3のレジスタに格納されているデ
ータを入力とし、これをシフトして出力するバレ
ルシフタと、前記バレルシフタにおけるオーバー
フローを検出するバレルシフタオーバーフロー検
出回路と、前記バレルシフタに対してそのシフト
数と、シフト方向とを与える第2、第3のレジス
タと、前記第2、第3のレジスタの出力を入力と
し、前記バレルシフタに接続する2入力の第2の
マルチプレクサと、第4のレジスタと、前記バレ
ルシフタの出力と、前記第4のレジスタの出力を
入力とする2入力の算術論理演算器と、前記算術
論理演算器におけるオーバーフローを検出する算
術論理演算器オーバーフロー検出回路と、前記算
術論理演算器の出力と接続し、そのデータを最大
値または最小値に説明する最大値最小値設定回路
と、前記バレルシフタオーバーフロー検出回路
と、前記算術論理演算器オーバーフロー検出回路
と、前記第3のレジスタの最上位ビツトと他の入
力とに接続し、前記最大値最小値設定回路に、最
大値か最小値かの区別の情報と、最大値最小値設
定のイネーブル情報を与える、最大値最小値設定
コントロール部と、を具備したことを特徴とする
演算装置であり、前記乗算器の出力は前記第2の
レジスタで示され得る数だけシフトした後、前記
算術論理演算器に入力することにより、積和演算
時の前記算術論理演算器内でのオーバーフローを
防ぎ、また積和演算以外の時は前記第1のマルチ
プレクサに入力される前記乗算器の出力以外のも
う1つの入力データを、前記第3のレジスタで示
される数だけシフトした後、前記算術論理演算器
に入力することにより、前記算術論理演算器での
オーバーフローが発生することを防ぎまた、もし
それでも前記算術論理演算器でオーバーフローが
生じた時、あるいはデータをバレルシフタでシフ
トアツプすることによりオーバーフローが生じた
時は前記算術論理演算器の出力をオーバーフロー
の生じた方向により最大値または最小値に設定す
ることのできるものである。 実施例の説明 第2図は本発明の一実施例における演算装置の
構成を示す。第2図において、21は乗算器であ
り入力ラツチ22,23に与えられたnビツトの
2つのデータx,yの積を求め2nビツトの出力
のうち最上位ビツトを除く2n−1ビツトのデー
タを乗算結果として出力する。24は及びの
入力端子をもつマルチプレクサであり、乗算器2
1の出力データおよびそれ以外のデータのいずれ
かを選択してレジスタ25に出力する。26はバ
レルシフタであり、レジスタ25のデータをシフ
トしてmビツトのデータとして出力する。27,
28はともにレジスタであり、バレルシフタ26
にシフト数を与える。レジスタ27は乗算器21
の出力データのバレルシフタ26におけるシフト
数を保持している。レジスタ28はマルチプレク
サ24のもう1方の入力データのバレルシフタ2
6におけるシフト数を保持している。29はお
よびの入力端子をもつマルチプレクサであり、
レジスタ27、レジスタ28のいずれかの値をシ
フト数としてバレルシフタ26に与える。マルチ
プレクサ29とマルチプレクサ24とは連動して
おり、同一のセレクト信号で動作する。つまりマ
ルチプレクサ24がバレルシフタ26に乗算出力
データをセレクトして入力した時、マルチプレク
サ29は、そのデータのバレルシフタ26でのシ
フト数として、レジスタ27に格納してデータを
与える。また、マルチプレクサ24が他方の入力
データをセレクトした時は、マルチプレクサ29
はレジスタ28に格納しているデータをバレルシ
フタ26のシフト数としてセレクトする。30は
バレルシフタにおけるオーバーフロー検出回路で
あり、入力データをバレルシフタ26においてシ
フトアツプすることにより生じ得るオーバーフロ
ーを検出しその情報BOVFを出力する。31はm
ビツト幅の算術論理演算器であり、バレルシフタ
26の出力と、レジスタ32に格納されているデ
ータを入力とし、算術あるいは論理演算を行う。
33は算術論理演算器31において生じ得るオー
バーフローを検出してその情報AOVFを出力する
ALUオーバーフロー検出回路である。34は算
術論理演算器31の出力をmビツトの最大値011
…1あるいは最小値100…0に設定できる最大値
最小値設定回路である。35はバレルシフタ26
におけるオーバーフロー情報BOVFと、算術論理
演算器31におけるオーバーフロー情報AOVFと
レジスタ25の最上位ビツトの値MSBと何らか
の最大値最小値条件とを入力とし最大値最小値設
定回路34に最大値最小値設定のイネーブル信号
と、その設定値が最大値011…1であるか最小値
100…0であるかの区別をする方向信号とを与え
る、最大値最小値設定コントロール部である。最
大値最小値設定コントロール部35に入力される
何らかの最大値最小値設定の条件は例えば、命令
やフラグのことを示す。また、この設定条件はな
くてもよいことは言うまでもない。 以上の様に構成された本実施例の演算装置につ
いて以下その動作を説明する。 まず積和演算時の動作について説明する。積和
演算時にはマルチプレクサ24,29の出力には
セレクト信号によりの入力端子がセレクトされ
る。nビツトの入力データ系列xi,yiは、それぞ
れ入力ラツチ22,23でラツチされた後、乗算
器21で乗算され2n−1ビツトのデータxiyiとし
てマルチプレクサ24、レジスタ25を通りバレ
ルシフタ26に入力される。あらかじめレジスタ
27で、バレルシフタ26の値を右にlビツトシ
フトする事を指示しておくと、バレルシフタに入
力されたデータは、第3図で示すように少なくと
も上位l+1ビツトは符号であるmビツトのデー
タに変換された後、算術論理演算器31でレジス
タ32の値に足される。第3図でSは符号ビツト
を示している。ALUオーバーフロー検出回路3
3では算術論理演算器31におけるm−1ビツト
と目とm−2ビツト目の桁上りの排他的論理和を
とり、これを算術論理演算器31のオーバーフロ
ー情報AOVFとして出力する。つまり算術論理演
算器で加算の結果がオーバーフローするとAOV
が1となる。算術論理演算器31で加算されたデ
ータは、最大値最小値設定回路34に入力され
る。ここにおいて最大値最小値設定コントロール
部35を最大値最小値設定モードにしておけばも
し上記加算の結果がオーバーフローしてAOVFが
1であつた場合、そのオーバーフローした方向に
応じて、最大値あるいは最小値を設定する。レジ
スタ32の値を演算開始時にクリアしておき、そ
の後は最大値最小値設定回路34の出力結果に更
新していけばオーバーフローの生じにくい形で積
和演算を行うことができる。そしてもし積和演算
時に算術論理演算器31でオーバーフローが生じ
なかつたら、最終的に2-lxiyiが得られる。つま
り、入力系列xi,yiをあらかじめ右にl/2ビツトづ
つシフトしてから積和演算を行いオーバーフロー
の発生を防ぐ従来の方法と同様のことを入力系列
x1,yiをあらかじめ右にシフトすることなしに実
現している。また有効ビツトnビツトのデータ
xi,yiを乗算後、右シフトで行つているため、あ
らかじめデータをl/2ビツト右にシフトして、有
効ビツトn−l/2ビツトのデータとして乗算する
時に比べて、乗算結果の誤差は小さい。例えば、 xi=−aOio-1j=1 aji・2-j bi=−bOio-1j=1 bji・2-j とする。ここでaji(j=0〜n−1)は1又は0
の値をとる。 ゆえに となる。このデータの上位2n−lビツト値(5)と
(1)の値の差は(2),(3),(4)の値を足したことによる
桁上がりにより最大、上位からn−l/2ビツト目
に1がたつ値となる。よつて、乗算後のデータ(5)
を右にlビツトシフトして得られたデータ(5)′と、
あらかじめxi,yiをl/2づつ右にシフトした後、そ
のデータを乗算した結果(1)′の差は、最大
【式】となる。なお(1)′は(1)の右にlビ ツトシフトした値である。第4図における1,
2,3,4,5,1′,5′は上記の値(1),(2),
(3),(4),(5),(1)′,(5)′に相当する。またS1,…
…,S5はそれぞれ符号ビツトを示し、S2,S3,S4
については加算を行なうため符号延長を行なつて
いる。 一方、もし算術論理演算器31でオーバーフロ
ーが生じた時は、その時点で最大値又は最小値を
設定してレジスタ32に代入する。つまり、負の
値に負の値を足してオーバーフローした時はmビ
ツトの最小値100…0を、正の値に正の値を足し
てオーバーフローした時はmビツトの最大値011
…1を設定する。この操作により、積和演算の途
中でもしオーバーフローしても、そのデータを最
大値又は最小値で近似し誤差の小さい値を結果と
して出力することができる。 次に、積和演算以外の時の動作について説明す
る。この時のマルチプレクサ24,27の出力と
しては、セレクト信号により入力端子がセレク
トされる。つまり、マルチプレクサ24への入力
データは、レジスタ25を通りバレルシフタ2
6によりレジスタ28の示すシフト数だけシフト
される。そこで例えば、レジスタ32をあらかじ
めクリアしておき、バレルシフタ28の出力と算
術論理演算器31で、論理和をとると、出力結果
として単純なシフト演算を実現することができ
る。ここで、レジスタ28でバレルシフタのシフ
トアツプを指示し、データがオーバーフローした
時は、最大値最小値設定モードにすることによ
り、算術論理回路31の出力である単純シフトの
結果をその入力データの符号により最大値又は
最小値に設定できる。また、和〓xiを求めるに
は、マルチプレクサ24の入力端子から入力系
列xiを入力し、算術論理演算器26で加算し行い
その出力をレジスタ32に与えることにより実現
できる。そしてこの場合も入力データxiをまずレ
ジスタ28の示す数だけ、バレルシフタ26で右
にシフトしてから加算することにより、先にのべ
た積和演算の時と同様に、オーバーフローの発生
を防ぐことができる。又、もしオーバーフローが
途中で生じても、そのデータを最大値又は最小値
で近似し、誤差の少ない形で結果を出力すること
ができる。 発明の効果 本発明の演算装置は乗算器と2つのレジスタの
値のいずれかでシフトするバレルシフタと、算術
論理演算器と最大値最小値設定回路とそのコント
ロール部等から構成され、積和演算時には、前記
乗算器の出力を、一方のレジスタの値によりバレ
ルシフタで右シフトした後、前記算術論理演算器
で足しこんで行くことによりオーバーフローを防
ぐことができる。それでもオーバーフローが生じ
た時は、最大値最小値設定回路で値を最大値又は
最小値に設定することができ、ソストウエアでオ
ーバーフローの有無とチエツクすることなく誤差
の小さい形で演算結果を出力することができる。
又、乗算結果に対して右シフトを行うため、従来
のような被乗数をあらかじめ右シフトしておく方
法に比べてシフトに要するオーバーヘツドもな
く、乗算結果の誤差も小さくなる。 累積加算を行う時は、入力系列データを、バレ
ルシフトにおきもう一方のレジスタの与えるシフ
ト数だけ右シフトした後、前記算術論理演算器で
加算することによりオーバーフローを防いで結果
がえられる。それでもオーバーフローが生じた時
は、最大値最小値設定回路で値を最大値または最
小値に設定することができ、誤差の小さい形で演
算結果を出力することができる。また前記バレル
シフタの機能だけを用い、単純シフト演算も可能
でありこの場合もバレルシフタにおいてオーバー
フローが生じた時は、出力を最大値又は最小値に
設定でき、デイジタル信号処理用の演算装置とし
て本発明の実用的効果は大きい。
【図面の簡単な説明】
第1図は従来の演算装置のブロツク図、第2図
は本発明の一実施例における演算装置のブロツク
図、第3図は本発明の一実施例における乗算器の
出力とバレルシフタの出力の関係図、第4図は入
力データをあらかじめシフトダウンする従来の方
法と乗算結果をシフトする方法の間の誤差を示す
説明図である。 21……乗算器、24,29……マルチプレク
サ、26……バレルシフタ、31……算術論理演
算器、34……最大値最小値設定回路、35……
最大値最小値設定コントロール部。

Claims (1)

    【特許請求の範囲】
  1. 1 2つの入力データの積を求める乗算器と、前
    記乗算器の入力データを格納する第1、第2のレ
    ジスタと、前記乗算器の出力を1つの入力とする
    2入力の第1のマルチプレクサと、前記第1のマ
    ルチプレクサで選ばれるデータを格納する第3の
    レジスタと、前記第3のレジスタに格納されてい
    るデータを入力とし、これをシフトして出力する
    バレルシフタと、前記バレルシフタにおけるオー
    バーフローを検出するバレルシフタオーバーフロ
    ー検出回路と、前記バレルシフタに対してそのシ
    フト数と、シフト方向とを与える第4、第5のレ
    ジスタと、前記第4、第5のレジスタの出力を入
    力とし、前記バレルシフタに接続する2入力の第
    2のマルチプレクサと、第6のレジスタと、前記
    バレルシフタの出力と、前記第6のレジスタの出
    力を入力とする2入力の算術論理演算器と、前記
    算術論理演算器におけるオーバーフローを検出す
    る算術論理演算器オーバーフロー検出回路と、前
    記算術論理演算器の出力と接続し、そのデータを
    最大値または最小値に設定する最大値最小値設定
    回路と、前記バレルシフタオーバーフロー検出回
    路と、前記算術論理演算器オーバーフロー検出回
    路と、前記第3のレジスタの最上位ビツトと他の
    入力とに接続し、前記最大値最小値設定回路に、
    最大値か最小値かの区別の情報と、最大値最小値
    設定のイネーブル情報を与える、最大値最小値設
    定コントロール部とを具備したことを特徴とする
    演算装置。
JP59105053A 1984-05-23 1984-05-23 演算装置 Granted JPS60247781A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59105053A JPS60247781A (ja) 1984-05-23 1984-05-23 演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59105053A JPS60247781A (ja) 1984-05-23 1984-05-23 演算装置

Publications (2)

Publication Number Publication Date
JPS60247781A JPS60247781A (ja) 1985-12-07
JPH0427587B2 true JPH0427587B2 (ja) 1992-05-12

Family

ID=14397241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59105053A Granted JPS60247781A (ja) 1984-05-23 1984-05-23 演算装置

Country Status (1)

Country Link
JP (1) JPS60247781A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6211933A (ja) * 1985-07-09 1987-01-20 Nec Corp 演算回路
EP0593073A1 (en) * 1992-10-16 1994-04-20 Matsushita Electric Industrial Co., Ltd. A processor incorporating shifters

Also Published As

Publication number Publication date
JPS60247781A (ja) 1985-12-07

Similar Documents

Publication Publication Date Title
US5184318A (en) Rectangular array signed digit multiplier
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5144576A (en) Signed digit multiplier
JP2585649B2 (ja) 除算回路
US6519621B1 (en) Arithmetic circuit for accumulative operation
US5867413A (en) Fast method of floating-point multiplication and accumulation
US4677583A (en) Apparatus for decimal multiplication
JPH0690668B2 (ja) ファジイ演算装置
US4823300A (en) Performing binary multiplication using minimal path algorithm
JPH0427587B2 (ja)
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
US7003540B2 (en) Floating point multiplier for delimited operands
US5208769A (en) Unsigned integer multiply/divide circuit
JPH0253819B2 (ja)
JP2856792B2 (ja) 浮動小数点数演算装置
KR0176883B1 (ko) 복소수 승산기
JP2777265B2 (ja) 高基数開平演算装置
EP0780759A1 (en) Elimination of math overflow flag generation delay in an alu
JPH113210A (ja) 3入力比較器、並びにこれを用いた飽和演算装置およびその演算方法
JP3477866B2 (ja) 除算器の除算方法
JPH0414173A (ja) 固定小数点演算器
JPH11353157A (ja) 累積加算回路
JPH0361224B2 (ja)
JPH03245225A (ja) 浮動小数点加減算装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term