JPH0352092B2 - - Google Patents

Info

Publication number
JPH0352092B2
JPH0352092B2 JP59243801A JP24380184A JPH0352092B2 JP H0352092 B2 JPH0352092 B2 JP H0352092B2 JP 59243801 A JP59243801 A JP 59243801A JP 24380184 A JP24380184 A JP 24380184A JP H0352092 B2 JPH0352092 B2 JP H0352092B2
Authority
JP
Japan
Prior art keywords
overflow
register
operand
bit
byte
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
JP59243801A
Other languages
English (en)
Other versions
JPS61123930A (ja
Inventor
Hisashi Ibe
Kimitoshi Hamada
Yasuhiko Ibuki
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP59243801A priority Critical patent/JPS61123930A/ja
Publication of JPS61123930A publication Critical patent/JPS61123930A/ja
Publication of JPH0352092B2 publication Critical patent/JPH0352092B2/ja
Granted 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • 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/3816Accepting numbers of variable word length

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は10進加算演算サイクルで発生するオー
バフローの検出方式の改良に関するものである。
演算の結果オーバフローが発生すると単に演算
エラーに止まらないでその演算に関連するデータ
領域が破壊され、更に他メモリ領域にまで損傷を
及ぼす等重大な問題を引き起こすことがある。
これを防止するために、オーバフローの発生し
た時は直ちにこれを検出しアラーム等適当な処置
をする必要がある。このため演算途中に度々チエ
ツクしてオーバフローを速やかに検出している。
しかし、これは演算速度との関連があり、適切
な方式でオーバフローの検出を行う必要がある。
〔従来の技術〕
一般に、2オペランド演算では演算命令によつ
てメモリからオペランド1とオペランド2のデー
タが演算レジスタにセツトされ演算器によつて加
算された後、その演算結果が再び演算レジスタを
経てオペランド1のアドレスに格納される。
可変長データの演算の場合には、演算結果の桁
数がオペランド1より大であればメモリにセツト
することができないので、オーバフローとして別
の処理、例えばエラーとして処理される。
もしこのオーバフローが正しく検出されないと
オペランド1より長いデータをオペランド1と同
じ先頭アドレスから書き込むことになり、オペラ
ンド1の次のアドレスにあるデータを破壊するこ
とになるからである。
具体的に可変長データのオーバフローの条件を
説明する。例えば4バイト幅の加算器を用いた場
合を考える。第5図aのようにオペランド1の有
効桁数L1、オペランド2の有効桁数L2とし、L1
≧L2の場合、演算の結果オペランド1の有効桁
数L1の最上桁から桁上げがあれば、オーバフロ
ーとなる。一方、第5図bのように、L1<L2の
場合、演算の結果、L2の最上桁からの桁上げの
ほかに、オペランド1の有効桁数L1からの桁上
げによつてもオーバフローにする必要がある。
以下、第3図のブロツク図を用いて従来の10進
加算演算におけるオーバフロー検出方式を説明す
る。構成、動作の説明を理解し易くするために、
8バイト以下のデータが4バイト幅の10進演算器
で加算演算されるものとする。
まず各部の動作を説明する。
1はオペランド1のデータの内、上位4バイト
が、また、2はその下位4バイトがセツトされる
演算レジスタである。同様に3,4はオペランド
2に関するそれぞれ上位および下位の演算レジス
タである。5は4バイトの10進加算器で、上位と
下位バイトに分けてそれぞれ加算する。6はキヤ
リ検出器で、演算結果の4バイトの最上位桁から
の桁上げが検出されれば、ビツト0の信号CRY0
を“1”とする。次の桁、即ち、第2桁目から最
上位桁への桁上げが検出されればビツト1の信号
CRY1が、以下第3桁目から第2桁目へはビツト
2の信号CRY2が、第4桁目から第3桁目へはビ
ツト3の信号CRY3が“1”となる。8はオペラ
ンド長レジスタで、オペランド1の有効桁数を示
す4ビツトレジスタである。この下2桁はオペラ
ンド1を4桁づつ区切つた時の最上位の有効桁の
4桁中の位置を示す。即ち、図示する4桁の最上
位の桁をバイト0とし、以下の桁をバイ1、バイ
ト2、バイト3、とすると、“**00”はバイト
3に最上位桁があり、“**01”はバイト2に、
“**10”はバイト1に、“**11”はバイト0に
最上位桁があることを示す(*印は1、0のいず
れでもよいことを示す)。7はキヤリ生成回路で、
次の論理式で表現される機能を有する回路であ
る。
CRYL1=CRY0・L1〔11〕+CRY1・ L1〔10〕+CRY2・L1〔01〕+CRY3・ L1〔00〕 ……(式1) 但し、CRYL1はキヤリ生成回路の出力信号で
この値は右辺の論理式の値によつて“1”か
“0”である。CRY0〜3はキヤリ検出器6の各
桁の桁上げビツトの論理信号である。即ち、式1
の論理式が成立すればキヤリ生成回路7は信号
“1”を発生する。
L1〔XX〕はオペランド長レジスタ8の下位2
桁の値を示す。例えば、L1〔10〕はオペランド長
レジスタ8のビツト2の値は1で、ビツト3の値
は0、即ち、上記の表現で“**10”であること
を示す。9はデコーダで、オペランド長レジスタ
8の下2桁の内容を上記4つの場合にデコードし
てキヤリ生成回路7に与える。10はオーバフロ
ービツトレジスタで、オーバフローが検出された
時このレジスタの出力信号は“1”となる。
次に、第4図のフローチヤートに基づいて説明
する。
ステツプ1 演算命令によつてメモリからオペランド1の上
位4バイトは演算レジスタ1に、下位4バイトは
演算レジスタ2にセツトされる。
ステツプ2 ステツプ1と同様に、オペランド2の上位4バ
イトは演算レジスタ3に、下位4バイトは演算レ
ジスタ4にセツトされる。オペランド1のデータ
の有効桁数はオペランド長レジスタ8にセツトさ
れている。
ステツプ3 10進加算器5は演算レジスタ2と演算レジスタ
4からデータを読み込み加算演算する。その演算
結果を演算レジスタ2にセツトする。キヤリ生成
回路7が、キヤリ検出器6とオペランド長レジス
タ8からデコーダ9を介して送られたデータとに
基づき、前記式1の論理値によつて信号を発生す
る。更に、この信号とマイクロ命令等より与えら
れる演算種別信号ARITHOP(加算命令の時に
ARITHOP=1)と次の論理式によつてオーバ
フロービツトレジスタ10に信号をセツトする。
DOVFL=CRYL1・ARITHOP ……(式2) 但し、DOVFLはオーバフロービツトレジスタ
10の内容の信号名である。
ステツプ4 マイクロプログラムがL1≧4を判断する。即
ちオペランド1の有効桁数が4桁か、それより大
きいかを判断する。
ステツプ5 上位4バイトの演算を行う。上記説明と同様な
10進加算演算とオーバフロー検出手順を経て、オ
ーバフローがあればオーバフロービツトレジスタ
10に信号をセツトする。その場合は下位バイト
の演算結果に基づくオーバフロー検出結果に上書
きしてオーバフロービツトレジスター10に信号
をセツトする。
オペランド1の有効桁数が4桁より小さい場合
でオーバフローが検出されると、ステツプ5を介
さないでオーバフロービツトレジスタ10に信号
をセツトする。
ステツプ6 オーバフロービツトレジスタ10の信号をマイ
クロプログラムが判定してオーバフローとする。
〔発明が解決しようとする問題点〕
従来の加算演算におけるオーバフローの検出は
加算過程において第4図のフローチヤートが示す
ように下位演算を行なつた後、L1≧4バイトの
判断サイクルが入る。この為、L1≧4であつた
場合は6ステツプ、L1≧4でなかつた場合でも
5ステツプの処理が必要である。また一般に、判
断処理には分岐命令が使用され、分岐を行うため
には余分な時間を要するという問題がある。
この判断サイクルを経ないで上位バイト演算を
無条件に行うとすると、この上位バイト演算の結
果によつて下位バイト演算の結果によるオーバフ
ロービツトレジスタ10の信号は更新されてしま
い、LI≧4でなかつた場合に正しくオーバフロ
ーが検出できないことになる。
従来のオーバフロー検出方式はこのように演算
サイクルの途中に判断サイクルが入るために余分
の処理時間がかかり、演算時間の損失を招いてい
る点が問題であつた。
〔問題点を解決するための手段〕
本発明は上記問題点を解決するために、下位演
算によつてオーバフローが発生していた場合に
は、オーバフロービツトを上位演算結果によつて
更新しないように抑制し、上位4バイトの演算で
オーバフローが発生した場合はオーバフロー信号
をこの演算結果で更新する機能をもつオーバフロ
ービツト生成回路11を設けた。これはマイクロ
プログラムの進行とは別に機能する。
〔作用〕
オーバフロー生成回路11を設けることによ
り、上位演算によつて下位演算で発生したオーバ
フロービツトは更新されることがなく、また、上
位バイトの演算でオーバフローが成立する条件も
ここで判断されるため、マイクロプログラムは判
断過程を省略して、演算サイクルのみを続けるこ
とになる。即ち、演算速度はそれだけ速くなる。
〔実施例〕
以下、図面を参照して本発明の実施例を説明す
る。第1図は本発明の一実施例のブロツク図で第
2図はそのフローチヤートである。従来の技術の
項の説明と関連させて構成と動作の説明を理解し
易くするために、8バイト以下のデータを4バイ
トの10進加算器で加算演算するものとする。
本実施例では10進加算演算システムにおけるキ
ヤリ生成回路7とオーバフロービツトレジスタ1
0の間にオーバフロービツト生成回路11を設
け、オーバフロービツト生成回路11はキヤリ生
成回路7とオペランド長レジスタ8とマイクロ命
令からの信号に基づき、オーバフロービツトレジ
スタ10の信号をセツトする。即ち、オーバフロ
ービツトレジスタ10の信号DOVFLの論理式を
本発明では下位4バイトの演算では(式1)、(式
2)をそのまま使用してオーバフロービツトレジ
スタ10に信号をセツトするが、第2図のステツ
プ4で上位4バイトの演算が行われる一方でオー
バフロービツト生成回路11は次の論理式(式
3)を用いてオーバフロービツトレジスタ10の
信号をチエツクしてオーバフローの検出の有無に
よつて、信号を更新する。
DOVFL=(L1〔1〕・CRYL1+L1〔1〕 ・DOVFL)ARITHOP ……(式3) 但し、L1〔1〕はオペランド長レジスタ8のビ
ツト1の論理値である。
第2図のフローチヤートに示すように、下位バ
イト演算の後、上位バイト演算を継続して行えば
よく、プログラム上は判断ステツプを省略するこ
とができる。
以上の説明は8バイト以下のデータを4バイト
の10進加算器で加算演算を行つた例を示したもの
であるが、演算の種類やそれに関連する各部のバ
イト数、あるいは、ビツト数を相当する桁数に変
更することによつて、説明実施例以外のシステム
に応用することができる。
〔発明の効果〕 以上説明したように、本発明によれば、10進加
算演算におけるマイクロプログラムが演算フロー
の中で判断サイクルを挿入することなく演算サイ
クルを継続することができるようになり、演算速
度を速くすることができる。
また、削減されたマイクロプログラムはデータ
処理装置の別の用途に転用され、機能の拡大につ
ながることになる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロツク図。
第2図は本発明のフローチヤート。第3図は従来
例のブロツク図。第4図は従来例のフローチヤー
ト。第5図はオーバフロー条件の説明図。 図中、1はオペランド1の上位バイト演算レジ
スタ、2はオペランド1の下位バイト演算レジス
タ、3はオペランド2の上位バイト演算レジス
タ、4はオペランド2の下位バイト演算レジス
タ、5は10進加算器、6はキヤリー検出器、7は
キヤリー生成回路、8はオペランド長レジスタ、
9はデコーダ、10はオーバフロービツトレジス
タ、11はオーバフロービツト生成回路。

Claims (1)

    【特許請求の範囲】
  1. 1 所定演算バイト幅の演算器を複数回用いて、
    該バイト幅より長い可変長データを演算するデー
    タ処理装置において、該演算結果となるオペラン
    ドの長さがセツトされるオペランド長レジスタの
    特定ビツトと該演算において発生するキヤリとに
    よつて各回の演算結果の桁上げ信号を生成するキ
    ヤリ生成回路と、オーバフロービツトレジスタ
    と、前記オペランド長レジスタの他の特定ビツト
    と前記オーバフロービツトレジスタの内容と前記
    キヤリ生成回路の出力とによつて生成するビツト
    を前記オーバフロービツトレジスタにセツトする
    オーバフロービツト生成回路とを備えたことを特
    徴とする可変長データ演算のオーバフロー検出方
    式。
JP59243801A 1984-11-19 1984-11-19 可変長デ−タ演算のオ−バフロ−検出方式 Granted JPS61123930A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59243801A JPS61123930A (ja) 1984-11-19 1984-11-19 可変長デ−タ演算のオ−バフロ−検出方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59243801A JPS61123930A (ja) 1984-11-19 1984-11-19 可変長デ−タ演算のオ−バフロ−検出方式

Publications (2)

Publication Number Publication Date
JPS61123930A JPS61123930A (ja) 1986-06-11
JPH0352092B2 true JPH0352092B2 (ja) 1991-08-08

Family

ID=17109143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59243801A Granted JPS61123930A (ja) 1984-11-19 1984-11-19 可変長デ−タ演算のオ−バフロ−検出方式

Country Status (1)

Country Link
JP (1) JPS61123930A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845659A (en) * 1986-08-15 1989-07-04 International Business Machines Corporation Accelerated validity response permitting early issue of instructions dependent upon outcome of floating point operations
JP3070014B2 (ja) * 1989-07-14 2000-07-24 沖電気工業株式会社 シフト回路
JPH04116717A (ja) * 1990-09-07 1992-04-17 Koufu Nippon Denki Kk オーバーフロー例外検出方式

Also Published As

Publication number Publication date
JPS61123930A (ja) 1986-06-11

Similar Documents

Publication Publication Date Title
US4740893A (en) Method for reducing the time for switching between programs
US5682531A (en) Central processing unit
JPH01130224A (ja) 例外処理方式
JPH0348537B2 (ja)
JPH0228830A (ja) 整数除算回路
JPH04188229A (ja) 浮動小数点演算処理装置
JP2993975B2 (ja) 中央演算処理装置
JPH0371329A (ja) 算術論理演算処理装置の演算制御回路
JPH034936B2 (ja)
JPH0352092B2 (ja)
JPS5826584B2 (ja) デ−タ処理装置
US6691223B1 (en) Processing full exceptions using partial exceptions
JP2557629B2 (ja) 割込方式
JPS6236575B2 (ja)
JPS6051734B2 (ja) マイクロプログラム制御方式
SU1675897A1 (ru) Устройство дл обработки данных переменной длины
JPH0683618A (ja) フラグ制御回路
JPH04195629A (ja) 演算フラグ生成装置
JP3129873B2 (ja) マイクロコンピュータ
JPS6366637A (ja) 情報処理装置
JPH02148140A (ja) 情報処理装置における条件分岐制御方式
JPS61275936A (ja) 条件決定装置
JPS62125435A (ja) マイクロプログラム制御方式
JPS62210541A (ja) レジスタ選択方式
JPS63247834A (ja) 浮動小数点関数擬似命令処理方法