JPH07182141A - 演算装置及び演算方法 - Google Patents
演算装置及び演算方法Info
- Publication number
- JPH07182141A JPH07182141A JP6130856A JP13085694A JPH07182141A JP H07182141 A JPH07182141 A JP H07182141A JP 6130856 A JP6130856 A JP 6130856A JP 13085694 A JP13085694 A JP 13085694A JP H07182141 A JPH07182141 A JP H07182141A
- Authority
- JP
- Japan
- Prior art keywords
- overflow
- minimum value
- arithmetic
- result
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000001514 detection method Methods 0.000 claims description 85
- 238000004364 calculation method Methods 0.000 claims description 26
- 230000015654 memory Effects 0.000 description 22
- 238000007792 addition Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
- G06F7/575—Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Abstract
にオーバーフロー補正ができる演算装置及び演算方法を
提供する。 【構成】 倍精度データの上位桁の演算結果を記憶する
第1のレジスタ9と、倍精度データの下位桁の演算結果
を記憶する第2のレジスタ10と、演算結果のオーバーフ
ローを検出するオーバーフロー検出手段6と、このオー
バーフロー検出手段の検出結果に基づいて第1のレジス
タに最大値または最小値を出力する最大値最小値設定手
段8とを備えた演算装置において、オーバーフロー検出
手段6の検出結果に基づいて第2のレジスタ10の出力値
を全ビットが0または1のデータに設定する補正手段13
を設ける。オーバーフローが発生して上位桁が最大値に
設定されるときには下位桁も「1111‥」に、上位桁
が最小値に設定されるときには下位桁も「0000‥」
に設定される。また並列演算では、各演算のオーバーフ
ローが検出され、検出結果に基づいて演算結果が最大値
または最小値に設定される。
Description
セッサ(DSP)等に内蔵される固定小数点の演算装置
に関し、特に、倍精度の演算や並列演算におけるオーバ
ーフロー補正を正しく行なうことができるように構成し
たものである。
用されている。このような機器組込み用のDSPでは、
コストを抑えるため、演算装置として固定小数点演算を
行なう装置を内蔵している。
数値の右端に小数点を置き、数値を整数として扱う場合
が多い。また、演算結果の桁数がオーバーフローする場
合には、オーバーフローの方向に合わせて、演算結果を
正の最大値または負の最小値に設定するオーバーフロー
補正が行なわれる。
の演算を行なう場合のオーバーフロー補正について説明
する。
ットのデータを記憶するメモリ1および2と、論理、演
算ユニットであるALU5と、メモリ1のデータをAL
U5の右側に入力するバス3と、メモリ2のデータをA
LU5の左側に入力するバス4と、ALU5に接続して
オーバーフロー検出信号11とオーバーフロー符号信号12
とを出力するオーバーフロー検出手段6と、倍精度の演
算において下位桁の最上位ビットで発生したキャリー
(桁上げ)を保持するキャリーフラグレジスタ7と、オ
ーバーフロー検出信号11がアクティブでオーバーフロー
符号信号12が正の時に正の最大値を出力し、オーバーフ
ロー検出信号11がアクティブでオーバーフロー符号信号
12が負の時に負の最小値を出力し、オーバーフロー検出
信号がアクティブでないときにALU5の出力をそのま
ま出力する最大値最小値設定手段8と、最大値最小値設
定手段8の出力をそのまま保持するレジスタ9および10
とを備えている。
構成を有しており、補数表示された数の最上位桁のキャ
リーの値をオーバーフロー符号信号12として出力し(0
は正、1は負を表わす)、また、最上位桁のキャリーの
値と一つ手前の桁からのキャリーの値とが一致したとき
に0、一致しないときに1のオーバーフロー検出信号11
を出力する。
示すように、オーバーフロー符号信号12が1のときに
「10000‥」(負の最小値)を、また、オーバーフ
ロー符号信号12が0のときに「01111‥」(正の最
大値)を出力する最大値最小値出力素子と、この素子か
らの出力とALU5の出力とが入力するマルチプレクサ
とを備えている。マルチプレクサは、オーバーフロー検
出信号11が0のときにALU5の出力を選択し、オーバ
ーフロー検出信号11が1のときに最大値最小値出力素子
の出力を選択する。
4、ALU5、レジスタ9および10におけるデータのビ
ット数Nが16ビットであるとする。倍精度の演算で
は、ALU5は、バス3とバス4とから供給されるデー
タを2回に亙って加減算する。その結果、2N=32ビ
ットのデータの加減算が可能になる。
数表示で7fffとなり、負の最小値は8000とな
る。最大値最小値設定手段8は、オーバーフロー検出信
号11がアクティブ(1)でオーバーフロー符号信号12が
正(0)の時には正の最大値7fffを出力し、オーバ
ーフロー検出信号11がアクティブでオーバーフロー符号
信号12が負(1)の時には負の最小値8000を出力す
る。
て、倍精度(2N=32ビット)のデータXとYの加減
算を行なう場合の動作について説明する。
のステップ まず、メモリ1からデータXの下位16ビットのデータ
XLを読出してバス3に出力する。また、メモリ2から
データYの下位16ビットのデータYLを読出してバス
4に出力する。ALU5は、XLとYLの加減算を行な
い、結果を最大値最小値設定手段8を介してレジスタ10
に格納する。
は、キャリーフラグレジスタ7に格納する。このとき、
最大値最小値設定手段8は、ALU5の出力をそのまま
レジスタ10に出力する。
のステップ まず、メモリ1からデータXの上位16ビットのデータ
XUを読出してバス3に出力する。また、メモリ2から
データYの上位16ビットのデータYUを読出してバス
4に出力する。ALU5は、XU、YUおよびキャリー
フラグレジスタ7の値の加減算を行ない、結果を最大値
最小値設定手段8を介してレジスタ9に格納する。
ALU5の演算結果がオーバーフローした場合、オーバ
ーフロー検出信号11とオーバーフローの方向を示すオー
バーフロー符号信号12とを出力する。最大値最小値設定
手段8は、オーバーフロー検出信号11がアクティブでオ
ーバーフロー符号信号12が正のときは正の最大値(7f
ff)を出力し、オーバーフロー検出信号11がアクティ
ブでオーバーフロー符号信号12が負のときは負の最小値
(8000)を出力する。また、オーバーフロー検出信
号12がアクティブでないときはALU5の出力をそのま
ま出力する。
より倍精度データの加減算が行なわれ、下位16ビット
の演算結果がレジスタ10に、上位16ビットの演算結果
がレジスタ9に、それぞれ格納される。
置では、倍精度の演算において、演算結果がオーバーフ
ローした場合、演算結果32ビットのうちレジスタ10に
格納された下位側16ビットの値は補正されないので、
32ビット精度での正の最大値または負の最小値に正し
くオーバーフロー補正することができないという問題点
を有している。
に、しばしば畳込み符号が使用され、DSPにより、こ
の誤り訂正用畳込み符号のビタビ復号処理を行なうこと
が増えている。ビタビ復号は、いわゆるACS(加算比
較選択)演算と呼ばれる処理を繰返すことにより実行さ
れる。このACS演算は、2回の加算を行ない、その加
算結果の大小を比較し、その比較結果に基づいて、2個
の加算結果のいずれかを選択する処理である。このよう
な処理を繰返すので、ビタビ復号結果を得るまでには、
多くの回数の演算が必要となり、時間が掛かる。そのた
め、こうした多数回の演算を効率的に処理して演算の高
速化を図ること、また、その各演算においてオーバーフ
ローが発生した場合に、正確にオーバーフロー補正する
ことが求められている。
り、倍精度データの演算に際して正確にオーバーフロー
補正することができる演算装置及び演算方法を提供する
ことを目的としている。
ができ、また、その演算におけるオーバーフロー補正を
正確に行なうことができる演算装置及び演算方法を提供
することを目的としている。
精度データの上位桁の演算結果を記憶する第1のレジス
タと、倍精度データの下位桁の演算結果を記憶する第2
のレジスタと、演算結果のオーバーフローを検出するオ
ーバーフロー検出手段と、このオーバーフロー検出手段
の検出結果に基づいて第1のレジスタに最大値または最
小値を出力する最大値最小値設定手段とを備えた演算装
置において、オーバーフロー検出手段の検出結果に基づ
いて第2のレジスタの出力値を全ビットが0または1の
データに設定する補正手段を設けている。
桁の演算とを複数回に分けて行なう倍精度データの演算
方法において、倍精度データの上位桁の演算に際して、
演算結果のオーバーフローを検出し、このオーバーフロ
ーの検出結果に基づいて、上位桁の演算結果を最大値ま
たは最小値に設定するとともに、下位桁の演算結果を全
ビットが0または1のデータに設定している。
算結果のオーバーフローを検出するオーバーフロー検出
手段と、このオーバーフロー検出手段の検出結果に基づ
いて演算結果を最大値または最小値に設定する最大値最
小値設定手段とを備えた演算装置において、演算手段に
より同時並行的に行なわれる複数の演算の各々に対して
オーバーフローを検出する複数のオーバーフロー検出手
段と、オーバーフロー検出手段の検出結果に基づいて各
演算の演算結果を最大値または最小値に設定する複数の
最大値最小値設定手段とを設けている。
少なくとも一つにより、オーバーフロー検出手段の検出
結果に基づいて、レジスタに記憶された該当する演算結
果の出力値を最大値または最小値に補正するように構成
している。
少なくとも一つを、倍精度データの上位桁を最大値また
は最小値に設定する最大値最小値設定手段の一部によっ
て構成している。
ット幅の複数の演算をその演算装置で同時並行的に行な
う演算方法において、複数の演算のそれぞれについて、
演算結果のオーバーフロー検出を並行して行ない、オー
バーフロー検出の結果に基づいて、該当する演算結果
を、その演算のビット幅における最大値または最小値に
設定している。
置及び演算方法では、オーバーフローが発生して、上位
桁が最大値に設定されるときには、下位桁も「1111
‥」に設定され、また、上位桁が最小値に設定されると
きには、下位桁も「0000‥」に設定される。従っ
て、倍精度の演算において、正確なオーバーフロー補正
が行なわれる。
方法では、複数の演算が同時並行して行なわれるため、
多数回の演算を高速で処理することが可能であり、ま
た、その際にオーバーフローが発生すると、各演算毎に
正しいオーバーフロー補正が行なわれる。
は、図1に示すように、オーバーフロー検出信号11がア
クティブで、オーバーフロー符号信号12が正の時にレジ
スタ10の出力として値(ffff)を出力し、オーバー
フロー検出信号11がアクティブで符号信号12が負の時に
レジスタ10の出力として値(0000)を出力し、オー
バーフロー検出信号がアクティブでない時にレジスタ10
の値をそのまま出力する補正値設定手段13を備えてい
る。その他の構成は、従来の装置と変わりがない。
に、オーバーフロー符号信号12がアクティブのときに
「0000‥」を、また、オーバーフロー符号信号12が
アクティブでない(0)のときに「1111‥」を出力
する補正値出力素子と、この素子からの出力とレジスタ
10の出力とが入力するマルチプレクサとを備えている。
マルチプレクサは、オーバーフロー検出信号11がアクテ
ィブ(1)のときに補正値出力素子の出力を選択し、オ
ーバーフロー検出信号11がアクティブでない(0)とき
にレジスタ10の出力を選択する。
4、ALU5、レジスタ9および10におけるデータのビ
ット数Nが16ビットであるとして、倍精度(2N=3
2ビット)のデータXとYの加減算を行なう場合の動作
について説明する。
のステップ まず、メモリ1からデータXの下位16ビットのデータ
XLを読出してバス3に出力する。また、メモリ2から
データYの下位16ビットのデータYLを読出してバス
4に出力する。ALU5は、XLとYLの加減算を行な
い、結果を最大値最小値設定手段8を介してレジスタ10
に格納する。また、最上位ビットで発生したキャリーは
キャリーフラグレジスタ7に格納する。このとき、最大
値最小値設定手段8は、ALU5の出力をそのままレジ
スタ10に出力する。
のステップ まず、メモリ1からデータXの上位16ビットのデータ
XUを読出してバス3に出力する。また、メモリ2から
データYの上位16ビットのデータYUを読出してバス
4に出力する。ALU5は、XU、YUおよびキャリー
フラグレジスタ7の値の加減算を行ない、結果を最大値
最小値設定手段8を介してレジスタ9に格納する。
ALU5の演算結果がオーバーフローした場合、オーバ
ーフロー検出信号11とオーバーフローの方向を示すオー
バーフロー符号信号12とを出力する。最大値最小値設定
手段8は、オーバーフロー検出信号11がアクティブでオ
ーバーフロー符号信号12が正の時は正の最大値(7ff
f)を出力し、オーバーフロー検出信号11がアクティブ
でオーバーフロー符号信号12が負の時は負の最小値(8
000)を出力し、オーバーフロー検出信号11がアクテ
ィブでない場合はALU5の出力をそのまま出力する。
バーフロー検出信号11及びオーバーフロー符号信号12が
入力した補正値設定手段13は、オーバーフロー検出信号
11がアクティブでオーバーフロー符号信号12が正のとき
は値(ffff)をレジスタ10の出力として設定し、オ
ーバーフロー検出信号11がアクティブで符号信号12が負
のときは値(0000)をレジスタ10の出力として設定
する。また、オーバーフロー検出信号11がアクティブで
ない場合は、レジスタ10の値をそのまま出力する。
より倍精度データの加減算が行なわれる。
設定手段8が演算結果の上位側データを補正した場合に
は、補正値設定手段13が演算結果の下位側データを補正
し、それにより、加減算結果が正の方向にオーバーフロ
ーした場合は、32ビットの正の最大値(7fffff
ff)が出力され、また、加減算結果が負の方向にオー
バーフローした場合は、32ビットの負の最小値(80
000000)が出力される。
ジスタ10に格納するように構成することもできる。
度データ同士の加減算に際して、オーバーフロー補正を
正確に行なうことができる。また、この補正は、2ステ
ップの高速で実行される。
例における補正値設定手段13をレジスタ10と一体的に構
成している。
10がセット・リセット機能付きDラッチによって構成さ
れる。
値最小値設定手段8からのデータが入力し、このデータ
は、書込みイネーブル端子Eがアクティブであるとき、
レジスタ10に書込まれ、データ出力端子Qからバス3に
出力される。
なり、同時にオーバーフロー符号信号12がアクティブと
なると、リセット端子Rがアクティブとなって、レジス
タ10は「0000」にリセットされ、データ出力端子Q
からは「0000」が出力される。
で、オーバーフロー符号信号12がノンアクティブのとき
は、セット端子Sがアクティブとなって、レジスタ10は
「ffff」にセットされ、データ出力端子Qからは
「ffff」が出力される。
値設定手段8がレジスタ9に格納する演算結果の上位側
データを最大値または最小値に補正するとき、併せて、
レジスタ10に格納された演算結果の下位側データが「f
fff」または「0000」に補正される。
倍精度の演算と、演算装置のビット幅の半分のビット幅
の演算を二つ同時に並行して実行する並列演算とを選択
して処理することができ、また、それら演算におけるオ
ーバーフロー補正を正確に行なうことができる。
ット幅のALU2個を並列に並べた構成を有するALU
5と、ALU5の演算結果の最上位桁のキャリーの値を
オーバーフロー符号信号12として出力し、この最上位桁
のキャリーの値と一つ手前の桁からのキャリーの値とが
一致したときに0、一致しないときに1のオーバーフロ
ー検出信号11を出力する第1のオーバーフロー検出手段
6と、ALU5の演算結果の下位側から8ビット目のキ
ャリーの値をオーバーフロー符号信号16として出力し、
この下位側から8ビット目のキャリーの値と7ビット目
の桁からのキャリーの値とが一致したときに0、一致し
ないときに1のオーバーフロー検出信号15を出力する第
2のオーバーフロー検出手段14と、倍精度演算または並
列演算においてオーバーフローが発生したときに、それ
らの演算に応じた最大値または最小値を出力し、オーバ
ーフローが発生していないときにALU5の演算結果を
出力する最大値最小値設定手段8とを備えている。その
他の構成は第1実施例の演算装置と変わりがない。
図8と同じである。また、第2のオーバーフロー検出手
段14は、図5に示すように、ALU5の演算結果の下位
側から8ビット目のキャリーの値をオーバーフローの方
向を示すオーバーフロー符号信号16として出力し(オー
バーフローの方向が正のときは0、負のときは1)、ま
た、この下位側から8ビット目のキャリーの値と7ビッ
ト目の桁からのキャリーの値とが一致したときに0、一
致しないときに1のオーバーフロー検出信号15を出力す
る。
示すように、オーバーフロー符号信号16が1のときに
「10000000」(8ビットの負の最小値)を、ま
た、オーバーフロー符号信号16が0のときに「0111
1111」(8ビットの正の最大値)を出力する最大値
最小値出力素子81と、オーバーフロー符号信号12が1の
ときに「1000000000000000」(16ビ
ットの負の最小値)を、また、オーバーフロー符号信号
12が0のときに「0111111111111111」
(16ビットの正の最大値)を出力する最大値最小値出
力素子82と、最大値最小値出力素子82の出力の上位8ビ
ットとALU5の上位側8ビットとが入力し、オーバー
フロー検出信号11によってそれらを選択するマルチプレ
クサ83と、最大値最小値出力素子82の出力の下位8ビッ
ト、最大値最小値出力素子81の出力およびALU5の下
位側8ビットが入力し、オーバーフロー検出信号11また
は15によってそれらを選択するマルチプレクサ83とを備
えている。
信号11が0のときにはALU5の上位側出力を選択し、
また、オーバーフロー検出信号11が1のときには最大値
最小値出力素子82の出力の上位8ビットを選択して出力
する。従って、マルチプレクサ83は、オーバーフロー検
出信号11が1の場合に、オーバーフロー符号信号12が1
であれば「10000000」(8ビットの負の最小
値)を、また、オーバーフロー符号信号12が0であれば
「01111111」(8ビットの正の最大値)を出力
する。
せず)が並列演算を指示している場合には、オーバーフ
ロー検出信号15によって、ALU5の下位側出力または
最大値最小値出力素子81の出力のいずれかを選択し、オ
ーバーフロー検出信号15が0のときには、ALU5の下
位側の演算結果を出力し、また、オーバーフロー検出信
号15が1のときには、オーバーフロー符号信号16が1で
あれば「10000000」(8ビットの負の最小値)
を、オーバーフロー符号信号16が0であれば「0111
1111」(8ビットの正の最大値)を出力する。
示していない場合には、マルチプレクサ84は、オーバー
フロー検出信号11によって、ALU5の下位側出力また
は最大値最小値出力素子82の下位8ビットの出力のいず
れかを選択し、オーバーフロー検出信号11が0のときに
は、ALU5の下位側出力を出力し、また、オーバーフ
ロー検出信号11が1のときには、オーバーフロー符号信
号12が1であれば「00000000」を、オーバーフ
ロー符号信号12が0であれば「11111111」を出
力する。
は、メモリ1から32ビットのデータXの下位16ビッ
トのデータXLを読出し、また、メモリ2から32ビッ
トのデータYの下位16ビットのデータYLを読出し、
8ビット幅の2個のALUの一方(下位側)を用いて1
ビット目から8ビット目までの演算を行ない、他方(上
位側)のALUを用いて9ビット目から16ビット目ま
での演算を行なう。このとき、下位側ALUの8ビット
目のキャリーの値が上位側ALUの9ビット目の演算に
加えられるように構成する。また、上位側の16ビット
目で発生したキャリーは、キャリーフラグレジスタ7に
格納する。
定手段8のマルチプレクサ84に入力し、また、上位側A
LUの演算結果はマルチプレクサ83に入力する。このと
きマルチプレクサ83、84は、上位側ALUおよび下位側
ALUの出力をそのまま選択し、最大値最小値設定手段
8からは、それらを合わせた16ビットのデータが出力
され、レジスタ10に格納される。
ットのデータXUを読出し、また、メモリ2からデータ
Yの上位16ビットのデータYUを読出し、8ビット幅
の2個のALUを用いて、XU、YUおよびキャリーフ
ラグレジスタ7の値の加減算を行ない、上位側ALUの
演算結果を最大値最小値設定手段8のマルチプレクサ83
に、また、下位側ALUの演算結果をマルチプレクサ84
に入力する。
上位側ALUの演算結果がオーバーフローした場合に、
オーバーフロー検出信号11とオーバーフローの方向を示
すオーバーフロー符号信号12とを出力する。オーバーフ
ロー検出信号11が出力されると、最大値最小値設定手段
8のマルチプレクサ83は、最大値最小値出力素子82から
オーバーフロー符号信号12に応じて出力された16ビッ
トの正の最大値または負の最小値の上位8ビットを選択
して出力し、また、倍精度演算が指定されているマルチ
プレクサ84は、この16ビットの下位8ビットを選択し
て出力する。その結果、オーバーフロー発生時には、最
大値最小値設定手段8から、それらを合わせた16ビッ
トの最大値または最小値が出力されレジスタ9に格納さ
れる。
きには、マルチプレクサ83、84は、それぞれALUの上
位側、下位側の演算結果を出力し、それらを合わせた1
6ビットのデータがレジスタ9に格納される。
の場合と同じように、オーバーフロー検出手段6から出
力されたオーバーフロー検出信号11とオーバーフロー符
号信号12とが補正値設定手段13に入力し、補正値設定手
段13は、レジスタ10に格納された値を(ffff)また
は(0000)に補正する。
倍精度の演算において、第1実施例の装置と同じよう
に、正確なオーバーフロー補正を行なうことができる。
を、2回、並列して行なう場合の動作について説明す
る。
L’、YU’、YL’について、XU’+YU’とX
L’+YL’の2つの加算を以下のように行なう。予
め、メモリ1の上位8ビットにデータXU’、下位8ビ
ットにデータXL’が格納されており、また、メモリ2
の上位8ビットにデータYU’、下位8ビットにデータ
YL’が格納されているものとする。まず、メモリ1か
らXU’とXL’のデータを16ビットのバス3を介し
て同時に読出し、ALU5の右側に入力する。また、メ
モリ2からYU’とYL’のデータを16ビットのバス
4を介して同時に読出し、ALU5の左側に入力する。
ALU5は、その上位側でXU’+YU’の演算を行な
い、並行して、下位側でXL’+YL’の演算を行な
う。このとき、ALUの下位側8ビット目から9ビット
目に入力するキャリーの値を0にするように構成する。
U5の上位側の演算結果がオーバーフローした場合に、
オーバーフロー検出信号11とオーバーフローの方向を示
すオーバーフロー符号信号12とを出力する。オーバーフ
ロー検出信号11が出力される(アクティブになる)と、
最大値最小値設定手段8のマルチプレクサ83は、オーバ
ーフロー符号信号12が正のときには、最大値最小値出力
素子82から出力された16ビットの正の最大値の上位8
ビット(01111111)を選択して出力し、また、
オーバーフロー符号信号12が負のときには、16ビット
の負の最小値の上位8ビット(10000000)を選
択して出力する。
ィブでないときには、マルチプレクサ83は、ALU5の
上位側出力をそのまま出力する。
は、ALU5の下位側の演算結果がオーバーフローした
場合に、オーバーフロー検出信号15とオーバーフローの
方向を示すオーバーフロー符号信号16とを出力する。オ
ーバーフロー検出信号15が出力されると、並列演算が指
示されている最大値最小値設定手段8のマルチプレクサ
84は、オーバーフロー符号信号16が正のときに、最大値
最小値出力素子81から出力された8ビットの正の最大値
(01111111)を選択して出力し、オーバーフロ
ー符号信号16が負のときに、8ビットの負の最小値(1
0000000)を選択して出力する。また、オーバー
フロー検出信号15がアクティブでないときはALU5の
下位側出力をそのまま出力する。
サ84の出力は、16ビットのデータに寄せ合わされて、
レジスタ9に格納される。
ステップで、8ビット幅の加算2回を同時に行なうこと
ができ、また、各演算のそれぞれにオーバーフローが発
生した場合に、正確なオーバーフロー補正を行なうこと
ができる。
演算結果の8ビットのオーバーフロー補正を行なう最大
値最小値出力素子81およびマルチプレクサ84を最大値最
小値設定手段8の内部に設けているが、これらを補正値
設定手段13の内部に設けるように変更することもでき
る。その場合、レジスタ10の上位8ビットには、最大値
最小値出力素子82とマルチプレクサ83とを用いてオーバ
ーフロー補正が行なわれたALU5の上位側8ビットの
データを格納し、下位側8ビットにはALU8の下位側
8ビットの出力をそのまま格納する。そして、オーバー
フロー検出手段14から出力されたオーバーフロー検出信
号15とオーバーフロー符号信号16とを補正値設定手段13
に入力し、レジスタ10からデータを読出してバス3に出
力する際に、この補正値設定手段13が、レジスタ10の上
位側8ビットについてはそのまま出力し、レジスタ10の
下位側8ビットデータに対しては、前述した手順でオー
バーフロー補正を行なうようにする。
を行なうALU8により、8ビットの演算を2回同時に
行なう場合の例を示したが、より並列度の高い演算にも
適用することができる。例えば、4ビットの演算4回を
並列に行なう場合にも、オーバーフロー検出手段と最大
値最小値設定手段を4個ずつ並列に設けるようにすれ
ば、並列演算とそのオーバーフロー補正とを、同様に高
速にしかも正確に行なうことができる。
に、本発明の演算装置及び演算方法は、倍精度データの
演算に際して、正確にしかも迅速にオーバーフロー補正
を実行することができる。
ット幅の演算を同時並列的に行なうことにより、多数の
演算回数を必要とするビタビ復号等の処理を高速化する
ことができ、また、この演算でのオーバーフローの発生
に対して正確なオーバーフロー補正を行なうことができ
る。
示すブロック図、
図、
段を示すブロック図、
示すブロック図、
出手段を示すブロック図、
を示すブロック図、
成を示すブロック図、
を示すブロック図である。
Claims (6)
- 【請求項1】 倍精度データの上位桁の演算結果を記憶
する第1のレジスタと、倍精度データの下位桁の演算結
果を記憶する第2のレジスタと、演算結果のオーバーフ
ローを検出するオーバーフロー検出手段と、該オーバー
フロー検出手段の検出結果に基づいて前記第1のレジス
タに最大値または最小値を出力する最大値最小値設定手
段とを備えた演算装置において、 前記オーバーフロー検出手段の検出結果に基づいて前記
第2のレジスタの出力値を全ビットが0または1のデー
タに設定する補正手段を設けたことを特徴とする演算装
置。 - 【請求項2】 倍精度データの上位桁の演算と下位桁の
演算とを複数回に分けて行なう倍精度データの演算方法
において、 倍精度データの上位桁の演算に際して、演算結果のオー
バーフローを検出し、該オーバーフローの検出結果に基
づいて、前記上位桁の演算結果を最大値または最小値に
設定するとともに、前記下位桁の演算結果を全ビットが
0または1のデータに設定することを特徴とする演算方
法。 - 【請求項3】 演算結果を記憶するレジスタと、前記演
算結果のオーバーフローを検出するオーバーフロー検出
手段と、該オーバーフロー検出手段の検出結果に基づい
て前記演算結果を最大値または最小値に設定する最大値
最小値設定手段とを備えた演算装置において、 演算手段により同時並行的に行なわれる複数の演算の各
々に対してオーバーフローを検出する複数のオーバーフ
ロー検出手段と、前記オーバーフロー検出手段の検出結
果に基づいて各演算の演算結果を最大値または最小値に
設定する複数の最大値最小値設定手段とを設けたことを
特徴とする演算装置。 - 【請求項4】 前記最大値最小値設定手段の少なくとも
一つが、前記オーバーフロー検出手段の検出結果に基づ
いて、前記レジスタに記憶された該当する演算結果の出
力値を前記最大値または最小値に補正することを特徴と
する請求項3に記載の演算装置。 - 【請求項5】 前記最大値最小値設定手段の少なくとも
一つを、倍精度データの上位桁を最大値または最小値に
設定する最大値最小値設定手段の一部によって構成した
ことを特徴とする請求項3または4に記載の演算装置。 - 【請求項6】 演算装置のビット幅より少ないビット幅
の複数の演算を前記演算装置で同時並行的に行なう演算
方法において、 前記複数の演算のそれぞれについて、演算結果のオーバ
ーフロー検出を並行して行ない、前記オーバーフロー検
出の結果に基づいて、該当する演算結果を、その演算の
ビット幅における最大値または最小値に設定することを
特徴とする演算方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13085694A JP3487903B2 (ja) | 1993-11-12 | 1994-05-23 | 演算装置及び演算方法 |
US08/339,202 US5508951A (en) | 1993-11-12 | 1994-11-10 | Arithmetic apparatus with overflow correction means |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5-306054 | 1993-11-12 | ||
JP30605493 | 1993-11-12 | ||
JP13085694A JP3487903B2 (ja) | 1993-11-12 | 1994-05-23 | 演算装置及び演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07182141A true JPH07182141A (ja) | 1995-07-21 |
JP3487903B2 JP3487903B2 (ja) | 2004-01-19 |
Family
ID=26465872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13085694A Expired - Lifetime JP3487903B2 (ja) | 1993-11-12 | 1994-05-23 | 演算装置及び演算方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5508951A (ja) |
JP (1) | JP3487903B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE39121E1 (en) | 1996-11-29 | 2006-06-06 | Matsushita Electric Industrial Co., Ltd. | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3105738B2 (ja) * | 1994-06-10 | 2000-11-06 | 日本電気株式会社 | 情報処理装置 |
US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
JPH0997178A (ja) * | 1995-09-29 | 1997-04-08 | Matsushita Electric Ind Co Ltd | 飽和演算処理装置および方法 |
KR100236533B1 (ko) * | 1997-01-16 | 2000-01-15 | 윤종용 | 배럴 쉬프터와 산술논리 연산기가 연결되어 있는 디지탈 신호 처리기 및 그 오버플로 검출방법 |
US5901306A (en) * | 1997-06-23 | 1999-05-04 | Sun Microsystems, Inc. | Method and apparatus for reducing a computational result to the range boundaries of a signed 8-bit integer in case of overflow |
US5870320A (en) * | 1997-06-23 | 1999-02-09 | Sun Microsystems, Inc. | Method for reducing a computational result to the range boundaries of a signed 16-bit integer in case of overflow |
US5887181A (en) * | 1997-06-23 | 1999-03-23 | Sun Microsystems, Inc. | Method and apparatus for reducing a computational result to the range boundaries of an unsigned 8-bit integer in case of overflow |
US5905661A (en) * | 1997-06-23 | 1999-05-18 | Sun Microsystems, Inc. | Method for handling an overflow condition in a processor |
GB2342730B (en) | 1998-06-19 | 2003-02-19 | Lsi Logic Corp | Digital processing |
JP3853981B2 (ja) * | 1998-07-02 | 2006-12-06 | 株式会社東芝 | 半導体記憶装置の製造方法 |
US6535900B1 (en) * | 1998-09-07 | 2003-03-18 | Dsp Group Ltd. | Accumulation saturation by means of feedback |
US6529930B1 (en) * | 1998-11-16 | 2003-03-04 | Hitachi America, Ltd. | Methods and apparatus for performing a signed saturation operation |
US6598066B1 (en) | 2000-05-23 | 2003-07-22 | Sun Microsystems, Inc. | Fast carry-out generation |
JP2002063151A (ja) * | 2000-08-22 | 2002-02-28 | Mitsubishi Electric Corp | マイクロコンピュータ |
US7206800B1 (en) | 2000-08-30 | 2007-04-17 | Micron Technology, Inc. | Overflow detection and clamping with parallel operand processing for fixed-point multipliers |
EP1387259B1 (en) * | 2002-07-31 | 2017-09-20 | Texas Instruments Incorporated | Inter-processor control |
US7149766B1 (en) * | 2002-11-12 | 2006-12-12 | Unisys Corporation | Methods for detecting overflow and/or underflow in a fixed length binary field |
JP2008102715A (ja) * | 2006-10-18 | 2008-05-01 | Toshiba Corp | 演算装置 |
US20100023733A1 (en) * | 2008-04-15 | 2010-01-28 | Vns Portfolio Llc | Microprocessor Extended Instruction Set Precision Mode |
US8539015B2 (en) * | 2008-08-01 | 2013-09-17 | Hewlett-Packard Development Company, L.P. | Performing a binary coded decimal (BCD) calculation |
US8549264B2 (en) * | 2009-12-22 | 2013-10-01 | Intel Corporation | Add instructions to add three source operands |
GB2580130B (en) * | 2018-12-21 | 2021-02-24 | Graphcore Ltd | Overflow condition |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6211933A (ja) * | 1985-07-09 | 1987-01-20 | Nec Corp | 演算回路 |
JP2600293B2 (ja) * | 1988-06-10 | 1997-04-16 | 日本電気株式会社 | オーバーフロー補正回路 |
JPH04167170A (ja) * | 1990-10-31 | 1992-06-15 | Sanyo Electric Co Ltd | 乗加算演算回路 |
-
1994
- 1994-05-23 JP JP13085694A patent/JP3487903B2/ja not_active Expired - Lifetime
- 1994-11-10 US US08/339,202 patent/US5508951A/en not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE39121E1 (en) | 1996-11-29 | 2006-06-06 | Matsushita Electric Industrial Co., Ltd. | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
USRE43145E1 (en) | 1996-11-29 | 2012-01-24 | Panasonic Corporation | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
USRE43729E1 (en) | 1996-11-29 | 2012-10-09 | Panasonic Corporation | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing |
Also Published As
Publication number | Publication date |
---|---|
JP3487903B2 (ja) | 2004-01-19 |
US5508951A (en) | 1996-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3487903B2 (ja) | 演算装置及び演算方法 | |
US5957996A (en) | Digital data comparator and microprocessor | |
KR20060057574A (ko) | 예비 포화 검사로 가산 또는 감산을 위한 산술 유닛 및 그방법 | |
JPS62191926A (ja) | 演算装置 | |
JPH0228830A (ja) | 整数除算回路 | |
KR910001535A (ko) | 디지탈 신호처리 시스템에서의 실시간 2's 콤플리멘트코드 숫자코드의 승산방법 및 회로 | |
JPH09222991A (ja) | 加算方法および加算器 | |
US6615228B1 (en) | Selection based rounding system and method for floating point operations | |
KR100309520B1 (ko) | 라운드오프기능을갖는승산방법및승산회로 | |
JP2578482B2 (ja) | 浮動小数点演算器 | |
JP2645422B2 (ja) | 浮動小数点演算処理装置 | |
JPH07146777A (ja) | 演算装置 | |
US6519620B1 (en) | Saturation select apparatus and method therefor | |
JP2664750B2 (ja) | 演算装置及び演算処理方法 | |
JP2508286B2 (ja) | 平方根演算装置 | |
JPS62259140A (ja) | アドレス生成回路 | |
KR0154934B1 (ko) | 개선된 2의 보수회로 | |
JPH04281524A (ja) | 浮動小数点演算処理装置 | |
JPH0778748B2 (ja) | ガロア体演算ユニット | |
JPH0553768A (ja) | 除算器 | |
JP2624738B2 (ja) | 丸め処理方式 | |
JPH0644226B2 (ja) | 演算処理装置 | |
JPH06161714A (ja) | 乗除算回路 | |
JPH01223532A (ja) | オーバフロウ・アンダフロウ処理回路 | |
JPS6194144A (ja) | 浮動小数点加算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071031 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081031 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091031 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091031 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101031 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111031 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121031 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131031 Year of fee payment: 10 |
|
EXPY | Cancellation because of completion of term |