JPS6211933A - 演算回路 - Google Patents

演算回路

Info

Publication number
JPS6211933A
JPS6211933A JP60152019A JP15201985A JPS6211933A JP S6211933 A JPS6211933 A JP S6211933A JP 60152019 A JP60152019 A JP 60152019A JP 15201985 A JP15201985 A JP 15201985A JP S6211933 A JPS6211933 A JP S6211933A
Authority
JP
Japan
Prior art keywords
overflow
output
register
bits
terminal
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.)
Pending
Application number
JP60152019A
Other languages
English (en)
Inventor
Takao Nishitani
隆夫 西谷
Ichiro Kuroda
黒田 一朗
Hideo Tanaka
秀夫 田中
Kyosuke Sugishita
杉下 恭輔
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP60152019A priority Critical patent/JPS6211933A/ja
Priority to EP86109291A priority patent/EP0209049B1/en
Priority to DE86109291T priority patent/DE3689390D1/de
Priority to US06/883,703 priority patent/US4817047A/en
Publication of JPS6211933A publication Critical patent/JPS6211933A/ja
Pending 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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • 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)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はテ゛イジタル信号処理用演算回路、特に固定小
数点演算を行なうシグナルプロセッザの演算回路に関す
る。
(従来技術とその問題点) ディジタル信号処理の利点はアナログ技術では実現でき
ない様な高精度もしくは高安定性の保証されたフィルタ
や変復調装置が実現できること、さらに、アナログ信号
処理では考えられなかった時変適応フィルタ等が容易に
実現できることなどが挙げられる。さらに詳しいディジ
タル信号処理の利点等については電子通信学会誌198
2年12月号の1280頁より1284頁を参照された
い。
この様に多くの利点を有するディジタル信号処理も、ハ
ードウェアサイズ及び消費電力の点てはアナログ技術に
劣ることが多く、ディジタル信号処理が実用に供される
様になって来たのは、急速に発展して来たディジタルL
SI回路が利用できる様になったごく最近のことであり
、特にシグナルプロセッサと呼ばれるディジタル信号処
理用マイクロプロセッサが出現して来てからである。
この様なシグナルプロセッサ、ハードウェア規模を小さ
くしつつ、アナログ回路で実現する微分、積分演算をデ
ィジタル領域で実現せねばならないために高速算術演算
能力が要求され、いわゆる汎用コンピュータや汎用マイ
クロプロセッサとは異なった発展を遂げている。詳しく
は情報処理学会誌昭和58年7月号の862頁より86
9頁に譲り、以下現状のシグナルプロセッサの特徴につ
いて述べる。
シグナルプロセッサでは高速算術演算能力を小さなハー
ドウェアで実現するために、数値表現は原則として固定
小数点表示で、かつ2の補数表現を用いることが多い。
また、シグナルプロセッサで扱う対象はA/D変換され
たアナログ信号であり、A/D変換器の許容最大振幅を
基準にしてディジタル表現を表わすのが便利であるため
最大振幅値を1゜0とする。つまり、2の補数表現で固
定小数点の位置を示すと、最上位ビットと次のビットの
間に固定小数点を置き、−1から+1までの数値として
扱う。
この様な形式を用いる場合の乗算回路の入出力形式とし
てはアイイーイーイージャーナルオブソリッドステート
サーキッツ(IEEE Journal of 5ol
idState C1rcuits)第5C−16巻4
号(1981年8月)の372頁より376頁に掲載さ
れたシグナルプロセッサの第2図に示した様に、Nビッ
ト2の補数表現固定小数点データ間の積は2N−1ビツ
トで得られ、固定小数点位置は依然として最上位ビット
と次のビット間にある形式を用いるのが一般的である。
このため、乗算器出力は信号データと同じ形式になる様
に上位Nビットを取り出せば、信号のダイナミック・レ
ンジを一定に保てる。
一方、FIRフィルタ等の演算では、時刻jの入力信号
、出力信号を各々xj+ yjとすると、y=Σαx(
1) J1’=QIJ−1 という演算が行なわれる。係数(a、)はフィルタの特
性を決定するものであり、XJが−1がら+1の範囲で
あれば平均的にyも−1から+1の範囲内の値となる様
に係数は定められる。しかしながら、係数a、の値は必
ずしも−1から+1の範囲に限られる訳ではなく、この
ためy、の計算途中結果では−1がら+1の範囲に納ま
らないこともしばしばである。
従来の方法でこの様なFIRフィルタを実現する方法で
は、係数(ai)を−1がち+1まての乗算器に入力で
きる範囲の値とするため、係数(al)の各々に係数の
総体値の最大値より大きい2の巾乗数を選んで、この値
で割り算を行なった係数(凧)を用いる。
つまり、 b、=a2−”      (2) とし、式(1)は次の様にして求める y=Σa、x J、、IJ−1 =2k・Σ(a、2−k)x two   ’−’ =2にΣbズ   (3) r=olJ−1 式(3)より、bよとXJ−rを乗算し、累算した後2
に倍することでyを求めていた。固定小数点演算で式(
3)を実」 現するとす、及び)−4はいずれも−1より+1までの
値であるからb円、、−、は−1より+1までの値とな
り、前述した固定乗算器が利用できる。しかし、biX
j−4をN項加算する場合、計算の途中結果及び計算結
果は=1から+1までの範囲にはない可能性がある。し
かし、この場合でも、単精度加算器を用いているシグナ
ルプロセッサなどでは加算毎にオーバーフローが発生し
た時に最大値に置換えするハードウェアを設けるか、こ
の様なオーバーフローの発生は無視し、計算ノイズとし
て扱うことが常であった。
また、FIRフィルタを実現している限りは、この様な
オーバーフローはシステムを不安定にすることはないが
、IIRフィルタの様に演算結果をフィードバックして
用いるシステムではオーバーフローの問題はシステムの
不安定にもつながり、演算速度を犠牲にしてでもオーバ
ーフロー発生時には値を最大値に置換えする必要がある
以上の様に従来技術による演算方式では計算の途中結果
のオーバーフローを無視するか、1加算のオーバーフロ
ー発生毎に最大値に置換していたため、計算途中結果の
数値の取りうる範囲を充分大きくしてオーバーフローが
発生しないようにした場合には出力信号yは正規の−1
より+1の範囲の数】 値になる様な場合でも、小規模な回路で実現しようとす
るとオーバーフローの無視、あるいはオーバーフローし
た数値の最大値での修正が多発し、出力値yは大きな誤
差を含んでいることもしばしばであった (発明の目的) 本発明の目的は出力値y、a計算精度を向上させうるシ
グナルプロセッサ用演算回路を提供することにある。
(発明の構成) 2組の単精度ビット数のデータを入力とし倍精度ビット
数の積を出力する。固定小数点乗算器と、前記固定小数
点乗算器出力と後述する倍精度ビット数の数値を蓄える
レジスタのいずれが一方を選択する選択回路と、前記選
択回路の出力に複数ビットシフトを行なえる倍精度ビッ
ト数のバレルシフタと、前記バレルシフタの出力と後述
する倍精度ビットの数値を蓄えるレジスタの内容に対し
算術論理演算を行なう倍精度ビット数のALUと、前記
ALUもしくは前記バレルシフタにおいて出力がオーバ
ーフローを発生しているか否かを検出するオーバーフロ
ー検出回路と、前記オーバーフロー検出回路により制御
され、オーバーフロー検出時には前記ALU出力をオー
バーフロー方向の最大値に置換えするオーバーフロー訂
正器と、前記オーバーフロー訂正器出力を蓄える倍精度
ビット数のレジスタと、前記レジスタの少くとも上位単
精度ビット数のデータを出力する端子とから少くとも構
成される。
(本発明の原理) 本発明の原理は固定小数点乗算器出力が倍精度ビット長
であること、よって、倍精度ビット長乗算結果を小数点
位置とともに下位方向にビットシフトしても、シフトし
た結果をシフト前のビット数で表現しても、ビットシフ
トにより切り捨てられるデータによって倍精度ビット長
で表現されたデータに対しては精度不足を起こさないこ
と、小数点位置を下位ビット方向に移動させたため、累
算時のダイナミックルンジは−1より+1という従来の
範囲より大幅に拡大されること、累算結果は平均的に−
lから+1の従来の範囲にあるから小数点とともに上位
方向にビットシフトすることにより、正確な値を得る様
にした点にある。以下、これを詳しく説明する。
いま、式(1)を計算するにあたり、a、およびX、が
各々Nビットで以下の様に2の補数表現されていたとす
る。
つまり、a、は−2により2kまでの範囲の値を取り得
るが、ろはこれまでにも述べて来た様に−1より+1ま
での範囲であったとする。この時代(1)の積の項z、
はと表現できる。つまり、−沙より2kまでの範囲の値
a1に−1より+1までの範囲の値)を乗すると−2に
より2kまでの範囲の値となり、がっ、Nビット数同志
の積であるから、積は2N−1ビツトとなる。式(1)
ではこの項をM項累算する必要があり、ダイナミックレ
ンジは最大1og2Mビット拡大する可能性があるから
、log2Mより大きい最小の整数をLとおいて、小数
点位置を含めて式(5)で与えられる数値をLビット下
位方向にづらせる。つまり、この様にLビットz1を下
位方向にづらせた2N−1ビツトのデータz、*は上位
Lビットは極性符号ビット(zo’)と一致しとなり下
位Lピッ1〜分の誤差を生づる。
式(1)の計算はこのz1*をM項加算すれば良く、と
なる。ここでyは平均的に−1より+1の範囲の数値と
なっているはずであるから、多くの場合元梠2゛°゛包
+L(8) となっており、」二値に、+L−1ビットを省略しても
2の補数表現としては同じ値を与える。よって(7)で
示される2N−1ビットデ゛−夕を上位方向にk + 
L−1ビットシフトt7、シフトあふれした後のデータ
から−に1位Nビットを取り出せばX、と同様−1より
+1までのダイナミックレンジを有するy、が得られる
ことになる。もし、(8)式が成立していない時は求め
られたyは−1より+1までの範囲になく、よって正規
のyは求められないから、この場合」 はオーバーフローとして正もしくは負の最大値にy。の
値をするとよい。オーバーフローが検出されている場合
2N−1ビツト表現された式(7)はオーバーフローに
y、の値を設定する場合はy。Jを見れば長く、y、J
 = Qの時は正のオーバーフロー、yoj = 1の
時は負のオーバーフローとすれば良い。
この様な計算を行なうと出力信号yに誤差が加わ」 る可能性は式(5)より式(6)へ移す時の2N−1ビ
ツト表現された信号の下位Lビット分がM回加算されて
発生する誤差もしくはオーバーフローによる誤差のみで
ある。上記下位Lビット分がM回(Lビット相当)加算
されて発生する誤差は式(5)と同じ表現で評価すると
2Lビット分であり、y、を出力するにあたりk + 
L−1ビツト上位方向にシフトすることを考慮しても高
々に+3L−1ビツト分である。また、yの出力として
Nビットに丸めるため丸めによる切り捨てビットN−1
がこのに+3L−1より犬の時、つまり、N−4>k+
3L−1(9) であれば、上記の計算途中結果のためにダイナミック・
レンジを拡大するために発生する丸め誤差は事実上表わ
れて来ないことになる。
以上の説明では式(1)を計算するときにM項加算では
最大Lビット分のダイナミック・レンジの拡大があり、
この最大ダイナミック・レンジの発生時にも充分対処す
る様にしたが、もともと出力信号yの取りうる値の範囲
は−1より+1に定まっているため、累算時にはLビッ
トより小さいL′ ビット分だけダイナミックルンジを
拡大しておき、累算時にもオーバーフローは発生ずる可
能性はあるものの、従来方式よりはオーバーフローの発
生を小さくすることも可能である。この様にすることに
より、累算前の式(6)の値の精度を向上でき、累算時
のオーバーフローの発生がない時はy、を精度よく計算
できる。このため、累算器へ入力する前のシフト量を可
変にし、個々の応用毎に変えられることが望ましい。
(実施例) 次に本発明の1実施例を図面を参照しながら説明する。
第1図は乗数入力端子1゜、被乗数入力端子2、レジス
タ3,4,11、乗算器5、選択回路6、バレルシフタ
7、算術論理ユニッ) (ALU)8、オーバーフロー
検小器9、オーバーフロー訂正器10、シフト量制御端
子12、選択信号入力端子13、出力端子14より構成
される。ここでレジスタ3,4.11は1985年テキ
サスインスツルメンツ社発行の1ザバイポーラデイジタ
ルインテダレイテイドサーキツツデータブツク(The
 Bipolar Digital Integrat
ed  C1rcuits DataBook) Jの
7−234頁から7−239頁に、またALU8は同文
献の7−252頁から7−262頁に記載されたICが
利用でき選択回路6は同文献の7−1.62頁より7−
166頁に記載のICが利用できる。乗算器5は198
4年TRW社発行のデバイス・カタログTMC2110
に記載されたものが利用できる。バレルシフタ7は19
77年AMD社発行の[ショットキーアンドローパワー
ショットキーデータブックインクルーディングディジタ
ルシグナルプロセッシングハンドブック(Schott
ky andLow−power’ 5chottky
 Data Book lucluding Digj
talSignal Processing Hand
book) Jの4−37頁から4−46頁記載のIC
が利用できる。オーバーフロー検出器9およびオーバー
フロー訂正器10の細評については後述する。
いま式(1)の計算のためにレジスタ11は0にクリヤ
されていてるものとし、aoが端子1がらろが端子2が
ら入力されているとし、aO+XJの各々は式(4)で
与えられる通りであるとする。端子1及び端子2に各々
加えられたa、およびジはレジスタ3及びレジスタ4へ
格納される。乗算器5はレジスタ3及びレジスタ4の内
容の積を2N−1ビツトとして式(5)の様に与える。
選択回路6は端子13より通常は乗算器5の出力をバレ
ルシフタ7に伝える。バレルシフタ7ではlog2Mを
包含する整数りだけ下位方向にシフトすべく端子12よ
り+Ll”が入力されている。このため、乗算器5の出
力で2N−1ビツトのデータは選択回路6を介しさらに
バレルシフタ7によりLビット下位方向にシフトされや
はり2N−1ビツトで表現される式(6)で与えられる
zfが得られる。この場合下位方向シフトのためバレル
シフタでのオーバーフローは発生しない。2N−1ビツ
ト長のALU8ではバレルシフタ7の出力2□本とレジ
スタ12の内容、この場合はゼロと加算され、z、*が
出力される。当然オーバーフローは発生しない。ALU
8でもシフタ7でもオーバーフ・>− ローは発生しないため、オーバーフロー検出器9はオー
バーフロー否発生をオーバーフロー訂正器10に伝え、
このため、ALU8の出力zi*はそのままオーバーフ
ロー訂正器11の出力となる。コノ2N−1ビツトの出
力ちはレジスタ11に蓄えることにより式(1)の第1
項計算a。Xjが終了する。
次に端子1及び2にはalXj−1が加えられレジスタ
3及び4にF3.1.X4−□が蓄えられる。乗算器5
はalxj−1を式(5)の形式で与え、この結果は選
択回路6を介し、さらに、バレルシフタ7により下位方
向にLビットシフトする。ALU8ではレジスタ11に
蓄えられたaoxjとバレルシフタ7の出力であるal
xi−、が加算される。この加算においても、バレルシ
フタ6で2N−1ビツトの乗算器出力をLビット下方シ
フトしたためオーバーフローは発生しない。ALU8も
バレルシフタ7もオーバーフローを起こさないため、オ
ーバーフロー検出器9はオーバーフロー否発生を ′オ
ーバーフロー訂正器10に伝えるため今回もオーバーフ
ロー訂正器10はALU8の出力をレジスタ11へ伝え
るだけであり、このため、レジスタ11は一\ aoXj+a1xj−□の計算値を保持する。以下M−
1回目までは2回目と同じ動作のくり返しである。
次に式(1)を計算するためのM回目の動作を説明する
。端子1及び2にはそれぞれaM h XJ−ヤが入力
され、レジスタ3およびレジスタ4にそれぞれ格納され
る。レジスタ3およびレジスタ4の出力は乗算器5へ入
力され、aMX3−Mが式(5)の形式で出力される。
このaMxj−やは選択回路6を通りバレルシフタフに
よりLビット下方シフトされた後、ALU8でレジスタ
11内の と加算される。この場合もバレルシフタ7により乗算結
果aMXj−8をLビット下方ビットシフトしているた
め、ALU8でのオーバーフローは発生しない。この場
合にもバレルシフタ7もALU8もオーバーフローを発
生しないため、オーバーフロー検出器はオーバーフロー
否発生をオーバーフロー訂正器10に伝えるため、今回
もオーバーフロー訂正器10はALUの出力をレジスタ
11に伝える。この結果レジスター1にはMSB(最上
位ビット)から計算してに+Lビット目とに+L+1ビ
ット目の間に小数点位置がある式(6)の形式で Σα; 1、。′J−” が格納される。
このレジスター1に格納されたy、の値を、ダイナミッ
クレンジで−1より+1までの範囲の数とするため、次
のステップとしては選択回路端子13より選択回路6は
レジスター1の内容を出力する様に制御し、また、バレ
ルシフタ7のシフト量入力端子12には(k + L)
を入力する。
まずレジスター1に格納された式(6)の形式の数値は
選択回路6を介してバレルシフタ7へ伝えられる。バレ
ルシフタ7ではに+Lビット上位方向シフトが起こされ
るため、選択回路6の出力y、の上位ピットが式(8)
を満たすか否かによりオーバーフローを起すか起こさな
いかが決まる。バレルシフタ7の出力はオーバーフロー
が起きても起こらなくてもALU8に入力される。AL
U8では、この場合ALU8のバレルシフタ7からの入
力をそのまま出力へ伝えるだけである。以下、バレルシ
フタ7においてオーバーフローを起こさない場合から説
明する。
オーバーフローをバレルシフタ7で起こさない条件は式
(8)が満足されていることである。式(8)が満足し
ているとオーバーフロー検出器9はノずレルシフタ7も
ALU8もオーバーフローを起してl/)なし)ため、
オーバーフロー否発生をオーバーフロー訂正器10に伝
え、オーバーフロー訂正器10はALU8の出力である
(k + L)ビット上位方向にシフトされたyjをレ
ジスター1に伝える。レジスター1の上位Nビ・ソトが
出力端子14に伝えられ、−1から+1までの範囲の値
を持った式(4)の と同じ形式のNビット出力y、が
J 端子14に得られる。
一方、バレルシフタがオーバーフローとなった時を考え
る。このとき、式(8)は満足しておらず、バレルシフ
タ出力は正しいy、を与えていなり)。この場合、オー
バーフロー検出器9はオーバーフロー発生及びオーバー
フローの発生方向(正または負)を5と・ )(夕 一ズ19) オーバーフロー訂正器10に伝え、オーバーフロー訂正
器10はALU8の出力の代りに正または負の最大値で
ある式(4)の町と同じ形式の+1または−1に最も近
い値をレジスタ11へ伝える。このため、レジスタ11
の上位Nビットを出力とする出力端子14にはオーバー
フローの方向に従って式(4)のへと同じ形式のNビッ
ト表現された+1または−1に最も近い値が得られる。
以上の説明は式(1)のMの値が小さい時の場合で、こ
の場合は容易に式(9)が成立する。このため、出力y
、はバレルシフタ7による最終シフトでオーバーフロー
しない限り、正しい値を与えており、演算精度もNビッ
ト分存在する。
一方、式(1)のMの値が大きい時代(9)が成立しな
くなる。この場合、端子6に加える下方シフト量をLで
はなく、Lより小さく式(9)が成立するL′ を与え
ると式(1)の演算中にオーバーフローを発生する危険
性がOではなくなるものの演算精度を高く保てる。ただ
し、この場合、自明のことであるから端子12に与える
シフト量も第1回目より第M回目まではOと先例と同じ
で良いが、最終回目にはに+L’  と(2q) する必要がある。以下この様な場合の第P回目にALU
8がオーバーフローした場合について説明する。第P−
1回目までは先の例と同じであり、レジスタ12には が格納されているものとする。
第P回目には端子1,2を介してレジスタ3,4には各
々ap、X1−pが格納される。乗算器5はレジスタ3
,4よりap、Xj−pを入力され出力aptxj−p
を出力する。選択回路6を経て、更に、バレルシフタ7
によりL′ ビット下方ビットシフトされたap、M−
pとレジスタ11に蓄えられた Σax。
two″J−1 はALU8により加算されるが、オーバーフローを発生
する。いまオーバーフローが正の方向で起こったとすれ
ばALU出力は負の値となる。オーバーフロー検出器9
はALUがオーバーフローしていることを検出し、オー
バーフロー発生及び正側オーバーフローであることをオ
ーバーフロー訂正器10に知らせる。このためオーバー
フロー訂正器10はALU8からの負の出力データを無
視し、正の最大値をレジスタ11に伝える。よって、レ
ジスタ11には正の最大値が Σ・X =o17−+ として蓄えられALU8のオーバーフローの影響を軽減
している。
第2図はオーバーフロー検出回路10の一実施例であり
、バレルシフタの出力が5ビツトの場合を考えており、
端子100,101,102,103,104はバレル
シフタの入力2゜*、z1*、z2*、z3*、z4*
の入力端子、排他的論理ノアゲート110,111,1
12,113、論理オアグー) 120,121゜12
2.123、アンドゲート130,200、読出専用メ
モリ150、シフトビット数入力端子12、オーバーフ
ロー検出端子160、オーバーフロー方向端子170反
転ALUオーバーフロー入力端子190、ALU反転最
上位ビット端子180、選択回路210より構成される
。ここで読出専用メモリ150はアドレスに端子12が
接続され表1で示されるデータを格納している。つまり
表1は端子12より 表1 加えられるシフト量(k + L)に従って最上位ビッ
ト方向から論理Oの連が続くものである。ALU回路に
は前述した文献にも記載されている様にオーバーフロー
発生を知らせる端子がすでに存在し、最上位ビットを別
途出力する端子があるためこれを各々端子190および
180に加える。選択回路210は前述したテキサスイ
ンスツルメンツ社の文献の7−146頁より7−151
頁記載のICが利用できる。
ALUのオーバーフローに関しては前述した様にALU
 内部にオーバーフロー検出機構があるので以下主にシ
フタのオーバーフロー検出について述べ、最後にALU
とバレルシフタ双方のオーバーフローに関して述べる。
いま、2ビツトシフト指定が端子12より入力され、レ
ジスタ11の出力であるバレルシフタ7の出力が1.1
,1,0.1として端子100,101,102,10
3,104の各々に加わったとすると、ゲート110,
111,112,113には各々1,1,0.0が出力
される。この時のROMの出力は表1より0.0,1.
1 テあり、ROM出力と’7’−) 110,111
゜112.113の出力がゲート120,121,12
2,123でオアを取”\ ;+”J られる。比較すべき上位2ビツト以下はROM出力が1
で゛あるためグー) 120,121,122,123
の出力は全て1となる。このため、ゲート130は1を
出力しオーバーフローがなかったこと、換言すれば端子
100゜101.102に加えられた2゜*、z1*、
z2*が同一内容であることを示している。
一方、同じ2ビツトシフト指定が端子12より入力され
、バレルシフタ入力信号2゜*、z0*、z2*z3*
、z4*が1,1゜0.0.1として端子100,10
1,102,103,104の各々に加わったとすると
、グー) 110,111,112,113の各々には
1,0,1.0が出力される。この結果ゲート120,
121゜122.123には1,0,1.1が得られ、
ゲート121が0を出力するためゲート130は0を出
力しオーバーフローが発生することを示す。この時のオ
ーバーフローの方向は端子100から加えられたバレル
シフタの入力の最上位ビットが1であるから2ビツトシ
フトにより負方向のオーバーフローが発生することが検
出できる。正方向のオーバーフローの検出も同様である
以上の説明より、ゲート130が0の時はバレルシフタ
が発生しており、また、端子190がOの時はALUの
オーバーフローが発生していることがわかる。よってゲ
ート200により、どちらか一方でも0となると端子1
60に0を出力し、オーバーフローが発生していること
知らせる。ALUとバレルシフタは同時にオーバーフロ
ーとならない事を仮定しているためゲート130がゼロ
の時はバレルシフタのオーバーフローであるから端子1
00に加えられた極性符号ビットを、ゲート130が1
の時は少くともバレルシフタのオーバーフローではない
から反転したALUの最上位ビット出力を選択回路21
0で選択して端子170に出力する。ALUオーバーフ
ローの時ALUの最上位ビットを出力するのは、オーバ
ーフローにより極性(最上位ビット)が反転するためで
ある。
第3図はオーバーフロー訂正回路の一構成図で、選択回
路300、正の最大値入力端子301、負の最大値入力
端子302、ALU出力入力端子303、訂正出力端子
304、オーバーフロー発生入力端子160、オーバー
フロー方向端子170から構成されてν)る。第2図の
説明より、オーバーフロー検出信号出力端子160はゼ
ロの時オーバーフローを、オーツく−フロ一方向信号出
力端子170は1の時負方向0の時正方向のオーバーフ
ローを示すから、4人力1出力選択回路を用いて、表2
に示す様に接続すればより)。
表2 この様に接続するとオーバーフローが発生し、かつ正方
向オーバーフローの時は端子301に加えられた正の最
大値011・・・1が、′また、オーバーフローが発生
し、かつ、負方向オーバーフローの時は端子301に加
えられた負の最大値100・・・0が、さらに、オーバ
ーフローが発生していない場合は端子303に加えられ
た入力信号がそのまま選択回路300の出力として与え
られる。
(本発明の効果) 以上の様に本発明に従えば、FIRディジタルフィルタ
等の演算を精度良く実行するシグナルプロセッサなどに
適した小型の固定小数点演算回路を実現できる。
また、本発明に従えば入出力のダイナミックレンジが同
じ数値演算であっても途中結果のダイナミックレンジが
大きくなるものには、演算精度とオーバーフロー発生の
トレードオフを任意に選択できる回路を提供できる。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、 第2図は第1図の一部を示す図、 第3図は第1図の他の一部を示す図である。 図において、 1・・・入力端子    2・・・他の入力端子3・・
・レジスタ    4・・・他のレジスタ5・・・乗算
器     6・・・選択回路7・・・バレルシフタ 
 8・・・算術論理ユニット9・・・オーバーフロー検
出器 10・・・オーバーフロー訂正器 11・・・レジスタ 12・・・シフト量入力端子 13・・・選択制御信号入力端子 14・・・出力端子 である。 1鉋 亭   1   図 レジ′スタ  3     レジ°スタ   4乗 罵
 器  5 j尺回瀉シ   6 1\°°レルシフタ ΔI−tノ        8 Zo  ZI   Z2   Z3  Z4吊   3
   面 手続補正書(自発) 61.9.19 昭和  年  月  日

Claims (1)

    【特許請求の範囲】
  1. 2組の単精度ビット数のデータを入力とし倍精度ビット
    数の積を出力する固定小数点乗算器と、前記固定小数点
    乗算器出力と後述する倍精度ビット数値を蓄えるレジス
    タのいずれか一方を選択する選択回路と、前記選択回路
    の出力に複数ビットシフトを与える倍精度ビット数のバ
    レルシフタと、前記バレルシフタの出力と後述する倍精
    度ビットの数値を蓄えるレジスタの内容に対し算術論理
    演算を行なう倍精度ビット数のALUと、前記ALUも
    しくは前記バレルシフタにおいて出力がオーバーフロー
    を発生しているか否かを検出するオーバーフロー検出回
    路と、前記オーバーフロー検出回路により制御され、オ
    ーバーフロー検出時には前記ALU出力をオーバーフロ
    ー方向の最大値に置換するオーバーフロー訂正器と、前
    記オーバーフロー訂正器出力を蓄える倍精度ビット数の
    レジスタと、前記レジスタの少くとも上位単精度ビット
    数のデータを出力する端子とから少くとも構成されるこ
    とを特徴とした演算回路。
JP60152019A 1985-07-09 1985-07-09 演算回路 Pending JPS6211933A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP60152019A JPS6211933A (ja) 1985-07-09 1985-07-09 演算回路
EP86109291A EP0209049B1 (en) 1985-07-09 1986-07-08 Processing circuit capable of raising throughput of accumulation
DE86109291T DE3689390D1 (de) 1985-07-09 1986-07-08 Verarbeitungsschaltung, fähig zum Erhöhen des Akkumulationsdurchsatzes.
US06/883,703 US4817047A (en) 1985-07-09 1986-07-09 Processing circuit capable of raising throughput of accumulation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60152019A JPS6211933A (ja) 1985-07-09 1985-07-09 演算回路

Publications (1)

Publication Number Publication Date
JPS6211933A true JPS6211933A (ja) 1987-01-20

Family

ID=15531279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60152019A Pending JPS6211933A (ja) 1985-07-09 1985-07-09 演算回路

Country Status (4)

Country Link
US (1) US4817047A (ja)
EP (1) EP0209049B1 (ja)
JP (1) JPS6211933A (ja)
DE (1) DE3689390D1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5508951A (en) * 1993-11-12 1996-04-16 Matsushita Electric Industrial Co., Ltd. Arithmetic apparatus with overflow correction means
US5528525A (en) * 1992-10-16 1996-06-18 Matsushita Electric Industrial Co., Ltd. Processor for determining shift counts based on input data

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2508784B2 (ja) * 1988-02-17 1996-06-19 日本電気株式会社 指数関数演算装置
JP2600293B2 (ja) * 1988-06-10 1997-04-16 日本電気株式会社 オーバーフロー補正回路
JPH07109976B2 (ja) * 1989-02-23 1995-11-22 エルエスアイ・ロジック株式会社 ディジタルフィルタを用いた演算装置
US5031135A (en) * 1989-05-19 1991-07-09 Hitachi Micro Systems, Inc. Device for multi-precision and block arithmetic support in digital processors
JPH0797313B2 (ja) * 1989-08-30 1995-10-18 株式会社東芝 計算機及びこの計算機に用いられる演算方法
US5038314A (en) * 1989-11-17 1991-08-06 Digital Equipment Corporation Method and apparatus for correction of underflow and overflow
US5231600A (en) * 1990-04-19 1993-07-27 Bull Hn Information Systems Inc. Overflow detector for anticipating producing invalid operands resulting from performing shift operations on such operands
US5177698A (en) * 1990-07-09 1993-01-05 Eastman Kodak Company Selectable power of two coefficient signal combining circuit
US5164914A (en) * 1991-01-03 1992-11-17 Hewlett-Packard Company Fast overflow and underflow limiting circuit for signed adder
US5218564A (en) * 1991-06-07 1993-06-08 National Semiconductor Corporation Layout efficient 32-bit shifter/register with 16-bit interface
JPH0612229A (ja) * 1992-06-10 1994-01-21 Nec Corp 乗累算回路
JP2591463B2 (ja) * 1993-12-27 1997-03-19 日本電気株式会社 リミッタ装置
US5517436A (en) * 1994-06-07 1996-05-14 Andreas; David C. Digital signal processor for audio applications
US5576982A (en) * 1994-10-17 1996-11-19 Unisys Corporation Fast significant bit calculator and its application to integer multiplication and division
KR100212139B1 (ko) * 1996-07-22 1999-08-02 윤종용 클럭공급장치
US7689637B1 (en) * 2000-05-04 2010-03-30 Koninklijke Philips Electronics N.V. Adaptive filtering method and related device
JP2002063151A (ja) * 2000-08-22 2002-02-28 Mitsubishi Electric Corp マイクロコンピュータ
JP3833884B2 (ja) * 2000-09-27 2006-10-18 株式会社東芝 ディジタルフィルタ
EP1387259B1 (en) * 2002-07-31 2017-09-20 Texas Instruments Incorporated Inter-processor control
US20040167954A1 (en) * 2003-02-21 2004-08-26 Infineon Technologies North America Corp. Overflow detection system for multiplication
WO2008022307A2 (en) * 2006-08-18 2008-02-21 Conexant Systems, Inc. Systems and methods for implementing a double precision arithmetic memory architecture
US8316071B2 (en) * 2009-05-27 2012-11-20 Advanced Micro Devices, Inc. Arithmetic processing unit that performs multiply and multiply-add operations with saturation and method therefor
US10067744B2 (en) 2016-12-08 2018-09-04 International Business Machines Corporation Overflow detection for sign-magnitude adders
EP3835938A1 (en) * 2019-12-11 2021-06-16 Unify Patente GmbH & Co. KG Computer-implemented method of executing an arithmetic or logic operation in combination with an accumulate operation and processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6033629A (ja) * 1983-08-04 1985-02-21 Nec Corp 演算装置
JPS6054070A (ja) * 1983-09-02 1985-03-28 Nec Corp 演算装置
JPS60247781A (ja) * 1984-05-23 1985-12-07 Matsushita Electric Ind Co Ltd 演算装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
JPS5776634A (en) * 1980-10-31 1982-05-13 Hitachi Ltd Digital signal processor
JPS6027024A (ja) * 1983-07-22 1985-02-12 Matsushita Electric Ind Co Ltd 演算装置
JPH061438B2 (ja) * 1984-04-26 1994-01-05 日本電気株式会社 倍精度乗算器
WO1986002181A1 (en) * 1984-09-28 1986-04-10 Motorola, Inc. A digital signal processor for single cycle multiply/accumulation
DE3677051D1 (de) * 1985-05-17 1991-02-28 Nec Corp Verarbeitungsschaltung, die es erlaubt den akkumulationsdurchsatz zu erhoehen.
JP2912503B2 (ja) * 1992-07-30 1999-06-28 沖電気工業株式会社 トーキ録音同時モニタ方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6033629A (ja) * 1983-08-04 1985-02-21 Nec Corp 演算装置
JPS6054070A (ja) * 1983-09-02 1985-03-28 Nec Corp 演算装置
JPS60247781A (ja) * 1984-05-23 1985-12-07 Matsushita Electric Ind Co Ltd 演算装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5528525A (en) * 1992-10-16 1996-06-18 Matsushita Electric Industrial Co., Ltd. Processor for determining shift counts based on input data
US5508951A (en) * 1993-11-12 1996-04-16 Matsushita Electric Industrial Co., Ltd. Arithmetic apparatus with overflow correction means

Also Published As

Publication number Publication date
EP0209049B1 (en) 1993-12-15
EP0209049A2 (en) 1987-01-21
DE3689390D1 (de) 1994-01-27
EP0209049A3 (en) 1990-02-28
US4817047A (en) 1989-03-28

Similar Documents

Publication Publication Date Title
JPS6211933A (ja) 演算回路
US4379338A (en) Arithmetic circuit with overflow detection capability
US4700324A (en) Digital circuit performing an arithmetic operation with an overflow
US5751621A (en) Multiply-add unit and data processing apparatus using it
US5111421A (en) System for performing addition and subtraction of signed magnitude floating point binary numbers
JPH04290122A (ja) 数値表現変換装置
US4594680A (en) Apparatus for performing quadratic convergence division in a large data processing system
US6370556B1 (en) Method and arrangement in a transposed digital FIR filter for multiplying a binary input signal with tap coefficients and a method for designing a transposed digital filter
US5923574A (en) Optimized, combined leading zeros counter and shifter
JPS6027024A (ja) 演算装置
JPS61262925A (ja) 演算回路
US6615228B1 (en) Selection based rounding system and method for floating point operations
JP3132436B2 (ja) 浮動小数点積和演算器
US20190332355A1 (en) Method and apparatus for pre-rounding in a multiplier-accumulator
JPS61262926A (ja) 演算回路
US6010063A (en) Multiplying method with a round-off function and circuitry therefor
JPH09128213A (ja) ブロックフローティング処理システムおよび方法
Swartzlander The negative two’s complement number system
Sathyavathi et al. Single-Precision Floating-Point Addition Under HUB
JP2002318792A (ja) データ演算処理装置及びデータ演算処理プログラム
JP2006155102A (ja) 演算処理装置
CN116888575A (zh) 精简近似的基于共享的单输入多权重乘法器
JP2508286B2 (ja) 平方根演算装置
KR20240029249A (ko) 연산 에러를 정정할 수 있는 곱셈 및 누산 연산기
Moore Specialized Multiplier Circuits