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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/491—Computations with decimal numbers radix 12 or 20.
- G06F7/492—Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
- G06F7/493—Computations 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/494—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3828—Multigauge devices, i.e. capable of handling packed numbers without unpacking them
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/492—Indexing scheme relating to groups G06F7/492 - G06F7/496
- G06F2207/4924—Digit-parallel adding or subtracting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow 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進演算命令の場合について説明する。
ータについてN進演算を行い、得られた結果の有効デー
タ部分を可変長の格納領域へ出力する演算処理装置にお
いて、有効データ長が格納領域の長さよりも長いことを
検出するN進オーバーフロー検出手段に関する。以下、
一般的な10進演算命令の場合について説明する。
10進演算命令は、2進化10進形式で表わされた数の可変
長の第1オペランドと、同じく2進化10進形式で表わさ
れた可変長の第2オペランドの間で加算、減算、乗算及
び除算を行い、その結果が第1オペランド領域に格納さ
れるものである。命令形式は、演算の種類を指定するオ
ペレーションコード、第1及び第2オペランドの開始ア
ドレス並びに第1及び第2オペランドの長さを示す値と
からなる。例えば、10進加算命令の処理は、第2オペラ
ンドが第1オペランドへ加えられ、その結果が第1オペ
ランド領域に格納されることで終了する。この時、第1
オペランドの長さの値は、結果が格納されるべき領域の
長さをも表わしており、演算結果が第1オペランドの領
域に格納できず、有効な結果の一部が消失することがあ
る。たとえば、第オペランドの長さが第1オペランドよ
りも長い場合の加算結果には、データの消失が起こりう
る可能性がある。もっともオペランドの長さのみによっ
て有効なデータが消失しうるとは限らず、第2オペラン
ド長が比較的長くても、その上位桁に0が連続してある
ような場合には必ずしもデータが消失するとは限らな
い。
長の第1オペランドと、同じく2進化10進形式で表わさ
れた可変長の第2オペランドの間で加算、減算、乗算及
び除算を行い、その結果が第1オペランド領域に格納さ
れるものである。命令形式は、演算の種類を指定するオ
ペレーションコード、第1及び第2オペランドの開始ア
ドレス並びに第1及び第2オペランドの長さを示す値と
からなる。例えば、10進加算命令の処理は、第2オペラ
ンドが第1オペランドへ加えられ、その結果が第1オペ
ランド領域に格納されることで終了する。この時、第1
オペランドの長さの値は、結果が格納されるべき領域の
長さをも表わしており、演算結果が第1オペランドの領
域に格納できず、有効な結果の一部が消失することがあ
る。たとえば、第オペランドの長さが第1オペランドよ
りも長い場合の加算結果には、データの消失が起こりう
る可能性がある。もっともオペランドの長さのみによっ
て有効なデータが消失しうるとは限らず、第2オペラン
ド長が比較的長くても、その上位桁に0が連続してある
ような場合には必ずしもデータが消失するとは限らな
い。
10進演算結果がオーバーフローを起こし、データが消失
する場合、プログラム的に割込みを発生するか否かは、
割込み制御マスクにより制御されるが、オーバーフロー
の検出方式についてはハードウェア回路に依存してい
る。
する場合、プログラム的に割込みを発生するか否かは、
割込み制御マスクにより制御されるが、オーバーフロー
の検出方式についてはハードウェア回路に依存してい
る。
従来、演算結果がオーバーフローになったことを高速に
検出する方式として、特公昭57−46574号「オーバーサ
イズデータ検出装置」がある。これは、演算結果の全桁
について一桁ごとに有効データであるか否かのステータ
ス信号を生成し、次いで第1オペランド領域長のデコー
ド信号により前記ステータス信号のうち結果格納領域
(第1オペランド領域)の外に存在するステータス信号
だけを取り出してそのステータスを調べることにより、
高速にオーバーフロー検出を行えるように考慮されたも
のである。
検出する方式として、特公昭57−46574号「オーバーサ
イズデータ検出装置」がある。これは、演算結果の全桁
について一桁ごとに有効データであるか否かのステータ
ス信号を生成し、次いで第1オペランド領域長のデコー
ド信号により前記ステータス信号のうち結果格納領域
(第1オペランド領域)の外に存在するステータス信号
だけを取り出してそのステータスを調べることにより、
高速にオーバーフロー検出を行えるように考慮されたも
のである。
しかしながら、上記従来方式は、オーバーフロー検出の
ためだけに多大の専用ハードウェア回路を配置しなけれ
ばならないという欠点を有している。すなわち、同特許
公報第6図乃至第8図に示されているような、演算結果
の各バイトのステータス(オール0かオール1)を検出
するための回路、信号選択器及び非行先ステータス発生
器、さらに全バイトステータス発生器等を、オーバーフ
ロー検出のみに使用する専用のハードウェアとして用意
する必要がある。このように、オーバーフロー検出に特
定されるようなハードウェアの増加は、計算機のコスト
を引き上げ、さらにゲート数増加による信頼性の低下を
まねく要因になるものである。
ためだけに多大の専用ハードウェア回路を配置しなけれ
ばならないという欠点を有している。すなわち、同特許
公報第6図乃至第8図に示されているような、演算結果
の各バイトのステータス(オール0かオール1)を検出
するための回路、信号選択器及び非行先ステータス発生
器、さらに全バイトステータス発生器等を、オーバーフ
ロー検出のみに使用する専用のハードウェアとして用意
する必要がある。このように、オーバーフロー検出に特
定されるようなハードウェアの増加は、計算機のコスト
を引き上げ、さらにゲート数増加による信頼性の低下を
まねく要因になるものである。
また。上記従来方式は、通常の10進演算命令で使用され
るパック形式の2進化10進データの他に、ゾーン形式の
2進化10進データや符号のついた可変長の純2進数形式
のデータについても、オーバーフローを検出することが
できる機構となっているが、後者の2つのオーバーフロ
ー検出は一般的な計算機においては不必要な機構で、通
常の10進演算オーバーフロー検出には最適な方式とはい
えない。
るパック形式の2進化10進データの他に、ゾーン形式の
2進化10進データや符号のついた可変長の純2進数形式
のデータについても、オーバーフローを検出することが
できる機構となっているが、後者の2つのオーバーフロ
ー検出は一般的な計算機においては不必要な機構で、通
常の10進演算オーバーフロー検出には最適な方式とはい
えない。
また、10進オーバーフローが検出された場合、プログラ
ム割込みは割込み制御マスクによって制御されるが、割
込みの発生は、演算結果の一部が消失されたデータを第
1オペランド領域へ格納された後でもよい。すなわち、
オーバーフローの起きた10進命令を完了した時点でよ
い。そのため演算結果の格納動作と並行してオーバーフ
ローが検出できればよく、上記特公昭57−46574号に開
示されているように、多大の専用ハードウェアを設けて
演算結果とほぼ同時にオーバーフローを検出する必要性
はない。
ム割込みは割込み制御マスクによって制御されるが、割
込みの発生は、演算結果の一部が消失されたデータを第
1オペランド領域へ格納された後でもよい。すなわち、
オーバーフローの起きた10進命令を完了した時点でよ
い。そのため演算結果の格納動作と並行してオーバーフ
ローが検出できればよく、上記特公昭57−46574号に開
示されているように、多大の専用ハードウェアを設けて
演算結果とほぼ同時にオーバーフローを検出する必要性
はない。
本発明の目的は、2個の可変長データのN進演算におけ
る演算オーバフロー検出のために多大なハードウェアを
設けることのない演算処理装置を提供することにある。
る演算オーバフロー検出のために多大なハードウェアを
設けることのない演算処理装置を提供することにある。
本発明の演算処理装置の特徴とするところは、浮動小数
点演算の演算結果の正規化のために使用するデジット・
エンコーダを備えた情報処理装置において、演算対象の
各可変長データを下位の桁から予め定められた所定長の
桁数の部分に分割し、下位の方から所定長の桁数の部分
の演算を順次行い、その演算結果のキャリーを上位の所
定長の桁数の部分の演算に用いてN進演算を行う所定長
の桁数のN進加算器と、前記のデジット・エンコーダに
よりN進加算器の演算結果を検索して有効データの最上
位位置を示す値を出力する最上位有効桁位置出力手段
と、この最上位有効桁位置出力手段が出力する値および
格納領域の長さを示す値に基づいて、N進加算器の演算
結果の有効データ長が格納領域よりも長いことによりオ
ーバフローの発生を検出するとともに、N進加算器から
のN進演算に対する最終の所定長の桁数部分の演算結果
のキャリーと演算対象の可変長データの符号と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の論理動作を示す。
結果のオーバーフロー検出装置を示す。第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内に存在はしている
が、そのハードウェアは必ずしもオーバーフロー検出に
のみ使用されるのではない。
果の有効行(ゼロでない値)の先頭位置がどこにあるか
を示しているため、いろいろな処理に使用される。例え
ば2進/10進併用加算器2が浮動小数点加算命令で2進
加算を行った場合、その演算結果の上位の不要なデジッ
トゼロを除去し、さらに除去したデジット相当の値を中
間指数部から減算するという正規化処理があるが、この
時の演算結果の上位の不要なデジットゼロを検出すると
きに上記エンコーダ6が使用される。また、エンコード
結果E0〜E4が全て1であると演算結果はオール0である
ことを示しているため、演算結果の状態でセットするコ
ンディションコードの条件として使用されたり、演算結
果がゼロであるか否かをテストしながら進むマイクロ命
令のテスト条件にも使用される。このようにエンコーダ
6は、オーバーフロー検出論理部15内に存在はしている
が、そのハードウェアは必ずしもオーバーフロー検出に
のみ使用されるのではない。
ディジット・エンコーダ6の出力E0〜E4のうち、E0〜E3
は比較器9へ与えられ、E4は接続されない。すなわち、
10進演算のオーバーフロー検出には、第1オペランドの
格納領域がバイト単位で規定されているため、バイト内
のどちらのディジットかを示すE4は比較器9には不要で
ある。
は比較器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バイトであることを示す。
の格納領域長を示す値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は各条件のもとでオーバ
ーフローが発生していることを示している。
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に出
力する。
路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へ与えられる
ようにすることにより、オーバーフローの検出を行うこ
とができる。
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)から演算結果の有効バイト数(0 1 2 3+
1)を引いたものである。この時、格納領域が8バイト
を越えているときには、キャリィC0がないとオーバーフ
ローになり、格納領域が8バイト以下であるときには、
キャリィC1がないとオーバーフローとなる。ただし、格
納領域が8バイトを越えるときには、最初の後半の8バ
イトを演算するが、この時、デジット・エンコーダ6は
通常どおりの動作を行うが、次に残りのバイトを演算し
たとき、その演算結果に対するデジットエンコードの出
力のE0が0のときは(この中に有効桁がある)、残りバ
イトの演算結果のデジットエンコードの比較器9へ送出
するが、E0が1のときは(残りバイト演算の中に有効桁
はない)、E1〜E4は先のデジットエンコーダ結果を使用
するようにする。このように格納領域の大きさによりデ
ジットエンコードの出力を切り分けることが生じるが、
それは、最大16バイトまで存在するデータに対して8バ
イト演算器を使用していることによるもので、16バイト
演算器を用いれば、このようなことは生じない。したが
って、デジットエンコーダ6の出力を切り変えること
は、本発明の基本にかかわるものではない。デジットエ
ンコーダは、あくまでも先頭の有効桁を検出する手段と
してのみ使用しているものである。
の一つは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)から演算結果の有効バイト数(0 1 2 3+
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と同様の方式でオーバ
ーフローを検出できる。
ー決定回路13へ与えられ、そのうちのどちらかがオンに
なれば、オーバーフローが検出される。しかし、比較器
9にて検出できない場合があるので、それを検出するた
めの論理がオーバーフロー決定回路13に付加されてい
る。それは、例えば演算結果がオール0となり(E0〜E3
=1111)、2進加算器2のキャリィCARが発生するよう
なケース、すなわち、同符号の2つのデータが加算され
たケースの先頭ビットからのキャリィがあるようなケー
スである。この時のキャリィは、演算結果が格納領域に
入らないことを示しており、比較器9の出力はそれを検
出できない。したがって、第6図に示した如く、CAR・
(S1S2A)なる条件と、比較器9の出力OV0とOV1と
の論理和によってオーバーフローを検出することにな
る。しかしながら、演算器巾が16バイトで出力17バイト
を求め、その出力に対してエンコーダを設け、有効桁を
検出するようにすれば、比較器9と同様の方式でオーバ
ーフローを検出できる。
以上の10進演算のオーバーフロー検出は、演算結果の格
納動作と並行して行われ、格納が完了して該当命令が完
了するまでに、オーバーフローは検出されることにな
る。
納動作と並行して行われ、格納が完了して該当命令が完
了するまでに、オーバーフローは検出されることにな
る。
本発明によれば、可変長データを所定長に分割して所定
長の演算を繰り返すことによりN進演算を実行するとと
もに、浮動小数点演算の演算結果の正規化のために使用
するデジット・エンコーダをオーバフロー検出に流用す
るので、少ないハードウェア量でオーバフローを検出す
ることができる。したがって、計算機全体としてみれ
ば、ハードウェア量を低減することができる。
長の演算を繰り返すことによりN進演算を実行するとと
もに、浮動小数点演算の演算結果の正規化のために使用
するデジット・エンコーダをオーバフロー検出に流用す
るので、少ないハードウェア量でオーバフローを検出す
ることができる。したがって、計算機全体としてみれ
ば、ハードウェア量を低減することができる。
第1図は本発明の一実施例の全体構成図、第2図は第1
図におけるデジットエンコーダの詳細構成図、第3図は
デジットエンコーダ内の16ビット、プラィオリティエン
コーダの動作説明図、第4図は第1図における比較器の
詳細構成図、第5図は比較器の動作説明図、第6図は第
1図におけるオーバーフロー決定回路の詳細構成図であ
る。 2……2進加算器、4……キャリィ・レジスタ、6……
デジットエンコーダ、9……比較器、13……オーバーフ
ロー決定回路、15……オーバーフロー検出論理部。
図におけるデジットエンコーダの詳細構成図、第3図は
デジットエンコーダ内の16ビット、プラィオリティエン
コーダの動作説明図、第4図は第1図における比較器の
詳細構成図、第5図は比較器の動作説明図、第6図は第
1図におけるオーバーフロー決定回路の詳細構成図であ
る。 2……2進加算器、4……キャリィ・レジスタ、6……
デジットエンコーダ、9……比較器、13……オーバーフ
ロー決定回路、15……オーバーフロー検出論理部。
Claims (1)
- 【請求項1】浮動小数点演算の演算結果の正規化のため
に使用するデジット・エンコーダを備えた情報処理装置
において、2個の可変長データについてN進演算を行
い、その演算結果の指定された部分を可変長の格納領域
へ出力する演算処理装置であって、前記可変長データの
各々を下位の桁から予め定められた所定長の桁数の部分
に分割し、下位の方から前記所定長の桁数の部分の演算
を順次行い、その演算結果のキャリーを上位の前記所定
長の桁数の部分の演算に用いて前記N進演算を行う前記
所定長の桁数のN進加算器と、前記デジット・エンコー
ダにより前記N進加算器の演算結果を検索して有効デー
タの最上位位置を示す値を出力する最上位有効桁位置出
力手段と、前記最上位有効桁位置出力手段が出力する値
および前記格納領域の長さを示す値に基づいて、前記N
進加算器の演算結果の有効データ長が前記格納領域より
も長いことによりオーバフローの発生を検出するととも
に、前記N進加算器からの前記N進演算に対する最後の
前記所定長の桁数部分の演算結果のキャリーと前記2個
の可変長データの符号と前記N進演算が加算あるいは減
算のいずれであるかを示すビットとによりオーバフロー
の発生を検出するオーバフロー発生検出手段とを備える
ことを特徴とする演算処理装置。
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)
| 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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5924343A (ja) * | 1982-07-30 | 1984-02-08 | Toshiba Corp | 10進演算装置 |
-
1984
- 1984-08-15 JP JP59169318A patent/JPH0680487B2/ja not_active Expired - Lifetime
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) | パイプライン演算装置 |