(57)【特許請求の範囲】
【請求項１】
ａｌｕ（算術論理演算装置）状態信号を出力する関連算術論理ユニットで実行する算術または論理操作の結果に基づいて分岐決定信号を出す回路であって、
ａ）  少なくとも２つの候補分岐決定回路であって、少なくとも２つの条件をそれぞれ持つ少なくとも１つのａｌｕ状態信号に対する独特の候補条件コードに基づいて、候補分岐決定信号をそれぞれ計算する前記少なくとも２つの候補分岐決定回路と、
ｂ）  前記少なくとも１つのａｌｕ状態信号に基づいて、前記少なくとも２つの候補分岐決定信号から正しい分岐決定信号を選択する第１選択回路と、
を含む回路。
【請求項２】
分岐決定を行う方法であって、
ａ）  算術または論理演算を実行し、
ｂ）  少なくとも１つのａｌｕ状態信号を与え、
ｃ）  前記少なくとも１つのａｌｕ状態信号に対する独特の候補条件コードに基づいて、少なくとも２つの候補分岐決定信号を計算し、
ｄ）  前記状態信号が出るときの前記少なくとも１つのａｌｕ状態信号に基づいて、前記少なくとも２つの候補分岐決定信号から正しい分岐決定信号を選択する、
段階を含む方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は一般に、マイクロプロセッサ分岐決定回路に関する。
【０００２】
【従来の技術】
この発明の背景は、例えば「ＳＰＡＲＣ」圧縮命令セット計算機（ＲＩＳＣ）構造と関連して説明するが、これはこの発明の範囲を制限するものではない。
【０００３】
これまでこの分野では、分岐の決定はＡＬＵ（算術論理演算装置）出力状態信号、すなわち、条件コードＡＬＵ＝０、ＡＬＵあふれ、ＡＬＵ出力負号、ＡＬＵけた上げ出力（ｃａｒｒｙ−ｏｕｔ）に基づいている。一般的な従来の構造では、ＡＬＵはその和出力を生成するのとほぼ同時にこれらの状態信号を生成する。高度に最適化した従来の分岐決定回路では、分岐決定すなわちジャンプ信号はこれらの状態信号が出てから５ないし６ゲート遅れ以内に生成する。
【０００４】
【発明が解決しようとする課題】
従来の「ＳＰＡＲＣ」分岐決定回路で更に遅れが起こるのは、ａｌｕあふれ状態信号の計算においてであり、これは算術けたあふれとタグ付きあふれ（「ＳＰＡＲＣ」構造に特有の特徴）との論理和である。この論理和により更にゲート遅れが加わる。従来の技術の分岐決定回路では、「ＳＰＡＲＣ」構造がａｌｕけた上げ出力の極性を決めるために一層遅れが生じる。
【０００５】
「ＳＰＡＲＣ」構造では、減算のけた上げ出力信号の極性は加算の極性の逆と定義する。このため減算のａｌｕけた上げ出力条件を検査するには、論理反転が必要になる。この論理反転により更にゲート遅れが加わる。
【０００６】
「ＳＰＡＲＣ」構造に関連する従来の分岐決定回路の設計で遅れを生じる別の原因は、条件コードを用いるからである。条件コードはＡＬＵ演算で設定され、次の分岐命令で用いられる。一般的なパイプライン方式において、分岐決定の前の命令によって条件コードを変更すると、ＡＬＵは次の分岐決定を行うのと同じクロックサイクルで条件コードを生成する。
【０００７】
もし分岐決定の直前以外の命令によって条件コードを設定すれば、条件コードは条件コード・レジスタから読まなければならない。この場合、ＡＬＵはＡＬＵ出力状態信号と条件コード・レジスターに記憶されている状態信号のどちらを用いるかを選ばなければならない。この選択は一般に送り（ｆｏｒｗａｒｄｉｎｇ）ｍｕｘ（マルチプレクサ）を用いて行うので、従来の回路の分岐決定に更に遅れが加わる。
【０００８】
【課題を解決するための手段】
この発明とその望ましい実施態様では「ＳＰＡＲＣ」構造に関連して説明するが、この特許の発明は、これらのまたは同様なＡＬＵ出力状態信号に基づいて分岐決定を行う任意のコンピュータ構造に適用するものである。
【０００９】
この発明の他の実施態様と同様に、例示の実施態様の各種の修正や組合わせは、この説明を参照すればこの技術に精通した人には明かである。従って特許請求の範囲は、これらの修正や実施態様をすべて含むものとする。
【００１０】
従来の分岐決定回路では、状態信号と制御信号は組合わせ論理回路の入力に入る。従来の組合わせ論理回路はこれらの信号で作動し、入力がゲートの各レベル（一般に高度に最適化した従来の回路では５ないし６レベル）を通って伝搬した後、分岐決定信号が出る。
【００１１】
上に述べたように、一般の分岐決定に必要な最少数のゲートに加えて、「ＳＰＡＲＣ」のような特殊な方式では、減算やｍｕｘ送りでのａｌｕけた上げ出力の反転などの、プロセッサに特有の追加の条件を通って状態信号や条件コードを伝搬する必要があるので、更に遅れを生じる。
【００１２】
この発明の望ましい実施態様では、上に述べた困難をかなり克服し、ＡＬＵ和出力（または任意の論理または算術のＡＬＵ演算の出力）を計算してから分岐決定するまでの遅れをなくし、または非常に減らす。
【００１３】
この発明では、分岐決定信号はＡＬＵ状態信号に依存するが、これらの状態信号が出る前に、和（または別の演算）の計算に並行して分岐決定信号の計算の大部分を行うことができるように、分岐決定回路を構成できると考える。
【００１４】
この発明の第１の望ましい実施態様では、分岐決定信号を出すための限界タイミング経路を後到着（ｌａｔｅ−ａｒｒｉｖｉｎｇ）信号が決定するように、分岐決定回路を構成する。この実施態様の目的から、後到着信号は、ａｌｕ演算のゼロ結果（信号名を「ＡＬＵ０」とする）、またはＡＬＵの最上位ビット（ＭＳＢ）へのけた上げ入力（ｃａｒｒｙ−ｉｎ）（信号名を「ｃｉｎ３１」とする）を表すことが望ましい。
【００１５】
この望ましい実施態様では、上に述べた後到着状態信号は計算結果が出る少し前に出る。この望ましい実施態様の分岐決定信号は、ＡＬＵ０信号かｃｉｎ３１信号の遅い方が到着してから１ないし２ゲート遅れ以内に発生する。この分岐決定は、計算結果とは独立に行われる。
【００１６】
この発明の別の望ましい実施態様では、けた上げ選択加算器／ＡＬＵと両立するように分岐決定回路を構成する。この構造は基本的には第１の望ましい実施態様と同じであるが、２つの後到着信号ｃｉｎ３１ｈとｃｉｎ３１ｌを加算器のＭＳＢ段階からの候補けた上げ入力信号とし、ｃｉｎ３１の代わりにｇｃｉｎを用いるという点だけが異なる。
【００１７】
言い換えると、加算器のＬＳＢ段階からのけた上げ入力によって２つの高いＭＳＢバンクのどちらかを選択するので、計算に使うけた上げ入力を待たなくてすむためには、高いＭＳＢバンクのそれぞれの値を決め、また実際にけた上げ入力値が入ったときに候補分岐決定を正しく選択しなければならない。
【００１８】
ここではこの発明の実施態様として、けた上げ先見（ｃａｒｒｙ−ｌｏｏａｈｅａｄ）加算器、けた上げ選択加算器、条件付き和加算器に用いられる応用について説明する。この発明の他の多くの実施態様が可能である。応用によっては、分岐決定信号を生成するのに必要な別の論理のために更に遅れが加わるので、後到着信号が限界タイミング経路を決定しないことがある。
【００１９】
この発明はこのような場合でも、従来の装置より実質的に機能が高い。この発明は、ボスハート（Ｂｏｓｓｈａｒｔ）による米国特許申請番号９２３，２８２に述べられている条件付き和加算器のような他の型の加算器やＡＬＵにも容易に適用してよい。他の型の加算器やＡＬＵにこの発明を適用できることは、コンピュータ機構の設計に精通した人には明かである。
【００２０】
この発明を、速いＡＬＵ＝０回路と共に用いてこの発明の機能の特長を十分に活用することが望ましい。速いＡＬＵ＝０回路の一例は、ボスハート他による米国特許申請番号９２２，９２６に述べられているが、他の多くのＡＬＵ＝０回路もここに述べる発明に適用することができる。
【００２１】
この発明に従って、算術または論理演算の結果に基づいて分岐決定信号を出す回路を説明する。この回路は少なくとも２つの候補分岐決定回路を備え、少なくとも１つのａｌｕ状態信号に対する独特の候補条件コードに基づいて、候補分岐決定信号をそれぞれ計算する。更にこの回路は、ａｌｕ状態信号が得られたときにこの状態信号に基づいて、分岐決定信号の候補の中から正しい分岐決定信号を選択するための第１選択回路を備える。
【００２２】
【実施例】
第１の従来の分岐決定回路３０を図１に略図で示す。この従来の分岐決定回路３０では、レジスタ移送レベル（ＲＴＬ）の記述と両立するようにゲートを選ぶ。図１に示すように、適当な分岐条件であるａｌｕゼロ、ａｌｕ負号、ａｌｕあふれ、ａｌｕけた上げ出力のゲート制御は、ＡＮＤゲート３２、３３、３４、３５を用いて使用可能信号ＥＮ＜３：０＞によって行う。図１に示すように、また次式のようにＥＸＯＲゲート３６、３入力ＯＲゲート３７、ＥＸＯＲゲート３８により、分岐決定信号ＪＴＡＫＥＮを生成する。
【数１】
0003597547.tif 000002
【００２３】
図２に第２の従来の分岐決定回路４０の略図を示す。この従来の分岐決定回路４０では、ＣＭＯＳ（相補形金属酸化膜半導体）を適用できるようにゲートを選択する。
【００２４】
適当な分岐条件であるａｌｕゼロ、ａｌｕ負号、ａｌｕあふれ、ａｌｕけた上げ出力のゲート制御は、図２に示すようにＮＡＮＤゲート４２、４３、４４、４５を用いてＥＮ＜３：０＞によって行う。図２に示すように、ＥＸＮＯＲゲート４６、３入力ＮＡＮＤゲート４７、ＥＸＯＲゲート４８により、分岐決定信号ＪＴＡＫＥＮを生成する。この回路の式は、上の式と同じである。
【００２５】
図３に、第１の望ましい実施態様の分岐決定回路５０の略図を示す。この分岐決定回路には加算器／ＡＬＵと両立する後到着状態信号が入る。ここで後到着信号は、ＡＬＵ＝０信号すなわちＡＬＵ０と、ＭＳＢへのけた上げ入力信号ｃｉｎ３１である。
【００２６】
ＡＬＵ＝０信号を得る回路は一般に図１４ａと図１４ｂに示され、また米国特許申請番号９２２，９２６に示されているが、多くの他のＡＬＵ＝０回路をここに説明する発明に適用してよい。ｃｉｎ３１を決定する回路は図１０に示す。
【００２７】
後到着信号の信号名と数字は単なる例示である。この第１の望ましい実施態様の分岐決定回路５０は多くの加算器やＡＬＵ構造、すなわち、各種の後到着状態信号と共にけた上げ先見加算器／ＡＬＵ、けた上げ選択加算器／ＡＬＵ、条件付き和加算器／ＡＬＵ、リップルけた上げ加算器／ＡＬＵなどに適用してよいが、これに限られるものではない。
【００２８】
図３のこの発明の望ましい実施態様は、分岐決定の結果がｃｉｎ３１とＡＬＵ０の関数として表すことができる、という事実を用いる。これらの信号は一般に後で到着するので、４つの分岐回路５２、５４、５６、５８は全く同じである。各分岐回路は、ｃｉｎ３１とＡＬＵ０に対して異なる組合わせの値をとる。
【００２９】
これらの値は定数なので、遅れは生じない。４つの候補分岐決定回路５２、５４、５６、５８のすべてが結果を出力した後、ｍｕｘ６２、６４、６６はｃｉｎ３１とＡＬＵ０の実際の値を選択制御に用いて、候補分岐決定回路５２、５４、５６、５８から正しい結果を選ぶ。
【００３０】
ｃｉｎ３１とＡＬＵ０は１ないし２ｍｕｘの遅れで分岐を決定するので、分岐決定は従来の技術に比べてはるかに容易である。分岐決定をｃｉｎ３１の関数として表す理由は、ｃｉｎ３１の値が決まるとａｌｕあふれ、ａｌｕ負号、ａｌｕけた上げ出力条件コードは容易に計算できるからである。
【００３１】
更に図３において、候補条件コードは候補分岐回路５２、５４、５６、５８のそれぞれで異なっている。ａｌｕゼロ分岐条件以外の候補条件コード名はＡＬＵ−ＮＺＶＣｘ（ただしｘはｃｉｎ３１の候補値が０か１に従って０か１）である。ａｌｕゼロの候補条件コード名は、ＡＬＵ−Ｚｙ（ただしｙはＡＬＵ＝０の候補値が０か１かに従って０か１）である。
【００３２】
これらの候補条件コードを得る方法については後で説明する。候補分岐決定回路５２、５４、５６、５８のＡＬＵ条件であるａｌｕゼロ、ａｌｕ負号、ａｌｕあふれ、ａｌｕけた上げおよび関連する使用可能信号ＥＮ＜３：０＞と、候補条件コードとの対応を次の表１に示す。
【表１】
0003597547.tif 000003
【００３３】
各候補分岐決定回路５２、５４、５６、５８は候補分岐決定を発生する。第１の候補分岐決定回路５２は、図３と表２に示すように、ｃｉｎ３１＝０とＡＬＵ０＝０が入るとＪＴ０−ＡＬＵ０を発生する。第２の候補分岐決定回路５４は、図３と表２に示すように、ｃｉｎ３１＝０とＡＬＵ０＝１が入るとＪＴ０−ＡＬＵ１を発生する。
【００３４】
第３の候補分岐決定回路５６は、図３と表２に示すように、ｃｉｎ３１＝１とＡＬＵ０＝０が入るとＪＴ１−ＡＬＵ０を発生する。最後に、第４の候補分岐決定回路５８は、図３と表２に示すように、ｃｉｎ３１＝１とＡＬＵ０＝１が入るとＪＴ１−ＡＬＵ１を発生する。候補分岐決定信号および候補分岐決定回路５２、５４、５６、５８と、ｃｉｎ３１とＡＬＵＯの候補条件との対応を、次の表２に示す。
【表２】
0003597547.tif 000004
【００３５】
更に図３の一般に望ましい実施態様の回路５０では、候補分岐決定信号選択ｍｕｘ６２、６４、６６によって、４つの候補分岐決定信号ＪＴ０−ＡＬＵ０、ＪＴ０−ＡＬＵ１、ＪＴ１−ＡＬＵ０、ＪＴ１−ＡＬＵ１から選択する。選択入力ＡＬＵ０が入ると、候補分岐ｍｕｘ６２、６４はこの４つの候補分岐決定から２つの候補ＪＴ０、ＪＴ１を出力する。
【００３６】
ＡＬＵ＝０が負（ｎｅｇａｔｉｖｅｌｙ  ａｓｓｅｒｔｅｄ）の条件（ＡＬＵ０＝０）であれば、信号としてＪＴ０−ＡＬＵ０を選択して候補分岐ｍｕｘ６２はＪＴ０を出力し、また信号としてＪＴ１−ＡＬＵ０を選択して候補分岐ｍｕｘ６４はＪＴ１を出力する。ＡＬＵ＝０が正（ｐｏｓｉｔｉｖｅｌｙ  ａｓｓｅｒｔｅｄ）の条件（ＡＬＵ０＝１）であれば、信号としてＪＴ０−ＡＬＵ１を選択して候補分岐ｍｕｘ６２はＪＴ０を出力し、また信号としてＪＴ１−ＡＬＵ１を選択して候補分岐ｍｕｘ６４はＪＴ１を出力する。
【００３７】
選択入力ｃｉｎ３１が入ると、選択ｍｕｘ６６はこれらの２つの候補ＪＴ０、ＪＴ１から１つの分岐選択信号ＪＴを出力する。ｃｉｎ３１が負の条件（ｃｉｎ３１＝０）であれば、ＪＴ０を選択して続いてＪＴを出力する。ｃｉｎ３１が正の条件（ｃｉｎ３１＝１）であれば、ＪＴ１を選択して続いてＪＴを出力する。
【００３８】
このようにして後到着信号ｃｉｎ３１が入ってから１ゲート遅れ以内に、また後到着信号ＡＬＵ＝０が入ってから２ゲート遅れ以内に、分岐決定信号ＪＴを出力する。遅れを最小限に減らして分岐決定信号ＪＴを出力するために、後到着信号ＡＬＵ＝０はＡＬＵ和出力が出る前にまたは同時に出ることが望ましい。
【００３９】
ＡＬＵ＝０信号の計算速度を速める例示的な回路が、ボスハート他による米国特許申請番号９２２，９２６に開示されており、図１４ａと図１４ｂにその略図を示す。ｃｉｎ３１とＡＬＵ０を分岐決定信号の条件付けのための後到着信号としたが、この発明の望ましい実施態様は別のまたは追加の後到着信号によって容易に条件付けを行うことができる。
【００４０】
更に図３において、候補条件コードを得る方法を説明する。上に述べたように、候補条件コードはＡＬＵ−ＮＺＶＣｘ＜３：０＞とＡＬＵ−Ｚｙである。望ましい実施態様では分岐決定はＡＬＵ＝０で条件付けを行うので、ａｌｕゼロ候補条件コードを表す候補条件コードＡＬＵ−ＮＺＶＣｘ＜２＞は使わない。
【００４１】
その代わりに、ａｌｕゼロ条件は候補条件コードＡＬＵ−Ｚｙによって表される。しかし別の実施態様において分岐決定がｃｉｎ３１だけで条件付けされる場合は、候補条件コードはＡＬＵ−ＮＺＶＣ０＜３：０＞とＡＬＵ−ＮＺＶＣ１＜３：０＞で完全な組になる。
【００４２】
条件コードａｌｕ負号、ａｌｕあふれ、ａｌｕけた上げと、その対応する（上の表１に示す対応）候補条件コードは、出力がＩＣＣ＜３，１：０＞である条件コード・レジスタ７０（図示せず、図４参照）から、または以下に動作を示す条件コード論理回路７２、７４から直接に、選択してよい。
【００４３】
この選択は、ＡＬＵ操作が一般的に条件コードを設定するパイプライン構造では一般的であり、後の分岐命令はいつでもこの条件コードを用いてよい。その条件コードを用いる分岐命令の直前にＡＬＵ操作によって条件コードを修正するときは、一般的なパイプライン方式では、ＡＬＵは次の分岐命令を実行するのと同じクロックサイクルで条件コードを生成する。
【００４４】
そうではなく、条件コードの最後の設定が前の命令に行われた場合は（その間に命令がいくつかある）、次の分岐決定の条件コードは条件コード・レジスタ７０から得なければならない。その結果分岐決定回路５０は、状態コード論理回路７２、７４からの信号を用いるか、状態コード・レジスタ７０に記憶されている状態信号ＩＣＣ＜３，１：０＞を用いるか、を選択しなければならない。
【００４５】
この選択は一般的に、選択信号ＩＣＣＦＡ（ａｌｕからｉｃｃ）が入る条件コード選択ｍｕｘ８０、８２を用いて行われる。ＩＣＣＦＡは、負であれば条件コード・レジスタ７０から、正であれば条件コード論理回路７２、７４から、候補条件コードを選択する。
【００４６】
条件コード・レジスタ７０とＩＣＣ＜３，１：０＞の回路については、以下に図４を用いて詳細に説明する。条件コードレジスタ７０からのデータをＩＣＣＦＡ＝０によって選択すると、候補分岐決定回路５２、５４、５６、５８を通って同じ信号が送られる。全ての分岐決定が同じなので、どの回路が適当な候補分岐決定かを選択するのは重要ではない。
【００４７】
更に図３において、条件コード論理回路７２、７４の動作と、そこから得られる条件コードについて説明する。条件コード論理回路７６、７８およびその条件コードについては後で説明する。第１の条件コード論理回路７２は、上に述べたように、ｃｉｎ３１が０で、ＩＣＣＦＡが正のときに候補条件コードを発生する。
【００４８】
加算の場合のこれらの候補信号の論理を、次の表３に示す。減算についてこの論理を拡張しまたは修正することは、コンピュータ構造設計の技術者には明かである。
【表３】
0003597547.tif 000005
【００４９】
ＩＣＣＦＡ＝１の場合の表３に示す論理を得るのに用いる論理を図３に示す。
【００５０】
ｎ＝３ビットの場合。ｃｉｎ３１＝０であれば、ＡＬＵ−ＮＺＶＣ０＜３＞は候補ａｌｕ負号信号である。この信号は第１条件コード選択ｍｕｘ８０の正の入力のｎ＝３ビットに入力する。ａｌｕ負号は、加算器のＭＳＢ和出力であるＳＵＭ＜３１＞に等しい。
【００５１】
これはｐ３１とよぶＡＬＵのビット３１の伝搬信号に等しい。というのは、けた上げ入力がゼロの場合は、この出力信号は伝搬信号に等しいからである。ｐ３１は、第１条件コード選択ｍｕｘ８０の正の入力の第４（ｎ＝３）ビットに直接入る。
【００５２】
ｎ＝１ビットの場合。ｃｉｎ３１＝０であれば、ＡＬＵ−ＮＺＶＣ０＜１＞は候補ａｌｕあふれ信号である。この信号は、ｇ３１とＴＯＦＬＯの論理ＯＲを行うＯＲゲート８４から、第１条件コード選択ｍｕｘ８０の正の入力のｎ＝１ビットに入力する。このＯＲ機能は、「ＳＰＡＲＣ」構造に特有のタイプをチェックするあふれＴＯＦＬＯ条件を考慮するのに必要であり、ＡＬＵ  ＭＳＢあふれには関係ない。
【００５３】
算数またはＡＬＵ  ＭＳＢあふれは、和出力のＭＳＢが結果の符号を正しく表さない場合に真、と定義される。言い換えると、両入力が符号拡張１ビットでかつＡＬＵが１ビット幅であれば、この新しい高いＭＳＢは現在のＭＳＢとは異なる。
【００５４】
ａ入力とｂ入力はこれらの２ビットには同じなので、両者のけた上げ入力が異なるか、またはビット３１のけた上げ出力がけた上げ入力と等しくなければ、両者の結果は異なる。ｃｉｎ３１＝０の場合のＡＬＵ−ＮＺＶＣ０については、けた上げ出力が真の場合はあふれは真である。けた上げ出力は、ｇ３１が真の場合だけ真である。
【００５５】
ｎ＝０ビットの場合。ｃｉｎ３１＝０であれば、ＡＬＵ−ＮＺＶＣ０＜０＞は候補ａｌｕけた上げ出力信号である。この信号は、ｇ３１とＡＬＵＳＵＢの論理ＥＸＯＲを行うＥＸＯＲゲート８６から、第１条件コード選択ｍｕｘ８０の正の入力のｎ＝０ビットに入力する。ｃｉｎ３１＝０の場合、ｇ３１＝１であればＡＬＵけた上げ出力信号は真である。
【００５６】
上に述べたように、「ＳＰＡＲＣ」構造により減算のけた上げ出力の極性は反転するので、ＮＺＶＣ０＜０＞とＡＬＵＳＵＢのＥＸＯＲ機能が必要である。上に用いた信号ｇ３１とｐ３１は、加算器／ＡＬＵのＭＳＢ（この実施態様では第３１ビット）の発生信号と伝搬信号である。これらの伝搬と発生は加算器／ＡＬＵ設計技術ではよく知られている。
【００５７】
加算における定義を次に示す。ただしａ＜３１＞とｂ＜３１＞は、それぞれ第１および第２オペランドの第３１ビットである。
【数２】
0003597547.tif 000006
【００５８】
上に述べた候補条件コードＮＺＶＣ０＜３＞、ＮＺＶＣ０＜１＞、ＮＺＶＣ０＜０＞は、ｃｉｎ３１の値が０の場合、候補の分岐決定回路５２、５４に入る。
【００５９】
上に述べたように、ＡＬＵ（ｃｉｎ３１）のＭＳＢへのけた上げ入力が１でＩＣＣＦＡが正の場合に、第２の条件コード論理回路７４は候補条件コードを発生する。これらの条件信号の論理を次の表４に示す。この論理を減算に拡張しまたは修正することは、コンピュータ構造設計の技術者には明かである。
【表４】
0003597547.tif 000007
【００６０】
選択入力ＩＣＣＦＡが入る第２条件コード選択ｍｕｘ８２の正の入力（ＩＣＣＦＡ＝１）への入力の論理について、図３を用いて以下に説明する。
【００６１】
ｎ＝３ビットの場合。ｐ３１＿（ただし尾線（ｔａｉｌｉｎｇ）「＿」は図３でオーバーラインで示す負論理信号を表す）は、第２条件コード選択ｍｕｘ８２の正の入力の第４（ｎ＝３）ビットに直接入る。
【００６２】
ａｌｕ負号条件を表すｐ３１＿の背後にある論理は次の通りである。ＭＳＢの符号は、この技術でよく知られているように、ＭＳＢ和と同じである。１ビット和は
【数３】
0003597547.tif 000008
に等しい。ｃｉｎ３１＝１（ｃｉｎ３１の候補値）なので、
【数４】
0003597547.tif 000009
は単にｐ３１＿に等しい。
【００６３】
ｎ＝１ビットの場合。第２条件コード選択ｍｕｘ８２の正の入力の第２（ｎ＝１）ビットへの入力は、ｋ３１とＴＯＦＬＯの論理ＯＲを行うＯＲゲート８８から入る。ＡＬＵ−ＮＺＶＣ０のｎ＝１ビットと同じように、ＯＲゲート８８は算術あふれとタグあふれすなわちＴＯＦＬＯとの論理ＯＲを行うのに必要である。
【００６４】
ＡＬＵ−ＮＺＶＣ０で説明したように、ＡＬＵ  ＭＳＢあふれは、ビット３１のけた上げ出力がけた上げ入力と等しくないときに真、と定義される。ｃｉｎ３１＝１の場合のＡＬＵ−ＮＺＶＣ１については、キル信号ｋ３１が真の場合はあふれは真である。
【００６５】
ｎ＝０ビットの場合。ｃｉｎ３１＝１であれば、ＡＬＵ−ＮＺＶＣ１＜０＞は候補ａｌｕけた上げ出力信号である。この信号は、第２条件コード選択ｍｕｘ８２の正の入力の第１（ｎ＝０）ビットに入る入力である。ＥＸＮＯＲゲート９０は、ｋ３１とＡＬＵＳＵＢの論理ＥＸＮＯＲとしてこの信号を発生する。
【００６６】
ＡＬＵけた上げ出力信号は、ｇ３１＝１またはｐ３１＝１の場合は真である。この組合わせ条件は、ｋ３１＝０と同じである。上に述べたように、「ＳＰＡＲＣ」構造では減算のけた上げ出力の極性は反転するので、ＡＬＵＳＵＢとのＥＸＮＯＲ機能が必要である。
【００６７】
上に用いた信号ｋ３１とｐ３１は、加算器／ＡＬＵの第３１ビットのキル（ｋｉｌｌ）信号と伝搬信号である。これらの信号は既存の加算器／ＡＬＵ回路内に一般的にあるので、これらの信号を発生する回路はここに含まない。これらの伝搬信号とキル信号およびそれらを発生する手段は、加算器／ＡＬＵ設計の技術でよく知られている。
【００６８】
加算の場合の定義を次に示す。ただし、ａ＜３１＞とｂ＜３１＞は、それぞれ第１および第２オペランドの第３１ビットである。
【数５】
0003597547.tif 000010
上に述べた候補条件コードＮＺＶＣ１＜３＞、ＮＺＶＣ１＜１＞、ＮＺＶＣ１＜０＞は、ｃｉｎ３１の値が１の場合、候補分岐決定回路５６、５８に入る。
【００６９】
更に図３において、ゲート７６と７８でそれぞれ発生する信号ＡＬＵ−Ｚ０とＡＬＵ−Ｚ１を得る方法について説明する。この発明の望ましい実施態様では、ＡＬＵ＝０の値が負のときには候補分岐決定回路５２、５６によって、またＡＬＵ＝０すなわちＡＬＵ０の値が正のとき（すなわちＡＬＵ０＝１すなわちＡＬＵ計算の結果がゼロ）のときは候補分岐決定回路５４、５８によって、ＡＬＵ＝０で条件付けを行う。
【００７０】
従来の分岐決定回路３０、４０では、後到着ＡＬＵ＝０信号では条件付けをしない。この場合ａｌｕゼロ条件コードは条件コード・レジスタ７０のｎ＝２ビットから選択され、ＡＬＵ＝０信号はＩＣＣＦＡの条件に基づくＡＬＵから選択される。従来のｍｕｘ選択論理は次の通りである。
【数６】
0003597547.tif 000011
【００７１】
候補条件コードＡＬＵ−Ｚ０とＡＬＵ−Ｚ１は、ＡＬＵ０を０か１にそれぞれ設定することによって上の式から条件付けされる。これらの式は次の通りである。
【数７】
0003597547.tif 000012
【００７２】
信号ＡＬＵ−Ｚ０は第３条件コード論理回路７６で発生し、その出力信号ＡＬＵ−Ｚ０は第１および第３候補分岐決定回路５２、５６に送られる。この第３条件コード論理回路７６は、図３に示すように一般的にＡＮＤゲートである。
【００７３】
信号ＡＬＵ−Ｚ１は第４条件コード論理回路７８で発生し、その出力信号ＡＬＵ−Ｚ１は第２および第４候補分岐決定回路５４、５８に送られる。この第４条件コード論理回路７８は、図３に示すように一般的にＯＲゲートである。
【００７４】
更に図３において、候補分岐決定回路５２、５４、５６、５８のＮＡＮＤゲート９２、９４、９６、９８には、前に説明したように使用可能信号ＥＮ＜３：０＞とゲートされた候補条件コードが入る。ＥＸＮＯＲ１００には、ＮＡＮＤゲート９４、９６からゲートされた候補状態コードが入る。
【００７５】
３入力ＮＡＮＤゲート１０２は、ＥＸＮＯＲ１００とＮＡＮＤゲート９２、９８の出力を受けて候補分岐決定信号ＪＴｘ−ＡＬＵｙ’を生成する。ただしｘ，ｙは表２に示したように、ｃｉｎ３１とＡＬＵ０の候補条件である。ＪＴｘ−ＡＬＵｙ’の論理表現は、候補条件コードと使用可能信号を用いて次のように表される。
【数８】
0003597547.tif 000013
【００７６】
候補分岐決定ＪＴｘ−ＡＬＵｙ’は、ＮＡＮＤゲート１０２の出力と信号ＩＮＶ−ＪＴを受ける２入力ＥＸＯＲゲート１０４で反転してよい。ＩＮＶ−ＪＴは、ＥＸＯＲ機能の定義により、次のように候補分岐決定を反転する。
【００７７】
すなわち、ＩＮＶ−ＪＴが負（ＩＮＶ−ＪＴ＝０）であれば、ＮＡＮＤゲート１０２の出力が負のときは負の候補分岐決定を発生し、ＮＡＮＤゲート１０２の出力が正のときは正の候補分岐決定を発生する。
【００７８】
ＩＮＶ−ＪＴが正（ＩＮＶ−ＪＴ＝１）であれば、ＮＡＮＤゲート１０２の出力が負のときは正の候補分岐決定を発生し、ＮＡＮＤゲート１０２の出力が正のときは負の候補分岐決定を発生する。ＥＸＯＲ１０４の後の最終出力はＪＴｘ−ＡＬＵｙである。ただし、上に述べたように候補条件に従って、ｘ，ｙは０，０または０，１または１，０または１，１である。
【００７９】
前に説明したように、望ましい実施態様の回路５０は、候補分岐決定信号選択ｍｕｘ６２、６４、６６によって、４つの候補分岐決定信号ＪＴ０−ＡＬＵ０、ＪＴ０−ＡＬＵ１、ＪＴ１−ＡＬＵ０、ＪＴ１−ＡＬＵ１から選択する。図３に示すｍｕｘの配列は、リップルけた上げ加算器、けた上げ先見加算器、条件付き和加算器に一般的な信号と両立する。
【００８０】
この配列を他の加算器と共に使うように修正するのは、この技術に精通した人には簡単である。また上に挙げた加算器は少し異なった構造を備えてよく、これに関連してこの発明と両立するように改造できることは明かである。可能性のある別の実施態様を例示するため、修正を以下に示す。
【００８１】
この発明の他の実施態様と同様に、例示の実施態様の各種の修正や組合わせは、この説明を参照すればこの技術に精通した人には明かである。従って特許請求の範囲は、そのような修正や実施態様を含むものである。
【００８２】
図４に、条件コード・レジスタ７０と、関連する回路１１０の望ましい実施態様の略図を示す。この応用では、４ビットの４対１ｍｕｘ１１２は、４つの条件コード源の１つから条件コード・レジスタ７０にロードするデータを選択する選択入力Ｓ０、Ｓ１によって動作する。
【００８３】
Ｓ０とＳ１は関連するプロセッサで与えることが望ましい。この例でＳ０，Ｓ１＝０，０であれば、３ビットの２対１ｍｕｘ１１４からの３ビットのデータと、ＡＬＵ０信号からの第４ビットが、条件コードレジスタ７０に入る。このｍｕｘ１１４は、候補分岐決定信号ＡＬＵ−ＮＺＶＣ０＜３，１：０＞とＡＬＵ−ＮＺＶＣ１＜３，１：０＞からｃｉｎ３１の条件によって選択して、信号ＡＬＵ−ＮＺＶＣ＜３，１：０＞を生成する。
【００８４】
またＳ０，Ｓ１＝０，１であれば、ｍｕｘ１１２はデータとしてＷＲＩＴＥ−ＤＡＴＡ＜３：０＞を選択して、条件コード・レジスタ７０に送る。ＷＲＩＴＥ−ＤＡＴＡ＜３：０＞は、ＡＬＵから直接に条件コード・レジスタ７０に書き込むデータでもよい。Ｓ０，Ｓ１＝１，０であれば、ｍｕｘ１１２はデータとしてＴＲＡＰ＜３：０＞を選択して、条件コード・レジスタ７０に送る。
【００８５】
最後にＳ０，Ｓ１＝１，１であれば、条件コード・レジスタ７０の出力ＩＣＣ＜３：０＞の値は条件コード・レジスタ７０に再び入力され、条件コード・レジスタ内に一定のデータを保持する。
【００８６】
図４に示す信号と回路は、条件コード・レジスタがどのように動作して異なる条件コードのグループの中から選択するかを示す単なる例である。この機能の特長は、ＴＲＡＰ＜３：０＞、ＷＲＩＴＥ−ＤＡＴＡ＜３：０＞、およびその他の条件コードのグループの用い方と同様に、この技術の技術者には明かである。
【００８７】
図５ａ、図５ｂに関連して図３において、ｍｕｘ８０、８２とゲート７６、７８は条件コードを送るためのものである。条件コード送り回路７６、７８、８０、８２と条件コード論理回路７２、７４の動作は、図３と関連して図５ａと図５ｂのタイミング図を見ればよく理解できる。図５ａ、図５ｂは、パイプライン構造の数個のクロックサイクルを示す。
【００８８】
図５ａ、図５ｂに示す逐次命令は垂直方向に並べてあり、その実行はパイプライン構造内で部分的に重なっている。図５ａ、図５ｂは送りがある場合とない場合の算術演算を示す。パイプライン構造では、分岐決定直前の命令によって条件コードを変更すると、次の分岐命令が分岐決定を行うのと同じクロックサイクル中にＡＬＵは条件コードを生成する。
【００８９】
従って、ＩＣＣＦＡが正であれば、条件コード送り回路７６、７８、８０、８２は現在のコードを直接選択し、条件コード・レジスタ７０からは選択しない。ＩＣＣＦＡ＝０の場合は条件コードは前の命令によって設定されるので、分岐決定のためのラッチされた条件コードは条件コード・レジスタ７０から読まなければならない。
【００９０】
この選択は、ＩＣＣＦＡで制御される２対１送りｍｕｘ８０、８２とゲート７６、７８を用いて行うことができる。ＩＣＣＦＡ＝０によって条件コード・レジスタ７０からのデータを選択すると、候補分岐決定回路５２、５４、５６、６８を通って同じ信号が送られる。全ての分岐決定が同じなので、どの回路が適当な候補分岐決定かを選択するのは重要でない。
【００９１】
図６ａは、第２の望ましい実施態様の分岐決定回路の第１の応用１２０の部分的な略図を示す。この実施態様の構造は、図９に示すようなけた上げ選択加算器とも両立する。候補分岐決定信号選択ｍｕｘ６２、６４は、ＡＬＵ０を基にして候補分岐決定信号ＪＴｘ−ＡＬＵｙを決定する。
【００９２】
第１の望ましい実施態様の分岐決定回路５０と同じように、４つの候補分岐決定から候補分岐ｍｕｘ６２、６４により２つの中間の候補分岐決定ＪＴ０、ＪＴ１を出力する。しかし第２の望ましい実施態様の回路は、ｃｉｎ３１ｌとｃｉｎ３１ｈと更にｇｃｉｎによって、中間の候補分岐決定信号ＪＴ０、ＪＴ１を出力しなければならない。
【００９３】
図６ａに示す第１の応用１２０は、選択入力ｃｉｎ３１ｌが入るｍｕｘ１２２を用いてＪＴ０とＪＴ１のどちらかを選択して次のレベルの中間信号ＪＴ０’に継続し、また選択入力ｃｉｎ３１ｈが入るｍｕｘ１２４を用いてＪＴ０とＪＴ１のどちらかを選択してＪＴ１’として継続する。次にＪＴは、選択入力ｇｃｉｎが入るｍｕｘ１２６によって、ＪＴ０’とＪＴ１’から選択する。
【００９４】
第２の望ましい実施態様の第２の応用１３０を、図６ｂに示す。第１の応用１２０と同様に、候補分岐決定信号選択ｍｕｘ６２、６４は、ＡＬＵ０を基にして候補分岐決定信号ＪＴｘ−ＡＬＵｙを決定する。
【００９５】
第１の望ましい実施態様の分岐決定回路５０と同じように、４つの候補分岐決定から候補分岐ｍｕｘ６２、６４により２つの中間の候補分岐決定ＪＴ０、ＪＴ１を出力する。次にｍｕｘ１３４は、ｃｉｎ３１’に基づいて中間信号ＪＴ０とＪＴ１から選択し、分岐決定信号ＪＴを出力する。
【００９６】
この実施態様の構造は、図９に示すようなけた上げ選択加算器とも両立する。第２の望ましい実施態様の第２の応用は、第１の応用とは異なる信号経路遅れを与えるもので、使用する加算器の信号遅れによっては有効な場合に用いる。
【００９７】
図７に、第３の望ましい実施態様の分岐決定回路１４０の部分的な略図を示す。この実施態様の構造は、最後に到着する条件コードであるＡＬＵ０に対して最適化された、けた上げリップル加算器、けた上げ先見加算器、条件付き和加算器、その他の加算器／ＡＬＵと両立する。
【００９８】
この実施態様では、ｍｕｘ１４２は、ｃｉｎ３１を選択入力として用いてＪＴ０−ＡＬＵ０とＪＴ１−ＡＬＵ０から中間分岐決定信号ＡＬ０を出力し、ｍｕｘ１４４は、ｃｉｎ３１を選択入力として用いてＪＴ０−ＡＬＵ１とＪＴ１−ＡＬＵ１からＪＴ１を出力する。次にｍｕｘ１４６は、ＡＬＵ０をｍｕｘ１４６の選択入力として用いてＡＬ０とＡＬ１から分岐決定信号ＪＴを出力する。
【００９９】
図８は、第４の望ましい実施態様の分岐決定回路１５０の部分的な略図を示す。この実施態様の構造は、最後に到着する条件コードであるＡＬＵ０に対して最適化されたけた上げ選択加算器／ＡＬＵと両立する。
【０１００】
この実施態様では、ｍｕｘ１５２は、ｃｉｎ３１ｌを選択入力として用いてＪＴ０−ＡＬＵ０とＪＴ１−ＡＬＵ０からＪＴ０−ＡＬＵ０（Ｉ）を出力し、ｍｕｘ１５４は、ｃｉｎ３１ｈを選択入力として用いてＪＴ０−ＡＬＵ０とＪＴ１−ＡＬＵ０からＪＴ１−ＡＬＵ０（Ｉ）を出力する。更にこの実施態様のｍｕｘ１５６は、ｃｉｎ３１ｌを選択入力として用いてＪＴ０−ＡＬＵ１とＪＴ１−ＡＬＵ１からＪＴ０−ＡＬＵ１（Ｉ）を出力し、ｍｕｘ１５８は、ｃｉｎ３１ｈを選択入力として用いてＪＴ０−ＡＬＵ１とＪＴ１−ＡＬＵ１からＪＴ１−ＡＬＵ１（Ｉ）を出力する。
【０１０１】
次にｍｕｘ１６０は、ｇｃｉｎを選択入力として用いてＪＴ０−ＡＬＵ０（Ｉ）とＪＴ１−ＡＬＵ０（Ｉ）からＡＬ０を出力し、ｍｕｘ１６２は、ｇｃｉｎを選択入力として用いてＪＴ０−ＡＬＵ１（Ｉ）とＪＴ１−ＡＬＵ１（Ｉ）からＡＬ１を出力する。最後に、ｍｕｘ１６４は、ＡＬＵ０をｍｕｘ１６４への選択入力として用いてＡＬ０とＡＬ１から分岐決定信号ＪＴを出力する。
【０１０２】
図９に、分岐決定信号選択に用いるＭＳＢけた上げ入力信号ｃｉｎ３１ｌとｃｉｎ３１ｈを出力する、Ｎビットの部分的な和加算器１７２、１７４、１７６を備える、けた上げ選択加算器１７０の略図を示す。この略図では、ＳＵＭ＜Ｎ−１：０＞についてＮビットの部分的な和加算器１７２を用いて２Ｎビット和を行う。
【０１０３】
ｍｕｘ１７８は、けた上げ入力が０のＮビットの加算器１７４とけた上げ入力が１のＮビットの加算器１７６とから、ＳＵＭ＜２Ｎ−１：Ｎ＞を選択する。これらの２個の加算器１７４、１７６からの選択は、部分的な和加算器１７２からのけた上げ出力ｇｃｉｎによって行う。
【０１０４】
加算器１７４はけた上げ入力からＭＳＢに出力ｃｉｎ３１ｌを与え、加算器１７６はけた上げ入力からＭＳＢに出力ｃｉｎ３１ｈを与える。ｃｉｎ３１ｌ、ｃｉｎ３１ｈ、ｇｃｉｎは、図６ａ、図６ｂ、図８に示す第２および第４の望ましい実施態様の分岐決定回路でｍｕｘ選択に用いられる信号である。
【０１０５】
図１０は図９にブロックで示した部分的な和加算器１７２、１７４、１７６に用いるＮビットのリップルけた上げ加算器１８０の部分的な略図を示す。これらの加算器は、図３に示す第１の望ましい実施態様の加算器回路としてもよい。この場合Ｎは３２であってよい。ただし、３２は全加算器／ＡＬＵのビット数であった。図１０に示すｃｉｎ３１信号は、ＭＳＢけた上げ入力の後到着状態信号である。
【０１０６】
図１１は、Ｎビットけた上げ先見加算器２００の略図である。この加算器は、ＡＮＤ・ＯＲゲート２０４・２０６で計算されるグループけた上げ入力を受ける、けた上げ先見加算器セル２０２を用いる。ＡＮＤ・ＯＲゲート２０４・２０６は、下位の加算器セル２０２からのグループ伝搬信号ｐとグループ発生信号ｇから、けた上げ入力を計算する。
【０１０７】
最上位加算器セル２０２は、図１１に示すようにＳＵＭ＜Ｎ−１：Ｎ−４＞を計算する。更にこの最上位加算器セル２０２は、前に説明したように望ましい実施態様の分岐決定回路で用いるＭＳＢけた上げ入力を出力する。
【０１０８】
この信号の起源を下の図１２に示す。この特定のけた上げ先見加算器の加算器セル２０２は４ビットを持つ。ただしこの実施態様で選んだこのビット数は例示のためであって、他の大きさの加算器セル２０２を選んでもよい。けた上げ先見加算器構造はこの技術でよく知られている。
【０１０９】
図１２は、図１１で用いるけた上げ先見加算器セル２０２を示す。このセルの動作は、この技術でよく知られている。従って１ビットの和Ｓ＜ｎ＞は、ＥＸＯＲゲート２１２を用いてけた上げ入力信号Ｃ＜ｎ＞と伝搬信号Ｐ＜ｎ＞から発生する。ただしｎは入力信号、出力信号、関連回路のビット位置を表す指標変数である。
【０１１０】
ここに示す４ビット加算器セル２０２の場合は、ｎは０から３までである。Ｃ＜０＞信号は、下位のけた上げ先見加算器セル２０２からのｇｃｉｎである。図１１の実施態様の最上位加算器セル２０２のＣ＜３＞信号は、望ましい実施態様の分岐決定回路へｃｉｎ３１信号を与える。
【０１１１】
前に述べたように、けた上げ先見加算器セル２０２の動作はこの技術でよく知られている。よく知られているように、ＡＮＤ・ＯＲゲート２１４・２１６はＧ＜ｎ−１＞、Ｐ＜ｎ−１＞、Ｃ＜ｎ−１＞を受け、けた上げ入力信号Ｃ＜ｎ＞を関連する加算器セルに発生する。けた上げ先見加算器セル２０２のこの部分は、リップルけた上げ加算器と実質的に同じである。
【０１１２】
加算器けた上げがリップルまたは伝搬しなければならないゲートの数を最少にするために、ＡＮＤゲート２２２は全てのＰ＜ｎ＞信号、ｎ＝０から３まで、を受け、図１１に示すｇ出力であるグループ伝搬信号ＧＲＰ  ＰＲＯＰを発生する。更にＡＮＤ・ＯＲゲート２１８・２２０は、Ｐ＜ｎ＞、ｎ＝１，２，３、とＧ＜ｎ＞、ｎ＝０から３まで、の関数であるグループ発生信号ＧＲＰ  ＧＥＮを発生する。
【０１１３】
ＧＲＰ  ＧＥＮとＧＲＰ  ＰＲＯＰは、グループけた上げ入力ｇｃｉｎを含めていかなるけた上げ入力信号の関数でもないので、けた上げリップリングで起こる遅れの量は非常に減少する。図１２と上記の説明に示した論理は分かりやすくするために簡単化してあり、速度や回路レイアウトの修正はこの技術の技術者には明かである。
【０１１４】
図６ａ、図６ｂ、図８（第２および第４実施態様）を図３、図７（第１および第３実施態様）と比べると、第１および第３実施態様の方が必要なｍｕｘ段階が少なく、従って正しい分岐決定信号を発生する際の遅れが小さい。図３および図７の第１および第３実施態様を支持する一般化したＡＬＵ回路２３０を図１３ａに示す。
【０１１５】
この図には、最下位ビット（ＬＳＢ）のためのＮ−１ビットのＡＬＵ２３２と、分離した最上位（ＭＳＢ）のための別の１ビットのＡＬＵ２３４を含む、ＮビットＡＬＵ２３０を示す。このように分けると、Ｎ−１ビットのＡＬＵ２３２のけた上げ出力としてｃｉｎ３１信号を発生する。Ｎ−１ビットのＡＬＵ２３２は、けた上げリップル加算器／ＡＬＵ、けた上げ先見加算器／ＡＬＵ、けた上げ選択加算器／ＡＬＵ、条件付き和加算器／ＡＬＵ、およびその他の加算器／ＡＬＵを含む多くの異なる加算器構造で実現することができる。
【０１１６】
図１３ｂに、Ｎ−１ビットの条件付き和加算器２４０のハイレベル図を示す。この技術に共通のＮ＝３２であれば、Ｎ−１ビットの条件付き和加算器はけた上げ入力を持つ３１ビット加算器である。条件付き和加算器は２の累乗ビット幅が望ましいので、これをけた上げ入力なしの３２ビットの加算器としても同等のものが実現できる。
【０１１７】
この場合、和出力は必要でなくまたけた上げ発生はけた上げ入力と同じなので、加算器の単一ＬＳＢ回路は簡単になる。条件付き和加算器２４０のこの方式の重要な特長は、ここに述べた望ましい実施態様の分岐決定回路などの分岐決定回路に、ｃｉｎ３１信号を与えるのが容易になることである。
【０１１８】
ｃｉｎ３１を容易に与えることができるこの条件付き和加算器の重要な構造的特長は、加算器を半加算器２４２と２４４に分割するのに、この技術でよく知られているビット１５と１６の間ではなくて、ビット１４と１５の間で行うことである。条件付き和加算器２４０の動作は、この技術の技術者がよく見れば明かである。
【０１１９】
簡単に述べると、加算器２４０の第１半加算器２４２は、Ａ＜１４：０＞とＢ＜１４：０＞を受けてＳＵＭ＜１４：０＞を計算し、条件付き和加算器に共通に用いられる２の累乗ビット幅を確保するために、けた上げ入力をＬＳＢに入力する。第１半加算器２４２からのけた上げ出力はｍｕｘ２４６の選択入力として用いられる。ｍｕｘ２４６は、条件付き和加算器２４０の第２半加算器２４４の第１および第２部分２４４ａ、２４４ｂによって計算される２つの条件付き和のどちらかを選択する。
【０１２０】
第１半加算器２４２からのけた上げ出力は更にｍｕｘ２４８の選択入力として用いられ、条件付き加算器２４０の第２半加算器２４４の第１および第２部分２４４ａ、２４４ｂから、正しいけた上げ出力を選択する。ｍｕｘ２４８の選択された出力は、この技術でよく知られているように、その後の加算器段階へのグループけた上げ入力、すなわちｇｃｉｎとして働く。
【０１２１】
ｍｕｘ２４６は、加算器２４０の第１半加算器２４２からのけた上げ出力による正しい条件付き和の選択によってＳＵＭ＜３０：１５＞を出力する。条件付き和加算器２４０の第２半加算器２４４の第１および第２部分２４４ａ、２４４ｂは、分かりやすくするために分離して示している。
【０１２２】
次に図１４ａ、図１４ｂに、ＡＬＵ＝０回路２５０の略図を示す。この例示のＡＬＵ＝０回路の詳細は、ボスハート他による米国特許申請番号９２２，９２６に開示されている。図１４ａでは、実際のＡＬＵ計算の結果に関わらずＡＬＵ＝０を計算することのできるＡＬＵ＝０回路２５０を示し、ＡＬＵの計算結果が出る前にまたは同時に、ＡＬＵ＝０信号を出力する。
【０１２３】
この方式において、ＮビットのＡＮＤ回路２５２には、１ビットのゼロ・セル２５４からＮ個の１ビットのゼロ信号Ｚｎ  、ｎ＝０からＮ−１まで、が入力する。ＮビットのＡＮＤ２５２回路は、Ｎ個の１ビットのゼロ信号Ｚｎ  の論理和を行う。図１４ａに示すように、各ｎ番目の１ビットのゼロ・セル２５４は、次の下位の１ビットのゼロ・セル２５４からＫｎ−１  を受け、次の最上位の１ビットのゼロ・セル２５４にＫｎ  を出力する。
【０１２４】
図１４ｂを見ると、各１ビットのゼロ信号Ｚｎ  はｎ番目とｎ−１番目のセルの信号だけによるので、加算器／減算器回路の全Ｎビットの特性を通じて信号のリップルや伝搬を防ぐ。Ｋｎ  、Ｇｎ  、Ｐｎ  、Ｚｎ  セル２６２、２６４、４６６、４６８は、信号Ｋｎ  、Ｇｎ  、Ｐｎ  、Ｚｎ  （それぞれｎ＝０からＮ−１）を発生する。
【０１２５】
Ｐｎ  とＧｎ  はＡＬＵ＝０信号に明示的には用いられていない（Ｚｎ  はＰｎ  を間接的に用いる。他の方式でもよい）が、これらの信号は加算器／ＡＬＵ設計の技術でよく知られており、ここでは例示の目的で加算器として示している。減算器すなわちＡＬＵは、Ｋｎ  、Ｇｎ  、Ｐｎ  、Ｚｎ  セル２６２、２６４、２６６、２６８の他の構成を用いてよい。これらの他の方式や修正は、この技術でよく知られている。
【０１２６】
次の表５は、この実施態様と図面の概要を与える。
【表５】
0003597547.tif 000014
【表６】
0003597547.tif 000015
【表７】
0003597547.tif 000016
【表８】
0003597547.tif 000017
【０１２７】
望ましい実施態様の回路で用いる命名の規約は、例として３２ビットＡＬＵを用いた。従ってＭＳＢは、この文書の文脈の中では第３１ビットである。３２ビット以外の大きさのＡＬＵを使えることは明かであり、従って特許請求の範囲に規定しているように、この発明でも予想している。
【０１２８】
以上にいくつかの望ましい実施態様を詳細に説明した。この発明の範囲は、ここに説明したものとは異なっても特許請求の範囲内にある実施態様をも含むものである。
【０１２９】
場合によっては、「マイクロコンピュータ」という語は記憶を持ったもので、「マイクロプロセッサ」は記憶を持たないものとして用いられる。ここでは、これらの用語は同義語であって同じものを指すものとする。
【０１３０】
「処理回路」という語は、ＡＳＩＣ（用途向け集積回路）、ＰＡＬ（プログラマブル・アレイ論理）、ＰＬＡ（プログラマブル論理アレイ）、複号器、記憶装置、非ソフトウエア基準プロセッサ、またはその他の回路、または任意の構成のマイクロプロセッサやマイクロコンピュータを含むディジタル・コンピュータ、またはそれらの組合わせを含む。発明の範囲を考慮する際には、含むという語は無制限と解釈する。
【０１３１】
これの実現は、シリコン、ガリウム砒素、その他の電子材料族を用いた離散要素または完全な集積回路でも、光学的または他の技術を基にした形式や実施態様でも考えられる。この発明の各種の実施態様は、ハードウエア、ソフトウエア、マイクロコード化ファームウエアを採用または実施することができる。
【０１３２】
この発明について例示の実施態様を参照して説明したが、この説明は制限的に解釈してはならない。この発明の他の実施態様も例示の実施態様の各種の修正や組合わせも、この説明を参照すればこの技術に精通した人には明かである。従って特許請求の範囲は、そのような全ての修正や実施態様を含むものである。
【０１３３】
以上の説明に関して更に以下の項を開示する。
（１）  ａｌｕ状態信号を出力する関連算術論理ユニットで実行する算術または論理操作の結果に基づいて分岐決定信号を出す回路であって、
ａ）  少なくとも２つの候補分岐決定回路であって、それぞれは候補分岐決定信号を計算し、それぞれは少なくとも１つの前記ａｌｕ状態信号に対して独特の候補条件コードを出力し、前記ａｌｕ状態信号は少なくとも２つの条件を持つものと、
ｂ）  前記少なくとも１つのａｌｕ状態信号に基づいて、前記少なくとも２つの候補分岐決定信号から正しい分岐決定信号を選択する第１選択回路と、
を含む回路。
【０１３４】
（２）  前記少なくとも１つのａｌｕ状態信号と少なくとも１つの他のａｌｕ状態信号から、少なくとも２つの計算された候補条件コードを計算するための少なくとも１つの条件コード論理回路を更に備え、各計算された候補条件コードは候補ａｌｕ状態信号の独特の組合わせから得られる、第１項記載の回路。
（３）  ラッチされた条件コードを記憶する条件コード・レジスタを更に備える、第２項記載の回路。
（４）  前記計算された候補条件コードと前記ラッチされた条件コードから選択するための第２選択回路を更に備える、第３項記載の回路。
【０１３５】
（５）  前記条件コード・レジスタに入力されまたプロセッサの制御の下に選択される、少なくとも２つの条件コード源の１つを選択するための、第３選択回路を更に備える、第３項記載の回路。
（６）  前記条件コード源の１つは１組のラッチされた条件コードであって、前の命令サイクルからの条件コードを用いてよい、第５項記載の回路。
（７）  前記第１選択回路はマルチプレクサ網を備える、第１項記載の回路。
（８）  前記マルチプレクサ網は単一のマルチプレクサである、第７項記載の回路。
【０１３６】
（９）  前記選択回路は論理積・論理和・反転ゲート網を備える、第１項記載の回路。
（１０）  前記少なくとも１つのａｌｕ状態信号は、前記算術または論理操作の結果が前記算術論理ユニットの最上位ビットにけた上げ入力を生じたかどうかを示す、第１項記載の回路。
（１１）  前記少なくとも１つのａｌｕ状態信号は、前記算術または論理演算の結果がゼロかどうかを示す、第１項記載の回路。
（１２）  前記第１選択回路は、前記少なくとも１つのａｌｕ状態信号と少なくとも１つの他のａｌｕ状態信号とに基づいて、正しい分岐決定信号を選択する、第１項記載の回路。
【０１３７】
（１３）  少なくとも２つの中間分岐決定信号は、前記少なくとも１つの前記ａｌｕ状態信号に基づいて前記少なくとも２つの候補分岐決定信号から選択される、第１２項記載の回路。
（１４）  前記正しい分岐決定信号は、前記少なくとも１つの他の前記ａｌｕ状態信号に基づいて前記少なくとも２つの中間分岐決定信号から選択される、第１３項記載の回路。
（１５）  前記少なくとも１つの前記ａｌｕ状態信号は、前記算術または論理演算の結果がゼロかどうかを示す、第１４項記載の回路。
【０１３８】
（１６）  前記少なくとも１つの他の前記ａｌｕ状態信号は、前記算術または論理操作の結果が前記算術論理ユニットの最上位ビットにけた上げ入力を生じたかどうかを示す、第１５項記載の回路。
（１７）  前記少なくとも１つの前記ａｌｕ状態信号は、前記算術または論理操作の結果が前記算術論理ユニットの最上位ビットにけた上げ入力を生じたかどうかを示す、第１４項記載の回路。
（１８）  前記少なくとも１つの他の前記ａｌｕ状態信号は、前記算術または論理演算の結果がゼロかどうかを示す、第１７項記載の回路。
【０１３９】
（１９）  少なくとも１つの更に別の前記ａｌｕ状態信号は、下位グループのビットからのけた上げ入力の結果を示す、第１８項記載の回路。
（２０）  前記少なくとも１つの前記ａｌｕ状態信号は、前記算術または論理演算の結果がゼロかどうかを示す、第１９項記載の回路。
（２１）  前記少なくとも１つの他の前記ａｌｕ状態信号は、２つの追加のａｌｕ状態信号から選択する前記第１選択回路の一部となる、第２０項記載の回路。
（２２）  前記算術および論理ユニットはＮビットを持つ、第１２項記載の回路。
【０１４０】
（２３）  前記Ｎビットの算術および論理ユニットは、Ｎ−１ビットの算術および論理ユニットと１ビットのＭＳＢ算術および論理ユニットを備える、第２２項記載の回路。
（２４）  前記Ｎ−１ビットの算術および論理ユニットは、けた上げ入力なしのＮビットの算術および論理ユニットの構造を備える、第２３項記載の回路。
（２５）  前記Ｎ−１ビットの算術および論理ユニットは条件付き和算術および論理ユニットである、第２４項記載の回路。
（２６）  前記条件付き和算術および論理ユニットは、第１半分と第２半分を備え、前記第１半分は０ビットから（Ｎ×１／２）−２ビットまでの和を計算し、前記第２半分は（Ｎ×１／２）−１ビットからＮ−１ビットまでの和を計算する、第２５項記載の回路。
【０１４１】
（２７）  前記条件付き和算術および論理ユニットは、条件付き和加算器である、第２６項記載の回路。
（２８）  分岐決定を行う方法であって、
ａ）  算術または論理演算を実行し、
ｂ）  少なくとも１つのａｌｕ状態信号を与え、
ｃ）  少なくとも２つの候補分岐決定信号を計算し、それぞれは前記少なくとも１つのａｌｕ状態信号に対して独特の状態信号コードを出力し、
ｄ）  前記状態信号が出るときの前記少なくとも１つのａｌｕ状態信号に基づいて、前記少なくとも２つの候補分岐決定信号から正しい分岐決定信号を選択する、
段階を含む方法。
【０１４２】
（２９）  この発明において、算術または論理演算の結果に基づいて分岐決定信号を出す回路５０を説明する。この回路は少なくとも２つの候補分岐決定回路５２、５４、５６、５８を備え、少なくとも１つのａｌｕ状態信号に対する独特の候補条件コードに基づいて、候補分岐決定信号をそれぞれ計算する。この回路は第１選択回路６２，６４，６６を更に備え、前記状態信号が出たときに前記ａｌｕ状態信号に基づいて、前記候補分岐決定信号から正しい分岐決定信号を選択する。その他の装置、システム、方法も開示する。
【０１４３】
【関連米国特許の相互参照】
特許番号／出願番号                      出願日                        ＴＩケース番号
４，８１５，０１９              １９８７年２月２６日          ＴＩ−１２４３８
０７／９２２，９２６          １９９２年７月３１日          ＴＩ−１６０５６
０７／８２３，２８２          １９９２年７月３１日          ＴＩ−１６５７５
【図面の簡単な説明】
【図１】第１の従来の分岐決定回路の略図。
【図２】第２の従来の分岐決定回路の略図。
【図３】最後に到着する条件コードｃｉｎ３１に対して最適化された第１の望ましい実施態様の分岐決定回路の略図。
【図４】条件コード・レジスタと関連回路の望ましい実施態様の略図。
【図５】ａは送りありの場合の、条件コード・レジスタと関連回路のタイミング図。
ｂは送りなしの場合の、条件コード・レジスタと関連回路のタイミング図。
【図６】ａは第２の望ましい実施態様の分岐決定回路の候補分岐決定信号選択ｍｕｘの第１方式で、最後に到着する条件コードであるｇｃｉｎに対して最適化されたけた上げ選択加算器／ＡＬＵと両立する構造を示す部分略図。ｂは第２の望ましい実施態様の分岐決定回路の候補分岐決定信号選択ｍｕｘの第２方式で、最後に到着する条件コードであるｇｃｉｎに対して最適化されたけた上げ選択加算器／ＡＬＵと両立する構造を示す部分略図。
【図７】第３の望ましい実施態様の分岐決定回路の候補分岐決定信号選択ｍｕｘの方式で、最後に到着する条件コードであるＡＬＵ０に対して最適化された加算器／ＡＬＵと両立する構造を示す部分略図。
【図８】第４の望ましい実施態様の分岐決定回路の候補分岐決定信号選択ｍｕｘの方式で、最後に到着する条件コードであるＡＬＵ０に対して最適化されたけた上げ選択加算器／ＡＬＵと両立する構造を示す部分略図。
【図９】分岐決定信号選択のためにＭＳＢけた上げ入力信号を出すＮビットの部分的な和加算器を備える、けた上げ選択加算器のハイレベルの略図。
【図１０】図９にブロックで示す部分的な和加算器に用いることのできるＮビットのリップルけた上げ加算器の部分的な略図。
【図１１】分岐決定信号選択のためにＭＳＢけた上げ入力信号を出すＮビットの部分的な和加算器を備える、けた上げ先見加算器のハイレベルの略図。
【図１２】図１１にブロックで示す部分的な和加算器として用いることのできるＮビットのけた上げ先見加算器の部分的な略図。
【図１３】図３および図７の実施態様を支持する一般化されたＡＬＵ回路を示す。
【図１４】１ビットのゼロ・セルを備えるＡＬＵ＝０回路を示す。
特に指示のない限り、異なる図の対応する数字と符号は、対応する部分に関連する。
【符号の説明】
３０                                            第１の従来の分岐決定回路
３２，３３，３４，３５        分岐決定信号ゲート
３６                                            ＥＸＯＲゲート
３７                                            ＯＲゲート
３８                                            ＥＸＯＲゲート
４０                                            第２の従来の分岐決定回路
４２，４３，４４，４５        分岐決定信号ゲート
４６                                            ＥＸＮＯＲゲート
４７                                            ＮＡＮＤゲート
４８                                            ＥＸＯＲゲート
５０                                            第１の望ましい実施態様の分岐決定回路
５２，５４，５６，５８        候補分岐決定回路
６２，６４，６６                    選択回路
７０                                            条件コード・レジスタ
７２，７４，７６，７８        条件コード論理回路
８０，８２                                選択回路
８４                                            ＯＲゲート
８６                                            ＥＸＯＲゲート
８８                                            ＯＲゲート
９０                                            ＥＸＮＯＲゲート
９２，９４，９６，９８        候補分岐決定信号ゲート
１００                                        ＥＸＮＯＲゲート
１０２                                        ＮＡＮＤゲート
１０４                                        ＥＸＯＲゲート
１１０                                        条件コード・レジスタ関連回路
１１２                                        選択回路
１１４                                        ３ビットの２対１ｍｕｘ
１２０                                        部分的な第２の望ましい実施態様
１２２，１２４，，１２６    選択回路
１３０                                        別の部分的な第２の望ましい実施態様
１３２，１３４，１３６        選択回路
１４０                                        部分的な第３の望ましい実施態様
１４２，１４４，１４６        選択回路
１５０                                        部分的な第４の望ましい実施態様
１５２，１５４，１５６，１５８        選択回路
１６０，１６２，１６４        選択回路
１７０                                        けた上げ選択加算器
１７２，１７４，１７６        部分的な和加算器
１８０                                        部分的な和加算器
１８２                                        ＥＸＯＲゲート
１８４                                        ＡＮＤゲート
１８６                                        ＯＲゲート
２００                                        けた上げ先見加算器
２０２                                        けた上げ先見の部分的な和加算器
２０４                                        ＡＮＤゲート
２０６                                        ＯＲゲート
２１２                                        ＥＸＯＲゲート
２１４                                        ＡＮＤゲート
２１６                                        ＯＲゲート
２１８                                        ＡＮＤゲート
２２０                                        ＯＲゲート
２２２                                        ＡＮＤゲート
２３０                                        一般化したＡＬＵ回路
２３２                                        Ｎ−１ビットの条件付き和加算器
２３４                                        １ビットのＡＬＵ
２４０                                        Ｎ−１ビットの条件付き和加算器
２４２                                        第１半加算器
２４４                                        第２半加算器
２４６                                        Ｎ−１ビットのｍｕｘ
２４８                                        １ビットのｍｕｘ
２５０                                        ＡＬＵ＝０回路
２５２                                        Ｎ入力ＡＮＤ回路
２５４                                        １ビットのゼロ・セル
２６２                                        Ｋｎ  セル
２６４                                        Ｇｎ  セル
２６６                                        Ｐｎ  セル
２６８                                        Ｚｎ  セル
【図１】
0003597547.tif 000018
【図２】
0003597547.tif 000019
【図３】
0003597547.tif 000020
【図４】
0003597547.tif 000021
【図５】
0003597547.tif 000022
【図６】
0003597547.tif 000023
【図７】
0003597547.tif 000024
【図８】
0003597547.tif 000025
【図９】
0003597547.tif 000026
【図１０】
0003597547.tif 000027
【図１１】
0003597547.tif 000028
【図１２】
0003597547.tif 000029
【図１３】
0003597547.tif 000030
【図１４】
0003597547.tif 000031