(57)【要約】集積回路に含まれる複数のコアを同時に試験する方法およびシステムの各種実施形態が開示されている。一実施形態では、集積回路は２つ以上のロジックコアを含んでもよい。ＩＣはさらに、コアに接続された構造スキャン試験ハードウェアを含んでもよい。この構造スキャン試験ハードウェアは、スキャン試験ベクトルデータをロジックコアの各々に関連づけられたスキャンレジスタに入力し、ＩＣに含まれるロジックコア上でスキャン試験を同時に実行し、複数のコアに対するスキャン試験結果を自動試験装置（ＡＴＥ）に同時に出力することができる。一実施形態において、複数のコアに対する試験結果のそれぞれの要素は、各ストローブウィンドウの間において、ＡＴＥへの入力チャンネル上に各コアからの試験結果データの一つの要素が単一の出力線上において存在するように、インターリーブされる。
2008534928.tif 000002
【特許請求の範囲】
【請求項１】
集積回路であって、
複数のロジックコアと、
前記複数のロジックコアに結合されたスキャン試験ハードウェアと、を有し、
前記スキャン試験ハードウェアは、
前記複数のロジックコアに入力スキャン試験データを入力し、
前記複数のロジックコアに対して同時にスキャン試験を行い、
前記複数のロジックコアからのスキャン試験結果を自動試験装置（ＡＴＥ）に同時に出力し、
スキャン試験結果を出力するために、前記スキャン試験ハードウェアは、前記複数のロジックコアのそれぞれからの前記スキャン試験結果データの要素が、前記ＡＴＥのストローブ期間中において前記ＡＴＥへの入力チャンネル上に存在するように、前記スキャン試験結果を時分割多重化するよう構成されている、集積回路。
【請求項２】
請求項１記載の集積回路であって、前記複数のロジックコア及び前記スキャン試験ハードウェアとは異なる１つ以上のハードウェア機能を更に有する、集積回路。
【請求項３】
請求項２記載の集積回路であって、前記１つ以上のハードウェア機能には、通信コントローラ及び／又はメモリコントローラが含まれ、前記各ロジックコアは、プロセッサコアである、集積回路。
【請求項４】
請求項２記載の集積回路であって、前記スキャン試験ハードウェアは、前記１つ以上のハードウェア機能及び前記複数のロジックコアを同時に試験するよう構成されている、集積回路。
【請求項５】
請求項２記載の集積回路において、前記スキャン試験ハードウェアは、前記１つ以上のハードウェア機能の試験が、前記複数のロジックコアからのスキャン試験結果データによる影響を受けないように構成されている、集積回路。
【請求項６】
単一の集積回路内に含まれる複数のロジックコアに対してスキャン試験データを入力し、
スキャン試験を複数のロジックコアに対して同時に実行し、
前記複数のロジックコアからのスキャン試験結果データを前記自動試験装置（ＡＴＥ）に同時に出力し、
前記出力では、前記複数のロジックコアのそれぞれからの前記スキャン試験結果データの要素が、前記ＡＴＥのストローブ期間中において前記ＡＴＥへの入力チャンネル上に存在するように、前記スキャン試験結果を時分割多重化する、方法。
【請求項７】
請求項６記載の方法であって、前記集積回路は、更に、前記複数のロジックコアとは異なる１つ以上のハードウェア機能を有し、前記１つ以上のハードウェア機能には、通信コントローラ及び／又はメモリコントローラが含まれ、前記各ロジックコアは、プロセッサコアである、方法。
【請求項８】
請求項６記載の方法であって、前記集積回路は、更に、前記複数のロジックコアとは異なる１つ以上のハードウェア機能を有し、前記１つ以上のハードウェア機能と前記複数のロジックコアとを同時に試験する、方法。
【請求項９】
請求項６記載の方法であって、前記集積回路は、更に、前記複数のロジックコアとは異なる１つ以上のハードウェア機能を有して、前記１つ以上のハードウェア機能の試験が前記複数のロジックコアからのスキャン試験結果データによる影響を受けないようにする、方法。
【請求項１０】
試験システムであって、
自動試験装置（ＡＴＥ）と、
前記ＡＴＥに結合された試験されるデバイス（ＤＵＴ）と、請求項１〜５のいずれかに記載された集積回路とを有する試験システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路の試験に関し、より具体的には、マルチコアマイクロプロセッサなどのマルチコア集積回路の構造試験に関する。
【背景技術】
【０００２】
通常、複雑度が低〜中程度の集積回路は、機能試験を用いて試験される。ある場合では、特定の集積回路のあらゆる機能的特性を使用するために試験ベクトルが構築される。この試験ベクトルは各ユニットを有効にするために製造において用いられる。
チップマルチプロセッサ（ＣＭＰ）などの多くのＩＣは、このアプローチ法にとって非常に複雑である。また、機能試験に求められる機能試験ベクトル群は、利用可能な自動試験装置（ＡＴＥ）には大きすぎるおそれがある。
【０００３】
ほとんどの集積回路は、独立した、あるいは半独立の機能ブロックを含む。またある場合では、チップ全体を試験するよりも各ブロックを別々に試験するほうがより効率的である。この試験法は、構造試験と呼ばれる。その理由は、この試験により回路構造が正確に製造されたかどうかが試験されるからである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＩＣで構造試験を実行するために、工場において、適切な試験ベクトルを試験を行う構造ブロックに入力し、結果出力を得る。特に、試験をサポートするために、集積回路に新たな構造、例えば、ＭＵＸＤあるいはＬＳＳＤスキャンセルを挿入する必要がある。
【０００５】
全ての構造ブロックおよびブロック間の相互接続が正確に製造されているかを確認するために構造試験を行ってもよい。設計のゲートレベル表示を用いて、自動試験パターンジェネレータ（ＡＴＰＧ）は、内部の設計構造を試験することができるよう、コントローラブルノードに対する刺激をアルゴリズム的に計算する。設計の複雑度およびサイズにより、各構造の”制御”および”監視”が非常に困難となるおそれがある。試験される設計の厳密な特性に応じて、２つの試験メソドロジーである“スキャン試験”および”ランダム試験”が選択される。
【０００６】
フルスキャン試験では、被検体（ＤＵＴ）内の記憶素子は１以上のスキャンチェーンに接続される。ＡＴＰＧパターンはＡＴＥのテスターメモリに記録される。ＡＴＥは多数のパラレルスキャンチェーンを使用して回路にベクトルを出力する。チップのＩ／Ｏピン、テスタチャネル等の稼働率、および、試験モードで記憶素子を連鎖させることで起きるチップ上のルートの混雑状態により、使用できるスキャンチェーン数に制限が設けられる。
【０００７】
ランダム試験メソドロジーにおいては、設計における各構造を試すために、ランダム（あるいは、擬似ランダム）データ値を設計入力ノードに適用する（実際に、ランダムに制御し、監視する）。この方法により、メモリなどの通常の構造を試験するときに、よりよい結果を生み出すことができる。擬似ランダムパターンの特性は、移相器およびＬＦＳＲ（線形フィードバックシフトレジスタ：Linear-Feedback Shift Registers）のカスタム設計ともに増加する。有効なランダムパターンスペースの所望のセグメントは、パターン生成を開始する特定のシードとともにＬＦＳＲを読み出すことにより生成される。ランダムパターンに対するレスポンスを捕らえるために、ＭＩＳＲ（多重入力シグナチャレジスタ：Multiple-Input Signature Resiter）を使用してもよい。
【０００８】
しかし、ランダムパターンを使用して試験をするには不適当な設計もある。このような設計に対しては、内部構造のコントローラビリティとオブサーバビリティとを向上させるために、試験ポイントを挿入する必要があり得る。ロジックに対するＢＩＳＴ（ビルトインセルフ試験）メソドロジーでは、ＬＦＳＲおよびＭＩＳＲがチップの一部となり得る。各ロジック構造にランダムパターンデータを適用するために、ＢＩＳＴはフルスキャンメソドロジーを実装してもよい。このアーキテクチャにより、非常に多くのパラレルスキャンチェーンが可能となる。その理由は、パラレルスキャンチェーンはチップのＩ／Ｏピンに送られなくてもよいからである。
【０００９】
通常、ロジックＢＩＳＴはそのベースにスキャン技術を使用する。ＰＲＰＧ（擬似ランダムパターンジェネレータ）は、試験パターンを生成するために、決定論的ＡＴＰＧを置き換える。試験パターンは、スキャンチェーンおよびコアロジックを介して入力され得る。また、応答を集めるために、ＭＩＳＲ（多重入力シグナチャレジスタ）を用いてもよい。ＰＲＰＧおよびＭＩＳＲに必要な全ての回路をチップに埋め込んでもよい。埋め込まれた試験パターン生成および応答解析は、ＡＴＥに少しのメモリしか必要としない。
【００１０】
ＢＩＳＴの最も優れた利点の１つに、試験用チップの定格化された機能速度で試験パターンを走行させることができる点が挙げられる。これは、時間依存設計には非常に重要なことである。試験パターン生成および応答解析機能の双方がチップ上にあるので、試験をトリガーするために必要なものはＡＴＥだけであり、それゆえ、その制限により試験の実行が抑制されることはないであろう。しかし、包括的ＢＩＳＴを実行するためにチップに追加された付加的ハードウェア量は制限される。
【００１１】
複合集積回路には、機能ブロックあるいはコアのマルチプルコピーを含むように設計されたものもある。例えば、マルチコアマイクロプロセッサは、複合汎用プロセッシングコアのマルチプルコピーを含み、ここでは、各コアは他のコアから独立して、あるいは、ほぼ独立して機能する。従来、構造試験は各コアを別々に試験するように設計されている。ピンに制限があることから、一度に試験できるのは１つのコアだけである。
【課題を解決するための手段】
【００１２】
集積回路に含まれる複数のコアを同時に試験するための方法およびシステムの様々な実施形態が開示されている。一実施形態では、集積回路は２以上のロジックコアを含む。この集積回路はさらに、コアに接続された構造スキャン試験ハードウェアを含む。この構造スキャン試験ハードウェアは、スキャン試験ベクトルデータをロジックコアの各々に関連づけられたスキャンレジスタに入力し、ＩＣに含まれるロジックコア上でスキャン試験を同時に実行し、マルチプルコアに対するスキャン試験結果を自動試験装置（ＡＴＥ）に同時に出力することができる。一実施形態においては、マルチプルコアに対する試験結果要素は、各ストローブ期間中において各コアからの試験結果データの要素が一つの入力チャネルに存在するように、単一の出力線に時分割多重化してもよい。
【００１３】
一実施形態では、集積回路はマルチプルロジックコアおよび構造スキャン試験ハードウェアのほかに、１以上のハードウェア機能を含む。例えば、集積回路は、コアおよび試験ハードウェアに加えて、通信コントローラおよび／あるいはメモリコントローラを含む。ある実施形態では、コアはｘ８６プロセッサコアであってもよく、通信コントローラ、および／あるいはメモリコントローラは、コアがメインメモリあるいはシステムメモリにアクセスすることのできるメカニズムを供給する。試験を実行する間、その他のハードウェア機能が、ある実施形態ではコアと同時に試験され、別の実施形態では、非同時的に試験される。一実施形態では、試験の実行中に、その他の機能がコアとのインタラクトを最小限に抑えるような形式で、あるいはインタラクトしないような形式でその他の機能を配置してもよい。このようにすることで、その他の機能の動作がコアの試験結果に及ぼす影響を最小限に抑えるか、なくすことができる。他の実施形態では、他の機能の動作がコアの結果に影響を及ぼす試験セグメントの結果は、ＡＴＥによって無視され得る。
【００１４】
ある実施形態では、構造スキャン試験ハードウェアは試験モードセレクタを含み得る。この試験モードセレクタは、コアに対して行われる試験モードを決定するために、同時的あるいは非同時的な試験の様々なバージョンから選択されてもよい。例えば、ある非同時的モードでは、同時に試験できるのは１つのコアだけであり、そのために、各試験実行後に有効なのは１つのコアからの試験結果だけである。その他の場合では、試験は各コアに同時に実行され、組み合わせられた試験結果の１つのセットが試験を実行する毎に出力される。
【００１５】
ある同時試験モードでは、コアからの結果は、コンセンサスを判断するために、構造スキャン試験ハードウェアによって内部が比較され、表示が出力される。例えば、ＩＣが２つのコアを含み、試験の特定の要素に対する結果が同じであれば、第１ロジックレベルがＡＴＥに出力され、その結果についての同意が示される。試験の特定の要素に対する結果が異なる場合、第２ロジックレベルがＡＴＥに出力され、コアの１つが試験要素を間違って実行したことが示される。
【００１６】
他の同時試験モードでは、コアからの結果は出力線に時分割多重化され、ＡＴＥのチャネルに入力される。例えば、ＩＣが２つのコアを含む場合、特定の試験要素に対する各コアからの試験結果に対する２つの値は、他の試験モードにおいて、１つのコアからの１つの値だけが送信される間に、単一チャネルのＡＴＥに送信される。この試験結果要素を時分割多重化することで、各コアからの要素をストローブ期間中に単一のチャネルのＡＴＥに入力することが可能となる。ＡＴＥは、各コアからの試験結果要素をストローブ期間中にＡＴＥメモリに記録された予想値と比較し得る。予想結果との比較を行わない要素がある場合、コアの１つがその試験要素を間違って実行したことを示す。
【発明を実施するための最良の形態】
【００１７】
本発明は、様々な改良を行い、また、他の形態で実施することができるが、ここに説明されている特定の実施例は、例示として示さたものであり、以下にその詳細を記載する。しかし当然のことながら、ここに示した特定の実施例は、本発明を開示されている特定の形態に限定するものではなく、むしろ本発明は添付の請求項によって規定されている発明の範疇に属する全ての改良、等価物、及び変形例をカバーするものである。各ヘディングは単に構成を目的としたものであり、明細書あるいは請求項を制限あるいは解釈するために用いることを意図しない。さらに、本明細書で使用されている”可能（may）”という用語は、許可的な意味合い（つまり、可能性がある、することができる）で使用されており、強制的な意味合い（つまり、しなければならない）では使用されていない。用語”含む（include）”およびその派生語は“含まれるがそれに制限されるものではない”ことを意味する。用語”接続された（connected）”は、”直接的に、あるいは間接的に接続されている”ことを意味し、用語”結合された（coupled）”は、”直接的に、あるいは間接的に結合されている”ことを意味する。
以下の図面と併せて以下の詳細な説明を考慮すれば、本発明をさらに理解することができる。
【００１８】
図１に、一実施形態による複数のロジックコアを含む集積回路の試験システムを示す。一実施形態では、被検体（DUT:Device Under Test）は、チップマルチプロセッサであり、コア０〜Ｎは同一のものであってもよい。さらに、ＤＵＴは、コアには含まれないその他の回路を含んでもよい。例えば、ＤＵＴは、ブリッジングおよび／あるいはメモリ制御機能を含んでもよく、このような機能により、コアが共通のメモリあるいはその他のリソースにアクセスできるようになる。ある場合では、マルチコアＤＵＴに複製された基本的なコアが、先に構築された単一コア集積回路中にすでに含まれていてもよい。例えば、コア０とＤＵＴのその他の機能ブロックだけを含んだマイクロプロセッサチップを先に製造し、図１に示す自動試験装置（ＡＴＥ：Automated Test Equipment）を使用して試験が行われてもよい。このような場合、ハードウェアおよびソフトウェアはほとんど変更しないで、また、試験パターンボリュームや試験時間を増やさずに、先の集積回路の試験に使用したＡＴＥを使ってＤＵＴを試験することが望ましい。
【００１９】
一実施形態では、ＤＵＴはｘ８６あるいはその他のタイプのマイクロプロセッサであってもよく、コアはｘ８６あるいはその他のタイプのコアであってもよい。またその他の機能として、通信コントローラおよび／あるいはメモリコントローラを挙げることができる。試験の実行において、コアに関してその他の機能を同時に試験できる実施形態もあれば、同時に試験できない実施形態もある。一実施形態では、試験を実行する間、その他の機能がインタラクトしないような形式でその他の機能を配置するか、コアとのインタラクトを最小限に抑えるような形式でその他の機能を配置してもよい。このようにすることで、コアの試験結果について、その他の機能の動作による影響を最小限に抑える、あるいはなくすことができる。その他の実施形態では、その他の機能の動作がコアの結果に影響を及ぼす試験セグメントの結果はＡＴＥにより無視されてもよい。所与の試験が実行される試験モードを選択し、ＡＴＥに適切な試験結果を送るために、試験モードセレクタが使用される。
【００２０】
ＡＴＥは、ＤＡＴＡＯＵＴライン上のＤＵＴにスキャン試験データを出力し、１以上のクロック信号を使用してＳＣＡＮＩＮライン上のＤＵＴにこのデータを記録するように設計され得る。このようなクロック信号は、スキャンチェーンとして、コアおよびその他の機能に含まれるＬＳＳＤセルおよび／あるいはＭＵＸＤセルを制御するために使用され得る。一実施形態では、ＡＴＥにより生成された１以上のクロックを試験モードセレクタに入力してもよい。この試験モードセレクタは、試験が実行されるモードを決定するために、同時および非同時的試験の様々なバージョンから選択することができる。試験モードセレクタの一機能として、コアおよびその他の機能からの出力を、ＤＵＴ  ＳＣＡＮＯＵＴラインに送ることが挙げられる。選択された出力はＤＡＴＡＩＮライン上のＡＴＥに入力される。この出力をＡＴＥメモリに記録された予測結果と比較し、ＤＵＴ内に誤りがあるかどうかを判断する。
【００２１】
図２に、一実施形態に従う、一斉(simultaneous)あるいは同時(conncurrent)モードを含む構造試験の複数のモードから選択するように構成されたマルチコア集積回路の一実施形態を示す。簡素化のために、２つのコアだけを例示し、その他の機能は省略しているが、記載の実施形態は、任意の数のコアと様々な機能をサポートするハードウェアとを備えた集積回路の試験にまで拡張することができる。ＸＯＲ機能２２０およびＭＵＸ機能２３０は、図１の試験モードセレクタの要素であってもよい。このモードセレクタは、以下に記載するように、ＭＯＤＥＳＥＬＥＣＴラインの状態によって制御される。ＭＯＤＥＳＥＬＥＣＴラインの状態は、ある実施形態では、ＤＵＴに含まれる試験ロジックのレジスタによって制御され、別の実施形態では、状態は、その他の試験回路あるいは入力により制御される。
【００２２】
試験のために、試験ベクトルは、ＡＴＥからＳＣＡＮＩＮラインを使用して、ＤＵＴのスキャンチェーンに読み出される。試験ベクトルの読み出しが終わると、ＭＯＤＥＳＥＬＥＣＴラインの値により、試験が実行されるモードが決定される。例えば、ＭＵＸ２３０がコア０かコア１のいずれかの出力を選択するように設定されていれば、非同時的あるいはシリアル試験モードが起動する。試験の実行中、システムクロック信号を含む１以上のクロック信号をロジックコアに適用し、選択されたコアに対する試験結果を、ＳＣＡＮＯＵＴラインを介してスキャンチェーンの出力として利用してもよい。ＭＵＸ２３０を制御するＭＯＤＥＳＥＬＥＣＴ信号を用いて特定のコアに対するスキャンチェーンの出力を選択することで、そのコアに対する試験結果をＡＴＥに送ることができる。ＡＴＥは、出力された試験結果を各システムクロックサイクルにおいてＡＴＥに記録された予測結果と比較し、実際の結果と予測結果が違う場合にエラー状態を示す。１つのコアの試験が終了すると、ＭＯＤＥＳＥＬＥＣＴ信号に対して様々な値を有する試験ベクトルがＤＵＴに入力される。モードセレクト信号の値を変更することで、別のコアの出力がＡＴＥに送られ、そのコアに関する試験結果を取得するために再試験される。
【００２３】
さらに、図２の実施形態では、１以上の同時あるいは一斉試験モードから選択することができる。同時試験モードでは、同一でもよい２以上のコア、あるいは、１つの試験ベクトルセットを使用して試験可能な２以上のコアを同じ入力試験ベクトルを用いて同時に試験することができる。ＸＯＲ機能２２０の出力がＭＵＸ２３０を介してＳＣＡＮＯＵＴラインまで接続するようにＭＯＤＥＳＥＬＥＣＴ信号を設定することによって、コア試験の同時モードを選択してもよい。このモードでは、非同時的モードと同様、試験ベクトルはＳＣＡＮＩＮラインを介してコアの各々のスキャンチェーンに読み出される。これらのコアにシステムクロックが適用されると、各コアに対して指定されたスキャンチェーンから試験結果が入手できるようになる。
【００２４】
両コアの試験結果がＡＴＥによって同時に評価されるようにするために、両コアのスキャンチェーンの出力は、ＸＯＲあるいはその他の比較機能２２０に入力され、その出力がＳＣＡＮＯＵＴラインに送られる。実際には、このコンフィグレーションにより、コア０およびコア１からの試験結果がそれぞれに対して比較され、一致しない場合にエラー表示が出力される。この概念を、各コアの試験結果の出力を比較ロジックに送ることにより、２以上のコアを同時に試験することにまで拡張することができる。比較ロジックは、全ての入力が同じ場合には第１レベルを出力し、いずれの入力がいずれの他の入力と異なれば、別のレベルを出力する。しかし、この方法を使用すると、各コアが所与の試験に対して間違った結果を生成するといったコアフォールトコンディションが複製されてしまうおそれがある。
【００２５】
他の形態では、予測結果をレジスタに入力してもよく、この出力は、試験をサポートするためにチップに追加されたコンパレータに利用できる。試験の実行中、各コアからの試験結果はＤＵＴ内の予測結果と比較される。実際の結果と予測結果とが一致していればこの比較出力は低レベルのままにされ、一致しない場合に限り高レベルに切り替えられる。この結果比較出力は、ＡＴＥに対してＳＣＡＮＯＵＴ信号を形成するようＯＲ結合される。ＡＴＥは、ＳＣＡＮＯＵＴラインが高レベルであれば、先の実施形態に関して記載したエイリアスすることなく、１以上のコアがエラーであると解釈する。
【００２６】
図３に、一実施形態に従いコアを試験し、その試験結果を時分割多重化する同時モードを含む、構造スキャン試験の複数のモードから選択するように構成されたマルチコア集積回路を例示する。簡素化のために、２つのコアだけを例示し、その他の機能は省略しているが、記載の実施形態は、任意の数のコアと様々な機能をサポートするハードウェアとを備えた集積回路の試験にまで広げることができる。ＭＵＸ機能３２０および３３０は、図１の試験モードセレクタの要素であってもよい。
【００２７】
図３の実施形態では、ＭＵＸ３３０を介してＭＵＸ３２０の選択入力にＣＯＲＥＳＥＬＥＣＴ信号を送るようにモード選択ラインをセットすることによって、非同時的モードを選択してもよい。次に、コア選択信号の状態により、コア０あるいはコア１からの試験結果がＳＣＡＮＯＵＴに送られるかどうかが決定される。図２の実施形態のように、ＳＣＡＮＯＵＴラインに送られた結果はＡＴＥに送信され、そこで解析されてエラー表示される。さらに、ＭＵＸ３３０は、ＭＵＸ３２０の選択入力に切替信号を送信してもよい。これにより、以下に詳述しているように、コア０および１からの出力がＳＣＡＮＯＵＴラインに時分割多重化される。
【００２８】
図４に、一斉あるいは同時モードで図３に具体化されたＤＵＴを試験するためのフローチャートおよび方法を示す。ある実施形態では、試験データには、ＭＯＤＥＳＥＬＥＣＴ信号およびＣＯＲＥＳＥＬＥＣＴ信号を出力するレジスタに対する値が含まれてもよい。このデータをＤＵＴに入力するには試験モードを選択する（ブロック４００）。両コアの試験を同時に行うことが望ましい場合、試験ベクトルに対するデータが、ＡＴＥからのデータクロック信号を使用してＤＵＴのスキャンチェーンに記録され得る。ＭＯＤＥＳＥＬＥＣＴ信号は、ＭＵＸ３３０を介してＭＵＸ３２０の選択入力にＣＬＯＣＫ信号を送るように設定される。これには、時分割多重（ＴＤＭ）化同時  試験モードを選択してもよい。一実施形態では、ＣＬＯＣＫＣＴＬ信号は、ベクトルをコアの内外に記録するために使用されるＡＴＥによって生成されたデータクロック信号から派生したものであってもよい。別の実施形態では、ＣＬＯＣＫＣＴＬは試験を実行するために使用されるシステムクロック信号から生じたものであってもよい。ＣＬＯＣＫＣＴＬ信号は、ＡＴＥによって生成され、ＤＵＴに入力されてもよい。
【００２９】
試験中、ＡＴＥによって生成されたシステムクロックの１以上のサイクルをコアに適用してもよく、またある実施形態では、ＤＵＴ内のその他の機能に適用してもよい（ブロック４２０）。試験を実行する前にスキャンチェーンに記録された値をハードウェアによって操作してもよく、これにより生じる値を出力チェーンにラッチしてもよい。同時モードでは、コアは同一の入力データを同時に操作する。試験が終わると、試験結果はＤＵＴの外部に記録され、また、解析のためにＡＴＥに記録される。ＴＤＭ同時試験モードにおけるＤＵＴの試験結果を受信する場合、ＡＴＥは期間モード(window mode)で動作される。期間モードでは、ＡＴＥはＤＵＴからの入力を、ストローブ期間と呼ばれる、ある期間における予測結果値と比較し、この入力がストローブ期間の任意の時期の予測値と異なっていればエラー信号を生成する。ストローブ期間は、データクロックの各サイクルに一度発生し得る。
【００３０】
各データクロックサイクルにおいて、１以上のコアからのデータを比較するために、各コアからの試験結果をＳＣＡＮＯＵＴラインに時分割多重化してもよい（ブロック４３０）。立ち下がりエッジがストローブ期間の中間地点に、あるいは中間地点付近に生じるように、ＣＬＯＣＫＣＴＬ信号はＡＴＥデータクロック信号からもたらされる。これにより、第１のストローブ期間においてはコア０からの結果を、第２のストローブ期間においてはコア１からの結果をＭＵＸ３２０に出力させるようにする。ＳＣＡＮＯＵＴラインの各々をＡＴＥの１つの入力チャネルに接続してもよい。各ＡＴＥチャネルに入力された、時分割多重化された結果データは、ＡＴＥメモリに記録された予測結果と比較される。所与のストローブ期間（ＣＬＯＣＫサイクル）において、コア０あるいはコア１からの結果が予測結果と同じでなければ、ＡＴＥは、コアの一方に誤りがあると判断する。他の実施形態では、３以上のコアからの結果は、ストローブ期間において時分割多重化される。
【００３１】
図５に、本発明の一実施形態に従う、いくつかの構造スキャン試験信号間の関係を例示したタイミング図を示す。ＣＬＯＣＫ信号は、試験実行前におけるスキャンチェーンへの試験ベクトルの読み出し及びＤＵＴポスト試験からの試験結果の読み出しを制御するためにＡＴＥにより生成されＤＵＴに入力されるデータクロックであってもよい。ＣＯＲＥ０ＳＤＯは、コア０スキャンチェーンにおける最終構造スキャンセルからの出力であってもよい。同様に、ＣＯＲＥ１ＳＤＯは、コア１スキャンチェーンにおける最終構造スキャンセルからの出力であってもよい。これらの出力状態の変更は、ＣＬＯＣＫ信号の立ち上がりエッジに一致し得るものであり、その後、短い設定時間が有効となる／安定する。ストローブ期間は、その立ち上がりエッジ前の各ＣＬＯＣＫサイクルにおいてのある期間は”オープン（ｏｐｅｎ）”であってもよい。ＣＬＯＣＫＣＴＬは、その立ち下がりエッジがストローブ期間中に発生するように、また、一実施形態では、好ましくはストローブ期間の中間地点において発生するように、ＣＬＯＣＫ信号からもたらされる。この概念を、例えば、ＭＵＸＤあるいはＬＳＳＤ型のセルを含むスキャンチェーンに適用してもよい。
【００３２】
図３を再度参照すると、ＣＬＯＣＫＣＴＬがＭＵＸ３３０を介してＭＵＸ３２０の選択入力に送られた状態で、コア０およびコア１のスキャンチェーンの出力は、ＣＬＯＣＫＣＴＬのレベルに応じて、交互に、ＭＵＸ３２０を介してＳＣＡＮＯＵＴに送られる。ＣＬＯＣＫＣＴＬ信号のエッジがストローブ期間内に発生している状態で、コア０およびコア１からの試験結果を、１つのストローブ期間内にＡＴＥに入力してもよい。これについては、図５のタイミング図の下方部に示す。連続するストローブ期間において、両コアのスキャンチェーンの出力はＳＣＡＮＯＵＴ信号に存在する点に留意されたい。第１のストローブ期間において、コア０（Ａ０）に対する試験セグメントの結果およびコア１（Ａ１）に対する試験セグメントの結果をＡＴＥに入力し、第２ストローブ期間において、Ｂ０およびＢ１入力が存在する。同様に、第３ストローブ期間において、Ｃ０およびＣ１がＡＴＥに入力される。図３では、コア１に対する試験セグメントの結果がＳＣＡＮＯＵＴにおいて第１のストローブ期間における出力として示され、コア０に対する試験セグメントの結果が第２のストローブ期間の出力として示される。その他の実施形態では、この順序を逆にしてもよい。２以上のコアを有する実施形態では、ストローブ期間において、結果を時分割多重したその他の順序を使用してもよい。
【００３３】
各ストローブ期間において、チャネル上の値の各々が、試験のその部分の予測結果と比較される。ＳＣＡＮＯＵＴ入力とストローブ期間における任意の時点の予測試験結果とに違いが検出されれば、その特定の試験セグメントに関連づけられたエラー表示が生成され得る。両コアからの試験結果が、各ＣＬＯＣＫサイクルにおいて互いに比較されるのではなく、予測試験結果と比較されるので、両コアが同じやり方で同じ試験セグメントに失敗すると、エラー表示が生成される。これにより、コア試験結果が相互に比較される、先述した同時方法に関連するエラーエイリアスつまりエラーの複製を防ぐことができる。一実施形態では、ＡＴＥストローブ期間において、コアの試験結果をこのように時分割多重化することは、Ｎ個のコアの同時試験にまで拡張することができる。これは、各ストローブ期間中にＮ個のコアのスキャンチェーンからＮ個の出力を変更するように構成されたＳＣＡＮＯＵＴラインを供給する出力選択回路を配置することでなされる。
【００３４】
図６に、複数の同時モードを含む、構造スキャン試験の複数のモードから選択するように構成されたマルチコアＩＣの実施形態を示す。この実施形態では、図２〜４に関して説明した試験モードを組み合わせるための実装される回路は、単一のマルチコアＩＣである。図７に、本実施形態に従う、いくつかの構造スキャン試験モードから選択するための、図６の実施形態における試験モードセレクタ回路を構成するための方法のフローチャートを示す。
【００３５】
デシジョンブロック７００において、ＭＯＤＥＳＥＬＥＣＴが高レベルに設定されていれば、ＸＯＲゲート５２０の出力は、ＭＵＸ５５０を介してＳＣＡＮＯＵＴラインに送られる。このような構成では、図２に関して説明し、かつ、ブロック７１０によって示しているように、コア０およびコア１の試験を同時に行うことができる。コア０の試験結果がコア１の試験結果と異なる場合、ＳＣＡＮＯＵＴ信号は高レベルを取り得る。
【００３６】
ＭＯＤＥＳＥＬＥＣＴ１が低レベルに設定されている場合、ＭＵＸ５６０の出力はＭＵＸ５５０を介してＳＣＡＮＯＵＴラインに送られる。図６に示しているように、ＭＵＸ５６０の出力は、ＭＵＸ５７０の出力に応じて、コア０ストリングあるいはコア１ストリングの最終スキャンセルからの入力であってよい。次にＭＵＸ５７０の出力は、図７のデシジョンブロック７２０に示しているように、ＭＯＤＥＳＥＬＥＣＴ０信号の状態に応じて決められる。ＭＯＤＥＳＥＬＥＣＴ０信号が低レベルであれば、ＭＵＸ５７０に入力されたＣＬＯＣＫＣＴＬ入力はＭＵＸ５６０の選択入力に送られる。先に詳述したように、ＣＬＯＣＫＣＴＬ信号は、コア０および１からの試験結果が時分割多重化されるよう、ＡＴＥから生成されたＣＬＯＣＫ信号からもたらされてもよい。両試験結果はＭＵＸ５６０の出力時に現れ、よって、ＡＴＥのストローブ期間ｐｅｒｉｏｄにおいてＳＣＡＮＯＵＴラインに現れる。従って、両モード選択ラインが低い場合、同時の、時分割多重化したスキャン試験モードが選択される（ブロック７３０）。ＭＯＤＥＳＥＬＥＣＴ０信号が高レベルにある場合、非同時的あるいはシリアル試験モードが選択される。このモードでは、どれか一方のコアからの試験結果がＳＣＡＮＯＵＴ信号線に送られる。再度図６を参照すると、ＣＯＲＥＳＥＬＥＣＴ信号はＭＵＸ５７０を介してＭＵＸ５６０の選択入力に送られる。この信号（ｗｈｉｃｈ）は、ＳＣＡＮＯＵＴとなるよう、ＭＵＸ５６０および５５０を介して送信されるコア０あるいはコア１いずれかのスキャンチェーンからの出力を選択する。このような選択を、図７のデシジョンブロック７４０に示す。ＣＯＲＥＳＥＬＥＣＴ信号が低である場合、ＩＣはシリアル試験モードでコア０を試験するように構成される（ブロック７５０）。同様に、ＣＯＲＥＳＥＬＥＣＴ信号が高である場合、ＩＣはシリアル試験モードでコア１を試験するように構成される。図６に示すＭＵＸのコントロールレベルは例示の実施形態とは異なり得る点に留意されたい。例えば、別の実施形態では、ＭＯＤＥＳＥＬＥＣＴ０に対する高レベルはＴＤＭモードを選択してもよい。その他の等価のロジックを他の実施形態に用いてもよい。
【００３７】
図８に、任意のコアペアの同時ＴＤＭ試験を含む構造スキャン試験の複数のモードから選択するように構成されたマルチコアＩＣの一実施形態を示す。試験モード選択ロジックの各ステージは、任意の特定のステージからの出力が次のステージの１つの“コア”入力として機能した状態で、図３の実施形態と同じように機能し得る。例えば、コアｎ−１を含むステージの出力は、コアｎを含むステージに対する第２の”コア入力”を供給し得る。図９に、任意のコアあるいはコアペアに対して、特定のシリアルあるいは同時ＴＤＭ試験モードを起動させるために、ＣＴおよびＳｅ１ラインの所要の状態を示した真偽表を示す。ＣＴラインは図３のＭＯＤＥＳＥＬＥＣＴラインに類似している。特定の試験モードの選択についての詳細を記述するために、以下にいくつかの例を示す。
【００３８】
コア１に対して非同時的あるいはシリアル試験モードを起動するために、各ステージのＣＴラインは低レベルに設定され、Ｓｅｌ信号を下位のマルチプレクサを介して上位のマルチプレクサの選択入力に送るようにする。これを図８に示す。これに対応して、図９の表１の第１行においては、全てのＣＴ信号が０に設定されなければならないことを示す。最初のステージを除き、各ステージのＳｅｌラインは、そのステージ用のコアからの出力をブロックしてかつその前のステージからの出力を上流のマルチプレクサに流して最終的にはＳＣＡＮＯＵＴに流すように、ｌｏｗにセットされる。図９の表の最初の行は、すべてのＳｅｌ信号がこの試験モードで０にセットされなければいけないことを示す。コア１の出力は、ステージ１の上流のマルチプレクサの、より低い入力となることから、Ｓｅｌ＿１もまたコア１からの試験結果をＳＣＡＮＯＵＴに流すようにｌｏｗにセットされる。したがって、図９の表の第１行は、コア１のシリアルバウンダリスキャン試験モードをアクティベートするために、すべての信号が０にセットされなければならないことを示す。
【００３９】
特定のコアｊのためのシリアル試験モードをアクティベートすることが望まれる場合、ＣＴ_j-1（ラインは、コアｊを含むステージの上流のマルチプレクサへとＳｅｌ_j-1を流すように「ｌｏｗ」にセットできる。Ｓｅｌ_j-1は、ＳＣＡＮＯＵＴに流されるコアｊの出力を選択するために「ｈｉｇｈ」にセットされる。これは、図９の表において、後段用のＣＴ列とＳｅＩ列とにおけるＳｅＩ_j-1およびＯのための列内において「１」によって示される。前のステージからの出力が上流のマルチプレクサによって阻まれるので、それらのステージ用のセッティングＣＴおよびＳｅｌが”無視する”として、真理値表においてｘとして表されている。
【００４０】
コアの特定の１つのペアのための同時ＴＤＭ試験モードをアクティベートするために、Ｃｌｏｃｋ_ctl信号は、より高い番号が付けられたコアを含んむステージの上流のマルチプレクサの選択入力に流すことができる。例えば、コア２および６の試験が望まれた場合、Ｃｌｏｃｋ_ctl信号は、コア６を含んでいるステージの上流のマルチプレクサの選択入力に流される。これにより、より高い番号が付けられたコアの出力を、その前のステージからの出力と時分割多重化することが可能となる。これは、図９の表において、より高い番号が付けられたコアのＣＴラインに対応する列の「１」として示される。
【００４１】
さらに、より低い番号が付けられたコアの出力は、より高い番号が付けられたコアのステージの入力に流されなければならない。これは、その対応するＳｅｌラインを「ｈｉｇｈ」として、より低い番号が付けられたコアを含むステージの上流側マルチプレクサの選択入力に流すことでなされる。これは、図９の表において、より低い低い番号が付けられたコアのＳｅｌラインに対応する列で「１」として示される。ただし、コア１はその例外であり、その対応するＳｅｌラインは「ｌｏｗ」にセットして良い。前述の例と同様に、より低い番号が付けられたコアを含むステージの前のステージからの出力はブロックされ、従って、これらのステージ用のＣＴおよびＳｅｌの設定は、真偽表においてｘとして示される「無視」として表すことができる。
【００４２】
他の実施形態では、図８及び９に示されるように、同時試験のためにコアのいずれかのペアを選択する代わりに、試験モードセレクターが、２つを超えるコアを同時に試験するＴＤＭモードで作動してもよい。図１ＯＡは、一致回路の一実施形態を示し、この一致回路は、コアのうちの１つの結果を、ＩＣに含まれる他の各コアの結果と比較するために用いることができる。この一致回路（Ｅｎ＿ＸＯＲ）の出力は、すべてのコアが一致している場合には、第１コアの出力と同じとなり、他のコアの一つ以上の出力が第１コアの出力異なる場合には、第１コアの出力とは逆の値をとる。
【００４３】
例示的な実施形態においては４つのコアのみが示されているが、（Ｅｎ＿ＸＯＲ）回路は、いずれのコア数に対しても動作するよう容易に拡張することができる。このような形態の一例において、試験モードセレクタは、ストローブ期間の第１部位において、コアのうちの一つ（“第１”コア）の出力結果を出力するように設計される。ストローブ期間の別の部位中において、試験モードセレクターは、残りの各コアからの結果と上述のストローブ期間の第１部位中において出力されたコアの出力結果との比較により、その結果を出力する。
【００４４】
例えば、各追加されたコアからの結果は、第１コアからの結果と個別にＸＯＲ結合することができ、その結果は、いずれかのコアの結果が一致しない場合に、第１コアの出力を補足するように用いられる。これは、図１０Ａを用いて詳述されるように、Ｅｎ＿ＸＯＲブロックによって遂行されてもよい。他のコアのうちのいずれかが第１コアと一致しない場合、ストローブ期間の第２の部位中に、第１コア結果の反転値が出力され、これにより、ＡＴＥに不良(failure)を知らせることになる。この試験モードにより、ストローブ期間幅が、二つの結果セットのＴＤＭにのみ十分であるに過ぎない場合でも、二つより多数のコアを同時に試験することが可能となる。
【００４５】
いくつかの実施形態では、ＡＴＥは、第１コアの結果を予期された結果と比較してもよい。この比較では、コアがすべて同じように不良となる場合により生じるエラーとともに、コアのいずれかにおける不良の結果としてのエラーをも検出できる。第１コア以外のコアが不良となった場合、どのコアで不良を引き起こしたかを判定するために、（図８に示されるように）各コアのペアに対する試験を繰り返すことで更なる選択性を得ることができる。
【００４６】
図１ＯＢは、（図１０Ａに示されるように）すべてのコアが同時に試験されるか、又は（図８に締めさえるように）コアのうち選択された一つのペアが同時に試験されるモードを含む構造スキャン試験の複数のモードのうちから選択するように構成されたマルチコアＩＣの一実施形態を示す。図１１は、一実施形態にかかる、試験モードを選択し、構造のスキャン試験の複数のモード間から選択を行うように構成されたマルチコアＩＣを試験する方法のフローチャートである。ブロック１０００で、テストベクトル及び／又はＡＴＥが、所望の試験モードのために構成される。例えば、試験結果出力の多重化をコントロールするスキャンチェーン要素に対する値がセットされる。
【００４７】
他の実施形態では、試験結果の多重化を直接制御するために、ＡＴＥによって生成された信号がセットされる。ブロック１０１０に示されるように、適切に形成されたテストベクトルが、ＤＵＴのコアのスキャンチェーン内で計測され得る。テストベクトルがロードされた後に、ブロック１０２０に示されるように、テストを実行するために１つ以上のシステムクロックサイクルがＤＵＴに適用されてもよい。決定ブロック１０３０では、ＴＤＭ同時試験モードが選択されている場合、ブロック１０４０に示されるように、ＤＵＴの各コアからの各ＳＣＡＮＯＵＴラインからの試験結果の１ビットが、ブロック１０４０に示されるように、ＡＴＥウィンドウストローブモードを用いて、予測された結果との比較のためにデータクロックの各サイクル中にＡＴＥに送られる。
【００４８】
決定ブロック１０３０において、同時モードが選択されていると決定された場合、ブロック１０５０に示されるように、データクロックの各サイクル中において、コアからの各ＳＣＡＮＯＵＴラインからの結果同士の比較における１ビットがＡＴＥに送られる。この場合、ＡＴＥにおける比較はノーマルモードに実行されてもよい。決定ブロック１０３０において、非同時モードが選択されていると決定された場合、ブロック１０６０に示されるように、データクロックの各サイクル中において、試験された特定のコアからの各ＳＣＡＮＯＵＴラインからの結果同士の比較における１ビットがＡＴＥに送られる。この場合、その結果が、試験される最後のコアからの結果であるか否かを判断するために、決定ブロック１０７０でチェックがなされる。最後のコアからの結果ではない場合、ＤＵＴの試験される次のコアに対して試験手順が繰り返される。
【００４９】
図１２は、バスブリッジ１１０２を通じて種々のシステムコンポーネントに接続されたマイクロプロセッサー１１５０を備えた計算機装置１１００の一実施形態のブロック図である。マイクロプロセッサー１１５０はマルチコアマイクロプロセッサーでもよく、上述したような試験モードセレクターが実装されていてもよい。コンピュータシステムを他の実施形態とすることも可能であり、考慮の対象とされる。図示されたシステムでは、主記憶１１０４はメモリーバス１１０６によってバスブリッジ１１０２に結合される。また、グラフィックスコントローラ１１０８はＡＧＰバス１１１０によってバスブリッジ１１０２に結合される。いくつかのＰＣＩデバイス１１１２Ａ−１１１２Ｂが、ＰＣＩバス１１１４を通じてバスブリッジ１１０２に結合されている。１つ以上のＥＩＳＡあるいはＩＳＡデバイス１１１８にＥＩＳＡ／ＩＳＡバス１１２０を通じて電気的なインターフェースを適応させるために、第２バスブリッジ１１１６をも設けるようにすることができる。この例において、マイクロプロセッサ１１５０は、ＣＰＵバス１１２４を通じてバスブリッジ１１０２に結合され、オプショナルＬ２キャッシュ１１２８に結合される。実施形態によっては、マイクロプロセッサ１００は、一体化されたＬ１キャッシュを有してもよい（図示せず）。
【００５０】
バスブリッジ１１０２は、マイクロプロセッサ１１５０、とメインメモリ１１０４、グラフィックスコントローラ１１０８、およびＰＣＩバス１１１４に接続されたデバイスの間のインターフェースを提供する。バスブリッジ１１０２に接続されたデバイスのうちの１つからオペレーションが受け取られた場合、バスブリッジ１１０２はオペレーションのターゲット（例えば、特定のデバイスであり、ＰＣＩバス１１１４の場合には、ターゲットはＰＣＩバス１１１４上にある）を識別する。バスブリッジ１１０２は、ターゲットとされたデバイスへとオペレーションを送る。バスブリッジ１１０２は、転送元装置またはバスで使用されるプロトコルからのオペレーションを、ターゲット又はバスで使用されるプロトコルに翻訳する。実施形態によっては、バスブリッジ１１０２はマイクロプロセッサ１１５０に統合されてもよい。
【００５１】
ＰＣＩバス１１１４のためのＩＳＡ／ＥＩＳＡバスへのインターフェースの提供に加えて、第２のバスブリッジ１１１６が更なる機能性を有するようにしてもよい。更にキーボード及びマウス１１２２、並びに種々のシリアルポートやパラレルポートの動作をサポートするために、コンピュータシステムに、外部からのＩ／Ｏコントローラあるいは第２のバスブリッジ１１１６に統合されたＩ／Ｏコントローラ（図示せず）を設けても良い。
【００５２】
他の実施形態においては、マイクロプロセッサ１１５０とバスブリッジ１１０２の間のＣＰＵバス１１２１１に外部キャッシュユニット（図示せず）を結合してもよい。これに代えて外部キャッシュは、バスブリッジ１１０２に結合してもよく、また、外部キャッシュ用のキャッシュ制御ロジックをバスブリッジ１１０２に一体化してもよい。Ｌ２キャッシュ１１２８はマイクロプロセッサ１１５０の裏面側構造（バックサイドコンフィグレーション）として示される。Ｌ２キャッシュ１１２８は、マイクロプロセッサ１１５０と分離することも、あるいはマイクロプロセッサを備えたカートリッジ（例えばスロット１あるいはスロットＡ）に統合することもでき、あるいは、マイクロプロセッサを備えた半導体基板上に一体化することすらできる。
【００５３】
メインメモリ１１０４には、アプリケーションプログラムが格納されるとともに、メモリからマイクロプロセッサ１１５０が主として実行を行う。適切なメインメモリ１１０４としては、ＤＲＡＭ（Dynamic Random Access Memory）が挙げられる。例えば、ＳＤＲＡＭ（シンクロナスＤＲＡＭ）又はＲａｍｂｕｓ  ＤＲＡＭ（ＲＤＲＡＭ）の複数のバンクが適切であろう。
【００５４】
ＰＣＩデバイス１１１２Ａ−１１１２Ｂは、ＬＡＮ接続カード、ビデオアクセラレータ、音声カード、ハードディスクあるいはフロッピーディスク・ドライブ、ドライブ又はドライブコントローラ、ＳＣＳＩ（Small Computer Systems Interface）アダプターおよび電話カードのような様々な周辺機器を表す。同様に、ＩＳＡデバイス１１１８は、モデム、サウンドカード、およびＧＰＩＢまたはフィールドバスインタフェースカード等のデータ取得カードのような、様々なタイプの周辺機器のを表す。
【００５５】
グラフィックスコントローラ１１０８は、ディスプレイ１１２６上のテキストおよびイメージのレンダリングをコントロールするために提供される。
【００５６】
グラフィックスコントローラ１１０８は、従来一般的に知られている、三次元デジタルデータ構造の描画を行う典型的なグラフィックアクセラレータを実現するものであり、この３次元デジタルデータ構造は、効率的に、メインメモリ１１０４への移動及びメインメモリ１１０４からの移動が行われる。したがって、グラフィックスコントローラ１１０８は、バスブリッジ１１０２内のターゲットインターフェースへとアクセスをリクエスト及び受信してこれによりメインメモリ１１０４へのアクセスを得ることから、ＧＰバス１１１０のマスターともなり得る。
【００５７】
専用のグラフィックスバスにより、メインメモリ１１０４からの迅速なデータ受信を行うことができる。あるオペレーションにおいては、グラフィックスコントローラ１１０８は、更に、ＡＧＰバス１１１０の上のＰＣＩプロトコルトランザクションを生成するように構成することもできる。従って、バスブリッジ１１０２のＡＧＰインターフェースは、ＰＣＩプロトコルターゲットおよびイニシエータートランザクションとＡＧＰプロトコルトランザクションとの双方をもサポートするするための機能有しても良い。ディスプレイ１１２６は、イメージかテキストを表示可能である、あらゆる電子表示装置としてよい。適切なディスプレイ１１２６としては、陰極線管（ＣＲＴ）、液晶ディスプレー（ＬＣＤ）等が挙げられる。
【００５８】
ＡＧＰ、ＰＣＩおよびＩＳＡまたはＥＩＳＡのバスを一例として記載したが、所望に応じて、いずれのバスアーキテクチャ方式により置換することも可能である。コンピュータシステム１１００は、追加のマイクロプロセッサ（例えば、コンピュータシステム１１００のオプショナルコンポーネントとして示されたマイクロプロセッサ１１５０ａ）を含む、マルチプロセッシングコンピュータシステムとすることもできる。マイクロプロセッサ１１５０ａはマイクロプロセッサ１１５０と同様のものとしてもよい。より特定的には、マイクロプロセッサ１１５０ａは、一実施形態中におけるマイクロプロセッサ１１５０の同一のものとしてもよい。マイクロプロセッサ１１５０ａは独立したバスを通じてバスブリッジ１１０２に接続されても良く、あるいは、マイクロプロセッサ１１５０とＣＰＵバス１１２４を共有してもよい。更に、マイクロプロセッサ１００ａに、Ｌ２キャッシュ１１２８と同様のオプションのＬ２キャッシュ１１２８ａに結合してもよい。
【００５９】
図１３においては、上述した試験モードセレクターを実装可能なコンピュータシステムの別の実施形態が示される。他の実施形態も可能であり、考慮の対象とされ得る。一実施形態において、コンピュータシステムはいくつかのプロセスノード１２１２Ａ、１２１２Ｂ、１２１２Ｃおよび１２１２Ｄを含んでいる。各プロセスノードは、マルチコアマイクロプロセッサあるいは他のマルチコアデバイスとしても良く、上述したような試験モードセレクターを含んでもよい。各プロセスノードは、それぞれのプロセスノード１２１２Ａ−１２１２Ｄ内に含まれたメモリコントローラ１２１１２Ａ−１２１１２Ｄを通じて、それぞれのメモリ１２１４Ａ−１２１４Ｄに結合されている。
【００６０】
さらに、プロセスノード１２１２Ａ−１２１２Ｄは、プロセスノード１２１２Ａ−１２１２Ｄの間の通信に用いられるインタフェースロジックを含んでいる。例えば、プロセスノード１２１２Ａは、プロセスノード１２１８Ｂと通信するためのインターフェースロジック１２１８Ａ、プロセスノード１２１８Ｃと通信するためのインターフェースロジック１２１８Ｂ、更に他のプロセスノード（図示せず）と通信するためのインターフェースロジック１２１８Ｃを備える。同様に、プロセスノード１２１２Ｂは、インタフェースロジック１２１８Ｄ、１２１８Ｅおよび１２１８Ｆを有し、プロセスノード１２１２Ｃはインタフェースロジック１２１８Ｇ、１２１８Ｈおよび１２１８１を含み、また、プロセスノード１２１２Ｄはインタフェースロジック１２１８Ｊ、１２１８Ｋおよび１２１８Ｌを含んでいる。
【００６１】
プロセスノード１２１２Ｄは、インタフェースロジック１２１８Ｌを通じて、複数のＩ／Ｏデバイス（例えばデイジーチェーン構成のデバイス１２２０Ａ−１２２０Ｂ）と通信するよう結合される。他のプロセスノードも、同様の方法で他の入出力デバイスと通信を行うことができる。［００５０］［００６６］プロセスノード１２１２Ａ−１２１２Ｄは、プロセスノード間通信のためのパケットベースのリンクを実装する。この実施形態では、リンクは、一方向のライン（例えばライン１２２４Ａはプロセスノード１２１２Ａからプロセスノード１２１２Ｂにパケットを送信するために使用され、ライン１２２４Ｂはプロセスノード１２１２Ｂからプロセスノード１２１２Ａにパケットを送信するために使用される）のセットとして実装される。１２２４Ｃ―１２２４Ｈの他のセットは、図１３において示されるように、他のプロセスノード間のパケットを送信するために使用される。
【００６２】
一般に、ライン１２２４の各セットは、１つ以上のデータ線、このデータ線に対応する１つ以上のクロックライン、および運ばれるパケットのタイプを示す１つ以上の制御線を含んでも良い。リンクは、プロセスノード間の通信をキャッシュコヒーレントな手法によりオペレートするか、又はプロセスノードと入出力デバイス（あるいはＰＣＩバス又はＩＳＡバスのような従来構造のＩ／Ｏバスへのバスブリッジ）との間の通信を非コヒーレントな手法でオペレートすることができる。更に、リンクは、図示されるようなＩ／Ｏデバイス間のデージーチェーン構造を使用して、非コヒーレントに動作されてもよい。
【００６３】
あるプロセスノードから別のプロセスノードに送信されるパケットは、１つ以上の中間節点を通じて渡してもよいことが注目される。例えば、プロセスノード１２１２Ａによってプロセスノード１２１２Ｄに送信されたパケットは、プロセスノード１２１２Ｂあるいはプロセスノード１２１２Ｃのいずれかを通過する。適切なルーティングアルゴリズムであればいずれもも使用してよい。コンピュータシステムの他の実施形態として、図１３に示される実施形態よりもプロセスノードが多数又は少数含まれるようにしても良い。
【００６４】
一般に、パケットは、ノード間のライン１２２４上で１又はそれ以上のビットタイミングで送信可能である。
【００６５】
ビットタイミングは、対応するクロックライン上のクロック信号の立ち上がりエッジ又は立下がりエッジとすることができる。パケットは、トランザクションを開始するためのコマンドパケット、キャッシュコヒーレンシーを維持するためのプローブパケットおよびプローブ及びコマンドに応答するための応答パケット含んでいてもよい。
【００６６】
プロセスノード１２１２Ａ−１２１２Ｄは、メモリコントローラとインタフェースロジックに加えて、１つ以上のマイクロプロセッサを含んでいてもよい。概略的には、プロセスノードは少なくとも１つのマイクロプロセッサを含んでおり、メモリおよび所望の他のロジックと通信するためのメモリコントローラを任意に含んでもよい。更に特定的には、プロセスノード１２１２Ａ−１２１２Ｄはそれぞれ、マイクロプロセッサ１１５０と同じものを１つ以上含んでいてもよい。外部インタフェースユニットは、メモリコントローラ１２１６と同様にノード内のインタフェースロジック１２１８を含んでいてもよい。
【００６７】
メモリ１２１４Ａ−１２１４Ｄは適切なメモリ・デバイスのいずれを含んでいてもよい。例えば、メモリ１２１４Ａ−１２１４Ｄは、１つ以上のＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭなどを含んでいてもよい。コンピュータシステム４００のアドレス空間は、メモリ１２１４Ａ−１２１４Ｄ内で分割される。プロセスノード１２１２Ａ−１２１２Ｄは、それぞれ、どのアドレスがどのメモリ１２１４Ａ−１２１４Ｄにマッピングされるかを決定するために、従って、どのプロセスノード１２１２Ａ−１２１２Ｄに対して特定のアドレスに対するメモリリクエストがルーティングされるかを決定するために、使用されるメモリマップを有するようにしても良い。
【００６８】
一実施形態では、コンピュータシステム内のアドレスに対するコヒーレンシーポイントは、このアドレスに対応するバイトを格納するメモリに結合されたメモリコントローラ１２１６Ａ−１２１６Ｄである。言いかえれば、メモリコントローラ１２１６Ａ−１２１６Ｄは、対応するメモリ１２１４Ａ−１２１４Ｄへのメモリアクセスがそれぞれキャッシュコヒーレントな手法でに生じることを保証するものである。メモリコントローラ１２１６Ａ−１２１６Ｄは、メモリ１２１４Ａ−１２１４Ｄとのインターフェースとなる制御回路を含んでいてもよい。さらに、メモリコントローラ１２１６Ａ−１２１６Ｄは、メモリーリクエストを要求するためのリクエストキューを含んでいてもよい。
【００６９】
インタフェースロジック１２１８Ａ−１２１８Ｌは、リンクからパケットを受け取るために、およびリンクで送信されるパケットのバッファーのために、様々なバッファーを含むことができる。コンピュータシステムは、パケットを送信するために適切なフロー調節機構のいずれをも使用してよい。例えば、一実施形態では、インタフェースロジック１２１８は、それぞれ、そのインタフェースロジックが接続されるリンクの他方端にあるレシーバー内の各タイプのバッファ数のカウントを記録する。インタフェースロジックがパケットを格納するための使用可能バッファを持つようになるまでは、インタフェースロジックはパケットを送信しない。パケット送信することで受信バッファが解放されると、受信インタフェースロジックは、バッファーが解放されたことを示すメッセージをインタフェースロジックに送信する。このようなメカニズムは、「クーポンベース」システムと称される。
【００７０】
Ｉ／Ｏデバイス１２２０Ａ−１２２０Ｂは、任意の適切な入出力デバイスとすることができる。例えば、Ｉ／Ｏデバイス１２２０Ａ−１２２０Ｂは、このＩ／Ｏデバイスが結合される他のコンピュータシステムと通信するためのデバイス（例えばＬａｎカードあるいはモデム）を含むようにしてもよい。更に、Ｉ／Ｏデバイス１２２０Ａ−１２２０Ｂはビデオアクセラレータ、音声カード、ハードディスクあるいはフロッピーディスク・ドライブ又はドライブコントローラ、ＳＣＳＩ（Small Computer Systems Interface）アダプターおよび電話カード、サウンドカード、及び、ＧＰＩＢあるいはフィールドバスインターフェースカードのような様々なデータ取得カードを備えてもよい。用語「Ｉ／Ｏデバイス」および用語「周辺機器」が、ここでは同意語になるように意図して用いられている。
【００７１】
ここに使用されるように、「クロックサイクル」、「サイクル」という用語は、命令処理パイプラインの種々のステージがそのタスクを完了する時間のことを指している。命令と算出値は、クロックサイクルを定義するクロック信号によって、メモリーエレメント（例えばレジスタ又はアレイ）によってキャプチャーされる。例えば、メモリーエレメントは、クロック信号の立ち上がりエッジ又は立ち下がりエッジによって上述の値をキャプチャーしてもよい。
【００７２】
当業者であれば、上記の開示内容を完全に理解すれば、種々の変形及び修正が可能であることは明白であろう。添付した請求項は、このような変形及び修正を全て含むものとして解釈されるべきものである。以上、構造試験の内容について記述を行ったが、開示された発明に係る装置及び技術は、機能試験又はＢＩＳＴのような、他の同時試験の形態で適用することも可能である。
【産業上の利用可能性】
【００７３】
発明は、集積回路試験に対して一般的に適用可能である。
【図面の簡単な説明】
【００７４】
【図１】一実施形態によるマルチプルロジックコアを含む集積回路の試験システム。
【図２】一実施形態による一斉あるいは同時モードを含む構造試験の複数のモードから選択するように構成されたマルチコアＩＣの一実施形態。
【図３】一実施形態によるコアを試験し、その試験結果を時分割多重化する同時モードを含む構造スキャン試験の複数のモードから選択するように構成されたマルチコアＩＣの別の実施形態。
【図４】一実施形態による一斉あるいは同時モードで図３において具体化されたＤＵＴを試験するための方法のフローチャート。
【図５】一実施形態によるいくつかの構造スキャン試験信号間の関係を示したタイミング図。
【図６】複数の同時モードを含む構造スキャン試験の複数のモードから選択するように構成されたマルチコアＩＣの一実施形態。
【図７】一実施形態によるいくつかの構造スキャン試験モードから選択するために、図６の実施形態の試験モードセレクタ回路を構成するための方法のフローチャート。
【図８】任意のペアのコアの同時  ＴＤＭ試験を含む構造スキャン試験の複数のモードから選択するように構成されたマルチコアＩＣの一実施形態。
【図９】任意のコアあるいはコアペアに対して特定のシリアルあるいは同時ＴＤＭ試験モードを起動するために、図８に例示した実施形態のコントロールラインの所要の状態を示した真偽表。
【図１０Ａ】ＡＴＥのストローブ期間に２以上のコアを同時に試験する同時ＴＤＭ試験を含む構造スキャン試験のモードを構成するよう構成されたマルチコアＩＣの一実施形態。
【図１０Ｂ】任意のコアペアの同時ＴＤＭ試験あるいはＡＴＥストローブ期間中に２以上のコアの同時ＴＤＭ試験を含む構造スキャン試験の複数のモードから選択するように構成されたマルチコアＩＣの一実施形態。
【図１１】一実施形態による試験モードを選択する方法および構造スキャン試験の複数のモードから選択するように構成されたマルチコアＩＣを試験する方法を示したフローチャート。
【図１２】一実施形態による、含まれるコアを同時に試験するように構成された複数のロジックコアを含む集積回路を含む例示的コンピュータシステムの一実施形態のブロック図。
【図１３】別の実施形態による、含まれるコアを同時に試験するように構成された複数のロジックコアを含む集積回路を含む例示的コンピュータシステムの一実施形態のブロック図。
【図１】
2008534928.tif 000003
【図２】
2008534928.tif 000004
【図３】
2008534928.tif 000005
【図４】
2008534928.tif 000006
【図５】
2008534928.tif 000007
【図６】
2008534928.tif 000008
【図７】
2008534928.tif 000009
【図８】
2008534928.tif 000010
【図９】
2008534928.tif 000011
【図１０Ａ】
2008534928.tif 000012
【図１０Ｂ】
2008534928.tif 000013
【図１１】
2008534928.tif 000014
【図１２】
2008534928.tif 000015
【図１３】
2008534928.tif 000016
【国際調査報告】
2008534928.tif 000017
2008534928.tif 000018