JPH04191925A - 演算処理装置 - Google Patents
演算処理装置Info
- Publication number
- JPH04191925A JPH04191925A JP2324827A JP32482790A JPH04191925A JP H04191925 A JPH04191925 A JP H04191925A JP 2324827 A JP2324827 A JP 2324827A JP 32482790 A JP32482790 A JP 32482790A JP H04191925 A JPH04191925 A JP H04191925A
- Authority
- JP
- Japan
- Prior art keywords
- result
- zero
- subtraction
- arithmetic
- decimal
- 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
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
バンク形式の2進化10進数の加減演算を高速に実行す
る演算処理装置に関し、 10進加減演算処理で実質的に減算を行い、しかも結果
がゼロになるような場合であっても、演算速度が低下す
るのを防止できる演算処理装置を提供することを目的と
し、 所定桁の10進数の加減演算を行なう演算手段と、該演
算手段の演算結果がゼロでない時にセットされ、該セッ
ト状態を全桁の演算が終了するまで保持する保持手段と
、を具備し、演算結果のゼロ判定を前記保持手段を参照
することにより行なうことを特徴とする。
る演算処理装置に関し、 10進加減演算処理で実質的に減算を行い、しかも結果
がゼロになるような場合であっても、演算速度が低下す
るのを防止できる演算処理装置を提供することを目的と
し、 所定桁の10進数の加減演算を行なう演算手段と、該演
算手段の演算結果がゼロでない時にセットされ、該セッ
ト状態を全桁の演算が終了するまで保持する保持手段と
、を具備し、演算結果のゼロ判定を前記保持手段を参照
することにより行なうことを特徴とする。
本発明は、バンク形式の2進化10進数(以下、単に「
10進数」という)の加減演算を高速に実行する演算処
理装置に関する。
10進数」という)の加減演算を高速に実行する演算処
理装置に関する。
一般に、電子計算機では、事務処理を行なうプログラム
は、例えばC0BOL等の事務処理用に開発された言語
で記述されるようになっている。
は、例えばC0BOL等の事務処理用に開発された言語
で記述されるようになっている。
このような事務処理用言語を使って情報処理装置に計算
や処理をさせるためには、該情報処理装置の内部で10
進数を扱う必要がある。
や処理をさせるためには、該情報処理装置の内部で10
進数を扱う必要がある。
このような電子計算機で取り扱う10進数の表現形式と
しで、バック形式がある。このパンク形式の10進数の
仕様について、第5図を参照しながら、以下に説明する
。
しで、バック形式がある。このパンク形式の10進数の
仕様について、第5図を参照しながら、以下に説明する
。
■各バイトは、最下位1バイトを除き上位及び下位の4
ビツトともに数字部と呼ばれ、「OM」〜’9HJ(添
字の−」は16進数であることを示ず)の何れかの値で
構成される。この数字部に’ONJ〜「9H」以外のデ
ータがきたときはデータ例外のエラーとなる。
ビツトともに数字部と呼ばれ、「OM」〜’9HJ(添
字の−」は16進数であることを示ず)の何れかの値で
構成される。この数字部に’ONJ〜「9H」以外のデ
ータがきたときはデータ例外のエラーとなる。
■データの最右端のバイト(最下位バイト)の下位4ビ
ア)は符号部と呼ばれ、例えば、正の数を「C8j、負
の数を「D、l」で表現する。したがって、この符号部
に’CMJ又は’DMJ以外のデータがきたときにデー
タ例外のエラーとなる。
ア)は符号部と呼ばれ、例えば、正の数を「C8j、負
の数を「D、l」で表現する。したがって、この符号部
に’CMJ又は’DMJ以外のデータがきたときにデー
タ例外のエラーとなる。
なお、最下位ハイドの上位4ピントは数字部である。
このような10進数は可変長の取り扱いが可能であるの
が一般的であり、その長さ(桁数)は命令の一部で指定
するようになっている。
が一般的であり、その長さ(桁数)は命令の一部で指定
するようになっている。
したがって、10進数を用いて加減演算を行なう場合、
演算処理装置が一度に演算することのできるデータ幅以
上の桁数を有するデータを取り扱う場合は繰り返し実行
で指定桁の演算を行なうことになる。
演算処理装置が一度に演算することのできるデータ幅以
上の桁数を有するデータを取り扱う場合は繰り返し実行
で指定桁の演算を行なうことになる。
ところで、上記10進数の仕様では、ゼロを表す場合、
数字部は全て「09」であり、符号部は”C)IJつま
り正数として表すのが一般的であり、負のゼロは存在し
ない。
数字部は全て「09」であり、符号部は”C)IJつま
り正数として表すのが一般的であり、負のゼロは存在し
ない。
したがって、演算結果が全桁ゼロとなった場合、符号部
を正にする必要がある。
を正にする必要がある。
従来、10進数の加減算は、第6図のフローチャートに
示す処理により実現されている。
示す処理により実現されている。
基本的には、被加数と加数の符号を調べ、同符号であれ
ば加算を、異符号であれば減算を行なうようになってい
る。
ば加算を、異符号であれば減算を行なうようになってい
る。
即ち、先ず被加数と加数の符号が共に正であるか否かを
調べ(ステップ531)、もし共に正であれば結果符号
を正、つまり’CMJとする(ステップ532)。
調べ(ステップ531)、もし共に正であれば結果符号
を正、つまり’CMJとする(ステップ532)。
一方、被加数と加数の符号が共に正でなければ、これら
が共に負であるか否かを調べ(ステップ533)、もし
共に負であれば結果符号を負、つまり「DH」とする(
ステップ534)。
が共に負であるか否かを調べ(ステップ533)、もし
共に負であれば結果符号を負、つまり「DH」とする(
ステップ534)。
上記2ケースの場合は、以下加算を行なうことになる。
なお、こ−の場合、演算前の被加数及び加数は何れも負
のゼロ(不正なデータ)ではないものとする。
のゼロ(不正なデータ)ではないものとする。
上記のようにして結果の符号が決定したら符号部をマス
クして(ゼロにして)加算を行なう(ステップ535)
。そして、全桁の演算が終了したか否かを調べ(ステッ
プ536)、終了していなければ次の桁を取り出して1
0進加算を行い、結果を格納する(ステップ537)、
以下、全桁の演算の終了が判断されるまで、上記ステッ
プS36、S37を繰り返し実行し、全桁の演算の終了
が判断された時点で、一連の10進数の加減算処理を終
了する。
クして(ゼロにして)加算を行なう(ステップ535)
。そして、全桁の演算が終了したか否かを調べ(ステッ
プ536)、終了していなければ次の桁を取り出して1
0進加算を行い、結果を格納する(ステップ537)、
以下、全桁の演算の終了が判断されるまで、上記ステッ
プS36、S37を繰り返し実行し、全桁の演算の終了
が判断された時点で、一連の10進数の加減算処理を終
了する。
一方、上記ステップS33で、被加数と加数の符号が共
に負でもないことが判断されると、被加数が正で加数が
負であるか否かを調べる(ステップ338)。そして、
被加数が正で加数が負であることが判断されると、結果
符号を正とする(ステップ539)、一方、ステップ5
3Bで被加数が正で加数が負でないことが判断されると
、被加数が負で加数が正であることを認識し、結果符号
を負とする(ステップ540)。
に負でもないことが判断されると、被加数が正で加数が
負であるか否かを調べる(ステップ338)。そして、
被加数が正で加数が負であることが判断されると、結果
符号を正とする(ステップ539)、一方、ステップ5
3Bで被加数が正で加数が負でないことが判断されると
、被加数が負で加数が正であることを認識し、結果符号
を負とする(ステップ540)。
以下、10進数の減算処理が行なわれることになる。
即ち、先ず、所定のレジスタaをゼロにクリアする(ス
テップ”54I)にのレジスタaは、ゼロ判定をするた
めのレジスタである。
テップ”54I)にのレジスタaは、ゼロ判定をするた
めのレジスタである。
次いで、符号部をマスクして10進減算を行い、その結
果を格納する(ステップ542)。そして、上記減算結
果とレジスタの内容との論理和(記号ry、で示す)を
とり、その結果をレジスタaに格納する(ステップ54
3)。
果を格納する(ステップ542)。そして、上記減算結
果とレジスタの内容との論理和(記号ry、で示す)を
とり、その結果をレジスタaに格納する(ステップ54
3)。
そして、全ての桁の演算が終了したか否かを調べ(ステ
ップ544)、終了していなければ次の桁を取り出して
10進減算を行い、結果を格納する(ステップ545)
。次いで、上記減算結果とレジスタの内容との論理和を
とり、その結果をレジスタaに格納する(ステップ54
6)。
ップ544)、終了していなければ次の桁を取り出して
10進減算を行い、結果を格納する(ステップ545)
。次いで、上記減算結果とレジスタの内容との論理和を
とり、その結果をレジスタaに格納する(ステップ54
6)。
以下、全桁の演算の終了が判断されるまで、上記ステッ
プ544〜S46を繰り返し実行し、全桁の演算の終了
が判断された時点で、最終桁の減算で減算結果がゼロ以
上であったか否かを調べる(ステップ547)。そして
、ゼロ以上であったことが判断されると、ボロー無しで
減算が終了したことを意味するので、レジスタaの内容
がゼロであるか否かを調べ(ステップ550)、ゼロで
ないことが判断されるとそのまま一連の10進数の加減
算処理を終了する。
プ544〜S46を繰り返し実行し、全桁の演算の終了
が判断された時点で、最終桁の減算で減算結果がゼロ以
上であったか否かを調べる(ステップ547)。そして
、ゼロ以上であったことが判断されると、ボロー無しで
減算が終了したことを意味するので、レジスタaの内容
がゼロであるか否かを調べ(ステップ550)、ゼロで
ないことが判断されるとそのまま一連の10進数の加減
算処理を終了する。
一方、レジスタaの内容がゼロであることが判断される
と、結果符号を正にする(ステップ551)。これは、
上記ステップS40で予め結果符号を負りこしている場
合があるので、演算結果がゼロの場合は正符号に修正す
るために行なうものである。
と、結果符号を正にする(ステップ551)。これは、
上記ステップS40で予め結果符号を負りこしている場
合があるので、演算結果がゼロの場合は正符号に修正す
るために行なうものである。
また、上記ステ、ブS47で、最終桁の減算の結果がゼ
ロより小さいことが判断されると、被減数の絶対値が減
数の絶対値より小さいことを意味するので、補数演算を
行なう(ステップ348)。
ロより小さいことが判断されると、被減数の絶対値が減
数の絶対値より小さいことを意味するので、補数演算を
行なう(ステップ348)。
この補数演算は、先に演算した結果の10の補数をとる
処理であり、実際には、10進数のゼロから演算結果を
減算する処理を行なうものである。
処理であり、実際には、10進数のゼロから演算結果を
減算する処理を行なうものである。
そして、結果符号を反転しくステップ549)、一連の
10進数の加減算処理を終了する。
10進数の加減算処理を終了する。
このように、10進数の加減算処理では、実質的に減算
を行なうことがあるので、結果が全てゼロになる場合も
発生し、この場合符号部を正にする修正が必要である。
を行なうことがあるので、結果が全てゼロになる場合も
発生し、この場合符号部を正にする修正が必要である。
したがって、結果がゼロであるか否かを調べるため、1
0進演算処理中の10進減算の途中結果の論理和の蓄積
を必要としていた。したがって、演算ループ中に論理和
をとるステップが必要となり、演算速度が低下するとい
う欠点があった。
0進演算処理中の10進減算の途中結果の論理和の蓄積
を必要としていた。したがって、演算ループ中に論理和
をとるステップが必要となり、演算速度が低下するとい
う欠点があった。
本発明は、上記事情に鑑みて成されたもので、10進加
減演算処理で実質的に減算を行い、しかも結果がゼロに
なるような場合であっても、演算速度が低下するのを防
止できる演算処理装置を提供することを目的とする。
減演算処理で実質的に減算を行い、しかも結果がゼロに
なるような場合であっても、演算速度が低下するのを防
止できる演算処理装置を提供することを目的とする。
本発明の演算処理装置は、第1図に原理的に示すように
、所定桁の10進数の加減演算を行なう演算手段1と、
該演算手段1の演算結果がゼロでない時にセットされ、
該セット状態を全桁の演算が終了するまで保持する保持
手段2と、を具備し、演算結果のゼロ判定を前記保持手
段2を参照することにより行なうことを特徴とする。
、所定桁の10進数の加減演算を行なう演算手段1と、
該演算手段1の演算結果がゼロでない時にセットされ、
該セット状態を全桁の演算が終了するまで保持する保持
手段2と、を具備し、演算結果のゼロ判定を前記保持手
段2を参照することにより行なうことを特徴とする。
10進加減演算処理で実質的に減算を行い、しかも結果
がゼロになるような場合は結果の符号を正符号に修正す
る必要があるが、演算手段1で演算を行なう都度、該演
算手段1での演算結果がゼロ以外であれば、その旨を保
持手段2に累積保持し、全桁の演算の紡了時に該保持手
段2を参照し、該保持手段2がセットされていなければ
、っまり全桁がゼロであれば符号を正符号に修正するよ
うにしたものである。
がゼロになるような場合は結果の符号を正符号に修正す
る必要があるが、演算手段1で演算を行なう都度、該演
算手段1での演算結果がゼロ以外であれば、その旨を保
持手段2に累積保持し、全桁の演算の紡了時に該保持手
段2を参照し、該保持手段2がセットされていなければ
、っまり全桁がゼロであれば符号を正符号に修正するよ
うにしたものである。
以下、図面を参照しながら本発明の一実施例について説
明する。
明する。
第2図は、本発明の実施例の構成を示すブロック図であ
る。なお、以下の説明においては、1回で1バイト(1
0進数2桁)の演算を行なう場合について説明する。
る。なお、以下の説明においては、1回で1バイト(1
0進数2桁)の演算を行なう場合について説明する。
図において、10は1バイトのXバスであり、被加数又
は被減数が供給されるものである。11は1バイトのY
バスであり、加数又は減数が供給されるものである。
は被減数が供給されるものである。11は1バイトのY
バスであり、加数又は減数が供給されるものである。
上記Xバス10はセレクタ12に接続されると共に、こ
のXバス10には10進数検査回路(DCK)13、及
び+6回路(+6)14が接続されるようになっている
。同様に、上記Yバス11はセレクタ15に接続される
と共に、このYハス11には10進数検査回路(DCK
’)16、及び補数回路(CMP)17が接続されるよ
うになっている。
のXバス10には10進数検査回路(DCK)13、及
び+6回路(+6)14が接続されるようになっている
。同様に、上記Yバス11はセレクタ15に接続される
と共に、このYハス11には10進数検査回路(DCK
’)16、及び補数回路(CMP)17が接続されるよ
うになっている。
上記10進数検査回路13.16は、10進数データの
正当性を検査するものであり、10進数データの数字部
に「OH」〜「9H」以外の不正データがあるか否か、
また符号部に「CsJ、’D)IJ基以外不正データが
あるか否かを検査し、もし不正データがあれば、その旨
を制御部(図示しない)に通知するものである。これは
、通常、10進数データ例外の割り込みとして通知され
る。
正当性を検査するものであり、10進数データの数字部
に「OH」〜「9H」以外の不正データがあるか否か、
また符号部に「CsJ、’D)IJ基以外不正データが
あるか否かを検査し、もし不正データがあれば、その旨
を制御部(図示しない)に通知するものである。これは
、通常、10進数データ例外の割り込みとして通知され
る。
+6回路14は、Xハス10の内容、つまり被加数に「
68」を加えて出力するものである。この+6回路14
は、被加数に予め「6H」を加えて加数と加算すること
により、lO進数としての次桁への桁上がりがあったか
否かを調べるために使用される。
68」を加えて出力するものである。この+6回路14
は、被加数に予め「6H」を加えて加数と加算すること
により、lO進数としての次桁への桁上がりがあったか
否かを調べるために使用される。
補数回路17は、Yバス11の内容、つまり加数の2の
補数をとって出力するものである。被加数とこの補数回
路17で補数をとられた加数とを加算することにより減
算を可能にしている。
補数をとって出力するものである。被加数とこの補数回
路17で補数をとられた加数とを加算することにより減
算を可能にしている。
セレクタ12は、Xバス10の内容又は+6回路】4の
出力の何れかを選択して算術論理演算ユニット(以下、
rALUJという)1のX入力に供給するものである。
出力の何れかを選択して算術論理演算ユニット(以下、
rALUJという)1のX入力に供給するものである。
同様に、セレクタ15は、Yハス11の内容又は補数回
路17の出力の何れかを選択してALUIの7人力に供
給するものである。
路17の出力の何れかを選択してALUIの7人力に供
給するものである。
ALIJIは、算術演算又は論理演算を実行するもので
あり、演算結果は0端子から出力されるようになってい
る。また、演算時に発生したキャリー信号は、キャリー
ビット保持回路19に供給されるようになっている。
あり、演算結果は0端子から出力されるようになってい
る。また、演算時に発生したキャリー信号は、キャリー
ビット保持回路19に供給されるようになっている。
キャリーピント保持回路19は、上記したように、演算
ムこより発生したキャリー信号を保持するものであり、
マイクロプログラムはこのキャリーピント保持回路19
の内容を調べることにより、桁上がりの有無を知ること
ができるようになっている。
ムこより発生したキャリー信号を保持するものであり、
マイクロプログラムはこのキャリーピント保持回路19
の内容を調べることにより、桁上がりの有無を知ること
ができるようになっている。
上記ALUIの出力は、セレクタ20に供給されるとと
もに、−6回路(−6)21に供給されるようになって
いる。
もに、−6回路(−6)21に供給されるようになって
いる。
一6回路21は、ALUIの出力を「−6」するもので
あり、上記+6回路14とともに10進数演算時の補正
を行なうために使用されるものである。即ち、上記+6
回路14で「+6」された被加数に加数を加算した結果
、キャリーが発生すれば得られた結果は正しい10進数
であるが、キャリーが発生しなければ、先に「+6jさ
れているので加算結果をr−6JLなければ正しい10
進数が得られない。この−6回路21は、かかる場合に
動作して正しい結果を得るために使用されるものである
。
あり、上記+6回路14とともに10進数演算時の補正
を行なうために使用されるものである。即ち、上記+6
回路14で「+6」された被加数に加数を加算した結果
、キャリーが発生すれば得られた結果は正しい10進数
であるが、キャリーが発生しなければ、先に「+6jさ
れているので加算結果をr−6JLなければ正しい10
進数が得られない。この−6回路21は、かかる場合に
動作して正しい結果を得るために使用されるものである
。
セレクタ20は、演算結果としてALUIの出力をその
まま用いるか、−6回路21の出力を用いるかを選択す
るものである。このセレクタ20の出力が最終的な演算
結果となる。
まま用いるか、−6回路21の出力を用いるかを選択す
るものである。このセレクタ20の出力が最終的な演算
結果となる。
22はゼロフラグ回路(ZR)であり、セレクタ20の
出力、つまり演算結果がゼロの場合にセットされるフラ
グであり、1サイクル毎に変化するものである。マイク
ロプログラムはこのゼロフラグ回路22の内容を調べる
ことにより、直前に行なった演算がゼロであるか否かを
知ることができるようζこなっている。
出力、つまり演算結果がゼロの場合にセットされるフラ
グであり、1サイクル毎に変化するものである。マイク
ロプログラムはこのゼロフラグ回路22の内容を調べる
ことにより、直前に行なった演算がゼロであるか否かを
知ることができるようζこなっている。
2は、この発明の特徴に直接関係する累積ゼロフラグ回
路(ADDINZフラグ回路)である。
路(ADDINZフラグ回路)である。
このADDINZフラグ回路2の詳細な構成を第3図に
示す。
示す。
即ち、ADDINZフラグ回路2は、ORゲート31.
34、ANDゲート32.33及びDタイプのフリップ
フロップ35が図示するように接続されて構成される。
34、ANDゲート32.33及びDタイプのフリップ
フロップ35が図示するように接続されて構成される。
ORゲート31にはセレクタ20の出力(8ビツト)が
供給されるようになっている。したがって、セレクタ2
0の出力が1ビツトでもオンになっていれば、該ORゲ
ート31の出力がオンになる。このORゲート31の出
力は、ANDゲート32に供給される加算信号がオンで
あれば、3B ANDゲート32を通過し、ORゲート
34を介してフリップフロップ35に供給される。上記
加算信号はゼロ判定のタイミングを与えるもので、演算
結果がセレクタ20から出力されるタイミングでオンに
なる信号である。これにより、ORゲート31の出力が
オン、つまりALU 1の演算結果がゼロでなければフ
リップフロップ35がセットされることになる。
供給されるようになっている。したがって、セレクタ2
0の出力が1ビツトでもオンになっていれば、該ORゲ
ート31の出力がオンになる。このORゲート31の出
力は、ANDゲート32に供給される加算信号がオンで
あれば、3B ANDゲート32を通過し、ORゲート
34を介してフリップフロップ35に供給される。上記
加算信号はゼロ判定のタイミングを与えるもので、演算
結果がセレクタ20から出力されるタイミングでオンに
なる信号である。これにより、ORゲート31の出力が
オン、つまりALU 1の演算結果がゼロでなければフ
リップフロップ35がセットされることになる。
このフリップフロップ35は一旦セットされると、リセ
ット信号がアクティブ(Hレベル)にならない限り、A
NDゲート33及びORゲート34を介してフィードバ
ックされ、自己保持動作を行なう。
ット信号がアクティブ(Hレベル)にならない限り、A
NDゲート33及びORゲート34を介してフィードバ
ックされ、自己保持動作を行なう。
次に、上記構成において、第4図のフローチャートを参
照しながら動作について説明する。
照しながら動作について説明する。
基本的には、従来と同様に、被加数と加数の符号を調べ
、同符号であれば加算を、異符号であれば減算を行なう
ようになっており、処理内容は第6図に示したものと類
似の処理となっている。
、同符号であれば加算を、異符号であれば減算を行なう
ようになっており、処理内容は第6図に示したものと類
似の処理となっている。
即ち、先ず被加数と加数の符号が共に正であるか否かを
調べ(ステップ5ll)、もし共に正であれば結果符号
を正、つまり「CイJとする(ステップ512)。
調べ(ステップ5ll)、もし共に正であれば結果符号
を正、つまり「CイJとする(ステップ512)。
一方、被加数と加数の符号が共に正でなければ、これら
が共に負であるか否かを調べ(ステップ513)、もし
共に負であれば結果符号を負、つまり’DMJとする(
ステップ514)。
が共に負であるか否かを調べ(ステップ513)、もし
共に負であれば結果符号を負、つまり’DMJとする(
ステップ514)。
上記2ケースの場合は、以下加算を行なうことになる。
なお、この場合、演算前の被加数及び加数は何れも負の
ゼロ(不正なデータ)ではないものとする。
ゼロ(不正なデータ)ではないものとする。
上記結果の符号が決まったら、符号部をマスクして(ゼ
ロにして)加算を行なう(ステップ515)。この加算
にあたっては、先ず、被加数がXバス10に、加数がY
バス11にそれぞれ供給される。そして、10進数検査
回路13.16で被加数及び加数が正しい10進数であ
るか否かがチエツクされる。このとき、正しい10進数
でないことが判断されると、以下の処理は中止され、例
えば割り込みにより制御部に通知される。
ロにして)加算を行なう(ステップ515)。この加算
にあたっては、先ず、被加数がXバス10に、加数がY
バス11にそれぞれ供給される。そして、10進数検査
回路13.16で被加数及び加数が正しい10進数であ
るか否かがチエツクされる。このとき、正しい10進数
でないことが判断されると、以下の処理は中止され、例
えば割り込みにより制御部に通知される。
被加数及び加数が共に正しい10進数であれば、セレク
タ12は+6回路14の出力をALLIIのX入力に供
給する。即ち、被加数に「6」を加えた値が被加数とな
る。一方、セレクタ15はYパスの内容をそのままAL
UIのY入力に供給する。
タ12は+6回路14の出力をALLIIのX入力に供
給する。即ち、被加数に「6」を加えた値が被加数とな
る。一方、セレクタ15はYパスの内容をそのままAL
UIのY入力に供給する。
そして、ALUlで加算が行なわれ、結果が0端子から
出力される。この際、キャリーがあれば、その旨がキャ
リービット回路19にセットされる。
出力される。この際、キャリーがあれば、その旨がキャ
リービット回路19にセットされる。
このキャリービット回路19に保持されたデータはセレ
クタ20の選択信号として用いられる。
クタ20の選択信号として用いられる。
即ち、キャリーピント回路19の値がrl」であればセ
レクタ20はALUIの出力を選択し、r□、であれば
−6回路21の出力を選択して出力する。このセレクタ
20の出力が演算結果となる。
レクタ20はALUIの出力を選択し、r□、であれば
−6回路21の出力を選択して出力する。このセレクタ
20の出力が演算結果となる。
ADDINZフラグ回路2の内部のフリップフロップ3
5は、演算結果がゼロでなければセットされ、ゼロであ
れば元の状態を維持する。なお、このフリップフロップ
35は、演算を開始する前にリセット信号によりクリア
されているものとする。
5は、演算結果がゼロでなければセットされ、ゼロであ
れば元の状態を維持する。なお、このフリップフロップ
35は、演算を開始する前にリセット信号によりクリア
されているものとする。
次いで、命令で与えられた全桁の演算が終了したか否か
を調べ(ステップ316)、終了していなければ次の1
バイトを取り出して10進加算を行い、結果を格納する
(ステップ517)。この加算も上記ステップ515と
同し動作にて行なわれる。以下、全桁の演算の終了が判
断されるまで、上記ステップS16、S17を繰り返し
実行し、全桁の演算の終了が判断された時点で、一連の
10進数の加減算処理を終了する。
を調べ(ステップ316)、終了していなければ次の1
バイトを取り出して10進加算を行い、結果を格納する
(ステップ517)。この加算も上記ステップ515と
同し動作にて行なわれる。以下、全桁の演算の終了が判
断されるまで、上記ステップS16、S17を繰り返し
実行し、全桁の演算の終了が判断された時点で、一連の
10進数の加減算処理を終了する。
一方、上記ステップS13で、被加数と加数の符号が共
に負でもないことが判断されると、被加数が正で加数が
負であるか否かを調べる(ステップ518)、そして、
被加数が正で加数が負であることが判断されると、結果
符号を正とする(ステップ519)。一方、ステップ3
1Bで被加数が正で加数が負でないことが判断されると
、被加数が負で加数が正であることを認識し、結果符号
を負とする(ステップ520)。
に負でもないことが判断されると、被加数が正で加数が
負であるか否かを調べる(ステップ518)、そして、
被加数が正で加数が負であることが判断されると、結果
符号を正とする(ステップ519)。一方、ステップ3
1Bで被加数が正で加数が負でないことが判断されると
、被加数が負で加数が正であることを認識し、結果符号
を負とする(ステップ520)。
以下、10進数の減算処理が行なわれることになる。
即ち、先ず、ADDINZフラグをクリアする(ステッ
プ521)。このADDINZフラグは、ADDINZ
フラグ回路2中のフリップフロップ35であり、リセッ
ト信号がLレベルになることによりクリアされる。
プ521)。このADDINZフラグは、ADDINZ
フラグ回路2中のフリップフロップ35であり、リセッ
ト信号がLレベルになることによりクリアされる。
次いで、符号部をマスクして10進減算を行い、結果を
格納する(ステップ522)。この減算にあたっては、
先ず、被減数がXバス10に、減数がYバス11にそれ
ぞれ供給される。そして、10進数検査回路13.16
で被減数及び減数が正しい10進数であるか否かがチエ
ツクされる。このとき、正しい10進数でないことが判
断されると、上記と同様に、以下の処理は中止され、例
えば割り込みにより制御部に通知される。
格納する(ステップ522)。この減算にあたっては、
先ず、被減数がXバス10に、減数がYバス11にそれ
ぞれ供給される。そして、10進数検査回路13.16
で被減数及び減数が正しい10進数であるか否かがチエ
ツクされる。このとき、正しい10進数でないことが判
断されると、上記と同様に、以下の処理は中止され、例
えば割り込みにより制御部に通知される。
被減数及び減数が共に正しい10進数であれば、セレク
タ12はXバス10の出力をALLIIのX入力に供給
する。一方、セレクタ15は補数回路17の出力をAL
UIのY入力に供給する。そして、ALUIで加算が行
なわれ、結果が0端子から出力される。この際、キャリ
ーがあれば、その旨がキャリービット回路19にセット
される。このキャリービット回路19に保持されたデー
タはセレクタ20の選択信号として用いられる。即ち、
キャリービット回819の値が「1」であればセレクタ
20はAL[Jlの出力を:J!択し、「OΔであれば
一6回路2]の出力を選択して出力する。
タ12はXバス10の出力をALLIIのX入力に供給
する。一方、セレクタ15は補数回路17の出力をAL
UIのY入力に供給する。そして、ALUIで加算が行
なわれ、結果が0端子から出力される。この際、キャリ
ーがあれば、その旨がキャリービット回路19にセット
される。このキャリービット回路19に保持されたデー
タはセレクタ20の選択信号として用いられる。即ち、
キャリービット回819の値が「1」であればセレクタ
20はAL[Jlの出力を:J!択し、「OΔであれば
一6回路2]の出力を選択して出力する。
このセレクタ20の出力が演算結果となる。
ADDINZフラグ回路2の内部のフリップフロップ3
5は、演算結果がゼロでなければセットされ、ゼロであ
れば元の状態を維持する。なお、このフリップフロ、ブ
35は、演算を開始する前にリセット信号によりクリア
されているものとする。
5は、演算結果がゼロでなければセットされ、ゼロであ
れば元の状態を維持する。なお、このフリップフロ、ブ
35は、演算を開始する前にリセット信号によりクリア
されているものとする。
そして、全ての桁の演算が終了したか否かを調べ(ステ
ップ523)、終了していなければ次のlハイドを取り
出して10進減算を行い、結果を格納する(ステップ5
24)。以下、全桁の演算の終了が判断されるまで、上
記ステップS23、S24を繰り返し実行し、全桁の演
算の終了を判断すると、最終桁の減算で減算結果がゼロ
以上であったか否かを調べる(ステップ525)。そし
て、ゼロ以上であったことが判断されると、ボロー無し
で減算が終了したことを意味するので、へ〇〇INZフ
ラグを調べ(ステップ328)、オンであることが判断
されるとそのまま一連の10進数の加減算処理を終了す
る。
ップ523)、終了していなければ次のlハイドを取り
出して10進減算を行い、結果を格納する(ステップ5
24)。以下、全桁の演算の終了が判断されるまで、上
記ステップS23、S24を繰り返し実行し、全桁の演
算の終了を判断すると、最終桁の減算で減算結果がゼロ
以上であったか否かを調べる(ステップ525)。そし
て、ゼロ以上であったことが判断されると、ボロー無し
で減算が終了したことを意味するので、へ〇〇INZフ
ラグを調べ(ステップ328)、オンであることが判断
されるとそのまま一連の10進数の加減算処理を終了す
る。
一方、ADDINZフラグがゼロであることが判断され
ると、結果符号を正にする(ステップ529)、これは
、上記ステップS20で予め結果符号を負にしている場
合があるので、演算結果がゼロの場合は正符号に修正す
るために行なうものである。
ると、結果符号を正にする(ステップ529)、これは
、上記ステップS20で予め結果符号を負にしている場
合があるので、演算結果がゼロの場合は正符号に修正す
るために行なうものである。
また、上記ステップS25で、最終桁の減算の結果がゼ
ロより小さいことが判断されると、被減数の絶対値が減
数の絶対値より小さいことを意味するので、補数演算を
行なう(ステップ326)。
ロより小さいことが判断されると、被減数の絶対値が減
数の絶対値より小さいことを意味するので、補数演算を
行なう(ステップ326)。
この補数演算は、先に演算した結果の10の補数をとる
処理であり、実際には、10進数のゼロから演算結果を
減算する処理を行なうものである。
処理であり、実際には、10進数のゼロから演算結果を
減算する処理を行なうものである。
そして、結果符号を反転しくステップ527)、一連の
10進数の加減算処理を終了する。
10進数の加減算処理を終了する。
このように、演算結果のゼロ判定を、ADD fNZフ
ラグ回路2を用いて行なうようにしたので、第4図(ス
テップS23.524)と第6図(ステップ344〜5
46)とを対比して参照すれば明らかなように、演算ル
ープでゼロ判定用の演算結果の論理和をとるステップが
省略でき、高速に加減演算を実行できるものとなってい
る。
ラグ回路2を用いて行なうようにしたので、第4図(ス
テップS23.524)と第6図(ステップ344〜5
46)とを対比して参照すれば明らかなように、演算ル
ープでゼロ判定用の演算結果の論理和をとるステップが
省略でき、高速に加減演算を実行できるものとなってい
る。
なお、上記実施例では、1回に1バイトの演算を行なう
ハードウェア構成について説明したが、これに限定され
るものでなく、2バイト、4バイト、或いはこれ以外の
任意のバイトを演算するハードウェア構成でも同様に適
用できるものであり、上記と同様の作用・効果を奏する
。
ハードウェア構成について説明したが、これに限定され
るものでなく、2バイト、4バイト、或いはこれ以外の
任意のバイトを演算するハードウェア構成でも同様に適
用できるものであり、上記と同様の作用・効果を奏する
。
[発明の効果]
以上、詳述したように、本発明によれば10進加減演算
処理で実質的に減算を行い、しかも結果がゼロになるよ
うな場合であっても、演算速度が低下するのを防止でき
る演算処理装置を従供することができる。
処理で実質的に減算を行い、しかも結果がゼロになるよ
うな場合であっても、演算速度が低下するのを防止でき
る演算処理装置を従供することができる。
第1図は本発明の原理説明図、
第2図は本発明の実施例の構成を示すブロック図、
第3図は本発明の実施例のADDINZフラグ回路の構
成を示す回路図、 第4図は本発明の実施例の動作を示すフローチャート図
、 第5図はバック形式の10進数を説明するたの図、 第6図は従来の10進加減算の動作を示すフローチャー
ト図である。 1・・・演算手段(ALU)。 2・・・保持手段(ADDINZフラグ回路)。 図中、同一符号は同−又は相当部を示す。 !45rJ’flrr)tPLll、IR図第1図 ADDINZ 7う7− Wil 5Jt−n 4A
q第3図 出願人 冨士通株式会社 、、、、、、−1−ヘ、
代理人 弁理士 井桁貞−′−−−い゛4ニー′ オート明の失Vりの′#F八qへ 第2図 オーを唱のヂ地伊jの動r’pブU− 第4図(qの1) i−タシ明り史1亡カ1の動イγフσ−第4図(〒/)
2) バッフ脣シさJ1oシηメト( 第 5 図 Ktz)1o道噛り!へ清の動イYフσ−第6図(Tつ
1)
成を示す回路図、 第4図は本発明の実施例の動作を示すフローチャート図
、 第5図はバック形式の10進数を説明するたの図、 第6図は従来の10進加減算の動作を示すフローチャー
ト図である。 1・・・演算手段(ALU)。 2・・・保持手段(ADDINZフラグ回路)。 図中、同一符号は同−又は相当部を示す。 !45rJ’flrr)tPLll、IR図第1図 ADDINZ 7う7− Wil 5Jt−n 4A
q第3図 出願人 冨士通株式会社 、、、、、、−1−ヘ、
代理人 弁理士 井桁貞−′−−−い゛4ニー′ オート明の失Vりの′#F八qへ 第2図 オーを唱のヂ地伊jの動r’pブU− 第4図(qの1) i−タシ明り史1亡カ1の動イγフσ−第4図(〒/)
2) バッフ脣シさJ1oシηメト( 第 5 図 Ktz)1o道噛り!へ清の動イYフσ−第6図(Tつ
1)
Claims (1)
- 【特許請求の範囲】 所定桁の10進数の加減演算を行なう演算手段(1)と
、 該演算手段(1)の演算結果がゼロでない時にセットさ
れ、該セット状態を全桁の演算が終了するまで保持する
保持手段(2)と、を具備し、 演算結果のゼロ判定を前記保持手段(2)を参照するこ
とにより行なうことを特徴とする演算処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2324827A JPH04191925A (ja) | 1990-11-26 | 1990-11-26 | 演算処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2324827A JPH04191925A (ja) | 1990-11-26 | 1990-11-26 | 演算処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04191925A true JPH04191925A (ja) | 1992-07-10 |
Family
ID=18170125
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2324827A Pending JPH04191925A (ja) | 1990-11-26 | 1990-11-26 | 演算処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04191925A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0675767A (ja) * | 1992-07-28 | 1994-03-18 | Matsushita Electric Ind Co Ltd | プロセッサ |
-
1990
- 1990-11-26 JP JP2324827A patent/JPH04191925A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0675767A (ja) * | 1992-07-28 | 1994-03-18 | Matsushita Electric Ind Co Ltd | プロセッサ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7395297B2 (en) | Floating point system that represents status flag information within a floating point operand | |
| JPH02294820A (ja) | 浮動小数点数演算処理装置および演算処理方法 | |
| JPH09212337A (ja) | 浮動小数点演算処理装置 | |
| US4246644A (en) | Vector branch indicators to control firmware | |
| JPH0479015B2 (ja) | ||
| JPH034936B2 (ja) | ||
| JPH04191925A (ja) | 演算処理装置 | |
| JPH1091395A (ja) | プロセッサ | |
| US4224682A (en) | Pointer for defining the data by controlling merge switches | |
| JPS62128331A (ja) | 情報処理装置 | |
| US4288850A (en) | Apparatus for identification and removal of a sign signal character superimposed | |
| JP2517064B2 (ja) | 非正規化数の処理方式 | |
| JPH0435777B2 (ja) | ||
| CA1257706A (en) | Multiprocessors on a single semiconductor chip | |
| JP3522387B2 (ja) | パイプライン演算装置 | |
| JP2903529B2 (ja) | ベクトル演算方式 | |
| JP3110072B2 (ja) | 事前正規化回路 | |
| JPH03217938A (ja) | 浮動小数点丸め正規化装置 | |
| JPS6149234A (ja) | 浮動小数点乗算回路 | |
| JPH07134645A (ja) | 情報処理用条件コード生成装置 | |
| JPH0325526A (ja) | 浮動小数点丸め方式 | |
| JPS6194144A (ja) | 浮動小数点加算回路 | |
| JPH07120265B2 (ja) | 2進浮動小数点乗算における丸め処理方式 | |
| JPS626326A (ja) | 演算処理装置 | |
| JPH03241421A (ja) | 乗算器 |