(57)【要約】【課題】複数の命令を含む命令セットに応答して動作することができるプロセッサ。【解決手段】プロセッサ（５０）は整数個Ｓのサブユニット（５４1，５４2，５４3）を含み、Ｓは１よりも大きい整数である。各サブユニットは、単一実行サイクル中に、少なくとも２つのデータ引数（Ａ，Ｂ）に応答して命令セット内の少なくとも一つの命令を実行するように動作することができる。プロセッサはさらに単一実行サイクルに対して少なくとも２つのデータ引数の更新値をＳのサブユニットの全部にではなく提供する回路（５８A1，５８A2，５８A3，５８B1，５８B2）を含んでいる。【選択図】図３
2004078965.tif 000002
【特許請求の範囲】
【請求項１】
　複数の命令を含む命令セットに応答して動作することができるプロセッサであって、前記プロセッサは、
　整数個Ｓのサブユニットを含む機能ユニットを含み、
　各サブユニットは実行サイクル中に少なくとも２つのデータ引数に応答して命令セット内の少なくとも一つの命令を実行するように動作することができ、
　Ｓは１よりも大きく、さらに、
　単一実行サイクルに対して少なくとも２つのデータ引数の更新値をＳ個のサブユニットの全部にではなく提供する回路を含むプロセッサ。
【請求項２】
　複数の命令を含む命令セットに応答して動作することができるプロセッサの動作方法であって、プロセッサは整数個Ｓのサブユニットを含む機能ユニットを含みＳは１よりも大きく、前記方法は、
　単一実行サイクルに対して少なくとも２つのデータ引数の更新値をＳ個のサブユニットの全部にではなく提供するステップと、
　単一実行サイクル内で、与えられた少なくとも２つのデータ引数の更新値に応答して命令を実行するステップと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本実施例はマイクロプロセッサやデジタル信号処理装置（“ＤＳＰ”）等の電子プロセッサに関し、特に、プロセッサ機能ユニット内の半分以下のサブユニットへフォワーディングマルチプレクサ(forwarding multiplexer)から選択的にデータを転送する(forwarding)ことにより性能および効率を改善することに向けられている。
【背景技術】
【０００２】
　マイクロプロセッサおよびＤＳＰを含む電子プロセッサは、パーソナル、ビジネス、その他の環境におけるデバイスに対する用途を含む、非常に多くの応用に広く行き渡ってきている。市場の需要は、デバイス消費電力および速度等の要因を含む、プロセッサ設計の多くの側面に影響を及ぼす。その結果、これらおよびその他の要因を改善するためにプロセッサ設計者により絶え間なく評価が行われている。本実施例もこの目的に向かって努力するものである。
【０００３】
　補足的背景として、図１は従来技術のプロセッサ１０のブロック図を例示している。図解および下記の検討を簡単にするために、従来技術と後述する好ましい実施例との間の対比を理解するための基礎を提供するものとして、プロセッサ１０のある側面しか示されていない。したがって、図１のいかなる単純化も制約によるものではなく、当業者ならばプロセッサは典型的に非常に多くの他の属性を含むことを容易に理解できる。特に、プロセッサ１０は本明細書においてまたしばしば従来技術において機能ユニット１２と呼ばれるものを含んでいる。後述するように、現代のプロセッサは図１に示す単一機能ユニット１２と同じ一般的構成の多数の機能ユニットを含んでいるが、適切な検討を行うのにこのような単一ユニットだけの図解で十分である。機能ユニット１２はここでサブユニット１４ｘと呼ばれるものを含んでおり、図解には４つのサブユニット１４１，１４２，１４３，１４４が含まれている。従来技術で知られているように、プロセッサ１０は関連する命令セットを有し、各サブユニット１４ｘはその命令セット内の任意の１つの命令に従って一つ以上のデータ引数に関してデータ操作を実施するように動作する。図１はこれに関してさまざまな例を図解している。第１に、サブユニット１４１は算術論理演算器（“ＡＬＵ”）として示されている。したがって、サブユニット１４１はとりわけ命令セット内のアッド命令に対応するアッド演算を実施する。第２に、図１はサブユニット１４２を例えば論理ＡＮＤ，ＯＲ，等を含む従来技術で既知のさまざまな論理演算を実施するように動作できる論理演算子ブロックとして例示している。第３に、サブユニット１４３はシフターユニットとして示されている。したがって、サブユニット１４３は一つの引数として入力語を受信するように動作することができ、またサブユニット１４３はそのデータ語を数ビット位置だけシフトさせ、ビットシフト位置数はサブユニット１４３へのもう一つの引数入力により与えられ、さらに、場合によってはシフターは他の２つの引数操作を実施するように動作することができる。第４に、サブユニット１４４はノーマライザとして示されている。したがって、サブユニット１４４はそれにより受信される１つの語入力引数内の先行する０または１数を識別するように動作することができる。
【０００４】
　次に、プロセッサ１０内の接続に注目して機能ユニット１２内で開始すると、それは２つのフォワーディングマルチプレクサ１６Ａおよび１６Ｂを含んでおり、そのように名付けられる理由については後述する。参照のために、各フォワーディングマルチプレクサに対する下付添字でも表わされるように、フォワーディングマルチプレクサ１６Ａの出力から与えられるデータは“Ａ”として示されフォワーディングマルチプレクサ１６Ｂの出力から与えられるデータは“Ｂ”として示される。制御入力がフォワーディングマルチプレクサ１６Ａに接続され、機能ユニット１２の実行サイクルの前に、信号ＦＷＤ＿Ａによりマルチプレクサ１６Ａはその入力の一つを選択し、それは図１の例では２つの入力からなり、選択された入力におけるデータをその出力に接続するようにされている。同様に、制御入力はフォワーディングマルチプレクサ１６Ｂに接続され、機能ユニット１２の実行サイクルの前に、その制御入力の信号ＦＷＤ＿Ｂによりマルチプレクサ１６Ｂはその入力の一つを選択し、それは図１の例では２つの入力からなり、選択された入力におけるデータをその出力に接続するようにされている。フォワーディングマルチプレクサ１６Ａおよび１６Ｂの各データ出力、ＡおよびＢ、はそれぞれデータ入力レジスタ１８Ａおよび１８Ｂに接続されており、データ入力レジスタ１８Ａおよび１８Ｂは既知の原理に従って動作し、イネーブリングクロックシンボルＣＬＫによりこのような各レジスタにおけるデータはレジスタ内に格納されかつレジスタ出力に提示される。
【０００５】
　データ入力レジスタ１８Ａおよび１８Ｂの出力はサブユニット１４１から１４４のさまざまな異なるサブユニットに接続され、特定の接続は典型的に各サブユニットが必要とする引数の数および/または型に基づいている。例えば、ＡＬＵとしての例として示したサブユニット１４１に関して、このようなＡＬＵは典型的に２つの引数を必要とする。したがって、これらの引数の一方はデータ入力レジスタ１８Ａにより与えられるデータＡであり、これらの引数の他方はデータ入力レジスタ１８Ｂにより与えられるデータＢである。同様に、それぞれの例において論理演算子ブロックおよびシフターとして示されている、各サブユニット１４２および１４３も２つのデータ引数を必要とし、したがって、このような各サブユニットは各データ入力レジスタ１８Ａおよび１８Ｂから一つの引数を受信するように図示されている。さらに、例示されているように、シフターである例におけるサブユニット１４３も達成すべきシフト数を示す付加引数としてデータＡを受信することができる。最後に、図解例におけるサブユニット１４４は単一の入力引数しか必要としない。プロセッサ１０において、この単一の引数はデータ入力レジスタ１８Ｂからサブユニット１４４へ与えられる。各サブユニット１４１から１４４の出力は入力として出力マルチプレクサ２０に接続され、さらに、後述する理由で、出力マルチプレクサ２０の出力は入力Ａ１としてフォワーディングマルチプレクサ１６Ａに接続されかつ入力Ｂ１としてフォワーディングマルチプレクサ１６Ｂに接続されている。出力マルチプレクサ２０の出力はレジスタ２１の入力に接続され、レジスタ２１の出力はレジスタファイル２２への入力に接続されている。レジスタファイル２２は典型的に各フォワーディングマルチプレクサに対するリードポートを有し、したがって、図解例ではレジスタファイル２２はフォワーディングマルチプレクサ１６Ａの入力Ａ２に接続されたリードポート２２１およびフォワーディングマルチプレクサ１６Ｂの入力Ｂ２に接続されたリードポート２２２を有する。最後に、プロセッサ１０は図１に示す単一機能ユニット１２と同じ一般的構成の多数の機能ユニットを含むことができる。２つの機能ユニットのケースのような多数の機能ユニットのケースでは、典型的に第１の機能ユニットからのサブユニットの出力は第２の機能ユニット内のフォワーディングマルチプレクサにも接続され、逆も同じである。したがって、機能ユニット１２は単一機能ユニットとして例示されかつそのフォワーディングマルチプレクサは２つの入力（Ａ１およびＡ２またはＢ１およびＢ２）を有しているが、付加機能ユニットが含まれる場合には各フォワーディングマルチプレクサは付加入力を含むことができる。いずれの場合にも、残りの検討を簡単にするために、本図解には単一の機能ユニット１２しか示されていない。
【０００６】
　次に、図２のタイミング図およびいくつかの擬似命令の例をさらに考慮してプロセッサ１０の動作について説明する。最初に擬似命令の例に注目して、レジスタファイル２２が少なくとも６つのレジスタＲ０からＲ５を含むケースについて考慮し、下記の２つの擬似命令が実行されるものと仮定する。
　　　　　　　　　　ＡＤＤ Ｒ０,Ｒ１→Ｒ２　　　　　　　　　命令１
　　　　　　　　　　ＡＤＤ Ｒ３,Ｒ４→Ｒ５　　　　　　　　　命令２
当業者ならば、命令１はレジスタＲ０およびＲ１の内容を加算して結果をレジスタＲ２に格納し、命令２はレジスタＲ３およびＲ４の内容を加算して結果をレジスタＲ５に格納することを認識できる。
【０００７】
　次に、図２のタイミング図に注目して、命令１に関するプロセッサ１０の動作が詳細に検討される。前置きとして、好ましい実施例では、各命令はそれを実施するための多数のクロックサイクルを必要とし、好ましくは第１の命令を完全に完了する時間は第１の命令にすぐ続く第２の命令を完了する一つ以上のクロックサイクルと重複するように各クロックサイクルに対して新しい命令が開始され、このようにして、命令はパイプラインされると言われしたがって図２はしばしばパイプラインタイミング図と呼ばれる。特に、図２に注目すると、各命令１および２に関する操作の３つのクロックサイクルを図解しており、後で示すようにこれらの操作の一部は時間的に重複し、前記したパイプライニングを図解している。後で検討する理由により、図２は付加命令３および４の相対的タイミングも示しており、それは一般的に命令１および２と同じタイミングに従うが、後で行われる異なる観察を提供する。最初に命令１および２のケースに注目すると、時間ｔ０において命令１はその引数Ｒ０およびＲ１を読み出し、特に、フォワーディングマルチプレクサ１６Ａがレジスタファイル２２のリードポート２２１からのデータＡとしてこれらの引数の一方を読み出すようにＦＷＤ＿Ａ信号が設定され、同時にフォワーディングマルチプレクサ１６Ｂがレジスタファイル２２のリードポート２２２からのデータＢとしてこれらの引数の他方を読み出すようにＦＷＤ＿Ｂが設定される。リードサイクルの終り、すなわち、時間ｔ１までに、これら２つの引数はそれぞれデータ入力レジスタ１８Ａおよび１８Ｂ内にクロックされる。命令１を続けて、時間ｔ１から時間ｔ２までに、サブユニット１４１は所期の命令１を実行し、それはＡＤＤである。したがって、時間ｔ２において命令１実行サイクルが完了するまでに、ＡＤＤにより作り出された和がサブユニット１４１の出力において得られ、出力マルチプレクサ２０により選択され、やはりレジスタ２１内にラッチされる。最後に、時間ｔ２までに完了する命令１のライトサイクル中に、レジスタ２１内の値（すなわち、ＡＤＤ命令からの和）がレジスタファイル２２のレジスタＲ２内に格納される。
【０００８】
　次に、命令２に関するプロセッサ１０の操作について詳細に検討し、前記したように、それは命令１に関する操作に一部重複するように示されている。時間ｔ１において命令２はその引数Ｒ３およびＲ４を読み出し、命令１と同様に、それはフォワーディングマルチプレクサ１６Ａおよび１６Ｂがレジスタファイル２２のリードポート２２１および２２２からそれぞれ引数データＡおよびデータＢを読み出し、これらの引数はそれぞれデータ入力レジスタ１８Ａおよび１８Ｂ内にクロックされるようにＦＷＤ＿ＡおよびＦＷＤ＿Ｂを設定して達成される。このリードサイクルは命令１の実行サイクルに一致する、すなわち、命令２に対するデータのアクセスは命令１に対するデータの処理（例えば、加算）と同時に生じることにも注目されたい。次に、時間ｔ２から時間ｔ３までに、サブユニット１４１はやはりＡＤＤである所期命令２を実行するが、ここでは、加算はレジスタＲ３およびＲ４からの命令２引数に関するものである。したがって、時間ｔ３における命令２実行サイクルの完了までに、ＡＤＤにより作り出される和はサブユニット１４１の出力において得られ、出力マルチプレクサ２０により選択され、レジスタ２１内にラッチされる。最後に、時間ｔ４までに完了する命令２のライトサイクル中に、レジスタ２１からの和がレジスタファイル２２のレジスタＲ５内に格納される。
【０００９】
　次に、マルチプレクサ１６Ａおよび１６Ｂを“フォワーディング”マルチプレクサとして参照する基礎を提供する例によりプロセッサ１０の付加動作について説明する。特に、下記の２つの擬似命令が実行される例について考える。
　　　　　　　　　　ＡＤＤ Ｒ０,Ｒ１→Ｒ２　　　　　　　　　命令３
　　　　　　　　　　ＡＤＤ Ｒ２,Ｒ４→Ｒ５　　　　　　　　　命令４
命令３は命令１と同じであり、したがって、読者は前記した詳細レベルに通じているものと仮定する。しかしながら、命令４はレジスタＲ２およびＲ４の内容を加算して結果をレジスタＲ５に格納し、したがって、命令４内の引数Ｒ２はすぐ先行する命令３の結果を必要とすることに注目されたい。後述する理由から、この要求条件はしばしばハザードと呼ばれる。
【００１０】
　命令３および４に関して再び図２のタイミング図に注目すると、命令３は命令１に関して前記したように進行する。次に、命令４に注目すると、時間ｔ１および時間ｔ２の間にそれはその引数を必要とし、それはレジスタＲ２およびＲ４からのものである。しかしながら、時間ｔ２のように、命令３はまだその結果をレジスタファイル２２内に書き込んでいない。したがって、レジスタファイル２２から、命令４に対する必要な引数としてのこの結果は得られない。その結果、さらに配慮しなければレジスタ２２から書き出される非更新値を読み出す潜在的ハザードがあるため、この偶然性はしばしばハザードと呼ばれる。この可能性があれば、各サブユニット１４１の出力はマルチプレクサ２０に入力として接続されるだけでなく、各フォワーディングマルチプレクサ１６ｘに入力として戻されることを思い出していただきたい。この付加接続があって図２および命令４について継続すると、時間ｔ１から時間ｔ２までに、フォワーディングマルチプレクサ１６Ａはサブユニット１４１の出力をデータ入力レジスタ１８Ａへ直接“転送”し戻し、そこから命令４は引数を読み出し、したがって、時間ｔ２から時間ｔ３までレジスタＲ２に書き込まれる命令３の結果は時間ｔ２の前に転送され命令４により読み出される。マルチプレクサ１６Ａがフォワーディングマルチプレクサと呼ばれるのはこのためであり、この推論はフォワーディングマルチプレクサ１６Ｂの同様な接続性および操作性にも同様に適用される。最後に、命令４に関してプロセッサ１０の操作を完了すると、時間ｔ３から時間ｔ４まで、命令４の結果がマルチプレクサ２０を介してレジスタファイル２２内のレジスタＲ５内に書き込まれる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
　プロセッサ１０の前記した構造および操作方法は多くのデバイスおよび応用において有用かつ有益ではあるが、発明者はそれにはさまざまな制限や欠点があることを認識している。特に、前記したように、デバイス消費電力および速度等の要因は現代のプロセッサ設計において決定的である。この目的に向かって発明者は、以下に記載される好ましい実施例により提供されるように、プロセッサ１０に関連するこれらのパラメータは改善できることを認識している。
【課題を解決するための手段】
【００１２】
　好ましい実施例には、複数の命令を含む命令セットに応答して動作することができるプロセッサがある。プロセッサは整数個Ｓのサブユニットを含む機能ユニットを含み、Ｓは１よりも大きい。各サブユニットは、実行サイクル中に、少なくとも２つのデータ引数に応答して命令セット内の少なくとも一つの命令を実行するように動作することができる。プロセッサは、さらに、単一実行サイクルに対して少なくとも２つのデータ引数の更新値をＳ個のサブユニットの全てにではなく与える回路を含んでいる。
【発明を実施するための最良の形態】
【００１３】
　図１および図２は本文書の背景技術において前に説明されており、読者はこれらの図面に関して前記した原理に通じているものと仮定する。
【００１４】
　図３は好ましい実施例に従ったプロセッサ５０のブロック図を示し、例として好ましい実施例はテキサスインスツルメンツ社から提供されるＤＳＰのＴＭＳ３２０Ｃ６４００ファミリー内に実現することができる。プロセッサ５０は図１のプロセッサ１０内で使用されるのと同じブロックをいくらか含み、したがって、このような共通性が使用される範囲までは同じ参照番号が図１から図３まで使用される。しかしながら、付加アイテムにはそれらの構造および機能のいずれかまたは両方のの変更により番号が付け直され、事実これらの変更がなされるとプロセッサ５０は全体として従来技術のプロセッサ１０よりも改善される。これらのさまざまな変更およびそれらにより提供される利点については後述する。最後に、やはり検討を簡単にしかつ従来技術の前記した検討と比較するために、プロセッサ５０のある側面しか示されずまた図３のいかなる単純化も制限のためではなく、当業者ならばプロセッサ５０は非常に多くの他の属性を含むことが容易に理解できる。
【００１５】
　特に、プロセッサ５０に戻って、それは機能ユニット５２を含み、それは４つのサブユニット５４１，５４２，５４３，および５４４を含んでいる。プロセッサ１０に関して説明したように、これらのサブユニット５４１，５４２，５４３，および５４４は例として、それぞれ、ＡＬＵ、論理演算子ブロック、シフター、およびノーマライザとして示されている。しかしながら、後述するように、ある機能がこれらのデバイスの前に達成され、そのため各サブユニット内に必要なのはより複雑ではない構造とすることができるため、これらのサブユニット内の回路は従来技術とは異なることがある。さらに、前記したように、現代のプロセッサおよびプロセッサ５０は図３に示す単一機能ユニット５２と同じ一般的構成の多数の機能ユニットを含むことができる。２つの機能ユニットのケースのようなマルチ機能ユニットのケースでは、典型的に第１の機能ユニットからのサブユニットの出力は第２の機能ユニット内のフォワーディングマルチプレクサにも接続され、逆も同じである。したがって、機能ユニット５２は単一機能ユニットとして図解されそのフォワーディングマルチプレクサは２入力を有するが（Ａ１およびＡ２またはＢ１およびＢ２）、付加機能ユニットが含まれる場合には各フォワーディングマルチプレクサは付加入力を含むことができる。いずれの場合にも、残りの検討を簡単にするために本図解には単一機能ユニット５２しか示されていないが、本発明の範囲は接続されている機能ユニットが単一であっても多数であっても本文書の教示と矛盾しないものと考える。したがって、いずれにしても、各サブユニット５４ｘは例および図解として示すものであり、本発明の範囲はそこに限定されるものではない。むしろ、一つ以上のデータ引数を受信し、このような各引数を処理してプロセッサ５に対する命令セットの一つ以上の命令を実施するように動作することができる任意のサブユニットが機能ユニット５２および発明の範囲内に含まれる。
【００１６】
　次に、機能ユニット５２の接続に注目すると、それは２つのフォワーディングマルチプレクサ５６Ａおよび５６Ｂを含み、それらはプロセッサ１０に関して検討したのと同じ理由でそのように名付けられるが、後述するように、好ましい実施例ではフォワーディングマルチプレクサ５６Ａおよび５６Ｂの回路はさまざまな点において従来技術とは異なることがある。前記した検討と一貫した参照とするために、フォワーディングマルチプレクサ５６Ａの出力から与えられるデータは“Ａ”として示されフォワーディングマルチプレクサ５６Ｂの出力から与えられるデータは“Ｂ”として示され、各フォワーディングマルチプレクサは所与のサイクル内で各信号ＦＷＤ＿ＡおよびＦＷＤ＿Ｂにより対応するマルチプレクサがその入力の一つを選択し選択された入力におけるデータをその出力に接続するように制御入力を受信する。
【００１７】
　フォワーディングマルチプレクサ５６Ａおよび５６Ｂの各データ出力、ＡおよびＢ、は一組の３つのスイッチトバァッファに接続されている。特に、フォワーディングマルチプレクサ５６Ａのデータ出力Ａは入力として、（１）サブユニット５４１への入力として接続された出力を有するスイッチトバァッファ５８Ａ１，（２）サブユニット５４２およびサブユニット５４３への入力として接続された出力を有するスイッチトバァッファ５８Ａ２，および（３）サブユニット５４３への入力として接続された出力を有するスイッチトバァッファ５８Ａ３に接続されており、サブユニット５４３がシフターである本例に対して、スイッチトバァッファ５８Ａ３からのそこへのデータは例示されているブロックの底部に接続されて与えられたデータがシフターにより実施されるシフトの程度を表わすように示されている。さらに、フォワーディングマルチプレクサ５６Ｂのデータ出力Ｂは入力として、（１）サブユニット５４１への入力として接続された出力を有するスイッチトバァッファ５８Ｂ１，（２）サブユニット５４２およびサブユニット５４３への入力として接続された出力を有するスイッチトバァッファ５８Ｂ２，および（３）サブユニット５４４への入力として接続された出力を有するスイッチトバァッファ５８Ｂ３に接続されている。後述するように、各スイッチトバァッファはその名が示唆するように、すなわち、一度スイッチオンされる（すなわち、イネーブルされる）時だけ出力へデータをバッファする（すなわち、提供する）ように構成されかつ機能する。各サブユニット５４ｘの出力は入力として出力マルチプレクサ２０に接続され、プロセッサ１０に関して前記したのと類似する理由で、出力マルチプレクサ２０の出力は入力として各フォワーディングマルチプレクサ５６Ａおよび５６Ｂにも接続されている。出力マルチプレクサ２０、レジスタ２１、およびレジスタファイル２２はやはりプロセッサ１０に関して前記したような接続を有する。
【００１８】
　次に、プロセッサ５０の動作について説明する。ある側面において、プロセッサ５０の動作は、連続クロックサイクル内で異なる命令を実行する操作性および任意のサブユニット５４ｘの出力からのデータを転送してハザードを回避する能力等が、図２およびプロセッサ１０に関して前記したものに類似している。しかしながら、本文書の残りで検討されるように、好ましい実施例はスイッチトバァッファ５８Ａ１から５８Ｂ３を含めることにより付加性能を提供する。好ましい実施例では、サブユニット５４ｘの一つにより実行される所与の命令に対して、そのサブユニットの入力にデータを提供するスイッチトバァッファだけがイネーブルされ、更新された引数はそのサブユニットにしか提供されない。例えば、例におけるＡＬＵのように、サブユニット５４１によりアッド命令が実行される第１の例を仮定する。さらに、サブユニット５４１はスイッチトバァッファ５８Ａ１および５８Ｂ１からその入力引数を受信するように接続されている。その結果、これらの引数をサブユニット５４１に読み込む間に、スイッチトバァッファ５８Ａ１および５８Ｂ１しかイネーブルされず、更新されたＡおよびＢ引数はサブユニット５４１にしか提供されない。したがって、この例の間に残りのスイッチトバァッファは更新されたデータに関してイネーブルされず、更新されたＡおよびＢは他のいずれのサブユニットにも提供されない。２つのデータ引数が与えられると、サブユニット５４１はアッド演算を実施する。その後、前記したように結果が出力され書き込まれる。最後にまた後述するように、ある場合には好ましい実施例は２つ以上のサブユニットに引数を提供することができるが、全ての点において好ましい実施例は他の命令に対してこれらの引数が必要となるサブユニットの全てにではなく、好ましくは機能ユニット内の半分よりも少ないサブユニットにこれらの引数を提供するよう努力する。
【００１９】
　プロセッサ５０の動作の他の例に進む前に、スイッチトバァッファ５８Ａ１および５８Ｂ１による接続性の機能は従来技術よりも遥かに有利であることに注目されたい。特に、この結果をプロセッサ１０と対比させると、従来技術のプロセッサ１０は各実行サイクル中に３つのサブユニットにデータＡを提供し、さらに各実行サイクル中に４つのサブユニットの全てにデータＢを提供することが判る。特に、所与のデータ引数ＡまたはＢを必要とする各サブユニット５４ｘに対して、従来技術のプロセッサ１０は各実行サイクルに対してこのような全てのサブユニットにその引数を提供する。言い換えれば、全てではないある実行サイクルに対して、サブユニット１４１，１４２，および１４３のいずれかがデータ引数Ａを必要とするが、プロセッサ１０の接続性および操作性により、データ引数Ａが任意の実行サイクルに対して与えられる各場合において、これらの同じサブユニット１４１，１４２，および１４３の全てがそのデータ引数Ａを受信する。同様に、全てではないある実行サイクルに対して、サブユニット１４１，１４２，１４３および１４４のいずれかがデータ引数Ｂを必要とするが、プロセッサ１０の接続性および操作性により、データ引数Ｂが任意の実行サイクルに対して提供される各場合において、これらの同じサブユニット１４１，１４２，１４３および１４４の全てがそのデータ引数Ｂを受信する。発明者はこのような方法はさまざまな理由に対して非効率的であると認識している。例えば、全サブユニットへの各データ引数の従来技術の付加接続性によりこれらの各サブユニットはデータ引数の受信に関して電力を消散する。したがって、データが更新されてサブユニットに与えられる時は、一方のサブユニットが必要な実行を実施するデータ引数を実際に必要とする間、他方のサブユニットはまだ更新されたデータを受信しておりしたがってこれらのサブユニットも引数を受信していることに関して電力を消散する。したがって、これらの他方のサブユニットに関しては相当な量の無駄な電力消散が生じる。もう一つの例として、フォワーディングマルチプレクサ１６Ａおよび１６ＢはデータＡおよびＢ引数を提供するのに十分な駆動電力を供給しなければならない。これらの引数に対応する全サブユニットへの更新された引数の従来技術の提供に関する前記観察により、フォワーディングマルチプレクサ１６Ａおよび１６Ｂの駆動回路、および恐らくはこれらのデバイスに先行する回路上には相当な容量性負荷があり、したがって、フォワーディングマルチプレクサ１６Ａおよび１６Ｂおよび恐らくは関連する回路はこの負荷を駆動するのに十分なサイズでなければならない。さらに、これらのより大きなデバイスはより小さいデバイスに比べてそれらを駆動しているものにより大きな容量性負荷を与え、したがって、それらはそのクリティカルパス速度を含めてプロセッサ１０のデバイス速度を減少させることがある。次に、プロセッサ５０の好ましい実施例との対比に注目すると、これらの従来技術の欠点は著しく低減されている。例えば、アッド演算のケースでは、データＡおよびＢ引数は単一のサブユニット５４１にしか提供されない。したがって、あるクロックサイクル内でデータＡ引数を必要とする合計３つのサブユニット５４１，５４２，および５４３があり、これらのサブユニットの一つ１４１だけがＡＤＤ命令に対するデータＡ引数の更新値を受信する。したがって、他のサブユニット５４２および５４３はデータＡ引数の更新値に関して電力の消散を強制されない。さらに、その実行サイクル中にサブユニット５４１だけが更新されたデータＡ引数により駆動されるため、フォワーディングマルチプレクサ５６Ａの駆動回路および恐らくはそれに先行する回路は従来技術のそれよりも小さく、したがって、高速にすることができる。当業者ならば、本文書の残りの検討からお判りのように、好ましい実施例におけるデータＢ引数に関しても同様な観察を行うことができる。
【００２０】
　前記したことから、当業者ならばプロセッサ５０の動作および機能ユニット５２内の半分以下のサブユニット５４ｘへのデータ引数の付随する選択的接続性の他の例も理解できる。次に、論理的ＡＮＤ命令がこの例では論理演算子ブロックとしてのサブユニット５４２により実行される場合について考える。このケースでは、サブユニット５４２はそれぞれスイッチトバァッファ５８Ａ２および５８Ｂ２からそのＡおよびＢ入力引数を受信するように接続されている。その結果、これらの引数のサブユニット５４２へのリード中に、スイッチトバァッファ５８Ａ２および５８Ｂ２だけがイネーブルされてこれらの更新された引数をサブユニット５４２に与える。ここでも、残りのスイッチトバァッファはイネーブルされず、したがって、ＡおよびＢの更新値はこれら他のスイッチトバァッファに接続されたサブユニットには与えられない。２つのデータ引数が与えられると、サブユニット５４２は論理演算を実施し、その後結果は前記したように出力されかつ書き込まれる。さらに、この例ではスイッチトバァッファ５８Ｂ２の出力はデータＢシフト引数をサブユニット５４３にも提供するように接続されている。したがって、この例では、更新されたデータＢはサブユニット５４２に与えられるが、サブユニット５４３にも与えられる。当業者ならば確かめられるように、この例は所与のクロックサイクル内で２つ以上のサブユニットがデータ引数を受信することをまだ許す利点を達成できる場合があることを例示しているが、好ましくは半分以下のサブユニットがデータ引数を受信する。このような場合には単一サブユニットにしかデータを与えない場合に比べてより大きい容量性負荷をデータ引数に与えるが、所与のデータＡまたはＢに対して、サブユニットよりも少数のスイッチトバァッファでよいというトレードオフ利点がある。すなわち、各ケースにおいて各データ引数を一つだけのサブユニットに提供するために、フォワーディングマルチプレクサ出力当たりのスイッチトバァッファ数は機能ユニット内のサブユニット数に等しくなければならない。本発明の妥協によりサブユニット数に比べて少数のこのようなスイッチトバァッファ数の使用が許される。これをさらに考慮すると、対応する命令を実行するために一つのクロックサイクルまたはもう一つに所与のデータ引数を必要とするＮ個のサブユニットを有するプロセッサに対して、従来技術はフォワーディングマルチプレクサの出力によりこれらＮのサブユニットの全てを駆動する（例えば、プロセッサ１０はＡデータ引数を必要とするＮ＝３のサブユニット１４１，１４２，および１４３を有し、Ａが更新される度にこれらのサブユニットの全てを駆動する、あるいはプロセッサ１０はＢデータ引数を必要とするＮ＝４のサブユニット１４１，１４２，１４３，および１４４を有し、Ｂが更新される度にこれらのサブユニットの全てを駆動する）。対照的に、好ましい実施例はフォワーディングマルチプレクサ出力当たりＮ以下のスイッチトバァッファを使用し、所与の実行サイクルに対してフォワーディングマルチプレクサの出力により単一サブユニットしか駆動しないかあるいは、データ駆動回路の負荷を低減して機能ユニット内の電力を全体として低減するために、好ましくは半分よりも少ないＮサブユニットしか駆動しないことができる。最後に、やはり後述するように、一実施例では、プロセッサ５０はダイナミック論理を使用して構成することができる。このようにして、当業者ならば所与のリードサイクル中に５４ｘの選択されたものをディセーブルする方法を容易に確かめることができる。したがって、このような能力により、好ましい実施例が付加サブユニットだけでなくその引数に従って実行する目的サブユニットの両方にデータ引数を提供する場合には、目的サブユニットが引数を読んでいるのと同時に付加サブユニットはリードサイクル中にディセーブルすることができ、データ駆動回路により付加サブユニットからデータに与えられる負荷は、もしあっても、最小となる。
【００２１】
　プロセッサ５０のサブユニット動作の残り２つの図解例はそのサブユニット５４３および５４４を含んでいる。サブユニット５４３に対して、もう一つの実行サイクルにおいてサブユニット５４３によりシフトが実行されるものと仮定する。サブユニット５４３はスイッチトバァッファ５８Ａ２および５８Ａ３からのデータＡ入力引数およびスイッチトバァッファ５８Ｂ２からのデータＢ引数を受信するように接続されている。その結果、達成されるシフト操作のタイプに従って、これらのスイッチトバァッファの選択されたものだけをイネーブルすることにより適切な引数がサブユニット５４３に提供される。したがって、データＡ入力引数がスイッチトバァッファ５８Ａ３から来る場合には、そのデータＡ引数はその実行サイクルに対して他のどのサブユニット５４１，５４２，または５４４にも接続されない。さらに、スイッチトバァッファ５８Ｂ２はデータＢ引数をシフトユニット５４３へ提供するようにイネーブルされ、同時にそのデータＢ引数はサブユニット５４２に提供される。したがって、この場合には、合計４つのサブユニット５４ｘに対して、それらの一つだけがデータＡ引数により駆動されそれらの半分しかデータＢ引数により駆動されない。
【００２２】
　サブユニット５４４に対して、それにより正規化が実行されるもう一つの場合を仮定する。ノーマライザは単一引数に関して動作することを思い出していただきたい。さらに、好ましい実施例では、スイッチトバァッファ５８Ｂ３がそのデータＢ出力をサブユニット５４４の入力にしか与えないように接続されている。その結果、サブユニット５４４への単一引数のリード中に、スイッチトバァッファ５８Ｂ３だけがイネーブルされ、サブユニット５４４に単一引数を提供する。したがって、この例では、残りのスイッチトバァッファはイネーブルされず、データＡおよびＢは他のどのサブユニットにも与えられない。その後、結果は前記したように出力され書き込まれる。
【００２３】
　図４はスタティック回路を使用する図３からのフォワーディングマルチプレクサ５６Ａおよびスイッチトバァッファ５８Ａ１，５８Ａ２，および５８Ａ３の好ましい実施例インプリメンテーションの回路図を示す。さらに、当業者ならばこの図解および下記の検討を図３からのフォワーディングマルチプレクサ５６Ｂおよびスイッチトバァッファ５８Ｂ１，５８Ｂ２，および５８Ｂ３に類似的に適用することができるが、検討を簡単にするために、図４の図解は類似のフォワーディングマルチプレクサ５６Ｂおよびスイッチトバァッファ５８Ｂ１，５８Ｂ２，および５８Ｂ３に関して重複されていない。さらに、図４および後の図面はフォワーディングマルチプレクサおよびスイッチトバァッファの両方に対するシングルビットデータの接続を図解しているが、サブユニット５４１，５４２，５４３，および５４４は典型的にあるマルチビット（“語”）ベースで動作し、そのためシングルビット図解は全体図解を単純化するためであることを理解すべきであり、当業者ならばプロセッササブユニットにマルチビット転送を適合させるように例示された回路を複製できることが理解される。
【００２４】
　図４のフォワーディングマルチプレクサ５６Ａに戻って、入力Ａ１はＣＭＯＳパスゲート７０１に接続されており、従来技術で知られているように、それはｐ-チャネルおよびｎ-チャネルトランジスタの各ソース/ドレインパスを並列に接続して形成される。ｐ-チャネルおよびｎ-チャネルトランジスタのゲートは各相補信号ＳＡ１（バー）およびＳＡ１を受信するように接続されている。入力Ａ２はやはり並列ソース/ドレイン接続ｐ-チャネルおよびｎ-チャネルトランジスタにより形成されたＣＭＯＳパスゲート７０２に接続され、これらｐ-チャネルおよびｎ-チャネルトランジスタのゲートは各相補信号ＳＡ２（バー）およびＳＡ２を受信するように接続されている。各パスゲート７０１および７０２の出力はノード７２に接続されている。
【００２５】
　ノード７２は各スイッチトバァッファ５８Ａ１，５８Ａ２，および５８Ａ３に入力として接続されている。最初にスイッチトバァッファ５８Ａ１に注目すると、ノード７２は並列ソース/ドレイン接続ｐ-チャネルおよびｎ-チャネルトランジスタにより形成されたＣＭＯＳパスゲート７４１の入力に接続され、これらｐ-チャネルおよびｎ-チャネルトランジスタのゲートは各相補信号ＳＥＬ１（バー）およびＳＥＬ１を受信するように接続されている。パスゲート７４１の出力はインバータ７６１の入力に接続されており、その出力はインバータ７８１の入力に接続されており、インバータ７８１の出力はインバータ７６１の入力に接続されている。したがって、従来技術で知られているように、インバータ７６１および７８１はラッチを形成する。さらに、好ましい実施例では、付加パスゲートが帰還インバータ（例えば、インバータ７８１）の出力と非帰還インバータ（例えば、インバータ７６１）の入力間に接続されているが、図面を単純化するためにこのようなパスゲートは明示されておらず、むしろ、前記したようにそれは含まれると理解すべきであり、事実このようなパスゲートデバイスはここに記載された残りの全てのラッチ内に帰還（例えば、７８１）および非帰還インバータ（例えば、７６１）の組合せを使用するものとして含まれることを理解しなければならない。付加パスゲートは非帰還インバータの入力にデータが与えられる時間中にディセーブルされ、一度非帰還インバータの入力にデータが与えられるとイネーブルされるように制御信号により制御される。付加パスゲートが好ましいのは、それがないと、ラッチへの入力はラッチ内の帰還インバータの出力に打ち勝つのに十分な信号を駆動する必要があり、付加パスゲートがあれば、それはデータがラッチを駆動する時にディセーブルされて帰還インバータ（例えば、７８１）の出力の影響を除去し、ラッチ入力への駆動は帰還インバータ出力の影響に打ち勝つ必要がなくなるためである。インバータ７６１の（すなわち、ラッチの）出力はデータＡをサブユニット５４１に与えるように接続されている。同様に、ノード７２は並列ソース/ドレイン接続ｐ-チャネルおよびｎ-チャネルトランジスタにより形成されたＣＭＯＳパスゲート７４２の入力に接続され、これらｐ-チャネルおよびｎ-チャネルトランジスタのゲートは各相補信号ＳＥＬ２/３（バー）およびＳＥＬ２/３を受信するように接続されている。パスゲート７４２の出力はインバータ７６２の入力に接続されており、その出力はインバータ７８２の入力に接続されており、インバータ７８２の出力はインバータ７６２の入力に接続されていてもう一つのラッチを形成する（やはり、帰還インバータ７８２の出力と非帰還インバータ７６２の入力との間の図示せぬパスゲートを使用して）。インバータ７６２の出力はデータＡをサブユニット５４２および５４３に与えるように接続されている。最後に、ノード７２は並列ソース/ドレイン接続ｐ-チャネルおよびｎ-チャネルトランジスタにより形成されたＣＭＯＳパスゲート７４３の入力に接続され、これらｐ-チャネルおよびｎ-チャネルトランジスタのゲートは各相補信号ＳＥＬ３（バー）およびＳＥＬ３を受信するように接続されている。���スゲート７４３の出力はインバータ７６３の入力に接続されており、その出力はインバータ７８３の入力に接続されており、インバータ７８３の出力はインバータ７６３の入力に接続されていてもう一つのラッチを形成する。インバータ７６３の出力はデータＡをサブユニット５４３に与えるように接続されている。
【００２６】
　次に、図４からのフォワーディングマルチプレクサ５６Ａおよびスイッチトバァッファ５８Ａ１，５８Ａ２，および５８Ａ３の動作を例および図５のタイミング図により説明する。前置きとして、図５はフォワーディングマルチプレクサ５６ＡがＡ１データ入力を選択しスイッチトバァッファ５８Ａ２がその入力上の更新されたデータをサブユニット５４２および５４３に与える例を示している。時間ｔ０において、所望のサブユニットに出力するために選択されるデータに接続されたフォワーディングマルチプレクサパスゲートのパスゲート制御信号に対して立上り遷移が発生される。したがって、本例では、立上り遷移はＳＡ１に対して生じ時間ｔ１までに完了するように示されている。したがって、この立上り遷移はパスゲート７０１のｎ-チャネルトランジスタのゲートに加えられ、立上り遷移のコンプリメント（すなわち、降下遷移）がパスゲート７０１のｐ-チャネルトランジスタに加えられる。したがって、入力Ａ１の更新データはパスゲート７０１を通過してノード７２へ行く。また、時間ｔ０において（すなわち、時間ｔ０に続いて）、読み出されるデータに応答して実行するサブユニットに接続された一つのスイッチトバァッファパスゲートだけのパスゲート制御信号に対して立上り遷移が発生される。したがって、本例では、立上り遷移はＳＥＬ２/３に対して生じやはり時間ｔ１までに完了するように示されており、このような遷移はＳＥＬ１またはＳＥＬ３に対しては生じない。したがって、この立上り遷移はパスゲート７４２のｎ-チャネルトランジスタのゲートに加えられ、立上り遷移のコンプリメント（すなわち、降下遷移）がパスゲート７４２のｐ-チャネルトランジスタに加えられる。したがって、ｔ２における可能な信号遷移により示すように、入力Ａ１の更新データはノード７２から通されインバータ７６２により反転されサブユニット５４２および５４３に出力される。また対比により、時間ｔ２においてスイッチトバァッファ５８Ａ１および５８Ａ３の出力は遷移しない、すなわち、これらの出力の前のいかなるデータ状態も不変であり、したがって、その時間におけるこれらの出力は更新データを与えないことに注目されたい（すなわち、これらの信号には信号遷移がない）。さらに、スイッチトバァッファ５８Ａ２によりｔ２において与えられる更新データはインバータ７８２により維持される（後に新しいデータを転送するパスゲートにより変えられるまで）。前記したことから、当業者ならばこの操作を容易に応用して図解された回路が入力Ａ１またはＡ２（または、付加入力）のいずれかからどのようにデータを選択して、選択したデータを(i)サブユニット５４１に接続された出力、(ii)サブユニット５４２と５４３との相互接続、または(iii)サブユニット５４３への単一出力のいずれかにどのように出力するか決定することができる。いずれの場合にも、データ入力に接続されたフォワーディングマルチプレクサパスゲートはデータをサンプリングするようにイネーブルされるか、あるいはユニットが使用されない場合にこのようなパスゲートは全てディセーブルすることができる。さらに、一つのフォワーディングマルチプレクサがイネーブルされると、ちょうど一つだけのス���ッチトバァッファパスゲートもイネーブルされ、所望のサブユニットへデータを出力する。さらに、帰還デバイスとしてのインバータ７８１，７８２，および７８３は好ましくはパスゲートがディセーブルされる時にその入力上の電圧レベルを保持するのに十分なサイズの比較的小さなデバイスである。事実、これらの帰還デバイスが与えられると、各インバータ対に与えられた前のデータ状態は新しい更新データ入力が与えられるまで維持されることに注目されたい。したがって、インバータ対は所与のサイクル中に実行しないサブユニットに前の（すなわち、非更新）データを与えることができるが、その時そのサブユニットへの信号遷移はなく、その結果、サブユニットはその時信号遷移を受信しないため、信号遷移がサブユニットに接続されておれば生じているアクティブ電力消散もないという利点がある。さらに、好ましい実施例はラッチインバータ対の３つの非帰還インバータとしてのインバータ７６１，７６２，７６３の一つにしか更新データを与えないため、これらの対に先行する送信ゲートその他の駆動回路は好ましくは一時にその一つのインバータしか駆動しないサイズとされ、対照的に、従来技術は任意の時間にその引数に関して実行するように動作可能な全てのサブユニットへ更新データを与えるため著しく大きな駆動回路を必要とし、したがって、好ましい実施例に比べてこのデータパスにおいて低速であることを思い出していただきたい。最後に、図４および５はフォワーディングマルチプレクサ５６Ａを図解するが、当業者ならば、図３においてこれらのデバイスに接続されるように示されている信号のルートを適切に変えることにより、同じ原理を容易にフォワーディングマルチプレクサ５６Ｂに適用することができる。
【００２７】
　図６は図３からのフォワーディングマルチプレクサ５６Ａおよびスイッチトバァッファ５８Ａ１，５８Ａ２，および５８Ａ３の代替スタティック論理好ましい実施例インプリメンテーションの回路図を例示している。図６の実施例は図４に示すものと同じデバイスを含んでおり、このようなデバイスに対しては同じ参照番号が図４から図６に移されている。しかしながら、さらに、付加インバータ対８０１および８０２が回路に付加されている。より詳細には、図４のようにパスゲート７０１および７０２の出力をノード７２に直接接続するのではなく、図６ではこれらの出力はインバータ８０１の入力に接続され、その出力がノード７２に接続されている。さらに、インバータ８０１の出力はインバータ８０２の入力にも接続され、その出力はインバータ８０１の入力に接続されて、入力（Ａ１およびＡ２）およびノード７２間にラッチを提供する。
【００２８】
　図４の類似回路が与えられると多くの点で類似しているため、図６の回路の動作は容易に理解することができ、したがって、読者はここで繰り返されないある詳細については前の検討を参照することができる。しかしながら、図４および６の回路間の違いに関して、ラッチインバータ対８０１および８０２の追加によりさまざまな利点が得られる。第１に、図４の回路に比べて、あるインプリメンテーションでは図４の場合のように２つの直接接続されたパスゲート（すなわち、一つはフォワーディングマルチプレクサ内、もう一つはスイッチトバァッファ内）を通る立上り信号の通過は受け入れられないほど低くなることがある。第２に、図４のインプリメンテーションは、入力から出力まで、単一信号反転しかないため、入力データを反転形式でサブユニットに与える。対照的に、図６のインプリメンテーションはこのような反転を２回行い、そのためデータは出力されると入力時と同じ形である。最後に、図４の方法はＡ１およびＡ２（および任意の類似入力）を与える回路が２つのパスゲートとインバータの直列接続を駆動する必要があり、このような方法はあるインプリメンテーションにおいて大きすぎる負荷を与えるため、付加バッファリングを必要とすることがあり、そのバァッファリングはそれ自体の駆動電力を供給してＡ１およびＡ２を与える回路上の負荷を低減することができる。したがって、図６の方法はこのような付加バッファリングを提供するインバータ８０１および８０２を含んでいる。
【００２９】
　図７はダイナミック論理回路を使用する図３からのフォワーディングマルチプレクサ５６Ａおよびスイッチトバァッファ５８Ａ１，５８Ａ２，および５８Ａ３の好ましい実施例インプリメンテーションに対するダイナミック論理を使用する回路図を例示しており、当業者ならば図解および下記の検討を図３からのフォワーディングマルチプレクサ５６Ｂおよびスイッチトバァッファ５８Ｂ１，５８Ｂ２，および５８Ｂ３にも類似的に適用することができるが、検討を簡単にするために、図３の図解は類似のフォワーディングマルチプレクサ５６Ｂおよびスイッチトバァッファ５８Ｂ１，５８Ｂ２，および５８Ｂ３に関して重複されていない。さらに、かつ後述する理由により、図７は好ましくはサブユニット５４１，５４２，および５４３内に含まれる第１段も例示している。
【００３０】
　図７のフォワーディングマルチプレクサ５６Ａに戻って、入力ＡＸ１はここでは図３の入力Ａ１に対応するように示されており、信号識別子内の追加された“Ｘ”は信号がアクティブロー信号であることを示し、同様に、図３からの入力Ａ２は図７に入力ＡＸ２として示されており、再度Ｘはアクティブロー信号を示す。入力信号ＡＸ１はｎ-チャネルトランジスタ８２１の第１のソース/ドレインに接続され、ｎ-チャネルトランジスタ８２１の第２のソース/ドレインはノード８４に接続され、ｎ-チャネルトランジスタ８２１のゲートはセレクト信号ＳＡ１を受信するように接続されている。同様に、入力ＡＸ２に関して、それはｎ-チャネルトランジスタ８２２の第１のソース/ドレインに接続され、ｎ-チャネルトランジスタ８２２の第２のソース/ドレインはノード８４に接続され、ｎ-チャネルトランジスタ８２２のゲートはセレクト信号ＳＡ２を受信するように接続されている。ノード８４は本質的にマルチプレクサ５６Ａの出力を与え、後述するように、ノード８４の遷移によりスイッチトバァッファ５８Ａ１，５８Ａ２，または５８Ａ３の一つだけで所与のクロックサイクルに対する遷移を生じる。
【００３１】
　図７のスイッチトバァッファ５８Ａ１，５８Ａ２，または５８Ａ３にさらに詳細に注目すると、ノード８４は３つのｎ-チャネルトランジスタ８６１，８６２，および８６３の各々に対する第１のソース/ドレインに接続されている。ｎ-チャネルトランジスタ８６１，８６２，および８６３のゲートは各セレクト信号ＳＥＬ１，ＳＥＬ２/３，およびＳＥＬ３に接続されている。ｎ-チャネルトランジスタ８６１，８６２，および８６３の各々の第２のソース/ドレインは対応するプリチャージノード８８１，８８２，および８８３に接続されており、このような各プリチャージノードは各ｐ-チャネルトランジスタ９０１，９０２，および９０３のドレインに接続されており、このような各プリチャージトランジスタはそのソースがシステム電圧レベルＶＤＤに接続されている。ｐ-チャネルトランジスタ９０１，９０２，および９０３のゲートは各々が各クロック信号ＢＦＲＣＬＫ１，ＢＦＲＣＬＫ２，およびＢＦＲＣＬＫ３に接続されている。各プリチャージノード８８１，８８２，および８８３は各インバータ９２１，９２２，および９３３の入力にも接続されており、これらのインバータは本質的に各バァッファの出力を与え、後述するように、これらの出力の一つだけが所与のクロックサイクルに対して遷移して、スイッチトバァッファ５８Ａ１，５８Ａ２，または５８Ａ３の各々に対する遷移出力信号を与えることができる。
【００３２】
　次に、スイッチトバァッファおよび３つの例示されたサブユニットの第１段間の図７のインターフェイスに注目すると、各インバータ９０１，９０２，および９０３の出力は各ｎ-チャネルトランジスタ９４１，９４２，および９４３のゲートに接続されている。各ｎ-チャネルトランジスタ９４１，９４２，および９４３のソースは接地されており、このような各トランジスタのドレインはソースがＶＤＤに接続されている対応するｐ-チャネルトランジスタ９６１，９６２，および９６３のドレインに接続されている。ｐ-チャネルトランジスタ９６１，９６２，および９６３のゲートは各クロック信号ＣＬＫ１，ＣＬＫＫ２/３，およびＣＬＫ３を受信するように接続されている。各ｐ-チャネルトランジスタ９６１，９６２，および９６３のドレインは各インバータ９８１，９８２，および９８３の入力にも接続されており、これらの各インバータの出力は指示された各サブユニット内の付加回路への各出力を与える。最後に、当業者ならばお判りのように、図７の右側に向かう図解は３つの例示されたサブユニットの第１段に関連するため、これらのサブユニットの実際のインプリメンテーションに比べて大幅に単純化されている。特に、このような各単一段は所与のサブユニット内への更新されたデータのクロックインを図解するために設けられているが、実際上、各サブユニットは対応するサブユニットの機能（例えば、アッド、論理、等）を達成するために必要な演算を開始するように構成された著しく複雑なトランジスタセットを含むと思われることを理解しなければならない。
【００３３】
　図７からのフォワーディングマルチプレクサ５６Ａおよびスイッチトバァッファ５８Ａ１，５８Ａ２，および５８Ａ３，およびサブユニット５４１，５４２，および５４３の動作が次に例および図８のタイミング図により説明される。前置きとして、図８はフォワーディングマルチプレクサ５６ＡがＡＸ１データ入力を選択しスイッチトバァッファ５８Ａ２がその入力上のデータをサブユニット５４２および５４３に与える例を示している。時間ｔ０の直前に、６つのｐ-チャネルトランジスタの各々がそのゲートにロー信号を受信する（信号ＳＥＬ１，ＳＥＬ２/３,ＳＥＬ３，ＣＬＫ１，ＣＬＫ２/３,ＣＬＫ３参照）。一般的に、ダイナミック論理技術では、このような期間はプリチャージフェーズと呼ばれる。その結果、このような各ｐ-チャネルトランジスタがイネーブルされ、ＶＤＤをそのソースからそのドレインに接続してドレインの論理ハイレベルにプリチャージ電圧を供給する。したがって、同時に、このような各プリチャージ電圧は対応するインバータに接続され、それは応答して論理ロー信号を出力する（信号ＯＵＴ９２１，ＯＵＴ９２２，ＵＴ９２３，ＯＵＴ５８Ａ１，ＯＵＴ５８Ａ２，およびＵＴ５８Ａ３参照）。
【００３４】
　図７の回路の動作を続けて、時間ｔ０において、動作の評価フェーズが開始され、本発明では評価フェーズ中にフォワーディングマルチプレクサ５６Ａに対する一つのゲート信号しか遷移しない。データＡＸ１が選択される本例では、対応するゲート信号ＳＡ１はローからハイへ遷移する。本例をさらに図解するために、データＡＸ１はアクティブであるものと仮定すると、それはアクティブロー信号であるため時間ｔ０までにローに遷移する。したがって、このロー信号はｎ-チャネルトランジスタ８２１のソース/ドレインパスを通って接続される。また、ｔ０において、ｎ-チャネルトランジスタ８６１，８６２，および８６３の一つしかイネーブルされず、一つのイネーブルされたｎ-チャネルトランジスタはすぐに生じる実行サイクルにおいて実行したいサブユニットに接続されるスイッチトバァッファに対応する。また、ｔ０において、ｐ-チャネルトランジスタ９０１，９０２，および９０３の一つだけがディセーブルされ、一つのディセーブルされたｐ-チャネルトランジスタはやはりすぐに生じる実行サイクルにおいて実行したいサブユニットに接続されるスイッチトバァッファに対応する。スイッチトバァッファ５８Ａ２がその入力上のデータをサブユニット５４２および５４３に与えることが望まれる本例では、やはりｔ０において、ゲート信号ＳＥＬ２/３はハイに表明されＢＦＲＣＬＫ２はハイに遷移する。したがって、ｎ-チャネルトランジスタ８２１および８６２は共にイネーブルされｐ-チャネルトランジスタ９０２はディセーブルされ、その結果、プリチャージノード８８２に予め存在するプリチャージ電圧はこれら２つのイネーブルされたトランジスタを介してＡＸ１のロー値に接続されプリチャージ電圧が放電される（例えば、大地に）ようにされる。したがって、この放電に関連する小さな遅延時間後に、時間ｔ１に示すように生じる、インバータ９２２の出力は時間ｔ２において立上りその遷移を完了し、一方、各ｎ-チャネルトランジスタ８６１および８６３はディセーブルされたままでありかつ各プリチャージノード８８１および８８３はプリチャージされたままであるため（ＢＦＲＣＬＫ１およびＢＦＲＣＬＫ３をローに維持することによりさらに増大される）、インバータ９２１および９２３の出力はローのままである。また、ｔ１までに、各インバータ９８１，９８２，および９８３に接続されたｐ-チャネルプリチャージトランジスタ９６１，９６２，および９６３の一つだけがディセーブルされ、一つのディセーブルされたプリチャージトランジスタはすぐに生じる実行サイクルにおいて実行したいサブユニットの第１段内にある。したがって、本例では、ｔ１においてＣＬＫ２/３はハイに遷移し時間ｔ２においてその遷移を完了してｐ-チャネルトランジスタ９６２をディセーブルするように示されている。同時に、インバータ９２２はｎ-チャネルトランジスタ９４２にハイ遷移を与えており、ここで、ｎ-チャネルトランジスタ９４２は放電トランジスタとして動作して（両方がイネーブルされる場合のｎ-チャネルトランジスタ９４１および９４３のように）、ｐ-チャネルトランジスタ９６２のドレインのプリチャージ電圧をイネーブルされたｎ-チャネルトランジスタ９４２を介して接地に接続することを思い出していただきたい。同時に、ハイからローへのこの放電遷移はインバータ９８２の入力に接続され、時間ｔ２に示すように、同時にインバータ９８２の出力にはローからハイへの対応する上向きの遷移がある。したがって、この上向きの遷移はスイッチトバァッファ５８Ａ２からサブユニット５４２および５４３へ出力されるアクティブ更新値Ａ１（または、そのロー状態におけるＡＸ１）を表わす。
【００３５】
　図７の回路の動作に関するある観察が完了すると、時間ｔ３において、プリチャージフェーズが再び開始する。したがって、各プリチャージトランジスタはそのプリチャージフェーズに維持されるか、あるいは、すぐ先行する評価フェーズのためにまだプリチャージフェーズでなければそのプリチャージフェーズとされる。本例および実施例では、ＢＦＲＣＬＫ１およびＢＦＲＣＬＫ３がローのままである間にＢＦＲＣＬＫ２はローに遷移して、各ｐ-チャネルトランジスタ９０１，９０２，および９０３をイネーブルするかイネーブルし続け、それらの各プリチャージノード８８１，８８２，および８８３をプリチャージする。さらに、プリチャージトランジスタ９６１および９６３はローに維持されてそれらの各ゲート信号ＣＬＫ１およびＣＬＫ３内に遷移はなく、すぐ先行する評価フェーズにおいてディセーブルされたプリチャージトランジスタ９６２はその各ゲート信号ＣＬＫ２/３を、時間ｔ４で開始して、ハイからローへ遷移させることによりプリチャージフェーズにスイッチバックされる。プリチャージフェーズに戻ると、時間ｔ５で開始して時間ｔ６までに完了する最終遷移に続いて示すように、各インバータ９２１，９２２，９２３，９８１，９８２，および９８３は論理ロー出力信号を与える。
【００３６】
　図７の回路について説明してきたが、各サブユニット内の第１段は単一ｎ-チャネルトランジスタ９４１，９４２，および９４３しか含まないことを注目願いたい。別の実施例では、付加ｎ-チャネルトランジスタのソース/ドレインパスは各ｎ-チャネルトランジスタ９４１，９４２，および９４３のソース/ドレインパスにシリアル接続されており、このような各付加ｎ-チャネルトランジスタはサブユニットに対応するクロック信号に接続されている。例えば、サブユニット５４１に関して、付加ｎ-チャネルトランジスタが接地とｎ-チャネルトランジスタ９４１のソースとの間に接続され、付加ｎ-チャネルトランジスタのゲートはＣＬＫ１を受信するように接続される。付加トランジスタはサブユニット内のｐ-チャネルプリチャージトランジスタに対して相補的に動作するため、これらの付加トランジスタの使用によりプリチャージおよび評価フェーズ中に適切な遷移がさらに保証されることに注目されたい。この代替策はあるインプリメンテーションにおいて使用できることもあるが、好ましくはそれは遅延およびクロック電力消散を低減するために排除される。しかしながら、これらの付加トランジスタが使用されないため、サブユニット内の例示されたプリチャージトランジスタはゲートオフされ（例えば、前例においてハイとなるＢＦＲＣＬＫ２により）、クローバー(crowbar)電流が生じることがあるためそれらの入力もディセーブルされたままとしなければならない。一時にｎ-チャネルトランジスタ８６１，８６２，および８６３の一つだけをイネーブルさせる接続および動作によりこの結果が得られる。しかしながら、付加ｎ-チャネルトランジスタが使用される場合には、各サブユニットは入力データの別々にゲートされたコピーを提供することなくクロックゲートされることがある。図３において、例えば、サブユニット５４２および５４３はＡおよびＢデータの両方のデータ入力を共有する。したがって、前記した付加ｎ-チャネルトランジスタが含まれる場合には、このトランジスタはサブユニット５４２および５４３の他方がイネーブルされて入力データ遷移を受信する間に一方をディセーブルするのに使用することができる。
【００３７】
　好ましい実施例の駆動要求対従来技術のそれに関してさらに観察することは注目に値する。この点について、好ましい実施例ではインバータ９２１，９２２，および９２３は受け入れられる遅延で個別の負荷を駆動できるサイズであることに注目されたい。これに比べてかつ従来技術の図１に戻って、フォワーディングマルチプレクサ１６Ａに対する出力インバータ（明示せず）は全負荷を駆動する必要があり、図７の３つのインバータ９２１，９２２，および９２３の和にほぼ等しいサイズである。図７において、一時に出力セレクト信号（すなわち、ＳＥＬ１，ＳＥＬ２/３，ＳＥＬ３）の一つだけがアクティブであるため、フォワーディングマルチプレクサ５６Ａのｎ-チャネルトランジスタ８２１および８２２は一時にイネーブルされるインバータ９２１，９２２，および９２３の一つしか駆動しないサイズとされ、ＡＸ１およびＡＸ２を駆動する回路も同様により小さい負荷を駆動するサイズとされる。したがって、このようなトランジスタのサイズは全サブユニットを一度に駆動するのに必要なサイズの１/３程度とすることができる。さらに、付加出力を加える（例えば、さらにサブユニットを追加する）ことにより課される唯一の遅延ペナルティはノード８４上のダイオード容量である。したがって、一時にｎ-チャネルトランジスタ８６１，８６２，および８６３の一つだけを活性化させることにより、一時に出力負荷の１/３しか駆動しなくてもよいため回路遅延が改善され、３つのサブユニットの一つしか活性化する必要がないため電力消散が低減される。
【００３８】
　図９は、共にフォワーディングマルチプレクサ５６Ａに接続されている、スイッチトバァッファ５８Ａ１および５８Ａ３に対してダイナミック論理を使用する別の実施例の回路図を示す。図９の実施例の前置きとして、それはほとんど駆動ペナルティ無しで図７の構造に付加論理を内蔵してサブユニット内のダウンストリームゲートの動作をスピードアップできることを明示している。特に、好ましい実施例では、これらのデバイスに関していくつかの付加機能を内蔵することが望ましく、後述するように、これらの機能は入力データを選択的に反転する付加能力の提供に向けられており、しかもこのような機能を提供するトランジスタの動作は既に記述したデバイスと同時に発生するため、この選択性だけに関連する付加遅延はない。
【００３９】
　図９の特定の回路に注目すると、それは図７で検討したのと同じ一般的方法でフォワーディングマルチプレクサ５６Ａを含んでいる。しかしながら、図９ではダイナミック論理アーキテクチュアにおいて典型的に実施されるデュアルレール（すなわち、相補的）信号が与えられる。したがって、図９の場合には、ＡＸ１およびＡＸ２のケースと同様にアクティブローデータは添字“Ｘ”を付けて示され、負レール信号はＡＸＮ１およびＡＸＮ２のケースの様に“Ｎ”添字を有する。アクティブローデータＡＸ１およびＡＸ２は各ｎ-チャネルトランジスタ１００１および１００２のソース/ドレインパスを介してノード１０２に接続されており、負レールデータＡＸＮ１およびＡＸＮ２は各ｎ-チャネルトランジスタ１０４１および１０４２のソース/ドレインパスを介してノード１０６に接続されている。ｎ-チャネルトランジスタ１００１および１００２のゲートは各制御信号ＳＡ１およびＳＡ２を受信するように接続されており、同様に、ｎ-チャネルトランジスタ１０４１および１０４２のゲートも各制御信号ＳＡ１およびＳＡ２を受信するように接続されている。
【００４０】
　次に、図９のスイッチトバァッファ５８Ａ１に注目すると、ノード１０２がｎ-チャネルトランジスタ１０８１の第１のソース/ドレインに接続されており、そのゲートはＳＥＬ１信号を受信するように接続されており、その第２のソース/ドレインはノード１１０に接続されている。同様に、ノード１０６がｎ-チャネルトランジスタ１０８２の第１のソース/ドレインに接続されており、そのゲートはやはりＳＥＬ１信号を受信するように接続されており、その第２のソース/ドレインはノード１１２に接続されている。ノード１１０はインバータ１１４１の入力に接続されており、インバータ１１４１の出力は選択されたデータＡをサブユニット５４１に与える。同様に、ノード１１２はインバータ１１４２の入力に接続されており、インバータ１１４２の出力はＡＮとして示す選択されたデータＡのコンプリメントをサブユニット５４１に与える。一対のｐ-チャネルプリチャージトランジスタ１１６１および１１６２がノード１１０および１１２間に接続されており、このような各プリチャージトランジスタはそれぞれノード１１０および１１２に接続された第１のソース/ドレインおよび一緒にＶＤＤに接続された第２のソース/ドレインを有する。やはり、デュアルレール信号の出力に関して示されているように、スイッチトバァッファ５８Ａ１内には４つのｐ-チャネルトランジスタ１１５１，１１５２，１１５３および１１５４がある。これらのデバイスはデュアルレール技術において既知であり完成させるために図示されているが、既知であるためこれらの図解および検討を簡単にすべく他の図面には示されていない。しかしながら、後述するように、このようなデバイスは好ましい実施例においてデュアルレール出力の維持を助けると考えられている。次に、これらのデバイスについてしばらく注目すると、ｐ-チャネルトランジスタ１１５１および１１５２のソースはＶＤＤに接続され、それらのゲートは反対のトランジスタドレインに交差接続されており、ｐ-チャネルトランジスタ１１５１および１１５２のドレインはそれぞれノード１１０および１１２に接続されている。ｐ-チャネルトランジスタ１１５３および１１５４のソースはＶＤＤに接続され、それらのゲートはそれぞれインバータ１１４１および１１４２の出力に接続され、それらのドレインはそれぞれノード１１０および１１２に接続されている。最後に、ｎ-チャネルトランジスタ１１８１はノード１０２に接続された第１のソース/ドレインおよびノード１１２に接続された第２のソース/ドレインを有し、もう一つのｎ-チャネルトランジスタ１１８２はノード１０６に接続された第１のソース/ドレインおよびノード１１０に接続された第２のソース/ドレインを有している。ｎ-チャネルトランジスタ１１８１および１１８２のゲートは信号ＳＥＬ１ＩＮＶＥＲＴを受信するように接続されている。
【００４１】
　次に、図９のスイッチトバァッファ５８Ａ３に注目すると、それはスイッチトバァッファ５８Ａ１に類似した方法で構成されており、後述する別の理由で類似した機能を提供する。次に、スイッチトバァッファ５８Ａ３内のデバイスおよび接続について、ノード１０２がｎ-チャネルトランジスタ１２０１の第１のソース/ドレインに接続されており、そのゲートはＳＥＬ３信号を受信するように接続されており、その第２のソース/ドレインはノード１２２に接続されている。同様に、ノード１０６がｎ-チャネルトランジスタ１２０２の第１のソース/ドレインに接続されており、そのゲートはやはりＳＥＬ３信号を受信するように接続されており、その第２のソース/ドレインはノード１１４に接続されている。ノード１２２はインバータ１２６１の入力に接続されており、インバータ１２６１の出力は選択されたデータＡをサブユニット５４３に与える。同様に、ノード１２４はインバータ１２６２の入力に接続されており、インバータ１２６２の出力はＡＮとして示す選択されたデータＡのコンプリメントをサブユニット５４３に与える。一対のｐ-チャネルプリチャージトランジスタ１２８１および１２８２がノード１２２および１２４間に接続されており、このような各プリチャージトランジスタはそれぞれノード１２２および１２４に接続された第１のソース/ドレインおよび一緒にＶＤＤに接続された第２のソース/ドレインを有する。最後に、ｎ-チャネルトランジスタ１３０１はノード１０２に接続された第１のソース/ドレインおよびノード１２４に接続された第２のソース/ドレインを有し、もう一つのｎ-チャネルトランジスタ１３０２はノード１０６に接続された第１のソース/ドレインおよびノード１２２に接続された第２のソース/ドレインを有している。ｎ-チャネルトランジスタ１３０１および１３０２のゲートは信号ＳＥＬ３ＩＮＶＥＲＴを受信するように接続されている。
【００４２】
　スイッチトバァッファ５８Ａ１およびスイッチトバァッファ５８Ａ３の動作は類似しており、従来技術に習熟しているものとして、下記の検討は前者に焦点を合わせ後者に関しては簡単な詳細の追加にとどめる。ダイナミック論理回路として、プリチャージフェーズ中にプリチャージトランジスタ１１６１および１１６２はＣＬＫ１をローに設定してノード１１０および１１２をハイにプリチャージしインバータ１１４１および１１４２からロー出力を供給することによりイネーブルされる。次に、評価フェーズ中に、フォワーディングマルチプレクサ５６Ａは図７に関して前記したように動作するが、図９の場合にはデュアルレール信号が供給される。例えば、データＡ１が選択されるものと仮定し、それは図９においてアクティブロー信号ＡＸ１およびその負レールＡＸＮ１により表わされる。したがって、ＳＡ１が表明されて両方のｎ-チャネルトランジスタ１００１および１００２がイネーブルされ、所望のデータ状態がそれぞれノード１０２および１０６に接続される。また、評価フェーズ中に、所望のデータをスイッチトバァッファ５８Ａ１の出力にルーティングしたい時は、ＳＥＬ１またはＳＥＬ１ＩＮＶＥＲＴの一方しかイネーブルされない。これらの各ケースについて別々に後述する。
【００４３】
　データをノード１０２および１０６からそれぞれインバータ１１４１および１１４２へ直接ルーティングしたい場合には、図７のケースと同様に、信号ＳＥＬ１が表明される。ＳＥＬ１が表明されると、ｎ-チャネルトランジスタ１０８１および１０８２がイネーブルされて、ノード１０２および１０６のデータ状態をそれぞれノード１１０および１１２に結合する。これらのデータ状態は相補的であるため、ノード１１０および１１２の一方が放電されてインバータ１１４１および１１４２の対応する一方の出力が立ち上がる。したがって、評価フェーズ中のこのポイントにおいて、１１４１および１１４２の出力はデュアルレール出力を供給する。
【００４４】
　スイッチトバァッファ５８Ａ１は、ＳＥＬ１ＩＮＶＥＲＴを表明することにより達成される、ノード１０２からインバータ１１４２の入力へまたノード１０６からインバータ１１４１の入力へデータをスワップする操作性を提供する。特に、ＳＥＬ１ＩＮＶＥＲＴが表明されると、それはｎ-チャネルトランジスタ１１８１および１１８２をイネーブルする。さらに、単一評価フェーズ中にＳＥＬ１またはＳＥＬ１ＩＮＶＥＲＴの一方しか表明できないため、ＳＥＬ１ＩＮＶＥＲＴ表明中はＳＥＬが表明されないためｎ-チャネルトランジスタ１０８１および１０８２はディセーブルされたままである。ｎ-チャネルトランジスタ１１８１および１１８２はイネーブルされるため、ノード１０２および１０６のデータ状態はそれぞれノード１１２および１１０にスワップされて論理的データ反転となる。非スワップケースと同様に、これらのデータ状態は相補的であるため、ノード１１２および１１０の一方が放電されてインバータ１１４１および１１４２の対応する一方の出力が立上り、評価フェーズ中のこのポイントにおいてデュアルレール出力を与える。さらに、インバータ１１４１および１１４２の出力に与えられるデータにより、ｐ-チャネルトランジスタ１１５１および１１５２は出力データをこの状態に維持するように動作する。スワッピング機能が与えられると、データを受信するサブユニット５４１によりサブトラクト演算をサポートするのが望ましいことがあり、Ｂ＋ＡＮｘ＋１を決定する、すなわち、選択されたＢデータを選択されたＡデータの論理的反形に加算しかつキャリービットに加算することによりＢ-Ａが実施される。反転機能が必要とされかつＡＬＵ内にあるレベルのトランジスタが費やされるため、図９に示すように、その機能をＡＬＵから除去してスイッチトバァッファ５８Ａ１内に含め、選択性操作と組み合わせた時にＡＬＵ内に含める場合に必要とされる機能を調整するのに必要な直列トランジスタ以外のトランジスタは追加しないようにすることができる。
【００４５】
　前記したように、スイッチトバァッファ５８Ａ３はスイッチトバァッファ５８Ａ１に類似しており、違いは一般的にデータの所期のデスティネーションがサブユニット５４３になることである。２つのスイッチトバァッファを比べると、当業者ならばスイッチトバァッファ５８Ａ３は単一評価フェーズ中にＳＥＬ３またはＳＥＬ３ＩＮＶＥＲＴＥＲの一方だけを表明して、それぞれインバータ１２６１および１２６２のノード１０２および１０６から直接データを通過させるか、あるいはノード１０２データがインバータ１２６２を介して通されノード１０６データがインバータ１２６１を介して通されるようにデータをスワッピングすることにより制御できることを容易に理解できる。スイッチトバァッファ５８Ａ３により提供されるデータスワッピング機能はサブユニット５４３に注目して、それは図３の検討から実施されるシフトの程度を示すデータＡを提供することを思い出していただきたい。この表示もしばしば反転しなければならず、それはサブユニット５４３の内側で遂行される。しかしながら、ＡＬＵ（すなわち、サブユニット５４１）の反転機能をバァッファ５８Ａ１内に移すバァッファ５８Ａ１に対するケースと同様に、好ましい実施例もシフト程度データの反転機能をスイッチトバァッファ５８Ａ３に移す。そうすることにより、バァッファ内のデータ選択を提供するｎ-チャネルトランジスタ１２０１，１２０２，１３０１，および１３０２のレベルもやはりデータ反転（例えば、スワッピング）機能を提供することができる。シフト程度データに関する反転機能はＭビットの３２ビット右回転が-Ｍビットの左シフトと等価であるという概念から左回転を右回転に変えるように行われる。
【００４６】
　図１０は図３の全てのスイッチトバァッファ５８Ａ１，５８Ａ２，５８Ａ３，５８Ｂ１，５８Ｂ２，および５８Ｂ３に対してダイナミック論理を使用する実施例の回路図を示す。図解を簡単にするために、図３のフォワーディングマルチプレクサ５６Ａおよび５６Ｂは図１０には図示されておらず、プリチャージ回路もなく、当業者ならばそれらが含まれることは容易に理解できる。前置きとして、図１０からのスイッチトバァッファ５８Ａは図９に示すものに類似しておりスイッチトバァッファ５８Ａ３は図９および図１０において同じであり、読者は図９の検討に通じていると思われるのでこれらのバァッファについてはあまり詳細は提示しない。さらに、デュアルレール機能および出力への入力のスワッピング等の図９に関して導入された概念は図１０のさまざまな回路にも含まれ、このような概念も前記されている。したがって、下記の検討は図１０の回路が図９のそれを超えて提供する回路接続および付加側面に焦点が向けられる。
【００４７】
　図１０の頂部で開始して、それはスイッチトバァッファ５８Ａ１および５８Ｂ１を図解しており、図３で図解されたものと同様にサブユニット５４１にそれぞれデータ値ＡおよびＢを与える。スイッチトバァッファ５８Ａ１は図９に示すものと同じ接続を有するが、スイッチトバァッファ５８Ｂ１との混乱を回避するために参照識別子および信号名はデータＡに関連する回路および信号をデータＢに関連する回路および信号から区別するように修正されている。図１０のスイッチトバァッファ５８Ａ１内の各回路素子は図９の図解に比べてその添字に文字“Ａ”が加えられ、各信号名は図９の図解に比べてそれに文字“Ａ”が加えられている。例えば、図１０のｎ-チャネルトランジスタ１０８１Ａは図９のｎ-チャネルトランジスタ１０８１に対応し、図１０の信号ＳＥＬ１Ａは図９の信号ＳＥＬ１に対応する。これらの同じ規約修正がノード１０２および１０６に関しても使用され、データＡとそのコンプリメント（１０２Ａおよび１０６Ａ）およびデータＢとそのコンプリメント（１０２Ｂおよび１０６Ｂ）に関してこれらのノードを提供する。これらの規約が与えられると、当業者ならば、異なる制御信号が使用されその入力データはＢおよびＢＮであることを除けば、スイッチトバァッファ５８Ｂ１はスイッチトバァッファ５８Ａ１と同じ一般的方法で構成されることが容易に理解できる。
【００４８】
　スイッチトバァッファ５８Ａ１の動作の前の検討が与えられれば図１０のスイッチトバァッファ５８Ａ１および５８Ｂ１の動作も容易に理解することができるため、ここでは簡単な検討しか行わない。スイッチトバァッファ５８Ａ１に関して、所与の実行サイクルに対してサブユニット５４１がそれぞれ出力ＡおよびＡＮにおいて直接ＡおよびＡＮのオペランドを必要とする場合には、第１のノード１１０Ａおよび１１２Ａがプリチャージフェーズにおいてプリチャージされ、ＳＥＬ１ＩＮＶＥＲＴＡが表明されない間すぐ後に続く評価フェーズＳＥＬ１Ａが表明される。その結果、ノード１１０Ａおよび１１２Ａはそれぞれｎ-チャネルトランジスタ１０８１Ａおよび１０８２Ａを介してノード１０２Ａおよび１０６Ａに接続される。したがって、入力データ状態に基づいて、ノード１１０Ａおよび１１２Ａの一方が放電されてインバータ１１４１Ａおよび１１４２Ａからの相補的出力を与える。逆に、所与の実行サイクルに対してサブユニット５４１がそれぞれ出力ＡＮおよびＡにスワップされるＡおよびＡＮのオペランドを必要とする場合には、第１のノード１１０Ａおよび１１２Ａがプリチャージフェーズにおいてプリチャージされ、ＳＥＬ１ＩＮＶＥＲＴＡが表明される間すぐ後に続く評価フェーズＳＥＬ１Ａは表明されない。その結果、ノード１１０Ａおよび１１２Ａはそれぞれｎ-チャネルトランジスタ１１８２Ａおよび１１８１Ａを介してノード１０６Ａおよび１０２Ａに接続される。再び、入力データ状態に基づいて、ノード１１０Ａおよび１１２Ａの一方が放電されてインバータ１１４１Ａおよび１１４２Ａからの相補的出力を与える。スイッチトバァッファ５８Ｂ１はスイッチトバァッファ５８Ａ１と同様に動作するが、入力ＢおよびＢＮおよびその対応するセレクト信号に関してである。したがって、所与の実行サイクルに対してサブユニット５４１がそれぞれ出力ＢおよびＢＮにおいて直接ＢおよびＢＮのオペランドを必要とする場合には、第１のノード１１０Ｂおよび１１２Ｂがプリチャージフェーズにおいてプリチャージされ、ＳＥＬ１ＩＮＶＥＲＴＢが表明されない間すぐ後に続く評価フェーズＳＥＬ１Ｂが表明される。逆に、所与の実行サイクルに対してサブユニット５４１がそれぞれ出力ＢＮおよびＢにスワップされるＢおよびＢＮのオペランドを必要とする場合には、第１のノード１１０Ｂおよび１１２Ｂがプリチャージフェーズにおいてプリチャージされ、ＳＥＬ１ＩＮＶＥＲＴＢが表明される間すぐ後に続く評価フェーズＳＥＬ１Ｂは表明されない。
【００４９】
　次に、図１０のスイッチトバァッファ５８Ａ３に戻って、それは図９に図解されたものと同じであるが、図１０で述べたようにやはりフォワーディングマルチプレクサ５６Ａは明示されない。したがって、当業者ならば図９の検討から容易にスイッチトバァッファ５８Ａ３の動作だけでなくそのマルチプレクサとの接続をさらに理解することができる。
【００５０】
　入力を出力へスワップする操作性だけでなく同じ制御信号の使用を図解するために、図１０はスイッチトバァッファ５８Ａ２および５８Ｂ２の構造および動作を一緒に例示している。この図解の前置きとして、図３からスイッチトバァッファ５８Ａ２はＡデータをサブユニット５４２および５４３の両方に与え、スイッチトバァッファ５８Ｂ２はＢデータをサブユニット５４２および５４３の両方に与えることを思い出していただきたい。次に、図１０に注目して、単一制御信号ＳＥＬ２/３Ｂが４つのｎ-チャネルトランジスタ１４０１，１４０２，１４０３，および１４０４のゲートに接続されている。ｎ-チャネルトランジスタ１４０１，１４０２，１４０３，および１４０４の第１のソース/ドレインはそれぞれノード１０２Ａ，１０６Ａ，１０２Ｂ，および１０６Ｂに接続されている。ｎ-チャネルトランジスタ１４０１，１４０２，１４０３，および１４０４の第２のソース/ドレインはそれぞれインバータ１４２１，１４２２，１４２３，および１４２４の入力に接続されている。さらに、単一制御信号ＳＥＬ２/３ＳＷＡＰＡＢが４つのｎ-チャネルトランジスタ１４４１，１４４２，１４４３，および１４４４のゲートに接続されている。ｎ-チャネルトランジスタ１４４１，１４４２，１４４３，および１４４４の第１のソース/ドレインはそれぞれノード１０２Ｂ，１０６Ｂ，１０２Ａ，および１０６Ａに接続されている。ｎ-チャネルトランジスタ１４４１，１４４２，１４４３，および１４４４の第２のソース/ドレインはそれぞれインバータ１４２１，１４２２，１４２３，および１４２４の入力に接続されている。インバータ１４２１，１４２２，１４２３，および１４２４の出力はサブユニット５４２および５４３に接続されている。
【００５１】
　次に、スイッチトバァッファ５８Ａ２および５８Ｂ２の組合せ図解の動作について説明する。スイッチトバァッファ５８Ａ２および５８Ｂ２に関して、所与の実行サイクルに対してサブユニット５４２または５４３のいずれかが各インバータ１４２１および１４２２の出力のＡおよびＡＮのオペランドを必要とし、サブユニット５４２または５４３が各インバータ１４２３および１４２４の出力のＢおよびＢＮのオペランドを必要とする場合には、第１に全てのインバータ１４２１，１４２２，１４２３，および１４２４への入力がプリチャージフェーズにおいてプリチャージされ、すぐ続く評価フェーズにおいてＳＥＬ２/３ＳＷＡＰＢが表明されない間ＳＥＬ２/３ＡＢが表明される。その結果、インバータ１４２１への入力はノード１０２Ａに接続されてデータＡを受信しインバータ１４２２への入力はノード１０６Ａに接続されてＡＮを受信し、同時にインバータ１４２３への入力はノード１０２Ｂに接続されてデータＢを受信しインバータ１４２４への入力はノード１０６Ｂに接続されてデータＢＮを受信する。したがって、スイッチトバァッファ５８Ａ２および５８Ｂ２の頂部から底部までの全体出力が図１０の第１列の出力（すなわち、Ａ，ＡＮ，ＢおよびＢＮ）に示す出力信号を与える。逆に、スイッチトバァッファ５８Ａ１および５８Ａ２に関して、所与の実行サイクルに対してサブユニット５４２または５４３のいずれかがインバータ１４２１および１４２２の各出力のＢおよびＢＮのオペランドを必要とし、サブユニット５４２または５４３がインバータ１４２３および１４２４の各出力のＡおよびＡＮのオペランドを直接必要とする場合には、やはり全てのインバータ１４２１，１４２２，１４２３，および１４２４への入力がプリチャージフェーズにおいてプリチャージされ、すぐ続く評価フェーズにおいてＳＥＬ２/３ＳＷＡＰＢが表明される間ＳＥＬ２/３ＡＢは表明されない。その結果、インバータ１４２１への入力はノード１０２Ｂに接続されてデータＢを受信しインバータ１４２２への入力はノード１０６Ｂに接続されてデータＢＮを受信し、同時にインバータ１４２３への入力はノード１０２Ａに接続されてデータＡを受信しインバータ１４２４への入力はノード１０６Ａに接続されてＡＮを受信する。したがって、スイッチトバァッファ５８Ａ２および５８Ｂ２の頂部から底部までの全体出力が図１０の第１列の出力（すなわち、Ｂ，ＢＮ，ＡおよびＡＮ）に示す出力信号を与える。したがって、この後者の場合、ＡおよびＢ入力（およびそれらのコンプリメント）はスイッチトバァッファ５８Ａ２および５８Ｂ２の組合せ回路により有効にスワップされることが判る。
【００５２】
　図１０のスイッチトバァッファ５８Ａ２および５８Ｂ２の前記検討から、さまざまな観察も注目に値する。第１に、ＡおよびＢデータ出力はバイト粒度ベース等でスワップすることができる（多数のビットに対する折重回路を使用して）。これは、２つの３２ビットデータ入力が６４ビット数に連接され、続いてこの数は１，２，または３バイトだけ右シフトされ、ボトム３２ビットが出力される、サブユニット５４３によるバイト粒度シフト操作を含む好ましいプロセッサにおいて有用である。これはＡおよびＢデータ入力が正しい境界でスワップされる場合に、シフターユニット内の回転操作により遂行することができる。他のパックおよびアンパック命令もスワップされたＡおよびＢ入力を必要とする。したがって、好ましい実施例はこれらのケーパビリティを提供する。さらに、各入力値（Ａ，ＡＮ，Ｂ，ＢＮ）は一時に４つのインバータ１４２１，１４２２，１４２３，および１４２４にしか接続されないようにＡおよびＢデータ間で制御信号間ＳＥＬ２/３ＡＢおよびＳＥＬ２/３ＳＷＡＰＢが共用されることに注目されたい。その結果、１評価サイクル内の任意所与の入力データ値Ａ，ＡＮ，Ｂ，ＢＮは１つのインバータでしか容量性ローディングをすることができず、総容量性負荷が低減されてデバイス速度が増す。ある命令に対してＡおよびＢの両方ではなく１つの出力（およびそのコンプリメント）しかターンオンしないことが望ましい場合には、このような代替実施例におけるＡおよびＢ制御信号は分離され、２つではなく４つの制御信号が作り出される。このようなケースでは、各入力は単一評価サイクル中に２つ以上の出力インバータを同時に駆動することはできないルールをまだ実施しなければならない。
【００５３】
　図１０を完結するために、底部にスイッチトバァッファ５８Ｂ３が例示されており、それは図３で図解したようにデータ値Ｂをサブユニット５４４に与える。単一制御信号ＳＥＬ＿ＬＭＢＤが２つのｎ-チャネルトランジスタ１５０１，１５０２のゲートに接続されている。ｎ-チャネルトランジスタ１５０１，１５０２の第１のソース/ドレインはそれぞれノード１０２Ｂおよび１０６Ｂに接続されており、ｎ-チャネルトランジスタ１５０１および１５０２の第２のソース/ドレインはそれぞれインバータ１５２１および１５２２の入力に接続されている。単一制御信号ＳＥＬ＿ＮＯＲＭが２つのｎ-チャネルトランジスタ１５４１および１５４２のゲートに接続されている。ｎ-チャネルトランジスタ１５４１および１５４２の第１のソース/ドレインはそれぞれインバータ１５２１および１５２２の入力に接続されており、ｎ-チャネルトランジスタ１５０１および１５０２の第２のソース/ドレインはそれぞれ接続１５６１および１５６２の第１の端子に接続されている。各接続１５６１および１５６２の第２の端子はｎ-チャネルトランジスタ１５０１および１５０２に与えられるビットＢ（および、そのコンプリメント）に関して次下位ビット（Ｎ-１として示す）からのデータＢおよびＢＮをそれぞれ受信するように接続されている。
【００５４】
　次に、図１０のスイッチトバァッファ５８Ｂ３の動作について説明する。前置きとして、好ましい実施例ではサブユニット５４４により提供されるノーマライザが本検討に対して興味のある少なくとも２つの命令に関して動作できることに注目されたい。ＮＯＲＭ命令は３２ビット符号付き数内の先行する１または０を探し、ＬＭＢＤ（最左ビット検出）命令は第２のデータ入力を使用して０または１を探すかどうかを指定し、次に入力データの３２ビット全部にわたってそれを探す。これら２つの命令間の違いはビット３０がＮＯＲＭ命令に対して１または０を見つける最高ビット位置であり、ビット３１がＬＭＢＤ命令に対する最高ビット位置であるということである。好ましい実施例においてノーマライザサブユニット５４４に対するこれら２つの代替演算を結合するために、ＳＥＬ＿ＮＯＲＭを表明しＳＥＬ＿ＬＭＢＤを表明しないことによりＮＯＲＭ命令に対してＢ入力データが左シフトされ、ＳＥＬ＿ＬＭＢＤを表明してＳＥＬ＿ＮＯＲＭを表明しないことによりそれはＬＭＢＤ命令に対して左シフトされない。特に、回路図に関するこれらの演算に注目すると、評価フェーズ中にＳＥＬ＿ＬＭＢＤが表明されＳＥＬ＿ＮＯＲＭが表明されない時は、インバータ１５２１および１５２２への入力は各ｎ-チャネルトランジスタ１５０１および１５０２を介してそれぞれＢおよびＢＮに接続される。逆に、評価フェーズ中にＳＥＬ＿ＮＯＲＭが表明されＳＥＬ＿ＬＭＢＤが表明されない時は、インバータ１５２１への入力はｎ-チャネルトランジスタ１５０４を介して接続１５６１に接続され、データＢのすぐ下位のビット値をインバータ１５２１の入力に接続し、同時にインバータ１５２２への入力はｎ-チャネルトランジスタ１５０２を介して接続１５６２に接続され、データＢＮのすぐ下位のビット値をインバータ１５２２の入力に接続する。したがって、このようにして、ＮＯＲＭ命令の前記した左シフト操作は容易になる。さらに、ＮＯＲＭまたはＬＭＢＤ命令のいずれかに対して、各データ信号（すなわち、ＢおよびＢＮ）はせいぜい単一インバータの入力にしか接続されず、駆動信号およびその駆動回路上の負荷は最小限に抑えられることにもう一度注目されたい。
【００５５】
　図１１は図３の全てのスイッチトバァッファ５８Ａ１，５８Ａ２，５８Ａ３，５８Ｂ１，５８Ｂ２，および５８Ｂ３に対してスタティック論理を使用する実施例の回路図を示す。図１１のいくつかの概念は図１０のそれに類似しており、読者は前の検討に通じているものと仮定する。しかしながら、図１１では、インプリメンテーションはスタティック論理によるものであるためＣＭＯＳパスゲートがｎ-チャネルデバイスの替わりに使用され、ラッチされた出力がプリチャージされた出力の替わりに使用される。さらに、後述するように、これら２つの側面の使用を超えたいくつかの違いがある。
【００５６】
　始めに、図１１はやはりデータＡおよびＢとその負値を例示しているが、これはスタティック論理インプリメンテーションであるため、図４および６に関して前記したような方法で構成される場合には、必ずしもフォワーディングマルチプレクサ５６Ａおよび５６Ｂにより提供されるデュアルレール信号はない。したがって、付加負入力ＡＮおよびＢＮを与えるために、各フォワーディングマルチプレクサからの付加インバータ１６０１および１６０２が必要である。いずれにせよ、図１１に示す２つのデータ状態およびそれらの対応するコンプリメントが与えられると、これらの信号のさまざまなスイッチトバァッファへの接続は次のようになる。
【００５７】
　図１１のスイッチトバァッファ５８Ａ１に注目すると、データＡがＣＭＯＳパスゲート１６２に接続されそれはさらに２つのインバータ１６４１および１６４２を有するラッチ１６４の入力に接続されており、インバータ１６４１はラッチ１６４の入力および出力を与えインバータ１６４２の入力はインバータ１６４１の出力に接続されており、インバータ１６４２の出力はインバータ１６４１の入力に接続されている。パスゲート１６２のｎ-チャネルトランジスタは信号ＳＥＬＡにより制御され、この制御信号のコンプリメントはその同じパスゲートのｐ-チャネルトランジスタを制御するが、図１１の図解を簡単にするために、この相補制御はバァッファ５８Ａ１に関しては図示されておらず、事実、図１１の他のスイッチトバァッファの他のｐ-チャネルトランジスタへの相補制御信号も図示されていないが、当業者ならば理解できるようにインプリメントされるものと理解される。ＡＮデータがＣＭＯＳパスゲート１６６に接続されそれはさらにラッチ１６４の入力に接続されており、パスゲート１６６のｎ-チャネルトランジスタは信号ＳＥＬＡ＿ＩＮＶにより制御され、その制御信号のコンプリメントはパスゲート１６６のｐ-チャネルトランジスタを制御する。
【００５８】
　図１１のスタティック論理形式でのスイッチトバァッファ５８Ａ１の動作は図１０のダイナミック論理バァッファに一部あるレベルの類似性が与えられると理解しなければならない。サブユニット５８Ａ１の単一実行サイクルに対して、制御信号ＳＥＬＡおよびＳＥＬＡ＿ＩＮＶの一方だけを表明することができる。ＳＥＬＡが表明される、したがってＳＥＬＡ＿ＩＮＶが表明されない、時はパスゲート１６２はデータＡ入力をラッチ１６４の入力に接続する。逆に、ＳＥＬＡ＿ＩＮＶが表明される、したがってＳＥＬＡが表明されない、時はパスゲート１６２はＡＮデータ入力をラッチ１６４の入力に接続する。したがって、最後に、ラッチ１６４は出力としてそのデータ入力のコンプリメントを与える。
【００５９】
　図１１のスイッチトバァッファ５８Ｂ１に注目すると、それはスイッチトバァッファ５８Ａ１と同様に構成されているが、それはデータＡではなくデータＢに関連するため入力および出力信号は異なる。したがって、データＢがＣＭＯＳパスゲート１６８に接続されそれはさらに前記したラッチの場合のように帰還構成として接続された２つのインバータ１７０１および１７０２を有するラッチ１７０の入力に接続されている。パスゲート１６８のｎ-チャネルトランジスタは信号ＳＥＬＢにより制御され、この制御信号のコンプリメントはやはりパスゲート１６８内のｐ-チャネルトランジスタに加えられるがまだ加えると理解されたとは示されていない。ＢＮデータがＣＭＯＳパスゲート１７２に接続されそれはさらにラッチ１７０の入力に接続されており、パスゲート１７２のｎ-チャネルトランジスタは信号ＳＥＬＢ＿ＩＮＶにより制御され、パスゲート１７２のｐ-チャネルトランジスタはＳＥＬＢ＿ＩＮＶのコンプリメントにより制御される。　
【００６０】
　図１１のスイッチトバァッファ５８Ｂ１の動作はスイッチトバァッファ５８Ａ１のそれと同じであるが、データＢ（および、そのコンプリメントＢＮ）に加えられる。したがって、サブユニット５８１の単一実行サイクルに対して、制御信号ＳＥＬＢおよびＳＥＬＢ＿ＩＮＶの一方だけを表明することができる。ＳＥＬＢが表明される、したがってＳＥＬＢ＿ＩＮＶが表明されない、時はパスゲート１６８はデータＢ入力をラッチ１７０の入力に接続する。逆に、ＳＥＬＢ＿ＩＮＶが表明される、したがってＳＥＬＢが表明されない、時はパスゲート１７２はデータＢＮ入力をラッチ１７０の入力に接続する。したがって、最後に、ラッチ１７０は出力としてそのデータ入力のコンプリメントを与える。　
【００６１】
　図１１のスイッチトバァッファ５８Ａ３に戻って、単一制御信号ＳＥＬ３を２つのＣＭＯＳパスゲート１７３１および１７３２のｎ-チャネルトランジスタに接続しかつその信号のコンプリメントをこれらのゲートのｐ-チャネルトランジスタに接続することにより、単一制御信号ＳＥＬ３は２つのＣＭＯＳパスゲート１７３１および１７３２を制御するように接続される。ＣＭＯＳパスゲート１７３１の入力はデータＡに接続されＣＭＯＳパスゲート１７３２の入力はデータＡＮに接続される。ＣＭＯＳパスゲート１７３１の出力は前記したラッチのように帰還構成として接続された２つのインバータ１７４１および１７４２を有するラッチ１７４の入力に接続されており、ＣＭＯＳパスゲート１７２２の出力は前記したラッチのように帰還構成として接続された２つのインバータ１７６１および１７６２を有するラッチ１７４の入力に接続されている。また、スイッチトバァッファ５８Ａ３内で単一制御信号ＳＥＬ３＿ＩＮＶを２つのＣＭＯＳパスゲート１７８１および１７８２のｎ-チャネルトランジスタに接続しかつその信号のコンプリメントをこれらのゲートのｐ-チャネルトランジスタに接続することにより、単一制御信号ＳＥＬ３＿ＩＮＶは２つのＣＭＯＳパスゲート１７８１および１７８２を制御するように接続される。ＣＭＯＳパスゲート１７８１の入力はデータＡに接続されＣＭＯＳパスゲート１７８２の入力はデータＡＮに接続される。ＣＭＯＳパスゲート１７８１の出力はラッチ１７６の入力に接続されており、ＣＭＯＳパスゲート１７８２の出力はラッチ１７４の入力に接続されている。
【００６２】
　図１１のスイッチトバァッファ５８Ａ３の動作はサブユニット５８３の単一実行サイクルに対して、制御信号ＳＥＬ３およびＳＥＬ３＿ＩＮＶの一方しか表明できない。ＳＥＬ３が表明される、したがってＳＥＬ３＿ＩＮＶが表明されない、時はパスゲート１７３１はデータＡ入力をラッチ１７４の入力に接続しパスゲート１７３２はデータＡＮ入力をラッチ１７６の入力に接続して、図１１に示す第１列の出力（すなわち、ＡおよびＡ（バー））を与える。逆に、ＳＥＬ３＿ＩＮＶが表明される、したがってＳＥＬ３が表明されない、時はパスゲート１７８１はデータＡ入力をラッチ１７６の入力に接続しパスゲート１７８２はデータＡＮ入力をラッチ１７４の入力に接続して、図１１に示す第２列の出力（すなわち、ＡおよびＡ（バー））を与える。
【００６３】
　図１１のスイッチトバァッファ５８Ａ２および５８Ｂ２に戻って、これらの構造および機能の一部は共有制御信号により共有されるものとして示されている。特に、単一制御信号ＳＥＬ２/３ＡＢを２つのＣＭＯＳパスゲート１８０１および１８０２のｎ-チャネルトランジスタに接続しかつその信号のコンプリメントをこれらのゲートのｐ-チャネルトランジスタに接続することにより、単一制御信号ＳＥＬ２/３ＡＢは２つのＣＭＯＳパスゲート１８０１および１８０２を制御するように接続される。ＣＭＯＳパスゲート１８０１の入力はデータＡに接続されＣＭＯＳパスゲート１８０２の入力はデータＢに接続される。ＣＭＯＳパスゲート１８０１の出力は前記したラッチのように帰還構成として接続された２つのインバータ１８２１および１８２２を有するラッチ１８２の入力に接続されており、ＣＭＯＳパスゲート１８０２の出力はやはり前記したラッチのように帰還構成として接続された２つのインバータ１８４１および１８４２を有するラッチ１８４の入力に接続されている。また、スイッチトバァッファ５８Ａ２および５８Ｂ２内で、単一制御信号ＳＥＬ２/３ＳＷＡＰＡＢを２つのＣＭＯＳパスゲート１８６１および１８６２のｎ-チャネルトランジスタに接続しかつその信号のコンプリメントをこれらのゲートのｐ-チャネルトランジスタに接続することにより、単一制御信号ＳＥＬ２/３ＳＷＡＰＡＢは２つのＣＭＯＳパスゲート１８６１および１８６２を制御するように接続される。ＣＭＯＳパスゲート１８６１の入力はデータＢに接続され、ＣＭＯＳパスゲート１８６２の入力はデータＡに接続される。ＣＭＯＳパスゲート１８６１の出力はラッチ１８２の入力に接続されており、ＣＭＯＳパスゲート１８６２の出力はラッチ１８４の入力に接続されている。
【００６４】
　図１１のスイッチトバァッファ５８Ａ２および５８Ｂ２の動作はサブユニット５８２または５８３の単一実行サイクルに対して、制御信号ＳＥＬ２/３およびＳＥＬ２/３ＳＷＡＰＡＢの一方しか表明できない。ＳＥＬ２/３が表明される、したがってＳＥＬ２/３ＳＷＡＰＡＢが表明されない、時はパスゲート１８０１はＡデータ入力をラッチ１８２の入力に接続しパスゲート１８０２はＢデータ入力をラッチ１８４の入力に接続して、図１１に示す第１列の出力（すなわち、ＡおよびＢ）を与える。逆に、ＳＥＬ２/３ＳＷＡＰＡＢが表明される、したがってＳＥＬ２/３が表明されない、時はパスゲート１８６１はＢデータ入力をラッチ１８２の入力に接続しパスゲート１８６２はＡデータ入力をラッチ１８４の入力に接続して、図１１に示す第２列の出力（すなわち、ＢおよびＡ）を与える。
【００６５】
　図１１のスイッチトバァッファ５８Ｂ３に戻って、ＢデータがＣＭＯＳパスゲート１８８に接続されそれはさらに前記したラッチと同様に接続された２つのインバータ１９０１および１９０２を有するラッチ１９０の入力に接続されている。パスゲート１８８のｎ-チャネルトランジスタはそのゲートのｐ-チャネルトランジスタへの信号ＳＥＬ＿ＬＭＢＤおよびその信号のコンプリメントにより制御される。スイッチトバァッファ５８Ｂ３は第２のＣＭＯＳパスゲート１９２も含んでおり、その入力は接続１９４の第１の端子に接続され接続１９４の第２の端子はパスゲート１８８へ与えられるビットＢの次下位ビット（Ｎ-１として示す）からのＢデータを受信するように接続されている。ＣＭＯＳパスゲート１９２の出力はラッチ１９０の入力に接続され、その出力はバァッファ５８Ｂ３の出力を与える。
【００６６】
　次に、図１１のスイッチトバァッファ５８Ｂ３の動作について説明するが、読者はＮＯＲＭおよびＬＭＢＤ命令に関して同じ機能が図１１の実施例に関しても実施される点において図１０のスイッチトバァッファ５８Ｂ３およびその動作に通じているものと仮定する。したがって、好ましい実施例では、入力データＢはＳＥＬ＿ＮＯＲＭを表明しＳＥＬ＿ＬＭＢＤを表明しないことによりＮＯＲＭ命令に対して左シフトされ、ＳＥＬ＿ＬＭＢＤを表明しＳＥＬ＿ＮＯＲＭを表明しないことによりＬＭＢＤ命令に対して左シフトされない。特に、回路図に関してこれらの動作をより詳細に注目すると、ＳＥＬ＿ＬＭＢＤが表明されＳＥＬ＿ＮＯＲＭが表明されない場合、パスゲート１８８はデータＢを直接ラッチ１９０の入力に接続する。逆に、ＳＥＬ＿ＮＯＲＭが表明されＳＥＬ＿ＬＭＢＤが表明されない場合、パスゲート１９２はデータＢの次下位ビット値をラッチ１９２の入力に接続し、このようにして、前記したＮＯＲＭ命令の左シフト操作が達成される。
【００６７】
　最後に、図１１の底部にはサブユニット５４２の論理演算子ブロックへデータＢを与える独立回路が含まれている。したがって、前記したようにスイッチトバァッファ５８Ｂ２によりサブユニット５４３へデータＢが与えられる他に、スタティックインプリメンテーションに対する実施例ではサブユニット５４２へデータＢを与えるために独立した回路が使用され、この独立回路は図１１に５８’Ｂ２として示されている。回路５８’Ｂ２はデータＢに接続された入力、制御信号ＳＥＬ＿ＬＯＧの相補状態により制御される相補ゲート、および前記したラッチと同様に接続された２つのインバータ１９８１および１９８２を有するラッチ１９８の入力に接続された出力を有するＣＭＯＳパスゲート１９６を含んでいる。ラッチ１９８の出力はサブユニット５４２の論理演算子ブロックへデータＢを与える。
【００６８】
　図１１のスタティック論理の好ましい実施例について説明してきたので、次に、それと図１０のダイナミック論理の好ましい実施例とのさまざまな違いに注目する。図１１の好ましい実施例はデュアルレールの替わりにシングルレール入力をサブユニットに与える。デュアルレールは極端な速度が必要とされるケースで使用することができるが、典型的にはスタティック論理に対して必要ではない。前記したことにかかわらず、図１１の好ましい実施例においてまた後述するように、デュアルレール信号はスイッチトバァッファ５８Ａ３により与えられ、それは図３から出力がシフターとしてのサブユニット５４３へシフトカウントを与えるように接続され、かつ両極性の出力がこのしばしばクリティカルなパスの速度を速めるのを助けることを思い出せば判ることであり、さらに、スイッチトバァッファ５８Ａ３はデュアルレール出力を与え、次に、トランジスタ１７８１および１７８２はデータパスの直列抵抗を増すことなく付加データ反転能力を提供するため好ましく付加される。さらに、論理演算子ブロックとしてのサブユニット５４２へデータを与えるための付加パス５８’Ｂ２がある。このパスは独立したラッチされたＢ出力をサブユニット５４２へ与え、そのユニットがサブユニット５４３とは独立してパワーダウンできるようにする。例えば、各サブユニットの第１段の放電パス内に付加ｐ-チャネルトランジスタを含めて各サブユニットが独立してパワーダウンされるようにすることができ、事実、その同じトランジスタが付加機能も提供することができる。サブユニット５４２およびサブユニット５４３へのデータＡ入力はやはり共用されており、Ａ入力はシフターとしてのサブユニット５４３により限定された方法で使用され、他の命令に対するＡ入力の変化に対してシフターの感度を低下させることは直接的である。データＡ入力がシフターとしてのサブユニット５４３により比較的少数の頻繁に使用される命令だけで使用されるため、そのサイクルが受け入れられる間にサブユニット５４３へも入力される任意の可能な遷移を論理演算子ブロックとしてのサブユニット５４２に受信させる。あるいは、これらの命令の一つが生じる時に、サブユニット５４２の論理演算子ブロックの制御はその入力の感度を低下させるように変えることができ、この制御の変化により非使用サブユニット５４２において遷移を作り出されるが、いずれにせよ変化する入力による遷移があるため将来の全てのシフト操作に対して論理演算子ブロックは後の実行サイクルで使用されるまでそれ以上遷移しない。最後に、これらのサブユニットの設計を考慮してサブユニットへの入力の選択を変えることができる。例えば、シフターは基本的なシフトおよびエクストラクト命令だけでなく、８，１６，および３２ビット命令間で前後に移動するいくつかのパックおよびアンパック命令を含んでいる。これらがどのように実施されるかに応じて、独立したパック/アンパックサブユニットに対してＡおよびＢデータの独立した出力コピーを提供するのが有利である。
【００６９】
　前記したことから、前記した実施例はフォワーディングマルチプレクサからプロセッサ機能ユニット内の半分以下のサブユニット、大概の場合これらのサブユニットの一つだけ、に選択的にデータを転送することにより性能および効率を改善する非常に多くの方法で従来技術にまさるさまざまな利点を提供することを理解できる。これらの方法は制限するためではなく図解するために非常に多くの例を使用して図解された。したがって、当業者ならば本文書の発明的教示をここに記載されたものよりも多いまたは少ないサブユニットを有するおよび/または好ましい例により記載されたものとは異なる機能を提供するサブユニットを含む非常に多くのプロセッサに容易に応用することができる。したがって、実施例について詳細に説明してきたが、添付特許請求の範囲により明記される発明の範囲を逸脱することなく前記した説明にさまざまな置換、修正または変更が可能である。
　以上の説明に関して更に以下の項を開示する。
【００７０】
　（１）複数の命令を含む命令セットに応答して動作することができるプロセッサであって、前記プロセッサは、
　整数個Ｓのサブユニットを含む機能ユニットを含み、
　　各サブユニットは実行サイクル中に少なくとも２つのデータ引数に応答して命令セット内の少なくとも一つの命令を実行するように動作することができ、
　　Ｓは１よりも大きく、さらに、
　単一実行サイクルに対して少なくとも２つのデータ引数の更新値をＳ個のサブユニットの全部にではなく提供する回路を含むプロセッサ。
【００７１】
　（２）第１項記載のプロセッサであって、機能ユニットはさらに実行サイクル中に少なくとも２つのデータ引数の第１のデータ引数だけに応答して命令セット内の少なくとも一つの命令を実行するように動作することができる付加サブユニットを含むプロセッサ。
【００７２】
　（３）第１項記載のプロセッサであって、前記回路は単一実行サイクルに対して少なくとも２つのデータ引数の更新値をＳ個のサブユニットの一つだけに提供するプロセッサ。
【００７３】
　（４）第１項記載のプロセッサであって、整数個Ｓのサブユニットは論理演算子ユニットおよびシフターユニットを含み、
　前記回路は単一実行サイクルに対して少なくとも２つのデータ引数の更新値を論理演算子ユニットおよびシフターユニットに提供するプロセッサ。
【００７４】
　（５）第１項記載のプロセッサであって、少なくとも２つのデータ引数の更新値を提供する前記回路は少なくとも２つのデータ引数の少なくとも一つのデュアルレール信号を与えるダイナミック論理回路を含み、
　ダイナミック論理回路は、
　　第１のデータ値を受信する第１の入力ノードと、
　　第１のデータ値のデュアルレール信号を含む第２のデータ値を受信する第２の入力ノードと、
　　第１および第２の出力インバータであって、単一実行サイクルに対して少なくとも２つのデータ引数の一方のデュアルレール更新値を提供する第１および第２の出力インバータと、
　　第１の入力ノードと第１の出力インバータへの入力との間に接続されたソース/ドレインパスを含む第１のトランジスタと、
　　第２の入力ノードと第２の出力インバータへの入力との間に接続されたソース/ドレインパスを含む第２のトランジスタと、
　　所与の単一実行サイクルに対して第１および第２のトランジスタをイネーブルする回路と、
　　第１の入力ノードと第２の出力インバータへの入力との間に接続されたソース/ドレインパスを含む第３のトランジスタと、
　　第２の入力ノードと第１の出力インバータへの入力との間に接続されたソース/ドレインパスを含む第４のトランジスタと、
　　所与の単一実行サイクルに対して第３および第４のトランジスタをイネーブルする回路と、を含み、
　単一実行サイクルに対して第１および第２または第３および第４のトランジスタだけがイネーブルされるプロセッサ。
【００７５】
　（６）第１項記載のプロセッサであって、少なくとも２つのデータ引数の更新値を提供する前記回路は、
　少なくとも２つのデータ引数の少なくとも一方のデュアルレール信号を与えるダイナミック論理回路と、
　少なくとも２つのデータ引数の少なくとも一方のデュアルレール信号の論理的反転を与えるダイナミック論理回路と、
を含むプロセッサ。
【００７６】
　（７）第１項記載のプロセッサであって、機能ユニットはさらに実行サイクル中に少なくとも２つのデータ引数の第１のデータ引数だけに応答して命令セット内の少なくとも一つの命令を実行するように動作することができる付加サブユニットを含み、
　前記回路はさらに単一実行サイクルに対して付加サブユニットだけに第１のデータ引数の更新値を提供し、
　第１のデータ引数の更新値を付加サブユニットだけに提供する前記回路はスタティック論理回路を含み、
　前記スタティック論理回路は、
　　第１のデータ値を受信する第１の入力ノードと、
　　単一実行サイクルに対して第１のデータ引数の更新値を提供する出力ラッチと、
　　第１の入力ノードと出力ラッチへの入力との間に接続された第１のパスゲートと、
　　出力ラッチへの入力と第１のデータ値に関する次下位ビットを表わすデータを与えるデータノードとの間に接続された第２のパスゲートと、
　　所与の単一実行サイクルに対して第１のパスゲートをイネーブルする回路と、
　　所与の単一実行サイクルに対して第２のパスゲートをイネーブルする回路と、を含み、
　単一実行サイクルに対して第１または第２のパスゲートの一方だけがイネーブルされるプロセッサ。
【００７７】
　（８）複数の命令を含む命令セットに応答して動作することができるプロセッサの動作方法であって、プロセッサは整数個Ｓのサブユニットを含む機能ユニットを含みＳは１よりも大きく、前記方法は、
　単一実行サイクルに対して少なくとも２つのデータ引数の更新値をＳのサブユニットの全部にではなく提供するステップと、
　単一実行サイクル内で、与えられた少なくとも２つのデータ引数の更新値に応答して命令を実行するステップと、
を含む方法。
【００７８】
　（９）命令セットを有し多数の各実行サイクル内で多数の命令を実行するように動作することができるプロセッサであって、前記プロセッサは、
　多数のサブユニットを含む機能ユニットであって、複数の実行サイクル内の各単一実行サイクルに対して多数のサブユニットの各一つのサブユニットだけが第１のデータ引数および第２のデータ引数に応答して命令セット内の命令を実行する機能ユニットと、
　各実行サイクルに対して、第１のデータ引数および第２のデータ引数の更新値を多数のサブユニットの全部にではなく提供する回路と、
を含むプロセッサ。
【００７９】
　（１０）複数の命令を含む命令セットに応答して動作することができるプロセッサであって、前記プロセッサは、
　論理演算子ユニット、シフターユニット、算術論理演算器、およびノーマライザユニットを含む機能ユニットを含み、
　各論理演算子ユニット、シフターユニット、算術論理演算器は実行サイクル中に少なくとも２つのデータ引数に応答して命令セット内の少なくとも一つの命令を実行するように動作することができ、
　ノーマライザユニットは実行サイクル中に少なくとも一つのデータ引数に応答して命令セット内の少なくとも一つの命令を実行するように動作することができ、さらに、
　単一実行サイクルに対して少なくとも２つのデータ引数の更新値を論理演算子ユニット、シフターユニット、算術論理演算器の全部にではなく提供する回路と、
　単一実行サイクルに対して少なくとも一つのデータ引数の更新値をノーマライザユニットだけに提供する回路と、
を含むプロセッサ。
【００８０】
　（１１）複数の命令を含む命令セットに応答して動作することができるプロセッサ（５０）。プロセッサは整数個Ｓのサブユニット（５４１，５４２，５４３）を含み、Ｓは１よりも大きい整数である。各サブユニットは、単一実行サイクル中に、少なくとも２つのデータ引数（Ａ，Ｂ）に応答して命令セット内の少なくとも一つの命令を実行するように動作することができる。プロセッサはさらに単一実行サイクルに対して少なくとも２つのデータ引数の更新値をＳのサブユニットの全部にではなく提供する回路（５８Ａ１，５８Ａ２，５８Ａ３，５８Ｂ１，５８Ｂ２）を含んでいる。
【図面の簡単な説明】
【００８１】
【図１】従来技術のプロセッサ１０のブロック図である。
【図２】４つの命令１，２，３，および４の各々に関する図１のプロセッサの動作の３つのクロックサイクルを例示する図である。
【図３】一つの好ましい実施例に従ったプロセッサのブロック図である。
【図４】図３からのフォワーディングマルチプレクサ５６Ａおよびスイッチトバァッファ５８Ａ１，５８Ａ２，および５８Ａ３の好ましい実施例インプリメンテーションの回路図である。
【図５】フォワーディングマルチプレクサ５６ＡがＡ１データ入力を選択しスイッチトバァッファ５８Ａ２がその入力上のデータをサブユニット５４２および５４３に与える例のタイミング図である。
【図６】図３からのフォワーディングマルチプレクサ５６Ａおよびスイッチトバァッファ５８Ａ１，５８Ａ２，および５８Ａ３の代替スタティック論理好ましい実施例インプリメンテーションの回路図である。
【図７】ダイナミック論理回路を使用する図３からのフォワーディングマルチプレクサ５６Ａおよびスイッチトバァッファ５８Ａ１，５８Ａ２，および５８Ａ３の好ましい実施例インプリメンテーションに対してダイナミック論理を使用する回路図である。
【図８】フォワーディングマルチプレクサ５６ＡがＡＸ１データ入力を選択しスイッチトバァッファ５８Ａ２がその入力上のデータをサブユニット５４２および５４３に与える例のタイミング図である。
【図９】スイッチトバァッファ５８Ａ１，および５８Ａ３に対してダイナミック論理を使用する代替実施例の回路図である。
【図１０】図３の全てのスイッチトバァッファ５８Ａ１，５８Ａ２，５８Ａ３，５８Ｂ１，５８Ｂ２，および５８Ｂ３に対してダイナミック論理を使用する実施例の回路図である。
【図１１】図３の全てのスイッチトバァッファ５８Ａ１，５８Ａ２，５８Ａ３，５８Ｂ１，５８Ｂ２，および５８Ｂ３に対してスタティック論理を使用する実施例の回路図である。
【符号の説明】
【００８２】
　１０，５０　プロセッサ
　１２，５２　機能ユニット
　１４１，１４２，１４３，１４４，５４１，５４２，５４３，５４４　サブユニット
　１６Ａ，１６Ｂ，５６Ａ，５６Ｂ　フォワーディングマルチプレクサ
　１８Ａ，１８Ｂ　データ入力レジスタ
　２０　出力マルチプレクサ
　２１　レジスタ
　２２　レジスタファイル
　２２１，２２２　リードポート
　５８Ａ１，５８Ａ２，５８Ａ３，５８Ｂ１，５８Ｂ２，５８Ｂ３　スイッチトバァッファ
　７０１，７０２，７４１，７４２，７４３，１６２，１６８，１７２，１７３１，１７３２，４３，１６２，１６８，１７２，１７８１，１７８２，１８０１，１８０２，１８６１，１８６２，１８８，１９２　ＣＭＯＳパスゲート
　７２，８４，１０２，１０６，１１０，１１２，１２２，１２４，１０２Ａ，１０２Ｂ，１０６Ａ，１０６Ｂ　ノード
　７６１，７６２，７６３，７８１，７８２，７８３，８０１，８１２，９２１，９２２，９２３，９８１，９８２，９８３，１１４１，１１４２，１２６１，１２６２，１４２１，１４２２，１４２３，１４２４，１５２１，１５２２，１６０１，１６０２，１６４１，１６４２，１７０１，１７０２，１７４１，１７４２，１７６１，１７６２，１８２１，１８２２，１８４１，１８４２，１９０１，１９０２，１９８１，１９８２　インバータ
　８２１，８２２，８６１，８６２，８６３，９４１，９４２，９４３，１００１，１００２，１０４１，１０４２，１０８１，１０８２，１１８１，１１８２，１２８１，１２０２，１３０１，１３０２，１４０１，１４０２，１４０３，１４０４，１４４１，１４４２，１４４３，１４４４，１５０１，１５０２，１５４１，１５４２　ｎ-チャネルトランジスタ
　８８１，８８２，８８３　プリチャージノード
　９０１，９０２，９０３，９６１，９６２，９６３，１１５１，１１５２，１１５３，１１５４，１１６１，１１６２，１２８１，１２８２　ｐ-チャネルトランジスタ
　１５６１，１５６２，１９４　接続
　１６４，１７０，１７４，１７６，１８２，１８４，１９０，１９８　ラッチ
　１６６　パスゲート
【図１】
2004078965.tif 000003
【図２】
2004078965.tif 000004
【図３】
2004078965.tif 000005
【図４】
2004078965.tif 000006
【図５】
2004078965.tif 000007
【図６】
2004078965.tif 000008
【図７】
2004078965.tif 000009
【図８】
2004078965.tif 000010
【図９】
2004078965.tif 000011
【図１０】
2004078965.tif 000012
【図１１】
2004078965.tif 000013