JPH0680487B2 - 演算処理装置 - Google Patents

演算処理装置

Info

Publication number
JPH0680487B2
JPH0680487B2 JP59169318A JP16931884A JPH0680487B2 JP H0680487 B2 JPH0680487 B2 JP H0680487B2 JP 59169318 A JP59169318 A JP 59169318A JP 16931884 A JP16931884 A JP 16931884A JP H0680487 B2 JPH0680487 B2 JP H0680487B2
Authority
JP
Japan
Prior art keywords
length
overflow
digit
ary
result
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
JP59169318A
Other languages
English (en)
Other versions
JPS6148036A (ja
Inventor
達也 酒井
佐孝 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP59169318A priority Critical patent/JPH0680487B2/ja
Publication of JPS6148036A publication Critical patent/JPS6148036A/ja
Publication of JPH0680487B2 publication Critical patent/JPH0680487B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/493Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
    • G06F7/494Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/492Indexing scheme relating to groups G06F7/492 - G06F7/496
    • G06F2207/4924Digit-parallel adding or subtracting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow

Landscapes

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は演算処理装置に係り、詳しくは2個の可変長デ
ータについてN進演算を行い、得られた結果の有効デー
タ部分を可変長の格納領域へ出力する演算処理装置にお
いて、有効データ長が格納領域の長さよりも長いことを
検出するN進オーバーフロー検出手段に関する。以下、
一般的な10進演算命令の場合について説明する。
〔発明の背景〕
10進演算命令は、2進化10進形式で表わされた数の可変
長の第1オペランドと、同じく2進化10進形式で表わさ
れた可変長の第2オペランドの間で加算、減算、乗算及
び除算を行い、その結果が第1オペランド領域に格納さ
れるものである。命令形式は、演算の種類を指定するオ
ペレーションコード、第1及び第2オペランドの開始ア
ドレス並びに第1及び第2オペランドの長さを示す値と
からなる。例えば、10進加算命令の処理は、第2オペラ
ンドが第1オペランドへ加えられ、その結果が第1オペ
ランド領域に格納されることで終了する。この時、第1
オペランドの長さの値は、結果が格納されるべき領域の
長さをも表わしており、演算結果が第1オペランドの領
域に格納できず、有効な結果の一部が消失することがあ
る。たとえば、第オペランドの長さが第1オペランドよ
りも長い場合の加算結果には、データの消失が起こりう
る可能性がある。もっともオペランドの長さのみによっ
て有効なデータが消失しうるとは限らず、第2オペラン
ド長が比較的長くても、その上位桁に0が連続してある
ような場合には必ずしもデータが消失するとは限らな
い。
10進演算結果がオーバーフローを起こし、データが消失
する場合、プログラム的に割込みを発生するか否かは、
割込み制御マスクにより制御されるが、オーバーフロー
の検出方式についてはハードウェア回路に依存してい
る。
従来、演算結果がオーバーフローになったことを高速に
検出する方式として、特公昭57−46574号「オーバーサ
イズデータ検出装置」がある。これは、演算結果の全桁
について一桁ごとに有効データであるか否かのステータ
ス信号を生成し、次いで第1オペランド領域長のデコー
ド信号により前記ステータス信号のうち結果格納領域
(第1オペランド領域)の外に存在するステータス信号
だけを取り出してそのステータスを調べることにより、
高速にオーバーフロー検出を行えるように考慮されたも
のである。
しかしながら、上記従来方式は、オーバーフロー検出の
ためだけに多大の専用ハードウェア回路を配置しなけれ
ばならないという欠点を有している。すなわち、同特許
公報第6図乃至第8図に示されているような、演算結果
の各バイトのステータス(オール0かオール1)を検出
するための回路、信号選択器及び非行先ステータス発生
器、さらに全バイトステータス発生器等を、オーバーフ
ロー検出のみに使用する専用のハードウェアとして用意
する必要がある。このように、オーバーフロー検出に特
定されるようなハードウェアの増加は、計算機のコスト
を引き上げ、さらにゲート数増加による信頼性の低下を
まねく要因になるものである。
また。上記従来方式は、通常の10進演算命令で使用され
るパック形式の2進化10進データの他に、ゾーン形式の
2進化10進データや符号のついた可変長の純2進数形式
のデータについても、オーバーフローを検出することが
できる機構となっているが、後者の2つのオーバーフロ
ー検出は一般的な計算機においては不必要な機構で、通
常の10進演算オーバーフロー検出には最適な方式とはい
えない。
また、10進オーバーフローが検出された場合、プログラ
ム割込みは割込み制御マスクによって制御されるが、割
込みの発生は、演算結果の一部が消失されたデータを第
1オペランド領域へ格納された後でもよい。すなわち、
オーバーフローの起きた10進命令を完了した時点でよ
い。そのため演算結果の格納動作と並行してオーバーフ
ローが検出できればよく、上記特公昭57−46574号に開
示されているように、多大の専用ハードウェアを設けて
演算結果とほぼ同時にオーバーフローを検出する必要性
はない。
〔発明の目的〕
本発明の目的は、2個の可変長データのN進演算におけ
る演算オーバフロー検出のために多大なハードウェアを
設けることのない演算処理装置を提供することにある。
〔発明の概要〕
本発明の演算処理装置の特徴とするところは、浮動小数
点演算の演算結果の正規化のために使用するデジット・
エンコーダを備えた情報処理装置において、演算対象の
各可変長データを下位の桁から予め定められた所定長の
桁数の部分に分割し、下位の方から所定長の桁数の部分
の演算を順次行い、その演算結果のキャリーを上位の所
定長の桁数の部分の演算に用いてN進演算を行う所定長
の桁数のN進加算器と、前記のデジット・エンコーダに
よりN進加算器の演算結果を検索して有効データの最上
位位置を示す値を出力する最上位有効桁位置出力手段
と、この最上位有効桁位置出力手段が出力する値および
格納領域の長さを示す値に基づいて、N進加算器の演算
結果の有効データ長が格納領域よりも長いことによりオ
ーバフローの発生を検出するとともに、N進加算器から
のN進演算に対する最終の所定長の桁数部分の演算結果
のキャリーと演算対象の可変長データの符号とN進演算
が加算あるいは減算のいずれであるかを示すビットとに
よりオーバフローの発生を検出するオーバフロー発生検
出手段とを備えることにある。
〔発明の実施例〕
以下、本発明の一実施例を図面により詳細に説明する。
第1図は本発明の一実施例の構成図で、16桁の10進演算
結果のオーバーフロー検出装置を示す。第1図におい
て、2は8バイト(64ビット)の2進加算器であり、そ
の各々入力に入力補正器1a,1bを有し、出力には出力補
正器3を有して2進加減算および10進加減算ができる一
般的な2進/10進併用加算器を構成している。2進加算
器2の最上位ビットからのキャリィは、キャリィ・レジ
スタ(CAR)4へ入力され、その出力は再び2進加算器
2の最下位ビットへ与えられると共にオーバーフロー決
定回路13へも供給されている。出力補正器3の出力は、
2進/10進併用加算器2の演算結果そのものでZバス5
によって結果格納部(図には明示していない)へ送られ
るとともに、オーバーフロー検出論理部15のデジット・
エンコーダ6へ供給される。デジット・エンコーダ6の
構成は第2図に示す如くであり、Zバス5上の64ビット
の演算結果をオア回路200〜215でデジット(4ビット)
毎にオアして16個の出力P0〜P15得、この出力P0〜P15
一般的な16ビット・プラィオリティエンコーダ30に与え
て、エンコード結果E0〜E4を得るものである。第3図に
エンコーダ30の論理動作を示す。
ディジット・エンコーダ6のエンコード結果は、演算結
果の有効行(ゼロでない値)の先頭位置がどこにあるか
を示しているため、いろいろな処理に使用される。例え
ば2進/10進併用加算器2が浮動小数点加算命令で2進
加算を行った場合、その演算結果の上位の不要なデジッ
トゼロを除去し、さらに除去したデジット相当の値を中
間指数部から減算するという正規化処理があるが、この
時の演算結果の上位の不要なデジットゼロを検出すると
きに上記エンコーダ6が使用される。また、エンコード
結果E0〜E4が全て1であると演算結果はオール0である
ことを示しているため、演算結果の状態でセットするコ
ンディションコードの条件として使用されたり、演算結
果がゼロであるか否かをテストしながら進むマイクロ命
令のテスト条件にも使用される。このようにエンコーダ
6は、オーバーフロー検出論理部15内に存在はしている
が、そのハードウェアは必ずしもオーバーフロー検出に
のみ使用されるのではない。
ディジット・エンコーダ6の出力E0〜E4のうち、E0〜E3
は比較器9へ与えられ、E4は接続されない。すなわち、
10進演算のオーバーフロー検出には、第1オペランドの
格納領域がバイト単位で規定されているため、バイト内
のどちらのディジットかを示すE4は比較器9には不要で
ある。
比較器9はエンコーダ6の出力E0〜E3と第1オペランド
の格納領域長を示す値L10,L11,L12,L13を比較する回路
である。L10〜L13で示される値は、10進命令の第1オペ
ランド長として与えられるもので、一般の10進命令にお
いては、実際のバイト数よりも1バイトだけ短い値であ
る。例えばL10L11L12L13=0101であること、格納領域長
は5+1=6バイトであることを示す。
第4図に比較器9の構成例を示す。第4図において、30
0〜307はアンド回路、310〜315はオア回路、230〜322は
インバータである。比較器9は第5図(a)(L10=1
のとき)、第5図(b)(L10=0のとき)に示す演算
でそれぞれの先頭ビットからのキャリィC0(L10=1の
とき)、C1(L10=0のとき)を求めて、L10=1のと
き、C0=0でOV0とL11=0のとき、C1=0でOV1 をそれぞれ出力する。OV0,OV1は各条件のもとでオーバ
ーフローが発生していることを示している。
比較器9の出力10(OV0,OV1)はオーバーフロー決定回
路13へ入力される。オーバーフロー決定回路13には、さ
らに第1オペランドの符号S1、第2オペランドの符号S
2、10進加算命令であることを示す信号Aが(10進減算
命令のときはA=0となる)が入力されている。オーバ
ーフロー決定回路13は、出力として10進演算のオーバー
フローが検出されたことを示す信号OVFを出力線14に出
力する。
第6図にオーバーフロー決定回路13の構成例を示す。第
6図において、400は排他的論理和回路、401はアンド回
路、402はオア回路である。すなわち、オーバーフロー
決定回路13は、 OVF=OV0+OV1+CAR・(S1S2A) の論理演算を行う。ここで、(S1S2A)は、10進加
算器が同符号の2つのデータ間で加算が行われることを
示す条件である。CAR・(S1S2A)は、同符号の2
つのデータ間で加算が行われたとき、2進加算器2の先
頭ビットからのキャリィCARがあったことを示し、それ
は、演算結果が8バイトまたは16バイトを越えることを
意味している。このとき第1オペランド長及び第2オペ
ランド長が共に8バイト以下であるときには、オーバー
フローが発生しており、また、第1オペランド長または
第2オペランド長のどちらかが8バイトを越えている場
合は、最初に後半8バイト分の演算を行うが、その時の
CARはオーバーフロー決定回路13へは与えず、2進加算
器2の最下位ビットへ供給するパスを通して次に行われ
る残りのバイト分の加算時に使用され、この時の演算で
発生したCARがオーバーフロー決定回路13へ与えられる
ようにすることにより、オーバーフローの検出を行うこ
とができる。
<実施例の動作> 2個の可変長の2進化10進データは、一つはXバス、他
の一つはYバスからそれぞれ入力補正器1a,1bを通って
2進加算器2へ与えられる。2進加算器2による2進加
算結果にもとづいて出力補正器3にて、出力補正され、
その演算結果がZバス5へ供給される。この演算結果は
結果格納部へ送られ、そこで格納動作が開始される。一
方、Zバス5の内容はデジット・エンコーダ6へ与えら
れ、最上位有効桁の位置を示すエンコード出力E0〜E4
信号線7に得られる。このエンコード出力のうちE0〜E3
が比較器9へ与えられて第1オペランド長を示す値L10L
11L12L13と比較される。比較器9のしくみは第5図に示
した通りであり、格納領域のバイト数(L10L11L12L13
1)から演算結果の有効バイト数(
1)を引いたものである。この時、格納領域が8バイト
を越えているときには、キャリィC0がないとオーバーフ
ローになり、格納領域が8バイト以下であるときには、
キャリィC1がないとオーバーフローとなる。ただし、格
納領域が8バイトを越えるときには、最初の後半の8バ
イトを演算するが、この時、デジット・エンコーダ6は
通常どおりの動作を行うが、次に残りのバイトを演算し
たとき、その演算結果に対するデジットエンコードの出
力のE0が0のときは(この中に有効桁がある)、残りバ
イトの演算結果のデジットエンコードの比較器9へ送出
するが、E0が1のときは(残りバイト演算の中に有効桁
はない)、E1〜E4は先のデジットエンコーダ結果を使用
するようにする。このように格納領域の大きさによりデ
ジットエンコードの出力を切り分けることが生じるが、
それは、最大16バイトまで存在するデータに対して8バ
イト演算器を使用していることによるもので、16バイト
演算器を用いれば、このようなことは生じない。したが
って、デジットエンコーダ6の出力を切り変えること
は、本発明の基本にかかわるものではない。デジットエ
ンコーダは、あくまでも先頭の有効桁を検出する手段と
してのみ使用しているものである。
比較器9の出力OV0,OV1は信号線10によりオーバーフロ
ー決定回路13へ与えられ、そのうちのどちらかがオンに
なれば、オーバーフローが検出される。しかし、比較器
9にて検出できない場合があるので、それを検出するた
めの論理がオーバーフロー決定回路13に付加されてい
る。それは、例えば演算結果がオール0となり(E0〜E3
=1111)、2進加算器2のキャリィCARが発生するよう
なケース、すなわち、同符号の2つのデータが加算され
たケースの先頭ビットからのキャリィがあるようなケー
スである。この時のキャリィは、演算結果が格納領域に
入らないことを示しており、比較器9の出力はそれを検
出できない。したがって、第6図に示した如く、CAR・
(S1S2A)なる条件と、比較器9の出力OV0とOV1と
の論理和によってオーバーフローを検出することにな
る。しかしながら、演算器巾が16バイトで出力17バイト
を求め、その出力に対してエンコーダを設け、有効桁を
検出するようにすれば、比較器9と同様の方式でオーバ
ーフローを検出できる。
以上の10進演算のオーバーフロー検出は、演算結果の格
納動作と並行して行われ、格納が完了して該当命令が完
了するまでに、オーバーフローは検出されることにな
る。
〔発明の効果〕
本発明によれば、可変長データを所定長に分割して所定
長の演算を繰り返すことによりN進演算を実行するとと
もに、浮動小数点演算の演算結果の正規化のために使用
するデジット・エンコーダをオーバフロー検出に流用す
るので、少ないハードウェア量でオーバフローを検出す
ることができる。したがって、計算機全体としてみれ
ば、ハードウェア量を低減することができる。
【図面の簡単な説明】
第1図は本発明の一実施例の全体構成図、第2図は第1
図におけるデジットエンコーダの詳細構成図、第3図は
デジットエンコーダ内の16ビット、プラィオリティエン
コーダの動作説明図、第4図は第1図における比較器の
詳細構成図、第5図は比較器の動作説明図、第6図は第
1図におけるオーバーフロー決定回路の詳細構成図であ
る。 2……2進加算器、4……キャリィ・レジスタ、6……
デジットエンコーダ、9……比較器、13……オーバーフ
ロー決定回路、15……オーバーフロー検出論理部。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】浮動小数点演算の演算結果の正規化のため
    に使用するデジット・エンコーダを備えた情報処理装置
    において、2個の可変長データについてN進演算を行
    い、その演算結果の指定された部分を可変長の格納領域
    へ出力する演算処理装置であって、前記可変長データの
    各々を下位の桁から予め定められた所定長の桁数の部分
    に分割し、下位の方から前記所定長の桁数の部分の演算
    を順次行い、その演算結果のキャリーを上位の前記所定
    長の桁数の部分の演算に用いて前記N進演算を行う前記
    所定長の桁数のN進加算器と、前記デジット・エンコー
    ダにより前記N進加算器の演算結果を検索して有効デー
    タの最上位位置を示す値を出力する最上位有効桁位置出
    力手段と、前記最上位有効桁位置出力手段が出力する値
    および前記格納領域の長さを示す値に基づいて、前記N
    進加算器の演算結果の有効データ長が前記格納領域より
    も長いことによりオーバフローの発生を検出するととも
    に、前記N進加算器からの前記N進演算に対する最後の
    前記所定長の桁数部分の演算結果のキャリーと前記2個
    の可変長データの符号と前記N進演算が加算あるいは減
    算のいずれであるかを示すビットとによりオーバフロー
    の発生を検出するオーバフロー発生検出手段とを備える
    ことを特徴とする演算処理装置。
JP59169318A 1984-08-15 1984-08-15 演算処理装置 Expired - Lifetime JPH0680487B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59169318A JPH0680487B2 (ja) 1984-08-15 1984-08-15 演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59169318A JPH0680487B2 (ja) 1984-08-15 1984-08-15 演算処理装置

Publications (2)

Publication Number Publication Date
JPS6148036A JPS6148036A (ja) 1986-03-08
JPH0680487B2 true JPH0680487B2 (ja) 1994-10-12

Family

ID=15884315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59169318A Expired - Lifetime JPH0680487B2 (ja) 1984-08-15 1984-08-15 演算処理装置

Country Status (1)

Country Link
JP (1) JPH0680487B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0792741B2 (ja) * 1988-11-04 1995-10-09 株式会社東芝 差動バレルシフタ
JPH0778723B2 (ja) * 1988-11-08 1995-08-23 日本電気株式会社 情報処理装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5924343A (ja) * 1982-07-30 1984-02-08 Toshiba Corp 10進演算装置

Also Published As

Publication number Publication date
JPS6148036A (ja) 1986-03-08

Similar Documents

Publication Publication Date Title
KR100239029B1 (ko) 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서
KR0169264B1 (ko) 연산장치와 연산방법
US3986015A (en) Arithmetic unit for use in a digital data processor and having an improved system for parity check bit generation and error detection
JPH0542011B2 (ja)
US5761521A (en) Processor for character strings of variable length
EP0487814A2 (en) Overflow determination for three-operand alus in a scalable compound instruction set machine
EP0529101B1 (en) Floating-point dividing circuit
US5506800A (en) Self-checking complementary adder unit
EP0436905A2 (en) High performance adder using carry predictions
JPH0680487B2 (ja) 演算処理装置
US5748518A (en) Data processing divider
US5274830A (en) Zero warranty circuit for data path having different bit width from the length of packed decimal operand
US7467178B2 (en) Dual mode arithmetic saturation processing
US7016928B2 (en) Floating point status information testing circuit
JP3257278B2 (ja) 冗長なシフト数予測とシフト誤り補正を用いた正規化装置
KR100252766B1 (ko) 고속으로 동작하는 스티키 신호 생성기
JPH0216632A (ja) 固定小数点数−浮動小数点数変換回路
JPS61282928A (ja) 浮動小数点演算装置
US4141077A (en) Method for dividing two numbers and device for effecting same
JP2591250B2 (ja) データ処理装置
JPS61160134A (ja) 指数アンダ−フロ−検出回路
RU1784971C (ru) Устройство дл сложени -вычитани чисел с плавающей зап той
JPH07104777B2 (ja) 浮動小数点加減算装置
JPH02148140A (ja) 情報処理装置における条件分岐制御方式
JP3522387B2 (ja) パイプライン演算装置