(57)【特許請求の範囲】
【請求項１】
評価パルスのアサーション中に１つ又は複数のデータ入力を評価し、そしてその１つ又は複数のデータ入力に基づきダイナミックノードを選択的にディスチャージするように結合された評価ネットワークであって、通常の非スキャンモード動作中に、前記１つ又は複数のデータ入力から独立して評価パルスがクロック信号から導出され、そしてクロック信号がアサートされるより短い時間中アサートされるような評価ネットワークと、
前記ダイナミックノードに結合された出力記憶素子であって、動作中に前記ダイナミックノードに基づいて出力を発生する出力記憶素子と、
スキャン動作モード中に１つ又は複数のスキャン入力信号のアサーションに応答してスキャンデータを前記出力記憶素子へ入力するように結合された１つ又は複数のデバイスと、
を備えた装置。
【請求項２】
前記１つ又は複数のデバイスは、マルチプレクスデータ（ＭＵＸ−Ｄ）スキャンゲートを実施するように結合され、そしてそのＭＵＸ−Ｄスキャンゲートの通常機能モード動作及びスキャンモード動作の両方をコントロールするように前記評価パルスの１つ又は複数のバージョンが結合される、請求項１に記載の装置。
【請求項３】
前記１つ又は複数のデバイスは、レベル感知スキャン設計（ＬＳＳＤ）スキャンゲートを実施するように結合され、そしてそのＬＳＳＤスキャンゲートのスキャンモード動作をコントロールするように前記評価パルスとは個別のスキャンモードクロックが結合される、請求項１に記載の装置。
【請求項４】
前記評価ネットワークは、前記１つ又は複数のデータ入力の論理的機能を実施するように構成された１つ又は複数のデバイスを備え、前記１つ又は複数のデータ入力が前記評価パルスのアサーション中に前記論理的機能を満足するのに応答して、前記１つ又は複数のデバイス間に前記評価ネットワークを通る１つ又は複数のディスチャージ経路が発生される、請求項１に記載の装置。
【請求項５】
前記１つ又は複数のデバイスは、１つ又は複数のＮ型電界効果トランジスタ（ＮＦＥＴ）を含む、請求項４に記載の装置。
【請求項６】
前記１つ又は複数のデータ入力は、１オブＮフォーマットでエンコードされる、請求項１に記載の装置。
【請求項７】
前記評価パルスは、スキャンモード動作中にはアサートされない、請求項１に記載の装置。
【請求項８】
前記評価パルスは、クロック信号の立ち上り縁の後に評価パルスの立ち上り縁が生じそしてクロック信号の立ち下り縁の前に評価パルスの立ち下り縁が生じるように、クロック信号から導出される、請求項１に記載の装置。
【請求項９】
動作中に、クロック信号をクロック信号の遅延バージョンと合成して前記評価パルスを発生するパルスジェネレータを更に備えた、請求項１に記載の装置。
【請求項１０】
クロック信号によりコントロールされる１つ又は複数のフィードバックデバイスを更に備え、前記ダイナミックノードのディスチャージ及び評価デバイスのデアサーションに続き、前記１つ又は複数のフィードバックデバイスは、前記出力をアサート状態に維持するように構成される、請求項１に記載の装置。
【請求項１１】
前記クロック信号のデアサーションに応答して、前記１つ又は複数のフィードバックデバイスは、前記出力をデアサート状態にリセットするよう構成される、請求項１０に記載の装置。
【請求項１２】
ダイナミックロジックゲートのスキャンモード動作を検出する段階であって、そのダイナミックロジックゲートは、ダイナミックノードを含み、ダイナミックロジックゲートの通常の非スキャンモード動作中に、ダイナミックノードは、評価パルスの適格化バージョンのアサーション中の１つ又は複数のデータ入力に基づいて選択的にディスチャージされ、通常の非スキャンモード動作中に、評価パルスは、前記１つ又は複数のデータ入力から独立してクロック信号から導出され、そしてクロック信号がアサートされるより短い期間中アサートされ、そして評価パルスの適格化バージョンは、スキャンモード動作中にはアサートされないような段階と、
スキャンモード動作を検出するのに応答して、前記ダイナミックロジックゲートに与えられる１つ又は複数のデータ入力とは独立したプリチャージ状態に前記ダイナミックノードを維持する段階と、
前記スキャンモード動作中に、評価パルスのアサーションに応答して前記ダイナミックロジックゲートの記憶素子にスキャンデータを記憶する段階であって、その評価パルスは、前記ダイナミックロジックゲートの通常機能モード動作及びスキャンモード動作の両方をコントロールするように結合される段階と、
を備えた方法。
【請求項１３】
前記１つ又は複数のデータ入力は、１オブＮフォーマットでエンコードされる、請求項１２に記載の方法。
【請求項１４】
前記評価パルスは、クロック信号の立ち上り縁の後に評価パルスの立ち上り縁が生じそしてクロック信号の立ち下り縁の前に評価パルスの立ち下り縁が生じるように、クロック信号から導出される、請求項１２に記載の方法。
【請求項１５】
請求項１に記載の装置のインスタンスを各々含む複数のスキャン可能なパルスダイナミックロジックゲートと、
前記スキャン可能なパルスダイナミックロジックゲートを相互接続するスキャンチェーンと、
を備えた集積回路。
【請求項１６】
メモリと、
前記メモリに結合された請求項１５に記載の集積回路と、
を備えたシステム。
【請求項１７】
評価パルスのアサーション中に１つ又は複数のデータ入力を評価し、そしてその１つ又は複数のデータ入力に基づきダイナミックノードを選択的にディスチャージするための手段であって、評価パルスは、前記１つ又は複数のデータ入力から独立してクロック信号から導出され、そしてクロック信号がアサートされるより短い時間中アサートされるものである手段と、
前記ダイナミックノードに基づいて出力を発生する手段と、
スキャン動作モード中に１つ又は複数のスキャン入力信号のアサーションに応答して、前記出力を発生する手段へスキャンデータを入力するための手段と、
を備えた装置。
【請求項１８】
前記スキャンデータを入力する手段は、マルチプレクスデータ（ＭＵＸ−Ｄ）スキャンゲートを実施するように結合され、そしてそのＭＵＸ−Ｄスキャンゲートの通常機能モード動作及びスキャンモード動作の両方をコントロールするように前記評価パルスの１つ又は複数のバージョンが結合される、請求項１７に記載の装置。
【請求項１９】
前記スキャンデータを入力する手段は、レベル感知スキャン設計（ＬＳＳＤ）スキャンゲートを実施するように結合され、そしてそのＬＳＳＤスキャンゲートのスキャンモード動作をコントロールするように前記評価パルスとは個別のスキャンモードクロックが結合される、請求項１７に記載の装置。
【請求項２０】
前記１つ又は複数のデータ入力は、１オブＮフォーマットでエンコードされる、請求項１７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ実施の分野に関し、より特定すれば、スキャン機能をもつパルスダイナミックロジックゲートを実施するための技術に関する。
【背景技術】
【０００２】
プロセッサ及び他の形式の集積回路は、典型的に、半導体基板上に製造された相互接続されたトランジスタより成る多数のロジック回路を含む。このようなロジック回路は、多数の異なる回路設計スタイルに基づいて構成される。例えば、フリップ・フロップやラッチのようなクロック型状態装置間に位置する非クロック型スタティック相補的金属酸化物半導体（ＣＭＯＳ）ゲートの集合によって組み合わせロジックが実施される。或いは又、設計要求に基づき、ドミノロジックゲートのようなクロック型ダイナミックゲートによりある組み合わせロジックが実施される。
【０００３】
テスト容易性のため、集積回路は、多くの場合、テストパターンを回路へ挿入しそしてテスト結果を読み出せるようにするスキャン機能を含んでいる。スキャンベースのテストは、通常の集積回路動作を通して数百又は数千の実行サイクルを評価する必要のあるロジックへの直接アクセスを容易にするという点で、機能的テストより所与の設計のテストカバレージの程度を広げることができる。ある場合に、スキャンベースのテストでは、機能的テストでテストすることが実際的でないか又は不可能であるような回路素子をテストすることができる。
【０００４】
しかしながら、スキャン機能を設計し挿入するためのほとんどの既存の方法は、スタティックロジックファミリー特有のものである。従来、ダイナミックロジックゲートが使用される回路では、そのようなゲートは、単にスキャン技術ではテストできないものとしてしばしば受け容れられている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第５８６７５０７号明細書
【特許文献２】米国特許第７３４５５１９号明細書
【特許文献３】米国特許第７５４３２０５号明細書
【特許文献４】米国特許第７５６０９６５号明細書
【特許文献５】米国特許第７６４９３９５号明細書
【発明の概要】
【０００６】
ある実施形態では、スキャン可能なパルスダイナミックロジックゲートは、評価パルスをアサートするのに応答してダイナミック入力を評価する評価ネットワークを備えている。評価パルスは、クロック信号より幅が短くなるようにクロック信号から発生される。例えば、パルスの立ち上り縁は、クロック信号の立ち上り縁の後に生じ、そしてパルスの立ち下り縁は、クロック信号の立ち下り縁より前に生じる。
【０００７】
通常の動作モード中に、評価パルスがアサートされたとき、評価ネットワークは、ダイナミック入力の状態に基づいてダイナミックノードをディスチャージする。それにより生じるダイナミックノードの状態は、出力記憶素子内にラッチされる。評価パルスがデアサートされると、ダイナミックノードがプリチャージされる。
【０００８】
スキャン動作モード中に、ダイナミックノードは、プリチャージされたままとなる。スキャンデータは、スキャン関連コントロール信号のコントロールのもとで出力記憶素子へ転送される。
【０００９】
以下、添付図面を参照して、本発明を詳細に説明する。
【図面の簡単な説明】
【００１０】
【図１】ダイナミックロジックを使用するロジック経路の一部分の一例を示す。
【図２】スキャン可能なパルスダイナミックゲートを使用するロジック経路の一部分を示す。
【図３】スキャン可能なパルスダイナミックゲートの一実施形態を示す。
【図４】スキャン可能なパルスダイナミックゲートの動作方法の一実施形態を示す。
【図５】スキャン可能なパルスダイナミックゲートのラッチ機能を実施するのに使用される回路の一例を示す。
【図６】パルスジェネレータ回路の一実施形態を示す。
【図７】スキャン可能なパルスダイナミックゲートを使用して特定のロジック機能を実施する一例を示す。
【図８】スキャン可能なパルスダイナミックゲートの別の実施形態を示す。
【図９】図８のゲートの動作方法の一実施形態を示す。
【図１０】１つ又は複数のスキャン可能なパルスダイナミックゲートを含むプロセッサの一実施形態を示す。
【図１１】プロセッサを含むシステムの一実施形態を示す。
【発明を実施するための形態】
【００１１】
本発明は、種々の変更を受けそして別の形態でも実施できるが、その特定の実施形態を一例として添付図面に示して以下に詳細に説明する。しかしながら、添付図面及び詳細な説明は、本発明を、ここに開示する特定の形態に限定するものではなく、本発明は、特許請求の範囲に規定される本発明の精神及び範囲内に入る全ての変更、等効物及び代替え物を網羅することを理解されたい。ここに使用する見出しは、編成上の目的に過ぎず、説明の範囲を限定するためのものではない。又、本出願全体にわたって使用される「〜してもよい(may)」という語は、許すという意味（即ち、〜の潜在性があるという意味）で使用されるもので、強制の意味（即ち、〜しなければならないという意味）ではない。同様に、「含む(include)」、「含んでいる(including)」及び「含む(includes)」という語は、含むことを意味するが、それに限定されない。
【００１２】
種々のユニット、回路又は他のコンポーネントは、１つ又は複数のタスクを遂行するように「構成される」ものとして述べる。この点について、「構成される」とは、動作中に１つ又は複数のタスクを遂行する「回路を有する」ことを一般的に意味する構造を広く表現するものである。従って、ユニット／回路／コンポーネントは、そのユニット／回路／コンポーネントが現在オンでなくても、タスクを遂行するように構成することができる。
一般的に、「構成される」に対応する構造を形成する回路は、ハードウェア回路を含む。
同様に、種々のユニット／回路／コンポーネントは、説明の便宜上、１つ又は複数のタスクを遂行するものとして説明されてもよい。そのような説明は、「構成される」という句を含むものと解釈されねばならない。１つ又は複数のタスクを遂行するように構成されたユニット／回路／コンポーネントを表現する場合に、そのユニット／回路／コンポーネントの解釈に関して３５Ｕ.Ｓ.Ｃ.§１１２、第６節の解釈を引用しないことが明確に意図される。より一般的には、いずれの要素を表現する場合も、「〜するための手段」又は「〜するためのステップ」という語が特に表現されない限り、その要素に対して３５Ｕ.Ｓ.Ｃ.§１１２、第６節の解釈を引用しないことが明確に意図される。
【００１３】
図１は、ダイナミックロジック（ドミノロジックのような）を使用するロジック経路の一部分の一例を示す。ここに示す実施形態では、スキャン可能なフリップ・フロック１１０は、ロジックゲート１２０に結合され、これは、次いで、ロジックゲート１３０に結合される。ロジックゲート１３０は、パルスドミノラット１４０に結合される。一般的に述べると、スキャン可能なフリップ・フロック１１０は、スタティックフリップ・フロックのような適当なスキャン可能な状態素子に対応する。スキャン可能なフリップ・フロック１１０は、クロック信号に応答して入力データを取り込み、そして記憶するように動作する。例えば、スキャン可能なフリップ・フロック１１０は、レベルトリガー型又は縁トリガー型状態素子である。
【００１４】
ロジックゲート１２０及び１３０は、適当な形式の組み合わせロジック機能（例えば、ＡＮＤ、ＯＲ、ＮＡＮＤ、ＮＯＲ、ＸＯＲ、ＸＮＯＲ、又は適当なブール表現）を実施するように構成される。パルスドミノラッチ１４０は、組み合わせロジック及び状態素子の結合を実施する。例えば、クロック信号に応答して、パルスドミノラッチ１４０は、その入力を評価すると共に、結果を取り込み、記憶するように動作する。対照的に、典型的なスタティック組み合わせロジックゲートは、その状態を保持せず、むしろ、その入力を非同期で評価し、そして入力が変化するときにその出力を変化させる。パルスドミノゲート１４０は、個別の状態素子に結合された個別のスタティックロジックゲートを使用することに対してロジック経路の全体的遅延を短縮し、従って、ロジック経路の性能を潜在的に高める。
【００１５】
図１に示すロジックゲートの数及び接続は、単なる例示に過ぎず、他の実施形態では、他の数及び構成のゲート及び状態素子が使用されてもよいことに注意されたい。
【００１６】
ここに示す実施形態では、パルスドミノラッチ１４０は、スキャン不能である。従って、パルスドミノラッチ１４０に代わってスキャン可能な状態素子が結合された場合のように、ロジックゲート１２０及び１３０の結果を直接決定することはできない。むしろ、ロジックゲート１２０及び１３０を観察するためには、ロジックゲート１２０及び１３０の出力が他のロジックと合成された後に、ロジック経路を更に下る結果を取り込む必要がある。これは、テストをより困難なものにする。
【００１７】
図２は、図１に示すスキャン不能なパルスドミノラッチ１４０に代わってスキャン可能なパルスダイナミックゲート２４０を使用するロジック経路の一部分を示す。通常の動作モード中の機能的特性に関しては、スキャン可能なパルスドミノゲート２４０は、スキャン不能なパルスドミノラッチ１４０に類似している。例えば、両形式のゲートは、同等のスタティックロジックよりも短い評価待ち時間を示すクロック型ダイナミックロジックを実施する。しかしながら、スキャンモード中に、スキャン可能なパルスドミノゲート２４０の状態を読み取り及び／又は書き込むことができ、これは、スキャン可能なパルスドミノゲート２４０の上流及び／又は下流のロジックのテストを容易にする。
【００１８】
図３は、スキャン可能なパルスダイナミックゲート２４０の一実施形態を示す。ここに示す実施形態では、入力データ３３０は、評価ネットワーク３０２に結合され、これは、次いで、プリチャージ装置３０１及び評価装置３０３に結合される。プリチャージ装置３０１は、ＰＵＬＳＥ信号３１９によりコントロールされ、そして評価装置３０３は、ｐｕｌｓｅ＿ｎｏ＿ｓｃａｎ信号３２１によりコントロールされる。ダイナミックノード３２５は、評価ネットワーク３０２及びプリチャージ装置３０１に結合され、更に、キーパーインバータ３０４及び３０５に結合される。ダイナミックノード３２５は、更に、装置３０６及び３０７により形成されたインバータに結合されると共に、ＰＵＬＳＥ３１９（装置３０８を経て）及び適格化スキャン信号ＳＥＩＸ（装置３０９を経て）により更にコントロールされる。装置３０６及び３０７により形成されたインバータの出力は、ラッチノード３２６に結合され、これは、インバータ３１２を経て出力３２４を駆動する。ラッチノード３２６は、更に、記憶素子３３２（ラッチ段とも称される）に結合され、そしてＳＥＩＸ３２３（プルアップ装置３１０を経て）及びＰＵＬＳＥ＃３２０（プルアップ装置３１１を経て）によりコントロールされる。ラッチ段３３２は、一対のクロス結合されたインバータ３１３及び３１４を含み、そのうちのインバータ３１３は、ＰＵＬＳＥ３１９及びＰＵＬＳＥ＃３２０によって選択的にコントロールされる。
【００１９】
ここに図示して説明するようなスタティックＣＭＯＳインバータは、ここに述べる回路に使用される反転増幅器の特定の実施形態であることに注意されたい。しかしながら、他の実施形態では、ＣＭＯＳ以外の技術を使用して構築される反転増幅器を含めて、信号の論理的方向を反転することのできる反転増幅器の適当な構成を使用することができる。更に、プリチャージ装置、プルアップ装置、プルダウン装置及び／又は評価装置は、個々のトランジスタとして示されているが、他の実施形態では、これらの装置は、いずれも、複数のトランジスタ又は他の適当な回路を使用して実施されることに注意されたい。即ち、種々の実施形態において、「装置」は、適当な形式の個々のトランジスタ又は他のスイッチング素子（例えば、ＦＥＴ）、トランジスタ又はスイッチの集合、ロジックゲート又は回路、等に対応する。
【００２０】
ある実施形態では、評価ネットワーク３０２は、ロジック機能を実施するように結合されるＮタイプの装置（例えば、ＮＦＥＴ）のような装置のツリーを含む。例えば、入力の特定の組み合わせに応答して、評価ネットワーク３０２内のある対応装置がアクチベートされて、接地への１つ又は複数の経路を生成する。次いで、評価ネットワーク３０２は、そのような経路（１つ又は複数）を経てダイナミックノード３２５をディスチャージする。即ち、評価ネットワーク３０２により実施されるロジック機能を満足する１つ又は複数の入力に応答して、評価パルスのアサート中に、評価ネットワーク３０２を通る１つ又は複数のディスチャージ経路が装置間に発生される。
【００２１】
ある実施形態では、評価ネットワーク３０２は、１オブＮ(1-of-N)フォーマットでエンコードされた入力を受け取るように結合される。一般的に述べると、１オブＮフォーマットでは、入力信号がＮ個の個々のコンポーネントを有し、所与の時間にアサートされ又は論理的に真であるのは、そのうちのせいぜい１つである。１オブＮ信号の個々のコンポーネントは、評価ネットワーク３０２内の１つ又は複数の対応装置に結合された対応ワイヤ又は金属トレースにより実施される。例えば、１オブ４入力信号は、スキャン可能なパルスダイナミックゲート２４０へ引き回される４本のワイヤの束として実施され、そのうちのせいぜい１本のワイヤが所与の時間に高電圧（アサーションに対応する）へ駆動される。特定のワイヤがこのようにアサートされると、評価ネットワーク３０２内の１つ又は複数の対応装置がアクチベートされる。評価ネットワーク３０２により実施されるロジック機能に基づき、そのようなアクチベーションは、スキャン可能なパルスダイナミックゲート２４０の出力状態に影響してもしなくてもよい。
【００２２】
ここに示す実施形態では、クロックジェネレータ３１７は、入力クロック３６０及びスキャンイネーブル信号３１８からパルス信号の多数の変形形態を発生するように構成される。ある実施形態では、パルスは、クロック信号から発生される信号であるが、パルスが発生されたところのクロック信号より短い期間中アサートされる信号に対応する。即ち、パルスは、クロック信号のような同期信号であるが、クロック信号とは異なるタイミング特性及びクロック信号に依存するタイミング特性の両方を有するものと理解される。種々の実施形態において、クロック信号に対するパルスの立ち上り縁及び／又は立ち下り縁の発生は、特定のゲート又は経路のタイミング要求に基づいて同調される。クロック信号に対するパルスの幅及びその縁の位置は、変化してもよい。例えば、パルスは、その立ち上り縁がクロック信号の立ち上り縁の後に生じそしてその立ち下り縁がクロックサイクルの立ち下り縁の前に生じるように発生される。
【００２３】
クロックではなくパルスを使用することは、回路性能を改善する上で助けとなる。ダイナミックロジックに関して、同期信号は、通常、入力を評価する期間を決定する。例えば、クロック信号によりコントロールされるダイナミックロジック回路は、クロック信号が高であるとき（回路の「評価段階」とも称される）その入力を評価する。クロック信号が低であるときには（回路の「プリチャージ段階」とも称される）、ダイナミックロジック回路は、入力の変化に不感である。一般的に述べると、正しい回路動作を保証するために回路の評価段階中の及び／又はその後の少なくともある時間長さ（「ホールドタイム」とも称される）についてダイナミックロジック回路への入力信号が安定であることを保証することがしばしば必要である。例えば、ホールドタイム要求が特定ゲートへの入力によって満足されない場合には（即ち、入力が早目に移行を開始する場合には）、入力がゲートにより取り込まれないことがあり、おそらく、ゲートが正しく評価しないようにさせる。
或いは又、早目の移行は、ゲートに誤った評価をさせることがある（例えば、そうでないときにダイナミックノード３２５をディスチャージさせる経路を評価ネットワーク３０２内に生成することにより）。そのような振舞いは、誤った回路動作を招くことがある。
【００２４】
ホールドタイム違反による欠陥を軽減するために、設計者は、種々の信号に対してホールドタイムを指定する回路設計ルールを採用する。しかしながら、そのようなホールドタイム要求は、回路動作の速度を制限する。というのは、所与の入力信号を別のゲートに発生するゲートに対して、所与の入力信号のホールドタイムが長いと、通常、発生側ゲートが有用な仕事を行うために残された時間が短くなるからである。
【００２５】
ダイナミックゲートにおいて、ホールドタイム要求は、多くの場合、評価段階の長さに依存する。即ち、一般的に、評価段階の終了を越えて入力信号を保持する必要はない。というのは、正しく動作するダイナミックゲートは、評価段階以外で生じる入力変化に不感でなければならないからである。ダイナミックゲートの評価をコントロールするためにクロック信号に代わってパルスを使用することにより、ゲートの評価段階の長さを短縮することができる（というのは、上述したように、パルスは、それに対応するクロックよりも短いアサート幅を有するからである）。評価段階を短縮することにより、クロック信号が使用される場合より早期に入力信号を移行させることができる。即ち、パルスを使用すると、入力信号のホールドタイム要求を緩和することができる。これは、ひいては、回路を動作できる頻度を高めることができる。
【００２６】
図３に示すように、パルスジェネレータ３１７は、ＰＵＬＳＥ出力３１９と、このＰＵＬＳＥ３１９とは逆の論理的方向を有するＰＵＬＳＥ＃３２０とを発生する。（即ち、ＰＵＬＳＥ３１９が高であるときには、ＰＵＬＳＥ＃３２０は、低であり、その逆のこともある。）又、パルスジェネレータ３１７は、スキャンイネーブル３１８で適格化されるｐｕｌｓｅ＿ｎｏ＿ｓｃａｎ出力３２１も発生し、スキャンイネーブル３１８がアサートされたとき（例えば、高又は論理的真であって、スキャン動作モードがアクティブであることを指示するとき）、ｐｕｌｓｅ＿ｎｏ＿ｓｃａｎ３２１はデアサートされ（例えば、低又は論理的偽）、ダイナミックノード３２５のディスチャージを防止する。従って、ここに示す実施形態では、パルスジェネレータ３１７は、クロック３６０が動作しているときにアサートされる自走ＰＵＬＳＥ３１９と、回路がスキャンモードで動作するかどうかに基づきアサートされるｐｕｌｓｅ＿ｎｏ＿ｓｃａｎ３２１を発生する。他の実施形態では、パルスジェネレータ３１７は、異なる数又は構成のパルスを発生するように構成できることに注意されたい。発生されるパルスのタイミング特性は、回路の特定の実施制約に基づいて変化する。
【００２７】
ここに示す実施形態では、ＮＡＮＤゲート３１５は、スキャンイネーブルＳＥ３１８をスキャンデータＳＩ３２２と合成して信号ＳＥＩＸ３２３を生成するように構成される。
機能的な表現では、ＳＥＩＸ３２３は、スキャンイネーブル信号で適格化された反転スキャンデータを表わす。即ち、ＳＥ３１８がデアサートされた（例えば、低にされた）場合には、ＳＥＩＸ３２３は、スキャンデータＳＩ３２２の値に関わらず高となる。スキャン動作モードを指示するためにＳＥ３１８がアサートされた（例えば、高にされた）場合には、ＳＥＩＸ３２３は、ＳＩ３２２の補数を出力する。
【００２８】
ある実施形態では、ここに示すスキャン可能なパルスダイナミックゲートは、次のように動作する。図３、及び図４のフローチャートを全体的に参照すれば、動作は、ゲートがスキャンモードで動作するかどうかに依存する（ブロック４００）。先ず、通常の非スキャン動作モードについて考えると、動作は、更に、クロック３６０の状態に依存する（ブロック４０２）。クロック３６０がインアクティブ（低）であるときには、Ｐｕｌｓｅ３１９も低であり、装置３０１を経てダイナミックノード３２５を高へプリチャージさせる（ブロック４０４）。通常の動作モード中には、スキャンイネーブルＳＥ３１８が低であり、ＳＥＩＸ３２３を上述したように高にさせる。これは、次いで、装置３０９をアクチベートする。
【００２９】
クロック３６０がアクティブ（高）でありそしてスキャンイネーブルＳＥ３１８が低のままであるときには、パルスジェネレータ３１７は、ｐｕｌｓｅ３１９、ｐｕｌｓｅ＃３２０、及びｐｕｌｓｅ＿ｎｏ＿ｓｃａｎ３２１を発生する（ブロック４０６）。これらパルスの幅については、装置３０１は、インアクティブであり、そして装置３０３、３０８及び３１１。評価ネットワーク３０２への入力３３０の状態が評価され（ブロック４０８）、その間に、ダイナミックノード３２５は、評価ネットワーク３０２及び装置３０３を通してディスチャージしてもよいし、しなくてもよい。ダイナミックノード３２５がこのようにディスチャージしない場合には、キーパーネットワーク（キーパーインバータ３０４及び３０５として示された）が、パルス幅の間、ダイナミックノード３２５のプリチャージ状態を維持する。
【００３０】
次いで、ダイナミックノード３２５の値がラッチノードに与えられる（ブロック４１０）。ダイナミックノード３２５がディスチャージする場合に、ダイナミックノード３２５の低い電圧は、装置３０６を経てラッチノード３２６へ高い電圧を転送させる。ダイナミックノード３２５がディスチャージしない場合には、ｐｕｌｓｅ３１９がアクティブであるときに、ダイナミックノード３２５の高い電圧は、装置３０７、３０８及び３０９を経てラッチノード３２６へ低い電圧を転送させる。（上述したように、ＳＥＩＸ３２３は、通常の動作モード中は高であり、装置３０９をアクチベートさせる）。次いで、ラッチノード３２６の値が反転されて、出力３２４として与えられるが、他の実施形態では、それに加えて又はそれとは別に、非反転出力が与えられる。
【００３１】
ｐｕｌｓｅ３１９及びｐｕｌｓｅ＃３２０がアクティブな状態（例えば、各々、高及び低）にあるときには、３状態インバータ３１３が、ラッチノード３２６における競争を防止する高インピーダンス状態に入れられる。ｐｕｌｓｅ３１９及びｐｕｌｓｅ＃３２０がインアクティブな状態（例えば、各々、低及び高）に戻ると、３状態インバータ３１３がラッチノード３２６をアクチベート及び駆動し、ラッチノード３２６の値を、３状態インバータ３１３及びインバータ３１４のフィードバックループを経て取り込み及び記憶させる（ブロック４１２）。
【００３２】
スキャン動作モード中に、上述したように、ｐｕｌｓｅ＿ｎｏ＿ｓｃａｎ３２１は、インアクティブのままであり、評価ネットワーク３０２に与えられる入力３０に関わらず、ダイナミックノード３２５をプリチャージに維持する（ブロック４１４）。スキャンモード中に、ラッチノード３２６の値は、ＳＥＩＸ３２３の状態に依存する（ブロック４１６）。スキャン入力データＳＩ３２２が低である場合には、ＳＥＩＸ３２３が高となる。ダイナミックノード３２５の高状態と合成されて、この構成は、ｐｕｌｓｅ３１９がアクティブであるときに低い電圧をラッチノード３２６へ転送させる。（この入力合成の場合に、ＳＥＩＸ３２３の高状態が装置３１０をインアクティブにさせる。）スキャンモード中にスキャン入力データＳＩ３２２が高である場合には、ＳＥＩＸ３２３が低となって、装置３０９をターンオフさせ、そして装置３１０をターンオンさせる。ｐｕｌｓｅ＃３２０がアクティブ（低）のときには、装置３１１もアクティブとなる。この構成は、ラッチノード３２６に高電圧を転送させる。ラッチノード３２６に入れられたスキャンデータ値をラッチするための３状態インバータ３１３及びインバータ３１４の動作は、通常の動作モードについて上述したものと同様である（ブロック４１８）。
【００３３】
図５は、図３のスキャン可能なパルスダイナミックゲート２４０の記憶機能を実施するのに使用される回路の１つの特定例を示す。図３のスキャン可能なパルスダイナミックゲート２４０の記憶機能を実施するのに使用される回路の１つの特定例を示す。ここに示す実施形態では、ＮＡＮＤ３１５を実施するトランジスタが回路の左上部分に示されている。Ｄ入力は、ダイナミックノード３２５に結合され、一方、Ｐ入力は、パルス３１９に結合される。（図５において、補数のｐｕｌｓｅ＃信号は、ｐｕｌｓｅ３１９の反転によりローカルで発生されるものとして示されるが、この信号は、外部ソースにより発生されてもよい。）図５に示すように、装置３０６、３０７、３０８及び３０９の順序は、実施上の選択（例えば、タイミングが重要な入力をゲートの出力に接近して入れる）に基づいて変化する。上述したように、出力インバータは、ある実施形態では、省略されてもよい。
図５は、レベル感知ラッチを一般的に示すが、他の実施形態では、縁トリガー回路、ダイナミック回路、不揮発性記憶装置、等より成る記憶素子を含むここに述べるいずれかの実施形態内に値を記憶するために他の適当な形式の記憶素子が使用されてもよいことに注意されたい。
【００３４】
図６は、パルスジェネレータ３１７を実施するのに使用される回路の一例を示す。ここに示す実施形態では、入力クロックＣＫは、多数の異なる形式の装置、即ち冗長な装置を伴うインバータ、信号経路に結合された容量性負荷、及び／又はワイヤ遅延、を含む遅延チェーンに通される。この遅延チェーンの特定の構成は、パルスジェネレータ３１７の所与のインスタンスごとに、駆動されるべきゲートのタイミング特性に基づいて変化する。
例えば、長い遅延チェーンは、長いパルスを生成し、そしてその逆のことも言える。更に、両クロック経路からの遅延を加え又は除去することで、入力クロックの立ち上り縁と、得られるパルスの立ち上り縁との間の相対的遅延が変化する。
【００３５】
ＣＫの遅延形態がＮＡＮＤゲートを経て入力クロックＣＫに結合されて、ＰＢで示した反転パルスを発生する。このパルスは、次いで、インバータに通されて、正方向のパルスＰを発生する。又、ＰＢは、ＮＯＲゲートを経てスキャンイネーブル信号と合成されて、スキャン適格化パルスＰＳを発生する。図６の実施形態において、信号Ｐ、ＰＢ及びＰＳは、図３の信号ｐｕｌｓｅ１９、ｐｕｌｓｅ＃２０及びｐｕｌｓｅ＿ｎｏ＿ｓｃａｎ２１に各々対応する。
【００３６】
図７は、スキャン可能なパルスダイナミックゲートを使用して、特定のロジック機能を実施する一例を示す。ここに示す実施形態では、１オブ８マルチプレクサ（即ち、８つの入力値のいずれか１つを選択的に出力する回路）を実施するようにゲートの組み合わせが構成される。ここに示す実施形態では、パルスジェネレータ回路ＰＧ７２０は、クロック入力ＣＫ及びスキャンイネーブル信号ＳＥを受信しそしてパルス信号Ｐ、ＰＢ及びＰＳを発生するように結合されて示されている。例えば、図６に示すパルスジェネレータ回路３１７又は適当な代替え物が図７に示されている。
【００３７】
図７の回路において、図３に示す一般的な評価ネットワークが、２トランジスタスタックの８つのインスタンスに置き換えられており、最も上のトランジスタは、Ｓ０ないしＳ７と示す８つの考えられる選択信号のうちの１つによりコントロールされ、そして最も下のトランジスタは、Ｄ０ないしＤ７と示す８つの考えられるデータ値のうちの１つによりコントロールされる。（簡単化のため、この例の評価ツリーの１６個の全ての装置が個々に示されていない。）２トランジスタスタックの最上部は、パルスＰでコントロールされる１つ又は複数のプリチャージ装置７０１において接合され、そしてそのスタックの最下部は、これもパルスＰでコントロールされる１つ又は複数の評価装置７０２において接合される。図７に示すキーパー構造体７０５は、図３に示すインバータ３０４及び３０５と若干異なるが、評価ネットワークを通してディスチャージしないときにはダイナミックノード７１０に値を保存するという同様の機能を果たす。ダイナミックノードは、図５に示すラッチ回路又は別の適当な形式のラッチ回路に対応するラッチ７１５に結合される。
【００３８】
通常の非スキャン動作中に、信号ＰＳがアクティブであるときに、図７の回路は、入力Ｓ０ないしＳ７及びＤ０ないしＤ７を評価する。ここに示す実施形態では、選択入力Ｓ０ないしＳ７のうちのせいぜい１つがアサートされる。アサートされた選択入力の対応データ入力もアサートされた場合には、ダイナミックノードがディスチャージし、ラッチ回路７１５に低い電圧を与えるようにさせる。アサートされた選択入力の対応データ入力がアサートされない場合には、ダイナミックノードがプリチャージに維持され、ラッチ回路７１５に高い電圧を与えるようにさせる。図３から５を参照して上述したように、ダイナミックノードの値は、真の形態又は補数形態でラッチ内に記憶されそしてラッチから駆動される。
【００３９】
スキャン動作中に、パルスジェネレータ回路ＰＧ７２０は、パルス信号ＰＳをインアクティブのままとし、ダイナミックノードが評価ネットワークをとしてディスチャージするのを防止する。むしろ、ラッチ回路７１５に書き込まれた値は、図３及び４を参照して上述したのと同様に、スキャンデータ入力ＳＩにより決定される。
【００４０】
図３は、一般的な評価ネットワークを示し、そして図７は、マルチプレクサを実施する評価ネットワークを示すが、スキャン可能なパルスダイナミックゲートの評価ネットワークによりいずれの形式のブール関数も実施できることが意図される。更に、シングルエンドのダイナミック入力（例えば、ゼロ復帰即ちＲＴＺエンコーディングを使用する）、デュアルレールダイナミック入力、又はＮを任意の数とすれば、１オブＮダイナミック入力を含めて、多数の入力エンコーディングのいずれを使用してもよいことが意図される。
【００４１】
図３に示したパルスダイナミックゲートは、ＭＵＸ−Ｄとも称されるマルチプレクス型データスタイルのスキャンを実施することが理解される。一般的に述べると、ＭＵＸ−Ｄスキャンでは、通常機能モード（即ち、非スキャン）動作中に使用される同じクロックのコントロールのもとで、機能的に発生されたデータと同じ経路においてスキャンデータがマルチプレクスされる。別のスタイルのスキャン実施は、レベル感知スキャン設計（ＬＳＳＤ；level-sensitive scan design）であり、これは、機能モードクロックとは個別のスキャンクロックを使用する。個別のスキャンクロックを使用することで、（例えば、スキャンに関連したホールドタイムの問題を減少することにより）より健全なスキャンタイミング性能が可能となるが、ＬＳＳＤゲートは、同等のＭＵＸ−Ｄゲートより大きなエリアを必要とする。
【００４２】
図８は、ＬＳＳＤスタイルのスキャン機能を実施するパルスダイナミックゲートの一例を示す。ここに示す実施形態では、ＬＳＳＤパルスダイナミックゲート８００は、評価ネットワーク８１０に結合される１つ又は複数のデータ入力信号８０２、及び種々のクロック信号を受信する。パルス入力８０３は、図３ないし５を参照して上述したのと同様の形態で発生されるパルス信号に対応する。信号ｃｌｋ８０１は、パルスが発生されるところのクロック、又は同等のクロックに対応する（例えば、パルス８０３がｃｌｋ８０１から直接発生されるのではなく、ｃｌｋ８０１の上流又は下流のクロック信号から発生される場合）。信号ｓｃｌｋ＿ｍ８０４及びｓｃｌｋ＿ｓ８０８は、各々、マスター及びスレーブスキャンクロックを表わし、そしてｘｃｌｋ＿ｍ８０５及びｘｃｌｋ＿ｓ８０９は、これらスキャンクロックの反転を表わす。図示されたＬＳＳＤパルスダイナミックゲートの一次データ出力は、８５０で表され、そしてスキャンデータ入力及びスキャンデータ出力は、各々、ｓｄｉ８０６及びｓｄｏ８１０で表される。
【００４３】
ある実施形態において、ＬＳＳＤパルスダイナミックゲート８００は、次のように動作する。図８、及び図９に示すフローチャートを全般的に参照すれば、動作は、ゲートがスキャンモードで動作するかどうかに依存する（ブロック９００）。先ず、通常の非スキャン動作モードについて考えると、ｓｃｌｋ＿ｍ８０４及びｓｃｌｋ＿ｓ８０８は、低状態にセットされ、そしてその反転ｘｃｌｋ＿ｍ８０５及びｘｃｌｋ＿ｓ８０９は、高状態にセットされる（ブロック９０２）。
【００４４】
動作は、更に、ｃｌｋ８０１及びｐｕｌｓｅ８０３の状態に依存する。最初に、ｃｌｋ８０１及びｐｕｌｓｅ８０３は、低状態（例えば、ＰＦＥＴ装置をターンオンし且つＮＦＥＴ装置をターンオフするに充分な低い電圧で表された論理０）にセットされ、ゲート８００をプリチャージ状態に入れる（ブロック９０４）。ここに示す実施形態では、トランジスタ８１９がオフにされ、そして８２０がオンにされ、ダイナミックノード８１５を高状態（例えば、ＰＦＥＴ装置をターンオフしそしてＮＦＥＴ装置をターンオンするに充分な高い電圧で表された論理１）へプリチャージさせ、次いで、トランジスタ８２１をオフに且つトランジスタ８２２をオンにする。更に、この状態において、トランジスタ８２６及び８３１がオンにされる（ｓｃｌｋ＿ｍ８０４及びｃｌｋ８０１が各々低及び高であることにより）。これは、ノードＲＴＺ８１６を高にし、トランジスタ８２５をイネーブルすると共に、トランジスタ８２４をディスエイブルする。（ノードＲＴＺ８１６は、より一般的には、フィードバックノードとも称される。）トランジスタ８２２及び８２５がオンであることにより、出力８５０から接地部への経路が生じ、出力８５０を低にさせる。
【００４５】
プリチャージから評価モードへの移行を開始するために、ｃｌｋ８０１が高状態へ移行する（ブロック９０６）。ここに示す実施形態では、ｃｌｋ８０１の移行は、トランジスタ８３１をターンオフさせそしてトランジスタ８２９をターンオンさせる。ノードＲＴＺ８１６の状態は、このときには変化しない。というのは、出力８５０が低のプリチャージモード状態に留まる限り、トランジスタ８２７がオンのままで且つトランジスタ８２８がオフのままとなり、ＲＴＺ８１６を高に保つからである。
【００４６】
ｃｌｋ８０１が高へ移行した後に、パルス８０３は、高へ移行し、そしてゲート８００は、評価モードに入る（ブロック９０８）。ここに示す実施形態では、パルス８０３のこの移行は、トランジスタ８１９及び８２３をターンオンし、そしてトランジスタ８２０をターンオフする。入力８０２の状態に基づいて、評価ツリー８１０は、ダイナミックノード８１５をディスチャージしても、しなくてもよい（ブロック９１０）。例えば、入力信号の状態は、ダイナミックノード８１５から評価ツリー８１０及びトランジスタ８１９を経て接地部へ至る経路を形成しても、しなくてもよい。
【００４７】
ダイナミックノード８１５がディスチャージしないと仮定すれば、ノードＲＴＺ８１６及び出力８５０は、評価モードの間にそれらのプリチャージ状態に留まる（ブロック９１２）。結局、ｐｕｌｓｅ８０３及びｃｌｋ８０１は、低状態へ移行して戻り、そしてゲート８００は、それに応答して、上述したプリチャージ状態へ戻る。
【００４８】
ダイナミックノード８１５がディスチャージすると仮定すれば、出力８５０は、高状態へ移行する（ブロック９１４）。ここに示す実施形態では、ダイナミックノード８１５がディスチャージすると、トランジスタ８２２をターンオフし、そしてトランジスタ８２１をターンオンし、後者の装置は、出力８５０をプルアップする。出力８５０の高状態は、トランジスタ８２７をターンオフさせ、そしてトランジスタ８２８をターンオンさせる。
トランジスタ８２９及び８３０は、既にオンであるから（ｃｌｋ８０１及びｘｃｌｋ＿ｍ８０５が両方とも高であるために）、ノードＲＴＺ８１６は、出力８５０の立ち上り移行に応答して接地部へとディスチャージする。これは、次いで、トランジスタ８２４をターンオンし、そしてトランジスタ８２５をターンオフし、ダイナミックノード８１５の状態に関わらず、トランジスタ８２４を経て出力８５０を高へと引っ張り続けさせるフィードバックループを形成する。装置８２６ないし８３１は、個々に又は集合的に、フィードバック装置と称される。他の実施形態では、ゲート８００のフィードバック装置は、トランジスタ、ゲート、回路、等の異なる構成を含んでもよい。
【００４９】
ダイナミックノード８１５のディスチャージに続いて、パルス８０３は、低状態に戻る（ブロック９１６）。ここに示す実施形態では、トランジスタ８１９及び８２３は、それに応答してターンオフし、一方、トランジスタ８２０は、それに応答してターンオンし、ダイナミックノード８１５がプリチャージを開始するようにさせる。しかしながら、上述したフィードバックループは、パルス８０３の立ち下り縁とｃｌｋ８０１の立ち下り縁との間の期間中に出力８５０を高に保つ。
【００５０】
より詳細には、個々に示す実施形態では、出力８５０は、それがｃｌｋ８０１の立ち下り縁まで保持され、次いで、それが非ゼロ状態にある場合はゼロにリセットされるというゼロ復帰フォーマットで実施される。例えば、上述したように、出力８５０が低であるときには、ノードＲＴＺ８１６がｃｌｋ８０１の状態に関わらず高となり、ダイナミックノード８１５がプリチャージのままである場合にｃｌｋ８０１の時間幅全体にわたり出力８５０を低に保持するようにさせる。出力８５０は、評価ツリー８１０がダイナミックノード８１５をディスチャージする場合には評価段階中に（例えば、パルス８０３が高であるときに）高となる。この事象において、出力及びｃｌｋの両方が高に留まる限り、ＲＴＺノードは低となり、ＲＴＺノードによりコントロールされるプルアップ装置を通して出力を高に留まらせる。
【００５１】
最終的に、ｃｌｋ８０１は、低状態に戻る（ブロック９１８）。そのとき、ＲＴＺノード（例えば、トランジスタ８２７、８２８、８２９及び８３１）を駆動するＮＡＮＤ構造体は、ノードＲＴＺ８１６を上昇させ、ひいては、トランジスタ８２５及び８２２を経て出力８５０を低へ移行させる。即ち、ｃｌｋ８０１の立ち下り縁は、出力８５０を、それが高状態にあった場合には低状態へリセットさせ、又は既に低であった場合には低状態に留まるようにする。ＲＴＺ出力は、ダイナミックゲートを他の形式のロジック（例えば、スタティックロジック）へインターフェイスするのに有用であるが、この形式の出力は任意であり、そして他の実施形態では、ＬＳＳＤパルスダイナミックゲートは、適当な形式の出力で実施されることに注意されたい。
【００５２】
１つのｃｌｋ８０１が低状態に戻り、サイクルが完了し、そして別のプリチャージ評価サイクルが行われる。
【００５３】
ゲート８００のスキャンモード動作中に、外部スキャンデータが出力８５０にロードされるか、又は出力８５０の現在状態が取り込まれ、ｓｄｏ８１０を経てスキャンチェーンへ出力される。これらは、図９では個別の動作として示されるが、マスター及びスレーブスキャンクロックｓｃｌｋ＿ｍ８０４及びｓｃｌｋ＿ｓ８０８のシーケンスに基づいて、ある実施形態では、出力８５０の現在状態を取り込み外部スキャンデータを出力８５０にロードするか、又は外部スキャンデータを出力８５０にロードしてその外部データをスキャンチェーンにも出力させることができる。
【００５４】
外部データは、ｓｄｉ８０６入力を経て図示されたゲートの出力ノードにロードされる（ブロック９２０）。ここに示す実施形態では、ｓｃｌｋ＿ｍ８０４は、最初、高にセットされ、これは、トランジスタ８２６をデアクチベートすることによりＲＴＺ  ＮＡＮＤ構造体をディスエイブルし、そしてｓｄｉ８０６に結合されたクロック適格化インバータ８１１をイネーブルする。（インバータ８１１に含まれた装置は、個々に又は集合的に、スキャン有力装置と称され、そして他の実施形態では、スキャン入力装置の異なる構成が使用されてもよい。）これは、次いで、ｓｄｉ８０６を反転したものをノードＲＴＺ８１６に結合させる。即ち、ｓｄｉ８０６が低である場合には、ＲＴＺ８１６が高となり、トランジスタ８２５及び８２２を経て出力８５０を低に駆動させる。逆に、ｓｄｉ８０６が高である場合には、ＲＴＺ８１６が低となり、トランジスタ８２４を経て出力８５０を高に駆動させる。
【００５５】
出力８５０に存在する現在データが、次いで、ラッチされる（ブロック９２２）。上述したように、現在データは、ｓｄｉ８０６を経てちょうどロードされたデータであるか、或いは評価ツリー８１０の評価の結果としての出力８５０の現在状態である。ここに示す実施形態では、スレーブラッチ８１２への出力８５０の取り込みは、ｓｃｌｋ＿ｍ８０４を低状態へ戻し（もしアサートされていれば）そしてｓｃｌｋ＿ｓ８０８及びｘｓｃｌｋ＿ｓ８０９を各々高及び低状態にセットすることにより開始される。これは、パルスダイナミックゲート８００の出力８５０に保持されたデータを、パストランジスタ８０８−８０９を通してスキャンデータ出力ポートｓｄｏ８１０へ転送させる。出力８５０の状態がラッチ８１２により取り込まれると、ｃｌｋ＿ｓ８０８が低となりそしてｘｃｌｋ＿ｓ８０９が高となる。この点において、パストランジスタ８０８−８０９が閉じ、そして出力８５０の状態が、図示されたラッチ８１２内の一対のキーパーインバータに保持される。
ｃｌｋ＿ｓ８０８が低となりそしてデータがスレーブラッチにラッチされた後に、パルスダイナミックゲート８００は、プリチャージ状態に復帰する。
【００５６】
ある実施形態において、１つのパルスダイナミックゲートのｓｄｏ８１０は、別のパルスダイナミックゲートのｓｄｉ８０６に結合されて、スキャンチェーンを形成する。ｓｃｌｋ＿ｍ８０４及びｓｃｌｋ＿ｓ８０８が交互の形態で順次パルス付勢される場合には、スキャンデータのシーケンスがスキャンチェーンに沿って伝播されて、スキャンチェーンに沿ってゲートにデータをロードし、及び／又はそれらゲートからデータを読み取ることに注意されたい。
【００５７】
種々の特定の回路構成及び装置形式について上述したが、他の実施形態では、他の形式の回路、設計スタイル、及び／又は装置形式を使用してもよいことに注意されたい。例えば、Ｎ型及びＰ型電界効果トランジスタ（各々ＮＦＥＴ及びＰＦＥＴ）を使用するＣＭＯＳ回路を図示して上述したが、他の実施形態では、他の形式の装置（例えば、バイポーラジャンクショントランジスタ、又は他の適当な形式のスイッチング装置）が使用されてもよい。
【００５８】
プロセッサの概略
図１０は、プロセッサ１０の一実施形態のブロック図である。プロセッサ１０は、上述した特徴の幾つか又は全部を合体した１つ又は複数のスキャン可能なパルスダイナミックゲートを備えている。ここに示す実施形態では、プロセッサ１０は、フェッチコントロールユニット１２、インストラクションキャッシュ１４、デコードユニット１６、マッパー１８、スケジューラ２０、レジスタファイル２２、実行コア２４、及びインターフェイスユニット３４を備えている。フェッチコントロールユニット１２は、インストラクションキャッシュ１４からフェッチするためのプログラムカウンタアドレス（ＰＣ）を与えるように結合される。インストラクションキャッシュ１４は、（ＰＣと共に）インストラクションをデコードユニット１６に与えるように結合され、このユニットは、デコードされたインストラクション動作（これもＰＣを伴うｏｐ）をマッパー１８に与えるように結合される。インストラクションキャッシュ１４は、更に、ヒット指示及びＩＣａｃｈｅ  ＰＣをフェッチコントロールユニット１２に与えるように構成される。マッパー１８は、ｏｐ、スケジューラ番号（ＳＣＨ＃）、ソースオペランド番号（ＳＯ＃）、１つ又は複数の依存性ベクトル及びＰＣをスケジューラ２０に与えるように結合される。スケジューラ２０は、実行コア２４から再生、予想ミス及び例外指示を受け取るように結合され、フェッチコントロールユニット１２及びマッパー１８に再指令指示及び再指令ＰＣを与えるように結合され、レジスタファイル２２に結合され、そして実行のためのｏｐを実行コア２４に与えるように結合される。レジスタファイルは、実行コア２４にオペランドを与えるように結合され、そして実行コア２４からレジスタファイル２２に書き込まれるべき結果を受け取るように結合される。実行コア２４は、インターフェイスユニット３４に結合され、これは、更に、プロセッサ１０の外部インターフェイスに結合される。
【００５９】
フェッチコントロールユニット１２は、インストラクションキャッシュ１４のためのフェッチＰＣを発生するように構成される。ある実施形態では、フェッチコントロールユニット１２は、１つ又は複数の形式の分岐予想器を含む。例えば、フェッチコントロールユニット１２は、間接的分岐インストラクションのためのターゲットアドレスを予想するように構成された間接的分岐ターゲット予想器、条件付き分岐の成果を予想するように構成された条件付き分岐予想器、及び／又は他の適当な形式の分岐予想器を含む。動作中に、フェッチコントロールユニット１２は、選択された分岐予想器の出力に基づいてフェッチＰＣを発生する。予想が後で誤ったものであると分かった場合は、フェッチコントロールユニット１２は、異なるアドレスからフェッチするように再指令される。フェッチＰＣを発生するときに、非シーケンシャルな分岐ターゲット（即ち、推論的であるか非推論的であるかに関わらず、非シーケンシャルアドレスへの分岐又は他の再指令）が存在しない場合には、フェッチコントロールユニット１２は、現在ＰＣ値のシーケンシャルな関数としてフェッチＰＣを発生する。例えば、所与の時間にインストラクションキャッシュ１４からどれほど多くのバイトがフェッチされるかに基づいて、フェッチコントロールユニット１２は、現在ＰＣ値に既知のオフセットを追加することによりシーケンシャルなフェッチＰＣを発生する。
【００６０】
インストラクションキャッシュ１４は、プロセッサ１０により実行されるべきインストラクションを記憶するためのキャッシュメモリである。インストラクションキャッシュ１４は、任意の容量及び構造を有する（例えば、直接マップ、セット連想、全連想、等）。
インストラクションキャッシュ１４は、任意のキャッシュラインサイズを有する。一実施形態において、例えば、６４バイトキャッシュラインが実施される。他の実施形態では、それより大きな又は小さなキャッシュラインサイズが使用される。フェッチコントロールユニット１２からの所与のＰＣに応答して、インストラクションキャッシュ１４は、最大数までのインストラクションを出力する。プロセッサ１０は、適当なインストラクションセットアーキテクチャー（ＩＳＡ）、例えば、ＡＲＭTM、ＰｏｗｅｒＰＣTM、又はｘ８６  ＩＳＡ、或いはその組み合わせ、を実施することが意図される。
【００６１】
ある実施形態では、プロセッサ１０は、１つ又は複数のバーチャルアドレススペースが実行中のソフトウェアに見えるようにされるアドレス変換スキームを実施する。バーチャルアドレススペース内でのメモリアクセスは、例えば、ページテーブル、セグメント、又は他のバーチャルメモリ変換スキームのセットを使用して、システムに使用可能な実際の物理的メモリに対応する物理的アドレススペースへと変換される。アドレス変換を使用する実施形態では、インストラクションキャッシュ１４は、バーチャルアドレスビットではなく物理的アドレスビットを使用して部分的に又は完全にアドレスされる。例えば、インストラクションキャッシュ１４は、キャッシュインデックスのためのバーチャルアドレスビット、及びキャッシュタグのための物理的アドレスビットを使用する。
【００６２】
キャッシュアクセスを遂行するときに完全なメモリ変換を遂行するコストを回避するために、プロセッサ１０は、最近及び／又は頻繁に使用されるバーチャル／物理的アドレス変換のセットを、変換ルックアサイドバッファ（ＴＬＢ）、例えば、インストラクションＴＬＢ（ＩＴＬＢ）３０に記憶する。動作中に、ＩＴＬＢ３０（これは、キャッシュとして、コンテンツアドレス可能なメモリ（ＣＡＭ）として、又は他の適当な回路構造を使用して実施される）は、バーチャルアドレス情報を受け取り、そして有効な変換が存在するかどうか決定する。もしそうであれば、ＩＴＬＢ３０は、それに対応する物理的アドレスビットをインストラクションキャッシュ１４に与える。もしそうでなければ、ＩＴＬＢ３０は、例えば、バーチャルアドレス例外を掲げることにより、変換を決定するようにさせる。
【００６３】
デコードユニット１６は、一般的に、インストラクションをインストラクションオペレーション（ｏｐ）へデコードするように構成される。一般的に、インストラクションオペレーションは、実行コア２４に含まれたハードウェアが実行できるオペレーションである。各インストラクションは、実行時に、プロセッサ１０により実施されるインストラクションセットアーキテクチャーに基づいて遂行されるインストラクションについて定義されたオペレーション（１つ又は複数）を生じる１つ又は複数のインストラクションオペレーションへ変換される。ある実施形態では、各インストラクションは、単一のインストラクションオペレーションへデコードされる。デコードユニット１６は、インストラクションの形式、ソースオペランド、等を識別するように構成され、そしてデコードされたインストラクションオペレーションは、あるデコード情報を伴うインストラクションを含む。各インストラクションが単一のｏｐへと変換される他の実施形態では、各ｏｐは、単に、それに対応するインストラクション又はその一部分（例えば、インストラクションのｏｐｃｏｄｅフィールド（１つ又は複数））である。インストラクションとｏｐとの間に１対１の対応性がある実施形態では、デコードユニット１６及びマッパー１８が結合され、及び／又はデコード及びマッピングオペレーションが１つのクロックサイクルに行われる。他の実施形態では、あるインストラクションは、複数のインストラクションオペレーションにデコードされる。ある実施形態では、デコードユニット１６は、インストラクションに対するｏｐを発生するために回路及び／又はマイクロコードの組み合わせを含む。例えば、比較的簡単なｏｐ発生（例えば、インストラクション当たり１つ又は２つのｏｐ）がハードウェアで取り扱われる一方、より広範囲なｏｐ発生は、マイクロコードで取り扱われる。
【００６４】
デコードユニット１６により発生されるｏｐは、マッパー１８に与えられる。マッパー１８は、ソースレジスタアドレスを、ｏｐから、再命名されたソースレジスタを識別するソースオペランド番号（ＳＯ＃）へとマップするために、レジスタ再命名を実施する。更に、マッパー１８は、ＳＣＨ＃で識別された各ｏｐを記憶するためにスケジューラエントリを指定するように構成される。一実施形態において、ＳＣＨ＃は、ｏｐの行先に指定された再命名レジスタを識別するようにも構成される。他の実施形態では、マッパー１８は、個別の行先レジスタ番号を指定するように構成される。更に、マッパー１８は、ｏｐの依存性ベクトルを発生するように構成される。依存性ベクトルは、所与のｏｐが依存するところのｏｐを識別する。一実施形態において、依存性は、対応するｏｐのＳＣＨ＃によって指示され、そして依存性ベクトルビット位置は、ＳＣＨ＃に対応する。他の実施形態では、依存性は、レジスタ番号に基づいて記録され、そして依存性ベクトルビット位置は、レジスタ番号に対応する。
【００６５】
マッパー１８は、ｏｐを、ＳＣＨ＃、ＳＯ＃、ＰＣ、及び各ｏｐの依存性ベクトルと共に、スケジューラ２０に与える。スケジューラ２０は、各ＳＣＨ＃によって識別されたスケジューラエントリに、ｏｐを、ＳＯ＃及びＰＣと共に記憶するように構成される。スケジューラは、どのｏｐがスケジューリングにとって望ましいか評価する依存性アレイに依存性ベクトルを記憶するように構成される。スケジューラ２０は、実行コア２４で実行するためにｏｐをスケジュールするように構成される。ｏｐがスケジュールされると、スケジューラ２０は、レジスタファイル２２からそのソースオペランドを読み取るように構成され、そしてソースオペランドは、実行コア２４に与えられる。実行コア２４は、レジスタを更新するｏｐの結果をレジスタファイル２２に戻すように構成される。あるケースでは、実行コア２４は、レジスタファイル２２から読み取られた値に代わってレジスタファイル２２へ書き込まれるべき結果を転送する（例えば、依存性ｏｐの背中合わせスケジューリングのケース）。
【００６６】
又、実行コア２４は、スケジューラへ報告される種々の事象をｏｐの実行中に検出するようにも構成される。分岐ｏｐは、誤って予想されることがあり、又、あるロード／記憶ｏｐは、再生されることがある（例えば、書き込み／読み取りされるデータのアドレスベースの競争に対して）。種々の例外が検出される（例えば、メモリアクセスに対する又は非特権モードで実行される特権インストラクションに対する保護例外、アドレス変換なしに対する例外、等）。これらの例外は、それに対応する例外取り扱いルーチンを実行させる。
【００６７】
実行コア２４は、予想分岐ｏｐを実行するように構成され、そして最初にフェッチコントロールユニット１２に与えられた予想ターゲットアドレスを受け取る。実行コア２４は、分岐ｏｐのオペランドからターゲットアドレスを計算し、そしてその計算されたターゲットアドレスを予想ターゲットアドレスと比較して、正しい予想又は誤った予想を検出するように構成される。又、予想コア２４は、分岐ｏｐの方向の予想のように、分岐ｏｐに対してなされる他の予想の評価も行う。誤った予想が検出された場合には、実行コア２４は、フェッチコントロールユニット１２を正しいフェッチターゲットに向け直さねばならないことを信号する。スケジューラ２０、マッパー１８及びデコードユニット１６のような他のユニットは、誤って予想された分岐に続く又はそれに依存する保留中のｏｐ／インストラクションを推論的インストラクションストリームからフラッシュさせる。
【００６８】
実行コアは、プロセッサ１０により処理されるべきデータを記憶するためのキャッシュメモリであるデータキャッシュ２６を含む。インストラクションキャッシュ１４と同様に、データキャッシュ２６は、適当な容量、構造又はラインサイズを有する（例えば、直接マップ、セット連想、全連想、等）。更に、データキャッシュ２６は、これら細部のいずれかにおいてインストラクションキャッシュ１４とは異なる。インストラクションキャッシュ１４と同様に、ある実施形態では、データキャッシュ２６は、物理的アドレスビットを使用して部分的に又は完全にアドレスされる。対応的に、データＴＬＢ（ＤＴＬＢ）３２は、ＩＴＬＢ３０に関して上述したのと同様に、データキャッシュ２６にアクセスするのに使用するためのバーチャル／物理的アドレス変換をキャッシュするために設けられる。ＩＴＬＢ３０及びＤＴＬＢ３２は、同様の機能を果たすが、種々の実施形態では、異なる仕方で実施される。例えば、それらは、異なる数の変換及び／又は異なる変換情報を記憶してもよい。
【００６９】
レジスタファイル２２は、一般的に、プロセッサ１０で実行されるｏｐのオペランド及び結果を記憶するのに使用できるレジスタのセットを含む。ある実施形態では、レジスタファイル２２は、物理的レジスタのセットを含み、そしてマッパー１８は、論理的レジスタを物理的レジスタにマップするように構成される。論理的レジスタは、プロセッサ１０で実施されるインストラクションセットアーキテクチャーにより指定されるアーキテクトレジスタと、一時的な結果に対するｏｐの行先として（及びその後のｏｐのソースとしても）使用される一時的レジスタの両方を含む。他の実施形態では、レジスタファイル２２は、論理的レジスタのコミット状態を含むアーキテクトレジスタセットと、推論的レジスタ状態を含む推論的レジスタセットとを含む。
【００７０】
インターフェイスユニット２４は、一般的に、プロセッサ１０を外部インターフェイス上の他の装置にインターフェイスするための回路を含む。外部インターフェイスは、任意の形式の相互接続部（例えば、バス、パケット、等）を含む。又、外部インターフェイスは、プロセッサ１０が１つ又は複数の他のコンポーネントと一体化される（例えば、システムオンチップ構成の）場合にはオンチップ相互接続部である。外部インターフェイスは、プロセッサ１０が他のコンポーネントと一体化されない場合には、外部回路に対してオフチップ相互接続部である。種々の実施形態において、プロセッサ１０は、インストラクションセットアーキテクチャーを実施する。
【００７１】
システム及びコンピュータアクセス可能な記憶媒体
図１１は、システム１５０の一実施形態のブロック図である。ここに示す実施形態において、システム１５０は、集積回路１５２の少なくとも１つのインスタンスを含む。集積回路１５２は、プロセッサ１０（図９）の少なくとも１つのインスタンスを含む。集積回路１５２は、一実施形態では、プロセッサ１０の１つ又は複数のインスタンス、及び種々の他の回路、例えば、メモリコントローラ、ビデオ及び／又はオーディオ処理回路、オフチップ周辺装置に結合するためのオンチップ周辺装置及び／又は周辺インターフェイス、等を含むシステムオンチップである。集積回路１５２は、１つ又は複数の周辺装置１５４及び外部メモリ１５８に結合される。電源１５６も設けられ、これは、集積回路１５２に供給電圧を供給すると共に、メモリ１５８及び／又は周辺装置１５４に１つ又は複数の供給電圧を供給する。ある実施形態では、集積回路１５２の２つ以上のインスタンスが含まれる（２つ以上の外部メモリ１５８も含まれる）。
【００７２】
周辺装置１５４は、システム１５０の形式に基づいて望ましい回路を含む。例えば、一実施形態では、システム１５０は、移動装置（例えば、パーソナルデジタルアシスタント（ＰＤＡ）、スマートホン、等）であり、そして周辺装置１５４は、ｗｉｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラー、グローバルポジショニングシステム、等、の種々の形式のワイヤレス通信のための装置を含む。又、周辺装置１５４は、ＲＡＭ記憶装置、ソリッドステート記憶装置、又はディスク記憶装置を含む付加的な記憶装置も備えている。
周辺装置１５４は、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力装置、マイクロホン、スピーカ、等のユーザインターフェイス装置を含む。他の実施形態では、システム１５０は、任意の形式のコンピューティングシステム（例えば、デスクトップパーソナルコンピュータ、ラップトップ、ワークステーション、ネットトップ、等）である。
【００７３】
外部メモリ１５８は、任意の形式のメモリを含む。例えば、外部メモリ１５８は、ＳＲＡＭ、不揮発性ＲＡＭ（ＮＶＲＡＭ、例えば、「フラッシュ」メモリ）、及び／又はダイナミックＲＡＭ（ＤＲＡＭ）例えば、同期ＤＲＡＭ（ＳＤＲＡＭ）、倍データレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、等）ＳＤＲＡＭ、ＲＡＭＢＵＳ  ＤＲＡＭ、等を含む。外部メモリ１５８は、メモリ装置がマウントされる１つ又は複数のメモリモジュール、例えば、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）、等を含む。
【００７４】
ある実施形態によれば、ロジックゲートのような装置は、評価パルスのデアサーションに応答してダイナミックノードをアサート状態にプリチャージするように結合されたプリチャージ装置を備え、評価パルスは、クロック信号から導出され、そしてクロック信号がアサートされるより短い時間中アサートされる。又、この装置は、評価パルスがアサートされる間に１つ又は複数の入力を評価し、そしてその１つ又は複数の入力に基づき評価装置を通してダイナミックノードを選択的にディスチャージするように結合された評価ネットワークも備えている。この装置は、更に、ダイナミックノードの値を受け取るように結合されると共に、ラッチノードを駆動するように結合された反転増幅器も備え、この反転増幅器は、評価パルスのアサーション及び適格化スキャンイネーブル信号のアサーションの両方に基づいてイネーブルされ、そして適格化スキャンイネーブル信号は、スキャンイネーブル入力信号及びスキャンデータ入力信号の論理ＮＡＮＤ合成に基づいてアサートされる。この装置は、更に、ラッチノードに結合された記憶素子も備え、この記憶素子は、評価パルスのアサーションに応答してラッチノードの値を選択的に記憶する。又、この装置は、ラッチノードに結合された１つ又は複数のプルアップ装置も備え、この１つ又は複数のプルアップ装置は、適格化スキャンイネーブル信号及び評価パルスの両方のデアサーションに応答してラッチノードをアサート状態に駆動するように結合される。
【００７５】
ある実施形態によれば、ロジックゲートのような装置は、評価パルスのデアサーションに応答してダイナミックノードをアサート状態へプリチャージするように結合されたプリチャージ装置を備え、評価パルスは、クロック信号から導出され、そしてクロック信号がアサートされるより短い期間中アサートされる。又、この装置は、評価パルスがアサートされる間に１つ又は複数の入力を評価し、そしてその１つ又は複数の入力に基づき評価装置を通してダイナミックノードを選択的にディスチャージするように結合された評価ネットワークも備えている。この装置は、更に、ダイナミックノードの値を受け取るように結合されると共に、ラッチノードを駆動するように結合された反転増幅器も備え、この反転増幅器は、評価パルスのアサーションに基づいてイネーブルされる。更に、この装置は、フィードバックノードのデアサーションに応答して出力ノードをアサート状態へ駆動するように結合された１つ又は複数のプルアップ装置と、フィードバックノードのアサーションに応答して出力ノードをデアサート状態へ駆動するように結合された１つ又は複数のプルダウン装置とを備えている。又、この装置は、マスタースキャンクロックのアサーションに応答してフィードバックノードを経て出力ノードへスキャン入力データをロードするように結合された１つ又は複数のスキャン入力装置と、スレーブスキャンクロックのアサーションに応答して出力ノードの値を受け取って記憶するように結合されたラッチとを備え、このラッチは、更に、スキャンデータ出力ノードを駆動するように結合される。又、この装置は、クロック信号によりコントロールされ、出力ノードの値を受け取るように結合され、且つフィードバックノードを駆動するように結合された１つ又は複数のフィードバック装置も備えている。
【００７６】
ある実施形態によれば、ロジックゲートのような装置は、評価パルスのアサーション中に１つ又は複数の入力を評価しそしてその１つ又は複数の入力に基づきダイナミックノードを選択的にディスチャージするように結合された評価ネットワークを備え、その評価パルスは、クロック信号から導出され、そしてクロック信号がアサートされるより短い期間中アサートされる。又、この装置は、ダイナミックノードに結合された１つ又は複数の出力装置も備え、動作中に、１つ又は複数の出力装置は、ダイナミックノードに基づいて出力ノードを駆動する。更に、この装置は、スキャン動作モード中にマスタースキャンクロックのアサーションに応答して出力ノードにスキャン入力データをロードするように結合された１つ又は複数のスキャン入力装置を備えている。又、この装置は、スキャン動作モード中にスレーブスキャンクロックのアサーションに応答して出力ノードの値を受け取って記憶するように結合された記憶素子も備え、その記憶素子は、更に、スキャンデータ出力を駆動するように結合される。
【００７７】
ある実施形態によれば、方法は、ダイナミックロジックゲートのマスタースキャンクロック又はスレーブスキャンクロックのアサーションを検出することを含み、ダイナミックロジックゲートは、出力ノードを駆動するように結合されたダイナミックノードを含み、ダイナミックロジックゲートの通常の機能的動作モード中に、ダイナミックノードは、評価パルスのアサーション中の１つ又は複数の入力に基づいて選択的にディスチャージされ、その評価パルスは、クロック信号から導出され、そしてクロック信号がアサートされるより短い期間中アサートされる。又、この方法は、マスタースキャンクロックのアサーションを検出するのに応答して、スキャン入力データを出力ノードにロードすることも含む。更に、この方法は、スレーブスキャンクロックのアサーションを検出するのに応答して、出力ノードの値を記憶素子に記憶することを含み、記憶素子は、更に、スキャンデータ出力を駆動するように結合される。
【００７８】
当業者であれば、前記開示を完全に理解すれば、多数の修正や変更が明らかとなろう。
そのような修正や変更は、全て、特許請求の範囲内に包含されるものとする。
【符号の説明】
【００７９】
１１０：スキャン可能なフリップ・フロップ
１２０：ロジックゲート
１３０：ロジックゲート
１４０：パルスドミノラッチ
１５２：集積回路
１５４：周辺装置
１５６：電源
１５８：外部メモリ
２４０：スキャン可能なパルスドミノラッチ
３０１：プリチャージ装置
３０２：評価ネットワーク
３０３：評価装置
３０４、３０５：キーパーインバータ
３０６、３０７、３０９：装置
３１０、３１１：プルアップ装置
３１３、３１４：クロス結合インバータ
３１５：ＮＡＮＤゲート
３１７：クロックジェネレータ
３２５：ダイナミックノード
３２６：ラッチノード
３３２：記憶素子
【図１】
0005603439.tif 000002
【図２】
0005603439.tif 000003
【図３】
0005603439.tif 000004
【図４】
0005603439.tif 000005
【図５】
0005603439.tif 000006
【図６】
0005603439.tif 000007
【図７】
0005603439.tif 000008
【図８】
0005603439.tif 000009
【図９】
0005603439.tif 000010
【図１０】
0005603439.tif 000011
【図１１】
0005603439.tif 000012