JP2008534928A - マルチコア集積回路における同時コア試験 - Google Patents

マルチコア集積回路における同時コア試験 Download PDF

Info

Publication number
JP2008534928A
JP2008534928A JP2008503093A JP2008503093A JP2008534928A JP 2008534928 A JP2008534928 A JP 2008534928A JP 2008503093 A JP2008503093 A JP 2008503093A JP 2008503093 A JP2008503093 A JP 2008503093A JP 2008534928 A JP2008534928 A JP 2008534928A
Authority
JP
Japan
Prior art keywords
test
core
ate
cores
scan test
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008503093A
Other languages
English (en)
Other versions
JP5723515B2 (ja
Inventor
クオ ティン−ユ
ケイ. エルビー ドワイト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2008534928A publication Critical patent/JP2008534928A/ja
Application granted granted Critical
Publication of JP5723515B2 publication Critical patent/JP5723515B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318558Addressing or selecting of subparts of the device under test
    • G01R31/318563Multiple simultaneous testing of subparts
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

集積回路に含まれる複数のコアを同時に試験する方法およびシステムの各種実施形態が開示されている。一実施形態では、集積回路は2つ以上のロジックコアを含んでもよい。ICはさらに、コアに接続された構造スキャン試験ハードウェアを含んでもよい。この構造スキャン試験ハードウェアは、スキャン試験ベクトルデータをロジックコアの各々に関連づけられたスキャンレジスタに入力し、ICに含まれるロジックコア上でスキャン試験を同時に実行し、複数のコアに対するスキャン試験結果を自動試験装置(ATE)に同時に出力することができる。一実施形態において、複数のコアに対する試験結果のそれぞれの要素は、各ストローブウィンドウの間において、ATEへの入力チャンネル上に各コアからの試験結果データの一つの要素が単一の出力線上において存在するように、インターリーブされる。

Description

本発明は集積回路の試験に関し、より具体的には、マルチコアマイクロプロセッサなどのマルチコア集積回路の構造試験に関する。
通常、複雑度が低〜中程度の集積回路は、機能試験を用いて試験される。ある場合では、特定の集積回路のあらゆる機能的特性を使用するために試験ベクトルが構築される。この試験ベクトルは各ユニットを有効にするために製造において用いられる。
チップマルチプロセッサ(CMP)などの多くのICは、このアプローチ法にとって非常に複雑である。また、機能試験に求められる機能試験ベクトル群は、利用可能な自動試験装置(ATE)には大きすぎるおそれがある。
ほとんどの集積回路は、独立した、あるいは半独立の機能ブロックを含む。またある場合では、チップ全体を試験するよりも各ブロックを別々に試験するほうがより効率的である。この試験法は、構造試験と呼ばれる。その理由は、この試験により回路構造が正確に製造されたかどうかが試験されるからである。
ICで構造試験を実行するために、工場において、適切な試験ベクトルを試験を行う構造ブロックに入力し、結果出力を得る。特に、試験をサポートするために、集積回路に新たな構造、例えば、MUXDあるいはLSSDスキャンセルを挿入する必要がある。
全ての構造ブロックおよびブロック間の相互接続が正確に製造されているかを確認するために構造試験を行ってもよい。設計のゲートレベル表示を用いて、自動試験パターンジェネレータ(ATPG)は、内部の設計構造を試験することができるよう、コントローラブルノードに対する刺激をアルゴリズム的に計算する。設計の複雑度およびサイズにより、各構造の”制御”および”監視”が非常に困難となるおそれがある。試験される設計の厳密な特性に応じて、2つの試験メソドロジーである“スキャン試験”および”ランダム試験”が選択される。
フルスキャン試験では、被検体(DUT)内の記憶素子は1以上のスキャンチェーンに接続される。ATPGパターンはATEのテスターメモリに記録される。ATEは多数のパラレルスキャンチェーンを使用して回路にベクトルを出力する。チップのI/Oピン、テスタチャネル等の稼働率、および、試験モードで記憶素子を連鎖させることで起きるチップ上のルートの混雑状態により、使用できるスキャンチェーン数に制限が設けられる。
ランダム試験メソドロジーにおいては、設計における各構造を試すために、ランダム(あるいは、擬似ランダム)データ値を設計入力ノードに適用する(実際に、ランダムに制御し、監視する)。この方法により、メモリなどの通常の構造を試験するときに、よりよい結果を生み出すことができる。擬似ランダムパターンの特性は、移相器およびLFSR(線形フィードバックシフトレジスタ:Linear-Feedback Shift Registers)のカスタム設計ともに増加する。有効なランダムパターンスペースの所望のセグメントは、パターン生成を開始する特定のシードとともにLFSRを読み出すことにより生成される。ランダムパターンに対するレスポンスを捕らえるために、MISR(多重入力シグナチャレジスタ:Multiple-Input Signature Resiter)を使用してもよい。
しかし、ランダムパターンを使用して試験をするには不適当な設計もある。このような設計に対しては、内部構造のコントローラビリティとオブサーバビリティとを向上させるために、試験ポイントを挿入する必要があり得る。ロジックに対するBIST(ビルトインセルフ試験)メソドロジーでは、LFSRおよびMISRがチップの一部となり得る。各ロジック構造にランダムパターンデータを適用するために、BISTはフルスキャンメソドロジーを実装してもよい。このアーキテクチャにより、非常に多くのパラレルスキャンチェーンが可能となる。その理由は、パラレルスキャンチェーンはチップのI/Oピンに送られなくてもよいからである。
通常、ロジックBISTはそのベースにスキャン技術を使用する。PRPG(擬似ランダムパターンジェネレータ)は、試験パターンを生成するために、決定論的ATPGを置き換える。試験パターンは、スキャンチェーンおよびコアロジックを介して入力され得る。また、応答を集めるために、MISR(多重入力シグナチャレジスタ)を用いてもよい。PRPGおよびMISRに必要な全ての回路をチップに埋め込んでもよい。埋め込まれた試験パターン生成および応答解析は、ATEに少しのメモリしか必要としない。
BISTの最も優れた利点の1つに、試験用チップの定格化された機能速度で試験パターンを走行させることができる点が挙げられる。これは、時間依存設計には非常に重要なことである。試験パターン生成および応答解析機能の双方がチップ上にあるので、試験をトリガーするために必要なものはATEだけであり、それゆえ、その制限により試験の実行が抑制されることはないであろう。しかし、包括的BISTを実行するためにチップに追加された付加的ハードウェア量は制限される。
複合集積回路には、機能ブロックあるいはコアのマルチプルコピーを含むように設計されたものもある。例えば、マルチコアマイクロプロセッサは、複合汎用プロセッシングコアのマルチプルコピーを含み、ここでは、各コアは他のコアから独立して、あるいは、ほぼ独立して機能する。従来、構造試験は各コアを別々に試験するように設計されている。ピンに制限があることから、一度に試験できるのは1つのコアだけである。
集積回路に含まれる複数のコアを同時に試験するための方法およびシステムの様々な実施形態が開示されている。一実施形態では、集積回路は2以上のロジックコアを含む。この集積回路はさらに、コアに接続された構造スキャン試験ハードウェアを含む。この構造スキャン試験ハードウェアは、スキャン試験ベクトルデータをロジックコアの各々に関連づけられたスキャンレジスタに入力し、ICに含まれるロジックコア上でスキャン試験を同時に実行し、マルチプルコアに対するスキャン試験結果を自動試験装置(ATE)に同時に出力することができる。一実施形態においては、マルチプルコアに対する試験結果要素は、各ストローブ期間中において各コアからの試験結果データの要素が一つの入力チャネルに存在するように、単一の出力線に時分割多重化してもよい。
一実施形態では、集積回路はマルチプルロジックコアおよび構造スキャン試験ハードウェアのほかに、1以上のハードウェア機能を含む。例えば、集積回路は、コアおよび試験ハードウェアに加えて、通信コントローラおよび/あるいはメモリコントローラを含む。ある実施形態では、コアはx86プロセッサコアであってもよく、通信コントローラ、および/あるいはメモリコントローラは、コアがメインメモリあるいはシステムメモリにアクセスすることのできるメカニズムを供給する。試験を実行する間、その他のハードウェア機能が、ある実施形態ではコアと同時に試験され、別の実施形態では、非同時的に試験される。一実施形態では、試験の実行中に、その他の機能がコアとのインタラクトを最小限に抑えるような形式で、あるいはインタラクトしないような形式でその他の機能を配置してもよい。このようにすることで、その他の機能の動作がコアの試験結果に及ぼす影響を最小限に抑えるか、なくすことができる。他の実施形態では、他の機能の動作がコアの結果に影響を及ぼす試験セグメントの結果は、ATEによって無視され得る。
ある実施形態では、構造スキャン試験ハードウェアは試験モードセレクタを含み得る。この試験モードセレクタは、コアに対して行われる試験モードを決定するために、同時的あるいは非同時的な試験の様々なバージョンから選択されてもよい。例えば、ある非同時的モードでは、同時に試験できるのは1つのコアだけであり、そのために、各試験実行後に有効なのは1つのコアからの試験結果だけである。その他の場合では、試験は各コアに同時に実行され、組み合わせられた試験結果の1つのセットが試験を実行する毎に出力される。
ある同時試験モードでは、コアからの結果は、コンセンサスを判断するために、構造スキャン試験ハードウェアによって内部が比較され、表示が出力される。例えば、ICが2つのコアを含み、試験の特定の要素に対する結果が同じであれば、第1ロジックレベルがATEに出力され、その結果についての同意が示される。試験の特定の要素に対する結果が異なる場合、第2ロジックレベルがATEに出力され、コアの1つが試験要素を間違って実行したことが示される。
他の同時試験モードでは、コアからの結果は出力線に時分割多重化され、ATEのチャネルに入力される。例えば、ICが2つのコアを含む場合、特定の試験要素に対する各コアからの試験結果に対する2つの値は、他の試験モードにおいて、1つのコアからの1つの値だけが送信される間に、単一チャネルのATEに送信される。この試験結果要素を時分割多重化することで、各コアからの要素をストローブ期間中に単一のチャネルのATEに入力することが可能となる。ATEは、各コアからの試験結果要素をストローブ期間中にATEメモリに記録された予想値と比較し得る。予想結果との比較を行わない要素がある場合、コアの1つがその試験要素を間違って実行したことを示す。
本発明は、様々な改良を行い、また、他の形態で実施することができるが、ここに説明されている特定の実施例は、例示として示さたものであり、以下にその詳細を記載する。しかし当然のことながら、ここに示した特定の実施例は、本発明を開示されている特定の形態に限定するものではなく、むしろ本発明は添付の請求項によって規定されている発明の範疇に属する全ての改良、等価物、及び変形例をカバーするものである。各ヘディングは単に構成を目的としたものであり、明細書あるいは請求項を制限あるいは解釈するために用いることを意図しない。さらに、本明細書で使用されている”可能(may)”という用語は、許可的な意味合い(つまり、可能性がある、することができる)で使用されており、強制的な意味合い(つまり、しなければならない)では使用されていない。用語”含む(include)”およびその派生語は“含まれるがそれに制限されるものではない”ことを意味する。用語”接続された(connected)”は、”直接的に、あるいは間接的に接続されている”ことを意味し、用語”結合された(coupled)”は、”直接的に、あるいは間接的に結合されている”ことを意味する。
以下の図面と併せて以下の詳細な説明を考慮すれば、本発明をさらに理解することができる。
図1に、一実施形態による複数のロジックコアを含む集積回路の試験システムを示す。一実施形態では、被検体(DUT:Device Under Test)は、チップマルチプロセッサであり、コア0〜Nは同一のものであってもよい。さらに、DUTは、コアには含まれないその他の回路を含んでもよい。例えば、DUTは、ブリッジングおよび/あるいはメモリ制御機能を含んでもよく、このような機能により、コアが共通のメモリあるいはその他のリソースにアクセスできるようになる。ある場合では、マルチコアDUTに複製された基本的なコアが、先に構築された単一コア集積回路中にすでに含まれていてもよい。例えば、コア0とDUTのその他の機能ブロックだけを含んだマイクロプロセッサチップを先に製造し、図1に示す自動試験装置(ATE:Automated Test Equipment)を使用して試験が行われてもよい。このような場合、ハードウェアおよびソフトウェアはほとんど変更しないで、また、試験パターンボリュームや試験時間を増やさずに、先の集積回路の試験に使用したATEを使ってDUTを試験することが望ましい。
一実施形態では、DUTはx86あるいはその他のタイプのマイクロプロセッサであってもよく、コアはx86あるいはその他のタイプのコアであってもよい。またその他の機能として、通信コントローラおよび/あるいはメモリコントローラを挙げることができる。試験の実行において、コアに関してその他の機能を同時に試験できる実施形態もあれば、同時に試験できない実施形態もある。一実施形態では、試験を実行する間、その他の機能がインタラクトしないような形式でその他の機能を配置するか、コアとのインタラクトを最小限に抑えるような形式でその他の機能を配置してもよい。このようにすることで、コアの試験結果について、その他の機能の動作による影響を最小限に抑える、あるいはなくすことができる。その他の実施形態では、その他の機能の動作がコアの結果に影響を及ぼす試験セグメントの結果はATEにより無視されてもよい。所与の試験が実行される試験モードを選択し、ATEに適切な試験結果を送るために、試験モードセレクタが使用される。
ATEは、DATAOUTライン上のDUTにスキャン試験データを出力し、1以上のクロック信号を使用してSCANINライン上のDUTにこのデータを記録するように設計され得る。このようなクロック信号は、スキャンチェーンとして、コアおよびその他の機能に含まれるLSSDセルおよび/あるいはMUXDセルを制御するために使用され得る。一実施形態では、ATEにより生成された1以上のクロックを試験モードセレクタに入力してもよい。この試験モードセレクタは、試験が実行されるモードを決定するために、同時および非同時的試験の様々なバージョンから選択することができる。試験モードセレクタの一機能として、コアおよびその他の機能からの出力を、DUT SCANOUTラインに送ることが挙げられる。選択された出力はDATAINライン上のATEに入力される。この出力をATEメモリに記録された予測結果と比較し、DUT内に誤りがあるかどうかを判断する。
図2に、一実施形態に従う、一斉(simultaneous)あるいは同時(conncurrent)モードを含む構造試験の複数のモードから選択するように構成されたマルチコア集積回路の一実施形態を示す。簡素化のために、2つのコアだけを例示し、その他の機能は省略しているが、記載の実施形態は、任意の数のコアと様々な機能をサポートするハードウェアとを備えた集積回路の試験にまで拡張することができる。XOR機能220およびMUX機能230は、図1の試験モードセレクタの要素であってもよい。このモードセレクタは、以下に記載するように、MODESELECTラインの状態によって制御される。MODESELECTラインの状態は、ある実施形態では、DUTに含まれる試験ロジックのレジスタによって制御され、別の実施形態では、状態は、その他の試験回路あるいは入力により制御される。
試験のために、試験ベクトルは、ATEからSCANINラインを使用して、DUTのスキャンチェーンに読み出される。試験ベクトルの読み出しが終わると、MODESELECTラインの値により、試験が実行されるモードが決定される。例えば、MUX230がコア0かコア1のいずれかの出力を選択するように設定されていれば、非同時的あるいはシリアル試験モードが起動する。試験の実行中、システムクロック信号を含む1以上のクロック信号をロジックコアに適用し、選択されたコアに対する試験結果を、SCANOUTラインを介してスキャンチェーンの出力として利用してもよい。MUX230を制御するMODESELECT信号を用いて特定のコアに対するスキャンチェーンの出力を選択することで、そのコアに対する試験結果をATEに送ることができる。ATEは、出力された試験結果を各システムクロックサイクルにおいてATEに記録された予測結果と比較し、実際の結果と予測結果が違う場合にエラー状態を示す。1つのコアの試験が終了すると、MODESELECT信号に対して様々な値を有する試験ベクトルがDUTに入力される。モードセレクト信号の値を変更することで、別のコアの出力がATEに送られ、そのコアに関する試験結果を取得するために再試験される。
さらに、図2の実施形態では、1以上の同時あるいは一斉試験モードから選択することができる。同時試験モードでは、同一でもよい2以上のコア、あるいは、1つの試験ベクトルセットを使用して試験可能な2以上のコアを同じ入力試験ベクトルを用いて同時に試験することができる。XOR機能220の出力がMUX230を介してSCANOUTラインまで接続するようにMODESELECT信号を設定することによって、コア試験の同時モードを選択してもよい。このモードでは、非同時的モードと同様、試験ベクトルはSCANINラインを介してコアの各々のスキャンチェーンに読み出される。これらのコアにシステムクロックが適用されると、各コアに対して指定されたスキャンチェーンから試験結果が入手できるようになる。
両コアの試験結果がATEによって同時に評価されるようにするために、両コアのスキャンチェーンの出力は、XORあるいはその他の比較機能220に入力され、その出力がSCANOUTラインに送られる。実際には、このコンフィグレーションにより、コア0およびコア1からの試験結果がそれぞれに対して比較され、一致しない場合にエラー表示が出力される。この概念を、各コアの試験結果の出力を比較ロジックに送ることにより、2以上のコアを同時に試験することにまで拡張することができる。比較ロジックは、全ての入力が同じ場合には第1レベルを出力し、いずれの入力がいずれの他の入力と異なれば、別のレベルを出力する。しかし、この方法を使用すると、各コアが所与の試験に対して間違った結果を生成するといったコアフォールトコンディションが複製されてしまうおそれがある。
他の形態では、予測結果をレジスタに入力してもよく、この出力は、試験をサポートするためにチップに追加されたコンパレータに利用できる。試験の実行中、各コアからの試験結果はDUT内の予測結果と比較される。実際の結果と予測結果とが一致していればこの比較出力は低レベルのままにされ、一致しない場合に限り高レベルに切り替えられる。この結果比較出力は、ATEに対してSCANOUT信号を形成するようOR結合される。ATEは、SCANOUTラインが高レベルであれば、先の実施形態に関して記載したエイリアスすることなく、1以上のコアがエラーであると解釈する。
図3に、一実施形態に従いコアを試験し、その試験結果を時分割多重化する同時モードを含む、構造スキャン試験の複数のモードから選択するように構成されたマルチコア集積回路を例示する。簡素化のために、2つのコアだけを例示し、その他の機能は省略しているが、記載の実施形態は、任意の数のコアと様々な機能をサポートするハードウェアとを備えた集積回路の試験にまで広げることができる。MUX機能320および330は、図1の試験モードセレクタの要素であってもよい。
図3の実施形態では、MUX330を介してMUX320の選択入力にCORESELECT信号を送るようにモード選択ラインをセットすることによって、非同時的モードを選択してもよい。次に、コア選択信号の状態により、コア0あるいはコア1からの試験結果がSCANOUTに送られるかどうかが決定される。図2の実施形態のように、SCANOUTラインに送られた結果はATEに送信され、そこで解析されてエラー表示される。さらに、MUX330は、MUX320の選択入力に切替信号を送信してもよい。これにより、以下に詳述しているように、コア0および1からの出力がSCANOUTラインに時分割多重化される。
図4に、一斉あるいは同時モードで図3に具体化されたDUTを試験するためのフローチャートおよび方法を示す。ある実施形態では、試験データには、MODESELECT信号およびCORESELECT信号を出力するレジスタに対する値が含まれてもよい。このデータをDUTに入力するには試験モードを選択する(ブロック400)。両コアの試験を同時に行うことが望ましい場合、試験ベクトルに対するデータが、ATEからのデータクロック信号を使用してDUTのスキャンチェーンに記録され得る。MODESELECT信号は、MUX330を介してMUX320の選択入力にCLOCK信号を送るように設定される。これには、時分割多重(TDM)化同時 試験モードを選択してもよい。一実施形態では、CLOCKCTL信号は、ベクトルをコアの内外に記録するために使用されるATEによって生成されたデータクロック信号から派生したものであってもよい。別の実施形態では、CLOCKCTLは試験を実行するために使用されるシステムクロック信号から生じたものであってもよい。CLOCKCTL信号は、ATEによって生成され、DUTに入力されてもよい。
試験中、ATEによって生成されたシステムクロックの1以上のサイクルをコアに適用してもよく、またある実施形態では、DUT内のその他の機能に適用してもよい(ブロック420)。試験を実行する前にスキャンチェーンに記録された値をハードウェアによって操作してもよく、これにより生じる値を出力チェーンにラッチしてもよい。同時モードでは、コアは同一の入力データを同時に操作する。試験が終わると、試験結果はDUTの外部に記録され、また、解析のためにATEに記録される。TDM同時試験モードにおけるDUTの試験結果を受信する場合、ATEは期間モード(window mode)で動作される。期間モードでは、ATEはDUTからの入力を、ストローブ期間と呼ばれる、ある期間における予測結果値と比較し、この入力がストローブ期間の任意の時期の予測値と異なっていればエラー信号を生成する。ストローブ期間は、データクロックの各サイクルに一度発生し得る。
各データクロックサイクルにおいて、1以上のコアからのデータを比較するために、各コアからの試験結果をSCANOUTラインに時分割多重化してもよい(ブロック430)。立ち下がりエッジがストローブ期間の中間地点に、あるいは中間地点付近に生じるように、CLOCKCTL信号はATEデータクロック信号からもたらされる。これにより、第1のストローブ期間においてはコア0からの結果を、第2のストローブ期間においてはコア1からの結果をMUX320に出力させるようにする。SCANOUTラインの各々をATEの1つの入力チャネルに接続してもよい。各ATEチャネルに入力された、時分割多重化された結果データは、ATEメモリに記録された予測結果と比較される。所与のストローブ期間(CLOCKサイクル)において、コア0あるいはコア1からの結果が予測結果と同じでなければ、ATEは、コアの一方に誤りがあると判断する。他の実施形態では、3以上のコアからの結果は、ストローブ期間において時分割多重化される。
図5に、本発明の一実施形態に従う、いくつかの構造スキャン試験信号間の関係を例示したタイミング図を示す。CLOCK信号は、試験実行前におけるスキャンチェーンへの試験ベクトルの読み出し及びDUTポスト試験からの試験結果の読み出しを制御するためにATEにより生成されDUTに入力されるデータクロックであってもよい。CORE0SDOは、コア0スキャンチェーンにおける最終構造スキャンセルからの出力であってもよい。同様に、CORE1SDOは、コア1スキャンチェーンにおける最終構造スキャンセルからの出力であってもよい。これらの出力状態の変更は、CLOCK信号の立ち上がりエッジに一致し得るものであり、その後、短い設定時間が有効となる/安定する。ストローブ期間は、その立ち上がりエッジ前の各CLOCKサイクルにおいてのある期間は”オープン(open)”であってもよい。CLOCKCTLは、その立ち下がりエッジがストローブ期間中に発生するように、また、一実施形態では、好ましくはストローブ期間の中間地点において発生するように、CLOCK信号からもたらされる。この概念を、例えば、MUXDあるいはLSSD型のセルを含むスキャンチェーンに適用してもよい。
図3を再度参照すると、CLOCKCTLがMUX330を介してMUX320の選択入力に送られた状態で、コア0およびコア1のスキャンチェーンの出力は、CLOCKCTLのレベルに応じて、交互に、MUX320を介してSCANOUTに送られる。CLOCKCTL信号のエッジがストローブ期間内に発生している状態で、コア0およびコア1からの試験結果を、1つのストローブ期間内にATEに入力してもよい。これについては、図5のタイミング図の下方部に示す。連続するストローブ期間において、両コアのスキャンチェーンの出力はSCANOUT信号に存在する点に留意されたい。第1のストローブ期間において、コア0(A0)に対する試験セグメントの結果およびコア1(A1)に対する試験セグメントの結果をATEに入力し、第2ストローブ期間において、B0およびB1入力が存在する。同様に、第3ストローブ期間において、C0およびC1がATEに入力される。図3では、コア1に対する試験セグメントの結果がSCANOUTにおいて第1のストローブ期間における出力として示され、コア0に対する試験セグメントの結果が第2のストローブ期間の出力として示される。その他の実施形態では、この順序を逆にしてもよい。2以上のコアを有する実施形態では、ストローブ期間において、結果を時分割多重したその他の順序を使用してもよい。
各ストローブ期間において、チャネル上の値の各々が、試験のその部分の予測結果と比較される。SCANOUT入力とストローブ期間における任意の時点の予測試験結果とに違いが検出されれば、その特定の試験セグメントに関連づけられたエラー表示が生成され得る。両コアからの試験結果が、各CLOCKサイクルにおいて互いに比較されるのではなく、予測試験結果と比較されるので、両コアが同じやり方で同じ試験セグメントに失敗すると、エラー表示が生成される。これにより、コア試験結果が相互に比較される、先述した同時方法に関連するエラーエイリアスつまりエラーの複製を防ぐことができる。一実施形態では、ATEストローブ期間において、コアの試験結果をこのように時分割多重化することは、N個のコアの同時試験にまで拡張することができる。これは、各ストローブ期間中にN個のコアのスキャンチェーンからN個の出力を変更するように構成されたSCANOUTラインを供給する出力選択回路を配置することでなされる。
図6に、複数の同時モードを含む、構造スキャン試験の複数のモードから選択するように構成されたマルチコアICの実施形態を示す。この実施形態では、図2〜4に関して説明した試験モードを組み合わせるための実装される回路は、単一のマルチコアICである。図7に、本実施形態に従う、いくつかの構造スキャン試験モードから選択するための、図6の実施形態における試験モードセレクタ回路を構成するための方法のフローチャートを示す。
デシジョンブロック700において、MODESELECTが高レベルに設定されていれば、XORゲート520の出力は、MUX550を介してSCANOUTラインに送られる。このような構成では、図2に関して説明し、かつ、ブロック710によって示しているように、コア0およびコア1の試験を同時に行うことができる。コア0の試験結果がコア1の試験結果と異なる場合、SCANOUT信号は高レベルを取り得る。
MODESELECT1が低レベルに設定されている場合、MUX560の出力はMUX550を介してSCANOUTラインに送られる。図6に示しているように、MUX560の出力は、MUX570の出力に応じて、コア0ストリングあるいはコア1ストリングの最終スキャンセルからの入力であってよい。次にMUX570の出力は、図7のデシジョンブロック720に示しているように、MODESELECT0信号の状態に応じて決められる。MODESELECT0信号が低レベルであれば、MUX570に入力されたCLOCKCTL入力はMUX560の選択入力に送られる。先に詳述したように、CLOCKCTL信号は、コア0および1からの試験結果が時分割多重化されるよう、ATEから生成されたCLOCK信号からもたらされてもよい。両試験結果はMUX560の出力時に現れ、よって、ATEのストローブ期間periodにおいてSCANOUTラインに現れる。従って、両モード選択ラインが低い場合、同時の、時分割多重化したスキャン試験モードが選択される(ブロック730)。MODESELECT0信号が高レベルにある場合、非同時的あるいはシリアル試験モードが選択される。このモードでは、どれか一方のコアからの試験結果がSCANOUT信号線に送られる。再度図6を参照すると、CORESELECT信号はMUX570を介してMUX560の選択入力に送られる。この信号(which)は、SCANOUTとなるよう、MUX560および550を介して送信されるコア0あるいはコア1いずれかのスキャンチェーンからの出力を選択する。このような選択を、図7のデシジョンブロック740に示す。CORESELECT信号が低である場合、ICはシリアル試験モードでコア0を試験するように構成される(ブロック750)。同様に、CORESELECT信号が高である場合、ICはシリアル試験モードでコア1を試験するように構成される。図6に示すMUXのコントロールレベルは例示の実施形態とは異なり得る点に留意されたい。例えば、別の実施形態では、MODESELECT0に対する高レベルはTDMモードを選択してもよい。その他の等価のロジックを他の実施形態に用いてもよい。
図8に、任意のコアペアの同時TDM試験を含む構造スキャン試験の複数のモードから選択するように構成されたマルチコアICの一実施形態を示す。試験モード選択ロジックの各ステージは、任意の特定のステージからの出力が次のステージの1つの“コア”入力として機能した状態で、図3の実施形態と同じように機能し得る。例えば、コアn−1を含むステージの出力は、コアnを含むステージに対する第2の”コア入力”を供給し得る。図9に、任意のコアあるいはコアペアに対して、特定のシリアルあるいは同時TDM試験モードを起動させるために、CTおよびSe1ラインの所要の状態を示した真偽表を示す。CTラインは図3のMODESELECTラインに類似している。特定の試験モードの選択についての詳細を記述するために、以下にいくつかの例を示す。
コア1に対して非同時的あるいはシリアル試験モードを起動するために、各ステージのCTラインは低レベルに設定され、Sel信号を下位のマルチプレクサを介して上位のマルチプレクサの選択入力に送るようにする。これを図8に示す。これに対応して、図9の表1の第1行においては、全てのCT信号が0に設定されなければならないことを示す。最初のステージを除き、各ステージのSelラインは、そのステージ用のコアからの出力をブロックしてかつその前のステージからの出力を上流のマルチプレクサに流して最終的にはSCANOUTに流すように、lowにセットされる。図9の表の最初の行は、すべてのSel信号がこの試験モードで0にセットされなければいけないことを示す。コア1の出力は、ステージ1の上流のマルチプレクサの、より低い入力となることから、Sel_1もまたコア1からの試験結果をSCANOUTに流すようにlowにセットされる。したがって、図9の表の第1行は、コア1のシリアルバウンダリスキャン試験モードをアクティベートするために、すべての信号が0にセットされなければならないことを示す。
特定のコアjのためのシリアル試験モードをアクティベートすることが望まれる場合、CT_j-1(ラインは、コアjを含むステージの上流のマルチプレクサへとSel_j-1を流すように「low」にセットできる。Sel_j-1は、SCANOUTに流されるコアjの出力を選択するために「high」にセットされる。これは、図9の表において、後段用のCT列とSeI列とにおけるSeI_j-1およびOのための列内において「1」によって示される。前のステージからの出力が上流のマルチプレクサによって阻まれるので、それらのステージ用のセッティングCTおよびSelが”無視する”として、真理値表においてxとして表されている。
コアの特定の1つのペアのための同時TDM試験モードをアクティベートするために、Clock_ctl信号は、より高い番号が付けられたコアを含んむステージの上流のマルチプレクサの選択入力に流すことができる。例えば、コア2および6の試験が望まれた場合、Clock_ctl信号は、コア6を含んでいるステージの上流のマルチプレクサの選択入力に流される。これにより、より高い番号が付けられたコアの出力を、その前のステージからの出力と時分割多重化することが可能となる。これは、図9の表において、より高い番号が付けられたコアのCTラインに対応する列の「1」として示される。
さらに、より低い番号が付けられたコアの出力は、より高い番号が付けられたコアのステージの入力に流されなければならない。これは、その対応するSelラインを「high」として、より低い番号が付けられたコアを含むステージの上流側マルチプレクサの選択入力に流すことでなされる。これは、図9の表において、より低い低い番号が付けられたコアのSelラインに対応する列で「1」として示される。ただし、コア1はその例外であり、その対応するSelラインは「low」にセットして良い。前述の例と同様に、より低い番号が付けられたコアを含むステージの前のステージからの出力はブロックされ、従って、これらのステージ用のCTおよびSelの設定は、真偽表においてxとして示される「無視」として表すことができる。
他の実施形態では、図8及び9に示されるように、同時試験のためにコアのいずれかのペアを選択する代わりに、試験モードセレクターが、2つを超えるコアを同時に試験するTDMモードで作動してもよい。図1OAは、一致回路の一実施形態を示し、この一致回路は、コアのうちの1つの結果を、ICに含まれる他の各コアの結果と比較するために用いることができる。この一致回路(En_XOR)の出力は、すべてのコアが一致している場合には、第1コアの出力と同じとなり、他のコアの一つ以上の出力が第1コアの出力異なる場合には、第1コアの出力とは逆の値をとる。
例示的な実施形態においては4つのコアのみが示されているが、(En_XOR)回路は、いずれのコア数に対しても動作するよう容易に拡張することができる。このような形態の一例において、試験モードセレクタは、ストローブ期間の第1部位において、コアのうちの一つ(“第1”コア)の出力結果を出力するように設計される。ストローブ期間の別の部位中において、試験モードセレクターは、残りの各コアからの結果と上述のストローブ期間の第1部位中において出力されたコアの出力結果との比較により、その結果を出力する。
例えば、各追加されたコアからの結果は、第1コアからの結果と個別にXOR結合することができ、その結果は、いずれかのコアの結果が一致しない場合に、第1コアの出力を補足するように用いられる。これは、図10Aを用いて詳述されるように、En_XORブロックによって遂行されてもよい。他のコアのうちのいずれかが第1コアと一致しない場合、ストローブ期間の第2の部位中に、第1コア結果の反転値が出力され、これにより、ATEに不良(failure)を知らせることになる。この試験モードにより、ストローブ期間幅が、二つの結果セットのTDMにのみ十分であるに過ぎない場合でも、二つより多数のコアを同時に試験することが可能となる。
いくつかの実施形態では、ATEは、第1コアの結果を予期された結果と比較してもよい。この比較では、コアがすべて同じように不良となる場合により生じるエラーとともに、コアのいずれかにおける不良の結果としてのエラーをも検出できる。第1コア以外のコアが不良となった場合、どのコアで不良を引き起こしたかを判定するために、(図8に示されるように)各コアのペアに対する試験を繰り返すことで更なる選択性を得ることができる。
図1OBは、(図10Aに示されるように)すべてのコアが同時に試験されるか、又は(図8に締めさえるように)コアのうち選択された一つのペアが同時に試験されるモードを含む構造スキャン試験の複数のモードのうちから選択するように構成されたマルチコアICの一実施形態を示す。図11は、一実施形態にかかる、試験モードを選択し、構造のスキャン試験の複数のモード間から選択を行うように構成されたマルチコアICを試験する方法のフローチャートである。ブロック1000で、テストベクトル及び/又はATEが、所望の試験モードのために構成される。例えば、試験結果出力の多重化をコントロールするスキャンチェーン要素に対する値がセットされる。
他の実施形態では、試験結果の多重化を直接制御するために、ATEによって生成された信号がセットされる。ブロック1010に示されるように、適切に形成されたテストベクトルが、DUTのコアのスキャンチェーン内で計測され得る。テストベクトルがロードされた後に、ブロック1020に示されるように、テストを実行するために1つ以上のシステムクロックサイクルがDUTに適用されてもよい。決定ブロック1030では、TDM同時試験モードが選択されている場合、ブロック1040に示されるように、DUTの各コアからの各SCANOUTラインからの試験結果の1ビットが、ブロック1040に示されるように、ATEウィンドウストローブモードを用いて、予測された結果との比較のためにデータクロックの各サイクル中にATEに送られる。
決定ブロック1030において、同時モードが選択されていると決定された場合、ブロック1050に示されるように、データクロックの各サイクル中において、コアからの各SCANOUTラインからの結果同士の比較における1ビットがATEに送られる。この場合、ATEにおける比較はノーマルモードに実行されてもよい。決定ブロック1030において、非同時モードが選択されていると決定された場合、ブロック1060に示されるように、データクロックの各サイクル中において、試験された特定のコアからの各SCANOUTラインからの結果同士の比較における1ビットがATEに送られる。この場合、その結果が、試験される最後のコアからの結果であるか否かを判断するために、決定ブロック1070でチェックがなされる。最後のコアからの結果ではない場合、DUTの試験される次のコアに対して試験手順が繰り返される。
図12は、バスブリッジ1102を通じて種々のシステムコンポーネントに接続されたマイクロプロセッサー1150を備えた計算機装置1100の一実施形態のブロック図である。マイクロプロセッサー1150はマルチコアマイクロプロセッサーでもよく、上述したような試験モードセレクターが実装されていてもよい。コンピュータシステムを他の実施形態とすることも可能であり、考慮の対象とされる。図示されたシステムでは、主記憶1104はメモリーバス1106によってバスブリッジ1102に結合される。また、グラフィックスコントローラ1108はAGPバス1110によってバスブリッジ1102に結合される。いくつかのPCIデバイス1112A−1112Bが、PCIバス1114を通じてバスブリッジ1102に結合されている。1つ以上のEISAあるいはISAデバイス1118にEISA/ISAバス1120を通じて電気的なインターフェースを適応させるために、第2バスブリッジ1116をも設けるようにすることができる。この例において、マイクロプロセッサ1150は、CPUバス1124を通じてバスブリッジ1102に結合され、オプショナルL2キャッシュ1128に結合される。実施形態によっては、マイクロプロセッサ100は、一体化されたL1キャッシュを有してもよい(図示せず)。
バスブリッジ1102は、マイクロプロセッサ1150、とメインメモリ1104、グラフィックスコントローラ1108、およびPCIバス1114に接続されたデバイスの間のインターフェースを提供する。バスブリッジ1102に接続されたデバイスのうちの1つからオペレーションが受け取られた場合、バスブリッジ1102はオペレーションのターゲット(例えば、特定のデバイスであり、PCIバス1114の場合には、ターゲットはPCIバス1114上にある)を識別する。バスブリッジ1102は、ターゲットとされたデバイスへとオペレーションを送る。バスブリッジ1102は、転送元装置またはバスで使用されるプロトコルからのオペレーションを、ターゲット又はバスで使用されるプロトコルに翻訳する。実施形態によっては、バスブリッジ1102はマイクロプロセッサ1150に統合されてもよい。
PCIバス1114のためのISA/EISAバスへのインターフェースの提供に加えて、第2のバスブリッジ1116が更なる機能性を有するようにしてもよい。更にキーボード及びマウス1122、並びに種々のシリアルポートやパラレルポートの動作をサポートするために、コンピュータシステムに、外部からのI/Oコントローラあるいは第2のバスブリッジ1116に統合されたI/Oコントローラ(図示せず)を設けても良い。
他の実施形態においては、マイクロプロセッサ1150とバスブリッジ1102の間のCPUバス11211に外部キャッシュユニット(図示せず)を結合してもよい。これに代えて外部キャッシュは、バスブリッジ1102に結合してもよく、また、外部キャッシュ用のキャッシュ制御ロジックをバスブリッジ1102に一体化してもよい。L2キャッシュ1128はマイクロプロセッサ1150の裏面側構造(バックサイドコンフィグレーション)として示される。L2キャッシュ1128は、マイクロプロセッサ1150と分離することも、あるいはマイクロプロセッサを備えたカートリッジ(例えばスロット1あるいはスロットA)に統合することもでき、あるいは、マイクロプロセッサを備えた半導体基板上に一体化することすらできる。
メインメモリ1104には、アプリケーションプログラムが格納されるとともに、メモリからマイクロプロセッサ1150が主として実行を行う。適切なメインメモリ1104としては、DRAM(Dynamic Random Access Memory)が挙げられる。例えば、SDRAM(シンクロナスDRAM)又はRambus DRAM(RDRAM)の複数のバンクが適切であろう。
PCIデバイス1112A−1112Bは、LAN接続カード、ビデオアクセラレータ、音声カード、ハードディスクあるいはフロッピーディスク・ドライブ、ドライブ又はドライブコントローラ、SCSI(Small Computer Systems Interface)アダプターおよび電話カードのような様々な周辺機器を表す。同様に、ISAデバイス1118は、モデム、サウンドカード、およびGPIBまたはフィールドバスインタフェースカード等のデータ取得カードのような、様々なタイプの周辺機器のを表す。
グラフィックスコントローラ1108は、ディスプレイ1126上のテキストおよびイメージのレンダリングをコントロールするために提供される。
グラフィックスコントローラ1108は、従来一般的に知られている、三次元デジタルデータ構造の描画を行う典型的なグラフィックアクセラレータを実現するものであり、この3次元デジタルデータ構造は、効率的に、メインメモリ1104への移動及びメインメモリ1104からの移動が行われる。したがって、グラフィックスコントローラ1108は、バスブリッジ1102内のターゲットインターフェースへとアクセスをリクエスト及び受信してこれによりメインメモリ1104へのアクセスを得ることから、GPバス1110のマスターともなり得る。
専用のグラフィックスバスにより、メインメモリ1104からの迅速なデータ受信を行うことができる。あるオペレーションにおいては、グラフィックスコントローラ1108は、更に、AGPバス1110の上のPCIプロトコルトランザクションを生成するように構成することもできる。従って、バスブリッジ1102のAGPインターフェースは、PCIプロトコルターゲットおよびイニシエータートランザクションとAGPプロトコルトランザクションとの双方をもサポートするするための機能有しても良い。ディスプレイ1126は、イメージかテキストを表示可能である、あらゆる電子表示装置としてよい。適切なディスプレイ1126としては、陰極線管(CRT)、液晶ディスプレー(LCD)等が挙げられる。
AGP、PCIおよびISAまたはEISAのバスを一例として記載したが、所望に応じて、いずれのバスアーキテクチャ方式により置換することも可能である。コンピュータシステム1100は、追加のマイクロプロセッサ(例えば、コンピュータシステム1100のオプショナルコンポーネントとして示されたマイクロプロセッサ1150a)を含む、マルチプロセッシングコンピュータシステムとすることもできる。マイクロプロセッサ1150aはマイクロプロセッサ1150と同様のものとしてもよい。より特定的には、マイクロプロセッサ1150aは、一実施形態中におけるマイクロプロセッサ1150の同一のものとしてもよい。マイクロプロセッサ1150aは独立したバスを通じてバスブリッジ1102に接続されても良く、あるいは、マイクロプロセッサ1150とCPUバス1124を共有してもよい。更に、マイクロプロセッサ100aに、L2キャッシュ1128と同様のオプションのL2キャッシュ1128aに結合してもよい。
図13においては、上述した試験モードセレクターを実装可能なコンピュータシステムの別の実施形態が示される。他の実施形態も可能であり、考慮の対象とされ得る。一実施形態において、コンピュータシステムはいくつかのプロセスノード1212A、1212B、1212Cおよび1212Dを含んでいる。各プロセスノードは、マルチコアマイクロプロセッサあるいは他のマルチコアデバイスとしても良く、上述したような試験モードセレクターを含んでもよい。各プロセスノードは、それぞれのプロセスノード1212A−1212D内に含まれたメモリコントローラ12112A−12112Dを通じて、それぞれのメモリ1214A−1214Dに結合されている。
さらに、プロセスノード1212A−1212Dは、プロセスノード1212A−1212Dの間の通信に用いられるインタフェースロジックを含んでいる。例えば、プロセスノード1212Aは、プロセスノード1218Bと通信するためのインターフェースロジック1218A、プロセスノード1218Cと通信するためのインターフェースロジック1218B、更に他のプロセスノード(図示せず)と通信するためのインターフェースロジック1218Cを備える。同様に、プロセスノード1212Bは、インタフェースロジック1218D、1218Eおよび1218Fを有し、プロセスノード1212Cはインタフェースロジック1218G、1218Hおよび12181を含み、また、プロセスノード1212Dはインタフェースロジック1218J、1218Kおよび1218Lを含んでいる。
プロセスノード1212Dは、インタフェースロジック1218Lを通じて、複数のI/Oデバイス(例えばデイジーチェーン構成のデバイス1220A−1220B)と通信するよう結合される。他のプロセスノードも、同様の方法で他の入出力デバイスと通信を行うことができる。[0050][0066]プロセスノード1212A−1212Dは、プロセスノード間通信のためのパケットベースのリンクを実装する。この実施形態では、リンクは、一方向のライン(例えばライン1224Aはプロセスノード1212Aからプロセスノード1212Bにパケットを送信するために使用され、ライン1224Bはプロセスノード1212Bからプロセスノード1212Aにパケットを送信するために使用される)のセットとして実装される。1224C―1224Hの他のセットは、図13において示されるように、他のプロセスノード間のパケットを送信するために使用される。
一般に、ライン1224の各セットは、1つ以上のデータ線、このデータ線に対応する1つ以上のクロックライン、および運ばれるパケットのタイプを示す1つ以上の制御線を含んでも良い。リンクは、プロセスノード間の通信をキャッシュコヒーレントな手法によりオペレートするか、又はプロセスノードと入出力デバイス(あるいはPCIバス又はISAバスのような従来構造のI/Oバスへのバスブリッジ)との間の通信を非コヒーレントな手法でオペレートすることができる。更に、リンクは、図示されるようなI/Oデバイス間のデージーチェーン構造を使用して、非コヒーレントに動作されてもよい。
あるプロセスノードから別のプロセスノードに送信されるパケットは、1つ以上の中間節点を通じて渡してもよいことが注目される。例えば、プロセスノード1212Aによってプロセスノード1212Dに送信されたパケットは、プロセスノード1212Bあるいはプロセスノード1212Cのいずれかを通過する。適切なルーティングアルゴリズムであればいずれもも使用してよい。コンピュータシステムの他の実施形態として、図13に示される実施形態よりもプロセスノードが多数又は少数含まれるようにしても良い。
一般に、パケットは、ノード間のライン1224上で1又はそれ以上のビットタイミングで送信可能である。
ビットタイミングは、対応するクロックライン上のクロック信号の立ち上がりエッジ又は立下がりエッジとすることができる。パケットは、トランザクションを開始するためのコマンドパケット、キャッシュコヒーレンシーを維持するためのプローブパケットおよびプローブ及びコマンドに応答するための応答パケット含んでいてもよい。
プロセスノード1212A−1212Dは、メモリコントローラとインタフェースロジックに加えて、1つ以上のマイクロプロセッサを含んでいてもよい。概略的には、プロセスノードは少なくとも1つのマイクロプロセッサを含んでおり、メモリおよび所望の他のロジックと通信するためのメモリコントローラを任意に含んでもよい。更に特定的には、プロセスノード1212A−1212Dはそれぞれ、マイクロプロセッサ1150と同じものを1つ以上含んでいてもよい。外部インタフェースユニットは、メモリコントローラ1216と同様にノード内のインタフェースロジック1218を含んでいてもよい。
メモリ1214A−1214Dは適切なメモリ・デバイスのいずれを含んでいてもよい。例えば、メモリ1214A−1214Dは、1つ以上のRAMBUS DRAM(RDRAM)、シンクロナスDRAM(SDRAM)、スタティックRAMなどを含んでいてもよい。コンピュータシステム400のアドレス空間は、メモリ1214A−1214D内で分割される。プロセスノード1212A−1212Dは、それぞれ、どのアドレスがどのメモリ1214A−1214Dにマッピングされるかを決定するために、従って、どのプロセスノード1212A−1212Dに対して特定のアドレスに対するメモリリクエストがルーティングされるかを決定するために、使用されるメモリマップを有するようにしても良い。
一実施形態では、コンピュータシステム内のアドレスに対するコヒーレンシーポイントは、このアドレスに対応するバイトを格納するメモリに結合されたメモリコントローラ1216A−1216Dである。言いかえれば、メモリコントローラ1216A−1216Dは、対応するメモリ1214A−1214Dへのメモリアクセスがそれぞれキャッシュコヒーレントな手法でに生じることを保証するものである。メモリコントローラ1216A−1216Dは、メモリ1214A−1214Dとのインターフェースとなる制御回路を含んでいてもよい。さらに、メモリコントローラ1216A−1216Dは、メモリーリクエストを要求するためのリクエストキューを含んでいてもよい。
インタフェースロジック1218A−1218Lは、リンクからパケットを受け取るために、およびリンクで送信されるパケットのバッファーのために、様々なバッファーを含むことができる。コンピュータシステムは、パケットを送信するために適切なフロー調節機構のいずれをも使用してよい。例えば、一実施形態では、インタフェースロジック1218は、それぞれ、そのインタフェースロジックが接続されるリンクの他方端にあるレシーバー内の各タイプのバッファ数のカウントを記録する。インタフェースロジックがパケットを格納するための使用可能バッファを持つようになるまでは、インタフェースロジックはパケットを送信しない。パケット送信することで受信バッファが解放されると、受信インタフェースロジックは、バッファーが解放されたことを示すメッセージをインタフェースロジックに送信する。このようなメカニズムは、「クーポンベース」システムと称される。
I/Oデバイス1220A−1220Bは、任意の適切な入出力デバイスとすることができる。例えば、I/Oデバイス1220A−1220Bは、このI/Oデバイスが結合される他のコンピュータシステムと通信するためのデバイス(例えばLanカードあるいはモデム)を含むようにしてもよい。更に、I/Oデバイス1220A−1220Bはビデオアクセラレータ、音声カード、ハードディスクあるいはフロッピーディスク・ドライブ又はドライブコントローラ、SCSI(Small Computer Systems Interface)アダプターおよび電話カード、サウンドカード、及び、GPIBあるいはフィールドバスインターフェースカードのような様々なデータ取得カードを備えてもよい。用語「I/Oデバイス」および用語「周辺機器」が、ここでは同意語になるように意図して用いられている。
ここに使用されるように、「クロックサイクル」、「サイクル」という用語は、命令処理パイプラインの種々のステージがそのタスクを完了する時間のことを指している。命令と算出値は、クロックサイクルを定義するクロック信号によって、メモリーエレメント(例えばレジスタ又はアレイ)によってキャプチャーされる。例えば、メモリーエレメントは、クロック信号の立ち上がりエッジ又は立ち下がりエッジによって上述の値をキャプチャーしてもよい。
当業者であれば、上記の開示内容を完全に理解すれば、種々の変形及び修正が可能であることは明白であろう。添付した請求項は、このような変形及び修正を全て含むものとして解釈されるべきものである。以上、構造試験の内容について記述を行ったが、開示された発明に係る装置及び技術は、機能試験又はBISTのような、他の同時試験の形態で適用することも可能である。
発明は、集積回路試験に対して一般的に適用可能である。
一実施形態によるマルチプルロジックコアを含む集積回路の試験システム。 一実施形態による一斉あるいは同時モードを含む構造試験の複数のモードから選択するように構成されたマルチコアICの一実施形態。 一実施形態によるコアを試験し、その試験結果を時分割多重化する同時モードを含む構造スキャン試験の複数のモードから選択するように構成されたマルチコアICの別の実施形態。 一実施形態による一斉あるいは同時モードで図3において具体化されたDUTを試験するための方法のフローチャート。 一実施形態によるいくつかの構造スキャン試験信号間の関係を示したタイミング図。 複数の同時モードを含む構造スキャン試験の複数のモードから選択するように構成されたマルチコアICの一実施形態。 一実施形態によるいくつかの構造スキャン試験モードから選択するために、図6の実施形態の試験モードセレクタ回路を構成するための方法のフローチャート。 任意のペアのコアの同時 TDM試験を含む構造スキャン試験の複数のモードから選択するように構成されたマルチコアICの一実施形態。 任意のコアあるいはコアペアに対して特定のシリアルあるいは同時TDM試験モードを起動するために、図8に例示した実施形態のコントロールラインの所要の状態を示した真偽表。 ATEのストローブ期間に2以上のコアを同時に試験する同時TDM試験を含む構造スキャン試験のモードを構成するよう構成されたマルチコアICの一実施形態。 任意のコアペアの同時TDM試験あるいはATEストローブ期間中に2以上のコアの同時TDM試験を含む構造スキャン試験の複数のモードから選択するように構成されたマルチコアICの一実施形態。 一実施形態による試験モードを選択する方法および構造スキャン試験の複数のモードから選択するように構成されたマルチコアICを試験する方法を示したフローチャート。 一実施形態による、含まれるコアを同時に試験するように構成された複数のロジックコアを含む集積回路を含む例示的コンピュータシステムの一実施形態のブロック図。 別の実施形態による、含まれるコアを同時に試験するように構成された複数のロジックコアを含む集積回路を含む例示的コンピュータシステムの一実施形態のブロック図。

Claims (10)

  1. 集積回路であって、
    複数のロジックコアと、
    前記複数のロジックコアに結合されたスキャン試験ハードウェアと、を有し、
    前記スキャン試験ハードウェアは、
    前記複数のロジックコアに入力スキャン試験データを入力し、
    前記複数のロジックコアに対して同時にスキャン試験を行い、
    前記複数のロジックコアからのスキャン試験結果を自動試験装置(ATE)に同時に出力し、
    スキャン試験結果を出力するために、前記スキャン試験ハードウェアは、前記複数のロジックコアのそれぞれからの前記スキャン試験結果データの要素が、前記ATEのストローブ期間中において前記ATEへの入力チャンネル上に存在するように、前記スキャン試験結果を時分割多重化するよう構成されている、集積回路。
  2. 請求項1記載の集積回路であって、前記複数のロジックコア及び前記スキャン試験ハードウェアとは異なる1つ以上のハードウェア機能を更に有する、集積回路。
  3. 請求項2記載の集積回路であって、前記1つ以上のハードウェア機能には、通信コントローラ及び/又はメモリコントローラが含まれ、前記各ロジックコアは、プロセッサコアである、集積回路。
  4. 請求項2記載の集積回路であって、前記スキャン試験ハードウェアは、前記1つ以上のハードウェア機能及び前記複数のロジックコアを同時に試験するよう構成されている、集積回路。
  5. 請求項2記載の集積回路において、前記スキャン試験ハードウェアは、前記1つ以上のハードウェア機能の試験が、前記複数のロジックコアからのスキャン試験結果データによる影響を受けないように構成されている、集積回路。
  6. 単一の集積回路内に含まれる複数のロジックコアに対してスキャン試験データを入力し、
    スキャン試験を複数のロジックコアに対して同時に実行し、
    前記複数のロジックコアからのスキャン試験結果データを前記自動試験装置(ATE)に同時に出力し、
    前記出力では、前記複数のロジックコアのそれぞれからの前記スキャン試験結果データの要素が、前記ATEのストローブ期間中において前記ATEへの入力チャンネル上に存在するように、前記スキャン試験結果を時分割多重化する、方法。
  7. 請求項6記載の方法であって、前記集積回路は、更に、前記複数のロジックコアとは異なる1つ以上のハードウェア機能を有し、前記1つ以上のハードウェア機能には、通信コントローラ及び/又はメモリコントローラが含まれ、前記各ロジックコアは、プロセッサコアである、方法。
  8. 請求項6記載の方法であって、前記集積回路は、更に、前記複数のロジックコアとは異なる1つ以上のハードウェア機能を有し、前記1つ以上のハードウェア機能と前記複数のロジックコアとを同時に試験する、方法。
  9. 請求項6記載の方法であって、前記集積回路は、更に、前記複数のロジックコアとは異なる1つ以上のハードウェア機能を有して、前記1つ以上のハードウェア機能の試験が前記複数のロジックコアからのスキャン試験結果データによる影響を受けないようにする、方法。
  10. 試験システムであって、
    自動試験装置(ATE)と、
    前記ATEに結合された試験されるデバイス(DUT)と、請求項1〜5のいずれかに記載された集積回路とを有する試験システム。
JP2008503093A 2005-03-22 2006-03-21 マルチコア集積回路における同時コア試験 Active JP5723515B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/086,924 2005-03-22
US11/086,924 US7685487B1 (en) 2005-03-22 2005-03-22 Simultaneous core testing in multi-core integrated circuits
PCT/US2006/010233 WO2006102325A1 (en) 2005-03-22 2006-03-21 Simultaneous core testing in multi-core integrated circuits

Publications (2)

Publication Number Publication Date
JP2008534928A true JP2008534928A (ja) 2008-08-28
JP5723515B2 JP5723515B2 (ja) 2015-05-27

Family

ID=36608659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008503093A Active JP5723515B2 (ja) 2005-03-22 2006-03-21 マルチコア集積回路における同時コア試験

Country Status (8)

Country Link
US (1) US7685487B1 (ja)
EP (1) EP1872146B1 (ja)
JP (1) JP5723515B2 (ja)
KR (1) KR101256976B1 (ja)
CN (1) CN101147077B (ja)
DE (1) DE602006003201D1 (ja)
TW (1) TWI407122B (ja)
WO (1) WO2006102325A1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853850B2 (en) * 2007-02-01 2010-12-14 Raytheon Company Testing hardware components to detect hardware failures
JP5095273B2 (ja) * 2007-06-22 2012-12-12 株式会社東芝 制御装置
CN100568008C (zh) * 2007-12-26 2009-12-09 中国科学院计算技术研究所 一种片上多核处理器的测试电路及其可测试性设计方法
US8103924B2 (en) * 2008-01-29 2012-01-24 Globalfoundries Inc. Test access mechanism for multi-core processor or other integrated circuit
US8214703B2 (en) * 2009-03-10 2012-07-03 Oracle America, Inc. Testing multi-core processors
US9164859B2 (en) 2009-09-25 2015-10-20 Qualcomm Incorporated Computing device for enabling concurrent testing
CN102200565B (zh) * 2010-03-23 2015-08-12 重庆重邮信科通信技术有限公司 一种芯片测试装置
US8694845B2 (en) * 2010-04-25 2014-04-08 Ssu-Pin Ma Methods and systems for testing electronic circuits
CN103109275B (zh) * 2010-09-07 2016-02-03 爱德万测试公司 在半导体测试环境中使用虚拟仪器的系统、方法和设备
US9336105B2 (en) 2010-09-30 2016-05-10 International Business Machines Corporation Evaluation of multiple input signature register results
JP5900061B2 (ja) * 2012-03-19 2016-04-06 富士通株式会社 試験方法、試験装置及びプログラム
US9262292B2 (en) * 2012-06-11 2016-02-16 New York University Test access system, method and computer-accessible medium for chips with spare identical cores
KR101457557B1 (ko) 2013-01-18 2014-11-04 연세대학교 산학협력단 멀티코어 장치, 테스트 장치 및 고장 진단 방법
US9274911B2 (en) 2013-02-21 2016-03-01 Advantest Corporation Using shared pins in a concurrent test execution environment
US9274172B2 (en) 2013-10-17 2016-03-01 International Business Machines Corporation Selective test pattern processor
US9355061B2 (en) 2014-01-28 2016-05-31 Arm Limited Data processing apparatus and method for performing scan operations
JP6328974B2 (ja) * 2014-03-28 2018-05-23 株式会社メガチップス 半導体装置及び半導体装置の設計手法
TWI530702B (zh) * 2014-12-17 2016-04-21 力晶科技股份有限公司 晶片可靠度的測試板及其測試系統
US20170184665A1 (en) * 2015-12-28 2017-06-29 Qualcomm Incorporated Dynamically configurable shared scan clock channel architecture
KR20180113113A (ko) * 2017-04-05 2018-10-15 에스케이하이닉스 주식회사 테스트 패드를 구비한 반도체 집적 회로 장치
TWI655548B (zh) * 2017-10-13 2019-04-01 技嘉科技股份有限公司 介面優先排程及解決衝突之控制電路及介面優先排程及解決衝突之操作方法
US10352998B2 (en) * 2017-10-17 2019-07-16 Microchip Technology Incorporated Multi-processor core device with MBIST
US10628275B2 (en) * 2018-03-07 2020-04-21 Nxp B.V. Runtime software-based self-test with mutual inter-core checking
US11555856B2 (en) 2018-09-28 2023-01-17 Celerint, Llc Method for in situ functionality testing of switches and contacts in semiconductor interface hardware
US11067623B2 (en) * 2019-05-19 2021-07-20 Test Research, Inc. Test system and method of operating the same
US11048603B2 (en) 2019-05-22 2021-06-29 International Business Machines Corporation Critical path failure analysis using hardware instruction injection
JP7150676B2 (ja) 2019-09-02 2022-10-11 株式会社東芝 半導体集積回路及びそのテスト方法
CN111766505B (zh) * 2020-06-30 2023-04-25 山东云海国创云计算装备产业创新中心有限公司 一种集成电路的扫描测试装置
TWI760157B (zh) * 2021-03-24 2022-04-01 德律科技股份有限公司 多核並行測試單一待測物的系統及方法
CN113203940B (zh) * 2021-04-29 2023-06-20 桂林电子科技大学 3D NoC测试规划中的并行测试方法
CN116400202B (zh) * 2023-06-07 2023-09-01 中国汽车技术研究中心有限公司 一种芯片逻辑功能交叉验证测试方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001195894A (ja) * 2000-01-14 2001-07-19 Sharp Corp 外付け半導体メモリ試験装置
JP2003098225A (ja) * 2001-09-25 2003-04-03 Toshiba Corp 半導体集積回路
JP2004054892A (ja) * 2002-07-23 2004-02-19 Samsung Electronics Co Ltd 単一チップシステム及びこのシステムのテスト/デバッグ方法
US6815973B1 (en) * 2003-06-13 2004-11-09 Xilinx, Inc. Optical testing port and wafer level testing without probe cards
JP2004347537A (ja) * 2003-05-23 2004-12-09 Matsushita Electric Ind Co Ltd 半導体集積回路

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3610095B2 (ja) * 1993-07-30 2005-01-12 テキサス インスツルメンツ インコーポレイテツド 電気回路のストリームライン化(Streamlined)された同時試験方法と装置
US5592493A (en) * 1994-09-13 1997-01-07 Motorola Inc. Serial scan chain architecture for a data processing system and method of operation
US5574692A (en) * 1995-06-07 1996-11-12 Lsi Logic Corporation Memory testing apparatus for microelectronic integrated circuit
US6324662B1 (en) * 1996-08-30 2001-11-27 Texas Instruments Incorporated TAP and linking module for scan access of multiple cores with IEEE 1149.1 test access ports
JPH10283777A (ja) * 1997-04-04 1998-10-23 Mitsubishi Electric Corp Sdramコアと論理回路を単一チップ上に混載した半導体集積回路装置およびsdramコアのテスト方法
US6560734B1 (en) * 1998-06-19 2003-05-06 Texas Instruments Incorporated IC with addressable test port
US6446230B1 (en) * 1998-09-14 2002-09-03 Cisco Technology, Inc. Mechanism for enabling compliance with the IEEE standard 1149.1 for boundary-scan designs and tests
US6249893B1 (en) * 1998-10-30 2001-06-19 Advantest Corp. Method and structure for testing embedded cores based system-on-a-chip
US6430718B1 (en) * 1999-08-30 2002-08-06 Cypress Semiconductor Corp. Architecture, circuitry and method for testing one or more integrated circuits and/or receiving test information therefrom
US6886121B2 (en) * 2000-01-18 2005-04-26 Cadence Design Systems, Inc. Hierarchical test circuit structure for chips with multiple circuit blocks
US6594802B1 (en) * 2000-03-23 2003-07-15 Intellitech Corporation Method and apparatus for providing optimized access to circuits for debug, programming, and test
US7003707B2 (en) * 2000-04-28 2006-02-21 Texas Instruments Incorporated IC tap/scan test port access with tap lock circuitry
US6686759B1 (en) 2000-11-28 2004-02-03 Cadence Design Systems, Inc. Techniques for testing embedded cores in multi-core integrated circuit designs
US7219284B2 (en) * 2000-12-01 2007-05-15 Texas Instruments Incorporated Decode logic selecting IC scan path parts
EP1370881A2 (en) * 2001-03-08 2003-12-17 Koninklijke Philips Electronics N.V. Method for testing an electronic device
US20030005380A1 (en) * 2001-06-29 2003-01-02 Nguyen Hang T. Method and apparatus for testing multi-core processors
KR100413763B1 (ko) 2001-07-13 2003-12-31 삼성전자주식회사 탭드 코아 선택회로를 구비하는 반도체 집적회로
JP2003223798A (ja) * 2002-01-25 2003-08-08 Mitsubishi Electric Corp テスト容易化回路
US7512851B2 (en) * 2003-08-01 2009-03-31 Syntest Technologies, Inc. Method and apparatus for shifting at-speed scan patterns in a scan-based integrated circuit
US7254760B2 (en) * 2004-10-05 2007-08-07 Verigy (Singapore) Pte. Ltd. Methods and apparatus for providing scan patterns to an electronic device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001195894A (ja) * 2000-01-14 2001-07-19 Sharp Corp 外付け半導体メモリ試験装置
JP2003098225A (ja) * 2001-09-25 2003-04-03 Toshiba Corp 半導体集積回路
JP2004054892A (ja) * 2002-07-23 2004-02-19 Samsung Electronics Co Ltd 単一チップシステム及びこのシステムのテスト/デバッグ方法
JP2004347537A (ja) * 2003-05-23 2004-12-09 Matsushita Electric Ind Co Ltd 半導体集積回路
US6815973B1 (en) * 2003-06-13 2004-11-09 Xilinx, Inc. Optical testing port and wafer level testing without probe cards

Also Published As

Publication number Publication date
WO2006102325A1 (en) 2006-09-28
TW200643441A (en) 2006-12-16
DE602006003201D1 (de) 2008-11-27
US7685487B1 (en) 2010-03-23
EP1872146B1 (en) 2008-10-15
KR20070121011A (ko) 2007-12-26
JP5723515B2 (ja) 2015-05-27
CN101147077B (zh) 2010-09-29
TWI407122B (zh) 2013-09-01
KR101256976B1 (ko) 2013-04-19
EP1872146A1 (en) 2008-01-02
CN101147077A (zh) 2008-03-19

Similar Documents

Publication Publication Date Title
JP5723515B2 (ja) マルチコア集積回路における同時コア試験
JP5373403B2 (ja) データ処理システムを試験するための方法および装置
US7313739B2 (en) Method and apparatus for testing embedded cores
US20170115338A1 (en) Test partition external input/output interface control
US7155370B2 (en) Reusable, built-in self-test methodology for computer systems
US6308290B1 (en) Look ahead scan chain diagnostic method
US7870448B2 (en) In system diagnostics through scan matrix
US7702980B2 (en) Scan-load-based dynamic scan configuration
US4688222A (en) Built-in parallel testing circuit for use in a processor
JPH06342040A (ja) 超lsi回路用のオン・チップ自己検査配列及び超lsiメモリ回路用のビルトイン(オン・チップ)自己検査装置
EP1183544A4 (en) APPARATUS AND METHOD FOR IMPLEMENTING A WIRELESS SYSTEM ON A CHIP USING A VERIFICATION DEVICE, DEBUGER, AND BUS MONITOR
US7047458B2 (en) Testing methodology and apparatus for interconnects
US7844867B1 (en) Combined processor access and built in self test in hierarchical memory systems
WO2011116116A2 (en) Logic built-in self-test programmable pattern bit mask
US20210325461A1 (en) Extended jtag controller and method for functional reset using the extended jtag controller
US11681844B1 (en) Configurable testing of semiconductor devices
Kim et al. At-speed interconnect test and diagnosis of external memories on a system
Pyron et al. Next generation PowerPC/sup TM/microprocessor test strategy improvements
Van Ngo et al. Use of JTAG boundary-scan for testing electronic circuit boards and systems
Bushard et al. DFT of the Cell Processor and its Impact on EDA Test Softwar
Parulkar et al. DFX of a 3 rd Generation, 16-core/32-thread UltraSPARC-CMT Microprocessor
EP3367114A1 (en) Extended jtag controller and method for functional reset using the extended jtag controller
Nadeau-Dostie et al. A new hardware fault insertion scheme for system diagnostics verification
JPH10186007A (ja) 集積回路内の機能単位を試験する装置及び方法
Ehrenberg IEEE P1581 can solve your board level memory cluster test problems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090310

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100421

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20100902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111005

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120105

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120202

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120905

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121205

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121212

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130107

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130204

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140404

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140521

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20140808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150330

R150 Certificate of patent or registration of utility model

Ref document number: 5723515

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250