JPS60247781A - 演算装置 - Google Patents
演算装置Info
- Publication number
- JPS60247781A JPS60247781A JP59105053A JP10505384A JPS60247781A JP S60247781 A JPS60247781 A JP S60247781A JP 59105053 A JP59105053 A JP 59105053A JP 10505384 A JP10505384 A JP 10505384A JP S60247781 A JPS60247781 A JP S60247781A
- Authority
- JP
- Japan
- Prior art keywords
- overflow
- data
- arithmetic
- register
- barrel shifter
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49921—Saturation, 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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、ディジタル信号処理に用いられる演算装置に
関するものである。
関するものである。
従来例の構成とその問題点
近年、ディジタル信号処理の応用拡大そしてLSI化の
促進によシ、ディジタル信号処理手法に高速性とともに
高精度性が要求されるようになってきた。
促進によシ、ディジタル信号処理手法に高速性とともに
高精度性が要求されるようになってきた。
このディジタル信号処理手法のひとつに積和演算が上げ
られる。積和演算を高速に行うため、従来から第1図に
示す様な演算装置が用いられている。1は2つの入力デ
ータの積をめる乗算器、2.3は乗算器1の入力ラッチ
である。4,5は加算器6の入力ラッチであり、7は加
算器6の出力を蓄えるアキュムレータである。加算器6
では乗算器1の出力と、アキュムレータ7の出力との加
算を行う。
られる。積和演算を高速に行うため、従来から第1図に
示す様な演算装置が用いられている。1は2つの入力デ
ータの積をめる乗算器、2.3は乗算器1の入力ラッチ
である。4,5は加算器6の入力ラッチであり、7は加
算器6の出力を蓄えるアキュムレータである。加算器6
では乗算器1の出力と、アキュムレータ7の出力との加
算を行う。
以上のように構成された従来の演算装置について、以下
その動作を説明する。なお、数体系は、固定小数点で2
の補数表現の系を用いる。
その動作を説明する。なお、数体系は、固定小数点で2
の補数表現の系を用いる。
乗算器1の入力ラッチ2に与えられる入力系列をX、入
力ラッチ3に与えられる入力系列をy工とすると、乗算
器1ではX、・ylがめられる。一方、加算器6は、入
力ラッチ5を通じて、乗算器1の出力と接続し、加算結
果にこれを足しこむ構成になっている。そこで乗算器1
と加算器6をパイプライン動作させることによシ高速に
積和演算を行い最終的にΣ” i * ’l i がま
る。
力ラッチ3に与えられる入力系列をy工とすると、乗算
器1ではX、・ylがめられる。一方、加算器6は、入
力ラッチ5を通じて、乗算器1の出力と接続し、加算結
果にこれを足しこむ構成になっている。そこで乗算器1
と加算器6をパイプライン動作させることによシ高速に
積和演算を行い最終的にΣ” i * ’l i がま
る。
しかしながら上記のような構成では、加算によるオーバ
ーフローという問題を考えた場合、求める値と全く異っ
た結果がでてくる可能性がある。
ーフローという問題を考えた場合、求める値と全く異っ
た結果がでてくる可能性がある。
とくに、入力系列のX、とy、が同じ場合、たとえば信
号のパワー計算においてもしオーバーフローが生じれば
める値と出力値との間の誤差は積和計算を繰り返せば繰
り返すほど拡大していくことになる。
号のパワー計算においてもしオーバーフローが生じれば
める値と出力値との間の誤差は積和計算を繰り返せば繰
り返すほど拡大していくことになる。
この問題点に関して、従来からとられている処理は、加
算器6で生じるオーバーフロー回数βをあらかじめ予測
し、入力系列x6 + Yi e右にlビットシフトし
た値、2””x、 、 2−Zy、を乗算器1の入力と
する方法である。しかしすべての入力系列”itV工に
対しシフト演算を行うことは、本来の積和演算に対して
大きなオーバーヘッドになっていた。加えて、24ビツ
トの左シフト演算を行って、最終結果2 ・Σxiyi
を入力系列のデータXi。
算器6で生じるオーバーフロー回数βをあらかじめ予測
し、入力系列x6 + Yi e右にlビットシフトし
た値、2””x、 、 2−Zy、を乗算器1の入力と
する方法である。しかしすべての入力系列”itV工に
対しシフト演算を行うことは、本来の積和演算に対して
大きなオーバーヘッドになっていた。加えて、24ビツ
トの左シフト演算を行って、最終結果2 ・Σxiyi
を入力系列のデータXi。
y、と同じ桁にあわせる際に生じる可能性のあるシフタ
のオーバーフローに対する対策が何もとられていないと
いう欠点を有していた。
のオーバーフローに対する対策が何もとられていないと
いう欠点を有していた。
発明の目的
本発明の第1の目的は、上記従来の問題を解決し、積和
演算を行う際のオーバーフローが生じに<<、マた、も
しオーバーフローが生じても、それに対する対策をもつ
演算装置を提供することにある。
演算を行う際のオーバーフローが生じに<<、マた、も
しオーバーフローが生じても、それに対する対策をもつ
演算装置を提供することにある。
本発明の第2の目的は、累積加算等、積和演算以外の算
術演算に対しても、オーバーフローの生じに<<、また
、もしオーバーフローが生じてもそれに対する対策をも
つ演算装置を提供することにある。
術演算に対しても、オーバーフローの生じに<<、また
、もしオーバーフローが生じてもそれに対する対策をも
つ演算装置を提供することにある。
発明の構成
本発明は、2つの入力データの積をめる乗算器と、前記
乗算器の出力を1つの入力とする2人力の第1のマルチ
プレクサと、前記第1のマルチプレクサで選ばれるデー
タを格納する第1のレジスタと、前記第1のレジスタに
格納されているデータを入力とし、これをシフトして出
力するバレルシフタと、前記バレルシフタにおけるオー
バーフローを検出するバレルシフタオーバーフロー検出
回路と、前記バレルシフタに対してそのシフト数と、シ
フト方向とを与える第2.第3のレジスタと、前記第2
.第3のレジスタの出力を入力とし、前記バレルシフタ
に接続する2人力の第2のマルチプレクサと、第4のレ
ジスタと、前記バレルシフタの出力と、前記第4のレジ
スタの出力を入力とする2人力の算術論理演算器と、前
記算術論理演算器におけるオーバーフローを検出する算
術論理演算器オーバーフロー検出回路と、前記算術論理
演算器の出力と接続し、そのデータを最大値まだは最小
値に設定する最大値最小値設定回路ト、前記バレルシフ
タオーバーフロー検出回路と、前記算術論理演算器オー
バーフロー検出回路と、前記第1のレジスタの最上位ビ
ットと他の入力とに接続し、前記最大値最小値設定回路
に、最大値か最小値かの区別の情報と、最大値最小値設
定のイネーブル情報を与える、最大値最小値設定コント
ロール部と、を具備したことを特徴とする演算装置であ
シ、前記乗算器の出力は前記第2のレジスタで示される
数だけシフトした後、前記算術論理演算器に入力するこ
とによシ、積和演算時の前記算術論理演算器内でのオー
バーフローを防ぎ、捷た積和演算以外の時は前記第1の
マルチプレクサに入力される前記乗算器の出力以外のも
う1つの入力データを、前記第3のレジスタで示される
数だけシフトした後、前記算術論理演算器に入力するこ
とによシ、前記算術論理演算器でのオーバーフローが発
生することを防ぎまた、もしそれでも前記算術論理演算
器でオーバーフローが生じた時、あるいはデータをバレ
ルシフタでシフトアップすることによジオ−バーフロー
が生じた時は前記算術論理演算器の出力をオーバーフロ
ーの生じた方向によシ最大値筐たは最、J\値に設定す
ることのできるものである。
乗算器の出力を1つの入力とする2人力の第1のマルチ
プレクサと、前記第1のマルチプレクサで選ばれるデー
タを格納する第1のレジスタと、前記第1のレジスタに
格納されているデータを入力とし、これをシフトして出
力するバレルシフタと、前記バレルシフタにおけるオー
バーフローを検出するバレルシフタオーバーフロー検出
回路と、前記バレルシフタに対してそのシフト数と、シ
フト方向とを与える第2.第3のレジスタと、前記第2
.第3のレジスタの出力を入力とし、前記バレルシフタ
に接続する2人力の第2のマルチプレクサと、第4のレ
ジスタと、前記バレルシフタの出力と、前記第4のレジ
スタの出力を入力とする2人力の算術論理演算器と、前
記算術論理演算器におけるオーバーフローを検出する算
術論理演算器オーバーフロー検出回路と、前記算術論理
演算器の出力と接続し、そのデータを最大値まだは最小
値に設定する最大値最小値設定回路ト、前記バレルシフ
タオーバーフロー検出回路と、前記算術論理演算器オー
バーフロー検出回路と、前記第1のレジスタの最上位ビ
ットと他の入力とに接続し、前記最大値最小値設定回路
に、最大値か最小値かの区別の情報と、最大値最小値設
定のイネーブル情報を与える、最大値最小値設定コント
ロール部と、を具備したことを特徴とする演算装置であ
シ、前記乗算器の出力は前記第2のレジスタで示される
数だけシフトした後、前記算術論理演算器に入力するこ
とによシ、積和演算時の前記算術論理演算器内でのオー
バーフローを防ぎ、捷た積和演算以外の時は前記第1の
マルチプレクサに入力される前記乗算器の出力以外のも
う1つの入力データを、前記第3のレジスタで示される
数だけシフトした後、前記算術論理演算器に入力するこ
とによシ、前記算術論理演算器でのオーバーフローが発
生することを防ぎまた、もしそれでも前記算術論理演算
器でオーバーフローが生じた時、あるいはデータをバレ
ルシフタでシフトアップすることによジオ−バーフロー
が生じた時は前記算術論理演算器の出力をオーバーフロ
ーの生じた方向によシ最大値筐たは最、J\値に設定す
ることのできるものである。
実施例の説明
第2図は本発明の一実施例における演算装置の構成を示
す。第2図において、21は乗算器であり人力ラッチ2
2.23に与えられたnビットの2つのデータx、yの
積をめ2nビツトの出力のうち最上位ビットを除(2n
−1ビツトのデータを乗算結果として出力する。24は
I及び■の入力端子をもつマルチプレクサであシ、乗算
器21の出力データおよびそれ以外のデータのいずれか
を選択してレジスタ25に出力する。26はバレルシフ
タであり、レジスタ26のデータをシフトしてmビット
のデータとして出力する。27.28はともにレジスタ
であり、バレルシフタ26にシフト数を与える。レジス
タ27は乗算器21の出力データのバレルシフタ26に
おけるシフト数を保持している。レジスタ28はマルチ
プレクサ24のもう1方の入力データのバレルシフタ2
6におけるソフト数を保持している。29はIおよび■
の入力端子をもつマルチプレクサであシ、レジスタ27
.レジスタ28のいずれかの値をシフト数としてバレル
シフタ26に与える。マルチプレクサ29とマルチプレ
クサ24とは連動しており、同一のセレクト信号で動作
する。つ″i!シマルテプレクサ24がバレルシフタ2
6に乗算出力データをセレクトして入力した時、マルチ
プレクサ29は、そのデータのバレルシフタ26でのシ
フト数として、レジスタ27に格納してデータを与えも
また。マルチプレクサ24が他方の入力データをセレク
トした時は、マルチプレクサ29はレジスタ28に格納
しているデータをバレルシフタ26のシフト数としてセ
レクトする。3oはバレルシフタにおけるオーバーフロ
ー検出回路であり、入力データをバレルシフタ26にお
いてシフトアップすることによシ生じ得るオーバーフロ
ーを検出してその情報B Oy Fを出力する。31は
mビット幅の算術論理演算器であシ、バレルシフタ26
の出力と、レジスタ32に格納されているデータを入力
とし、算術あるいは論理演算を行う。33は算術論理演
算器31において生じ得るオーバーフローを検出してそ
の情報AovFを出力するALUオーバーフロー検出回
路である。34は算術論理演算器31の出力をmビット
の最大値o111あるいは最小値100・・・0に設定
できる最大値最小値設定回路である。35はバレルシフ
タ26におけるオーバーフロー情報BoVFと、算術論
理演10″−ジ 算器31におけるオーバーフロー情報AovFとレジス
タ25の最上位ビットの値MSBと何らかの最大値最小
値設定条件とを入力とし最大値最小値設定回路34に最
大値最小値設定のイネーブル信号と、その設定値が最大
値011・・・1であるか最小値100・・・0である
かの区別をする方向信号とを与える、最大値最小値設定
コントロール部である。最大値最小値設定コントロール
部35に入力される何らかの最大値最小値設定の条件は
例えば、命令やフラグのことを示す。また、この設定条
件はなくてもよいことは言う壕でもない。
す。第2図において、21は乗算器であり人力ラッチ2
2.23に与えられたnビットの2つのデータx、yの
積をめ2nビツトの出力のうち最上位ビットを除(2n
−1ビツトのデータを乗算結果として出力する。24は
I及び■の入力端子をもつマルチプレクサであシ、乗算
器21の出力データおよびそれ以外のデータのいずれか
を選択してレジスタ25に出力する。26はバレルシフ
タであり、レジスタ26のデータをシフトしてmビット
のデータとして出力する。27.28はともにレジスタ
であり、バレルシフタ26にシフト数を与える。レジス
タ27は乗算器21の出力データのバレルシフタ26に
おけるシフト数を保持している。レジスタ28はマルチ
プレクサ24のもう1方の入力データのバレルシフタ2
6におけるソフト数を保持している。29はIおよび■
の入力端子をもつマルチプレクサであシ、レジスタ27
.レジスタ28のいずれかの値をシフト数としてバレル
シフタ26に与える。マルチプレクサ29とマルチプレ
クサ24とは連動しており、同一のセレクト信号で動作
する。つ″i!シマルテプレクサ24がバレルシフタ2
6に乗算出力データをセレクトして入力した時、マルチ
プレクサ29は、そのデータのバレルシフタ26でのシ
フト数として、レジスタ27に格納してデータを与えも
また。マルチプレクサ24が他方の入力データをセレク
トした時は、マルチプレクサ29はレジスタ28に格納
しているデータをバレルシフタ26のシフト数としてセ
レクトする。3oはバレルシフタにおけるオーバーフロ
ー検出回路であり、入力データをバレルシフタ26にお
いてシフトアップすることによシ生じ得るオーバーフロ
ーを検出してその情報B Oy Fを出力する。31は
mビット幅の算術論理演算器であシ、バレルシフタ26
の出力と、レジスタ32に格納されているデータを入力
とし、算術あるいは論理演算を行う。33は算術論理演
算器31において生じ得るオーバーフローを検出してそ
の情報AovFを出力するALUオーバーフロー検出回
路である。34は算術論理演算器31の出力をmビット
の最大値o111あるいは最小値100・・・0に設定
できる最大値最小値設定回路である。35はバレルシフ
タ26におけるオーバーフロー情報BoVFと、算術論
理演10″−ジ 算器31におけるオーバーフロー情報AovFとレジス
タ25の最上位ビットの値MSBと何らかの最大値最小
値設定条件とを入力とし最大値最小値設定回路34に最
大値最小値設定のイネーブル信号と、その設定値が最大
値011・・・1であるか最小値100・・・0である
かの区別をする方向信号とを与える、最大値最小値設定
コントロール部である。最大値最小値設定コントロール
部35に入力される何らかの最大値最小値設定の条件は
例えば、命令やフラグのことを示す。また、この設定条
件はなくてもよいことは言う壕でもない。
以上の様に構成された本実施例の演算装置について以下
その動作を説明する。
その動作を説明する。
まず積和演算時の動作について説明する。積和演算時に
はマルチプレクサ24.29の出力にはセレクト信号に
よりIの入力端子がセレクトされる。nビットの入力デ
ータ系列”mV’は、それぞれ人力ラッチ22.23で
ラッチされた後、乗算器21で乗算され2n−1ビア)
のデータxi7iとしてマルチプレクサ24.レジスタ
25を通りバレルシフタ26に入力される。あらかじめ
レジスタ27で、バレルシフタ26の値を右にlビット
シフトする事を指示しておくと、バレルシフタに入力さ
れたデータは、第3図で示すように少なくとも上位1+
1ビツトは符号であるmビットのデータに変換された後
、算術論理演算器31でレジスタ32の値に足される。
はマルチプレクサ24.29の出力にはセレクト信号に
よりIの入力端子がセレクトされる。nビットの入力デ
ータ系列”mV’は、それぞれ人力ラッチ22.23で
ラッチされた後、乗算器21で乗算され2n−1ビア)
のデータxi7iとしてマルチプレクサ24.レジスタ
25を通りバレルシフタ26に入力される。あらかじめ
レジスタ27で、バレルシフタ26の値を右にlビット
シフトする事を指示しておくと、バレルシフタに入力さ
れたデータは、第3図で示すように少なくとも上位1+
1ビツトは符号であるmビットのデータに変換された後
、算術論理演算器31でレジスタ32の値に足される。
第3図でSは符号ビットを示している。ALUオーバー
フロー検出回路33では算術論理演算器31におけるm
−1ビツト目とm −2ビツト目の桁上りの排他的論
理和をとシ、これを算術論理演算器31のオーバーフロ
ー情報Aoy Fとして出力する。つまり算術論理演算
器で加算の結果がオーバーフローするとAoVFが1と
なる。算術論理演算器31で加算されたデータは、最大
値最小値設定回路34に入力される。
フロー検出回路33では算術論理演算器31におけるm
−1ビツト目とm −2ビツト目の桁上りの排他的論
理和をとシ、これを算術論理演算器31のオーバーフロ
ー情報Aoy Fとして出力する。つまり算術論理演算
器で加算の結果がオーバーフローするとAoVFが1と
なる。算術論理演算器31で加算されたデータは、最大
値最小値設定回路34に入力される。
ここにおいて最大値最小値設定コントロール部35を最
大値最小値設定モードにしておけばもし上記加算の結果
がオーバーフローしてAov Fが1であった場合、そ
のオーバーフローした方向に応じて、最大値あるいは最
小値を設定する。レジスタ32の値を演算開始時にクリ
アしておき、その後は最大値最小値設定回路34の出力
結果に更新していけばオーバーフローの生じにくい形で
積和演算を行うことができる。そしてもし積和演算時に
算術論理演算器31でオーバーフローが生じなかったら
、最終的に2−LXxly工が得られる。っ捷シ、入β
。
大値最小値設定モードにしておけばもし上記加算の結果
がオーバーフローしてAov Fが1であった場合、そ
のオーバーフローした方向に応じて、最大値あるいは最
小値を設定する。レジスタ32の値を演算開始時にクリ
アしておき、その後は最大値最小値設定回路34の出力
結果に更新していけばオーバーフローの生じにくい形で
積和演算を行うことができる。そしてもし積和演算時に
算術論理演算器31でオーバーフローが生じなかったら
、最終的に2−LXxly工が得られる。っ捷シ、入β
。
力系列X□、y0をあらかじめ右にヲヒノトづつシフト
してから積和演算を行いオーバーフローの発生を防ぐ従
来の方法と同様のことを入力系列X1゜y、をあらかじ
め右にシフトすることなしに実現している。まだ有効ビ
ットnビットのデータx、。
してから積和演算を行いオーバーフローの発生を防ぐ従
来の方法と同様のことを入力系列X1゜y、をあらかじ
め右にシフトすることなしに実現している。まだ有効ビ
ットnビットのデータx、。
べて、乗算結果の誤差は小さい。例えば、とする。ここ
で” ] l (沖0−n−1)は1又は0の値をとる
。
で” ] l (沖0−n−1)は1又は0の値をとる
。
・・・ (1)
−・・・・ (3)
となる。このデータの上位2n−7ビノトの値(5)と
(1)ノfK 17) 差’U (2) 、 (3)
、←)の値を足したことによる桁上がりによシ最大、上
位がらn−1ビツト目に1がたつ値となる。よって、乗
算後のデータ(5)を右にlビットシフトして得られた
データ(5)′と、あとなる。なお(1)tj:(1)
を右に4ビツトシフトした値である邑第4図における(
1) I (2) 、伸) 、 (4) 、β) 、
(1)’。
(1)ノfK 17) 差’U (2) 、 (3)
、←)の値を足したことによる桁上がりによシ最大、上
位がらn−1ビツト目に1がたつ値となる。よって、乗
算後のデータ(5)を右にlビットシフトして得られた
データ(5)′と、あとなる。なお(1)tj:(1)
を右に4ビツトシフトした値である邑第4図における(
1) I (2) 、伸) 、 (4) 、β) 、
(1)’。
(5)′は上記の値(1) 、 (2) 、 (3)
、 (4) 、 (5) 、 (IY、(5Yに和尚す
る。捷だ8つ、・・・・・・、S5はそれぞれ符号ビッ
トを示し、S2.S3.S4については加算を行なうた
め符号延長を行なっている。
、 (4) 、 (5) 、 (IY、(5Yに和尚す
る。捷だ8つ、・・・・・・、S5はそれぞれ符号ビッ
トを示し、S2.S3.S4については加算を行なうた
め符号延長を行なっている。
一方、もし算術論理演算器31でオーバーフローが生じ
た時は、その時点で最大値又は最小値を設定してレジス
タ32に代入する。っまシ、負の値に負の値を足してオ
ーバーフローした時はmビットの最小値100・・・0
を、正の値に正の値を足してオーバーフローした時はm
ビットの最大値011・・・1を設定する。この操作に
より、積和演算の途中でもしオーバーフローしても、そ
のデータを最大値又は最小値で近似し誤差の/JSさい
値を結果として出力することができる。
た時は、その時点で最大値又は最小値を設定してレジス
タ32に代入する。っまシ、負の値に負の値を足してオ
ーバーフローした時はmビットの最小値100・・・0
を、正の値に正の値を足してオーバーフローした時はm
ビットの最大値011・・・1を設定する。この操作に
より、積和演算の途中でもしオーバーフローしても、そ
のデータを最大値又は最小値で近似し誤差の/JSさい
値を結果として出力することができる。
次に、積和演算以外の時の動作について説明する。この
時のマルチプレクサ24.27の出力としては、セレク
ト信号によシ入力端子■がセレクトされる。つまり、マ
ルチプレクサ24への入力データ■は、レジスタ25を
通りバレルシフタ26によりレジスタ28の示すシフト
数だけシフトされる。そこで例えば、レジスタ32をあ
らかじめクリアしておき、バレルシフタ28の出力と算
術論理演算器31で、論理和をとると、出力結果として
単純なシフト演算を実現することができる。
時のマルチプレクサ24.27の出力としては、セレク
ト信号によシ入力端子■がセレクトされる。つまり、マ
ルチプレクサ24への入力データ■は、レジスタ25を
通りバレルシフタ26によりレジスタ28の示すシフト
数だけシフトされる。そこで例えば、レジスタ32をあ
らかじめクリアしておき、バレルシフタ28の出力と算
術論理演算器31で、論理和をとると、出力結果として
単純なシフト演算を実現することができる。
ここで、レジスタ28でバレルジッタのシフトアップを
指示し、データがオーバーフローした時は、最大値最小
値設定モードにすることにより、算術論理回路31の出
力である単純シフトの結果をその入力データ■の符号に
より最大値又は最小値に設定できる。また、和ΣX、を
めるには、マルチプレクサ24の入力端子nから入力系
列X工を入力し、算術論理演算器26で加算を行いその
出力をレジスタ3?に与えることにより実現できる。
指示し、データがオーバーフローした時は、最大値最小
値設定モードにすることにより、算術論理回路31の出
力である単純シフトの結果をその入力データ■の符号に
より最大値又は最小値に設定できる。また、和ΣX、を
めるには、マルチプレクサ24の入力端子nから入力系
列X工を入力し、算術論理演算器26で加算を行いその
出力をレジスタ3?に与えることにより実現できる。
そしてこの場合も入力データx0をまずレジスタ28の
示す数だけ、バレルシフタ26で右にシフトしてから加
算することにより、先にのべた積和演算の時と同様に、
オーバーフローの発生を防ぐことができる。又、もしオ
ーバーフローが途中で生じても、そのデータを最大値又
は最小値で近似し、誤差の少ない形で結果を出力するこ
とができる。
示す数だけ、バレルシフタ26で右にシフトしてから加
算することにより、先にのべた積和演算の時と同様に、
オーバーフローの発生を防ぐことができる。又、もしオ
ーバーフローが途中で生じても、そのデータを最大値又
は最小値で近似し、誤差の少ない形で結果を出力するこ
とができる。
発明の効果
本発明の演算装置は乗算器と2つのレジスタの値のいず
れかでシフトするバレルシフタと、x猜論理演算器と最
大値最l」・値設定回路とそのコントロール部等から構
成され、積和演算時には、前記乗算器の出力を、一方の
レジスタの値によυバレルシフタで右シフトした後、前
記算術論理演算器で足しこんで行くことによりオーバー
フローを防ぐことができる。それでもオーバーフローが
生じた時は、最大値最小値設定回路で値を最大値又は最
小値に設定することができ、ソフトウェアでオーバーフ
ローの有無とチェックすることなく誤差の小さい形で演
算結果を出力することができる。
れかでシフトするバレルシフタと、x猜論理演算器と最
大値最l」・値設定回路とそのコントロール部等から構
成され、積和演算時には、前記乗算器の出力を、一方の
レジスタの値によυバレルシフタで右シフトした後、前
記算術論理演算器で足しこんで行くことによりオーバー
フローを防ぐことができる。それでもオーバーフローが
生じた時は、最大値最小値設定回路で値を最大値又は最
小値に設定することができ、ソフトウェアでオーバーフ
ローの有無とチェックすることなく誤差の小さい形で演
算結果を出力することができる。
又、乗算結果に対して右シフトを行うため、従来のよう
な被乗数をあらかじめ右シフトしておく方法に比べてシ
フトに要するオーバーヘッドもなく、乗算結果の誤差も
小さくなる。
な被乗数をあらかじめ右シフトしておく方法に比べてシ
フトに要するオーバーヘッドもなく、乗算結果の誤差も
小さくなる。
累積加算7行う時は、入力系列データを、バレルシフタ
におきもう一方のレジスタの与えるシフト数だけ右シフ
トした後、前記算術論理演算器で加算することによりオ
ーバー70−を防いで結果かえられる。それでもオーバ
ーフローが生じた時は、最大値最小値設定回路で値を最
大値または最小値に設定することができ、誤差の小さい
形で演算結果を出力することができる。また前記バレル
シフタの機能だけを用い、単純シフト演算も可能であシ
この場合もバレルシフタにおいてオーバーフローが生じ
た時は、出力を最大値又は最小値に設定でき、ディジタ
ル信号処理用の演算装置として本発明の実用的効果は太
きい。
におきもう一方のレジスタの与えるシフト数だけ右シフ
トした後、前記算術論理演算器で加算することによりオ
ーバー70−を防いで結果かえられる。それでもオーバ
ーフローが生じた時は、最大値最小値設定回路で値を最
大値または最小値に設定することができ、誤差の小さい
形で演算結果を出力することができる。また前記バレル
シフタの機能だけを用い、単純シフト演算も可能であシ
この場合もバレルシフタにおいてオーバーフローが生じ
た時は、出力を最大値又は最小値に設定でき、ディジタ
ル信号処理用の演算装置として本発明の実用的効果は太
きい。
第1図は従来の演算装置のブロック図、第2図は本発明
の一実施例における演算装置のブロック図、第3図は本
発明の一実施例における乗算器の出力とバレルシフタの
出力の関係図、第4図は入力データをあらかじめシフト
ダウンする従来の方法と乗算結果をシフトする方法の間
の誤差を示す説明図である。 21・・乗算器、24.29・・・−・マルチプレクサ
、26・・・・バレルシフタ、31・・・・・・算術論
理演算器、34・・・・・・最大値最小値設定回路、3
5・・・・・・最大値最小値設定コントロール部。 代理人の氏名 弁理士 中 尾 敏 男 ほか1名第3
図 崇ヒ・ノド 第4図 (4) Sa 54−−−−−−−一−−−−−s4°
54(5)[テi[■二]−ト = i「団霞
の一実施例における演算装置のブロック図、第3図は本
発明の一実施例における乗算器の出力とバレルシフタの
出力の関係図、第4図は入力データをあらかじめシフト
ダウンする従来の方法と乗算結果をシフトする方法の間
の誤差を示す説明図である。 21・・乗算器、24.29・・・−・マルチプレクサ
、26・・・・バレルシフタ、31・・・・・・算術論
理演算器、34・・・・・・最大値最小値設定回路、3
5・・・・・・最大値最小値設定コントロール部。 代理人の氏名 弁理士 中 尾 敏 男 ほか1名第3
図 崇ヒ・ノド 第4図 (4) Sa 54−−−−−−−一−−−−−s4°
54(5)[テi[■二]−ト = i「団霞
Claims (1)
- 2つの入力データの積をめる乗算器と、前記乗算器の入
力データを格納する第1.第2のレジスタと、前記乗算
器の出力を1つの入力とする2人力の第1のマルチプレ
クサと、前記第1のマルチプレクサで選ばれるデータを
格納する第3のレジスタと、前記第3のレジスタに格納
されているデータを入力とし、これをシフトして出力す
るバレルシフタト、前記バレルシフタにおけるオーバー
フローラ検出するバレルシフタオーバーフロー検出回路
と、前記バレルシフタに対してそのシフト数と、シフト
方向とを与える第4.第5のレジスタと、前記第4.第
5のレジスタの出力を入力トシ、前記バレルシフタに接
続する2人力の第2のマルチプレクサと、第6のレジス
タと、前記バレルシフタの出力と、前記第6のレジスタ
の出力を入力とする2人力の算術論理演算器と、前記算
術論理演算器におけるオーバーフローを検出する算術論
理演算器オーバーフロー検出回路と、前記算術論理演算
器の出力と接続し、そのデータを最大値または最小値に
設定する最大値最小値設定回路と、前記バレルシフタオ
ーバーフロー検出回路と、前記算術論理演算器オーバー
フロー検出回路と、前記第3のレジスタの最上位ビット
と他の入力とに接続し、前記最大値最小値設定回路に、
最大値か最小値かの区別の情報と、最大値最小値設定の
イネーブル情報を与える、最大値最小値設定コントロー
ル部とを具備したことを特徴とする演算装置。
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 true JPS60247781A (ja) | 1985-12-07 |
| JPH0427587B2 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) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6211933A (ja) * | 1985-07-09 | 1987-01-20 | Nec Corp | 演算回路 |
| US5528525A (en) * | 1992-10-16 | 1996-06-18 | Matsushita Electric Industrial Co., Ltd. | Processor for determining shift counts based on input data |
-
1984
- 1984-05-23 JP JP59105053A patent/JPS60247781A/ja active Granted
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6211933A (ja) * | 1985-07-09 | 1987-01-20 | Nec Corp | 演算回路 |
| US5528525A (en) * | 1992-10-16 | 1996-06-18 | Matsushita Electric Industrial Co., Ltd. | Processor for determining shift counts based on input data |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0427587B2 (ja) | 1992-05-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH05216624A (ja) | 演算装置 | |
| US5375078A (en) | Arithmetic unit for performing XY+B operation | |
| JPS584369B2 (ja) | デイジツトの有効性追跡装置 | |
| US4823300A (en) | Performing binary multiplication using minimal path algorithm | |
| US4873660A (en) | Arithmetic processor using redundant signed digit arithmetic | |
| EP0543024A1 (en) | Divider | |
| US4719590A (en) | Apparatus and method for performing addition and subtraction | |
| JPS6027024A (ja) | 演算装置 | |
| US7003540B2 (en) | Floating point multiplier for delimited operands | |
| US3462589A (en) | Parallel digital arithmetic unit utilizing a signed-digit format | |
| JPH0427587B2 (ja) | ||
| JP2856792B2 (ja) | 浮動小数点数演算装置 | |
| JP3187402B2 (ja) | 浮動小数点データ加減算回路 | |
| JPH0253819B2 (ja) | ||
| KR0176883B1 (ko) | 복소수 승산기 | |
| JP2931632B2 (ja) | 桁移動装置及び浮動小数点演算装置 | |
| JPH0251732A (ja) | 浮動小数点演算器 | |
| JP2608090B2 (ja) | 高基数非回復型除算装置 | |
| JP3100868B2 (ja) | 浮動小数点数のための算術演算装置 | |
| Natarajan | Arithmetic Operations and Circuits | |
| JPH0361224B2 (ja) | ||
| Frangakis | Serial negabinary adder-subtractor and multiplier | |
| JPH04160533A (ja) | マイクロ・プロセッサ | |
| JPH0814790B2 (ja) | 演算処理装置 | |
| JPS6149234A (ja) | 浮動小数点乗算回路 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |