JP3487903B2 - Arithmetic device and arithmetic method - Google Patents

Arithmetic device and arithmetic method

Info

Publication number
JP3487903B2
JP3487903B2 JP13085694A JP13085694A JP3487903B2 JP 3487903 B2 JP3487903 B2 JP 3487903B2 JP 13085694 A JP13085694 A JP 13085694A JP 13085694 A JP13085694 A JP 13085694A JP 3487903 B2 JP3487903 B2 JP 3487903B2
Authority
JP
Japan
Prior art keywords
data
result
overflow
minimum value
register
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
JP13085694A
Other languages
Japanese (ja)
Other versions
JPH07182141A (en
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 JP13085694A priority Critical patent/JP3487903B2/en
Priority to US08/339,202 priority patent/US5508951A/en
Publication of JPH07182141A publication Critical patent/JPH07182141A/en
Application granted granted Critical
Publication of JP3487903B2 publication Critical patent/JP3487903B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime 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/57Arithmetic 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/575Basic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • 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

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、デジタル信号処理プロ
セッサ(DSP)等に内蔵される固定小数点の演算装置
に関し、特に、倍精度の演算や並列演算におけるオーバ
ーフロー補正を正しく行なうことができるように構成し
たものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a fixed-point arithmetic unit incorporated in a digital signal processor (DSP) or the like, and more particularly, to accurately perform overflow correction in double-precision arithmetic or parallel arithmetic. It is composed.

【0002】[0002]

【従来の技術】近年、DSPはデジタル携帯電話等で多
用されている。このような機器組込み用のDSPでは、
コストを抑えるため、演算装置として固定小数点演算を
行なう装置を内蔵している。
2. Description of the Related Art In recent years, DSP has been widely used in digital mobile phones and the like. In such a DSP for incorporating equipment,
In order to keep costs down, a device for performing fixed-point arithmetic is built in as an arithmetic device.

【0003】固定小数点方式の演算装置では、表示する
数値の右端に小数点を置き、数値を整数として扱う場合
が多い。また、演算結果の桁数がオーバーフローする場
合には、オーバーフローの方向に合わせて、演算結果を
正の最大値または負の最小値に設定するオーバーフロー
補正が行なわれる。
In a fixed-point arithmetic unit, a decimal point is often placed at the right end of the displayed numerical value to treat the numerical value as an integer. When the number of digits of the calculation result overflows, overflow correction is performed to set the calculation result to the maximum positive value or the minimum negative value in accordance with the direction of the overflow.

【0004】従来のこの種の演算装置において、倍精度
の演算を行なう場合のオーバーフロー補正について説明
する。
Description will be made of overflow correction when a double precision operation is performed in a conventional operation device of this type.

【0005】この演算装置は、図7に示すように、Nビ
ットのデータを記憶するメモリ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
とを備えている。
As shown in FIG. 7, this arithmetic unit stores memories 1 and 2 for storing N-bit data, an ALU 5 which is a logical and arithmetic unit, and an ALLU for the data of the memory 1.
A bus 3 input to the right side of U5 and data in memory 2
Connected to the bus 4 inputting to the left side of LU5 and ALU5, overflow detection signal 11 and overflow code signal 12
Overflow detection means 6, which outputs a carry flag register 7 which holds a carry generated in the most significant bit of the lower digit in a double-precision operation, and overflow detection signal 11 which is active and overflow code signal 12 Outputs the maximum positive value when positive, overflow detection signal 11 is active, and overflow sign signal
When 12 is negative, the negative minimum value is output, and when the overflow detection signal is not active, the maximum value minimum value setting means 8 that outputs the output of the ALU 5 as it is and the output of the maximum value minimum value setting means 8 are retained as they are. Registers 9 and 10
It has and.

【0006】オーバーフロー検出手段6は、図8に示す
構成を有しており、補数表示された数の最上位桁のキャ
リーの値をオーバーフロー符号信号12として出力し(0
は正、1は負を表わす)、また、最上位桁のキャリーの
値と一つ手前の桁からのキャリーの値とが一致したとき
に0、一致しないときに1のオーバーフロー検出信号11
を出力する。
The overflow detecting means 6 has the structure shown in FIG. 8 and outputs the carry value of the most significant digit of the complemented number as the overflow code signal 12 (0
Is positive and 1 represents negative), and overflow detection signal 11 of 0 when the carry value of the most significant digit and the carry value from the previous digit match, and 1 when they do not match.
Is output.

【0007】また、最大値最小値設定手段8は、図9に
示すように、オーバーフロー符号信号12が1のときに
「10000‥」(負の最小値)を、また、オーバーフ
ロー符号信号12が0のときに「01111‥」(正の最
大値)を出力する最大値最小値出力素子と、この素子か
らの出力とALU5の出力とが入力するマルチプレクサ
とを備えている。マルチプレクサは、オーバーフロー検
出信号11が0のときにALU5の出力を選択し、オーバ
ーフロー検出信号11が1のときに最大値最小値出力素子
の出力を選択する。
As shown in FIG. 9, the maximum / minimum value setting means 8 outputs "10000 ..." (Negative minimum value) when the overflow code signal 12 is 1, and the overflow code signal 12 is 0. In this case, a maximum value / minimum value output element that outputs "01111 ..." (Positive maximum value) and a multiplexer to which the output from this element and the output of the ALU 5 are input. The multiplexer selects the output of the ALU 5 when the overflow detection signal 11 is 0, and selects the output of the maximum value / minimum value output element when the overflow detection signal 11 is 1.

【0008】いま、メモリ1および2、バス3および
4、ALU5、レジスタ9および10におけるデータのビ
ット数Nが16ビットであるとする。倍精度の演算で
は、ALU5は、バス3とバス4とから供給されるデー
タを2回に亙って加減算する。その結果、2N=32ビ
ットのデータの加減算が可能になる。
Now, it is assumed that the number of bits N of data in the memories 1 and 2, the buses 3 and 4, the ALU 5, and the registers 9 and 10 is 16 bits. In the double-precision operation, the ALU 5 adds / subtracts the data supplied from the bus 3 and the bus 4 twice. As a result, it is possible to add / subtract 2N = 32-bit data.

【0009】16ビットにおける正の最大値は、2の補
数表示で7fffとなり、負の最小値は8000とな
る。最大値最小値設定手段8は、オーバーフロー検出信
号11がアクティブ(1)でオーバーフロー符号信号12が
正(0)の時には正の最大値7fffを出力し、オーバ
ーフロー検出信号11がアクティブでオーバーフロー符号
信号12が負(1)の時には負の最小値8000を出力す
る。
The maximum positive value in 16 bits is 7fff in 2's complement notation, and the minimum negative value is 8000. The maximum value / minimum value setting means 8 outputs the maximum positive value 7fff when the overflow detection signal 11 is active (1) and the overflow code signal 12 is positive (0), and the overflow detection signal 11 is active and the overflow code signal 12 is output. Is negative (1), the negative minimum value 8000 is output.

【0010】以上のように構成された演算装置におい
て、倍精度(2N=32ビット)のデータXとYの加減
算を行なう場合の動作について説明する。
In the arithmetic unit configured as described above, the operation for performing addition / subtraction of double-precision (2N = 32 bits) data X and Y will be described.

【0011】(1)XとYの下位側データ同士の加減算
のステップ まず、メモリ1からデータXの下位16ビットのデータ
XLを読出してバス3に出力する。また、メモリ2から
データYの下位16ビットのデータYLを読出してバス
4に出力する。ALU5は、XLとYLの加減算を行な
い、結果を最大値最小値設定手段8を介してレジスタ10
に格納する。
(1) Step of Addition / Subtraction of Lower Side Data of X and Y First, the lower 16 bits of data XL of the data X is read from the memory 1 and output to the bus 3. Further, the lower 16 bits of data YL of data Y are read from the memory 2 and output to the bus 4. The ALU 5 performs addition and subtraction of XL and YL, and outputs the result to the register 10 via the maximum / minimum value setting means 8.
To store.

【0012】また、最上位ビットで発生したキャリー
は、キャリーフラグレジスタ7に格納する。このとき、
最大値最小値設定手段8は、ALU5の出力をそのまま
レジスタ10に出力する。
The carry generated in the most significant bit is stored in the carry flag register 7. At this time,
The maximum value / minimum value setting means 8 outputs the output of the ALU 5 to the register 10 as it is.

【0013】(2)XとYの上位側データ同士の加減算
のステップ まず、メモリ1からデータXの上位16ビットのデータ
XUを読出してバス3に出力する。また、メモリ2から
データYの上位16ビットのデータYUを読出してバス
4に出力する。ALU5は、XU、YUおよびキャリー
フラグレジスタ7の値の加減算を行ない、結果を最大値
最小値設定手段8を介してレジスタ9に格納する。
(2) Step of Addition / Subtraction of Higher-Order Data of X and Y: First, the upper 16-bit data XU of the data X is read from the memory 1 and output to the bus 3. Further, the upper 16 bits of data YU of data Y are read from memory 2 and output to bus 4. The ALU 5 performs addition / subtraction of the values of the XU, YU and carry flag register 7, and stores the result in the register 9 via the maximum / minimum value setting means 8.

【0014】このとき、オーバーフロー検出手段6は、
ALU5の演算結果がオーバーフローした場合、オーバ
ーフロー検出信号11とオーバーフローの方向を示すオー
バーフロー符号信号12とを出力する。最大値最小値設定
手段8は、オーバーフロー検出信号11がアクティブでオ
ーバーフロー符号信号12が正のときは正の最大値(7f
ff)を出力し、オーバーフロー検出信号11がアクティ
ブでオーバーフロー符号信号12が負のときは負の最小値
(8000)を出力する。また、オーバーフロー検出信
号12がアクティブでないときはALU5の出力をそのま
ま出力する。
At this time, the overflow detecting means 6 is
When the calculation result of the ALU 5 overflows, the overflow detection signal 11 and the overflow code signal 12 indicating the direction of the overflow are output. The maximum value / minimum value setting means 8 is a positive maximum value (7f) when the overflow detection signal 11 is active and the overflow sign signal 12 is positive.
ff), and when the overflow detection signal 11 is active and the overflow sign signal 12 is negative, the minimum negative value (8000) is output. When the overflow detection signal 12 is not active, the output of ALU5 is output as it is.

【0015】以上の(1)と(2)のステップの動作に
より倍精度データの加減算が行なわれ、下位16ビット
の演算結果がレジスタ10に、上位16ビットの演算結果
がレジスタ9に、それぞれ格納される。
By the operations of the steps (1) and (2), the double-precision data is added and subtracted, and the operation result of the lower 16 bits is stored in the register 10 and the operation result of the upper 16 bits is stored in the register 9. To be done.

【0016】[0016]

【発明が解決しようとする課題】しかし、従来の演算装
置では、倍精度の演算において、演算結果がオーバーフ
ローした場合、演算結果32ビットのうちレジスタ10に
格納された下位側16ビットの値は補正されないので、
32ビット精度での正の最大値または負の最小値に正し
くオーバーフロー補正することができないという問題点
を有している。
However, in the conventional arithmetic unit, when the arithmetic result overflows in the double precision arithmetic, the value of the lower 16 bits stored in the register 10 of the arithmetic result 32 bits is corrected. Is not done,
There is a problem that the overflow cannot be correctly corrected to the maximum positive value or the minimum negative value with 32-bit precision.

【0017】また、近年、ディジタル通信の誤り訂正
に、しばしば畳込み符号が使用され、DSPにより、こ
の誤り訂正用畳込み符号のビタビ復号処理を行なうこと
が増えている。ビタビ復号は、いわゆるACS(加算比
較選択)演算と呼ばれる処理を繰返すことにより実行さ
れる。このACS演算は、2回の加算を行ない、その加
算結果の大小を比較し、その比較結果に基づいて、2個
の加算結果のいずれかを選択する処理である。このよう
な処理を繰返すので、ビタビ復号結果を得るまでには、
多くの回数の演算が必要となり、時間が掛かる。そのた
め、こうした多数回の演算を効率的に処理して演算の高
速化を図ること、また、その各演算においてオーバーフ
ローが発生した場合に、正確にオーバーフロー補正する
ことが求められている。
Further, in recent years, a convolutional code is often used for error correction in digital communication, and the Viterbi decoding process of the error correction convolutional code is often performed by a DSP. Viterbi decoding is executed by repeating a process called a so-called ACS (addition comparison selection) operation. This ACS operation is a process of performing addition twice, comparing the magnitudes of the addition results, and selecting one of the two addition results based on the comparison result. Since such processing is repeated, by the time the Viterbi decoding result is obtained,
A large number of calculations are required and it takes time. Therefore, it is required to efficiently process such a large number of calculations to speed up the calculations, and to accurately correct the overflow when an overflow occurs in each of the calculations.

【0018】本発明は、こうした課題に応えるものであ
り、倍精度データの演算に際して正確にオーバーフロー
補正することができる演算装置及び演算方法を提供する
ことを目的としている。
The present invention addresses these problems, and an object of the present invention is to provide an arithmetic unit and an arithmetic method capable of accurately performing overflow correction when arithmetically operating double-precision data.

【0019】また、多数の演算を効率的に処理すること
ができ、また、その演算におけるオーバーフロー補正を
正確に行なうことができる演算装置及び演算方法を提供
することを目的としている。
It is another object of the present invention to provide an arithmetic unit and an arithmetic method capable of efficiently processing a large number of arithmetic operations and accurately performing overflow correction in the arithmetic operations.

【0020】[0020]

【課題を解決するための手段】そこで、本発明では、倍
精度データの上位桁の演算結果を記憶する第1のレジス
タと、倍精度データの下位桁の演算結果を記憶する第2
のレジスタと、演算結果のオーバーフローを検出するオ
ーバーフロー検出手段と、このオーバーフロー検出手段
の検出結果に基づいて第1のレジスタに最大値または最
小値を出力する最大値最小値設定手段とを備えた演算装
置において、オーバーフロー検出手段の検出結果に基づ
いて第2のレジスタの出力値を全ビットが0または1の
データに設定する補正手段を設けている。
Therefore, in the present invention, the first register for storing the operation result of the upper digit of the double precision data and the second register for storing the operation result of the lower digit of the double precision data.
And a maximum value / minimum value setting means for outputting the maximum value or the minimum value to the first register based on the detection result of the overflow detection means. The apparatus is provided with a correction unit that sets the output value of the second register to data in which all bits are 0 or 1 based on the detection result of the overflow detection unit.

【0021】また、倍精度データの上位桁の演算と下位
桁の演算とを複数回に分けて行なう倍精度データの演算
方法において、倍精度データの上位桁の演算に際して、
演算結果のオーバーフローを検出し、このオーバーフロ
ーの検出結果に基づいて、上位桁の演算結果を最大値ま
たは最小値に設定するとともに、下位桁の演算結果を全
ビットが0または1のデータに設定している。
In addition, in the method of calculating the double-precision data in which the calculation of the upper digit and the calculation of the lower digit of the double-precision data are performed a plurality of times, in calculating the upper digit of the double-precision data,
An overflow of the operation result is detected, and the operation result of the upper digit is set to the maximum value or the minimum value based on the overflow detection result, and the operation result of the lower digit is set to the data whose all bits are 0 or 1. ing.

【0022】また、1つの演算器が扱うデータのビット
幅に複数のデータを含めて、メモリから同時に読み出し
た複数のデータに対する複数の演算を並列に行い、前記
複数の演算のそれぞれでのオーバーフローの有無に応じ
て、前記複数の演算のそれぞれの結果として最大値また
は最小値を出力するように構成している。
Bits of data handled by one arithmetic unit
Include multiple data in width and read from memory simultaneously
A plurality of operations on a plurality of data in parallel,
Depending on the presence or absence of overflow in each of the multiple operations
The maximum value or
Is configured to output the minimum value .

【0023】また、レジスタに格納する複数の演算結果
を得るための複数の演算を並列に行い、前記複数の演算
のそれぞれでのオーバーフローの有無に応じて、前記複
数の演算のそれぞれの結果としての最大値または最小値
の格納と、前記レジスタに格納する1つの演算結果を得
るための演算を行い、前記1つの演算結果を得るための
演算でのオーバーフローの有無に応じて、前記1つの演
算結果を得るための演算の結果としての最大値または最
小値の格納とのいずれかの演算が可能であり、前記複数
の演算を行う場合は下位側の前記複数の演算の結果に基
づいてオーバーフローの有無を判断し、オーバーフロー
が発生したときは前記下位側の演算結果として最大値ま
たは最小値を前記レジスタの下位側に格納し、前記1つ
の演算結果を得るための演算を行う場合は前記1つの演
算の結果に基づいてオーバーフローの有無を判断し、オ
ーバーフローが発生したときは前記1つのデータに対す
る演算結果として最大値または最小値の下位側を前記レ
ジスタの下位側に格納するように構成している。
Further, a plurality of operation results stored in the register
To perform a plurality of operations in parallel to obtain the plurality of operations
Depending on the presence or absence of overflow in each of the
Maximum or minimum value as a result of each number operation
And the operation result stored in the register.
To obtain the above-mentioned one calculation result
Depending on the presence or absence of overflow in the operation,
The maximum or maximum value as the result of the operation to obtain the calculation result.
It is possible to perform any operation with the storage of small values,
Is calculated based on the results of the above multiple operations on the lower side.
Based on the presence of overflow,
When occurs, the maximum value is returned as the calculation result of the lower side.
Or the minimum value is stored in the lower side of the register, and
When performing the operation to obtain the operation result of
The presence or absence of overflow is determined based on the result of the
If one overflow occurs
The lower side of the maximum value or the minimum value as the calculation result
It is configured to be stored in the lower side of the register .

【0024】また、本発明の演算方法では、1つの演算
器が扱うデータのビット幅に複数のデータを含めて、メ
モリから同時に読み出した複数のデータに対する複数の
演算を並列に行い、前記複数の演算のそれぞれでのオー
バーフローの有無に応じて、前記複数の演算のそれぞれ
の結果として最大値または最小値を出力するようにして
いる。
Further, in the calculation method of the present invention, one calculation
Including the multiple data in the bit width of the data
Memory for multiple data read simultaneously from memory.
The operations are performed in parallel, and each operation of the plurality of operations is performed.
Each of the plurality of operations depending on the presence or absence of bar flow
To output the maximum or minimum value as a result of
There is.

【0025】さらに、本発明の演算方法では、レジスタ
に格納する複数の演算結果を得るための複数の演算を並
列に行い、前記複数の演算のそれぞれでのオーバーフロ
ーの有無に応じて、前記複数の演算のそれぞれの結果と
しての最大値または最小値の格納と、前記レジスタに格
納する1つの演算結果を得るための演算を行い、前記1
つの演算結果を得るための演算でのオーバーフローの有
無に応じて、前記1つの演算結果を得るための演算の結
果としての最大値または最小値の格納とのいずれかの演
算が可能であり、前記複数の演算を行う場合は下位側の
前記複数の演算の結果に基づいてオーバーフローの有無
を判断し、オーバーフローが発生したときは前記下位側
の演算結果として最大値または最小値を前記レジスタの
下位側に格納し、前記1つの演算結果を得るための演算
を行う場合は前記1つの演算の結果に基づいてオーバー
フローの有無を判断し、オーバーフローが発生したとき
は前記1つのデータに対する演算結果として最大値また
は最小値の下位側を前記レジスタの下位側に格納するよ
うにしている。
Further, in the calculation method of the present invention, the register
Store multiple operations in parallel to obtain multiple operation results.
Done in columns and overflow in each of the above operations
Depending on the presence or absence of
Storage of the maximum or minimum value and the value stored in the register.
Perform the calculation to obtain one calculation result
There is an overflow in the operation to obtain one operation result.
Depending on nothing, the result of the operation for obtaining the above-mentioned one operation result
Play either with maximum or minimum value storage
Is possible, and when performing the above multiple operations,
Whether there is an overflow based on the results of the multiple operations
When an overflow occurs, the lower side
The maximum value or the minimum value as the operation result of
An operation for storing in the lower side and obtaining the above-mentioned one operation result
When performing
When there is a flow and an overflow occurs
Is the maximum value as the operation result for the one data or
Stores the lower side of the minimum value in the lower side of the register.
I am sorry.

【0026】[0026]

【作用】そのため、倍精度データの演算を行なう演算装
置及び演算方法では、オーバーフローが発生して、上位
桁が最大値に設定されるときには、下位桁も「1111
‥」に設定され、また、上位桁が最小値に設定されると
きには、下位桁も「0000‥」に設定される。従っ
て、倍精度の演算において、正確なオーバーフロー補正
が行なわれる。
Therefore, in the arithmetic unit and the arithmetic method for arithmetically operating double-precision data, when overflow occurs and the upper digit is set to the maximum value, the lower digit is also "1111".
. "And the upper digit is set to the minimum value, the lower digit is also set to" 0000 ... ". Therefore, in double-precision arithmetic, accurate overflow correction is performed.

【0027】また、並列演算を行なう演算装置及び演算
方法では、複数の演算が同時並行して行なわれるため、
多数回の演算を高速で処理することが可能であり、ま
た、その際にオーバーフローが発生すると、各演算毎に
正しいオーバーフロー補正が行なわれる。
Further, in the arithmetic unit and the arithmetic method for performing parallel arithmetic, a plurality of arithmetics are simultaneously performed in parallel,
It is possible to process a large number of calculations at high speed, and if an overflow occurs at that time, correct overflow correction is performed for each calculation.

【0028】[0028]

【実施例】【Example】

(第1実施例)本発明の第1実施例における演算装置
は、図1に示すように、オーバーフロー検出信号11がア
クティブで、オーバーフロー符号信号12が正の時にレジ
スタ10の出力として値(ffff)を出力し、オーバー
フロー検出信号11がアクティブで符号信号12が負の時に
レジスタ10の出力として値(0000)を出力し、オー
バーフロー検出信号がアクティブでない時にレジスタ10
の値をそのまま出力する補正値設定手段13を備えてい
る。その他の構成は、従来の装置と変わりがない。
(First Embodiment) As shown in FIG. 1, the arithmetic unit in the first embodiment of the present invention outputs a value (ffff) as the output of the register 10 when the overflow detection signal 11 is active and the overflow sign signal 12 is positive. When the overflow detection signal 11 is active and the sign signal 12 is negative, a value (0000) is output as the output of the register 10, and when the overflow detection signal is not active, the register 10 is output.
The correction value setting means 13 is provided for outputting the value of as is. Other configurations are the same as those of the conventional device.

【0029】この補正値設定手段13は、図2に示すよう
に、オーバーフロー符号信号12がアクティブのときに
「0000‥」を、また、オーバーフロー符号信号12が
アクティブでない(0)のときに「1111‥」を出力
する補正値出力素子と、この素子からの出力とレジスタ
10の出力とが入力するマルチプレクサとを備えている。
マルチプレクサは、オーバーフロー検出信号11がアクテ
ィブ(1)のときに補正値出力素子の出力を選択し、オ
ーバーフロー検出信号11がアクティブでない(0)とき
にレジスタ10の出力を選択する。
As shown in FIG. 2, the correction value setting means 13 outputs "0000 ..." When the overflow code signal 12 is active, and "1111" when the overflow code signal 12 is inactive (0). Outputting correction value output element, output from this element and register
It has a multiplexer to which 10 outputs are input.
The multiplexer selects the output of the correction value output element when the overflow detection signal 11 is active (1), and selects the output of the register 10 when the overflow detection signal 11 is not active (0).

【0030】いま、メモリ1および2、バス3および
4、ALU5、レジスタ9および10におけるデータのビ
ット数Nが16ビットであるとして、倍精度(2N=3
2ビット)のデータXとYの加減算を行なう場合の動作
について説明する。
Now, assuming that the number of bits N of data in the memories 1 and 2, buses 3 and 4, ALU 5, registers 9 and 10 is 16 bits, double precision (2N = 3
An operation for adding / subtracting 2-bit data X and Y will be described.

【0031】(1)XとYの下位側データ同士の加減算
のステップ まず、メモリ1からデータXの下位16ビットのデータ
XLを読出してバス3に出力する。また、メモリ2から
データYの下位16ビットのデータYLを読出してバス
4に出力する。ALU5は、XLとYLの加減算を行な
い、結果を最大値最小値設定手段8を介してレジスタ10
に格納する。また、最上位ビットで発生したキャリーは
キャリーフラグレジスタ7に格納する。このとき、最大
値最小値設定手段8は、ALU5の出力をそのままレジ
スタ10に出力する。
(1) Step of Addition / Subtraction of X and Y Lower Side Data First, lower 16 bits of data XL of the data X is read from the memory 1 and output to the bus 3. Further, the lower 16 bits of data YL of data Y are read from the memory 2 and output to the bus 4. The ALU 5 performs addition and subtraction of XL and YL, and outputs the result to the register 10 via the maximum / minimum value setting means 8.
To store. The carry generated in the most significant bit is stored in the carry flag register 7. At this time, the maximum value / minimum value setting means 8 outputs the output of the ALU 5 to the register 10 as it is.

【0032】(2)XとYの上位側データ同士の加減算
のステップ まず、メモリ1からデータXの上位16ビットのデータ
XUを読出してバス3に出力する。また、メモリ2から
データYの上位16ビットのデータYUを読出してバス
4に出力する。ALU5は、XU、YUおよびキャリー
フラグレジスタ7の値の加減算を行ない、結果を最大値
最小値設定手段8を介してレジスタ9に格納する。
(2) Step of Addition / Subtraction of Higher-Order Data of X and Y: First, the upper 16-bit data XU of the data X is read from the memory 1 and output to the bus 3. Further, the upper 16 bits of data YU of data Y are read from memory 2 and output to bus 4. The ALU 5 performs addition / subtraction of the values of the XU, YU and carry flag register 7, and stores the result in the register 9 via the maximum / minimum value setting means 8.

【0033】このとき、オーバーフロー検出手段6は、
ALU5の演算結果がオーバーフローした場合、オーバ
ーフロー検出信号11とオーバーフローの方向を示すオー
バーフロー符号信号12とを出力する。最大値最小値設定
手段8は、オーバーフロー検出信号11がアクティブでオ
ーバーフロー符号信号12が正の時は正の最大値(7ff
f)を出力し、オーバーフロー検出信号11がアクティブ
でオーバーフロー符号信号12が負の時は負の最小値(8
000)を出力し、オーバーフロー検出信号11がアクテ
ィブでない場合はALU5の出力をそのまま出力する。
At this time, the overflow detecting means 6 is
When the calculation result of the ALU 5 overflows, the overflow detection signal 11 and the overflow code signal 12 indicating the direction of the overflow are output. The maximum value / minimum value setting means 8 is a maximum positive value (7ff) when the overflow detection signal 11 is active and the overflow sign signal 12 is positive.
f) is output, and when the overflow detection signal 11 is active and the overflow sign signal 12 is negative, the minimum negative value (8
000) is output, and if the overflow detection signal 11 is not active, the output of the ALU 5 is output as it is.

【0034】また、オーバーフロー検出手段6からオー
バーフロー検出信号11及びオーバーフロー符号信号12が
入力した補正値設定手段13は、オーバーフロー検出信号
11がアクティブでオーバーフロー符号信号12が正のとき
は値(ffff)をレジスタ10の出力として設定し、オ
ーバーフロー検出信号11がアクティブで符号信号12が負
のときは値(0000)をレジスタ10の出力として設定
する。また、オーバーフロー検出信号11がアクティブで
ない場合は、レジスタ10の値をそのまま出力する。
The correction value setting means 13 to which the overflow detection signal 11 and the overflow code signal 12 are input from the overflow detection means 6
When 11 is active and overflow sign signal 12 is positive, the value (ffff) is set as the output of register 10. When overflow detection signal 11 is active and sign signal 12 is negative, the value (0000) is output from register 10. Set as. When the overflow detection signal 11 is not active, the value of the register 10 is output as it is.

【0035】以上の(1)と(2)のステップの動作に
より倍精度データの加減算が行なわれる。
By the operations of the above steps (1) and (2), addition / subtraction of double precision data is performed.

【0036】従って、オーバーフロー時に最大値最小値
設定手段8が演算結果の上位側データを補正した場合に
は、補正値設定手段13が演算結果の下位側データを補正
し、それにより、加減算結果が正の方向にオーバーフロ
ーした場合は、32ビットの正の最大値(7fffff
ff)が出力され、また、加減算結果が負の方向にオー
バーフローした場合は、32ビットの負の最小値(80
000000)が出力される。
Therefore, when the maximum value / minimum value setting means 8 corrects the upper data of the calculation result at the time of overflow, the correction value setting means 13 corrects the lower data of the calculation result, whereby the addition / subtraction result is When overflowing in the positive direction, the maximum positive value of 32 bits (7fffff
ff) is output and the addition / subtraction result overflows in the negative direction, the 32-bit negative minimum value (80
000000) is output.

【0037】なお、補正値設定手段13の設定した値をレ
ジスタ10に格納するように構成することもできる。
The value set by the correction value setting means 13 may be stored in the register 10.

【0038】このように第1実施例の演算装置は、倍精
度データ同士の加減算に際して、オーバーフロー補正を
正確に行なうことができる。また、この補正は、2ステ
ップの高速で実行される。
As described above, the arithmetic unit of the first embodiment can accurately perform overflow correction when adding / subtracting double-precision data. Further, this correction is executed at a high speed of 2 steps.

【0039】(第2実施例)第2実施例では、第1実施
例における補正値設定手段13をレジスタ10と一体的に構
成している。
(Second Embodiment) In the second embodiment, the correction value setting means 13 in the first embodiment is constructed integrally with the register 10.

【0040】この装置は、図3に示すように、レジスタ
10がセット・リセット機能付きDラッチによって構成さ
れる。
This device, as shown in FIG.
10 is composed of a D latch with a set / reset function.

【0041】レジスタ10のデータ入力端子Dには、最大
値最小値設定手段8からのデータが入力し、このデータ
は、書込みイネーブル端子Eがアクティブであるとき、
レジスタ10に書込まれ、データ出力端子Qからバス3に
出力される。
The data from the maximum / minimum value setting means 8 is input to the data input terminal D of the register 10, and this data is obtained when the write enable terminal E is active.
It is written in the register 10 and output from the data output terminal Q to the bus 3.

【0042】オーバーフロー検出信号11がアクティブと
なり、同時にオーバーフロー符号信号12がアクティブと
なると、リセット端子Rがアクティブとなって、レジス
タ10は「0000」にリセットされ、データ出力端子Q
からは「0000」が出力される。
When the overflow detection signal 11 becomes active and at the same time the overflow code signal 12 becomes active, the reset terminal R becomes active, the register 10 is reset to "0000", and the data output terminal Q
Outputs "0000".

【0043】オーバーフロー検出信号11がアクティブ
で、オーバーフロー符号信号12がノンアクティブのとき
は、セット端子Sがアクティブとなって、レジスタ10は
「ffff」にセットされ、データ出力端子Qからは
「ffff」が出力される。
When the overflow detection signal 11 is active and the overflow code signal 12 is inactive, the set terminal S becomes active, the register 10 is set to "ffff", and the data output terminal Q outputs "ffff". Is output.

【0044】その結果、オーバーフロー時に最大値最小
値設定手段8がレジスタ9に格納する演算結果の上位側
データを最大値または最小値に補正するとき、併せて、
レジスタ10に格納された演算結果の下位側データが「f
fff」または「0000」に補正される。
As a result, when the maximum value / minimum value setting means 8 corrects the upper data of the calculation result stored in the register 9 to the maximum value or the minimum value at the time of overflow,
The lower-order data of the operation result stored in the register 10 is “f
It is corrected to "fff" or "0000".

【0045】(第3実施例)第3実施例の演算装置は、
倍精度の演算と、演算装置のビット幅の半分のビット幅
の演算を二つ同時に並行して実行する並列演算とを選択
して処理することができ、また、それら演算におけるオ
ーバーフロー補正を正確に行なうことができる。
(Third Embodiment) The arithmetic unit of the third embodiment is
It is possible to select and process double-precision operations and parallel operations in which two operations with a bit width that is half the bit width of the operation device are executed in parallel at the same time. Can be done.

【0046】この演算装置は、図4に示すように、8ビ
ット幅のALU2個を並列に並べた構成を有するALU
5と、ALU5の演算結果の最上位桁のキャリーの値を
オーバーフロー符号信号12として出力し、この最上位桁
のキャリーの値と一つ手前の桁からのキャリーの値とが
一致したときに0、一致しないときに1のオーバーフロ
ー検出信号11を出力する第1のオーバーフロー検出手段
6と、ALU5の演算結果の下位側から8ビット目のキ
ャリーの値をオーバーフロー符号信号16として出力し、
この下位側から8ビット目のキャリーの値と7ビット目
の桁からのキャリーの値とが一致したときに0、一致し
ないときに1のオーバーフロー検出信号15を出力する第
2のオーバーフロー検出手段14と、倍精度演算または並
列演算においてオーバーフローが発生したときに、それ
らの演算に応じた最大値または最小値を出力し、オーバ
ーフローが発生していないときにALU5の演算結果を
出力する最大値最小値設定手段8とを備えている。その
他の構成は第1実施例の演算装置と変わりがない。
As shown in FIG. 4, this arithmetic unit is an ALU having a structure in which two 8-bit wide ALUs are arranged in parallel.
5 and the carry value of the most significant digit of the operation result of the ALU5 are output as the overflow code signal 12, and when the carry value of this most significant digit and the carry value from the preceding digit are 0, , The first overflow detection means 6 which outputs the overflow detection signal 11 of 1 when they do not match, and the carry value of the 8th bit from the lower side of the operation result of the ALU 5 are output as the overflow code signal 16.
Second overflow detection means 14 which outputs an overflow detection signal 15 of 0 when the value of the carry of the 8th bit from the lower side and the value of the carry from the digit of the 7th bit match, and 1 when they do not match. And the maximum or minimum value that outputs the maximum value or the minimum value according to the double precision arithmetic operation or the parallel arithmetic operation when the overflow occurs and outputs the arithmetic result of the ALU5 when the overflow does not occur. The setting means 8 is provided. The other structure is the same as that of the arithmetic unit of the first embodiment.

【0047】第1のオーバーフロー検出手段6の構成は
図8と同じである。また、第2のオーバーフロー検出手
段14は、図5に示すように、ALU5の演算結果の下位
側から8ビット目のキャリーの値をオーバーフローの方
向を示すオーバーフロー符号信号16として出力し(オー
バーフローの方向が正のときは0、負のときは1)、ま
た、この下位側から8ビット目のキャリーの値と7ビッ
ト目の桁からのキャリーの値とが一致したときに0、一
致しないときに1のオーバーフロー検出信号15を出力す
る。
The structure of the first overflow detecting means 6 is the same as that shown in FIG. Further, as shown in FIG. 5, the second overflow detecting means 14 outputs the carry value of the 8th bit from the lower side of the operation result of the ALU 5 as an overflow code signal 16 indicating the direction of overflow (direction of overflow). Is 0 when it is positive, 1 when it is negative), and 0 when the value of the carry of the 8th bit from the lower order and the value of the carry from the 7th bit are equal, and when they do not match. The overflow detection signal 15 of 1 is output.

【0048】また、最大値最小値設定手段8は、図6に
示すように、オーバーフロー符号信号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とを備
えている。
Further, the maximum value / minimum value setting means 8 sets "10000000" (8-bit negative minimum value) when the overflow code signal 16 is 1, and the overflow code signal 16 as shown in FIG. When is 0, "0111
1111 "(8-bit positive maximum value) for outputting the maximum-minimum value output element 81, and when the overflow code signal 12 is 1," 1000000000000000 "(16-bit negative minimum value), and overflow code signal
"01111111111111111" when 12 is 0
The maximum value minimum value output element 82 that outputs (16-bit positive maximum value), the upper 8 bits of the output of the maximum value minimum value output element 82, and the upper 8 bits of the ALU 5 are input, and the overflow detection signal 11 The multiplexer 8 for selecting them by, the lower 8 bits of the output of the maximum / minimum value output element 82, the output of the maximum / minimum value output element 81 and the lower 8 bits of the ALU 5 are input, and the overflow detection signal 11 or 15 is used. And a multiplexer 83 for selecting them.

【0049】マルチプレクサ83は、オーバーフロー検出
信号11が0のときにはALU5の上位側出力を選択し、
また、オーバーフロー検出信号11が1のときには最大値
最小値出力素子82の出力の上位8ビットを選択して出力
する。従って、マルチプレクサ83は、オーバーフロー検
出信号11が1の場合に、オーバーフロー符号信号12が1
であれば「10000000」(8ビットの負の最小
値)を、また、オーバーフロー符号信号12が0であれば
「01111111」(8ビットの正の最大値)を出力
する。
The multiplexer 83 selects the upper output of the ALU 5 when the overflow detection signal 11 is 0,
When the overflow detection signal 11 is 1, the upper 8 bits of the output of the maximum / minimum value output element 82 are selected and output. Therefore, the multiplexer 83 determines that the overflow code signal 12 is 1 when the overflow detection signal 11 is 1.
If so, "10000000" (8-bit negative minimum value) is output, and if the overflow code signal 12 is 0, "01111111" (8-bit positive maximum value) is output.

【0050】また、マルチプレクサ84は、制御部(図示
せず)が並列演算を指示している場合には、オーバーフ
ロー検出信号15によって、ALU5の下位側出力または
最大値最小値出力素子81の出力のいずれかを選択し、オ
ーバーフロー検出信号15が0のときには、ALU5の下
位側の演算結果を出力し、また、オーバーフロー検出信
号15が1のときには、オーバーフロー符号信号16が1で
あれば「10000000」(8ビットの負の最小値)
を、オーバーフロー符号信号16が0であれば「0111
1111」(8ビットの正の最大値)を出力する。
When the control section (not shown) instructs parallel operation, the multiplexer 84 outputs the lower side output of the ALU 5 or the output of the maximum / minimum value output element 81 according to the overflow detection signal 15. If any one of them is selected and the overflow detection signal 15 is 0, the operation result of the lower side of the ALU 5 is output, and when the overflow detection signal 15 is 1, if the overflow code signal 16 is 1, then "10000000" ( 8-bit negative minimum value)
If the overflow code signal 16 is 0, “0111
1111 ”(8-bit positive maximum value) is output.

【0051】一方、制御部(図示せず)が並列演算を指
示していない場合には、マルチプレクサ84は、オーバー
フロー検出信号11によって、ALU5の下位側出力また
は最大値最小値出力素子82の下位8ビットの出力のいず
れかを選択し、オーバーフロー検出信号11が0のときに
は、ALU5の下位側出力を出力し、また、オーバーフ
ロー検出信号11が1のときには、オーバーフロー符号信
号12が1であれば「00000000」を、オーバーフ
ロー符号信号12が0であれば「11111111」を出
力する。
On the other hand, when the control unit (not shown) does not instruct parallel operation, the multiplexer 84 receives the overflow detection signal 11 and outputs the lower side of the ALU 5 or the lower side 8 of the maximum / minimum value output element 82. When any one of the bit outputs is selected and the overflow detection signal 11 is 0, the lower side output of the ALU 5 is output, and when the overflow detection signal 11 is 1, if the overflow code signal 12 is 1, then "00000000". , And if the overflow code signal 12 is 0, “11111111” is output.

【0052】この演算装置で倍精度の演算を行なう場合
は、メモリ1から32ビットのデータXの下位16ビッ
トのデータXLを読出し、また、メモリ2から32ビッ
トのデータYの下位16ビットのデータYLを読出し、
8ビット幅の2個のALUの一方(下位側)を用いて1
ビット目から8ビット目までの演算を行ない、他方(上
位側)のALUを用いて9ビット目から16ビット目ま
での演算を行なう。このとき、下位側ALUの8ビット
目のキャリーの値が上位側ALUの9ビット目の演算に
加えられるように構成する。また、上位側の16ビット
目で発生したキャリーは、キャリーフラグレジスタ7に
格納する。
When performing a double precision operation with this arithmetic unit, the lower 16 bits of data XL of the 32-bit data X is read from the memory 1 and the lower 16 bits of data Y of the 32-bit data Y is read from the memory 2. Read YL,
1 using one (lower side) of two 8-bit wide ALUs
The operation from the 8th bit to the 8th bit is performed, and the operation from the 9th bit to the 16th bit is performed using the other (upper side) ALU. At this time, the carry value of the 8th bit of the lower ALU is added to the operation of the 9th bit of the upper ALU. The carry generated in the 16th bit on the upper side is stored in the carry flag register 7.

【0053】下位側ALUの演算結果は最大値最小値設
定手段8のマルチプレクサ84に入力し、また、上位側A
LUの演算結果はマルチプレクサ83に入力する。このと
きマルチプレクサ83、84は、上位側ALUおよび下位側
ALUの出力をそのまま選択し、最大値最小値設定手段
8からは、それらを合わせた16ビットのデータが出力
され、レジスタ10に格納される。
The calculation result of the lower ALU is input to the multiplexer 84 of the maximum / minimum value setting means 8, and the upper A
The calculation result of LU is input to the multiplexer 83. At this time, the multiplexers 83 and 84 select the outputs of the upper side ALU and the lower side ALU as they are, and the maximum value / minimum value setting means 8 outputs 16-bit data combining them and stored in the register 10. .

【0054】次に、メモリ1からデータXの上位16ビ
ットのデータXUを読出し、また、メモリ2からデータ
Yの上位16ビットのデータYUを読出し、8ビット幅
の2個のALUを用いて、XU、YUおよびキャリーフ
ラグレジスタ7の値の加減算を行ない、上位側ALUの
演算結果を最大値最小値設定手段8のマルチプレクサ83
に、また、下位側ALUの演算結果をマルチプレクサ84
に入力する。
Next, the upper 16-bit data XU of the data X is read from the memory 1, the upper 16-bit data YU of the data Y is read from the memory 2, and two ALUs each having an 8-bit width are used. The values of XU, YU and carry flag register 7 are added and subtracted, and the operation result of the upper ALU is set by multiplexer 83 of maximum value / minimum value setting means 8.
In addition, the operation result of the lower ALU is output to the multiplexer 84.
To enter.

【0055】このとき、オーバーフロー検出手段6は、
上位側ALUの演算結果がオーバーフローした場合に、
オーバーフロー検出信号11とオーバーフローの方向を示
すオーバーフロー符号信号12とを出力する。オーバーフ
ロー検出信号11が出力されると、最大値最小値設定手段
8のマルチプレクサ83は、最大値最小値出力素子82から
オーバーフロー符号信号12に応じて出力された16ビッ
トの正の最大値または負の最小値の上位8ビットを選択
して出力し、また、倍精度演算が指定されているマルチ
プレクサ84は、この16ビットの下位8ビットを選択し
て出力する。その結果、オーバーフロー発生時には、最
大値最小値設定手段8から、それらを合わせた16ビッ
トの最大値または最小値が出力されレジスタ9に格納さ
れる。
At this time, the overflow detecting means 6 is
If the operation result of the upper ALU overflows,
An overflow detection signal 11 and an overflow code signal 12 indicating the direction of overflow are output. When the overflow detection signal 11 is output, the multiplexer 83 of the maximum value / minimum value setting means 8 outputs the 16-bit positive maximum value or negative value output from the maximum / minimum value output element 82 in accordance with the overflow sign signal 12. The upper 8 bits of the minimum value are selected and output, and the multiplexer 84 to which the double precision operation is designated selects and outputs the lower 8 bits of the 16 bits. As a result, when an overflow occurs, the maximum value / minimum value setting means 8 outputs the combined 16-bit maximum value or minimum value and stores it in the register 9.

【0056】また、オーバーフローが発生していないと
きには、マルチプレクサ83、84は、それぞれALUの上
位側、下位側の演算結果を出力し、それらを合わせた1
6ビットのデータがレジスタ9に格納される。
When no overflow occurs, the multiplexers 83 and 84 output the operation results of the upper side and the lower side of the ALU, respectively, and combine them into 1
6-bit data is stored in the register 9.

【0057】オーバーフローの発生時には、第1実施例
の場合と同じように、オーバーフロー検出手段6から出
力されたオーバーフロー検出信号11とオーバーフロー符
号信号12とが補正値設定手段13に入力し、補正値設定手
段13は、レジスタ10に格納された値を(ffff)また
は(0000)に補正する。
When an overflow occurs, as in the case of the first embodiment, the overflow detection signal 11 and the overflow code signal 12 output from the overflow detection means 6 are input to the correction value setting means 13 to set the correction value. The means 13 corrects the value stored in the register 10 to (ffff) or (0000).

【0058】このように、第3実施例の演算装置では、
倍精度の演算において、第1実施例の装置と同じよう
に、正確なオーバーフロー補正を行なうことができる。
As described above, in the arithmetic unit of the third embodiment,
In the double-precision calculation, accurate overflow correction can be performed as in the device of the first embodiment.

【0059】次に、演算装置の半分のビット幅の演算
を、2回、並列して行なう場合の動作について説明す
る。
Next, the operation in the case where the operation with the half bit width of the operation device is performed twice in parallel will be described.

【0060】8ビット幅の4つのデータXU’、X
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にするように構成する。
Four data XU ', X having an 8-bit width
For L ', YU', YL ', XU' + YU 'and X
Two additions of L '+ YL' are performed as follows. Data XU ′ is stored in the upper 8 bits of the memory 1 and data XL ′ is stored in the lower 8 bits of the memory 1 in advance.
It is assumed that data YU ′ is stored in the upper 8 bits and data YL ′ is stored in the lower 8 bits. First, the data of XU ′ and XL ′ are read out simultaneously from the memory 1 via the 16-bit bus 3 and input to the right side of the ALU 5. Further, the data of YU 'and YL' are simultaneously read from the memory 2 via the 16-bit bus 4 and input to the left side of the ALU 5.
The ALU 5 performs an operation of XU '+ YU' on its upper side, and in parallel performs an operation of XL '+ YL' on its lower side. At this time, the carry value input to the lower 8th bit to the 9th bit of the ALU is set to 0.

【0061】第1のオーバーフロー検出手段6は、AL
U5の上位側の演算結果がオーバーフローした場合に、
オーバーフロー検出信号11とオーバーフローの方向を示
すオーバーフロー符号信号12とを出力する。オーバーフ
ロー検出信号11が出力される(アクティブになる)と、
最大値最小値設定手段8のマルチプレクサ83は、オーバ
ーフロー符号信号12が正のときには、最大値最小値出力
素子82から出力された16ビットの正の最大値の上位8
ビット(01111111)を選択して出力し、また、
オーバーフロー符号信号12が負のときには、16ビット
の負の最小値の上位8ビット(10000000)を選
択して出力する。
The first overflow detecting means 6 is AL
When the operation result of the upper side of U5 overflows,
An overflow detection signal 11 and an overflow code signal 12 indicating the direction of overflow are output. When the overflow detection signal 11 is output (becomes active),
When the overflow sign signal 12 is positive, the multiplexer 83 of the maximum value / minimum value setting means 8 outputs the upper 8 bits of the 16-bit positive maximum value output from the maximum / minimum value output element 82.
Select and output bit (01111111),
When the overflow code signal 12 is negative, the upper 8 bits (10000000) of the 16-bit negative minimum value are selected and output.

【0062】また、オーバーフロー検出信号11がアクテ
ィブでないときには、マルチプレクサ83は、ALU5の
上位側出力をそのまま出力する。
When the overflow detection signal 11 is not active, the multiplexer 83 outputs the upper side output of the ALU 5 as it is.

【0063】一方、第2のオーバーフロー検出手段14
は、ALU5の下位側の演算結果がオーバーフローした
場合に、オーバーフロー検出信号15とオーバーフローの
方向を示すオーバーフロー符号信号16とを出力する。オ
ーバーフロー検出信号15が出力されると、並列演算が指
示されている最大値最小値設定手段8のマルチプレクサ
84は、オーバーフロー符号信号16が正のときに、最大値
最小値出力素子81から出力された8ビットの正の最大値
(01111111)を選択して出力し、オーバーフロ
ー符号信号16が負のときに、8ビットの負の最小値(1
0000000)を選択して出力する。また、オーバー
フロー検出信号15がアクティブでないときはALU5の
下位側出力をそのまま出力する。
On the other hand, the second overflow detecting means 14
Outputs an overflow detection signal 15 and an overflow code signal 16 indicating the direction of overflow when the lower-order operation result of the ALU 5 overflows. When the overflow detection signal 15 is output, the multiplexer of the maximum value / minimum value setting means 8 instructed to perform parallel operation.
84 selects and outputs the 8-bit positive maximum value (01111111) output from the maximum value minimum value output element 81 when the overflow code signal 16 is positive, and outputs it when the overflow code signal 16 is negative. , 8-bit negative minimum value (1
(0000000) is selected and output. When the overflow detection signal 15 is not active, the lower side output of the ALU 5 is output as it is.

【0064】このマルチプレクサ83およびマルチプレク
サ84の出力は、16ビットのデータに寄せ合わされて、
レジスタ9に格納される。
The outputs of the multiplexer 83 and the multiplexer 84 are put together into 16-bit data,
It is stored in the register 9.

【0065】このように第3実施例の演算装置では、1
ステップで、8ビット幅の加算2回を同時に行なうこと
ができ、また、各演算のそれぞれにオーバーフローが発
生した場合に、正確なオーバーフロー補正を行なうこと
ができる。
Thus, in the arithmetic unit of the third embodiment, 1
In the step, two 8-bit width additions can be performed simultaneously, and when overflow occurs in each operation, accurate overflow correction can be performed.

【0066】なお、第3実施例では、ALU5の下位側
演算結果の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ビットデータに対しては、前述した手順でオー
バーフロー補正を行なうようにする。
In the third embodiment, the maximum value / minimum value output element 81 and the multiplexer 84 for performing the 8-bit overflow correction of the lower operation result of the ALU 5 are provided inside the maximum value / minimum value setting means 8. It is also possible to change these so as to be provided inside the correction value setting means 13. In that case, the upper 8 bits of the register 10 store the upper 8 bits of data of the ALU 5 that has been subjected to overflow correction using the maximum / minimum value output element 82 and the multiplexer 83, and the lower 8 bits are stored in the lower 8 bits. The output of the lower 8 bits of the ALU 8 is stored as it is. Then, the overflow detection signal 15 and the overflow code signal 16 output from the overflow detection means 14 are added to the correction value setting means 13
When the data is input to the register 10, the data is read from the register 10 and output to the bus 3, the correction value setting means 13 outputs the upper 8 bits of the register 10 as they are, and the lower 8 bits of the register 10 data. In this case, overflow correction is performed according to the procedure described above.

【0067】また、第3実施例では、16ビットの演算
を行なうALU8により、8ビットの演算を2回同時に
行なう場合の例を示したが、より並列度の高い演算にも
適用することができる。例えば、4ビットの演算4回を
並列に行なう場合にも、オーバーフロー検出手段と最大
値最小値設定手段を4個ずつ並列に設けるようにすれ
ば、並列演算とそのオーバーフロー補正とを、同様に高
速にしかも正確に行なうことができる。
Further, in the third embodiment, an example in which an 8-bit operation is simultaneously performed twice by the ALU 8 which performs a 16-bit operation has been described, but it can be applied to an operation having a higher degree of parallelism. . For example, even when four 4-bit operations are performed in parallel, if four overflow detection means and four maximum value / minimum value setting means are provided in parallel, the parallel operation and the overflow correction can be similarly performed at high speed. Moreover, it can be done accurately.

【0068】[0068]

【発明の効果】以上の実施例の説明から明らかなよう
に、本発明の演算装置及び演算方法は、倍精度データの
演算に際して、正確にしかも迅速にオーバーフロー補正
を実行することができる。
As is apparent from the above description of the embodiments, the arithmetic unit and the arithmetic method of the present invention can accurately and promptly perform overflow correction when computing double-precision data.

【0069】また、演算装置のビット幅よりも小さいビ
ット幅の演算を同時並列的に行なうことにより、多数の
演算回数を必要とするビタビ復号等の処理を高速化する
ことができ、また、この演算でのオーバーフローの発生
に対して正確なオーバーフロー補正を行なうことができ
る。
By simultaneously performing parallel operations with a bit width smaller than that of the arithmetic unit, it is possible to speed up the processing such as Viterbi decoding which requires a large number of operations, and Accurate overflow correction can be performed with respect to the occurrence of overflow in calculation.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の第1実施例における演算装置の構成を
示すブロック図、
FIG. 1 is a block diagram showing a configuration of an arithmetic unit according to a first embodiment of the present invention,

【図2】前記演算装置の補正値設定手段を示すブロック
図、
FIG. 2 is a block diagram showing a correction value setting means of the arithmetic unit,

【図3】本発明の第2実施例の演算装置の補正値設定手
段を示すブロック図、
FIG. 3 is a block diagram showing a correction value setting means of an arithmetic unit according to a second embodiment of the present invention,

【図4】本発明の第3実施例における演算装置の構成を
示すブロック図、
FIG. 4 is a block diagram showing a configuration of an arithmetic unit according to a third embodiment of the present invention,

【図5】第3実施例の演算装置の第2オーバーフロー検
出手段を示すブロック図、
FIG. 5 is a block diagram showing a second overflow detecting means of the arithmetic unit according to the third embodiment;

【図6】第3実施例の演算装置の最大値最小値設定手段
を示すブロック図、
FIG. 6 is a block diagram showing maximum value / minimum value setting means of the arithmetic unit of the third embodiment;

【図7】従来の演算装置の構成を示すブロック図、FIG. 7 is a block diagram showing a configuration of a conventional arithmetic unit,

【図8】従来の演算装置のオーバーフロー検出手段の構
成を示すブロック図、
FIG. 8 is a block diagram showing the configuration of overflow detection means of a conventional arithmetic unit;

【図9】従来の演算装置の最大値最小値設定手段の構成
を示すブロック図である。
FIG. 9 is a block diagram showing a configuration of maximum value / minimum value setting means of a conventional arithmetic device.

【符号の説明】[Explanation of symbols]

1、2 メモリ 3、4 バス 5 ALU 6、14 オーバーフロー検出手段 7 キャリーフラグレジスタ 8 最大値最小値設定手段 9、10 レジスタ 11、15 オーバーフロー検出信号 12、16 オーバーフロー符号信号 13 補正値設定手段 81、82 最大値最小値出力素子 83、84 マルチプレクサ 1, 2 memory 3, 4 bus 5 ALU 6,14 Overflow detection means 7 Carry flag register 8 Maximum value Minimum value setting means 9, 10 registers 11, 15 Overflow detection signal 12, 16 Overflow sign signal 13 Correction value setting means 81, 82 Maximum value Minimum output element 83, 84 multiplexer

Claims (20)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 倍精度データの上位桁の演算結果を記憶
する第1のレジスタと、倍精度データの下位桁の演算結
果を記憶する第2のレジスタと、演算結果のオーバーフ
ローを検出するオーバーフロー検出手段と、該オーバー
フロー検出手段の検出結果に基づいて前記第1のレジス
タに最大値または最小値を出力する最大値最小値設定手
段とを備えた演算装置において、 前記オーバーフロー検出手段の検出結果に基づいて前記
第2のレジスタの出力値を全ビットが0または1のデー
タに設定する補正手段を設けたことを特徴とする演算装
置。
1. A first register for storing the operation result of the upper digit of double-precision data, a second register for storing the operation result of the lower digit of double-precision data, and overflow detection for detecting overflow of the operation result. And a maximum value / minimum value setting means for outputting a maximum value or a minimum value to the first register based on the detection result of the overflow detection means, wherein the detection result of the overflow detection means is used. The arithmetic unit is provided with a correction means for setting the output value of the second register to data in which all bits are 0 or 1.
【請求項2】 倍精度データの上位桁の演算と下位桁の
演算とを複数回に分けて行なう倍精度データの演算方法
において、 倍精度データの上位桁の演算に際して、演算結果のオー
バーフローを検出し、該オーバーフローの検出結果に基
づいて、前記上位桁の演算結果を最大値または最小値に
設定するとともに、前記下位桁の演算結果を全ビットが
0または1のデータに設定することを特徴とする演算方
法。
2. An arithmetic result overflow is detected when a high-order digit of a double-precision data is calculated in a double-precision data arithmetic method in which an operation of a high-order digit and an operation of a low-order digit of double-precision data are performed a plurality of times. Then, based on the detection result of the overflow, the arithmetic result of the upper digit is set to the maximum value or the minimum value, and the arithmetic result of the lower digit is set to data in which all bits are 0 or 1. Calculation method.
【請求項3】 1つの演算器が扱うデータのビット幅に
複数のデータを含めて、メモリから同時に読み出した複
数のデータに対する複数の演算を並列に行い、 前記複数の演算のそれぞれでのオーバーフローの有無に
応じて、前記複数の演算のそれぞれの結果として最大値
または最小値を出力する 演算装置。
3. The bit width of data handled by one arithmetic unit
Multiple data, including multiple data, read simultaneously from memory.
Perform multiple operations on a number of data in parallel and check for overflow in each of the multiple operations.
Depending on the maximum value as a result of each of the plurality of operations
Or a computing device that outputs the minimum value .
【請求項4】 前記演算装置は、さらに、 1つの演算器によって演算しようとするデータのビット
幅と等しいデータに対する演算を行い、 前記ビット幅と等しいデータに対する演算でのオーバー
フローの有無に応じて、前記ビット幅と等しいデータに
対する演算の結果として最大値または最小値を出力する
処理が可能であり、 前記複数のデータまたは前記ビット幅と等しいデータに
対する演算を選択できる請求項3記載の 演算装置。
4. The arithmetic unit further comprises a bit of data to be arithmetically operated by one arithmetic unit.
Performs operations on the width equal to the data, over at operations on data equal to the bit width
Depending on the presence / absence of flow, data with the same bit width as
Output the maximum or minimum value as the result of the operation
Data that can be processed and is equal to the multiple data or the bit width.
The arithmetic unit according to claim 3, which is capable of selecting an arithmetic operation for it.
【請求項5】 前記複数の演算の結果は、1つのレジス
タに格納される請求 項3または4記載の演算装置。
5. The result of the plurality of operations is one register
The arithmetic unit according to claim 3, which is stored in a computer.
【請求項6】 前記複数のデータに対する演算の結果と
前記ビット幅と等しいデータに対する演算の結果とは同
じレジスタに格納され、 前記複数のデータに対する演算を行う場合は下位側の前
記演算の結果に基づいてオーバーフローの有無を判断
し、オーバーフローが発生したときは前記下位側の演算
結果として最大値または最小値を前記レジスタの下位側
に格納し、 前記ビット幅と等しいデータに対する演算を行う場合は
前記ビット幅と等しいデータに対する演算の結果に基づ
いてオーバーフローの有無を判断し、オーバーフローが
発生したときは前記ビット幅と等しいデータに対する演
算結果として最大値または最小値の下位側を前記レジス
タの下位側に格納することを特徴とする請求項4記載の
演算装置
6. A result of an operation on the plurality of data,
Same as the result of operation on data with the same bit width
Flip stored in the register, before the lower side when performing operations on the plurality of data
Judgment of overflow based on the result of arithmetic operation
However, when an overflow occurs, the operation on the lower side is performed.
As a result, the maximum or minimum value is set to the lower side of the register.
Stored in, when performing operations on data equal to the bit width
Based on the result of the operation on the data with the same bit width
Check whether there is an overflow,
When it occurs, the performance for the data equal to the bit width is generated.
The lower side of the maximum value or the minimum value as the calculation result is the register
The data is stored in the lower side of the data.
Arithmetic unit .
【請求項7】 レジスタに格納する複数の演算結果を得
るための複数の演算を並列に行い、 前記複数の演算のそれぞれでのオーバーフローの有無に
応じて、前記複数の演算のそれぞれの結果としての最大
値または最小値の格納と、 前記レジスタに格納する1つの演算結果を得るための演
算を行い、 前記1つの演算結果を得るための演算でのオーバーフロ
ーの有無に応じて、前記1つの演算結果を得るための演
算の結果としての最大値または最小値の格納とのいずれ
かの演算が可能であり、 前記複数の演算を行う場合は下位側の前記複数の演算の
結果に基づいてオーバーフローの有無を判断し、オーバ
ーフローが発生したときは前記下位側の演算結果として
最大値または最小値を前記レジスタの下位側に格納し、 前記1つの演算結果を得るための演算を行う場合は前記
1つの演算の結果に基づいてオーバーフローの有無を判
断し、オーバーフローが発生したときは前記1つのデー
タに対する演算結果として最大値または最小値の下位側
を前記レジスタの下位側に格納することを特徴とする演
算装置
7. A plurality of operation results to be stored in a register are obtained.
Multiple operations in parallel to determine whether there is an overflow in each of the multiple operations.
Depending on the maximum as a result of each of the plurality of operations
The storage of the value or the minimum value and the operation for obtaining one operation result stored in the register.
Overflow in the calculation to obtain one of the above calculation results.
Depending on the presence or absence of
Whether to store the maximum or minimum value as the result of arithmetic
Is possible, and in the case of performing the plurality of operations, one of the plurality of operations on the lower side is
The presence or absence of overflow is judged based on the result, and the overflow
-When a flow occurs, as the calculation result of the lower side
When storing the maximum value or the minimum value in the lower side of the register and performing the operation for obtaining the one operation result,
The presence or absence of overflow can be determined based on the result of one operation.
If there is a disconnection and an overflow occurs,
The lower side of the maximum or minimum value as the calculation result for
Is stored in the lower side of the register.
Arithmetic unit .
【請求項8】 前記1つの演算器が扱うデータのビット
幅とは、前記複数のデータに対する演算の結果を格納す
る1つのレジスタのビット幅に等しいことを 特徴とする
請求項6記載の演算装置
8. A bit of data handled by the one arithmetic unit
The width stores the result of the operation on the plurality of data.
Characterized in that equal to the bit width of one of the registers that
The arithmetic unit according to claim 6 .
【請求項9】 前記最大値は正の最大値であり、前記最
小値は負の最小値である請求項3から8のいずれかに記
載の演算装置
9. The maximum value is a positive maximum value.
The small value is the negative minimum value.
On-board computing device .
【請求項10】 前記最大値または最小値は前記演算の
ビット幅で設定される請求項3から8のいずれかに記載
の演算装置
10. The maximum or minimum value of the calculation
The bit width is set according to any one of claims 3 to 8.
Computing device .
【請求項11】 請求項3から10のいずれかに記載の
演算装置を内蔵する機器組込み用のDSP
11. The method according to any one of claims 3 to 10.
DSP for built-in equipment with built-in arithmetic unit .
【請求項12】 1つの演算器が扱うデータのビット幅
に複数のデータを含めて、メモリから同時に読み出した
複数のデータに対する複数の演算を並列に行い、 前記複数の演算のそれぞれでのオーバーフローの有無に
応じて、前記複数の演算のそれぞれの結果として最大値
または最小値を出力する演算方法
12. A bit width of data handled by one arithmetic unit
Read multiple data from memory at the same time
Perform multiple operations on multiple data in parallel, and check for overflow in each of the multiple operations.
Depending on the maximum value as a result of each of the plurality of operations
Or the calculation method that outputs the minimum value .
【請求項13】 前記演算方法は、さらに、 1つの演算器によって演算しようとするデータのビット
幅と等しいデータに対する演算を行い、 前記ビット幅と等しいデータに対する演算でのオーバー
フローの有無に応じて、前記ビット幅と等しいデータに
対する演算の結果として最大値または最小値を出力する
処理が可能であり、 前記複数のデータまたは前記ビット幅と等しいデータに
対する演算を選択できる請求項12記載の演算方法。
13. The operation method further comprises a bit of data to be operated by one operation unit.
Performs operations on the width equal to the data, over at operations on data equal to the bit width
Depending on the presence / absence of flow, data with the same bit width as
Output the maximum or minimum value as the result of the operation
Data that can be processed and is equal to the multiple data or the bit width.
The calculation method according to claim 12, wherein a calculation for the same can be selected.
【請求項14】 前記複数の演算の結果は、1つのレジ
スタに格納される請求項12または13記載の演算方
法。
14. The result of the plurality of operations is one register.
The calculation method according to claim 12, wherein the calculation method is stored in a star.
Law.
【請求項15】 前記複数のデータに対する演算の結果
と前記ビット幅と等しいデータに対する演算の結果とは
同じレジスタに格納され、 前記複数のデータに対する演算を行う場合は下位側の前
記演算の結果に基づいてオーバーフローの有無を判断
し、オーバーフローが発生したときは前記下位側の演算
結果として最大値または最小値を前記レジスタの下位側
に格納し、 前記ビット幅と等しいデータに対する演算を行う場合は
前記ビット幅と等しいデータに対する演算の結果に基づ
いてオーバーフローの有無を判断し、オーバー フローが
発生したときは前記ビット幅と等しいデータに対する演
算結果として最大値または最小値の下位側を前記レジス
タの下位側に格納することを特徴とする請求項13記載
の演算方法。
15. The result of the operation on the plurality of data
And the result of the operation on the data equal to the bit width
Stored in the same register, prior to the lower side when performing operations on the plurality of data
Judgment of overflow based on the result of arithmetic operation
However, when an overflow occurs, the operation on the lower side is performed.
As a result, the maximum or minimum value is set to the lower side of the register.
Stored in, when performing operations on data equal to the bit width
Based on the result of the operation on the data with the same bit width
There is judged whether the overflow, overflow is
When it occurs, the performance for the data equal to the bit width is generated.
The lower side of the maximum value or the minimum value as the calculation result is the register
14. The data is stored on the lower side of the data.
Calculation method.
【請求項16】 レジスタに格納する複数の演算結果を
得るための複数の演算を並列に行い、 前記複数の演算のそれぞれでのオーバーフローの有無に
応じて、前記複数の演算のそれぞれの結果としての最大
値または最小値の格納と、 前記レジスタに格納する1つの演算結果を得るための演
算を行い、 前記1つの演算結果を得るための演算でのオーバーフロ
ーの有無に応じて、前記1つの演算結果を得るための演
算の結果としての最大値または最小値の格納とのいずれ
かの演算が可能であり、 前記複数の演算を行う場合は下位側の前記複数の演算の
結果に基づいてオーバーフローの有無を判断し、オーバ
ーフローが発生したときは前記下位側の演算結果として
最大値または最小値を前記レジスタの下位側に格納し、 前記1つの演算結果を得るための演算を行う場合は前記
1つの演算の結果に基づいてオーバーフローの有無を判
断し、オーバーフローが発生したときは前記1つのデー
タに対する演算結果として最大値または最小値の下位側
を前記レジスタの下位側に格納することを特徴とする演
算方法。
16. A plurality of operation results stored in a register
Perform multiple operations in parallel to obtain the presence or absence of overflow in each of the multiple operations.
Depending on the maximum as a result of each of the plurality of operations
The storage of the value or the minimum value and the operation for obtaining one operation result stored in the register.
Overflow in the calculation to obtain one of the above calculation results.
Depending on the presence or absence of
Whether to store the maximum or minimum value as the result of arithmetic
Is possible, and in the case of performing the plurality of operations, one of the plurality of operations on the lower side is
The presence or absence of overflow is judged based on the result, and the overflow
-When a flow occurs, as the calculation result of the lower side
When storing the maximum value or the minimum value in the lower side of the register and performing the operation for obtaining the one operation result,
The presence or absence of overflow can be determined based on the result of one operation.
If there is a disconnection and an overflow occurs,
The lower side of the maximum or minimum value as the calculation result for
Is stored in the lower side of the register.
Arithmetic method.
【請求項17】 前記1つの演算器が扱うデータのビッ
ト幅とは、前記複数のデータに対する演算の結果を格納
する1つのレジスタのビット幅に等しいことを特徴とす
る請求項15記載の演算方法。
17. A data bit handled by the one arithmetic unit
Stores the results of operations on the above multiple data
Equal to the bit width of one register
The calculation method according to claim 15.
【請求項18】 前記最大値は正の最大値であり、前記
最小値は負の最小値である請求項12から17のいずれ
かに記載の演算方法。
18. The maximum value is a positive maximum value, and
18. The minimum value is a negative minimum value.
The calculation method described in Crab.
【請求項19】 前記最大値または最小値は前記演算の
ビット幅で設定される請求項12から17のいずれかに
記載の演算方法。
19. The maximum or minimum value of the calculation
The bit width is set according to any one of claims 12 to 17.
Calculation method described.
【請求項20】 請求項3から10のいずれかに記載の
演算装置を用いてACS演算を行うビタビ復号処理手段
を備えたディジタル携帯電話。
20. The method according to any one of claims 3 to 10.
Viterbi decoding processing means for performing ACS operation using arithmetic device
Digital mobile phone with.
JP13085694A 1993-11-12 1994-05-23 Arithmetic device and arithmetic method Expired - Lifetime JP3487903B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP13085694A JP3487903B2 (en) 1993-11-12 1994-05-23 Arithmetic device and arithmetic method
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 (en) 1993-11-12 1994-05-23 Arithmetic device and arithmetic method

Publications (2)

Publication Number Publication Date
JPH07182141A JPH07182141A (en) 1995-07-21
JP3487903B2 true JP3487903B2 (en) 2004-01-19

Family

ID=26465872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13085694A Expired - Lifetime JP3487903B2 (en) 1993-11-12 1994-05-23 Arithmetic device and arithmetic method

Country Status (2)

Country Link
US (1) US5508951A (en)
JP (1) JP3487903B2 (en)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3105738B2 (en) * 1994-06-10 2000-11-06 日本電気株式会社 Information processing device
US7301541B2 (en) 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
JPH0997178A (en) * 1995-09-29 1997-04-08 Matsushita Electric Ind Co Ltd Device and method for saturation operation processing
CN1210647C (en) 1996-11-29 2005-07-13 松下电器产业株式会社 Processor for collating positive value processing and saturated operation
KR100236533B1 (en) * 1997-01-16 2000-01-15 윤종용 Digital signal processor
US5905661A (en) * 1997-06-23 1999-05-18 Sun Microsystems, Inc. Method for handling an overflow condition in a processor
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
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
GB2342730B (en) * 1998-06-19 2003-02-19 Lsi Logic Corp Digital processing
JP3853981B2 (en) * 1998-07-02 2006-12-06 株式会社東芝 Manufacturing method of semiconductor memory device
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 (en) * 2000-08-22 2002-02-28 Mitsubishi Electric Corp Microcomputer
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 (en) * 2006-10-18 2008-05-01 Toshiba Corp Arithmetic device
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6211933A (en) * 1985-07-09 1987-01-20 Nec Corp Arithmetic circuit
JP2600293B2 (en) * 1988-06-10 1997-04-16 日本電気株式会社 Overflow correction circuit
JPH04167170A (en) * 1990-10-31 1992-06-15 Sanyo Electric Co Ltd Multiplication/addition arithmetic circuit

Also Published As

Publication number Publication date
US5508951A (en) 1996-04-16
JPH07182141A (en) 1995-07-21

Similar Documents

Publication Publication Date Title
JP3487903B2 (en) Arithmetic device and arithmetic method
JPH05216624A (en) Arithmetic unit
US5957996A (en) Digital data comparator and microprocessor
KR20060057574A (en) Arithmetic unit for addition or subtraction with preliminary saturation detection
JPS62191926A (en) Arithmetic unit
JPH09222991A (en) Adding method and adder
US6615228B1 (en) Selection based rounding system and method for floating point operations
JPH09128213A (en) Block floating processing system/method
US6519620B1 (en) Saturation select apparatus and method therefor
JPH07146777A (en) Arithmetic unit
JP3237267B2 (en) Arithmetic unit
JP2705162B2 (en) Arithmetic processing unit
US6643677B2 (en) Digital arithmetic integrated circuit
JP2508286B2 (en) Square root calculator
JP3137131B2 (en) Floating point multiplier and multiplication method
JPS62259140A (en) Address generating circuit
KR19980032107A (en) Adder to generate sum and sum + 1 in parallel
KR100259095B1 (en) Adder having normalization function
JP2624738B2 (en) Rounding method
KR0154934B1 (en) Improved circuit for accomplishing the 2's complement
JP2998324B2 (en) Normalized shift device and normalized shift method
JPH0750596A (en) Coding device/method
JP2000137701A (en) Product-sum operation error correcting method and product sum arithmetic unit
JPH05150946A (en) Arithmetic apparatus
JPS6126136A (en) Digit justifying circuit of floating point adder

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