(57)【特許請求の範囲】
【請求項１】
算術または論理演算の結果の（ｎ−１）番目のビットが論理的１であるときに、前記結果のｎ番目のビットが論理的ゼロであるかどうかを、計算結果に依存せずに検出する法であって、
ａ）  少なくとも２ビットの演算数（ｏｐｅｒａｎｄ）  長さを持つ第１演算数Ａを１ビット・セルのグループで受け、
ｂ）  少なくとも２ビットの演算数長さを持つ第２演算数Ｂを前記１ビット・セルのグループで受け、
ｃ）  前記第１演算数Ａｎ−１  の（ｎ−１）番目のビットからと、前記第２演算数Ｂｎ−１  の（ｎ−１）番目のビットから、発生信号Ｇｎ−１  を前記１ビット・セルのグループの（ｎ−１）番目のセルで計算し、
ｄ）  前記発生信号Ｇｎ−１  を前記１ビット・セルのグループのｎ番目のセルで受け、
ｅ）  前記第１演算数Ａｎ  のｎ番目のビットからと、前記第２演算数Ｂｎ  のｎ番目のビットからと、前記Ｇｎ−１  から、１ビット・ゼロ信号Ｚｎ  を前記１ビット・セルのグループのｎ番目のセルで計算し、前記１ビット・ゼロ信号は
【数１】
0003560623.tif 000034
で定義される、
段階を含む方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は一般にコンピュータの算術論理演算装置に関し、より詳細には算術または論理計算の結果を検出する方法に関する。
【０００２】
【従来の技術】
計算の分野では、プログラムの実行の際の分岐の決定は、その前の計算結果に基づいて行われることが多い。一般のコンピュータは算術論理演算装置（ＡＬＵ）を備え、２つ以上の「Ｎ」ビットの演算数（ｏｐｅｒａｎｄ）  に数学的演算を行う。ただし、「Ｎ」は、各演算数のビット総数を表す。また「ｎ」番目のビットを参照する場合もある。ただし「ｎ」は指標（ｉｎｄｅｘ）  値で、その値は０からＮ−１までである。
【０００３】
【発明が解決しようとする課題】
一般に、計算の結果ＡＬＵ＝０であると分岐を決定する。多くの場合、計算結果がゼロであれば分岐を行い、ゼロでなければプログラムは次の命令を引き続き実行する、またはその逆である。これまでこの分野では、算術計算の結果のテストは実際の計算結果に頼っている。
【０００４】
【課題を解決するための手段】
この発明では、ゼロ条件（ＡＬＵ＝０）信号のタイミングの方が計算結果自体よりも一層厳密であると考える。この発明の望ましい実施態様では、算術または論理条件信号を、実際の計算結果が出る前に計算する。
【０００５】
この発明の望ましい実施態様では、ＡＬＵの各ビットに対する信号（ここでは１ビット・ゼロ信号と呼ぶ）を生成するが、この算術または論理条件信号は計算結果とは独立に計算してよい。
【０００６】
ｎを０からＮ−１までとすると、ｎ番目の１ビット・ゼロ信号は各演算数のｎ番目および（ｎ−１）番目のビットにだけ依存することが望ましい。最下位（ゼロ番目）の１ビット・ゼロ検出器は、各演算数のゼロ番目のビットとけた上げ入力（ｃａｒｒｙ−ｉｎ）信号Ｃｉｎだけに依存する。というのは、最下位の１ビット・ゼロ検出器にとっては（ｎ−１）番目のビットはないからである。
【０００７】
この発明の望ましい実施態様では、全ての１ビット・ゼロ信号の論理積をとり、計算結果とは独立に全体のＡＬＵ＝０信号を生成する。ここに説明する新規な考え方は、加算器設計、減算器設計、ＡＬＵ設計に取り入れてよい。
【０００８】
これらのどの装置設計においてもまたその他においても、ここに説明する新規な考えは、計算結果が「０」すなわち全てのビットがゼロ、計算結果が「１」すなわち全てのビットが１、ＳＵＢＦＩＥＬＤ＝「０」または「１」を含む演算条件を検出するのに用いてよい。この論理を拡張すると、任意の選択された論理結果を既知の値と比較して、前記論理結果が前記既知の値と等しいかどうかをすぐ決定することができる。
【０００９】
この発明の望ましい一実施態様において、ゼロ検出回路を説明する。この回路は、１組の１ビット・ゼロのセルを備え、第１演算数Ａ、第２演算数Ｂ、およびＣｉｎを入力とし、１組の１ビット・ゼロ信号Ｚを発生する。組合わせ回路がこの１組の１ビット・ゼロ信号を受けて、この１ビット・ゼロ信号の既知の関数である選択された出力を出す。
【００１０】
望ましい実施態様では、組合わせ回路は論理積機能であり、全ての１ビット・ゼロ信号が１になる（ｐｏｓｉｔｉｖｅｌｙ  ａｓｓｅｒｔｅｄ）  条件を検出する。この発明の各種の望ましい実施態様において、１ビット・ゼロ信号は加算、減算または論理演算の操作のゼロ条件を検出してよい。その他の装置、システム、方法も開示する。
【００１１】
【実施例】
図１に、従来の技術のＡＬＵ＝０回路２０の略図を示す。このＡＬＵ＝０回路２０は、ＡＬＵ２２の結果の出力であるＲ０  からＲＮ−１  を受ける。ＡＬＵ２２は、その演算数Ａ０  からＡＮ−１  とＢ０  からＢＮ−１  に特定の算術演算を行う。これらの演算は、加算や減算などの算術演算でも、論理積または論理和などの特定の論理演算でもよい。
【００１２】
ＡＬＵ＝０回路２０は組合わせ論理回路から成り、この論理回路をＮビットの論理的ＮＯＲゲート２４で示す。否定論理和機能の定義により、このＮＯＲゲート２４のＡＬＵ＝０出力は、ＮＯＲゲート２４の全ての入力がゼロ（従って計算結果がゼロ）の場合だけ１になる。
【００１３】
一般にこのＮビットのＮＯＲゲート２４は、より小さいが同じ機能を持つゲート網で実現することができる。この構造の難点は、ＡＬＵ＝０条件の決定を行う前に算術または論理計算を完了して、ＡＬＵ２２から出力を出しておかなければならないということである。
【００１４】
図２は別の従来の技術であるＡＬＵ＝０回路３０の略図であって、米国特許番号４，８１５，０１９でボスハート（Ｂｏｓｓｈａｒｔ）が開示したものである。このＡＬＵ＝０回路３０は、実際にはＡＬＵ≠０を計算し、ＡＬＵの各部分３２はけた上げ入力信号が入る前にそれぞれの予備的ＡＬＵ≠０信号を得ることによって、けた上げ選択先取りＡＬＵで動作する。この予備的ＡＬＵ≠０出力は、ＯＲゲート３４の出力である。
【００１５】
ＯＲゲート３４は、関連するＡＬＵの部分３２の最下位ビットと、関連するＡＬＵの部分３２からのＲ≠０信号と、もしあればその前の部分のＯＲゲート３４からのＡＬＵ≠０を受ける。従ってけた上げ信号がＡＬＵの部分３２全体でリプル（ｒｉｐｐｌｅ）状態になるとＡＬＵ≠０はＯＲゲート３４を通してＡＬＵ全体でリプル状態になる。けた上げ入力信号が入ると、その部分の最下位ビットと最終的な比較を行い、最終のＡＬＵ≠０信号を発生する。
【００１６】
任意のＡＬＵの部分３２におけるＲ≠０計算は、その部分のＡＬＵの結果が完了した後、１ゲート遅れて完了する。最終のＡＬＵ≠０計算は、けた上げ選択先取りＡＬＵの計算が完了した後、１ゲート遅れて完了する。必要があればＡＬＵ≠０信号を反転すればＡＬＵ＝０信号が得られることは、この分野の技術者には明かである。
【００１７】
図３は、従来の加算器の１ビット加算器セルの略図である。各セルのけた上げ出力（ｃａｒｒｙ−ｏｕｔ）  Ｃｎ  が次の最上位の隣接セルのけた上げ入力になるように接続して、Ｎ個のセルで全体を構成する。最上位（Ｎ−１番目）のセルのＣｎ  はＣｏｕｔ  信号で、Ｎビットより大きい演算数の、更に上位のビットで動作する他の加算器で用いる。
【００１８】
最下位（ゼロ番目）のセルのＣｎ−１  はＣｉｎ信号で、Ｎビットより大きい演算数の、更に下位のビットで動作する追加の加算器からのＣｏｕｔ  信号が入る。回路４０は、１ビット演算数Ａｎ  およびＢｎ  と、下位の１ビット・セルからのけた上げ入力信号Ｃｎ−１  とによって１ビット和Ｓｎ  を計算する。最下位１ビット・セルの場合はＣｎ−１  はＣｉｎである。
【００１９】
またこの１ビット・セルは、一般に「発生」信号と呼ぶＧｎ  と、「伝播」信号と呼ぶＰｎ  の、２つの内部信号を発生する。伝播セル４２は論理的な排他的ＯＲゲートで、その機能は式
【数２】
0003560623.tif 000002
で表される。ただし、
【数３】
0003560623.tif 000003
は排他的論理和機能を表す符号である。排他的論理和機能の定義により、Ａｎ  ，Ｂｎ  ＝０，０または１，１であればＰｎ  ＝０であり、Ａｎ  ，Ｂｎ  ＝０，１または１，０であればＰｎ  ＝１である。
【００２０】
発生セル４４は論理的なＡＮＤゲートで、その機能は式Ｇｎ  ＝Ａｎ  ・Ｂｎ  で表される。ただし、・は論理積機能の符号である。論理積機能の定義により、Ａｎ  ，Ｂｎ  ＝０，０または０，１または１，０であればＧｎ  ＝０、またＡｎ  ，Ｂｎ  ＝１，１であればＧｎ  ＝１である。１ビットの和Ｓｎ  は別の排他的ＯＲゲート４６からの出力で、
【数４】
0003560623.tif 000004
である。
【００２１】
けた上げ出力Ｃｎ  は、Ｇｎ  とＡＮＤゲート５０の出力を入力とするＯＲゲート４８の出力と定義される。ＡＮＤゲート５０の入力は、Ｐｎ  とＣｎ−１  である。出力Ｃｎ  は、Ｃｎ−１  とＰｎ  とＧｎ  からＣｎ  ＝Ｇｎ  ＋Ｐｎ  ・Ｃｎ−１  で定義される。ただし、「＋」は論理和を表す符号である。言い換えると、発生信号（Ｇｎ  ）の発生と、伝播信号（Ｐｎ  ）の発生とけた上げ入力（Ｃｎ−１  ）の存在との論理積と、の論理和でけた上げが発生する。
【００２２】
図４はＡＬＵ＝０回路６０の望ましい実施態様の略図を示す。図４は入力Ａ０  からＡＮ−１  と、Ｂ０  からＢＮ−１  とを受けるＮビットＡＬＵ＝０回路６０を示す。ただし、ｎは０からＮ−１までである。Ｎ個の各１ビット・ゼロのセル６２の入力は、Ａｎ  、Ｂｎ  、Ｋｎ−１  である。ただし、ｎは０からＮ−１である。Ｋｎ  は「キル（ｋｉｌｌ）」信号で、以下に説明する。
【００２３】
ｎ番目の１ビット・ゼロのセルは、１ビット・ゼロ信号Ｚｎ  と、次の最上位（ｎ＋１）セルに入力する「キル」信号Ｋｎ  とを出力する。図４にＮビットのＡＮＤゲート６４で示す組合わせ回路は、ｎ＝０からＮ−１までのＺｎ  が全て１になるとＡＬＵ＝０信号を１つ出力する。
【００２４】
このＮビットのＡＮＤゲート６４は一般にＮビットより少ないゲート網で動作する。これはディジタル論理回路設計の技術者には明かである。この構造の利点は、組合わせ論理ゲート遅れの数段階以内でＡＬＵ＝０信号を発生できることである。
【００２５】
論理ゲートの遅れの大きさはｌｏｇ２  Ｎに１ゲート遅れを掛けた程度であるが、従来のＡＬＵ＝０検出回路で発生する遅れの大きさは計算遅れであって、これはＡＬＵ＝０の計算結果をデコードするのに必要な論理ゲート遅れ（ｌｏｇ２  Ｎ）に加えて、ほぼ１＋ｌｏｇ２  Ｎから２Ｎの値に１ゲート遅れを掛けた値だけ変動する。
【００２６】
図４の望ましい実施態様のＡＬＵ＝０回路は、もしあればＡＬＵの既存の伝播および発生回路を、新しい１ビット・ゼロとキルと組合わせＡＬＵ＝０と共に用いて、ＡＬＵ内でＡＬＵ＝０信号を発生するのに用いることができる。
【００２７】
または望ましい実施態様の回路は、それぞれのＰＧＫＺ（伝播、発生、キル、ゼロ）回路を用いて個別の装置で実現し、Ａ０  からＡＮ−１  とＢ０  からＢＮ−１  とＣｉｎを受け、独立のＡＬＵ＝０回路を形成することができる。
【００２８】
第５図は、望ましい実施態様のＡＬＵ＝０回路を含んだ望ましい実施態様の回路７０を高水準の略図で示す。この回路７０は、ｎ＝０からＮ−１に対する入力Ａｎ  とＢｎ  とけた上げ入力信号Ｃｉｎとを受け、それから生じるｎ＝０からＮ−１に対するＲｎ  とＡＬＵ＝０とを出力する。入力Ａｎ  とＢｎ  はＰＧＫの部分７２に入力し、そこからｎ＝０からＮ−１までに対する伝播信号Ｐｎ  、発生信号Ｇｎ  、キル信号Ｋｎ  を発生する。Ｐｎ  、Ｇｎ  、Ｋｎ  信号は次のように定義される。
【数５】
0003560623.tif 000005
【００２９】
略図と機能を示した前記回路はいろいろの形で実現することができ、ディジタル回路設計の技術者にはよく知られている。１ビット・ゼロのセル配列７４はＰＧＫ信号を受け、Ｐｎ  およびＫｎ−１  に基づいてゼロ信号Ｚｎ  を発生する。１ビット・ゼロの配列７４の最下位ビットでは、Ｋｉｎ（以下に説明する）はＫｎ−１  である。Ｚｎ  信号は式
【数６】
0003560623.tif 000006
で表される。
【００３０】
排他的論理和
【数７】
0003560623.tif 000007
機能の定義により、Ｐｎ  ，Ｋｎ−１  ＝０，０または１，１ならばＺｎ  ＝０であり、Ｐｎ  ，Ｋｎ−１  ＝０，１または１，０であればＺｎ  ＝１である。１ビット・ゼロのセル配列７４はＰＧＺ（伝播、発生、ゼロ）信号を通す。１ビット・ゼロのＡＮＤトリー（ｔｒｅｅ）７６はゼロ信号を受け、ｎ＝０からＮ−１までに対して全てＺｎ  ＝１であればＡＬＵ＝０信号を１として出力する。
【００３１】
組合わせ論理回路７６はＡＮＤトリーであることが望ましく、ＰＧ信号をそのまま通す。作図の便宜上、ＰＧ信号は１ビット・ゼロのＡＮＤトリーを単に通すように示しているが、これらの信号をＡＮＤトリー７６の中や近くを通す必要はない。
【００３２】
更に図５において、加算器回路７８はＰＧ信号を受け、この技術でよく知られている方法でｎ＝０からＮ−１までに対する演算結果Ｒｎ  を発生する。例えばこの加算器７８は、ボスハートが米国特許番号４，８１５，０１９で説明しているけた上げ選択先取り加算器であってよい。
【００３３】
または図３のＮ個の部分セルから成るリプルけた上げ加算器（ｒｉｐｐｌｅ  ｃａｒｒｙ  ａｄｄｅｒ）であってよく、この場合排他的ＯＲゲート４６はＣｎ−１  とＰｎ  からＳｎ  を計算し、ＯＲゲート４８とＡＮＤゲート５０はＰｎ  とＧｎ  からＣｎ  を計算する（ｎは０からＮ−１まで）。加算器回路７８は実際は算術／論理回路として動作し、ＰＧＫ発生装置７２からＰｎ  およびＧｎ  を発生するのに用いた方法に応じて加算、減算、論理演算の結果を発生してよい。
【００３４】
この発明の望ましい実施態様において、加算器回路７８の動作は実行中の演算には依存しない。望ましい実施態様では、全ての演算特有の機能はＰＧＫ発生装置７２内で行われる。
【００３５】
更に図５に示す望ましい実施態様の加算器は、下位の算術および論理回路からＣｉｎ信号を受け、ＰＧＫ発生装置７２と１ビット・ゼロのセル配列７４でＫｉｎとして用いる信号を反転するためのインバータ８０を備える。
【００３６】
次に図６に、上に述べた望ましい実施態様のけた上げトリー（ｃａｒｒｙ  ｔｒｅｅ）７６を示す。けた上げトリー７６のこの実施態様ではＮを３２ビットとしたが、Ｎはどんな数でもよい。この実施態様のけた上げトリー７６は、Ｎ個の１ビット・ゼロ信号Ｚｎ  からＡＬＵ＝０信号を出す３２ビットの論理積機能である。
【００３７】
けた上げトリー７６は、４入力ＡＮＤゲート９０を１個と、８入力ＡＮＤゲート９２を４個備える。この技術でよく知られているように、この８入力ＡＮＤゲート９２は、２個の４入力ＮＡＮＤゲート９６とその出力を受ける１個の２入力ＮＯＲゲート９４で形成することができる。この分野の一般的技術を用いれば、３２ビットの論理積の機能は多くの回路で実現することができる。
【００３８】
次に図７は、加算器用の第１のＰＧＫ発生回路７２の実施態様の一例と、共に用いる１ビット・ゼロのセル７４の実施態様の一例を部分的に示す。図７の実施態様は、ＰＧＫ発生回路７２のｎ番目のビットと１ビット・ゼロのセル配列７４のｎ番目のビットに用いる１ビットＰＧＫＺセル１００である。
【００３９】
ＰＧＫＺセル１００は、第１および第２排他的ＯＲゲート１０２，１０４と、ＡＮＤゲート１０６と、ＮＯＲゲート１０８と、入力Ａｎ  、Ｂｎ  、Ｋｎ−１  とを備える。このＰＧＫＺセル１００の出力はＰｎ  、Ｇｎ  、Ｋｎ  、Ｚｎ  である。最下位ビット（すなわちｎ＝０）では、ＫｉｎはＫｎ−１  である。図に概略を示すように、このセルの機能は次のように表される。
【数８】
0003560623.tif 000008
【００４０】
次に図８は、減算器用の第２のＰＧＫ発生回路７２の実施態様の一例と、共に用いる１ビット・ゼロのセル７４の実施態様の一例を部分的に示す。図８の実施態様は、ＰＧＫ発生回路７２のｎ番目のビットと、１ビット・ゼロのセル配列７４のｎ番目のビットに用いる１ビットＰＧＫＺセル１１０である。
【００４１】
ＰＧＫＺセル１１０は、排他的ＯＲゲート１１２と、排他的ＮＯＲゲート１１４と、第１および第２ＮＯＲゲート１１６，１１８と、第１および第２インバータ１２０，１２２とを備える。ＰＧＫＺセル１１０の入力はＡｎ  、Ｂｎ  、Ｋｎ−１  である。このＰＧＫＺセル１１０の出力はＰｎ  、Ｇｎ  、Ｋｎ  、Ｚｎ  である。最下位ビット（すなわちｎ＝０）では、ｋｉｎはＫｎ−１  である。図に概略を示すように、このセルの機能は次のように表される。
【数９】
0003560623.tif 000009
【００４２】
次に図９は、汎用ＡＬＵ用の第３のＰＧＫ発生回路７２の実施態様の一例と、共に用いる１ビット・ゼロのセル７４の実施態様の一例を部分的に示す。図９の実施態様は、ＰＧＫ発生回路７２のｎ番目のビットと１ビット・ゼロのセル配列７４のｎ番目のビットに用いる１ビットＰＧＫＺセル１３０である。
【００４３】
ＰＧＫＺセル１３０は、排他的ＯＲゲート１３２と、３入力ＡＮＤゲート１３４と、ＮＡＮＤゲート１３６と、ＯＲゲート１３８と、第１および第２インバータ１４０，１４２と、第１および第２および第３ＡＮＤ・ＯＲ・インバータ・ゲート１４４，１４６，１４８とを備える。各ＡＮＤ・ＯＲ・インバータ・ゲートは、否定論理和機能１５０と１対の論理積機能１５２で機能的に示している。ＰＧＫＺセル１３０の入力は、Ａｎ  、Ｂｎ  、Ｋｎ−１  および特殊ＡＬＵ制御信号のＣ０、Ｃ１、Ｃ２、Ｃ３、ＡＲＩＴＨである。
【００４４】
このＰＧＫＺセル１３０の出力はＰｎ  、Ｇｎ  、Ｋｎ  、Ｚｎ  である。最下位ビット（すなわちｎ＝０）では、ＫｉｎはＫｎ−１  である。図に概略を示すように、このセルの機能は次のように表される。
【数１０】
0003560623.tif 000010
【００４５】
Ｐｎ  、Ｇｎ  、Ｋｎ  、Ｚｎ  に関する上記の各式と図９とをよく見ると、信号ＡＲＩＴＨは算術演算と論理演算のどちらかを選ぶ働きをしていることが分かる。Ｋｎ  を検討すると、ＡＲＩＴＨが０であればＫｎ  が他の信号入力に関わらず１であることが分かる。
【００４６】
「キル」信号Ｋは機能的に「けた上げ」機能の逆なので、Ｋが１ということは論理演算中はけた上げが起こらないということである。この機能は、よく知られている論理設計の機能の原則と一致する。
【００４７】
次に図１０は、Ｎ個のＰＧＫ１セルを備える加算器のＡＬＵ＝１回路の別の実施態様のＰＧＫ１セル１６０の概略を示す。この別の実施態様のＰＧＫ１は、伝播信号と、次の下位ビット（ｎ−１番目）からけた上がり入力した発生信号とを用いて、１ビット１信号Ｚｎ  ’を決定（ａｓｓｅｒｔ）する。
【００４８】
このＰＧＫ１セル１６０は、第１および第２排他的ＯＲゲート１６２，１６４と、ＮＯＲゲート１６６と、ＡＮＤゲート１６８とを備える。ＰＧＫ１セル１６０の入力はＡｎ  、Ｂｎ  、Ｇｎ−１  である。このＰＧＫ１セル１６０の出力はＰｎ  、Ｇｎ  、Ｋｎ  、Ｚｎ  ’である。最下位ビット（すなわちｎ＝０）では、Ｇｎ−１  はゼロである。図に概略を示すように、このセルの機能は次のように表される。
【数１１】
0003560623.tif 000011
【００４９】
図１１は上に述べたＡＬＵ回路として動作するＳＵＢＦＩＥＬＤ＝０回路１７０を示すが、サブフィールドの最下位ビットの和（Ｓｎ  、この場合ｎ＝４）と、ＮＡＮＤゲート１７４の出力であるＳＵＢＡＬＵ＝０を２入力ＮＯＲゲート１７２に受ける。ＮＡＮＤゲート１７４はサブフィールドの残りの１ビット・ゼロ信号（Ｚｎ  、ただしこの場合ｎ＝５，６，７）の否定的論理積を行う。
【００５０】
一般にＳＵＢＦＩＥＬＤ＝０回路は、サブフィールドの最下位ビット以外の全ての１ビット・ゼロのセルの出力の否定的論理積を行い、次にその結果とサブフィールドのＡＬＵ出力との否定論理和をとることによって実現できる。ＳＵＢＦＩＥＬＤ＝１は同様にして実現することができる。
【００５１】
全てが０または全てが１以外の一定値を検出するには、望ましい実施態様の回路をごくわずかに変更するだけでよい。例えば、加算器のＡＬＵ＝０の実施態様では、１ビット・ゼロ信号は
【数１２】
0003560623.tif 000012
で定義される。言い換えると、次の下位（ｎ−１）ビットがゼロであれば、ｎ番目のビットのゼロ検出は、ビット（ビットｎ）の伝播出力と次の下位（ｎ−１）ビットのキル出力との排他的論理和で行われる。
【００５２】
ところでビットｎ−１がゼロであれば、１ビット・ゼロ信号の補数はビットｎで１を検出する。この論理は式
【数１３】
0003560623.tif 000013
で表される。同様に、
【数１４】
0003560623.tif 000014
はビットｎ−１も１である場合にビットｎで１を検出し、
【数１５】
0003560623.tif 000015
はビットｎ−１が１である場合にビットｎでゼロを検出するのに用いることができる。
【００５３】
上の論理は次のように要約することができる。任意の所望の一定出力の検出器において、１ビット・ゼロのセルに相当するものを作ってビットｎで所要の出力を検出するには、探索するパターンは全部で４つある。これはｎビットで可能な値が２つあり、ビットｎ−１で可能な値が２つあるからである。４条件の式は次の表に要約される。
【表１】
0003560623.tif 000016
【００５４】
上の論理式の回路は次の通りである。図７はビットｎ＝０とビットｎ−１＝０のときの
【数１６】
0003560623.tif 000017
に関する１ビット・ゼロのセルの論理回路を示す。図１２はビットｎ＝０とビットｎ−１＝１のときので
【数１７】
0003560623.tif 000018
に関する１ビット・ゼロのセルの論理回路を示す。図１３はビットｎ＝１とビットｎ−１＝０のときの
【数１８】
0003560623.tif 000019
に関する１ビット・ゼロのセルの論理回路を示す。図１４はビットｎ＝１とビットｎ−１＝１のときの
【数１９】
0003560623.tif 000020
に関する１ビット・ゼロのセルの論理回路を示す。
【００５５】
図１２の論理回路のＰＧ｜Ｋの部分７２は図７の部分と同じまたは同等であるが、異なるところは１ビット・ゼロのセル配列２７４の実現方法が、入力Ｐｎ  とＧｎ−１  との排他的ＮＯＲゲートを用いてその論理式に対応している点である。図１３の論理回路のＰＧ｜Ｋの部分７２は図７の部分と同じまたは同等であるが、異なるところは１ビット・ゼロのセル配列３７４の実現方法が、排他的ＮＯＲゲートを用いてその論理式に対応している点である。
【００５６】
図１４の論理回路のＰＧ｜Ｋの部分７２は図７の部分と同じまたは同等であるが、異なるところは１ビット・ゼロのセル配列４７４の実現方法が、入力Ｐｎ  とＧｎ−１  との排他的ＯＲゲートを用いてその論理式に対応している点である。
【００５７】
任意の定数に等しいサブフィールドを検出するには、フィールドの最下位ビット以外の全てのビットが上記のセルのどれかであることが必要である。その出力全ての論理積を実行し、更にこれとフィールドの最下位ビットが必要な値を持つという条件とで論理積を実行する。
【００５８】
この回路は図１１のＳＵＢＦＩＥＬＤ＝０検出器回路と同等であるが、異なるところは１ビット・ゼロのセルを上の表の中のセルに置き換え、最下位ビットはゼロではなくて１でよいという点である。
【００５９】
次の表は、上の仕様に用いられた図の要素を示す。
【表２】
0003560623.tif 000021
【表３】
0003560623.tif 000022
【表４】
0003560623.tif 000023
【表５】
0003560623.tif 000024
【００６０】
いくつかの望ましい実施態様について詳細に説明した。この発明の範囲は、上に説明したものとは異なっていても、特許請求の範囲に含まれる実施態様は含むものである。ここで含むというのは、この発明の範囲を網羅したものではないという意味である。
【００６１】
この発明について図示の実施態様を参照して説明したが、この説明は制限的に解釈してはならない。図示の実施態様の各種の変形や組合わせや、この発明の他の実施態様は、この説明を参照すればこの分野に精通した人には明かである。
【００６２】
例えば論理回路は、ＴＴＬ、ＣＭＯＳ、ＮＭＯＳ、ＥＣＬ、Ｂｉ−ＣＭＯＳ、ＢＩＰＯＬＡＲおよびその他の多くの任意の論理回路を想定している。ここに想定した回路は、より大きな集積回路設計の一部として含まれる場合もあるし、また単一の集積回路設計として独立した場合もある。従って特許請求の範囲は、そのような変形や実施態様を全て含むものである。
【００６３】
以上の説明に関して更に以下の項を開示する。
（１）  算術または論理演算の結果の（ｎ−１）番目のビットが論理的１であるときに、前記結果のｎ番目のビットが論理的ゼロであるかどうかを、計算結果に依存せずに検出する法であって、
ａ）  少なくとも２ビットの演算数長さを持つ第１演算数Ａを１ビット・セルのグループで受け、
ｂ）  少なくとも２ビットの演算数長さを持つ第２演算数Ｂを前記１ビット・セルのグループで受け、
ｃ）  前記第１演算数Ａｎ−１  の（ｎ−１）番目のビットからと、前記第２演算数Ｂｎ−１  の（ｎ−１）番目のビットから、発生信号Ｇｎ−１  を前記１ビット・セルのグループの（ｎ−１）番目のセルで計算し、
ｄ）  前記発生信号Ｇｎ−１  を前記１ビット・セルのグループのｎ番目のセルで受け、
ｅ）  前記第１演算数Ａｎ  のｎ番目のビットからと、前記第２演算数Ｂｎ  のｎ番目のビットからと、前記Ｇｎ−１  から、１ビット・ゼロ信号Ｚｎ  を前記１ビット・セルのグループのｎ番目のセルで計算し、前記１ビット・ゼロ信号は
【数２０】
0003560623.tif 000025
で定義される、
段階を含む方法。
【００６４】
（２）  前記Ａｎ−１  からと、前記Ｂｎ−１  からと、前記１ビット・セルのグループの（ｎ−２）番目のセルからのキル信号Ｋｎ−２  から、１ビット１信号Ｚｎ−１  ’を前記１ビット・セルのグループの前記（ｎ−１）番目のセルで計算する段階を更に含み、前記１ビット１信号は
【数２１】
0003560623.tif 000026
で定義される、第１項記載の方法。
【００６５】
（３）  前記Ａｎ−１  からと、前記Ｂｎ−１  からと、前記１ビット・セルのグループの（ｎ−２）番目のセルからの発生信号Ｇｎ−２  から、１ビット１信号Ｚｎ−１  ’を前記１ビット・セルのグループの前記（ｎ−１）番目のセルで計算する段階を更に含み、前記１ビット１信号は
【数２２】
0003560623.tif 000027
で定義される、第１項記載の方法。
【００６６】
（４）  算術または論理演算の結果の（ｎ−１）番目のビットが論理的ゼロであるときに、前記結果のｎ番目のビットが論理的１であるかどうかを、計算結果に依存せずに検出する方法であって、
ａ）  少なくとも２ビットの演算数長さを持つ第１演算数Ａを１ビット・セルのグループで受け、
ｂ）  少なくとも２ビットの演算数長さを持つ第２演算数Ｂを前記１ビット・セルのグループで受け、
ｃ）  前記第１演算数Ａｎ−１  の（ｎ−１）番目のビットからと、前記第２演算数  Ｂｎ−１  の（ｎ−１）番目のビットから、キル信号Ｋｎ−１  を前記１ビット・セルのグループの（ｎ−１）番目のセルで計算し、
ｄ）  前記キル信号Ｋｎ−１  を前記１ビット・セルのグループのｎ番目のセルで受け、
ｅ）  前記第１演算数Ａｎ  のｎ番目のビットからと、前記第２演算数Ｂｎ  のｎ番目のビットからと、前記Ｋｎ−１  から、１ビット・ゼロ信号Ｚｎ  ’を前記１ビット・ゼロのグループのｎ番目のセルで計算し、前記１ビット１信号は
【数２３】
0003560623.tif 000028
で定義される、
段階を含む方法。
【００６７】
（５）  前記Ａｎ−１  からと、前記Ｂｎ−１  からと、前記１ビット・セルのグループの（ｎ−２）番目のセルからのキル信号Ｋｎ  −２から、１ビット・ゼロ信号Ｚｎ−１  を前記１ビット・セルのグループの前記（ｎ−１）番目のセルで計算する段階を更に含み、前記１ビット・ゼロ信号は
【数２４】
0003560623.tif 000029
で定義される、第４項記載の方法。
【００６８】
（６）  前記１ビット・ゼロ信号と前記１ビット１信号の論理積を実行してＡＬＵ＝ＣＯＮＳＴＡＮＴ信号を発生する段階を更に含む、第２項または第５項のいずれかに記載の方法。
【００６９】
（７）  前記Ａｎ−１  からと、前記Ｂｎ−１  からと、前記１ビット・セルのグループの（ｎ−２）番目のセルからの発生信号Ｇｎ−２  から、１ビット・ゼロ信号Ｚｎ−１  を前記１ビット・セルのグループの前記（ｎ−１）番目のセルで計算する段階を更に含み、前記１ビット１信号は
【数２５】
0003560623.tif 000030
で定義される、第４項記載の方法。
【００７０】
（８）  前記１ビット・ゼロ信号と前記１ビット１信号の論理積を実行してＡＬＵ＝ＣＯＮＳＴＡＮＴ信号を発生する段階を更に含む、第３項または第７項のいずれかに記載の方法。
【００７１】
（９）  ｎ＝０で、Ｋｎ−１  は前記１ビット・セルのグループへのけた上げ入力の論理的反転である、第４項記載の方法。
【００７２】
（１０）  算術または論理演算の結果の（ｎ−１）番目のビットが論理的１であるときに、前記結果のｎ番目のビットが論理的１であるかどうかを、計算結果に依存せずに検出する方法であって、
ａ）  少なくとも２ビットの演算数長さを持つ第１演算数Ａを１ビット・セルのグループで受け、
ｂ）  少なくとも２ビットの演算数長さを持つ第２演算数Ｂを前記１ビット・セルのグループで受け、
ｃ）  前記第１演算数Ａｎ−１  の（ｎ−１）番目のビットからと、前記第２演算数  Ｂｎ−１  の（ｎ−１）番目のビットから、発生信号Ｇｎ−１  を前記１ビット・セルのグループの（ｎ−１）番目のセルで計算し、
ｄ）  前記発生信号Ｇｎ−１  を前記１ビット・セルのグループのｎ番目のセルで受け、
ｅ）  前記第１演算数Ａｎ  のｎ番目のビットからと、前記第２演算数Ｂｎ  のｎ番目のビットからと、前記Ｇｎ−１  から、１ビット１信号Ｚｎ  ’を前記１ビット・セルのグループのｎ番目のセルで計算し、前記１ビット１信号は
【数２６】
0003560623.tif 000031
で定義される、
段階を含む方法。
【００７３】
（１１）  前記Ａｎ−１  からと、前記Ｂｎ−１  からと、前記１ビット・セルのグループの（ｎ−２）番目のセルからのキル信号Ｋｎ−２  から、１ビット１信号Ｚｎ−１  ’を前記１ビット・セルのグループの前記（ｎ−１）番目のセルで計算する段階を更に含み、前記１ビット１信号は
【数２７】
0003560623.tif 000032
で定義される、第１０項記載の方法。
【００７４】
（１２）  前記１ビット１信号Ｚｎ  ’と前記１ビット１信号Ｚｎ−１  ’の論理積を実行してＡＬＵ＝ＣＯＮＳＴＡＮＴ信号を発生する段階を更に含む、第１１項記載の方法。
【００７５】
（１３）  前記Ａｎ−１  からと、前記Ｂｎ−１  からと、前記１ビット・セルのグループの（ｎ−２）番目のセルからの発生信号Ｇｎ−２  から、１ビット１信号Ｚｎ−１  ’を前記１ビット・セルのグループの前記（ｎ−１）番目のセルで計算する段階を更に含み、前記１ビット１信号は
【数２８】
0003560623.tif 000033
で定義される、第１０項記載の方法。
【００７６】
（１４）  前記１ビット１信号Ｚｎ  ’と前記１ビット１信号Ｚｎ−１  ’の論理積を実行してＡＬＵ＝ＣＯＮＳＴＡＮＴ信号を発生する段階を更に含む、第１３項記載の方法。
【００７７】
（１５）  ｎ＝０で、Ｇｎ−１  は前記１ビット・セルのグループへのけた上げ入力である、第４項記載の方法。
【００７８】
（１６）  前記１ビット・セルのグループは、Ｎビットの長さの第１演算数Ａ０  −  ＡＮ−１  を受ける、第１項、第４項、第１０項のいずれかに記載の方法。
【００７９】
（１７）  前記１ビット・セルのグループは、Ｎビットの長さの第２演算数Ｂ０  −  ＢＮ−１  を受ける、第１項、第４項、第１０項のいずれかに記載の方法。
【００８０】
（１８）  算術または論理演算の途中の結果のサブフィールドＲ０  −ＲＮ−１  の選択された条件を検出する方法であって、
ａ）  少なくとも２ビットの演算数長さを持つ第１演算数Ａを１ビット・セルのグループで受け、
ｂ）  少なくとも２ビットの演算数長さを持つ第２演算数Ｂを前記１ビット・セルのグループで受け、
ｃ）  第１信号Ｘｎ−１  を前記１ビット・セルのグループの１つで受け、
ｄ）  前記第１演算数Ａｎ  のｎ番目のビットと、前記第２演算数Ｂｎ  のｎ番目のビットから、前記Ａｎ  およびＢｎ  の関数である第２信号Ｘｎ  を計算し、
ｅ）  前記第２信号Ｘｎ  を前記１ビット・セルのグループの別の１つで受け、
ｆ）  前記Ａｎ  と前記Ｂｎ  と前記Ｘｎ−１  から、第１の１ビット結果信号Ｙｎ  を前記１ビット・セルのグループの前記１つで計算し、
ｇ）  前記第１演算数Ａｎ＋１  の（ｎ＋１）番目のビットからと、前記第２演算数  Ｂｎ＋１  の（ｎ＋１）番目のビットからと、前記Ｘｎ  から、第２の１ビット結果信号  Ｙｎ＋１  を前記１ビット・セルのグループの前記別の１つで計算し、
ｈ）  前記第１の１ビット結果信号Ｙｎ  を第１の組合わせ回路で受け、
ｉ）  前記第２の１ビット結果信号Ｙｎ＋１  を前記第１の組合わせ回路で受け、
ｊ）  前記第１の１ビット結果信号Ｙｎ  と前記第２の１ビット結果信号Ｙｎ＋１  からＳＵＢＡＬＵ＝０信号を前記第１の組合わせ回路で計算し、
ｋ）  前記ＳＵＢＡＬＵ＝０信号を第２の組合わせ論理回路で受け、
ｌ）  サブフィールドの最下位ビットの結果Ｒｎ−１  を前記第２の組合わせ論理回路で受け、
ｍ）  前記第１の１ビット結果信号Ｙｎ  と前記第２の１ビット結果信号Ｙｎ＋１  からＳＵＢＦＩＥＬＤ＝ＣＯＮＳＴＡＮＴ信号を前記第２の組合わせ回路で計算する、
段階を含む方法。
【００８１】
（１９）  算術または論理計算の結果の検出回路（６０）について説明する。前記回路は、第１演算数Ａと第２演算数ＢとＣｉｎを受け、１組の１ビット・ゼロ信号Ｚを発生する１組の１ビット・ゼロのセル（６２）を備える。組み合わせ回路（６４）が前記１ビット・ゼロ信号の組を受け、前記１ビット・ゼロ信号の既知の関数である選択された出力を出す。望ましい実施態様では、組合わせ回路（６４）は論理積機能であって、全ての前記１ビット・ゼロ信号が１になる条件を検出する。望ましい各種の実施態様において、前記１ビット・ゼロ信号は加算、減算、論理演算などの演算の算術ゼロ条件を検出する。その他の装置、システム、方法も開示する。
【００８２】
関連する特許および出願の相互参照
特許／出願番号                        出願日                        ＴＩ事例番号
４，８１５，０１９            １９８７年２月２６日    ＴＩ−１２４３８
０７／９２３，２８２        １９９２年９月２９日        ＴＩ−１６０５５
０７／９５３，６３７    １９９２年７月３１日        ＴＩ−１６５７５
【図面の簡単な説明】
【図１】従来の技術のＡＬＵ＝０回路の略図。
【図２】別の従来の技術のＡＬＵ＝０回路の略図。
【図３】図１および図２の従来の技術のＡＬＵの伝播および発生回路の部分的略図。
【図４】望ましい実施態様のＡＬＵ＝０回路の略図。
【図５】望ましい実施態様のＡＬＵ＝０回路を含む加算器の高水準略図。
【図６】図５のＡＮＤトリーの略図。
【図７】加算用として図５のＡＬＵに含む１ビット・ゼロのセルの略図。
【図８】減算用として図５のＡＬＵに含む１ビット・ゼロのセルの略図。
【図９】一般算術および論理演算実行用として図５のＡＬＵに含む１ビット・ゼロのセルの略図。
【図１０】「１」条件を検出するための１ビットのセルの略図。
【図１１】ＳＵＢＵＦＩＥＬＤ＝０セルの略図。
【図１２】ビットｎ＝０およびビットｎ−１＝１のときの１ビット・ゼロのセルの略図。
【図１３】ビットｎ＝１およびビットｎ−１＝０のときの１ビット・ゼロのセルの略図。
【図１４】ビットｎ＝１およびビットｎ−１＝１のときの１ビット・ゼロのセルの略図。異なる図の対応する数字および符号は、別に説明のない限り対応する部分を指す。
【符号の説明】
６０  ＡＬＵ＝０回路
６２  セル
６４  ＡＮＤゲート
【図１】
0003560623.tif 000035
【図２】
0003560623.tif 000036
【図３】
0003560623.tif 000037
【図４】
0003560623.tif 000038
【図５】
0003560623.tif 000039
【図６】
0003560623.tif 000040
【図７】
0003560623.tif 000041
【図８】
0003560623.tif 000042
【図９】
0003560623.tif 000043
【図１０】
0003560623.tif 000044
【図１１】
0003560623.tif 000045
【図１２】
0003560623.tif 000046
【図１３】
0003560623.tif 000047
【図１４】
0003560623.tif 000048