(57)【特許請求の範囲】
【請求項１】
除算命令に応答して除算動作を実行するように構成されたデータ処理のための装置であって、前記除算動作は、前記除算命令によって特定された入力分子を前記除算命令によって特定された入力分母で除算して結果値を生成するように構成されており、前記入力分子と前記入力分母とはバイナリ値である、装置において、
前記除算動作を実行することによって前記結果値を生成するように構成された除算回路と、
前記入力分母がＮを整数として±２Ｎによって与えられる値を有する場合には、バイパス条件をシグナリングするように構成された２の累乗検出回路と、
前記バイパス条件のシグナリングに応答して、前記除算回路をバイパスさせ、前記結果値を、Ｎビットだけシフトされた前記入力分子として生成するように構成されたバイパス回路と、
を備え、
更に、前記入力分母の先行ゼロ・カウントを決定するように構成された先行ゼロ決定回路を備えており、前記２の累乗検出回路は、前記先行ゼロ・カウントのバイナリ表現を反転させることによって前記入力分母の前記先行ゼロ・カウントからＮを決定するように構成されている、装置。
【請求項２】
除算命令に応答して除算動作を実行するように構成されたデータ処理のための装置であって、前記除算動作は、前記除算命令によって特定された入力分子を前記除算命令によって特定された入力分母で除算して結果値を生成するように構成されており、前記入力分子と前記入力分母とはバイナリ値である、装置において、
前記除算動作を実行することによって前記結果値を生成するように構成された除算回路と、
前記入力分母がＮを整数として±２Ｎによって与えられる値を有する場合には、バイパス条件をシグナリングするように構成された２の累乗検出回路と、
前記バイパス条件のシグナリングに応答して、前記除算回路をバイパスさせ、前記結果値を、Ｎビットだけシフトされた前記入力分子として生成するように構成されたバイパス回路と、
を備え、
更に、前記入力分母の後置ゼロ・カウントを決定するように構成された後置ゼロ決定回路を備えており、前記２の累乗検出回路は、前記入力分母の前記後置ゼロ・カウントとしてＮを決定するように構成されている、装置。
【請求項３】
前記２の累乗検出回路は、前記入力分母では１ビットだけがセットされており他のすべてのビットがセットされていない場合に前記バイパス条件をシグナリングするように構成された排他的ビット検出回路を備えている、請求項１または２に記載の装置。
【請求項４】
前記バイパス回路は、前記結果値を、前記入力分母においてセットされている前記１ビットの後に続くセットされていないビット数だけシフトされた前記入力分子として生成するように構成されている、請求項３に記載の装置。
【請求項５】
前記排他的ビット検出回路は、ゲートの複数のバイナリ・ツリーを備え、ゲートのそれぞれのバイナリ・ツリーが複数の階層レベルを備え、それぞれのバイナリ・ツリーの１つの階層レベルがＸＯＲゲートを備え、それぞれのバイナリ・ツリーの他のすべての階層レベルがＯＲゲートを備えており、
前記複数のバイナリ・ツリーのそれぞれのバイナリ・ツリーは、前記ＸＯＲゲートを、前記複数のバイナリ・ツリーの残りのバイナリ・ツリーと異なる階層レベルにおいて有し、
前記複数のバイナリ・ツリーの出力のＡＮＤ結合が前記バイパス条件を示す、請求項３から４までのいずれかに記載の装置。
【請求項６】
前記排他的ビット検出回路は論理ゲートのネットワークを備えており、論理ゲートの前記ネットワークは、前記入力分母をテスト値として受け取り、更に、
Ａ）前記テスト値のビットの第１の半分においてはどのビットもセットされておらず、前記テスト値のビットの第２の半分においては少なくとも１ビットがセットされているかどうかの判断を実行し、前記判断が真である場合には、
Ｂ）前記テスト値のビットの前記第２の半分が１ビットだけになるまで、そして、前記１ビットが前記バイパス条件をシグナリングするようにセットされている場合には、前記テスト値のビットの前記第２の半分を前記テスト値として受け取り、Ａ）における判断を反復するように構成されている、請求項３から５までのいずれかに記載の装置。
【請求項７】
前記入力分子と前記入力分母とは符号のないバイナリ値である、請求項１から６までのいずれかに記載の装置。
【請求項８】
前記入力分子と前記入力分母とは、２の補数表現を用いた、符号付きのバイナリ値であり、前記２の累乗検出回路は、前記入力分母が負の値を有する場合には、前記入力分母を前処理して前処理された入力分母を生成するように構成された前処理回路を備えており、前記２の累乗検出回路は、前記前処理された入力分母が２の累乗を表す場合には、前記バイパス条件を検出するように構成されている、請求項１から６までのいずれかに記載の装置。
【請求項９】
前記前処理回路は、前記入力分母を１ビットだけ左シフトし、セットされていないビットを最下位ビットとして追加して中間値を生成するように構成され、前記中間値と前記入力分母とのＸＯＲ演算を実行して前記前処理された入力分母を生成するように構成されている、請求項８に記載の装置。
【請求項１０】
前記２の累乗検出回路は、前記前処理された入力分母がセットされたビットを１つだけ有しており他のすべてのビットはセットされていない場合に、バイパス条件を検出するように構成されている、請求項９に記載の装置。
【請求項１１】
前記前処理回路は、前記入力分母の正の等価物を、前記前処理された入力分母として生成するように構成されている、請求項８から１０までのいずれかに記載の装置。
【請求項１２】
前記前処理回路は、前記入力分母のビットを反転させ１を追加して前記前処理された入力分母を生成するように構成されている、請求項１１に記載の装置。
【請求項１３】
前記入力分子と前記入力分母とはバイナリ整数である、請求項１から１２までのいずれかに記載の装置。
【請求項１４】
前記入力分子と前記入力分母とは固定小数点バイナリ値である、請求項１から１３までのいずれかに記載の装置。
【請求項１５】
前記バイパス回路は、前記２の累乗検出回路がＮは正の整数であることを示すときには、前記結果値を、Ｎビットだけ右シフトされた前記入力分子として生成するように構成されている、請求項１から１４までのいずれかに記載の装置。
【請求項１６】
前記バイパス回路は、前記２の累乗検出回路がＮは負の整数であることを示すときには、前記結果値を、Ｎビットだけ左シフトされた前記入力分子として生成するように構成されている、請求項１４に記載の装置。
【請求項１７】
前記バイパス条件がシグナリングされるときには、前記入力分子をＮビットだけ右シフトして前記結果値を生成することにより少なくとも１つのセットされたビットを取り除いている場合、打ち切り条件を識別し、前記打ち切り条件が真であるときには、セットされている最下位ビット値を前記結果値に追加させるように構成された結果修正回路を更に備えている、請求項１から１６までのいずれかに記載の装置。
【請求項１８】
前記結果修正回路は、前記打ち切り条件が真であることを識別するためには、前記結果値が負であることを要求するように構成されている、請求項１７に記載の装置。
【請求項１９】
前記結果修正回路は、前記打ち切り条件が真であることを識別するためには、前記結果値が正であることを要求するように構成されている、請求項１７に記載の装置。
【請求項２０】
除算回路を用いて除算動作を実行するように構成されたデータ処理装置を動作させる方法であって、前記除算動作は、入力分子を入力分母で除算することによって結果値を生成するように構成されており、前記入力分子と前記入力分母とはバイナリ値である、方法において、
前記入力分子と前記入力分母とを特定する除算命令を受け取るステップと、
前記入力分母が、Ｎを整数として±２Ｎによって与えられる値を有する場合には、バイパス条件をシグナリングするステップと、
前記バイパス条件が存在しない場合には、前記除算回路を用いて前記除算動作を実行することによって前記結果値を生成するステップと、
前記バイパス条件が存在する場合には、前記除算回路をバイパスさせ、前記結果値を、Ｎビットだけシフトされた前記入力分子として生成するステップと、
を含み、
更に、前記方法は、前記入力分母の先行ゼロ・カウントを決定するステップを含み、前記、バイパス条件をシグナリングするステップは、前記先行ゼロ・カウントのバイナリ表現を反転させることによって前記入力分母の前記先行ゼロ・カウントからＮを決定する、方法。
【請求項２１】
除算回路を用いて除算動作を実行するように構成されたデータ処理装置を動作させる方法であって、前記除算動作は、入力分子を入力分母で除算することによって結果値を生成するように構成されており、前記入力分子と前記入力分母とはバイナリ値である、方法において、
前記入力分子と前記入力分母とを特定する除算命令を受け取るステップと、
前記入力分母が、Ｎを整数として±２Ｎによって与えられる値を有する場合には、バイパス条件をシグナリングするステップと、
前記バイパス条件が存在しない場合には、前記除算回路を用いて前記除算動作を実行することによって前記結果値を生成するステップと、
前記バイパス条件が存在する場合には、前記除算回路をバイパスさせ、前記結果値を、Ｎビットだけシフトされた前記入力分子として生成するステップと、
を含み、
更に、前記方法は、前記入力分母の後置ゼロ・カウントを決定するステップを含み、前記バイパス条件をシグナリングするステップは、前記入力分母の前記後置ゼロ・カウントとしてＮを決定する、方法。
【請求項２２】
除算命令に応答して除算回路を用いて除算動作を実行するように構成されたデータ処理のための装置であって、前記除算動作は、前記除算命令によって特定された入力分子を前記除算命令によって特定された入力分母で除算することによって結果値を生成するように構成されており、前記入力分子と前記入力分母とはバイナリ値である、装置において、
前記入力分子と前記入力分母とを特定する除算命令を受け取るための手段と、
前記入力分母が、Ｎを整数として±２Ｎによって与えられる値を有する場合には、バイパス条件をシグナリングするための手段と、
前記バイパス条件が存在しない場合には、前記除算動作を実行することによって前記結果値を生成するための手段と、
前記バイパス条件が存在する場合には、前記結果値を生成するための前記手段をバイパスさせるための手段と、
前記バイパス条件が存在する場合には、前記結果値を、Ｎビットだけシフトされた前記入力分子として生成するための手段と、
を備え、
更に、前記装置は、前記入力分母の先行ゼロ・カウントを決定する手段を備えており、前記バイパス条件をシグナリングするための手段は、前記先行ゼロ・カウントのバイナリ表現を反転させることによって前記入力分母の前記先行ゼロ・カウントからＮを決定する、装置。
【請求項２３】
除算命令に応答して除算回路を用いて除算動作を実行するように構成されたデータ処理のための装置であって、前記除算動作は、前記除算命令によって特定された入力分子を前記除算命令によって特定された入力分母で除算することによって結果値を生成するように構成されており、前記入力分子と前記入力分母とはバイナリ値である、装置において、
前記入力分子と前記入力分母とを特定する除算命令を受け取るための手段と、
前記入力分母が、Ｎを整数として±２Ｎによって与えられる値を有する場合には、バイパス条件をシグナリングするための手段と、
前記バイパス条件が存在しない場合には、前記除算動作を実行することによって前記結果値を生成するための手段と、
前記バイパス条件が存在する場合には、前記結果値を生成するための前記手段をバイパスさせるための手段と、
前記バイパス条件が存在する場合には、前記結果値を、Ｎビットだけシフトされた前記入力分子として生成するための手段と、
を備え、
更に、前記装置は、前記入力分母の後置ゼロ・カウントを決定する手段を備えており、前記バイパス条件をシグナリングするための手段は、前記入力分母の前記後置ゼロ・カウントとしてＮを決定する、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムの分野に関する。より詳細には、本発明は、除算命令に応答して除算動作を実行するように構成されたデータ処理システムに関する。
【背景技術】
【０００２】
除算命令に応答して除算動作を実行するデータ処理システムを提供することは知られている。そのようなデータ処理システムは、分子と分母とを特定する除算命令に応答して、除算動作を実行し、分子を分母によって除算した結果を生成するように構成されている。そのようなデータ処理システムには、典型的には、除算を実行するように構成された専用の除算回路が提供されている。例えば、整数除算命令に応答して整数除算を実行するように構成された専用の整数除算回路が、提供され得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
第１の態様から考察すると、本発明は、除算命令に応答して除算動作を実行するように構成されたデータ処理のための装置を提供する。この除算動作は、除算命令によって特定された入力分子を除算命令によって特定される入力分母で除算することにより結果値を生成するように構成されている。なお、入力分子と入力分母とはバイナリ値である。この装置は、除算動作を実行することによって結果値を生成するように構成された除算回路と、入力分母が、Ｎを整数として±２Ｎによって与えられる値を有する場合には、バイパス条件をシグナリングするように構成された２の累乗検出回路と、バイパス条件のシグナリングに応答して、除算回路をバイパスさせ、結果値をＮビットだけシフトされた入力分子として生成するように構成されたバイパス回路とを備えている。
【０００４】
現在の技術では、除算動作は、データ処理システムが実行するのに（すなわち、費やされる時間及びエネルギーの点で）比較的高コストの動作であり得る、と認識されている。更に、現在の技術では、専用の除算回路を動作させるコストは、分母が２の累乗である状況では回避可能であると認識されている。これは、分母が±２Ｎとして表され得るそのような状況においては、分子をＮビット位置だけシフトすることによって、除算結果を非常に迅速に返すことが可能である、という理由による。これは、典型的には、分子の右シフトとなる（ただし、常にそうであるわけではないので、下記を参照のこと）。よって、分母が実際に２の累乗である状況では、除算回路を動作させるコストは、（例えば、除算命令に応答する除算回路の動作をそれ以降は停止させる除算回路への信号により）除算回路をバイパスし、上述したように入力分子をシフトすることにより生成された結果値を出力することによって、回避され得る。
【０００５】
２の累乗検出回路は複数の方法で構成され得るが、いくつかの実施例では、２の累乗検出回路は、入力分母が１ビットだけセットされ他のすべてのビットがセットされていない場合にはバイパス条件をシグナリングするように構成された排他的ビット検出回路を備えている。入力分子と入力分母とはバイナリ値であるから、１ビットだけがセットされているということは、（少なくとも、符号なしのバイナリ値、又は、正符号付きバイナリ値については）入力分母が２の累乗である（すなわち、入力分母のビットに最下位ビットから０で始まる番号を付けるとして、セットされている１ビットが入力分母のＮ番目のビットである場合に、入力分母を２Ｎと表すことが可能である）という事実を示す。ここで、あるビットを「セットする」とは、通常は、そのビットに１の値を与える行為を意味する、ということに注意すべきである。ただし、「セットされた」ビットを表すのに１という値を選択するのは任意であって、その代わりに０を用いることも可能であると考えられる。本発明の技術は、一方の表現又は他方の表現に限定されることはない。ただし、この一般的な通例に従い、セットされたビットは１の値を有するものとして説明される。
【０００６】
いくつかの実施例では、バイパス回路は、結果値を、入力分母においてセットされている１ビットの後に続くセットされていないビット数だけシフトされた入力分子として生成するように、構成されている。よって、結果値を生成するために入力分子がシフトされるべきビット位置の数は、セットされていることが排他的ビット検出回路によって見いだされた１ビットの後に続く（すなわち、その１ビットよりも下位のビット位置にある）セットされていないビット数から決定することが可能である。
【０００７】
除算回路を備えているデータ処理装置において、先行ゼロ決定回路も設けられている場合があり得るが、これは、２つのオペランド（分子及び分母）の先行ゼロ(leading zero)・カウントが除算回路との関係において複数の方法で用いられ得る、という理由による。例えば、除算回路が、セットされているそれぞれの最上位ビットの位置合わせをするために、それぞれの先行ゼロ・カウントだけ両方のオペランドを左シフトするように構成されている場合がその例である。データ処理装置は、また、２つの先行ゼロ・カウントの間の差を決定するように、且つその他のように構成されていることもあり得る。
【０００８】
したがって、入力分母の先行ゼロ・カウントを決定するように構成された先行ゼロ決定回路を備えているいくつかの実施例では、２の累乗検出回路は、先行ゼロ・カウントのバイナリ表現を反転させることによって入力分母の先行ゼロ・カウントからＮを決定するように構成されている。これは、ある実例によって、最も適切に例証される。分母がバイナリで０００１００００である場合には、先行ゼロ・カウントは３であり、これは０１１である。先行ゼロ・カウントのこのバイナリ表現を反転させると、バイナリで１００が得られ、これは４である。よって、Ｎは、分母のビットに最下位ビットから０で始まる番号を付けるとして、４番目のビットである。したがって、Ｎを決定するために、既存の先行ゼロ決定回路を使うことができる。
【０００９】
この方法は、８ビット、１６ビット及び３２ビットのバイナリ値など、Ａを整数として２Ａビットのバイナリ値にだけ適している、ということに注意すべきである。
【００１０】
この方法がうまく機能するためには、先行ゼロ・カウントのバイナリ表現がＡビットの値でなければならない、ということにも注意すべきである。すなわち、上の実例では、分母は８ビットの値であるから、Ａ＝３（２３＝８）である。したがって、先行ゼロ・カウントのバイナリ表現は、３ビットの値（Ａ＝３）でなければならない。
【００１１】
しかし、そのような先行ゼロ決定回路が設けられていない実施例では、Ｎを後置ゼロ(trailing zero)・カウントとしてより直接的に決定することが好ましい場合があり得る。したがって、いくつかの実施例は、入力分母の後置ゼロ・カウントを決定するように構成された後置ゼロ決定回路を備えており、その場合、２の累乗検出回路は、入力分母の後置ゼロ・カウントとしてＮを決定するように構成されている。
【００１２】
排他的ビット検出回路は、複数の方法で構成され得るが、いくつかの実施例では、ゲートの複数のバイナリ・ツリーを備え、ゲートのそれぞれのバイナリ・ツリーは複数の階層レベルを備え、それぞれのバイナリ・ツリーの１つの階層レベルがＸＯＲゲートを備え、それぞれのバイナリ・ツリーの他のすべての階層レベルがＯＲゲートを備えており、複数のバイナリ・ツリーのそれぞれのバイナリ・ツリーは、そのＸＯＲゲートを、複数のバイナリ・ツリーの残りのバイナリ・ツリーと異なる階層レベルにおいて有し、複数のバイナリ・ツリーの出力のＡＮＤ結合がバイパス条件を示す。よって、ＸＯＲゲート及びＯＲゲートのこのような構成（これは、ここにおける論理関数に対応するように理解されるべきであり、したがって、ＸＯＲ及びＯＲゲートそれぞれの機能を協働して提供する複数の論理ゲートの任意の組合せによって実装され得る）により、入力分母が、セットされているビットを１つだけ含むかどうかについて、判断することが可能になる。ここで、判断が可能になるのは、それぞれのバイナリ・ツリーが、排他的ビットが入力分母の内部において細分性(granularity)のそれぞれの異なるレベルで見つかったかどうか、すなわち、その隣接する位置との関係において排他的であるビットが見つかったかどうか、１対のビットにおける一方又は両方のビットがアサートされることが、セットされていない隣接する１対のビットを有することになるかどうか、少なくとも１ビットがセットされている４ビットの組が、セットされていない４ビットの組と隣接しているかどうかなどを示すように構成される、という事実による。このようにして、これらの条件を（例えば、最終的なＡＮＤゲートを経由して）組み合わせることにより、入力分母の全体においてただ１つのビットが排他的にセットされているかどうかに関する判断が可能になる。
【００１３】
いくつかの実施例では、排他的ビット検出回路は、論理ゲートのネットワークを備えており、論理ゲートのこのネットワークは、入力分母をテスト値として受け取り、更に、
Ａ）テスト値のビットの第１の半分においてはどのビットもセットされておらず、テスト値のビットの第２の半分においては少なくとも１ビットがセットされているかどうかの判断を実行し、前記判断が真である場合には、
Ｂ）テスト値のビットの第２の半分が１ビットだけになるまで、そして、この１ビットがバイパス条件をシグナリングするようにセットされている場合には、テスト値のビットの第２の半分をテスト値として受け取り、Ａ）における判断を反復するように構成されている。
【００１４】
よって、入力分母のそれぞれの半分を見て、これらの半分の一方だけがセットされたビットをいくつかでも有しているかどうかを判断することによって、反復的プロセスが実行され得るのであるが、セットされているビット（１つ又は複数）を有する半分は、このプロセスの次の反復において考察されるために、二分される。複数個の１ビットだけが考察されることになると、入力分母が、セットされたビットを１つだけ含むかどうかが、最終的に決定可能となる。
【００１５】
入力分子と入力分母とは、符号のないバイナリ値であり得る。
【００１６】
いくつかの実施例では、入力分子と入力分母とは、２の補数表現(complement representation)を用いた、符号付きのバイナリ値である。正の符号付きバイナリ値と負の符号付き値との表現における差異のために、現在の技術では、正の符号付きバイナリ値のために専用の２の累乗検出回路が提供されることが可能であり、負の符号付きバイナリ値のために専用の２の累乗検出回路が提供されることが可能であり、又は、符号付きバイナリ値のいずれの極性も処理可能である更に複雑な２の累乗検出回路が提供されることが可能であるが、これらの表現の一方を、同じ２の累乗検出回路を両方のために用いることが可能であるように適合させることができれば、より効率的な構成が提供される、ということが認識されている。したがって、いくつかの実施例では、入力分子と入力分母とは符号付きのバイナリ値であり、２の累乗検出回路は、入力分母が負の値を有する場合には、入力分母を前処理して前処理された入力分母を生成するように構成された前処理回路を備えており、２の累乗回路は、前処理された入力分母が２の累乗を表す場合には、バイパス条件を検出するように構成されている。
【００１７】
前処理回路は、様々な形式を取り得るが、いくつかの実施例では、入力分母を１ビットだけ左シフトし、セットされていないビットを最下位ビットとして追加して中間値を生成するように構成され、中間値と入力分母とのＸＯＲ演算を実行して前処理された入力分母を生成するように構成されている。この構成は、有利であることに、セットされている１ビットをこの負の値である入力分母の正の等価物と同じビット位置に有する、前処理された入力分母を生成する。入力分母の正の等価物を生成することも可能であるが、このプロセスは、典型的に、入力値のビット反転を行って１を追加するステップを含んでおり、その結果として、この実装をより高コストにする可能性がある、要求されている桁上げ動作を生じさせることがある。
【００１８】
したがって、いくつかの実施例では、２の累乗検出回路は、前処理された入力分母がセットされたビットを１つだけ有しており他のすべてのビットはセットされていない場合に、バイパス条件を検出するように構成されている。しかし、入力分母の正の等価物を生成することには価値があるということが、いくつかの実装例では判断され得るのであって、その理由は、例えば、この値が他の理由のために既に決定されているからであり、したがって、いくつかの実施例では、前処理回路は、入力分母の正の等価物を、前処理された入力分母として生成するように構成されている。
【００１９】
正の等価物の生成は、様々な方法で提供され得るが、いくつかの実施例では、前処理回路は、入力分母のビットを反転させ１を追加して前処理された入力分母を生成するように構成されている。
【００２０】
入力分子と入力分母とは、複数の異なる形式を取り得る。例えば、いくつかの実施例では、入力分子と入力分母とは、バイナリ整数である。そのような実施例では、この装置は、したがって、整数除算命令に応答して整数除算動作を実行するように構成され得、整数除算動作を実行することによって結果値を生成するように構成された整数除算回路を備え得る。他の実施例では、入力分子と入力分母とは、固定小数点バイナリ値である。そのような実施例では、この装置は、したがって、固定小数点除算命令に応答して固定小数点除算動作を実行するように構成され得、固定小数点除算動作を実行することによって結果値を生成するように構成された固定小数点除算回路を備え得る。
【００２１】
一般的に、除算動作を実行するのに要求されるシフトは、Ｎが正である場合には、右シフトとなる。したがって、バイパス回路は、２の累乗検出回路がＮは正の整数であることを示すときには、結果値を、Ｎビットだけ右シフトされた入力分子として生成するように構成され得る。しかし、現在の技術では、入力分子と入力分母とが固定小数点バイナリ値である場合には、入力分母がＮを負の整数として±２Ｎによって表される可能性（例えば、入力分母が０．５＝２−１の場合）が存在し、この場合には、結果値を生成するのに左シフトが要求される、ということが認識されている。したがって、バイパス回路は、２の累乗検出回路がＮは負の整数であることを示すときには、結果値を、Ｎビットだけ左シフトされた入力分子として生成するように構成され得る。
【００２２】
いくつかの実施例では、この装置は結果修正回路を更に備えており、この結果修正回路は、バイパス条件がシグナリングされＮが正であるときには、入力分子をＮビットだけ右シフトして結果値を生成することにより、セットされている少なくとも１ビットを取り除いている場合には、打ち切り条件を識別し、打ち切り条件が真であるときには、セットされている最下位ビットの値を結果値に追加させるように構成されている。現在の技術では、分子を右シフトすることによって結果値を生成するときには、この装置が、セットされている最下位ビット値を結果値に追加する（すなわち、典型的な構成では「１」を追加する）ことを可能にすることによって、結果値の丸め処理へのアプローチが改善され得ることが、更に認識されている。これは、右シフトによって、セットされている少なくとも１ビットが取り除かれているときに、有効である。その理由は、これによって、正及び負の結果値を異なる態様で丸め処理できるということが分かっているからである。
【００２３】
丸め処理に関するこの装置の特定の構成によって、「１」が追加されるべき条件が決定される。例えば、ゼロに近づく方向に結果値を丸めるように装置が構成されている場合には、結果修正回路は、打ち切り(truncation)条件が真であることを識別するためには、結果値が負であることを要求するように構成され得る。或いは、ゼロから離れる方向に結果値を丸めるように装置が構成されている場合には、結果修正回路は、打ち切り条件が真であることを識別するためには、結果値が正であることを要求するように構成され得る。
【００２４】
いくつかの実施例では、この装置は、バイパス条件がシグナリングされＮが負であるときには、入力分子をＮビットだけ左シフトして結果値を生成することにより、セットされている少なくとも１ビットが取り除かれている場合には、オーバフロー条件を識別し、オーバフロー条件が真であるときには、オーバフロー応答を実行させるように構成されたオーバフロー検出回路を更に備えている。
【００２５】
オーバフロー応答は、オーバフロー・フラグをセットさせること、及び／又は、分子が取り得る最大の大きさに結果値を設定することを、有利に、含み得る。
【００２６】
第２の態様から考察すると、本発明は、除算回路を用いて除算動作を実行するように構成されたデータ処理装置を動作させる方法を提供する。ここで、除算動作は、入力分子を入力分母で除算することによって結果値を生成するように構成されており、入力分子と入力分母とはバイナリ値である。この方法は、入力分子と入力分母とを特定する除算命令を受け取るステップと、入力分母がＮを整数として±２Ｎによって与えられる値を有する場合には、バイパス条件をシグナリングするステップと、バイパス条件が存在しない場合には、除算回路を用いて除算動作を実行することによって結果値を生成するステップと、バイパス条件が存在する場合には、除算回路をバイパスさせ、結果値を、Ｎビットだけシフトされた入力分子として生成するステップとを含む。
【００２７】
第３の態様から考察すると、本発明は、除算命令に応答して除算回路を用いて除算動作を実行するように構成されたデータ処理のための装置を提供する。ここで、除算動作は、除算命令によって特定された入力分子を除算命令によって特定された入力分母で除算することによって結果値を生成するように構成されており、入力分子と入力分母とはバイナリ値である。この装置は、入力分子と入力分母とを特定する除算命令を受け取るための手段と、入力分母がＮを整数として±２Ｎによって与えられる値を有する場合には、バイパス条件をシグナリングするための手段と、バイパス条件が存在しない場合には、除算動作を実行することによって結果値を生成するための手段と、バイパス条件が存在する場合には、結果値を生成するための手段をバイパスさせるための手段と、バイパス条件が存在する場合には、結果値を、Ｎビットだけシフトされた入力分子として生成するための手段とを備えている。
【００２８】
本発明は、添付の図面に図解されている実施例を単なる実例として参照して、更に説明される。添付の図面は、次の通りである。
【図面の簡単な説明】
【００２９】
【図１】ある実施例における、固定小数点除算回路を備える固定小数点実行パイプラインと整数除算回路を備える整数実行パイプラインとを備えたデータ処理システムの概略図である。
【図２Ａ】ある実施例における、関連する２の累乗検出回路とバイパス回路とを備えた整数除算回路の概略図である。
【図２Ｂ】ある実施例における、関連する２の累乗検出回路とバイパス回路とを備えた固定小数点除算回路の概略図である。
【図３Ａ】ある実施例における、入力分母が２Ｎと表現可能であるときに、先行ゼロ決定回路の出力から正の整数Ｎを決定することの概略図である。
【図３Ｂ】ある実施例における、入力分母が２Ｎと表現可能であるときに、後置ゼロ決定回路の出力から正の整数Ｎを決定することの概略図である。
【図４Ａ】ある実施例における、セットされたビットを入力分母が１つだけ含むことを決定し得る反復的なプロセスの概略図である。
【図４Ｂ】図４Ａに示されている反復的プロセスを実装するのに用いられ得る論理ゲートの構成の概略図である。
【図５】ある実施例における排他的ビット決定回路の概略図である。
【図６】ある実施例における、正及び負両方の符号付き整数入力分母が、排他的ビット検出のための入力として用いられることを可能にする前処理回路の概略図である。
【図７】ある実施例における、負の符号付き整数入力分子の正の等価物を生成する前処理回路の概略図である。
【図８】ある実施例の方法で行われる一連のステップの概略図である。
【図９】ある実施例におけるシフト回路の構成の概略図である。
【発明を実施するための形態】
【００３０】
図１は、プロセッサ１１とメモリ１３とを含むデータ処理システム１０を概略的に図解している。プロセッサは、システム相互接続１２を経由して、メモリ１３のコンテンツにアクセスするように構成されている。メモリは、プロセッサ１１によって実行されるデータ処理動作を構成するプログラム命令１４と、そのデータ処理動作が実行される対象であるデータ１５とを記憶する。プロセッサ１１は、プログラム命令１４によって特定されるように、そのデータ処理動作を処理パイプラインによって実行する。なお、処理パイプラインは、（図１において概略的に図解されているように）フェッチ段１６と、デコード及びイシュー段(issue stage)１７と、複数の異なる実行パイプライン８、１８、１９及び２０とを含む。実行パイプラインは、固定小数点パイプライン８と、整数パイプライン１８と、浮動小数点パイプライン１９と、汎用実行パイプライン２０とを含む。本発明の技術は、固定小数点パイプライン８と関係しており、固定小数点パイプライン８は、固定小数点除算回路９と、整数除算回路２１を備えた整数パイプライン１８とを備えている。メモリ１３に記憶されている命令１４からリトリーブされる固定小数点除算命令が、その固定小数点除算命令において特定される固定小数点分子と固定小数点分母とを用いて固定小数点除算動作を実行するように、固定小数点パイプライン８を構成する。同様に、メモリ１３に記憶されている命令１４からリトリーブされる整数除算命令が、その整数除算命令において特定される整数分子と整数分母とを用いて整数除算動作を実行するように、整数パイプライン１８を構成する。
【００３１】
図２Ａは、整数除算回路２１を、ある実施例において本発明の技術により提供される更なる回路と共に、概略的に図解している。ここでは、これらの追加的なコンポーネントは、２の累乗検出回路２２と、バイパス回路２３とを備えている。バイパス回路２３は、右シフト回路２４と、マルチプレクサ２５とを備えている。図２Ａは、整数除算命令も概略的に図解しており、この整数除算命令は、これが整数除算命令であることを示す（そして、これが、符号付きの整数除算命令であるのか、又は、符号なしの整数除算命令であるのかを更に示し得る）演算コード（opcode, オペコード）２６と、分母２７の指示と、分子２８の指示とを有する。分母２７と分子２８とは、例えば、メモリ１３のデータ部分１５に、データ値として記憶され得る。
【００３２】
動作の際には、整数除算回路２１がその整数除算動作を実行し得るように、分母２７と分子２８とが整数除算回路２１に提供される。しかし、分母２７は、２の累乗検出回路２２にも提供され、この２の累乗検出回路２２は、整数である分母２７が２の累乗であるかどうか、すなわち、Ｎを正の整数として±２Ｎとして表すことが可能かどうかを判断するように構成されている。２の累乗であるときには、２の累乗検出回路２２は、Ｎの対応する値を、右シフト回路２４へ出力し、バイパス信号も出力する。このバイパス信号は、整数除算回路２１に提供されて、整数除算回路２１が整数除算動作のいかなるそれ以上の部分も実行しないようにする。右シフト回路２４は、整数である分子２８を受け取り、２の累乗検出回路２２から受け取るＮによって与えられるビット数の位置だけ、この値を右シフトする。この右シフトの結果は、次に、マルチプレクサ２５に提供されるのであるが、マルチプレクサ２５の他方の入力は、整数除算回路２１によって生成される通常の結果値である。２の累乗検出回路２２によって生成されるバイパス信号は、このバイパス信号がアサートされていないときには整数除算回路２１の通常の出力結果が結果値として用いられ、このバイパス信号がアサートされているときには右シフト回路２４によって実行される右シフト動作によって生成される値が結果値として用いられるように、このマルチプレクサ２５のための選択信号として用いられる。
【００３３】
図２Ｂは、固定小数点除算回路１２１を、ある実施例において本発明の技術により提供される更なる回路と共に、概略的に図解している。ここでは、これらの追加的なコンポーネントは、２の累乗検出回路１２２と、バイパス回路１２３とを備えている。バイパス回路１２３は、シフト回路１２４と、マルチプレクサ１２５とを備えている。図２Ｂは、固定小数点除算命令も概略的に図解しており、この固定小数点除算命令は、これが固定小数点除算命令であることを示す（そして、これが、符号付きの固定小数点除算命令であるのか、又は、符号なしの固定小数点除算命令であるのかを更に示し得る）演算コード１２６と、分母１２７の指示と、分子１２８の指示とを有する。分母１２７と分子１２８とは、例えば、メモリ１３のデータ部分１５に、データ値として記憶され得る。
【００３４】
動作の際には、固定小数点除算回路１２１がその固定小数点除算動作を実行し得るように、分母１２７と分子１２８とが固定小数点除算回路１２１に提供される。しかし、分母１２７は、２の累乗検出回路１２２にも提供され、この２の累乗検出回路１２２は、固定小数点である分母１２７が２の累乗であるかどうか、すなわち、Ｎを整数として±２Ｎとして表すことが可能かどうかを判断するように構成されている。２の累乗であるときには、２の累乗検出回路１２２は、Ｎの対応する値を、シフト回路１２４へ出力し、バイパス信号も出力する。このバイパス信号は、固定小数点除算回路１２１に提供されて、固定小数点除算回路１２１が固定小数点除算動作のいかなるそれ以上の部分も実行しないようにする。シフト回路１２４は（図２Ａにおける右シフト回路２４の場合のような）右シフトだけの回路ではない、ということに注意すべきである。その理由は、固定小数点の値を用いて作業しているときには、入力分母が（例えば、入力分母が０．５＝２−１であるような）２の負の累乗に等しい可能性があり、その場合、入力分子の左シフトが要求されるからである。したがって、シフト回路１２４は、Ｎの符号を判断して、適切に、左シフト又は右シフトするように構成されている。シフト回路１２４は、固定小数点である分子１２８を受け取り、２の累乗検出回路１２２から受け取るＮによって与えられるビット数の位置だけ、この値をシフトする。このシフトの結果は、次に、マルチプレクサ１２５に提供されるのであるが、マルチプレクサ１２５の他方の入力は、固定小数点除算回路１２１によって生成される通常の結果値である。２の累乗検出回路１２２によって生成されるバイパス信号は、このバイパス信号がアサートされていないときには固定小数点除算回路１２１の通常の出力結果が結果値として用いられ、このバイパス信号がアサートされているときにはシフト回路１２４によって実行されるシフト動作によって生成される値が結果値として用いられるように、このマルチプレクサ１２５のための選択信号として用いられる。
【００３５】
図３Ａは、ある実施例において２の累乗値Ｎがどのように生成されるのかを概略的に図解している。この実施例では、データ処理装置が、先行ゼロ・カウント（ＣＬＺ）回路３０を備えており、このＣＬＺ回路３０は、分子ＣＬＺ（ＮＵＭ）と分母ＣＬＺ（ＤＥＮ）とのそれぞれに対する先行ゼロ・カウントを整数除算回路２１（図２Ａを参照のこと）に提供するように構成されている。整数除算回路２１は、その整数除算動作を実行する際に、これらの値を利用する。当業者であれば、整数の除算におけるそのような先行ゼロ・カウントの使用については熟知しているから、簡潔にするため、この態様に関する更なる説明は割愛される。図３Ａに示されているように、ＣＬＺ回路３０によって生成される分母に対する先行ゼロ・カウントを受け取りこの値のビットを反転させてＮを生成する反転回路３１も提供されている。このように、図２Ａに概略的に図解されている実施例のコンテキストでは、ＣＬＺ回路３０と反転回路３１とを、２の累乗検出回路２２の一部を形成するものと考えることが可能であるが、これは必須ではなく、これらの回路は、整数除算回路２１の一部として、又は、データ処理装置の別々の部分として、提供され得ることを理解されたい。
【００３６】
図３Ｂは、後置ゼロ・カウント回路３２が提供されている別の構成を概略的に図解しているのであるが、これによって、整数値Ｎを、整数である分母値の後置ゼロ・カウントから直接決定することが可能になる。
【００３７】
図４Ａは、分母において１ビットだけがセットされており他のビットはすべてセットされていないかどうかを判断し得る反復的プロセスを概略的に図解している。第１段４０では、分母が半分に二分して考察され、一方の半分ではどのビットもセットされておらず他方の半分では少なくとも１ビットがセットされているかどうかが判断される。次に、少なくとも１ビットがセットされている方の半分が、第２段４１で考察されるために前方へ送られ、第２段４１において、同じ判断がなされる、すなわち、一方の半分ではどのビットもセットされておらず他方の半分では少なくとも１ビットがセットされているかどうかが判断される。これが真である場合には、少なくとも１ビットがセットされている方の半分が、次の段４２に向けて前方へ送られ、段４２において、一方の半分ではどのビットもセットされておらず他方の半分では少なくとも１ビットがセットされているかどうかが判断される。この反復的プロセスは、ビット長がより大きな分母の値について、他の更なる段まで継続され得るが、少なくとも１ビットはセットされている方の「半分」も１ビットだけである（段４２などの）最終段に到達した場合には、排他的ビット条件が見いだされ、これに基づき、バイパス条件をシグナリングすることができる。
【００３８】
図４Ｂは、図４Ａに示されている反復的プロセスを実装するのに用いられ得る論理ゲートを概略的に図解している。この図において、分母値４５は制御論理４６へ送られるのであるが、この制御論理４６は、分母値を２つの半分ずつに分割して、一方の半分をＮＯＲゲート４７への入力として提供し、他方の半分をＯＲゲート４８への入力として提供するように構成されている。ＮＯＲゲート４７の出力とＯＲゲート４８の出力とは、制御論理４６に戻される。これらの入力に基づき、制御論理は、図４Ａを参照して説明された手順において次のレベルへ送るのに要求される条件が、すなわち、一方の半分ではどのビットもセットされておらず（つまり、ＮＯＲゲート４７の出力は１であり）、他方の半分では少なくとも１ビットがセットされている（つまり、ＯＲゲート４８の出力は１である）という条件が、満たされているかどうかを判断することができる。それぞれの反復において、制御論理４６は、ゲート４７及び４８のそれぞれを通過する値の両方の半分それぞれを試すように構成されていることに注意すべきである。どちらの組み合わせ（permutation）も要求されている結果を生成しない場合には、プロセスは停止され、分母４５はセットされたビットを１ビットも含まない、と判断される。しかし、要求されている条件が満たされるときには、ＯＲゲート４８に提供された値の半分が、更に二分割され、一方の半分がＮＯＲゲート４７に提供され、一方の半分がＯＲゲート４８に提供される。この反復的プロセスは、図４Ａを参照して説明されたように、継続する。制御論理４６は、１ビットだけが論理４７及び４８のそれぞれによって試されていると判断すると、ＯＲゲート４８の出力が制御信号と共に（ＡＮＤゲート４９への入力を形成するように）バイパス信号を提供することができるように、制御信号を活性化する。
【００３９】
図５は、２の累乗検出回路を提供するためにある実施例で用いられる論理ゲートの構成を概略的に図解している。これらの論理ゲートは、２入力ＸＯＲゲートとＯＲゲートとによって構成されるバイナリ・ツリーを備えており、更に、それぞれのバイナリ・ツリーの出力をその入力として受け取る最終的なＡＮＤゲートを備えている。換言すると、図解されている３つのバイナリ・ツリーがすべて１の値を生成する場合にのみ、排他的ビット条件であると判断され（すなわち、分母はセットされた１ビットだけを含む）、バイパス信号が生成される。図５に見られるように、第１のバイナリ・ツリーは、その階層の第１のレベルにおける複数のＸＯＲゲートと、その階層の第２のレベルにおける複数のＯＲゲートと、その階層の第３のレベルにおける１つのＯＲゲートとを備えている。第２のバイナリ・ツリーは、その階層の第１のレベルにおける複数のＯＲゲートと、その階層の第２のレベルにおける複数のＸＯＲゲートと、その階層の第３のレベルにおける最終的な１つのＯＲゲートとを備えている。第３のバイナリ・ツリーは、その階層の第１のレベルにおける複数のＯＲゲートと、その階層の第２のレベルにおける複数のＯＲゲートと、その階層の第３のレベルにおける最終的な１つのＸＯＲゲートとを備えている。したがって、第１のバイナリ・ツリーの出力がセットされている場合、これは、分母において少なくとも１ビットがセットされており、このビットはその隣接する対との関係で排他的である、すなわち、その隣接する対はセットされていない、ということを示す。第２のバイナリ・ツリーの出力がセットされている場合、これは、分母において少なくとも１ビットがセットされており、この少なくとも１ビットがセットされている１対のビット位置は、それに隣接する１対のビット位置との関係では排他的である、すなわち、この隣接するビット対ではどのビットもセットされていない、ということを示す。最後に、第３のバイナリ・ツリーの出力がセットされている場合、これは、少なくとも１ビットがセットされている分母の半分とは別の分母（４ビット）の他方の半分に含まれるビットはどれもセットされていない、ということを示す。これらのバイナリ・ツリーの出力のすべてがセットされている場合には、これは、分母の中で１ビットだけがセットされている、ということを示す。したがって、この場合、バイパス信号が、生成される。
【００４０】
図６は、ある実施例において提供される、符号付きの整数を受け取るように構成されている前処理回路を概略的に図解している。入力分母６０は、最初に、負値検出回路６１に送られるが、負値検出回路６１は、入力分母が正符号付きの整数であるのか負符号付きの整数であるのかを判断するように構成されている。図６の右側に与えられている実例を参照すると理解できるように、これは、その値が正符号付き（ゼロ）なのか負符号付き（１）なのかを示す入力値の最上位ビットに関してなされる。入力分母６０は、正符号付きの整数である場合には、例えば図５に図解されているように構成され得る排他的ビット検出回路６４まで、直接送られ得る。しかし、負値検出回路６１が、入力分母６０は負符号付きの整数であると判断する場合には、入力分母６０は、左シフト及びゼロ追加回路６２に送られる。なお、この左シフト及びゼロ追加回路６２は、負符号付き入力値に対し、１ビット位置だけ左シフトし、ゼロを新たな最下位ビットとして追加するように構成されている。これも、図６の右側に示されている実例において図解されている。次に、この新たに生成された値はＸＯＲ回路６３に送られるのであるが、ＸＯＲ回路６３は、その他方の入力として、元の入力分母値６０を受け取る。次に、このＸＯＲ演算の結果は、排他的ビット検出回路６４に送られる。
【００４１】
図６の右側に示されているように、＋１６（０００１００００）などの正符号付き整数値は、直接排他的ビット検出回路６４に送られる。他方で、−１６（１１１１００００）などの負符号付き整数は、上述されたように、左シフトされ、ゼロを追加され、ＸＯＲ演算が行われることにより、２の累乗である負符号付きの入力値に対し、セットされた１ビットが生成される。図６の右側に与えられている実例では、負符号付き整数に対するこの演算の結果は、この数（すなわち＋１６）の正符号付き整数表現と全く同等であることに注意すべきである。しかし、左シフト、ゼロの追加、及びＸＯＲ演算は、負符号付き整数が２の累乗である場合に、その負符号付き整数の正符号付き表現を生成するだけである、ということに注意すべきである。他の場合には、負符号付き入力整数の正符号付き表現が結果的に得られることはない。
【００４２】
しかし、負符号付き整数である入力分母を、その正符号付き整数表現に変換することによって、排他的ビット検出回路への適切な入力が提供されるという別の可能性が生じるのであって、ある実施例では、図７に概略的に図解されているように、この反転が実行され得る。したがって、この実施例における入力分母７０は、最初に、この値の各ビットを反転させるように構成されているビット反転回路７１に送られる。その後で、追加回路７1が、そのビット反転プロセスの結果に対して１を追加することにより、結果的に、入力分母７０の正バージョン７３が得られる。例えば、他の理由によってビット反転回路７１と追加回路７２とがデータ処理装置の内部に既に提供されているようなときには、この技術が望ましいという状況が存在し得る。しかし、この特定の技術の潜在的な短所は、追加回路７２による１の追加を実行するために要求され得る関連の処理である、ということを認識すべきである。これは、図７の右側に与えられている実例から見ることができるが、この追加には、複数回の桁上げステップの実行が要求されるため、正バージョン７３を得るためには、一般論として、図６を参照して説明した技術よりもより多くの時間及びエネルギーが消費される。
【００４３】
図８は、ある実施例の方法によって採用され得る一連のステップを概略的に図解している。整数除算命令が、ステップ８０において受け取られ解釈されて、整数パイプラインを設定してこの命令を実行するために、制御信号が適切に送られる。次に、ステップ８１において、この命令を実行する第１のステップとして、この実行されるべき整数除算の整数オペランドが符号付き整数であるかどうか、そして、分母値が負であることが判断される。そうである場合には、フローはステップ８２及び８３を経由してステップ８４に進み、そうでない場合には、フローは直接ステップ８４へ進む。ステップ８２では、分母は、１ビットだけ左シフトされ、最下位ビット位置にゼロが追加される。ステップ８３において、この演算の結果と元の分母値との間でＸＯＲ演算がなされ、次のステップに送られる値が生成される。ステップ８４では、この値（すなわち、ステップ８１からの「いいえ」の経路を経由した場合の元の分母、又は、ステップ８３におけるＸＯＲ演算の結果）について、１ビットだけセットされているかどうかが判断される。そうでない場合には、フローはステップ８５に進み、このステップ８５では、整数除算回路が、ステップ８０で受け取られた整数除算命令を実行するために、その完全な整数除算プロセスを実行することが許される。しかし、１ビットだけがセットされている場合には、フローはステップ８６に進み、整数除算回路のそれ以上の動作が回避される。ステップ８７では、分母に対するＣＬＺ値が反転させられることによってＮ（すなわち、整数である分母が対応する２の累乗）が生じ、ステップ８８では、分子がＮビット位置だけ右シフトされる。ステップ８９では、その結果が、整数除算命令８０の結果として出力される。
【００４４】
図９は、図２Ａ及び図２Ｂに示されている右シフト回路２４／シフト回路１２４の更なる詳細を、概略的に図解している。このシフト回路は、図９では、全体として参照番号１４０が付されており、いずれの実施例にも適用可能である。シフト回路１４０は、分子シフト回路１４２と、商符号決定回路１４４と、廃棄された「１」検出回路１４６と、「１」追加回路１４８と、オーバフロー・フラグ設定回路１５０とを備えている。シフト回路のこの特定の構成は、分子が右シフトされる場合には、結果値の丸め処理が、ゼロに近づく方向に丸めるのが望ましいのかゼロから離れる方向に丸めるのが望ましいのかに応じて、適切に実行され、分子が左シフトされる場合には、左シフトの結果として「１」が廃棄されるならばオーバフロー・フラグが設定される、ということが保証されるように、提供される。
【００４５】
例えば、除算の結果が正の数であるときには、右シフトの後の結果値は、ゼロに近づく方向への丸め処理が可能である。単純な実例を挙げると、１１が４で除算される場合（真の値は、２３／４）、「ゼロに近づく方向への丸め処理」の結果は２である。バイナリな実装では、これは、１１（１０進法）＝０１０１１（バイナリ）であり、これは、（４による除算を実装するために）２つの場所だけシフトした後では、０００１０となり、（分子の最下位の２ビットである）「１１」が廃棄される。しかし、除算の結果が負の数であるときには、右シフトの後で結果値に対して同じ作用を実装すると、結果的に、ゼロから離れる方向への丸め処理が生じる。上述した実例の負のバージョンを挙げると、−１１を４で除算すると、−２３／４になり、これは、−３として現れる。これは、バイナリ表現では、−１１（１０進法）＝１０１０１（２の補数バイナリ）であり、（４による除算のために）２つの場所だけシフトした後では（そして、符号を延長して）１１１０１となり、（分子の最下位の２ビットである）後置「０１」が廃棄されるからである。
【００４６】
丸め処理の方向が一貫している（ゼロに近づく方向又はゼロから離れる方向のいずれか）構成を提供するために、シフト回路に、商符号決定回路１４４と、廃棄された「１」検出回路１４６と、「１」追加回路１４８とが設けられる。商符号決定回路１４４は、分子シフト回路１４２の動作の結果として得られる商の符号を決定する。廃棄された「１」検出回路１４６は、右シフト動作の結果として、セットされている少なくとも１ビット（すなわち、この実施例では、「１」）が廃棄されたかどうかを判断する。商符号決定回路１４４と廃棄された「１」検出回路１４６との動作の結果に基づき、廃棄された「１」検出回路が、「１」を結果値に追加するように「１」追加回路１４８を制御して、丸め処理が正しく実行されることを保証する。特に、この装置がゼロに近づく方向に丸め処理を行うように構成されており、いずれかの１がシフトによって消滅し、商が負である場合には、「１」追加回路１４８が「１」を結果値に追加する。逆に、この装置がゼロから離れる方向に丸め処理を行うように構成されており、いずれかの１がシフトによって消滅し、商が正である場合には、「１」追加回路１４８が「１」を結果値に追加する。
【００４７】
別の実例では、分子が、分子シフト回路１４２によって、左シフトされる。廃棄された「１」検出回路１４６が、少なくとも１つのセットされたビットがこの左シフト動作の結果として放棄されたかどうか、を判断する。この放棄された「１」検出回路は、少なくとも１つのセットされたビットが放棄されたと判断する場合には、オーバフロー・フラグ設定回路１５０を制御してオーバフロー・フラグを設定する。この実施例では、結果値は、オーバフロー・フラグがアサートされることによる影響を受けない（ただし、除算の結果である真の値を表さないものとして、無効となる）。しかし、既に述べられたように、例えば、結果値は、その代わりに、データ処理システムによって表現可能な最大値に設定されることがあり得る。
【００４８】
本明細書では、本発明の特定の実施例が説明されてきたが、本発明はそれらに限定されないこと、そして、本発明の範囲内で多くの修正及び追加を行い得ることが、明らかとなるであろう。例えば、本発明の範囲から逸脱することなく、以下の従属請求項の特徴と独立請求項の特徴との様々な組合せが可能である。
【符号の説明】
【００４９】
８  固定小数点パイプライン
９  固定小数点除算回路
１０  データ処理システム
１１  プロセッサ
１２  システム相互接続
１３  メモリ
１４  プログラム命令
１５  データ
１６  フェッチ段
１７  デコード及びイシュー段
１８  整数パイプライン
１９  浮動小数点パイプライン
２０  汎用実行パイプライン
２１  整数除算回路
２２  ２の累乗検出回路
２３  バイパス回路
２４  右シフト回路
２５  マルチプレクサ
２６  演算コード
２７  分母
２８  分子
１２１  固定小数点除算回路
１２２  ２の累乗検出回路
１２３  バイパス回路
１２４  シフト回路
１２５  マルチプレクサ
１２６  演算コード
１２７  分母
１２８  分子
３０  ＣＬＺ回路
３１  反転回路
３２  後置ゼロ・カウント回路
４０  第１段
４１  第２段
４５  分母値
４６  制御論理
４７  ＮＯＲゲート
４８  ＯＲゲート
４９  ＡＮＤゲート
６０  入力分母
６１  負値検出回路
６２  左シフト及びゼロ追加回路
６３  ＸＯＲ回路
６４  排他的ビット検出回路
７０  入力分母
７１  ビット反転回路
７２  追加回路
７３  正バージョン
１４０  シフト回路
１４２  分子シフト回路
１４４  商符号決定回路
１４６  廃棄された「１」検出回路
１４８  「１」追加回路
１５０  オーバフロー・フラグ設定回路
【図１】
0006535231.tif 000002
【図２Ａ】
0006535231.tif 000003
【図２Ｂ】
0006535231.tif 000004
【図３Ａ】
0006535231.tif 000005
【図３Ｂ】
0006535231.tif 000006
【図４Ａ】
0006535231.tif 000007
【図４Ｂ】
0006535231.tif 000008
【図５】
0006535231.tif 000009
【図６】
0006535231.tif 000010
【図７】
0006535231.tif 000011
【図８】
0006535231.tif 000012
【図９】
0006535231.tif 000013