(57)【特許請求の範囲】
【請求項１】
Ｎビット幅の制御可能な幅のＯＲゲートであって、
Ｎビット幅のデータ入力ポートと、
Ｍビットの制御ワードを受け取る制御ワード入力ポートと、ここでＭは、ビットの最も近い整数まで丸められたlog2Ｎに等しい、
Ｎ−１の制御可能なＯＲゲートセル、各制御可能なＯＲゲートセルは、ＯＲ０入力、ＳＴ０入力、ＯＲ１入力、ＳＴ１入力、制御ビット入力、ＯＲout 出力およびＳＴout 出力を有し、各制御可能なＯＲゲートセルは：
前記ＯＲ０入力に接続された第１の入力、前記ＯＲ１入力に接続された第２の入力および前記ＯＲout 出力に接続された出力を有する第１のＯＲゲート；
前記ＯＲ０入力に接続された第１の入力、前記ＳＴ１入力に接続された第２の入力および出力を有する第２のＯＲゲート；
前記第２のＯＲゲートの前記出力に接続された入力、前記ＳＴout 出力に接続された出力、および前記制御ビット入力に接続された制御ゲートを有する第１のパスゲート；
前記制御ビット入力に接続された入力、および出力を有するインバータ；
前記ＳＴ０入力に接続された入力、前記ＳＴout 出力に接続された出力、および前記インバータの出力に接続された制御ゲートを有する第２のパスゲート
を有し、
前記データポートの対応ビットを接続した前記ＯＲ０とＳＴ０入力、および前記データ入力ポートの次の高いビットに接続された前記ＯＲ１とＳＴ１入力を有する前記制御可能なＯＲゲートセルの第１の層であって、前記１の層の各制御可能なＯＲゲートセルの前記制御ビット入力は、前記制御ワード入力ポートの最下位のビットに接続され、
前の層の第１の制御可能なＯＲゲートセルの前記ＯＲout 出力に接続された前記ＯＲ０入力、前記前の層の前記第１の制御可能なＯＲゲートセルのＳＴout 出力に接続された前記ＳＴ０入力、前記前の層の第２の制御可能なＯＲゲートセルの前記ＯＲout 出力に接続された前記ＯＲ１入力、前記前の層の前記第２の制御可能なＯＲゲートセルの前記ＳＴout 出力に接続された前記ＳＴ１入力を有する前記制御可能なＯＲゲートセルの続く層であって、各層の各制御可能なＯＲゲートセルの前記制御ビット入力は、前記制御ワード入力ポートの対応ビットに接続され、および
前記制御可能な幅のＯＲゲート出力を形成する最終層の単一の制御可能なＯＲゲートセルの前記ＳＴout と、
を有する制御可能な幅のＯＲゲート
【請求項２】
２進化制御ワード入力より１つ多くに対応するＮビットデータバス上の入力データの制御可能な幅の論理ＯＲを形成する方法であって、
ａ）前記入力データのビットの各対に対し、
前記ビット対の第１の入力ビットと第２の入力ビットの論理ＯＲとしてＯＲ出力を形成し、
もし、前記２進化制御ワードの最下位ビットが“１”であるなら、前記ビット対の前記第１の入力ビットと前記第２の入力ビットの論理ＯＲとして、および前記２進化制御ワードの最下位ビットが“０”であるなら、前記第１の入力ビットとして、ＳＴ出力を形成し、
ｂ）前のＯＲ出力とＳＴ出力の各対に対して、
前のＯＲ出力とＳＴ出力の前記対の第１の前のＯＲ出力と第２の前のＯＲ出力の論理ＯＲとして、次のＯＲ出力を形成し、
もし、前記２進化制御ワードの対応ビットが“１”であるなら、前のＯＲ出力とＳＴ出力の前記対の第１の前のＯＲ出力と第２の前のＳＴ出力の論理ＯＲとして、および前記２進化制御ワードの最下位ビットが“０”であるなら、前記第１の前のＳＴ出力として、次のＳＴ出力を形成し、
ｃ）次のＯＲ出力と次のＳＴ出力の続く形成のために、前記次のＯＲ出力は前のＯＲ出力を形成し、および前記次のＳＴ出力は前のＳＴ出力を形成し、且つ
ｄ）次のＯＲ出力と次のＳＴ出力の最後の形成の前記ＳＴ出力は所望の制御可能な幅のＯＲゲート出力である、
ことを特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル・データ処理に関し、特に、ディジタル・データ処理の浮動少数点演算のためのマイクロプロセッサの回路、アーキテクチュアおよび方法に関する。
【０００２】
【従来の技術及び問題点】
浮動少数点演算は、しばしば演算前に２つの数の２進少数点の位置あわせを必要とする。２つの数の指数部が、２進少数点を位置あわせするためにどの程度の大きさの桁送りが必要であるかを決定するために、比較される。最も小さな数の仮数（mantissa) は、最も大きな数の指数部と最も小さな数の指数部間の差に等しい多くの場所に正確に桁送りされる。この桁送りは数の２進少数点を配列し、加減算を可能にする。またこの桁送りは、桁送りされた最も小さな数の最下位ビットの幾つかを失う。算術演算に続いて、その結果は丸められる。ＩＥＥＥ─７４５の浮動少数点の仕様は４つの丸めモードを定義する。１）正の無限大に丸める；２）負の無限大に丸める；３）最も近い整数に丸める；および４）切捨てとして知られる０に丸める、。これらのモードの最初の３つにおいては、丸めは、最も小さな数の桁送りされた最下位ビットのいづれもが１であったかどうかに依存する。これは、スティッキー・ビット（sticky bit) として知られている。桁送り動作中にこれらのビットが桁送りされるので、これらのビットを調べることは、この分野において知られている。これは、これらのビットの１以上が１であるかどうかの検出を可能にする。この技術は、比較的有利ではない。何故ならば、それはスティッキイビットがわかる前に完全な桁送りが生ずることを必要とするからである。これらの桁送りされた最下位ビットの多くの一つが１であったどうかを決定するための速い方法があるならば、有利である。
【０００３】
【本発明の概要】
本発明は、制御可能な幅のＯＲゲートを形成する。この制御可能な幅のＯＲゲート機能は浮動少数点演算においては有用である。この制御可能な幅のＯＲゲートは複数の制御可能なＯＲゲートセルを用いる。もしＯＲされるべきデータの最大幅がＮビットであれば、Ｎ−１の制御可能なＯＲゲートセルが必要である。
各々の制御可能なＯＲゲートセル１００は４つのデータ入力、即ちＯＲ０、ＳＴ０、ＯＲ１およびＳＴ１、および単一の制御入力Ｃ０を有している。各々の制御可能なＯＲゲートセル１００は、２つの出力、即ちＯＲout とＳＴout を有している。第１のＯＲゲートは、ＯＲout 出力として無条件にＯＲ０とＯＲ１の入力のＯＲを形成する。第２のＯＲゲートは、ＯＲ０入力とＳＴ１入力のＯＲを形成する。２つのパスゲートは、インバータにより制御入力Ｃ０上の信号によって反対のセンスに制御される。もしＣ０が１であれば、第２のＯＲゲート（ＯＲ０或いはＳＴ１）の出力がＳＴout に与えられる。もしＣ０が０であれば、ＳＴ０入力がＳＴout に与えられる。従って、制御可能なＯＲゲートセル１００は以下の機能を生成する。
【０００４】
ＯＲout ＝OR0 OR OR1
ＳＴout ＝[(ST1 OR OR0) AND C0 ] OR [STO AND NOT(CO)]
制御可能なＯＲゲートセルは広い制御可能な幅のＯＲゲートを形成するために用いることができる。第１の層に対して、第１のデータ入力は、ＯＲ０およびＳＴ０入力の両方を供給し、第２のデータ入力はＯＲ１およびＳＴ１入力の両方を供給する。制御ワードの最下位ビットはＣ０を供給する。制御可能なＯＲゲートセルの続く層は、前の層である第１のセルのＯＲout 出力に接続されたＯＲ０入力、前の層である第１のセルのＳＴout 出力に接続されたＳＴ０入力、前の層であるの第２のセルのＯＲout 出力に接続されたＯＲ１入力、および前の層である第２のセルのＳＴout 出力に接続されたＳＴ１入力を有している。セルの各層は制御ワードの対応ビットによって制御される。最後の層の単一セルのＳＴout は制御可能な幅のＯＲゲート出力を形成する。
【０００５】
【実施の形態】
本発明は、制御可能な幅のＯＲゲートである。これは、１ビットからＮビット幅のＯＲゲートをプログラムするための速い方法を提供する。この機能は浮動少数点演算の論理装置に有用である。
制御可能な幅のＯＲゲートは２つの入力を有している。第１の入力は、ＯＲされるべきデータのデータバスである。第２の入力はＯＲゲートの幅を決定するために用いられる制御ワード入力である。制御可能な幅のＯＲゲートからの２つの出力がある。第１の出力は、単一ビット出力ＯＲout であり、それは制御ワード入力に無関係にデータバスの全てのビットのＯＲである。第２の出力は、単一ビット出力ＳＴout であり、それはビット０から制御ワードによって特定されるビットまでのデータバスの全てのビットのＯＲである。制御可能な幅のＯＲゲートは繰り返されたセルから形成される。これらのセルの各々は、データおよび制御ワード入力を有し、ＯＲout とＳＴout 出力を形成する。繰り返されたセルからのＯＲout 信号は中間的な信号として用いられる。
図１は、基本的な組み立てブロックとして用いられる制御可能なＯＲゲートセル１００を示す。この制御可能なＯＲゲートセル１００は、４つのデータ入力、即ちＯＲ０，ＳＴ０，ＯＲ１とＳＴ１、および単一の制御入力Ｃ０を有している。この制御可能なＯＲゲートセル１００は、２つの出力、即ちＯＲout とＳＴout を有している。ＯＲゲート１０１は、ＯＲ０とＯＲ１入力のＯＲを無条件に形成する。このＯＲゲート１０１はＯＲout 出力を与える。ＯＲゲート１０２は、ＯＲ０入力とＳＴ１入力のＯＲを形成する。２つのパスゲート１０４と１０５は、インバータ１０３によって制御入力Ｃ０の信号で反対のセンスに制御される。もし、Ｃ０が１であれば、ＯＲゲート１０２の出力がＳＴout に与えられる。もし、Ｃ０が０であれば、ＳＴ０入力が出力ＳＴout に与えられる。信号のＳＴout は、ワイヤードＯＲ機能(wired OR function) である。インバータ１０３、およびパスゲート１０４と１０５の作用により、このワイヤードＯＲへの単一入力だけはいつでもアクティブである。従って、制御可能なＯＲゲートセル１００は以下の機能を有している。
【０００６】
ＯＲout ＝OR0 OR OR1
ＳＴout ＝[(ST1 OR OR0) AND C0 ] OR [STO AND NOT(CO)]
制御可能なＯＲゲートセル１００は、広い制御可能な幅のＯＲゲートを形成するために用いられる。この使用において、第１の入力Ｄ０は、ＯＲ０とＳＴ０入力を供給し、第２の入力Ｄ１は、ＯＲ１とＳＴ１入力を供給する。ＯＲout 信号は制御信号Ｃ０の状態に関係なくＤ０  ＯＲ  Ｄ１である。もし、Ｃ０＝０ならば、ＳＴout 信号はＤ０、本質的には、Ｄ０の１ビットＯＲゲートである。もし、Ｃ０＝１なら、ＳＴout はＤ０  ＯＲ  Ｄ１である。
図２は、３つの制御可能なＯＲゲートセルを用いる４ビット幅の可変幅ＯＲゲートを示す。制御可能なＯＲセル２０１、２０２および２０３は、それぞれ図１に示されるように構成される。データ入力Ｄ０は、制御可能なＯＲゲートセル２０１のＯＲ０とＳＴ０の２つの入力を供給する。データ入力Ｄ１は、制御可能なＯＲゲートセル２０１のＯＲ１とＳＴ１の２つの入力を供給する。データ入力Ｄ２は、制御可能なＯＲゲートセル２０２のＯＲ０とＳＴ０の２つの入力を供給する。データ入力Ｄ３は、制御可能なＯＲゲートセル２０２のＯＲ１とＳＴ１の２つの入力を供給する。制御ワードビットＣ０は、双方の制御可能なＯＲゲートセル２０１と２０２のＣ０入力を供給する。制御可能なＯＲゲートセル２０１のＳＴout 出力は、制御可能なＯＲゲートセル２０３のＳＴ０入力を供給する。制御可能なＯＲゲートセル２０１のＯＲout 出力は、制御可能なＯＲゲートセル２０３のＯＲ０入力を供給する。制御可能なＯＲゲートセル２０２のＳＴout 出力は、制御可能なＯＲゲートセル２０３のＳＴ１入力を供給する。制御可能なＯＲゲートセル２０２のＯＲout 出力は、制御可能なＯＲゲートセル２０３のＯＲ１入力を供給する。制御ワードビットＣ１は、制御可能なＯＲゲートセル２０３のＣ０入力を供給する。制御可能なＯＲゲートセル２０３のＳＴout 出力は、所望の制御可能な幅のＯＲゲート出力を生じる。
【０００７】
図２に示された４ビット幅の制御可能な幅のＯＲゲートは以下のように動作する。制御ワードＣ（１：０）は、所望のＯＲゲート幅を示すためにセットされる。これは、下記のテーブルに示される。
0003693748.tif 000002
Ｃ（１：０）＝（０，０）に対して、制御可能なＯＲゲートセル２０３は、そのＳＴ０入力のみをＯＲゲート入力に結合する。制御可能なＯＲゲートセル２０１は、Ｄ０入力であるそのＳＴ０入力で、制御可能なＯＲゲートセル２０３のＳＴ０入力を供給する。従って、制御可能なゲート出力はＤ０である。Ｃ（１：０）＝（０，１）に対して、制御可能なＯＲゲートセル２０３は、そのＳＴ０入力のみをＯＲゲート出力に結合する。制御可能なＯＲゲートセル２０１は、そのＳＴ１入力とそのＯＲ０入力で、制御可能なＯＲゲートセル２０３のＳＴ０入力を供給する。これは、Ｄ０  ＯＲ  Ｄ１である。従って、制御可能なＯＲゲート出力はＤ０  ＯＲ  Ｄ１である。Ｃ（１：０）＝（１，０）に対して、制御可能なＯＲゲートセル２０３は、そのＳＴ１入力とそのＯＲ０入力のＯＲをＯＲゲート出力に結合する。制御可能なＯＲゲートセル２０３のＳＴ１入力は、制御可能なＯＲゲートセル２０２のＳＴout である。Ｃ０＝０であるから、これは、Ｄ２入力である。制御可能なＯＲゲートセル２０３のＯＲ０入力は、Ｄ０  ＯＲ  Ｄ１である制御可能なＯＲゲートセル２０１のＯＲout である。従って、制御可能なＯＲゲート出力はＤ０  ＯＲ  Ｄ１  ＯＲ  Ｄ２である。Ｃ（１：０）＝（１，１）に対して、制御可能なＯＲゲートセル２０３は、そのＳＴ１入力とそのＯＲ０入力のＯＲをＯＲゲート出力に結合する。制御可能なＯＲゲートセル２０３のＳＴ１入力は、制御可能なＯＲゲートセル２０２のＳＴout である。Ｃ０＝１であるから、これは、Ｄ２  ＯＲ  Ｄ３である。制御可能なＯＲゲートセル２０３のＯＲ０入力は、Ｄ０  ＯＲ  Ｄ１である制御可能なＯＲゲートセル２０１のＯＲout である。従って、制御可能なＯＲゲート出力はＤ０  ＯＲ  Ｄ１  ＯＲ
Ｄ２  ＯＲ  Ｄ３である。図２の構造は、制御ワードに対応する多くのデータラインのＯＲを生成することが判る。特に、制御可能な幅のＯＲゲートのデータラインの数は制御ワードの値より１つ多い。
【０００８】
大きな制御可能な幅のＯＲゲートは、複数の制御可能なＯＲゲートセル１００を用いて形成される。上述のように、４ビット幅の可変幅ＯＲゲートは、２つの２ビット幅の可変幅ＯＲゲートのＯＲである。８ビット幅の可変幅ＯＲゲートは、２つの４ビット幅の可変幅ＯＲゲートなどのＯＲである。図３は、３２ビット幅の可変幅ＯＲゲートの関係を示す。
３２ビット幅の可変幅ＯＲゲートは、５つの制御信号Ｃ（４：０）を必要とする。図３および図４に示されるように、この３２ビット幅ＯＲゲートは、２つの１６ビット幅ＯＲゲートから構成される。もし、最上位の制御ビットＣ４が０であるなら、最大の位置までＯＲを実行するために必要とされるが、最大の位置は、データバスビット０−１５の下位の半分にある。従って、ＳＴout から生じるＯＲは、データバスの最下位の１６ビットからのＯＲである。これらのビットのＯＲは信号（Ｃ（３：０）によって制御される。もし、最上位の制御ビットＣ４が１であれば、最大の位置までＯＲを実行するために必要とされるが、最大の位置は、データバスビット１６−３１の上位の半分内にある。ＳＴout から生じるＯＲは、データバスの上位の半分の適当なビット数でＯＲされたデータバスＤ（１５：０）の最下位の半分のすべてのビットである。この数は、制御ワードＣ（３：０）の４つの最下位ビットによって制御される。従って、３２ビットの制御可能な幅のＯＲゲートは、２つの、１６ビットの制御可能な幅のＯＲゲートの組み合わせである。同様な理由で、図１の２ビットの制御可能な幅のＯＲゲートセル１００に低下する１６ビットの制御可能な幅のＯＲゲート、４ビットの制御可能な幅のＯＲゲートに適用できる。
【０００９】
図３および図４は、これらの原理によって構成された３２ビット幅の制御可能な幅のＯＲゲートを示す。制御可能なＯＲゲートセル３０１−３１６はデータＤ（３１：０）の３２ビットを直接受け取る。これらの制御可能なＯＲゲートセル３０１−３１６の各々は、入力データの２つの隣接ビットを受け取る。図３に示されるように、各々のデータ入力ラインは、制御可能なＯＲゲートセルのＳＴ入力とＯＲ入力を駆動する。制御可能なＯＲゲートセル３０１−３１６は、制御ワードＣ（４：０）のＣ０によって制御される。制御可能なＯＲゲートセル３０１−３１６は、信号を制御可能なＯＲゲートセル３１７−３２４に供給する。これらの制御可能なＯＲゲートセル３１７−３２４のＳＴ０とＯＲ０入力は、そのＳＴ０入力において制御可能なＯＲゲートセル３０１−３１６の第１から出力ＳＴout を、そしてそのＯＲ０入力においてこの制御可能なＯＲゲートセルから出力ＯＲout を受け取る。制御可能なＯＲゲートセル３０１−３１６の第２は、そのＳＴout 出力とＯＲout 出力からＳＴ１とＯＲ１をそれぞれ供給する。制御可能なＯＲゲートセル３１７−３２４は、制御ワードＣ（４：０）のＣ１ビットによって制御される。同様に、制御可能なＯＲゲートセル３２５−３２８は、制御可能なＯＲゲートセル３１７−３２４の出力からの入力を受け取り、制御ワードＣ（４：０）のＣ２ビットによって制御される。制御可能なＯＲゲートセル３２９と３３０は、制御可能なＯＲゲートセル３２５−３２８の出力から同様な入力を受け取り、制御ワードＣ（４：０）のＣ３ビットによって制御される。最後に、制御可能なＯＲゲートセル３３１は、制御可能なＯＲゲートセル３２９−３３０の出力から入力を受け取り、制御ワードＣ（４：０）のＣ４ビットによって制御される。制御可能なＯＲゲートセル３３１は、そのＳＴout 出力において、３２ビットの制御可能な幅のＯＲゲート出力を供給する。
【００１０】
表２は、制御ワードＣ（４：０）、データバスＤ（３１：０）の３２ビットおよび制御可能なＯＲゲートセル３３１の２つの出力ＳＴout とＯＲout 間の関係を示す。
0003693748.tif 000003
0003693748.tif 000004
0003693748.tif 000005
図５は、制御可能なＯＲゲートセル４０１−４１２が１３ビット制御可能な幅のＯＲゲートにどの様に接続されるかを示す。制御可能なＯＲゲートセル４０１−４１２は、図３および図４に示されたものと同様な方法で接続される。図５は、この技術が２の整数乗でない大きさを有する制御できる幅のＯＲゲートを形成するために用いられる。表３は制御ワードＣ（３：０）、データバスＤ（１３：０）の１３ビット、および制御可能なＯＲゲートセル４１２の２つの出力ＳＴout とＯＲout 間の関係を示す。
【００１１】
0003693748.tif 000006
１４ビット、１５ビットおよび１６ビットのＯＲゲート幅に対応する（１，１，０，１）、（１，１，１，０）および（１，１，１，１）の制御ワードＣ（３：０）の他の定義されないコード化は１３ビットの全入力幅として定義される。データ入力Ｄ１２は、制御されないＯＲゲートセル４１１のＯＲ１とＳＴ１の２つの入力に供給される。この入力は１６ビット幅の制御可能な幅のＯＲゲートにおいて用いられる他の制御可能なＯＲゲートセルを効果的にスキップする。このスキップ技術を用いて、あらゆるサイズの制御可能な幅のＯＲゲートを構成することが可能である。Ｎビット幅の制御可能な幅のＯＲゲートは、図１に示されるようなＮ−１の制御可能なＯＲゲートセルを必要とする。
【００１２】
スティッキー発生器としての本発明の制御可能な幅のＯＲゲートを用いる浮動小数点加算器装置の構成が図６に示される。これは、倍精度の動作が各サイクル毎に開始され、単精度と同様なラテンシー(latency: 待ち時間) を有していることを意味している。浮動小数点加算器ユニットは次のステージを有している。指数の比較器／減算器５０１は指数を比較し、バイナリーポイントを位置あわせするためにより小さな数を右へシフトする。スワップ・ユニットは５０２は、加算器５０４に供給する前に第１と第２のオペランドを任意に交換する。右シフトユニット５０３は指数比較器／減算器５０１から信号を受け、第２オペランドにおいて対応する右シフトを行う。スワップ・ユニット５０２は、整列が右シフトによって達成される得ることを保証することに留意されたい。２つのバイナリー数を加算あるいは減算する第１のステップは仮数の２進少数点を位置あわせすることである。もし、指数比較器／減算器５０１は、第１のオペランドがより小さな指数を有しているを決定するならば、２つのオペランドはスワップユニット５０２において交換される。いま、より小さな指数を有している任意に交換された第２のオペランドにおける右シフトの正味の量は、第１と第２のオペランドの指数間の絶対的な差である。２つのオペランドは標準的な全加算器５０４に送られる。全加算器５０４は、正規化ステップで用いられる仮数において、先導の１の位置を予測する。
【００１３】
ＩＥＥＥ標準７４５は、あたかも全ての動作は無限の精度を用いおよび指定フォーマットに丸めるかのように行われることを要求する。ＩＥＥＥ標準７４５に従うために、右桁送りユニット(shift right unit)５０３は３ビットを仮数の最下位に加える。最初の２つは精度の正規の余分ビットである。第３のビットは、最も小さな入力数の右桁送り中に、仮数の最後をシフトオフ(shifted off) した全てのビットの論理ＯＲである。
加算／減算の完了後、仮数は、それが開始し、隠れビット(hidden bit)が“１”でないときより３ビット長い。これは、２つの仮数が減算、あるいは反対の符号を有する２つの数の加算されたかどうかを生じる。左桁送りユニット(shift left unit) ５０５は、隠れビットが“１”になるまで仮数を左に桁送りする。仮数を正規化するために必要な桁送りの数は全加算器５０４によって生成される。もし、仮数が左に桁送りされるなら、指数減算器５０６は、指数から桁送りの総数を減算することによって、新しい仮数を表す指数を減らす。これは、指数が１のバイアスされた値(biased value)である最小の指数値以下にならないならば、満足である。もし、指数がその最小値以下になるなら、その数は正規化されない。左桁送りが、指数が１になるまで、許されるか、あるいは桁送りが完了してしまう。左桁送りユニット５０５からの数はできるだけ多く正規化され、指定の精度に丸めるられるように用意する。
【００１４】
丸め装置５０７は、スティッキービット、符号および丸めモードと共に精度の３つの拡張されたビットを用いる。丸めモードは、ＩＥＥＥ標準７５４によって定義され、ユーザーによって選らばれる。４つの丸めモードは、１）正の無限大に向かって丸める、２）負の無限大に向かって丸める、３）最も近い整数に向かって丸める、および４）切捨てとして知られるように、ゼロに向かって丸めることである。最も近い整数への丸め（半分調整）およびゼロへの丸め（切捨て）は、最も普通の丸めモードである。指示された丸めモードは、既知の方法で丸めのエラーを制御するために標準的に用いられる。ゼロへの丸めモードは簡単であり、入力仮数は指定の精度に切捨てられる。最も近い整数への丸めモードは、最も近い値に、あるいは例え厳密に途中であっても、丸められるように示される。最も近い整数への丸めモードにおいて、仮数は、次の式が真であれば、増加される。
切上げ＝第１ビット AND (第２ビット OR 第３ビット OR スティッキー）
（ round up = 1st-bit AND (2nd-bit OR 3rd-bit OR sticky) ）
スティッキー発生器５０８は、スティッキービットを丸め装置５０７に供給する。スティッキー発生器５０８は、指数比較器／減算器５０１からの桁送り量とスワップ・ユニット５０２からの小さな仮数を受け取る。スティッキー発生器５０８は、上記の形式の制御可能な幅のＯＲゲートから成っている。制御可能な幅のサイズは、浮動小数点加算器のために選択された精度に依存する。ＩＥＥＥ−７４４の浮動小数点標準は、２２ビットの仮数の少数点部を有する単精度を定義する。右桁送りは隠れビットも桁送りすることができるので、単精度の算術のためのスティッキー発生器は２３ビットを持つ必要がある。ＩＥＥＥ−７４４の浮動小数点標準は５２ビットの仮数の少数点部を有する倍精度を定義する。従って、倍精度の算術のためのスティッキー発生器は５３ビットを持つ必要がある。図６に示された浮動小数点ユニットは、倍精度の浮動小数点数で動作し、桁送り量が倍精度の仮数より大きな桁送りを特定することができる６ビットを有していることに留意されたい。
【００１５】
スワップ・ユニット５０２から受け取った仮数の最下位ビットは、制御可能な幅のＯＲユニットに供給されたデータの最下位ビットとして働く。桁送り量より少ないものは、制御可能な幅のＯＲユニットに対する制御ワードとして働く。その結果のＯＲは、丸めプロセスにおいて使用するめの丸め装置５０７に供給されるスティッキービットである。
以上の記載に関連して、以下の各項を開示する。
(1) Ｎビット幅の制御可能な幅のＯＲゲートであって、
Ｎビット幅のデータ入力ポートと、
Ｍビットの制御ワードを受け取る制御ワード入力ポートと、ここでＭは、ビットの最も近い整数まで丸められたlog2Ｎに等しい、
Ｎ−１の制御可能なＯＲゲートセル、各制御可能なＯＲゲートセルは、ＯＲ０入力、ＳＴ０入力、ＯＲ１入力、ＳＴ１入力、制御ビット入力、ＯＲout 出力およびＳＴout 出力を有し、各制御可能なＯＲゲートセルは：
前記ＯＲ０入力に接続された第１の入力、前記ＯＲ１入力に接続された第２の入力および前記ＯＲout 出力に接続された出力を有する第１のＯＲゲート；
前記ＯＲ０入力に接続された第１の入力、前記ＳＴ１入力に接続された第２の入力および出力を有する第２のＯＲゲート；
前記第２のＯＲゲートの前記出力に接続された入力、前記ＳＴout 出力に接続された出力、および前記制御ビット入力に接続された制御ゲートを有する第１のパスゲート；
前記制御ビット入力に接続された入力、および出力を有するインバータ；
前記ＳＴ０入力に接続された入力、前記ＳＴout 出力に接続された出力、および前記インバータの出力に接続された制御ゲートを有する第２のパスゲート
を有し、
前記データポートの対応ビットを接続した前記ＯＲ０とＳＴ０入力、および前記データ入力ポートの次の高いビットに接続された前記ＯＲ１とＳＴ１入力を有する前記制御可能なＯＲゲートセルの第１の層であって、前記１の層の各制御可能なＯＲゲートセルの前記制御ビット入力は、前記制御ワード入力ポートの最下位のビットに接続され、
前の層の第１の制御可能なＯＲゲートセルの前記ＯＲout 出力に接続された前記ＯＲ０入力、前記前の層の前記第１の制御可能なＯＲゲートセルのＳＴout 出力に接続された前記ＳＴ０入力、前記前の層の第２の制御可能なＯＲゲートセルの前記ＯＲout 出力に接続された前記ＯＲ１入力、前記前の層の前記第２の制御可能なＯＲゲートセルの前記ＳＴout 出力に接続された前記ＳＴ１入力を有する前記制御可能なＯＲゲートセルの続く層であって、各層の各制御可能なＯＲゲートセルの前記制御ビット入力は、前記制御ワード入力ポートの対応ビットに接続され、および
前記制御可能な幅のＯＲゲート出力を形成する最終層の単一の制御可能なＯＲゲートセルの前記ＳＴout と、
を有する制御可能な幅のＯＲゲート
（２）Ｎビット幅の制御可能な幅のＯＲゲートであって、
Ｎビット幅のデータ入力ポートと、
Ｍビットの制御ワードを受け取る制御ワード入力ポート、ここで、Ｍはビットの最も近い整数まで丸められたlog2N に等しく、
Ｎ−１の制御可能なＯＲゲートセル、各制御可能なＯＲゲートセルは、ＯＲ０入力、ＳＴ０入力、ＯＲ１入力、ＳＴ１入力、制御ビット入力、ＯＲout 出力およびＳＴout 出力を有し、各制御可能なＯＲゲートセルは、次の論理機能を達成し、
ＯＲout ＝ＯＲ０  ＯＲ  ＯＲ１
ＳＴout ＝[(ST1 OR OR0) AND C] OR [ST0 AND NOT(C)]
ここで、ＯＲ０は前記ＯＲ０入力における信号、ＳＴ０は前記ＳＴ０入力における信号、ＯＲ１は前記ＯＲ１入力における信号、ＳＴ１は前記ＳＴ１入力における信号、ＯＲout は前記ＯＲout 出力に発生する信号、ＳＴout は前記ＳＴout 出力に発生する信号、およびＣは前記制御ビット入力である、
前記データポートの対応ビットを接続した前記ＯＲ０とＳＴ０、および前記データ入力ポートの次の高ビットに接続された前記ＯＲ１とＳＴ１を有する前記制御可能なＯＲゲートセルの第１の層、前記制御ワード入力ポートの最下位ビットい接続された前記第１の層の各制御可能なＯＲゲートセルの前記制御ビット入力、
前の層の第１の制御可能なＯＲゲートセルの前記ＯＲout 出力に接続された前記ＯＲ０入力、前記前の層の前記第１の制御可能なＯＲゲートセルの前記ＳＴout 出力に接続された前記ＳＴ０入力、前記前の層の第２の制御可能なＯＲゲートセルの前記ＯＲout 出力に接続された前記ＯＲ１入力、前記前の層の前記第２の制御可能なＯＲゲートセルの前記ＳＴout 出力に接続された前記ＳＴ１入力、前記制御ワード入力ポートの対応ビットに接続された各層の各制御可能なＯＲゲートセルの制御ビット入力、および
前記制御可能な幅のＯＲゲート出力を形成する最後の層の単一の制御可能な幅のＯＲゲートセルの前記ＳＴout 、
を有するＮビット幅の制御可能な幅のＯＲゲート。
（３）２進化制御ワード入力より１つ多くに相当するＮビットデータバス上の入力データの制御可能な幅の論理ＯＲを形成する方法であって、
ａ）前記入力データのビットの各対に対し、
前記ビット対の第１の入力ビットと第２の入力ビットの論理ＯＲとしてＯＲ出力を形成し、
もし、前記２進化制御ワードの最下位ビットが“１”であるなら、前記ビット対の前記第１の入力ビットと前記第２の入力ビットの論理ＯＲとして、および前記２進化制御ワードの最下位ビットが“０”であるなら、前記第１の入力ビットとして、ＳＴ出力を形成し、
ｂ）前のＯＲ出力とＳＴ出力の各対に対して、
前のＯＲ出力とＳＴ出力の前記対の第１の前のＯＲ出力と第２の前のＯＲ出力の論理ＯＲとして、次のＯＲ出力を形成し、
もし、前記２進化制御ワードの対応ビットが“１”であるなら、前のＯＲ出力とＳＴ出力の前記対の第１の前のＯＲ出力と第２の前のＳＴ出力の論理ＯＲとして、および前記２進化制御ワードの最下位ビットが“０”であるなら、前記第１の前のＳＴ出力として、次のＳＴ出力を形成し、
ｃ）次のＯＲ出力と次のＳＴ出力の続く形成のために、前記次のＯＲ出力は前のＯＲ出力を形成し、および前記次のＳＴ出力は前のＳＴ出力を形成し、且つ
ｄ）次のＯＲ出力と次のＳＴ出力の最後の形成の前記ＳＴ出力は所望の制御可能な幅のＯＲゲート出力である、
ことを特徴とする方法。
（４）制御可能な幅のＯＲゲートは複数の制御可能なＯＲゲートセル（１００）を採用する。もし、ＯＲされるべきデータの最大幅がＮビットであれば、Ｎ−１の制御可能なＯＲゲートセルが必要である。各々の制御可能なＯＲゲートセル（１００）は、４つのデータ入力、即ちＯＲ０、ＳＴ０、ＯＲ１とＳＴ１、および単一の制御入力Ｃ０を有する。各制御可能なＯＲゲートセルは２つの出力、即ちＯＲout とＳＴout を有する。第１のＯＲゲート（１０１）はＯＲout 出力として無条件にＯＲ０とＯＲ１入力のＯＲを形成する。第２のＯＲゲート（１０２）は、ＯＲ０入力とＳＴ１入力のＯＲを形成する。２つのパスゲート（１０４、１０５）はインバータによって、制御入力Ｃ０上の信号により反対符号に制御される。もし、Ｃ０が１であれば、第２のＯＲゲート（１０２）の出力（OR0 OR ST1) は、第１のパスゲート（１０４）を介してＳＴout を出力するために供給される。もし、Ｃ０が０であれば、ＳＴ０入力は、第２のパスゲート（１０５）を介してＳＴout を出力するために供給される。制御可能なＯＲゲートセル（１００）は広い制御可能な幅のＯＲゲートを形成するために用いられる。セルの各層は制御ワードの対応ビットによって制御される。最後の層の単一セルのＳＴout は制御可能な幅のＯＲゲート出力を形成する。
【図面の簡単な説明】
【図１】本発明による２ビット制御可能なＯＲゲートセルにおける回路を示す。
【図２】図１に示された、３つの制御可能なＯＲゲートセルを用いた４ビット幅の制御可能な幅のＯＲゲートの構成を示す。
【図３】図１に示された、３１の制御可能なＯＲゲートセルを用いた３２ビット幅の制御可能な幅のＯＲゲートの構成の一部を示す。
【図４】図１に示された、３１の制御可能なＯＲゲートセルを用いた３２ビット幅の制御可能な幅のＯＲゲートの構成の他の一部を示す。
【図５】図１に示された、１２の制御可能なＯＲゲートセルを用いた１３ビット幅の制御可能な幅のＯＲゲートの構成の他の一部を示す。
【図６】本発明の制御可能な幅のスティッキー発生器を用いた浮動少数点演算の論理装置のアーキテクチュアを示す。
【図１】
0003693748.tif 000007
【図２】
0003693748.tif 000008
【図３】
0003693748.tif 000009
【図４】
0003693748.tif 000010
【図５】
0003693748.tif 000011
【図６】
0003693748.tif 000012