JPH03164930A - Detection system for exception to overflow - Google Patents
Detection system for exception to overflowInfo
- Publication number
- JPH03164930A JPH03164930A JP1305536A JP30553689A JPH03164930A JP H03164930 A JPH03164930 A JP H03164930A JP 1305536 A JP1305536 A JP 1305536A JP 30553689 A JP30553689 A JP 30553689A JP H03164930 A JPH03164930 A JP H03164930A
- Authority
- JP
- Japan
- Prior art keywords
- register
- operand
- digit
- output
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims description 26
- 238000010586 diagram Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- ZOXJGFHDIHLPTG-UHFFFAOYSA-N Boron Chemical group [B] ZOXJGFHDIHLPTG-UHFFFAOYSA-N 0.000 description 1
Abstract
Description
【発明の詳細な説明】
技術分野
本発明はオーバフロー例外検出方式に関し、特に可変長
10進データの演算時のオーバフロー例外検出方式に関
する。TECHNICAL FIELD The present invention relates to an overflow exception detection method, and more particularly to an overflow exception detection method when calculating variable length decimal data.
従来技術
この種のオーバフロー例外検出のための従来例を第3図
に示し、第4図にその動作タイムチャトに示す。尚、こ
こで供給されるオペランドは、第5図に示す様に符号部
と絶対値部とからなる10進パック形式のデータとする
。Prior Art A conventional example of this type of overflow exception detection is shown in FIG. 3, and FIG. 4 is an operation time chart thereof. The operand supplied here is data in decimal packed format consisting of a sign part and an absolute value part, as shown in FIG.
絶対値部の1桁は4ビツトで、0000(2)から10
01(2)までの数で表現する。右の桁から100の位
、10’の位、・・、10”の位、1()”の位に位ど
りされ、最大15桁で10進数の絶対値を表現する。One digit of the absolute value part is 4 bits, from 0000 (2) to 10
Expressed as a number up to 01 (2). Starting from the right digit, the numbers are digitized into the 100's, 10', . . . , 10'', and 1()'', and the absolute value of the decimal number is expressed using a maximum of 15 digits.
可変長10進データのデータ長に合せてレジスタや演算
器のデータ幅を変化させることはできない。つまり、可
変長10進データは可変長であるが、可変長10進デー
タを扱うハードウェアは可変長ではない。そこで、ハー
ドウェア上に供給される可変長10進データは常に固定
長とし、実際の可変長10進データ部分を有効桁、ハー
ドウェアの都合上供給された部分を無効桁とみなしてデ
夕を扱っている。It is not possible to change the data width of a register or arithmetic unit in accordance with the data length of variable-length decimal data. In other words, although variable length decimal data is variable length, hardware that handles variable length decimal data is not variable length. Therefore, the variable length decimal data supplied to the hardware is always fixed length, and the actual variable length decimal data part is regarded as valid digits, and the part supplied for hardware reasons is regarded as invalid digits. I'm handling it.
可変長10進データの有効桁、無効桁を判断するために
データ長gを用いており、データ長gは10進1桁を中
位として表現され103の位まで有効桁である場合、N
−4,10目の位まて有効桁である場合g=12となる
。The data length g is used to determine the valid and invalid digits of variable length decimal data, and the data length g is expressed with one decimal digit as the middle digit, and if the valid digits are up to the 103rd digit, then N
If the -4th and 10th digits are significant digits, g=12.
第′う図において、21は供給されたデータ長gより無
効桁部分を算出し、オペランドのマスクをかける部分を
指示する無効桁指示回路、24はオペランドの無効桁を
“oooo”にマスクするマスク回路、26はオペラン
ドの絶対値を比較するコンパレータ、27は10進演算
器33の制御および演算結果の符号を決定する演算制御
回路、33は10進演算器、36は演算結果の有効桁を
算出する有効桁算出回路、37は演算結果の有効桁がオ
ーバフローしているかを調べる比較回路、38はオーバ
フロー例外を検出する例外検出回路である。In the figure, 21 is an invalid digit indicating circuit that calculates the invalid digit part from the supplied data length g and instructs the part of the operand to be masked, and 24 is a mask that masks the invalid digit of the operand to "oooo". 26 is a comparator that compares the absolute values of the operands; 27 is an arithmetic control circuit that controls the decimal arithmetic unit 33 and determines the sign of the arithmetic result; 33 is the decimal arithmetic unit; and 36 calculates the significant digits of the arithmetic result. 37 is a comparison circuit that checks whether the significant digits of the calculation result overflow, and 38 is an exception detection circuit that detects an overflow exception.
尚、22.23,25.28〜35.39はレジスタで
ある。Note that 22.23, 25.28 to 35.39 are registers.
第3図に示す装置上で、データ長g2の第2オペランド
がデータ長1の第1オペランドに加えられ、和がデータ
長g1の第1オペランドの場所に入れられるという10
進加算命令が実行される場合を考える。ここで、演算結
果の有効桁がglより大となったときにオーバフロー例
外となる。On the apparatus shown in FIG.
Consider the case where a base addition instruction is executed. Here, an overflow exception occurs when the effective digits of the operation result are greater than gl.
−例として、第1オペランドが−3524(In)でデ
ータ長111 =4.第2オペランドが+15241(
In) テデータ長g2−5とする。第2オペランドは
第6図(A)に示す形でレジスタ23に供給される。- As an example, the first operand is -3524 (In) and the data length is 111 = 4. The second operand is +15241 (
In) The data length is g2-5. The second operand is supplied to the register 23 in the form shown in FIG. 6(A).
X印をつけた無効桁部分には、どのようなデータがはい
っていてもかまわない。It doesn't matter what kind of data you put in the invalid digits marked with an X.
無効桁指示回路21は第2オペランドのデータ長ρ2=
5よりレジスタ22に“11111111110000
0”という値を出力する。各ビットはそれぞれレジスタ
23に供給された1o進オペランドの1桁に対応し、ゼ
ロマスクをかける桁には1が立つ。The invalid digit indicating circuit 21 determines the data length of the second operand ρ2=
5, “11111111110000” is stored in register 22.
0'' is output. Each bit corresponds to one digit of the decimal operand supplied to the register 23, and 1 is set in the digit to which the zero mask is applied.
第4図のタイムチャートに示すtoのタイミングで、レ
ジスタ23に第2オペランドが、レジスタ22に第2オ
ペランドの無効桁指示情報が夫々セットされる。レジス
タ23の第2オペランドの絶対値部は、マスク回路24
でレジスタ22の指示に従い無効桁部分にゼロマスクを
かけ、第6図(B)に示す形でレジスタ25にセットさ
れる。At timing to shown in the time chart of FIG. 4, the second operand is set in the register 23, and the invalid digit indication information of the second operand is set in the register 22, respectively. The absolute value part of the second operand of the register 23 is sent to the mask circuit 24.
According to the instructions of the register 22, the invalid digits are zero-masked and set in the register 25 in the form shown in FIG. 6(B).
また、第1オペランドは第6図(C)の形でレジスタ2
3に供給される。Also, the first operand is in register 2 in the form shown in Figure 6(C).
3.
無効桁指示回路2]は第1オペランドのデータ長g1−
4より、レジスタ22に” +11111111110
ooo ”を出力する。Invalid digit indicating circuit 2] determines the data length g1- of the first operand.
4, to register 22" +11111111110
ooo” is output.
第4図のタイムチャートに示すtlのタイミングで、レ
ジスタ25に無効桁がゼロマスクされた第2オペランド
が、レジスタ23に第1オペランドが、レジスタ22に
第1オペランドの無効桁指示情報が夫々セットされる。At the timing tl shown in the time chart of FIG. 4, the second operand with invalid digits zero-masked is set in the register 25, the first operand is set in the register 23, and the invalid digit instruction information of the first operand is set in the register 22. Ru.
レジスタ23の第1オペランドの絶対値部はマスク回路
24でレジスタ22の指示に従って無効桁部分にゼロマ
スクをかけられ、第6図(D)の形で出力される。The absolute value part of the first operand of the register 23 is zero-masked at the invalid digit part by the mask circuit 24 according to the instruction of the register 22, and is outputted in the form shown in FIG. 6(D).
マスク回路24の出力とレジスタ25の絶対値部とがコ
ンパレータ26で比較されて、レジスタ25の絶対値部
のほうが大きいことが演算制御回路27に報告される。The output of the mask circuit 24 and the absolute value part of the register 25 are compared by a comparator 26, and it is reported to the arithmetic control circuit 27 that the absolute value part of the register 25 is larger.
演算制御回路27はレジス923.25の符号部が異符
号であり、レジスタ25の絶対値のほうが大きいという
結果がら、演算結果の符号としてレジスタ25の符号部
の符号、すなわち+を出力する。また、1〔〕進演算器
33に対してレジスタ32の出力からレジスタ31の出
力を減じるよう指示する。The arithmetic control circuit 27 outputs the sign of the sign part of the register 25, ie, +, as the sign of the arithmetic result, since the sign part of the register 923.25 has a different sign and the absolute value of the register 25 is larger. It also instructs the decimal arithmetic unit 33 to subtract the output of the register 31 from the output of the register 32.
第4図のタイムチャートに示すt2のタイミングで、レ
ジスタ28にレジスタ22の出力すなゎち第1オペラン
ドの無効桁情報が、レジスタ29に10進演算器33の
制御情報が、レジスタ3゜に演算結果の符号が夫々セッ
トされる。また、レジスタ31にはマスク回路24の出
力が、レジスタ32にはレジスタ25の出力が夫々セッ
トされる。At timing t2 shown in the time chart of FIG. 4, the output of the register 22, that is, the invalid digit information of the first operand, is sent to the register 28, the control information of the decimal operator 33 is sent to the register 29, and the control information of the decimal arithmetic unit 33 is sent to the register 3. The sign of each operation result is set. Further, the output of the mask circuit 24 is set in the register 31, and the output of the register 25 is set in the register 32, respectively.
レジスタ29の指示により、1o進演算器3゛3で絶対
値部の演算を行う。第6図(E)に示す演算結果かレジ
スタ32に格納される。このとき、キャリーは発生しな
いので、レジスタ35にはOがセットされる。According to the instruction from the register 29, the absolute value part is calculated by the 1o-adic calculation unit 3-3. The calculation result shown in FIG. 6(E) is stored in the register 32. At this time, since no carry occurs, O is set in the register 35.
第4図に示すt3のタイミングで、レジスタ32に演算
結果の絶対値部が、レジスタ35にキャリーが夫々セッ
トされる。レジスタ28.30はホールドされる。At timing t3 shown in FIG. 4, the absolute value part of the operation result is set in the register 32, and the carry is set in the register 35. Registers 28.30 are held.
有効桁算出回路36ては、レジスタ32の値より有効桁
を算出する。]O進1桁が0なら0を、O以外なら1を
夫々出力する。すなわち、”ooo。The significant digit calculation circuit 36 calculates the significant digits from the value of the register 32. ]If the first digit of O-adic is 0, outputs 0, and if it is other than O, outputs 1. In other words, “ooo.
00000011111”が出力される。00000011111” is output.
比較回路37では、有効桁算出回路の出力と、レジスタ
28の出力の反転、すなわち“000圓0000001
111“とが比較され、レジスタ32の演算結果の絶対
値の有効桁のほうか大きいことが報告される。The comparison circuit 37 inverts the output of the significant digit calculation circuit and the output of the register 28, that is, "000 yen 0000001".
111", and it is reported that the significant digit of the absolute value of the operation result of the register 32 is larger.
例外検出回路38では、比較回路37の検出結果とレジ
スタ35のキャリーより例外を検出する。The exception detection circuit 38 detects an exception based on the detection result of the comparison circuit 37 and the carry of the register 35.
この場合、演算結果の絶対値の有効桁か第1オペランド
の有効桁より大きいこ\とか報告されているので、例外
が報告される。また、レジスタ35のキャリーを参照す
る場合は、例えば第1オペランドが第6図(F)の形で
あり、データ長g1=15であり、第2オペランドが第
6図(G)の形で、データ長、Q 2 = 15の場合
の演算結果の絶対値部は第6図(H)となり、比較回路
37ではオーバフロー例外は検出されない。しかし、実
際には絶対値の演算によってキャリーが発生しているの
で、オーバフロー例外が発生している。このような場合
を検出するために、例外検出回路38ではレジスタ35
のキャリーをも参照するのである。In this case, an exception is reported because it is reported that the significant digits of the absolute value of the operation result are greater than the significant digits of the first operand. When referring to the carry in the register 35, for example, the first operand is in the form shown in FIG. 6(F), the data length g1=15, and the second operand is in the form shown in FIG. 6(G). The absolute value part of the operation result when the data length is Q 2 =15 is shown in FIG. 6 (H), and the comparator circuit 37 does not detect an overflow exception. However, since a carry is actually generated by the absolute value operation, an overflow exception occurs. In order to detect such a case, the exception detection circuit 38 uses the register 35.
It also refers to the carry of
第4図のタイムチャートに示ずt4のタイミングで、レ
ジスタ34にレジスタ32の演算結果の絶対値とレジス
タ30の符号とがセットされる。At timing t4 not shown in the time chart of FIG. 4, the absolute value of the calculation result of the register 32 and the sign of the register 30 are set in the register 34.
レジスタ39にオーバフロー例外がセットされる。An overflow exception is set in register 39.
上述した従来の可変長10進データのオーバフロー例外
検出方式では、専用の有効桁算出回路36および比較回
路37が必要であり、また演算が終了してから]クロツ
タ後でないとオーバフロー例外が検出てきないという欠
点がある。In the conventional overflow exception detection method for variable-length decimal data described above, a dedicated significant digit calculation circuit 36 and a comparison circuit 37 are required, and an overflow exception cannot be detected until after the calculation is completed. There is a drawback.
発明のII的
本発明の目的は、ハードウェア量を削減しつつ更にオー
バフロー例外の検出をより高速化可能なオーバフロー例
外検出方式を提供することである。A second object of the present invention is to provide an overflow exception detection method that can further speed up the detection of overflow exceptions while reducing the amount of hardware.
発明の構成
本発明によれば、弓変長10進データである第1及び第
2オペランドの加減算処理をなす演算手段を有するデー
タ処理装置のオーバフロー例外検出方式であって、前記
第1オペランドの無効桁部分の各桁を“1001”に、
また有効桁部分の各桁を“oooo”に夫々置換する置
換手段を設け、前記第2オペランドの有効桁と前記置換
手段の出力とを前記演算手段により加算処理し、続いて
前記第1オペランドの有効桁と前記第2オペランドの有
効桁とを、これ等両オペランドの符号に基き前記演算手
段により加減算処理し、これ等加算処理結果及び加減算
処理結果のキャリー及びボロ出力に応じて前記第1及び
第2オペランドのオーバフロー例外検出をなすことを特
徴とするオーバフロー例外検出方式が得られる。According to the present invention, there is provided an overflow exception detection method for a data processing device having arithmetic means for performing addition and subtraction processing on first and second operands which are arcuate length decimal data, the method comprising: Set each digit in the digit part to “1001”,
Further, a substitution means is provided for replacing each digit of the significant digit part with "oooo", and the significant digit of the second operand and the output of the substitution means are added together by the arithmetic means. The significant digits and the significant digits of the second operand are subjected to addition/subtraction processing by the arithmetic means based on the signs of both operands, and the first and second operands are added/subtracted based on the signs of both operands, and the first and second operands are added/subtracted according to the results of the addition process and the carry and boro outputs of the results of the addition/subtraction process. An overflow exception detection method characterized by detecting an overflow exception of the second operand is obtained.
実施例
次に、本発明の実施例について図面を参照して説明する
。Embodiments Next, embodiments of the present invention will be described with reference to the drawings.
第1図は本発明の実施例のブロック図であり、第1図の
動作を説明するためのタイムチャーI・を第2図に示す
。FIG. 1 is a block diagram of an embodiment of the present invention, and FIG. 2 shows a time chart I for explaining the operation of FIG. 1.
第1図において、1は供給されたデータ長Ωより無効桁
部分を算出し、オペランドのマスクをかける部分を指示
する無効桁指示回路、4はオペランドの無効桁を“oo
oo”にマスクするマスク回路、7はオペランドの絶対
値を比較するコンパレータ、8は10進演算器14の制
御および演算結果の符号を決定する演算制御回路、9は
オペランドの無効桁部分を“1001”に有効桁部分を
“口000”にする差換回路、13は差換回路9または
レジスタ]2の値を選択するセレクタ、14は10進演
算器、15はオーバフロー例外を検出する例外検出回路
である。In FIG. 1, 1 is an invalid digit indicating circuit that calculates the invalid digit part from the supplied data length Ω and instructs the part of the operand to be masked, and 4 is the invalid digit part of the operand that
7 is a comparator that compares the absolute values of operands, 8 is an arithmetic control circuit that controls the decimal arithmetic unit 14 and determines the sign of the operation result, and 9 masks the invalid digits of the operands to "1001". 13 is a selector that selects the value of the conversion circuit 9 or register]2, 14 is a decimal arithmetic unit, and 15 is an exception detection circuit that detects an overflow exception. It is.
尚、2,3,5,6,1.0〜1.2.16〜19はレ
ジスタを示す。Note that 2, 3, 5, 6, 1.0 to 1.2, 16 to 19 indicate registers.
0
ここて、従来の技術で述べたと同様、第2オペランドが
第1オペランドに加えられた和が第1オペランドの場所
に入れられるという10進加算命令が実行されるとする
。以下に示す3つの場合に分類して考えることにする。0 As described in the prior art, it is assumed that a decimal addition instruction is executed in which the sum of the second operand and the first operand is placed in the first operand's place. We will classify and consider the following three cases.
(1)第1オペランドと第2オペランドが同符号の場合
、
(2)第1オペランドと第2オペランドが異70号で第
2オペランドの絶対値のほうが大きい場合、(3)第1
オペランドと第2オペラドが異荀号で第1オペランドの
絶対値のほうが大きい、または第1オペランドと第2オ
ペランドの絶対値が等しい場合、
(1)および(2)の場合、オーバフロー例外は起こり
得るが、(3)の場合には、演算結果の絶対値が第1オ
ペランドの絶対値よりも大きくなり得ないので、オーバ
フロー例外は起こり得ない。(1) When the first and second operands have the same sign, (2) When the first and second operands are different and the absolute value of the second operand is larger, (3) When the first operand
If the operand and second operand have different numbers and the absolute value of the first operand is greater, or the absolute value of the first and second operand is equal, an overflow exception can occur in cases (1) and (2). However, in case (3), the absolute value of the operation result cannot be greater than the absolute value of the first operand, so an overflow exception cannot occur.
初めに(1)の場合について説明する。第1オペランド
が+5473(10)でデータ長β1=4.第2オペラ
ンドが+7828(10)でデータ長g2−4とす1す
る。第2図に示すtoのタイミングで、レジスタ3に第
2オペランドが第7図(A)の形で供給される。レジス
タ2には無効桁指示情報“000000000口011
11”か格納される。First, case (1) will be explained. The first operand is +5473 (10) and the data length β1=4. Assume that the second operand is +7828 (10) and the data length is g2-4. At the timing to shown in FIG. 2, the second operand is supplied to the register 3 in the form shown in FIG. 7(A). Register 2 contains invalid digit instruction information “000000000 entry 011
11” is stored.
第2図に示すtlのタイミングで、レジスタ3に第1オ
ペランドが第7図(B)の形で供給される。レジスタ2
には無効桁指示情報“011000000000111
1”が格納される。レジスタ5には第2オペランドの符
号が格納される。レジスタ6および17には第2オペラ
ンドがマスク回路4て無効桁がマスクされて第7図(C
)の形で供給される。At the timing tl shown in FIG. 2, the first operand is supplied to the register 3 in the form shown in FIG. 7(B). register 2
Invalid digit instruction information “011000000000111
1" is stored. The sign of the second operand is stored in the register 5. The sign of the second operand is stored in the registers 6 and 17, and the invalid digits are masked by the mask circuit 4.
) is supplied in the form of
第2図に示すt2のタイミングで、レジスタ17の値と
、セレクタ13で選択された、レジスタ2の指示による
差換回路9の出力である第7図(D)とが10進演算器
14で加算され、その演算結果である第7図(E)がレ
ジスタ17に格納される。このとき、キャリーは発生し
ないのでレジスタ16には0が格納される。レジスタ1
2には、レジスタ3に格納された第1オペランドがマス
ク回路4て無効桁がマスクされ、第7図(F)2
の形で格納される。At timing t2 shown in FIG. 2, the value of the register 17 and the output of the switching circuit 9 selected by the selector 13 and shown in FIG. The result of the calculation, shown in FIG. 7(E), is stored in the register 17. At this time, since no carry occurs, 0 is stored in the register 16. register 1
2, the first operand stored in the register 3 is masked with invalid digits by the mask circuit 4, and is stored in the form shown in FIG. 7(F)2.
コンパレータ7でマスク回路4の出力とレジスタ6の出
力が比較され、演算制御回路8に報告される。演算制御
回路8は第1オペランドと第2オペランドが同符号であ
るので、10進演算器14に絶対値の加算を指示すると
共に、演算結果の符号子を指示する。レジスタ10に1
0進演算器14の制御情報が、レジスタ11に演算結果
の符号が夫々格納される。A comparator 7 compares the output of the mask circuit 4 and the output of the register 6, and reports the result to the arithmetic control circuit 8. Since the first and second operands have the same sign, the arithmetic control circuit 8 instructs the decimal arithmetic unit 14 to add the absolute values and also instructs the sign of the arithmetic result. 1 in register 10
The control information of the 0-base arithmetic unit 14 and the sign of the operation result are stored in the register 11, respectively.
第2図に示すt3のタイミングで、セレクタ13で選択
されたレジスタ12の出力とレジスタ17の出力とがレ
ジスタ10の指示により加算される。その結果、第7図
(G)が出力されキャリーが発生する。例外検出回路1
5では、レジスタ16の出力と10進演算器14てのキ
ャリーとにより、レジスタ10の指示に基いて例外を検
出する。At timing t3 shown in FIG. 2, the output of the register 12 selected by the selector 13 and the output of the register 17 are added according to an instruction from the register 10. As a result, the signal shown in FIG. 7(G) is output and a carry occurs. Exception detection circuit 1
5, an exception is detected based on the instruction of the register 10 based on the output of the register 16 and the carry of the decimal arithmetic unit 14.
レジスタ10は例外の検出を指示しているので例外を検
出し、レジスタ18に検出結果を格納する。Since the register 10 instructs to detect an exception, the exception is detected and the detection result is stored in the register 18.
この場合、オーバフロー例外が検出される。レジスタ1
9にレジスタ1]の出力および10進演算]3
器14の出力より演算結果である第7図(H)の+31
01(10)が格納される。In this case, an overflow exception is detected. register 1
9, the output of register 1] and decimal operation] 3 +31 in FIG. 7 (H), which is the operation result from the output of register 14.
01 (10) is stored.
次に、(2)の場合について説明する。第1オペランド
が+284(1,0)でデータ長g1−3第2オペラン
ドか−1204(1口)でデータ長β2=4とする。第
2図に示すtoのタイミングで、レジスタ3に第2オペ
ラドが、第8図(A)の形で供給される。レジスタ2に
は無効桁指示情報“000 flooooooolll
l”が格納される。Next, case (2) will be explained. The first operand is +284 (1,0), the data length g1-3, the second operand is -1204 (1 unit), and the data length β2=4. At the timing to shown in FIG. 2, the second operand is supplied to the register 3 in the form shown in FIG. 8(A). Register 2 contains invalid digit instruction information “000 flooooooll
l'' is stored.
第2図に示すtlのタイミングで、レジスタ3に第1オ
ペランドがfJX8図(B)の形で供給される。レジス
タ2には無効桁指示情報’ [10(+(In(1(+
00(100111″が格納される。レジスタ5には第
2オペランドの符号が格納される。レジスタ6および1
7には、レジスタ3の第2オペランドがマスク回路4で
無効桁がマスクされて第8図(C)の形で供給される。At the timing tl shown in FIG. 2, the first operand is supplied to the register 3 in the form of fJX8 (B). Register 2 contains invalid digit instruction information' [10(+(In(1(+
00 (100111'' is stored. Register 5 stores the sign of the second operand. Registers 6 and 1
7, the second operand of the register 3 is supplied with invalid digits masked by the mask circuit 4 in the form shown in FIG. 8(C).
第2図に示すt2のタイミングで、レジスタ17の値と
、セレクタ13で選択された、レジスタ2の指示による
差換回路9の出力である第8図4
(D)とが演算器14て加算され、その演算結果である
第8図(E)がレジスタ17に格納される。At timing t2 shown in FIG. 2, the value of the register 17 and the output of the switching circuit 9 (D) in FIG. The calculation result shown in FIG. 8(E) is stored in the register 17.
発生したキャリーはレジスタ16に格納される。The generated carry is stored in register 16.
レジスタ12には、レジスタ3に格納された第1オペラ
ンドがマスク回路4て無効桁がマスクされ、第8図(F
)の形で格納される。The first operand stored in the register 3 is stored in the register 12 by a mask circuit 4, with invalid digits being masked, and as shown in FIG.
) is stored in the form.
コンパレータ7てマスク回路4の出力とレジスタ6の出
力か比較され、演算回路8に報告される。A comparator 7 compares the output of the mask circuit 4 with the output of the register 6, and reports the result to the arithmetic circuit 8.
演算制御回路8は2つのオペランドが異符号であり、レ
ジスタ6の絶対値のほうが大きいので、10進演算器1
4てレジスタ17の出力からセレクタ13の出力を減算
する指示を出す。この10進演算器14の制御情報はレ
ジスタ1oに格納される。また、演算制御回路8により
演算結果の符号が−と決定され、レジスタ11に格納さ
れる。The arithmetic control circuit 8 uses the decimal arithmetic unit 1 because the two operands have different signs and the absolute value of the register 6 is larger.
4, an instruction is issued to subtract the output of the selector 13 from the output of the register 17. Control information for this decimal arithmetic unit 14 is stored in register 1o. Further, the sign of the calculation result is determined to be - by the calculation control circuit 8, and is stored in the register 11.
第2図に示すt3のタイミングで、レジスタ10の指示
によるレジスタ17の出力から、セレクタ13で選択さ
れたレジスタ12の出力が減算される。その結果、第8
図(G)が出力されてボローが発生する。At timing t3 shown in FIG. 2, the output of the register 12 selected by the selector 13 is subtracted from the output of the register 17 according to the instruction of the register 10. As a result, the 8th
Figure (G) is output and a borrow occurs.
5
例外検出回路15では、レジスタ10の指示により例外
を検出する。レジスタ6に格納されたキャリーと、10
進演算器14より出力されたボローとが相殺され、オー
バフロー例外は検出されない。レジスタ18にその検出
結果を格納する。レジスタ19にレジスタ11の出力お
よび10進演算器14の出力より演算結果−920(1
0)が格納される。第8図(H)はその演算結果である
。5. The exception detection circuit 15 detects exceptions according to instructions from the register 10. The carry stored in register 6 and 10
The borrow output from the decimal operator 14 is canceled out, and no overflow exception is detected. The detection result is stored in the register 18. The register 19 receives the operation result -920 (1
0) is stored. FIG. 8(H) shows the calculation result.
最後に(3)の場合について説明する。第1オペランド
が÷8428(10)でデータ長g1=4 第2オペラ
ンドが−7834(10)でデータ長112−4とする
。第2図に示すtoのタイミングで、レジスタ3に第2
オペランドが第9図(A)の形で供給される。レジスタ
2には無効桁指示情報“ooooooo。Finally, case (3) will be explained. The first operand is ÷8428 (10) and the data length g1=4. The second operand is -7834 (10) and the data length is 112-4. At the timing of to shown in FIG. 2, the second
Operands are provided in the form of FIG. 9(A). Register 2 contains invalid digit instruction information “oooooooo.”
00001111”が格納される。00001111" is stored.
第2図に示すtlのタイミングで、レジスタ3に第1オ
ペランドが第9図(B)の形で供給される。レジスタ2
には無効桁指示情報“ooooooooo。At the timing tl shown in FIG. 2, the first operand is supplied to the register 3 in the form shown in FIG. 9(B). register 2
Invalid digit instruction information “oooooooooo.”
01111″が格納される。レジスタ5には第2オペラ
ンドの符号が格納される。レジスタ6および1]6
7には、第2オペランドがマスク回路4て無効桁がマス
クされて第9図(C)の形で供給される。01111'' is stored in the register 5.The sign of the second operand is stored in the register 5.The sign of the second operand is stored in the registers 6 and 1]67 as shown in FIG. ) is supplied in the form of
第2図に示すt2のタイミングで、レジスタ17の値と
、セレクタ13で選択された、レジスタ2の指示による
差換回路9の出力である第9図(D)とが演算器14で
加算され、第9図(E)がレジスタ17に格納される。At timing t2 shown in FIG. 2, the value of the register 17 and the output of the switching circuit 9 (D) in accordance with the instruction of the register 2, selected by the selector 13, are added by the arithmetic unit 14. , FIG. 9(E) are stored in the register 17.
この場合キャリーは発生しないので、レジスタ16には
Oが格納される。レジスタ12には、レジスタ3に格納
された第1オペランドがマスク回路4て無効桁がマスク
され、第9図(F)の形で格納される。In this case, since no carry occurs, O is stored in the register 16. The first operand stored in the register 3 is stored in the register 12 in the form shown in FIG. 9(F) with invalid digits masked by the mask circuit 4.
コンパレータ7でマスク回路4の出力とレジスタ6の出
力とが、比較されて演算制御回路8に報告される。演算
制御回路8は2つのオペランドが異符号であり、レジス
タ6の絶対値のほうが小さいので、1〔〕進演算器14
でセレクタ13の出力からレジスタ17の出力を減算す
る指示を出す。A comparator 7 compares the output of the mask circuit 4 and the output of the register 6 and reports the result to the arithmetic control circuit 8. Since the two operands have different signs and the absolute value of the register 6 is smaller, the arithmetic control circuit 8 uses the decimal arithmetic unit 14.
An instruction to subtract the output of the register 17 from the output of the selector 13 is issued.
この10進演算器14の制御情報はレジスタ10に格納
される。また、演算制御回路8により演算結果の符号が
十と決定され、レジスタ1]に格納7
される。Control information for this decimal arithmetic unit 14 is stored in the register 10. Further, the arithmetic control circuit 8 determines that the sign of the arithmetic result is 10, and stores it in the register 1].
第2図に示すt3のタイミングで、レジスタ10の指示
により、セレクタ13で選択されたレジスタ12の出力
からレジスタ]7の出力が減算される。その減算結果は
第9図(G)となり、ボローが発生する。At timing t3 shown in FIG. 2, the output of register]7 is subtracted from the output of register 12 selected by selector 13 according to the instruction of register 10. The result of the subtraction is shown in FIG. 9 (G), and a borrow occurs.
例外検出回路15では、レジスタ10の指示により例外
が検出される。第1オペランドと第2オペランドが異符
号で第1オペランドの絶対値のほうが大きい、あるいは
2つのオペランドの絶対値が等しい場合、オーバフロー
例外は発生しない。The exception detection circuit 15 detects an exception according to instructions from the register 10. If the first and second operands have different signs and the absolute value of the first operand is greater, or if the absolute values of the two operands are equal, no overflow exception occurs.
すなわち、レジスタ10はオーバフロー例外が検出され
ないことを出力するよう指示される。例外検出回路15
の出力はレジスタ18に格納される。That is, register 10 is instructed to output that no overflow exception has been detected. Exception detection circuit 15
The output of is stored in register 18.
レジスタ19にレジスタ11の出力および1o進演算器
14の出力より演算結果+0592(10)が格納され
る。第9図(H)はその演算結果を示す。The operation result +0592 (10) is stored in the register 19 from the output of the register 11 and the output of the 1o-adic arithmetic unit 14. FIG. 9(H) shows the calculation result.
発明の効果
叙上の如く本発明によれば、実際の演算に先立って、第
1オペランドの無効桁の各々に“100ビ8
を、また有効桁の各々に’ oooo”を大々置換して
オーバフロー検出車のマスクデータを予め生成しておき
、このオーバフロー検出用マスクデータと第2オペラン
ドの有効桁との加算結果のキャリーと、第1.第2オペ
ランドの有効桁の加減算結宋のキャリー(又はボロー)
とにより、この加減算結果のオーバフロー例外を高速に
検出することができるという効果がある。Effects of the Invention As described above, according to the present invention, prior to the actual operation, each of the invalid digits of the first operand is replaced with "100bi8", and each of the significant digits is replaced with 'oooo'. Mask data for the overflow detection vehicle is generated in advance, and the result of addition of this overflow detection mask data and the significant digit of the second operand is carried, and the first . Addition/subtraction of significant digits of the second operand; Song carry (or borrow)
This has the effect that an overflow exception of the addition/subtraction result can be detected at high speed.
第1図は本発明の実施例のブロック図、第2図は第1図
のブロックの動作を示すタイムチャート、第3図は従来
技術を示すブロック図、第4図は第3図のブロックの動
作を示すチャート、第5図は10進可変長データ形式を
示す図、第6図は第3図のブロックの動作タイミング毎
の各レジスタの内容を示す図、第7図〜第9図は第1図
のブロックの動作タイミング毎の各レジスタの内容を、
第1及び第2オペランドの関係毎に示す図である。
主要部分の符号の説明
1・・・・・・無効桁指示回路
1つ
〕
4・・・・・・マスク回路
7・・・・コンパレータ
8・・・・・演算制御回路
9・・・・・差換回路
4・・・・・・10進演算回路
5・・・・・・例外検出回路Fig. 1 is a block diagram of an embodiment of the present invention, Fig. 2 is a time chart showing the operation of the blocks in Fig. 1, Fig. 3 is a block diagram showing the prior art, and Fig. 4 is a block diagram of the blocks in Fig. 3. 5 is a chart showing the decimal variable length data format. FIG. 6 is a chart showing the contents of each register for each operation timing of the block in FIG. 3. FIGS. The contents of each register for each operation timing of the block in Figure 1 are as follows:
FIG. 6 is a diagram showing each relationship between the first and second operands. Explanation of symbols of main parts 1...1 invalid digit indicating circuit] 4...Mask circuit 7...Comparator 8...Arithmetic control circuit 9... Conversion circuit 4... Decimal calculation circuit 5... Exception detection circuit
Claims (1)
ドの加減算処理をなす演算手段を有するデータ処理装置
のオーバフロー例外検出方式であって、前記第1オペラ
ンドの無効桁部分の各桁を“1001”に、また有効桁
部分の各桁を“0000”に夫々置換する置換手段を設
け、前記第2オペランドの有効桁と前記置換手段の出力
とを前記演算手段により加算処理し、続いて前記第1オ
ペランドの有効桁と前記第2オペランドの有効桁とを、
これ等両オペランドの符号に基き前記演算手段により加
減算処理し、これ等加算処理結果及び加減算処理結果の
キャリー及びボロー出力に応じて前記第1及び第2オペ
ランドのオーバフロー例外検出をなすことを特徴とする
オーバフロー例外検出方式。(1) An overflow exception detection method for a data processing device having arithmetic means for performing addition/subtraction processing on first and second operands that are variable length decimal data, wherein each digit of an invalid digit portion of the first operand is 1001" and each digit of the significant digit part to "0000", the significant digits of the second operand and the output of the replacing means are added together by the arithmetic means, and then the The significant digits of the first operand and the significant digits of the second operand,
Addition and subtraction processing is performed by the arithmetic means based on the signs of these two operands, and overflow exception detection of the first and second operands is performed in accordance with carry and borrow outputs of the addition processing results and the addition and subtraction processing results. Overflow exception detection method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1305536A JPH03164930A (en) | 1989-11-24 | 1989-11-24 | Detection system for exception to overflow |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1305536A JPH03164930A (en) | 1989-11-24 | 1989-11-24 | Detection system for exception to overflow |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03164930A true JPH03164930A (en) | 1991-07-16 |
Family
ID=17946338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1305536A Pending JPH03164930A (en) | 1989-11-24 | 1989-11-24 | Detection system for exception to overflow |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH03164930A (en) |
-
1989
- 1989-11-24 JP JP1305536A patent/JPH03164930A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102447636B1 (en) | Apparatus and method for performing arithmetic operations for accumulating floating point numbers | |
US5530663A (en) | Floating point unit for calculating a compound instruction A+B×C in two cycles | |
JPH0228830A (en) | Integer number dividing circuit | |
JP2502836B2 (en) | Preprocessing device for division circuit | |
JPH01302425A (en) | Floating decimal point adder/subtracter circuit | |
JPH03164930A (en) | Detection system for exception to overflow | |
JPH03142533A (en) | Check system for decimal data | |
JP2591250B2 (en) | Data processing device | |
JPH0383127A (en) | Decimal divider | |
JPS60167030A (en) | System and circuit for shift flag generation | |
JPH01282633A (en) | Non-normalized number processing system | |
JPH0223421A (en) | Arithmetic processing unit | |
JPH03150631A (en) | Decimal dividing circuit | |
US5801978A (en) | Overflow detection for integer-multiply instruction | |
JPH0553759A (en) | Fixed decimal point arithmetic unit | |
JPS61224036A (en) | Arithmetic unit | |
JP2615746B2 (en) | Bit operation circuit | |
JPH07134645A (en) | Device for generating condition code for information processing | |
JP3522387B2 (en) | Pipeline arithmetic unit | |
JPH07104777B2 (en) | Floating point adder / subtractor | |
JPH0644226B2 (en) | Processor | |
JPS63279321A (en) | Microprogram controller | |
JPS6224322A (en) | Floating point arithmetic unit | |
JPH03241421A (en) | Multiplier | |
JPH0413734B2 (en) |