JPH03150631A - 10進除算回路 - Google Patents
10進除算回路Info
- Publication number
- JPH03150631A JPH03150631A JP29048589A JP29048589A JPH03150631A JP H03150631 A JPH03150631 A JP H03150631A JP 29048589 A JP29048589 A JP 29048589A JP 29048589 A JP29048589 A JP 29048589A JP H03150631 A JPH03150631 A JP H03150631A
- Authority
- JP
- Japan
- Prior art keywords
- quotient
- division
- carry information
- decimal
- subtraction
- 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
- 238000000034 method Methods 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 5
- 238000007792 addition Methods 0.000 description 21
- 238000011084 recovery Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
技術分野
本発明は10進除算回路に関し、特に10進除算命令の
実行における10進除算例外の検出方法に関する。
実行における10進除算例外の検出方法に関する。
従来技術
ある種の汎用計算機においては符号付2進化10進数(
符号付バック形式10進数)の除算命令として、第3図
に示すように、k1バイトの第1オペランドをに2バイ
トの第2オペランドで除し、kl−に2バイトの商とに
2バイトの剰余を得る10進除算命令がある。
符号付バック形式10進数)の除算命令として、第3図
に示すように、k1バイトの第1オペランドをに2バイ
トの第2オペランドで除し、kl−に2バイトの商とに
2バイトの剰余を得る10進除算命令がある。
この除算に際して、除数がゼロの場合または商が許され
た桁数より大きくなる場合には、10進除算例外が検出
される。
た桁数より大きくなる場合には、10進除算例外が検出
される。
たとえば、4バイトからなる数“0654321十1を
3バイトの数“12345 +”で割ると、商は′53
+″となるが、これは商として許されるバイト長1 (
−4−3)を越えているので10進除算例外となる。
3バイトの数“12345 +”で割ると、商は′53
+″となるが、これは商として許されるバイト長1 (
−4−3)を越えているので10進除算例外となる。
従来、この種の除算回路においては、除算に先がけて、
第4図に示すように、除数“12345 +”の一番左
の桁を被除数“0854321 +”の一番左より1桁
右に揃えて減算し、被除数−除数≧0であれば、すなわ
ち除数が被除数より大きくなければ10進除算例外とし
ていた。
第4図に示すように、除数“12345 +”の一番左
の桁を被除数“0854321 +”の一番左より1桁
右に揃えて減算し、被除数−除数≧0であれば、すなわ
ち除数が被除数より大きくなければ10進除算例外とし
ていた。
このような従来の10進除算回路では、10進除算例外
を検出するために除算操作とは別に減算操作が必要であ
り、そのために性能が低下し、制御が複雑化するという
欠点があった。
を検出するために除算操作とは別に減算操作が必要であ
り、そのために性能が低下し、制御が複雑化するという
欠点があった。
発明の目的
本発明は上記のような従来のものの欠点を除去すべくな
されたもので、高速にかつ簡単に10進除算例外を検出
することができ、性能を向上させることができる10進
除算回路の提供を目的とする。
されたもので、高速にかつ簡単に10進除算例外を検出
することができ、性能を向上させることができる10進
除算回路の提供を目的とする。
発明の構成
本発明による10進除算回路は、除数の倍数を生成する
倍数生成手段と、前記倍数を被除数及び部分剰余に対し
て加減算することにより商と剰余とを算出する算出手段
と、前記算出手段における前記商の最上位桁の算出過程
で発生する桁上げ情報により10進除算例外を検出する
検出手段とを有することを特徴とする。
倍数生成手段と、前記倍数を被除数及び部分剰余に対し
て加減算することにより商と剰余とを算出する算出手段
と、前記算出手段における前記商の最上位桁の算出過程
で発生する桁上げ情報により10進除算例外を検出する
検出手段とを有することを特徴とする。
実施例
次に、本発明の一実施例について図面を参照して説明す
る。
る。
第1図は本発明の一実施例の構成を示すブロック図であ
る。図において、演算レジスタ5には信号線101を介
して被除数(第1オペランド)および除数(第2オペラ
ンド)が入力される。これら被除数および除数の有効な
数字桁以外の桁には符号桁も含めて“0°が埋込まれて
いる。
る。図において、演算レジスタ5には信号線101を介
して被除数(第1オペランド)および除数(第2オペラ
ンド)が入力される。これら被除数および除数の有効な
数字桁以外の桁には符号桁も含めて“0°が埋込まれて
いる。
信号線lO1を介してレジスタ5に入力された除数は桁
シフタ6で制御回路11の指示により最左端に1桁空け
て左詰めにシフトされ、レジスタファイル8のアドレス
3のワードに書込まれるとともに、演算レジスタ2.3
に転送される。
シフタ6で制御回路11の指示により最左端に1桁空け
て左詰めにシフトされ、レジスタファイル8のアドレス
3のワードに書込まれるとともに、演算レジスタ2.3
に転送される。
演算レジスタ2.3に転送された除数は加減算回路4に
よって加算されて除数の2倍数が生成される。
よって加算されて除数の2倍数が生成される。
加減算回路4で生成された2倍数は信号線102を通し
てレジスタファイル8のワード2に書込まれるとともに
、演算レジスタ2.3に転送される。
てレジスタファイル8のワード2に書込まれるとともに
、演算レジスタ2.3に転送される。
演算レジスタ2.3にセットされた2倍数は再び加減算
回路4によって加算されて4倍数が生成され、レジスタ
ファイル8のワード1に書込まれるとともに、演算レジ
スタ2.3に転送される。
回路4によって加算されて4倍数が生成され、レジスタ
ファイル8のワード1に書込まれるとともに、演算レジ
スタ2.3に転送される。
演算レジスタ2,3にセットされた4倍数は、再び加減
算回路4によって加算されて8倍数が生成され、レジス
タファイル8のワード0に書込まれる。
算回路4によって加算されて8倍数が生成され、レジス
タファイル8のワード0に書込まれる。
信号線101を介して演算レジスタ5に入力された被除
数は桁シフタ6によって左詰めされて演算レジスタ2に
セットされ、除算の初期部分剰余となる。
数は桁シフタ6によって左詰めされて演算レジスタ2に
セットされ、除算の初期部分剰余となる。
それとともに、制御回路11の制御のもとにレジスタフ
ァイル8のアドレス0から除数の8倍数が読出され、信
号線104を通じて演算レジスタ3にセットされる。
ァイル8のアドレス0から除数の8倍数が読出され、信
号線104を通じて演算レジスタ3にセットされる。
以後、レジスタファイル8から4倍数、2倍数、1倍数
と読出されて演算レジスタ3に順次供給されるとともに
、加算減算回路4では演算レジスタ2の部分剰余から演
算レジスタ3の各倍数を加減算しながら商1桁分の処理
が行われ、最後の1倍数の加算あるいは減算が行われた
加減算回路4の出力は1桁左シフト回路1で1桁左シフ
トされて演算レジスタ2にセットされる。
と読出されて演算レジスタ3に順次供給されるとともに
、加算減算回路4では演算レジスタ2の部分剰余から演
算レジスタ3の各倍数を加減算しながら商1桁分の処理
が行われ、最後の1倍数の加算あるいは減算が行われた
加減算回路4の出力は1桁左シフト回路1で1桁左シフ
トされて演算レジスタ2にセットされる。
それと同時に、再び8倍数がレジスタファイル8から読
出されて演算レジスタ3にセットされ、次の桁の処理が
開始される。
出されて演算レジスタ3にセットされ、次の桁の処理が
開始される。
商生成回路7は制御回路11の制御にしたがって、各倍
数の加算あるいは減算に合せて倍数値8゜4.2および
1を減算あるいは加算することによって、処理中の1桁
の商を得る。
数の加算あるいは減算に合せて倍数値8゜4.2および
1を減算あるいは加算することによって、処理中の1桁
の商を得る。
商1桁の処理が終ると、加減算回路4の出力を1桁左シ
フト回路1によって1桁シフトして演算レジスタ2にセ
ットするタイミングで、商生成回路7で生成された商1
桁が信号線103を通じて演算レジスタ5にセットされ
る。
フト回路1によって1桁シフトして演算レジスタ2にセ
ットするタイミングで、商生成回路7で生成された商1
桁が信号線103を通じて演算レジスタ5にセットされ
る。
このとき、演算レジスタ5に保持されているそれまでに
生成された商が桁シフタ6によって1桁左シフトされて
再び演算レジスタ5にセットされる。よって、この除算
操作により生成された商は演算レジスタ5内で1桁ずつ
左シフトされながら生成されていく。
生成された商が桁シフタ6によって1桁左シフトされて
再び演算レジスタ5にセットされる。よって、この除算
操作により生成された商は演算レジスタ5内で1桁ずつ
左シフトされながら生成されていく。
ここで、本発明に密接に関係する除算のアルゴリズムの
一つについて説明する。
一つについて説明する。
10進除算のやり方としては大別して非回復法と回復法
とがあり、これらはいずれも周知の技術である。また、
夫々の方法で用いる除数の倍数にも各種あるが、以下除
数の1倍、2倍、4倍、8倍の倍数を使った非回復法に
よる除算について説明する。
とがあり、これらはいずれも周知の技術である。また、
夫々の方法で用いる除数の倍数にも各種あるが、以下除
数の1倍、2倍、4倍、8倍の倍数を使った非回復法に
よる除算について説明する。
まず、手計算による除算と同じように、除数(その倍数
を含む)を被除数の左端に揃え、被除数から除数の8倍
数を引く。
を含む)を被除数の左端に揃え、被除数から除数の8倍
数を引く。
もしも、引き過ぎて部分剰余が負(減算による桁上りが
0)になったならば、負になった部分剰余に対して除数
の4倍数を加算する。
0)になったならば、負になった部分剰余に対して除数
の4倍数を加算する。
一方、8倍数の減算によっても部分剰余が正(減算によ
る桁上りが1)ならば、この正の部分剰余から4倍数を
減算する。
る桁上りが1)ならば、この正の部分剰余から4倍数を
減算する。
8倍数の減算の場合と同じように、4倍数の加減算によ
る部分剰余が負(加減算による桁上りが0)ならば、負
になった部分剰余に対して除数の2倍数を加算する。
る部分剰余が負(加減算による桁上りが0)ならば、負
になった部分剰余に対して除数の2倍数を加算する。
一方、4倍数の加減算によっても部分剰余が正(加減算
による桁上りが1)ならば、正になった部分剰余に対し
て2倍数を減算する。
による桁上りが1)ならば、正になった部分剰余に対し
て2倍数を減算する。
以下同様に、2倍数の加減算による部分剰余の符号(加
減算による桁上り情報)によって除数の1倍数の加算か
減算かを決定し、同じように1倍数の加減算を行う。
減算による桁上り情報)によって除数の1倍数の加算か
減算かを決定し、同じように1倍数の加減算を行う。
部分剰余は上述のように除数の倍数による加減算によっ
て得られるが、商は次のようにして得られる。
て得られるが、商は次のようにして得られる。
すなわち、除数の倍数の加減算に同期して、初期値ゼロ
にして(最初の1桁目の商の場合)除数の倍数が減算さ
れたならば、その倍数値(例えば8倍数ならば8)を加
算し、一方倍数が加算されたならばその倍数値を減算す
ることによって得られる。
にして(最初の1桁目の商の場合)除数の倍数が減算さ
れたならば、その倍数値(例えば8倍数ならば8)を加
算し、一方倍数が加算されたならばその倍数値を減算す
ることによって得られる。
このようにして、除数の8倍数から1倍数の加減算を行
うと、1桁の商とこの商に対する部分剰余が得られる。
うと、1桁の商とこの商に対する部分剰余が得られる。
次に、部分剰余と商とを1桁左にシフトして、以後同様
に8倍数から1倍数の加減算を行う。
に8倍数から1倍数の加減算を行う。
このとき、もしも部分剰余が負数から始まる場合には、
前述の場合とは異って、8倍数の加算からこの桁の処理
が始まる。
前述の場合とは異って、8倍数の加算からこの桁の処理
が始まる。
以上、必要な桁数の商を得るまで上記の処理が繰返され
る。
る。
上記のような非回復法による除算においては、剰余が負
になって終る場合、すなわち商が1だけ多くなって終る
場合がある。そのような場合には最後に1倍数を部分剰
余に加算して剰余を正にするとともに、商から1だけ減
算することが行われるが、本発明に直接関係しないので
これ以上詳述しない。
になって終る場合、すなわち商が1だけ多くなって終る
場合がある。そのような場合には最後に1倍数を部分剰
余に加算して剰余を正にするとともに、商から1だけ減
算することが行われるが、本発明に直接関係しないので
これ以上詳述しない。
上述のような除算方式によって、商1桁を得るまでの各
倍数に対する加減算と、その加減算における桁上りの値
を商の値別に示したものが第2図である。第2図におい
て、偶数の商はその桁の商の処理終了時には実際の値よ
り1だけ多い値で得られ、次の桁の商を算出する際に1
だけ引き戻されて正しい値となる。
倍数に対する加減算と、その加減算における桁上りの値
を商の値別に示したものが第2図である。第2図におい
て、偶数の商はその桁の商の処理終了時には実際の値よ
り1だけ多い値で得られ、次の桁の商を算出する際に1
だけ引き戻されて正しい値となる。
また、第2図は処理開始時の部分剰余が正の場合につい
て示しており、負の場合には8倍数に対する演算は加算
から始まることはいうまでもない。
て示しており、負の場合には8倍数に対する演算は加算
から始まることはいうまでもない。
第2図に示す8倍数〜1倍数の加減算の際の桁上げ情報
の値からその桁の商の値を知ることができる。
の値からその桁の商の値を知ることができる。
すなわち、商が9であれば8倍数および1倍数の桁上げ
情報が“1″となるので、8倍数の8と1倍数の1とが
加算されて商9が算出される。
情報が“1″となるので、8倍数の8と1倍数の1とが
加算されて商9が算出される。
同様に、商が8であれば8倍数の桁上げ情報が、商が7
であれば4倍数、2倍数、1倍数の桁上げ情報が、商が
6であれば4倍数、2倍数の桁上げ情報が、商が5であ
れば4倍数、1倍数の桁上げ情報が、商が4であれば4
倍数の桁上げ情報が、商が3であれば2倍数、1倍数の
桁上げ情報が、商が2であれば2倍数の桁上げ情報が、
商が1であれば1倍数の桁上げ情報が夫々“1°となる
。
であれば4倍数、2倍数、1倍数の桁上げ情報が、商が
6であれば4倍数、2倍数の桁上げ情報が、商が5であ
れば4倍数、1倍数の桁上げ情報が、商が4であれば4
倍数の桁上げ情報が、商が3であれば2倍数、1倍数の
桁上げ情報が、商が2であれば2倍数の桁上げ情報が、
商が1であれば1倍数の桁上げ情報が夫々“1°となる
。
ただし、商が0の場合にはどの倍数の桁上げ情報も1”
とはならない。
とはならない。
ここで、除数の一番左の桁を被除数の一番左の桁より1
桁右に揃えて上述の方法により除算を行ったならば、最
初の一桁目の商(商の最上位桁)の値が0以外の値のと
きに、またそのときにのみ10進除算例外となることが
明らかである。
桁右に揃えて上述の方法により除算を行ったならば、最
初の一桁目の商(商の最上位桁)の値が0以外の値のと
きに、またそのときにのみ10進除算例外となることが
明らかである。
したがって、この最初の1桁目の商を算出する際の桁上
げ情報から10進除算例外を検出することが可能である
。
げ情報から10進除算例外を検出することが可能である
。
次に、第1図を用いて本発明の一実施例の動作について
説明する。
説明する。
最初の1桁の商を得るときの8倍数〜1倍数の加減算に
よる桁上げ情報を制御回路11の制御に従って4ビツト
の桁上げ情報保持レジスタ9の各ビットに順次セットし
ていく。
よる桁上げ情報を制御回路11の制御に従って4ビツト
の桁上げ情報保持レジスタ9の各ビットに順次セットし
ていく。
桁上げ情報保持レジスタ9の全ビットに桁上げ情報がセ
ットされると、その4ビツトの値が10進除算検出回路
10によってチエツクされ、4ビツトの値がオールゼロ
でなければ10進除算例外として例外処理に入る。これ
らは全て制御回路11の指示によって行われる。
ットされると、その4ビツトの値が10進除算検出回路
10によってチエツクされ、4ビツトの値がオールゼロ
でなければ10進除算例外として例外処理に入る。これ
らは全て制御回路11の指示によって行われる。
尚、本実施例は除数の1倍、2倍、4倍および8倍の倍
数を使った非回復法による除算方式を用いているが、他
の倍数を用いた場合や回復法を用いた場合にも、1桁の
商を得る際の桁上り情報の値が商の値に対して一意に決
まるので、それらの方法に本発明を適用することは可能
である。
数を使った非回復法による除算方式を用いているが、他
の倍数を用いた場合や回復法を用いた場合にも、1桁の
商を得る際の桁上り情報の値が商の値に対して一意に決
まるので、それらの方法に本発明を適用することは可能
である。
また、本実施例においては、桁上げ情報からワイヤード
ロジックによって10進除算例外を検出するものである
が、マイクロプログラムによって制御される除算回路で
は桁上り情報の値をマイクロプログラムによる条件判定
機能で判定することによっても検出可能であり、このよ
うな装置にも適用可能である。
ロジックによって10進除算例外を検出するものである
が、マイクロプログラムによって制御される除算回路で
は桁上り情報の値をマイクロプログラムによる条件判定
機能で判定することによっても検出可能であり、このよ
うな装置にも適用可能である。
このよう°に、除算処理において倍数の加減算を行うと
きの桁上げ情報により10進除算例外を検出するように
することによって、従来の被除数と除数との減算による
試行よりも高速にかつ簡単に10進除算例外を検出する
ことができる。
きの桁上げ情報により10進除算例外を検出するように
することによって、従来の被除数と除数との減算による
試行よりも高速にかつ簡単に10進除算例外を検出する
ことができる。
よって、10進除算処理の制御を複雑化することなく、
性能を向上させることができる。
性能を向上させることができる。
発明の詳細
な説明したように本発明によれば、除算処理においで倍
数の加減算を行うときの桁上げ情報から10進除算例外
を検出するようにすることによって、高速にかつ簡単に
10進除算例外を検出することができ、性能を向上させ
ることができるという効果がある。
数の加減算を行うときの桁上げ情報から10進除算例外
を検出するようにすることによって、高速にかつ簡単に
10進除算例外を検出することができ、性能を向上させ
ることができるという効果がある。
第1図は本発明の一実施例の構成を示すブロック図、第
2図は本発明の一実施例における各倍数の演算種別とそ
の桁上りとの関係を示す図、第3図は従来の10進除算
命令のオペランドの形式を示す図、第4図は従来の10
進除算例外の検出処理を示す図である。 主要部分の符号の説明 1・・・・・・1桁左シフト回路 2.3.5・・・・・・演算レジスタ 4・・・・・・加減算回路 8・・・・・・レジスタファイル 9・・・・・・桁上げ情報保持レジスタ10・・・・・
・10進除算検出回路
2図は本発明の一実施例における各倍数の演算種別とそ
の桁上りとの関係を示す図、第3図は従来の10進除算
命令のオペランドの形式を示す図、第4図は従来の10
進除算例外の検出処理を示す図である。 主要部分の符号の説明 1・・・・・・1桁左シフト回路 2.3.5・・・・・・演算レジスタ 4・・・・・・加減算回路 8・・・・・・レジスタファイル 9・・・・・・桁上げ情報保持レジスタ10・・・・・
・10進除算検出回路
Claims (1)
- (1)除数の倍数を生成する倍数生成手段と、前記倍数
を被除数及び部分剰余に対して加減算することにより商
と剰余とを算出する算出手段と、前記算出手段における
前記商の最上位桁の算出過程で発生する桁上げ情報によ
り10進除算例外を検出する検出手段とを有することを
特徴とする10進除算回路。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP29048589A JPH03150631A (ja) | 1989-11-08 | 1989-11-08 | 10進除算回路 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP29048589A JPH03150631A (ja) | 1989-11-08 | 1989-11-08 | 10進除算回路 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03150631A true JPH03150631A (ja) | 1991-06-27 |
Family
ID=17756632
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP29048589A Pending JPH03150631A (ja) | 1989-11-08 | 1989-11-08 | 10進除算回路 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH03150631A (ja) |
-
1989
- 1989-11-08 JP JP29048589A patent/JPH03150631A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR20190090817A (ko) | 부동 소수점 수를 누산하기 위한 산술 연산을 수행하는 장치 및 방법 | |
| KR900010545A (ko) | 연산장치와 연산방법 | |
| US4594680A (en) | Apparatus for performing quadratic convergence division in a large data processing system | |
| JPS63123125A (ja) | 浮動小数点数の加算装置 | |
| JPH01302425A (ja) | 浮動小数点加減算回路 | |
| JPH0545980B2 (ja) | ||
| GB2265739A (en) | Non-restore division with dividend-width ALU | |
| JPH0511980A (ja) | 桁あふれ検出方式とその回路 | |
| JP2752698B2 (ja) | 浮動小数点加減算回路 | |
| US5689721A (en) | Detecting overflow conditions for negative quotients in nonrestoring two's complement division | |
| JP2664750B2 (ja) | 演算装置及び演算処理方法 | |
| JPS6120134A (ja) | 平方根計算装置 | |
| JPS60167030A (ja) | シフトフラグ生成方式及びシフトフラグ生成回路 | |
| JPH0435777B2 (ja) | ||
| JP2591250B2 (ja) | データ処理装置 | |
| JP3205020B2 (ja) | 演算装置 | |
| JP2575856B2 (ja) | 演算回路 | |
| JP2726479B2 (ja) | 除算装置 | |
| JPH03164930A (ja) | オーバフロー例外検出方式 | |
| JPS6129020B2 (ja) | ||
| JPH0426495B2 (ja) | ||
| JP3110072B2 (ja) | 事前正規化回路 | |
| JPH0553759A (ja) | 固定小数点演算ユニツト | |
| JPH03245225A (ja) | 浮動小数点加減算装置 | |
| JPS6259811B2 (ja) |