JP2002530774A - Numerical operations in data processing systems - Google Patents

Numerical operations in data processing systems

Info

Publication number
JP2002530774A
JP2002530774A JP2000584375A JP2000584375A JP2002530774A JP 2002530774 A JP2002530774 A JP 2002530774A JP 2000584375 A JP2000584375 A JP 2000584375A JP 2000584375 A JP2000584375 A JP 2000584375A JP 2002530774 A JP2002530774 A JP 2002530774A
Authority
JP
Japan
Prior art keywords
word
data
bit
data processing
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
Application number
JP2000584375A
Other languages
Japanese (ja)
Other versions
JP4177962B2 (en
Inventor
シール、デビッド、ジェームズ
Original Assignee
エイアールエム リミテッド
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
Priority claimed from GB9825543A external-priority patent/GB2343970A/en
Application filed by エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JP2002530774A publication Critical patent/JP2002530774A/en
Application granted granted Critical
Publication of JP4177962B2 publication Critical patent/JP4177962B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 総合動作の場合、Q15の乗算とQ31の累積演算を一緒に実行するために、以下の通り処理が進行する。最初に、レジスタバンク(8)からQ15の値がバスAとバスBに読み出され、入力として単一サイクル整数乗算器(16)に供給される。Q30に似た形式をしている結果は、レジスタバンク(8)にフィードバックされる。後続処理サイクルで、新しい命令の1つ(例えば、QDADD命令)が実行されると、Q30に似た乗算結果がAバスに読み出され、Q31累積値がBバスに読み出される。Q30に似た値は、シフト・飽和ユニット(26)によって1ビット左シフトされるか飽和して、1つの入力として算術論理演ユニット(22)に供給される。 (57) [Summary] In the case of the general operation, in order to execute the multiplication of Q15 and the accumulation operation of Q31 together, the processing proceeds as follows. First, the value of Q15 is read out from register bank (8) onto buses A and B and provided as input to single cycle integer multiplier (16). The result, having a format similar to Q30, is fed back to the register bank (8). When one of the new instructions (eg, the QDADD instruction) is executed in a subsequent processing cycle, a multiplication result similar to Q30 is read out to the A bus, and the Q31 accumulated value is read out to the B bus. The value similar to Q30 is left shifted or saturated by one bit by the shift and saturation unit (26) and provided as one input to the arithmetic and logic unit (22).

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】 本発明はデータ処理システムに関する。より詳細には、本発明は、飽和数値演
算(saturated arithmetic operation)を実行するのに適した数値演算を実行す
るためのデータ処理システムに関する。
The present invention relates to a data processing system. More particularly, the present invention relates to a data processing system for performing a mathematical operation suitable for performing a saturated arithmetic operation.

【0002】 多くのDSPアルゴリズムは、Q15演算とQ31演算として知られているアルゴリズ
ムを使用している。Q15数は、普通の16ビットの2の補数の整数であるが、215 で除算されたその整数を表すものと認められている。16ビットの2の補数の整
数は、−215から+215 1までの数を表すことができるので、Q15は、−1から
+(1−2-15)までの数を表すことができる。
[0002] Many DSP algorithms use algorithms known as Q15 and Q31 operations. Q15 number is the normal two's complement integers of 16 bits, have been recognized to represent the integer divided by 2 15. 16 2's complement integer bits -2 15 +2 15 - Since a number up to 1 can be represented, Q15 can represent a number from -1 to + (1-2 -15 ).

【0003】 同様に、Q31数は、普通の32ビットの2の補数の整数であり、231で除算され
る整数だと認められているから、−1から−(1−2-31)までの数を表すことができ
る。これから類推して、いかなるNの値に対しても(N+1)ビットのQN数を定義す
ることができる。
Similarly, the Q31 number is an ordinary 32-bit two's complement integer, which is recognized as an integer divided by 2 31 , from −1 to − ( 1-2−31 ). Can be represented. By analogy, a (N + 1) -bit QN number can be defined for any value of N.

【0004】 Q15およびQ31数値演算の重要な特徴は、これらの演算が「飽和する(saturati
ng)」ことである。演算の数学的演算結果が正の最大値(+1−2-N)を超える場合
、飽和した結果は正の最大値であり、同様に数学的演算結果が−1より小さい場
合、飽和した結果は−1である。例えば、Q15数値演算で、A=0x8000(−1を表す
)でB=0xC000(−0.5を表す)の場合、AとBを加算した結果は、通常の16ビッ
トの2の補数の結果0x4000ではなく、0x8000(−1を表す)である。
An important feature of the Q15 and Q31 math operations is that they are “saturated”
ng) ". If the mathematical operation result of the operation exceeds the positive maximum value (+1-2 -N ), the saturated result is the positive maximum value. Similarly, if the mathematical operation result is smaller than -1, the saturated result is It is -1. For example, in the Q15 numerical operation, if A = 0x8000 (representing -1) and B = 0xC000 (representing -0.5), the result of adding A and B is the normal 16-bit two's complement result 0x4000. 0x8000 (representing -1).

【0005】 DSPアルゴリズムで最も要求され、かつ共通して発生する演算は、「乗算・累
積(multiply-accumulate)」演算、つまり、あとに第3のオペランドが付加さ
れる2つのオペランドの乗算、 結果 =(A*B)+C で表される演算である。
[0005] The most demanding and commonly occurring operation in DSP algorithms is the "multiply-accumulate" operation, that is, the multiplication of two operands followed by a third operand, the result = (A * B) + C.

【0006】 (時にはクリッピングとして知られている)飽和数値演算に、このような乗算
・累積命令を使いたい場合、重大な問題が発生する。この問題は、QN数に対して
数値演算を実行する場合に特に該当する。
A serious problem arises when one wants to use such a multiply-accumulate instruction for a saturated numerical operation (sometimes known as clipping). This problem is particularly true when performing numerical operations on QN numbers.

【0007】 飽和形式と不飽和形式(non-saturated form)の両者に、各種の異なるタイプ
の命令を適応させるためには、命令コードのビットスペースにかなりの量が必要
になる。その上、単一サイクル乗算の性能を追求すると、飽和とそれに関連する
調整に対する要求に対処しなくてはならないという負担が追加される。すなわち
、必要としないのに最悪の場合の飽和乗算命令によってクロック速度が制限され
ることになる。
[0007] Adapting a variety of different types of instructions to both saturated and non-saturated forms requires a significant amount of instruction code bit space. Moreover, the pursuit of single-cycle multiplication performance adds the burden of having to deal with saturation and the associated tuning requirements. That is, the worst case, if not required, saturation multiply instruction will limit the clock speed.

【0008】 一態様から見ると、本発明は、 データ処理命令語に応答して、処理制御信号を発生する命令解読器と、 前記処理制御信号によって制御され、データ・オペランド語についてデータ処
理演算を実行する処理論理と、 を含む処理装置であって、 前記命令解読器は、第1の命令語に応答して、前記処理論理を制御する制御信
号を発生し、第1のNビット・データ・オペランド語Pと、第2のNビット・デー
タ・オペランド語Qについてデータ処理演算を実行して、 R = Sat(Fun(P)+Q) で与えられるNビットの結果データ語Rを発生するデータ処理装置を提供する。 ここで、 Sat(X)は、飽和した値Xを返す関数であり、 Fun(X)は、少なくとも、N/2ビットとN/2ビットの符号付き乗算によって発生する
ことができるXの値に対して動作し、シフト量でXをシフトすることによってシフ
トされた語を発生するとともに前記シフトされた語を飽和させることによって得
られた値を返す関数である。
Viewed from one aspect, the present invention comprises a command decoder for generating a processing control signal in response to a data processing command, and a data processing operation controlled by the processing control signal for a data operand word. Processing logic to execute, wherein the command decoder generates a control signal for controlling the processing logic in response to a first command word, wherein the first decoder decodes the first N-bit data. Data that performs a data processing operation on operand word P and a second N-bit data operand word Q to produce an N-bit result data word R given by R = Sat (Fun (P) + Q) A processing device is provided. Where Sat (X) is a function that returns a saturated value X, and Fun (X) is at least a value of X that can be generated by a signed multiplication of N / 2 bits and N / 2 bits. A function that operates on the shifted word to generate a shifted word by shifting X by a shift amount and returns a value obtained by saturating the shifted word.

【0009】 本発明は、飽和乗算・累積演算の要求に対処するために適した特殊目的の命令
を設けることが非常に利点があると認めている。より詳細に述べると、標準的な
所望の単一サイクル乗算に対するタイミング条件は、累積演算を実行する後続命
令で使用されるサイクルに容易に適応する数値演算の飽和特性に対処するために
必要となる調整によって緩和する。この新しい命令は、いくつかの乗算命令の飽
和形(saturated version)を定義する必要をなくして、命令コードのビットス
ペースと、飽和数値演算をサポートするために必要なその他のオーバーヘッドを
低減する。最後に、この新しい命令は、既にシステムに設けられているハードウ
エアにほとんどハードウエアを追加しないで実施され、不飽和数値演算と飽和数
値演算に関する他の態様に対処することができる。
The present invention recognizes that it is very advantageous to provide special purpose instructions suitable for addressing the requirements of a saturated multiply-accumulate operation. More specifically, the timing requirements for a standard desired single-cycle multiply are needed to address the saturating nature of the math that easily adapts to the cycles used in subsequent instructions that perform the accumulation operation. Relaxed by adjustment. This new instruction eliminates the need to define a saturated version of some multiply instructions, reducing the bit space of the opcode and other overhead required to support saturated math. Finally, the new instructions are implemented with little additional hardware to the hardware already provided in the system and can address other aspects of unsaturated and saturated math.

【0010】 この新しい命令を実行するために使用されるハードウエアが多数の異なる形式
を取ることができるとは理解できるであろう。Nビットの最終結果データ語を発
生するために必要な各種の演算は、各種の異なる方法でグループ化され、各種の
回路ブロックで実行される。単一命令を使用して上で与えらた値と同じ最終値の
Nビット最終結果データ語を発生するこれら各種の異なる代替方法は、すべて本
発明の実施例である。
It will be appreciated that the hardware used to execute this new instruction can take many different forms. The various operations required to generate the N-bit final result data word are grouped in various different ways and performed in various circuit blocks. All of these different alternatives for using a single instruction to generate an N-bit final result data word of the same final value as the value given above are all embodiments of the present invention.

【0011】 飽和乗算・累積演算で使用される上記命令と同様に、飽和乗算・減算をサポー
トするために同じような命令を設けることができる。
Similar to the above instructions used in saturation multiplication / accumulation operations, similar instructions can be provided to support saturation multiplication / subtraction.

【0012】 本発明の命令で使用されるシフト量は、各種の異なる値を取ることができる。
しかし、シフトされた語が第1のNビット・データ・オペランド語Pの2倍となる
ようなシフト量は特に有用である。
The shift amount used in the instruction of the present invention can take various different values.
However, a shift amount such that the shifted word is twice the first N-bit data operand word P is particularly useful.

【0013】 2つのQ15数について整数乗算が実行されると、通常発生する結果は、32ビ
ットのQ30に似た(Q30-like)数であり、この数に対して、普通の32ビットの
符号付き2の補数の値は230で除算されると認められているので、−2から+(2−2- 30 )までの数を表す。Q30に似た数は、2進数の位置が30個ある符号付き32ビ
ット固定小数点の数であると考えてもよい。しかし、このような状況で、このあ
との処理に要求されることは、Q31数である。この課題に対処するためには、標
準的整数乗算の後に本発明の命令を実行し、整数乗算の結果が飽和して累積また
は減分される前に、前記結果を2倍にしてQ30に似た形式からQ31形式に変更する
ためにシフト量を使用してもよい。したがって、飽和数値演算をサポートするた
めに必要な問題となる調整(problematic adjustments)の1つは、乗算サイク
ルの終わりで与えられなければならない命令ではなく、後続の命令の中に適応さ
れている整数乗算の結果に対する調整が与えられている。
When an integer multiplication is performed on two Q15 numbers, the result that typically occurs is a Q30-like number of 32 bits, for which a normal 32-bit code is used. since the value of 2's complement attached is recognized to be divided by 2 30, -2 + - represents the number of up to (2-2 30). A number similar to Q30 may be considered a signed 32-bit fixed-point number with 30 binary positions. However, in such a situation, what is required for the subsequent processing is the Q31 number. To address this problem, the instructions of the present invention are executed after a standard integer multiplication, and before the result of the integer multiplication saturates and accumulates or decrements, the result is doubled, similar to Q30. The shift amount may be used to change the format from the changed format to the Q31 format. Thus, one of the problematic adjustments needed to support saturated math is that the integers that are accommodated in subsequent instructions are not instructions that must be provided at the end of the multiplication cycle. An adjustment to the result of the multiplication is provided.

【0014】 飽和を実行する論理回路は多数の異なる形式を取ることができる。しかし、本
発明の好適実施例では、前記シフトされた語を飽和させることは、前記第1のN
ビット・データ・オペランド語Pの所定の特徴を検出し、検出した場合、前記シ
フトされた値と、許容値範囲の端点の値を交換する。
The logic that performs the saturation can take many different forms. However, in a preferred embodiment of the present invention, saturating the shifted word comprises:
If a predetermined characteristic of the bit data operand word P is detected and detected, the shifted value is exchanged with a value at an end point of the allowable value range.

【0015】 この特徴は、何らかの状況で第1のNビット・データ・オペランド語Pの特徴を
検出することによって、飽和させることができると認めている。何故ならば、そ
の特徴について実行される操作は比較的限定された形式であって、飽和を必要と
するオーバーフローまたはアンダーフローを起こすことができる状況を明確に検
出することができるので、結果としてハードウエアの要求条件が総合的に緩和す
るからである。
It has been recognized that this feature can be saturated by detecting the feature of the first N-bit data operand word P in some circumstances. This is because the operations performed on the feature are of a relatively limited form and can clearly detect situations where an overflow or underflow requiring saturation can be detected, resulting in a hard response. This is because the requirements of the wear are comprehensively relaxed.

【0016】 特に使用するシフト量が、第1のNビット・データ・オペランド語Pを2倍にす
る場合、飽和させる必要は、第1のNビット・データ・オペランド語Pの最上位2
ビットを比較することによって非常に簡単に検出される。
In particular, when the shift amount used doubles the first N-bit data operand word P, it is necessary to saturate the first N-bit data operand word P
It is very easily detected by comparing the bits.

【0017】 Fun(X)命令のオーバーフローまたはアンダーフローを起こすことができる状況
の比較的限定された範囲を比較すると、Sat(X)関数のオーバーフローまたはアン
ダーフローはもっと普通に起こるので、本発明の好適実施例は、Sat(X)がXが許
容値範囲外にあるか検出して、検出した場合は、Xと前記許容値範囲のそれぞれ
の端点を交換して前記Nビット結果データ語Rを発生する。
Comparing the relatively limited range of situations in which the overflow or underflow of the Fun (X) instruction can occur, because the overflow or underflow of the Sat (X) function occurs more commonly, In a preferred embodiment, Sat (X) detects whether X is outside the allowable value range, and if detected, replaces each end point of X and the allowable value range with the N-bit result data word R. appear.

【0018】 本発明の新しい命令はそれ自体に利点があるが、上記のとおり、これらの命令
は、第3のN/2ビット・データ・オペランド語Aと第4のN/2ビット・データ・オ
ペランド語Bを乗算することにより、第1のNビット・データ・オペランド語を発
生する第2の命令語を実行するようになっている実施例に特によく適している。
Although the new instructions of the present invention have their own advantages, as described above, these instructions are based on a third N / 2-bit data operand word A and a fourth N / 2-bit data word. It is particularly well suited to embodiments where multiplying the operand word B executes a second instruction word that generates a first N-bit data operand word.

【0019】 いかなる種類のオペランドに対しても、本発明の命令を使用することが可能で
ある。しかし、この命令が実施例の中で特に便利なのは、前記第1のNビット・
オペランド・データ語P、前記第2のNビット・オペランド・データ語Qおよび前
記Nビット結果データ語Rが、−1≦P<+1、−1≦Q<+1、−1≦R<+1で、Sat(X)が
範囲−1≦X<+1に対して存在するように、最上位ビット位置のすぐ右側に小数点
がある、符号付き固定小数点データ語である実施例の場合である。
The instructions of the present invention can be used for any kind of operand. However, this instruction is particularly useful in an embodiment because the first N bits
The operand data word P, the second N-bit operand data word Q and the N-bit result data word R are −1 ≦ P <+1, −1 ≦ Q <+1, −1 ≦ R <+ 1 is a signed fixed-point data word embodiment with a decimal point immediately to the right of the most significant bit position such that Sat (X) exists for the range −1 ≦ X <+1. .

【0020】 前に考察したように、かかるQN形オペランドは、データ処理システムの残り部
分に不適切な影響を及ぼすことなく、本発明の命令によって効果的に与えられる
調整と飽和を必要とする。
As discussed above, such QN operands require the coordination and saturation provided effectively by the instructions of the present invention without unduly affecting the rest of the data processing system.

【0021】 第1のNビット・データ・オペランド語Pの最も有用な値は、N/2ビットとN/2ビ
ットの符号付き乗算によって発生することができる値である。しかし、本発明の
好適実施例は、起こりうるXのNビットの値すべてをシフトして飽和させること
ができるように、Fun(X)の機能を拡張することができる。
The most useful value of the first N-bit data operand word P is the value that can be generated by N / 2-bit and N / 2-bit signed multiplication. However, the preferred embodiment of the present invention extends the functionality of Fun (X) so that all possible N-bit values of X can be shifted and saturated.

【0022】 本発明は、Nが各種の異なる値をもつシステムで使用できる。しかし、本発明
が特に有用なDSP動作のタイプは、普通、N = 32のようなNの値を必要とする。
The present invention can be used in systems where N has a variety of different values. However, the type of DSP operation for which the present invention is particularly useful usually requires a value of N, such as N = 32.

【0023】 本発明が個別部品を含むシステムとして実施できることは理解できるであろう
が、このデータ処理装置が集積回路として実現されることは非常に好ましい。
While it will be appreciated that the invention can be implemented as a system including discrete components, it is highly preferred that the data processing device be implemented as an integrated circuit.

【0024】 別の態様から見ると、本発明は、 データ処理命令語に応答して、処理制御信号を発生するステップと、 前記処理制御信号の制御のもとにデータ・オペランド語についてデータ処理演
算を実行するステップと、 を含む方法であって、 第1の命令語に応答して、前記処理論理を制御する制御信号を発生し、第1の
Nビット・データ・オペランド語Pと、第2のNビット・データ・オペランド語Qに
ついてデータ処理演算を実行して、 R = Sat(Fun(P)+Q) で与えられるNビットの結果データ語Rを発生するデータ処理方法を提供する。 ここで、 Sat(X)は、飽和した値Xを返す関数であり、 Fun(X)は、少なくとも、N/2ビットとN/2ビットの符号付き乗算によって発生する
ことができるXの値に対して動作し、シフト量でXをシフトすることによってシフ
トされた語を発生するとともに前記シフトされた語を飽和させることによって得
られた値を返す関数である。
Viewed from another aspect, the present invention comprises a step of generating a processing control signal in response to a data processing instruction, and a data processing operation on a data operand word under the control of the processing control signal. And generating a control signal for controlling the processing logic in response to a first command;
A data processing operation is performed on the N-bit data operand word P and the second N-bit data operand word Q, and an N-bit result data word given by R = Sat (Fun (P) + Q) A data processing method for generating R is provided. Where Sat (X) is a function that returns a saturated value X, and Fun (X) is at least a value of X that can be generated by a signed multiplication of N / 2 bits and N / 2 bits. A function that operates on the shifted word to generate a shifted word by shifting X by a shift amount and returns a value obtained by saturating the shifted word.

【0025】 本発明の相補的方法(complementary method)の態様も用意されており、この
方法では、命令は加算演算ではなく減算を実行する。
There is also provided an aspect of the complementary method of the present invention, in which the instruction performs a subtraction rather than an addition operation.

【0026】 以下、添付の図面を参照し、例示のみによって、本発明の実施例を説明する。Hereinafter, embodiments of the present invention will be described by way of example only with reference to the accompanying drawings.

【0027】 図1は、(英国、ケンブリッジのARM社で製造されたARM9TDMIマイクロプロ
セッサの一部と同様な)命令解読器4と処理論理6を含む集積回路2の一部分を
示す。処理論理6は、多数の異なる個別機能要素からなる。レジスタバンク8は
、操作すべきデータ・オペランド語(P、Q)を格納する。これらの語は、レジス
タバンク8から読み出され、マルチプレクサー10、12、14を介して、処理
論理6の中の他の各種処理ユニットに提供される。整数乗算器16は、機能のう
ち特に符号付き整数乗算を実行するために設けられている。加算器18は、不飽
和乗算・累積演算を実行するためと、桁上げ保存(carry-save)からの乗算器の
結果を、2の補数形式に変換するために設けられている。シフター20と算術論
理演算ユニット22も設けられている。処理論理6の上記基本部品は一般に知ら
れている。命令解読器4からの制御信号24は、処理論理6の中の各種要素に印
加され、それらの動作を制御するとともに協調させる。より詳細に説明すると、
命令解読器で命令が解読されると制御信号24が出力され、処理論理6の中の各
種マルチプレクサーを切り替えて所望のデータ経路を選択し、処理論理6の中の
各種論理ユニットを起動して構成し、解読された命令によって指定された演算を
実行する。明瞭にするため、個々の部品を命令解読器に接続する信号線は、この
図から省略されている。
FIG. 1 shows a portion of an integrated circuit 2 including an instruction decoder 4 and processing logic 6 (similar to a portion of an ARM9TDMI microprocessor manufactured by ARM, Cambridge, UK). The processing logic 6 consists of a number of different individual functional elements. The register bank 8 stores data operand words (P, Q) to be operated. These words are read from the register bank 8 and provided to the various other processing units in the processing logic 6 via the multiplexers 10, 12, 14. The integer multiplier 16 is provided to execute signed integer multiplication among functions. The adder 18 is provided to execute the unsaturated multiplication / accumulation operation and to convert the result of the multiplier from the carry-save into a two's complement format. A shifter 20 and an arithmetic logic unit 22 are also provided. The above basic components of the processing logic 6 are generally known. Control signals 24 from command decoder 4 are applied to various elements in processing logic 6 to control and coordinate their operation. More specifically,
When the instruction is decoded by the instruction decoder, a control signal 24 is output, various multiplexers in the processing logic 6 are switched to select a desired data path, and various logic units in the processing logic 6 are activated. Configure and perform the operation specified by the decoded instruction. For clarity, the signal lines connecting the individual components to the command decoder have been omitted from this figure.

【0028】 飽和数値演算(QDADD、DQDSUBおよびQDRSB)の追加命令をサポートするため、
算術論理演算ユニット22の上流にシフト・飽和ユニット(shifting and satur
ating unit)26が設けられ、算術論理演算ユニット22が演算するパイプライ
ン・ステージの後の次のパイプライン・ステージのレジスタバンク8に至るフィ
ードバック経路に、全飽和ユニット(full saturating unit)28が設けられて
いる。動作の場合、シフト・飽和ユニット26は、まず入力された32ビット・
データ語の最上位2ビットが等しくないことを決定するためにチェックする。こ
の条件が検出された場合に1ビット左へシフトすると、その入力データ語が、こ
の左シフトによってQ31語に変換されるQ30に似た語を表す場合、オーバーフロー
またはアンダーフローになる。最上位2ビットが「01」の場合、シフト・飽和ユ
ニット26は、許容値範囲の最大端点を表す0x7FFFFFFFを出力する。同様に、最
上位2ビットが「10」の場合、シフト・飽和ユニット26は、許容値範囲の最小
端点を表す0x80000000を出力する。これらの条件がいずれも検出されない場合、
シフト・飽和ユニット26は、この入力2進データ値を2倍にすることに対応し
て、このデータ値を1ビット位置だけ左へシフトするので、Q15数とQ15数の整数
乗算によって得られたQ30に似た表現を、この後の処理(例えば累積)と飽和の
ために要求されるQ31の表現に変換する。
To support additional instructions for saturating math (QDADD, DQDSUB and QDRSB)
A shifting and saturating unit (shifting and saturating unit) upstream of the arithmetic and logic unit 22
A full saturating unit 28 is provided in the feedback path to the register bank 8 of the next pipeline stage after the pipeline stage in which the arithmetic and logic unit 22 operates. Have been. In operation, the shift / saturation unit 26 first receives the input 32-bit data.
Check to determine that the two most significant bits of the data word are not equal. Shifting one bit left when this condition is detected will result in an overflow or underflow if the input data word represents a Q30-like word that is converted to a Q31 word by this left shift. When the two most significant bits are “01”, the shift / saturation unit 26 outputs 0x7FFFFFFF representing the maximum end point of the allowable value range. Similarly, when the two most significant bits are “10”, the shift / saturation unit 26 outputs 0x80000000 representing the minimum end point of the allowable value range. If none of these conditions are detected,
The shift / saturation unit 26 shifts the input binary data value to the left by one bit position in response to doubling the input binary data value, and is thus obtained by integer multiplication of the Q15 number and the Q15 number. The expression similar to Q30 is converted into the expression of Q31 required for subsequent processing (eg, accumulation) and saturation.

【0029】 解読中の特定の命令がこの演算を必要としない場合、命令解読器4からの適切
な制御信号24に応答して、シフト・飽和ユニット26を演算から切り離すこと
ができる。シフト・飽和ユニット26はAバスに配置されているので、通常、こ
のバスのタイミングの制約は、シフター20を含むBバスよりも緩和されている
。したがって、シフト・飽和ユニット26に重要なタイミングの問題が追加され
ることはまったくない。
If the particular instruction being decoded does not require this operation, the shift-saturation unit 26 can be disconnected from the operation in response to the appropriate control signal 24 from the instruction decoder 4. Since the shift / saturation unit 26 is arranged on the A bus, the timing constraint of this bus is usually less strict than that of the B bus including the shifter 20. Thus, no significant timing issues are added to the shift and saturation unit 26.

【0030】 全飽和ユニット28は、算術論理演算ユニット22が要求された加算または減
算を実行した後に使用する戻り経路に設けられている。全飽和ユニット28は、
既知の原理で動作し、算術論理演算ユニット22で発生した符号付き結果のオー
バーフローまたはアンダーフローを検出し、その結果を許容値範囲の最大端点ま
たは最小端点の値に訂正することができる。シフト・飽和ユニット26と同様、
全飽和ユニット28は、この飽和が要求されない場合、適切な制御信号24に応
答して、全飽和ユニット28を演算からは切り離すことができる。全飽和ユニッ
ト28は、通常は、加算命令と減算命令に対しては何もしないパイプライン・ス
テージにあるので、タイミングの問題が起こることはまったくない。しかし、全
飽和ユニット28は、すぐ後に続く命令によって飽和命令が使用される場合は、
1サイクルの間、プロセッサが連動(interlock)すべきことを要求する。この
連動は、ロード命令によってロードされた値が、すぐ後に続く命令によって使用
される場合に、多くのマイクロプロセッサで発生する連動と同じように処理され
る。
The full saturation unit 28 is provided in a return path that the arithmetic and logic unit 22 uses after performing the required addition or subtraction. The total saturation unit 28
Operating according to known principles, it is possible to detect an overflow or underflow of a signed result generated by the arithmetic and logic unit 22 and correct the result to a value at the maximum or minimum endpoint of the allowable value range. Like the shift / saturation unit 26,
The full saturating unit 28 can decouple the full saturating unit 28 from operation in response to an appropriate control signal 24 if this saturation is not required. Since the full saturating unit 28 is normally in a pipeline stage that does nothing for add and subtract instructions, no timing problems occur. However, the full saturating unit 28 may use
During one cycle, the processor requests that it interlock. This interlock is handled in the same way as the interlock that occurs in many microprocessors when the value loaded by a load instruction is used by the immediately following instruction.

【0031】 総合動作の場合、Q15とQ15の乗算をQ31の累積演算と一緒に実行するために、
以下の通り処理が進行する。最初に、レジスタバンク8からQ15の値がバスAとバ
スBに読み出され、入力として、単一サイクル整数乗算器16に送られる。Q30に
似た形式をしている結果は、レジスタバンク8にフィードバックされる。後続処
理サイクルで、新しい命令の1つ(例えば、QDADD命令)が実行され、Q30に似た
乗算の結果がAバスに読み出され、Q31累積値がBバスに読み出される。Q30に似た
値は、シフト・飽和ユニット26で1ビット左シフトされるか飽和して、1つの
入力として算術論理演算ユニット22に供給される。BバスのQ31の値は、シフタ
ー20がその入力値をシフトしないようにする適切な制御信号24を使用するこ
とによって、別の入力として算術論理演算ユニット22に供給される。シフト・
飽和ユニット26が、Q30に似た値を、要求される飽和したQ31の値に訂正すると
、算術論理演算ユニット22によって、BバスのQ31の値にこの値が加算される。
算術論理演算ユニット22からの出力が全飽和ユニット28に供給されると、こ
こで、オーバーフロー・フラグおよびアンダーフロー・フラグと算術論理演算ユ
ニット22からの他の標準条件を検出することにより、この値は、レジスタバン
ク8に格納される前に、Q31の飽和になる。加算を実行する算術論理演算ユニッ
ト22の代わりに、QDRSB命令でBバスの値からAバスの値を減算すること、また
はQDSUB命令でAバスの値からBバスの値を減算することを適切な制御信号24に
よって制御してもよい。命令解読器からの適切な制御信号24に応答して減算を
実行する算術論理演算ユニットの構成は、各種の標準的方法で実現できる。
In the case of the overall operation, in order to execute the multiplication of Q15 and Q15 together with the accumulation operation of Q31,
Processing proceeds as follows. First, the value of Q15 is read from register bank 8 onto buses A and B and sent as input to single cycle integer multiplier 16. The result, having a format similar to Q30, is fed back to register bank 8. In a subsequent processing cycle, one of the new instructions (eg, the QDADD instruction) is executed, the result of the multiplication similar to Q30 is read on the A bus, and the Q31 accumulated value is read on the B bus. The value similar to Q30 is left shifted or saturated by one bit in the shift / saturation unit 26 and supplied to the arithmetic and logic unit 22 as one input. The value of the B bus Q31 is provided as a separate input to the arithmetic logic unit 22 by using an appropriate control signal 24 which prevents the shifter 20 from shifting its input value. shift·
When saturating unit 26 corrects the value similar to Q30 to the required saturated value of Q31, arithmetic logic unit 22 adds this value to the value of Q31 on the B bus.
Once the output from the arithmetic and logic unit 22 is provided to the full saturation unit 28, the value of this value is determined by detecting the overflow and underflow flags and other standard conditions from the arithmetic and logic unit 22. Becomes saturated in Q31 before being stored in the register bank 8. Instead of the arithmetic logic unit 22 performing the addition, it is appropriate to subtract the value of the A bus from the value of the B bus with the QDRSB instruction, or to subtract the value of the B bus from the value of the A bus with the QDSUB instruction. The control may be performed by the control signal 24. The configuration of the arithmetic and logic unit that performs the subtraction in response to the appropriate control signal 24 from the command decoder can be implemented in various standard ways.

【0032】 上記から判ることは、QDADD命令、QDSUB命令およびQDRSB命令によって実行さ
れる演算は、処理論理の中の各種の機能ユニットの間で各種方法で分割されてい
ることである。これらの演算が各種ユニット間で分割されていることにより、同
じ最終結果を発生すると同時に多数の異なる方法で実行できることは、当業者に
は判ることである。
It can be seen from the above that the operations performed by the QDADD, QDSUB and QDRSB instructions are divided in various ways among the various functional units in the processing logic. Those skilled in the art will recognize that the division of these operations among the various units can be performed in many different ways while producing the same end result.

【0033】 図2は、QDADD命令で実行される処理ステップを示す流れ図である。ステップ
40で、第1の32ビット・データ・オペランド語の最上位2ビットが「01」に
等しいか否かについてテストが実行される。この場合、1ビットだけ左にシフト
するとオーバーフローになるので、ステップ42を使用して、この値を正の最大
許容値(+1−231)に設定する。同様に、ステップ44は、最上位2ビットが、
左シフトするとアンダーフローになることを示す「10」かどうかを見るためにチ
ェックする。この場合に検出されると、ステップ46は、この値を最小許容値−
1に設定する。
FIG. 2 is a flowchart showing processing steps executed by the QDADD instruction. At step 40, a test is performed as to whether the two most significant bits of the first 32-bit data operand word are equal to "01". In this case, since the overflow when it shifted left by 1 bit, using steps 42, setting this value to a positive maximum allowable value (+ 1-2 31). Similarly, step 44 determines that the two most significant bits are
Check to see if it is "10", indicating that shifting left will result in underflow. If detected in this case, step 46 determines this value as the minimum allowable value-
Set to 1.

【0034】 オーバーフローもアンダーフローも検出されない場合、ステップ48は、第1
の32ビット・オペランド・データ語を1ビット位置だけ左シフトし、この左シ
フトが、その数字が示しているシフトであれば、このデータ語をQ30に似た形式
からQ31形式に変換する。ステップ40からステップ48の演算は、シフト・飽
和ユニット26と、前に説明したFun(x)関数によって与えられる機能に対応する
If neither an overflow nor an underflow is detected, step 48 comprises a first
Is shifted left by one bit position, and if the left shift is the shift indicated by the digit, the data word is converted from a format similar to Q30 to a Q31 format. The operations from step 40 to step 48 correspond to the shift and saturation unit 26 and the function provided by the previously described Fun (x) function.

【0035】 ステップ50で加算が実行される。この加算は、図1の算術論理演算ユニット
22によって実行される加算に対応する。
In step 50, an addition is performed. This addition corresponds to the addition performed by the arithmetic and logic unit 22 of FIG.

【0036】 ステップ52とステップ54は、ステップ50から生じた飽和値のオーバーフ
ローを検出して対処する。同様に、ステップ56とステップ58はアンダーフロ
ーに対処する。オーバーフローもアンダーフローも検出されなければ、訂正は行
われない。QDADD命令の結果Rは、ステップ60でレジスタバンク8の中のレジス
タに格納される。
Steps 52 and 54 detect and address overflow of the saturation value resulting from step 50. Similarly, steps 56 and 58 deal with underflow. If neither overflow nor underflow is detected, no correction is made. The result R of the QDADD instruction is stored in a register in the register bank 8 in step 60.

【0037】 ステップ52からステップ58で実行される演算は、図1の全飽和ユニット2
8と、前に考察したSat(X)関数によって与えられる演算に対応する。
The calculation performed in steps 52 to 58 is performed by the full saturation unit 2 in FIG.
8 corresponds to the operation given by the Sat (X) function discussed above.

【0038】 図3は、同様な流れ図であるが、この場合はQDSUB命令のための流れ図である
。この命令では、図2のステップ50が、シフトされ飽和した第1のオペランド
・データ語Pから第2の32ビット・オペランド・データ語Qが減算されるステッ
プ62と交換されている。
FIG. 3 is a similar flowchart, but in this case for a QDSUB instruction. In this instruction, step 50 of FIG. 2 is replaced by step 62 in which the second 32-bit operand data word Q is subtracted from the shifted and saturated first operand data word P.

【0039】 図4は、図3と同様であるが、この場合、図3のステップ62で実行される減
算は、図4のステップ64では被減数と減数が逆になっている。
FIG. 4 is similar to FIG. 3, but in this case, the subtraction performed in step 62 of FIG. 3 is reversed in step 64 in FIG.

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

【図1】 集積回路内の命令解読器と処理論理を示す図。FIG. 1 is a diagram showing an instruction decoder and processing logic in an integrated circuit.

【図2】 飽和数値演算をサポートするために用意された命令の演算の流れ図を示す図。FIG. 2 is a diagram showing a flowchart of an operation of an instruction prepared to support a saturated numerical operation.

【図3】 飽和数値演算をサポートするために用意された命令の演算の流れ図を示す図。FIG. 3 is a diagram showing a flowchart of an operation of an instruction prepared to support a saturated numerical operation.

【図4】 飽和数値演算をサポートするために用意された命令の演算の流れ図を示す図。FIG. 4 is a diagram showing a flowchart of an operation of an instruction prepared to support a saturated numerical operation.

【手続補正書】特許協力条約第34条補正の翻訳文提出書[Procedural Amendment] Submission of translation of Article 34 Amendment of the Patent Cooperation Treaty

【提出日】平成12年9月18日(2000.9.18)[Submission date] September 18, 2000 (2000.9.18)

【手続補正1】[Procedure amendment 1]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】請求項1[Correction target item name] Claim 1

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【手続補正2】[Procedure amendment 2]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】請求項2[Correction target item name] Claim 2

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【手続補正3】[Procedure amendment 3]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】請求項3[Correction target item name] Claim 3

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【手続補正4】[Procedure amendment 4]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】請求項8[Correction target item name] Claim 8

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【手続補正5】[Procedure amendment 5]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0007[Correction target item name] 0007

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0007】 飽和形式と不飽和形式(non-saturated form)の両者に、各種の異なるタイプ
の命令を適応させるためには、命令コードのビットスペースにかなりの量が必要
になる。その上、単一サイクル乗算の性能向上を追求すると、飽和とそれに関連
する調整に対する要求に対処しなくてはならないという負担が追加される。すな
わち、必要としないのに最悪の場合の飽和乗算命令によってクロック速度が制限
されることになる。 英国公開特許出願GB-A-2,317,465には、完全なQ15乗算・累積演算を実行する
乗算・2倍化命令(Multiply Double instructions)が、例えば、任意に大きさ が変えられるdest = SAT(acc + SAT(2*src1*src2))と、任意に大きさが変えられ るdest = (acc−SAT(2*src1*src2))などの、1つの命令で用意されていることが 開示されている。
[0007] Adapting a variety of different types of instructions to both saturated and non-saturated forms requires a significant amount of instruction code bit space. In addition, the pursuit of single-cycle multiplication performance enhancements adds the burden of having to deal with saturation and the associated tuning requirements. That is, the worst case, if not required, saturation multiply instruction will limit the clock speed. Perform a full Q15 multiply-accumulate operation in UK published patent application GB-A-2,317,465
Multiply-doubling instruction (Multiply Double instructions) is, for example, optionally size is changed dest = SAT and (acc + SAT (2 * src1 * src2)), optionally in that changed in size dest = ( It is disclosed that it is prepared by one instruction such as acc-SAT (2 * src1 * src2)) .

【手続補正6】[Procedure amendment 6]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0008[Correction target item name] 0008

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0008】 一態様から見ると、本発明は、 データ処理命令語に応答して、処理制御信号を発生する命令解読器と、 前記処理制御信号によって制御され、データ・オペランド語についてデータ処
理演算を実行する処理論理と、 を含む処理装置であって、 前記命令解読器は、第1の命令語に応答して、前記処理論理を制御する制御信
号を発生し、第1のNビット・データ・オペランド語Pと、第2のNビット・デー
タ・オペランド語Qについてデータ処理演算を実行して、 R = Sat(Fun(P)+Q) で与えられるNビットの結果データ語Rを発生することを特徴とするデータ処理装
置を提供する。 ここで、 Sat(X)は、飽和した値Xを返す関数であり、 Fun(X)は、少なくとも、N/2ビットとN/2ビットの符号付き乗算によって発生する
ことができるXの値に対して動作し、シフト量でXをシフトすることによってシフ
トされた語を発生するとともに前記シフトされた語を飽和させることによって得
られた値を返す関数である。
Viewed from one aspect, the present invention comprises a command decoder for generating a processing control signal in response to a data processing command, and a data processing operation controlled by the processing control signal for a data operand word. Processing logic to execute, wherein the command decoder generates a control signal for controlling the processing logic in response to a first command word, wherein the first decoder decodes the first N-bit data. and operand word P, the second N-bit data operand word Q to perform data processing operations, R = Sat (Fun (P ) + Q) results of N bits provided by generating the data word R And a data processing device characterized by the following. Where Sat (X) is a function that returns a saturated value X, and Fun (X) is at least a value of X that can be generated by a signed multiplication of N / 2 bits and N / 2 bits. A function that operates on the shifted word to generate a shifted word by shifting X by a shift amount and returns a value obtained by saturating the shifted word.

【手続補正書】特許協力条約第34条補正の翻訳文提出書[Procedural Amendment] Submission of translation of Article 34 Amendment of the Patent Cooperation Treaty

【提出日】平成12年11月30日(2000.11.30)[Submission date] November 30, 2000 (2000.11.30)

【手続補正1】[Procedure amendment 1]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】請求項13[Correction target item name] Claim 13

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【手続補正2】[Procedure amendment 2]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】請求項14[Correction target item name] Claim 14

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【手続補正3】[Procedure amendment 3]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】請求項15[Correction target item name] Claim 15

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【手続補正4】[Procedure amendment 4]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0024[Correction target item name] 0024

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0024】 別の態様から見ると、本発明は、 データ処理命令語に応答して、処理制御信号を発生するステップと、 前記処理制御信号の制御のもとにデータ・オペランド語についてデータ処理演
算を実行するステップと、 を含む方法であって、 第1の命令語に応答して、前記処理論理を制御する制御信号を発生し、第1の
Nビット・データ・オペランド語Pと、第2のNビット・データ・オペランド語Qに
ついてデータ処理演算を実行して、 R = Sat(Fun(P)+Q) で与えられるNビットの結果データ語Rを発生することを特徴とするデータ処理装 置における データ処理方法を提供する。 ここで、 Sat(X)は、飽和した値Xを返す関数であり、 Fun(X)は、少なくとも、N/2ビットとN/2ビットの符号付き乗算によって発生する
ことができるXの値に対して動作し、シフト量でXをシフトすることによってシフ
トされた語を発生するとともに前記シフトされた語を飽和させることによって得
られた値を返す関数である。
Viewed from another aspect, the present invention comprises a step of generating a processing control signal in response to a data processing instruction, and a data processing operation on a data operand word under the control of the processing control signal. And generating a control signal for controlling the processing logic in response to a first command;
A data processing operation is performed on the N-bit data operand word P and the second N-bit data operand word Q, and an N-bit result data word given by R = Sat (Fun (P) + Q) to provide a data processing method in a data processing equipment, characterized by generating a R. Where Sat (X) is a function that returns a saturated value X, and Fun (X) is at least a value of X that can be generated by a signed multiplication of N / 2 bits and N / 2 bits. A function that operates on the shifted word to generate a shifted word by shifting X by a shift amount and returns a value obtained by saturating the shifted word.

Claims (15)

【特許請求の範囲】[Claims] 【請求項1】 データ処理装置であって、 データ処理命令語に応答して、処理制御信号を発生する命令解読器と、 前記処理制御信号によって制御され、データ・オペランド語についてデータ処
理演算を実行する処理論理と、 を含むデータ処理装置において、 前記命令解読器は、第1の命令語に応答して、前記処理論理を制御する制御信
号を発生し、第1のNビット・データ・オペランド語Pと、第2のNビット・デー
タ・オペランド語Qについてデータ処理演算を実行して、次式で与えられるNビッ
トの結果データ語Rを発生する前記データ処理装置。 R = Sat(Fun(P)+Q) ここで、 Sat(X)は、飽和した値Xを返す関数であり、 Fun(X)は、少なくとも、N/2ビットとN/2ビットの符号付き乗算によって発生する
ことができるXの値に対して動作し、シフト量でXをシフトすることによってシフ
トされた語を発生するとともに前記シフトされた語を飽和させることによって得
られた値を返す関数である。
1. A data processing apparatus, comprising: an instruction decoder for generating a processing control signal in response to a data processing instruction; and a data processing operation for a data operand word controlled by the processing control signal. And a processing logic comprising: a command decoder responsive to a first command to generate a control signal for controlling the processing logic; and a first N-bit data operand word. A data processing apparatus for performing data processing operations on P and a second N-bit data operand word Q to generate an N-bit result data word R given by: R = Sat (Fun (P) + Q) where Sat (X) is a function that returns the saturated value X, and Fun (X) is at least N / 2-bit and N / 2-bit signed A function that operates on the value of X that can be generated by multiplication, generates a shifted word by shifting X by a shift amount, and returns a value obtained by saturating the shifted word. It is.
【請求項2】 データ処理装置であって、 データ処理命令語に応答して、処理制御信号を発生する命令解読器と、 前記処理制御信号によって制御され、データ・オペランド語についてデータ処
理演算を実行する処理論理と、 を含むデータ処理装置において、 前記命令解読器は、第1の命令語に応答して、前記処理論理を制御する制御信
号を発生し、第1のNビット・データ・オペランド語Pと、第2のNビット・デー
タ・オペランド語Qについてデータ処理演算を実行して、次式で与えられるNビッ
トの結果データ語Rを発生する前記データ処理装置。 R = Sat(Fun(P)−Q) ここで、 Sat(X)は、飽和した値Xを返す関数であり、 Fun(X)は、少なくとも、N/2ビットとN/2ビットの符号付き乗算によって発生する
ことができるXの値に対して動作し、シフト量でXをシフトすることによってシフ
トされた語を発生するとともに前記シフトされた語を飽和させることによって得
られた値を返す関数である。
2. A data processing apparatus, comprising: an instruction decoder for generating a processing control signal in response to a data processing instruction; and a data processing operation controlled by the processing control signal for a data operand word. And a processing logic comprising: a command decoder responsive to a first command to generate a control signal for controlling the processing logic; and a first N-bit data operand word. A data processing apparatus for performing data processing operations on P and a second N-bit data operand word Q to generate an N-bit result data word R given by: R = Sat (Fun (P) -Q) where Sat (X) is a function that returns the saturated value X, and Fun (X) is at least N / 2-bit and N / 2-bit signed A function that operates on the value of X that can be generated by multiplication, generates a shifted word by shifting X by a shift amount, and returns a value obtained by saturating the shifted word. It is.
【請求項3】 データ処理装置であって、 データ処理命令語に応答して、処理制御信号を発生する命令解読器と、 前記処理制御信号によって制御され、データ・オペランド語についてデータ処
理演算を実行する処理論理と、 を含むデータ処理装置において、 前記命令解読器は、第1の命令語に応答して、前記処理論理を制御する制御信
号を発生し、第1のNビット・データ・オペランド語Pと、第2のNビット・デー
タ・オペランド語Qについてデータ処理演算を実行して、次式で与えられるNビッ
トの結果データ語Rを発生する前記データ処理装置。 R = Sat(Q−Fun(P)) ここで、 Sat(X)は、飽和した値Xを返す関数であり、 Fun(X)は、少なくとも、N/2ビットとN/2ビットの符号付き乗算によって発生する
ことができるXの値に対して動作し、シフト量でXをシフトすることによってシフ
トされた語を発生するとともに前記シフトされた語を飽和させることによって得
られた値を返す関数である。
3. A data processing device, comprising: an instruction decoder for generating a processing control signal in response to a data processing instruction; and a data processing operation controlled by the processing control signal for a data operand word. And a processing logic comprising: a command decoder responsive to a first command to generate a control signal for controlling the processing logic; and a first N-bit data operand word. A data processing apparatus for performing data processing operations on P and a second N-bit data operand word Q to generate an N-bit result data word R given by: R = Sat (Q−Fun (P)) where Sat (X) is a function that returns the saturated value X, and Fun (X) is at least N / 2 bit and N / 2 bit signed A function that operates on the value of X that can be generated by multiplication, generates a shifted word by shifting X by a shift amount, and returns a value obtained by saturating the shifted word. It is.
【請求項4】 請求項1、2および3のいずれか1項に記載のデータ処理装
置において、前記シフト量は、前記シフトされた語が前記第1のNビット・デー
タ・オペランド語Pの2倍になるようなシフト量である前記データ処理装置。
4. The data processing device according to claim 1, wherein the shift amount is such that the shifted word is the first N-bit data operand word P. The above data processing device, wherein the shift amount is doubled.
【請求項5】 先行する請求項のいずれか1項に記載のデータ処理装置にお
いて、前記シフトされた語を飽和させることは、前記第1のNビット・データ・
オペランド語Pの所定の特徴を検出し、検出した場合、前記シフトされた値と、
許容値範囲のそれぞれの端点を交換する前記データ処理装置。
5. The data processing apparatus according to claim 1, wherein said saturating said shifted word is performed on said first N-bit data.
Detecting a predetermined feature of the operand word P, and if detected, the shifted value;
The data processing device for exchanging respective end points of an allowable value range.
【請求項6】 請求項4、5に記載のデータ処理装置において、前記第1の
Nビット・データ・オペランド語は符号付き値であり、前記所定の特徴は、前記
第1のNビット・データ・オペランド語Pの最上位2ビットが等しくないことであ
る前記データ処理装置。
6. The data processing device according to claim 4, wherein the first
The data processing device, wherein the N-bit data operand word is a signed value, and wherein the predetermined feature is that the two most significant bits of the first N-bit data operand word P are not equal.
【請求項7】 先行する請求項のいずれか1項に記載のデータ処理装置にお
いて、Sat(X)は、Xが許容値範囲の外側にあるか検出して、検出した場合は、Xと
、前記許容値範囲のそれぞれの端点を交換して、前記Nビット結果データ語Rを発
生する前記データ処理装置。
7. The data processing device according to claim 1, wherein Sat (X) detects whether X is outside an allowable value range, and if detected, X; The data processing device for generating the N-bit result data word R by exchanging respective end points of the allowable value range.
【請求項8】 先行する請求項のいずれか1項に記載のデータ処理装置にお
いて、前記処理論理は乗算器を含み、前記第1のNビット・オペランド・データ
語Pは、第2の命令語に応答して、第3のN/2ビット・データ・オペランド語Aと
第4のN/2ビット・データ・オペランド語Bの符号付き乗算によって発生する乗算
結果である前記データ処理装置。
8. The data processing apparatus according to claim 1, wherein the processing logic includes a multiplier, and wherein the first N-bit operand data word P is a second instruction word. The data processing device is a multiplication result generated by a signed multiplication of the third N / 2-bit data operand word A and the fourth N / 2-bit data operand word B in response to
【請求項9】 先行する請求項のいずれか1項に記載のデータ処理装置にお
いて、前記第1のNビット・オペランド・データ語P、前記第2のNビット・オペ
ランド・データ語Qおよび前記Nビット結果データ語Rは、−1≦P<+1、−1≦Q<+
1、−1≦R<+1で、Sat(X)が範囲−1≦X<+1に対して存在するように、最上位ビ
ット位置のすぐ右側に小数点がある、符号付き固定小数点データ語である前記デ
ータ処理装置。
9. The data processing apparatus according to claim 1, wherein said first N-bit operand data word P, said second N-bit operand data word Q and said N The bit result data word R is −1 ≦ P <+1, −1 ≦ Q <+
1, signed fixed-point data word with a decimal point immediately to the right of the most significant bit position, such that Sat (X) exists for the range −1 ≦ X <+1, with −1 ≦ R <+1 The data processing device described above.
【請求項10】 先行する請求項のいずれか1項に記載のデータ処理装置に
おいて、Fun(X)は、XのNビットの値のすべてに対して動作し、シフト量でXをシ
フトしてシフトされた語を発生するとともに、前記シフトされた語を飽和させる
ことによって得られた値を返す関数である前記データ処理装置。
10. The data processing apparatus according to claim 1, wherein Fun (X) operates on all N-bit values of X and shifts X by the shift amount. The data processing apparatus being a function that generates a shifted word and returns a value obtained by saturating the shifted word.
【請求項11】 先行する請求項のいずれか1項に記載のデータ処理装置に
おいて、N = 32である前記データ処理装置。
11. The data processing device according to claim 1, wherein N = 32.
【請求項12】 先行する請求項のいずれか1項に記載のデータ処理装置に
おいて、集積回路を含む前記データ処理装置。
12. The data processing device according to claim 1, wherein the data processing device includes an integrated circuit.
【請求項13】 データを処理する方法であって、 データ処理命令語に応答して、処理制御信号を発生するステップと、 前記処理制御信号の制御のもとにデータ・オペランド語についてデータ処理演
算を実行するステップと、 を含む方法において、 第1の命令語に応答して、前記処理論理を制御する制御信号を発生し、第1の
Nビット・データ・オペランド語Pと、第2のNビット・データ・オペランド語Qに
ついてデータ処理演算を実行して、次式で与えられるNビットの結果データ語Rを
発生する前記方法。 R = Sat(Fun(P)+Q) ここで、 Sat(X)は、飽和した値Xを返す関数であり、 Fun(X)は、少なくとも、N/2ビットとN/2ビットの符号付き乗算によって発生する
ことができるXの値に対して動作し、シフト量でXをシフトすることによってシフ
トされた語を発生するとともに前記シフトされた語を飽和させることによって得
られた値を返す関数である。
13. A method for processing data, the method comprising: generating a processing control signal in response to a data processing command; and performing a data processing operation on a data operand word under the control of the processing control signal. Executing a first control signal in response to a first command to control the processing logic;
The above method of performing a data processing operation on an N-bit data operand word P and a second N-bit data operand word Q to generate an N-bit result data word R given by: R = Sat (Fun (P) + Q) where Sat (X) is a function that returns the saturated value X, and Fun (X) is at least N / 2-bit and N / 2-bit signed A function that operates on the value of X that can be generated by multiplication, generates a shifted word by shifting X by a shift amount, and returns a value obtained by saturating the shifted word. It is.
【請求項14】 データを処理する方法であって、 データ処理命令語に応答して、処理制御信号を発生するステップと、 前記処理制御信号の制御のもとにデータ・オペランド語についてデータ処理演
算を実行するステップと、 を含む方法において、 第1の命令語に応答して、前記処理論理を制御する制御信号を発生し、第1の
Nビット・データ・オペランド語Pと、第2のNビット・データ・オペランド語Qに
ついてデータ処理演算を実行して、次式で与えられるNビットの結果データ語Rを
発生する前記方法。 R = Sat(Fun(P)−Q) ここで、 Sat(X)は、飽和した値Xを返す関数であり、 Fun(X)は、少なくとも、N/2ビットとN/2ビットの符号付き乗算によって発生する
ことができるXの値に対して動作し、シフト量でXをシフトすることによってシフ
トされた語を発生するとともに前記シフトされた語を飽和させることによって得
られた値を返す関数である。
14. A method of processing data, the method comprising: generating a processing control signal in response to a data processing command; and performing a data processing operation on a data operand word under control of the processing control signal. Executing a first control signal in response to a first command to control the processing logic;
The above method of performing a data processing operation on an N-bit data operand word P and a second N-bit data operand word Q to generate an N-bit result data word R given by: R = Sat (Fun (P) -Q) where Sat (X) is a function that returns the saturated value X, and Fun (X) is at least N / 2-bit and N / 2-bit signed A function that operates on the value of X that can be generated by multiplication, generates a shifted word by shifting X by a shift amount, and returns a value obtained by saturating the shifted word. It is.
【請求項15】 データを処理する方法であって、 データ処理命令語に応答して、処理制御信号を発生するステップと、 前記処理制御信号の制御のもとにデータ・オペランド語についてデータ処理演
算を実行するステップと、 を含む方法において、 第1の命令語に応答して、前記処理論理を制御する制御信号を発生し、第1の
Nビット・データ・オペランド語Pと、第2のNビット・データ・オペランド語Qに
ついてデータ処理演算を実行して、次式で与えられるNビットの結果データ語Rを
発生する前記方法。 R = Sat(Q−Fun(P)) ここで、 Sat(X)は、飽和した値Xを返す関数であり、 Fun(X)は、少なくとも、N/2ビットとN/2ビットの符号付き乗算によって発生する
ことができるXの値に対して動作し、シフト量でXをシフトすることによってシフ
トされた語を発生するとともに前記シフトされた語を飽和させることによって得
られた値を返す関数である。
15. A method of processing data, the method comprising: generating a processing control signal in response to a data processing command; and performing a data processing operation on a data operand word under control of the processing control signal. Executing a first control signal in response to a first command to control the processing logic;
The above method of performing a data processing operation on an N-bit data operand word P and a second N-bit data operand word Q to generate an N-bit result data word R given by: R = Sat (Q−Fun (P)) where Sat (X) is a function that returns the saturated value X, and Fun (X) is at least N / 2 bit and N / 2 bit signed A function that operates on the value of X that can be generated by multiplication, generates a shifted word by shifting X by a shift amount, and returns a value obtained by saturating the shifted word. It is.
JP2000584375A 1998-11-20 1999-05-26 Numerical operations in data processing systems. Expired - Lifetime JP4177962B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9825543.3 1998-11-20
GB9825543A GB2343970A (en) 1998-11-20 1998-11-20 Arithmetic operations in a data processing system
PCT/GB1999/001653 WO2000031621A1 (en) 1998-11-20 1999-05-26 Arithmetic operations in a data processing system

Publications (2)

Publication Number Publication Date
JP2002530774A true JP2002530774A (en) 2002-09-17
JP4177962B2 JP4177962B2 (en) 2008-11-05

Family

ID=10842828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000584375A Expired - Lifetime JP4177962B2 (en) 1998-11-20 1999-05-26 Numerical operations in data processing systems.

Country Status (6)

Country Link
JP (1) JP4177962B2 (en)
KR (1) KR100623604B1 (en)
DE (1) DE69902814T2 (en)
IL (1) IL141982A (en)
MY (1) MY114856A (en)
RU (1) RU2225638C2 (en)

Also Published As

Publication number Publication date
JP4177962B2 (en) 2008-11-05
KR100623604B1 (en) 2006-09-13
IL141982A0 (en) 2002-03-10
DE69902814T2 (en) 2003-01-09
DE69902814D1 (en) 2002-10-10
MY114856A (en) 2003-01-31
KR20010092743A (en) 2001-10-26
IL141982A (en) 2005-12-18
RU2225638C2 (en) 2004-03-10

Similar Documents

Publication Publication Date Title
US7236995B2 (en) Data processing apparatus and method for converting a number between fixed-point and floating-point representations
US6128726A (en) Accurate high speed digital signal processor
EP1137980B1 (en) Arithmetic operations in a data processing system
JP5640081B2 (en) Integer and multiply-add operations with saturation
JPH09507941A (en) Block normalization without wait cycles in a multi-add floating point sequence
US20070033152A1 (en) Digital signal processing device
EP0772809B1 (en) Method for performing a &#34;rotate through carry&#34; operation
US6148314A (en) Round increment in an adder circuit
US6205462B1 (en) Digital multiply-accumulate circuit that can operate on both integer and floating point numbers simultaneously
US5337265A (en) Apparatus for executing add/sub operations between IEEE standard floating-point numbers
US6014683A (en) Arithmetic operation system for arithmetically operating a first operand having an actual point and a second operand having no actual point
JPH07234778A (en) Arithmetic circuit
JP4177962B2 (en) Numerical operations in data processing systems.
KR100317767B1 (en) Floating point binary quad word format multiply instruction unit
US4951238A (en) Processor for executing arithmetic operations on input data and constant data with a small error
US6094669A (en) Circuit and method for determining overflow in signed division
JP4159565B2 (en) Vector product-sum operation circuit
JP3132436B2 (en) Floating-point multiply-accumulate unit
JP2645422B2 (en) Floating point processor
JP2903529B2 (en) Vector operation method
JP2006155102A (en) Arithmetic processing unit
GB2296803A (en) Apparatus for arithmetically operating floating-points
JP3100868B2 (en) Arithmetic unit for floating point numbers
JPH04160533A (en) Microprocessor
US20060224653A1 (en) Method and system for dynamic session control of digital signal processing operations

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080314

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080616

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080710

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080812

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080825

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120829

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130829

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term