(57)【要約】  様々な実例では、フィールド内に配置されたチップ上で、ＪＴＡＧとＩＥＥＥ１５００とに従ってビルトイン・セルフテスト（ＢＩＳＴ）を実行するためのテスト・システムが提供される。チップが、自律車両中でなど、配置中に使用されている間、ＢＩＳＴを稼働するためにハードウェア及びソフトウェアがＩＥＥＥ１５００シリアル・インターフェース上に選択的に接続する。シリアル・インターフェース上に接続するための機構を提供することに加えて、ハードウェア及びソフトウェアは、テスト・シーケンスを稼働することに関連するメモリ要件とランタイムとを低減し、それにより、配置中でのＢＩＳＴを可能にし得る。さらに、いくつかの実施例は、ＢＩＳＴを稼働するより前に、クロック、電力、及び入出力の機能状態を記憶するように構成された構成要素を含み、これは、ＢＩＳＴの後の、機能状態の復元を可能にする。
2021535488.tif 000002
【特許請求の範囲】
【請求項１】
複数のビット・サブセットを含み、テスト・シーケンスのシリアル入力を受信するためのパスを形成する、テストシーケンス・レジスタと、前記テストシーケンス・レジスタへの前記シリアル入力の送信を制御するための命令レジスタと、前記複数のビット・サブセット中のビット・サブセットの第１のサブセット識別子を含むデータの第１のセットを受信することによって、前記命令レジスタをプログラムするための制御レジスタと、前記ビット・サブセットの第２のサブセット識別子を含むデータの第２のセットを受信及び通信することによって、前記命令レジスタをプログラムするための構成レジスタと、前記シリアル入力に書き込まれるべき前記テスト・シーケンスを受信するためのデータ・レジスタとを備える、テスト・システム。
【請求項２】
あらかじめ定義されたリセット値を保持するための、前記ビット・サブセットの１つ又は複数のビットを指定するスキップビット命令を受信することによって、前記テストシーケンス・レジスタをプログラムするための別のレジスタをさらに備える、請求項１に記載のテスト・システム。
【請求項３】
データの前記第１のセット、データの前記第２のセット、又はデータの前記第１のセットとデータの前記第２のセットの両方が、バーストモード命令を含み、前記バーストモード命令が、前記命令レジスタを、ビットをシリアル入力として前記パスにループ・バックするようにプログラムし、前記ビットは、前記テスト・シーケンスが走査パスに転送されるとき、前記テストシーケンス・レジスタ中にあり、前記ビット・サブセット中にない、請求項１に記載のテスト・システム。
【請求項４】
データの前記第１のセット、データの前記第２のセット、又はデータの前記第１のセットとデータの前記第２のセットの両方が、オートインクリメント命令を含み、前記オートインクリメント命令が、前記命令レジスタを、前記ビット・サブセットと同じ様式で他のビット・サブセットのシリアル入力を制御するようにプログラムし、前記他のビット・サブセットが、前記テスト・シーケンス中の前記ビット・サブセットの後に連続的に続く、請求項１に記載のテスト・システム。
【請求項５】
前記テストシーケンス・レジスタが、前記データ・レジスタにシフトされるテスト結果をシリアルに出力するように構成された、請求項１に記載のテスト・システム。
【請求項６】
前記データ・レジスタと外部自動テスト機器との間での前記テストシーケンス・レジスタへのアクセスを制御するように構成されたアクセス制御アプリケーションをさらに備える、請求項１に記載のテスト・システム。
【請求項７】
前記テストシーケンス・レジスタがチップ上にあり、前記テスト・システムが、前記チップ上にあり、オンチップ・メモリから前記テスト・シーケンスを取り出すように構成された、テストシーケンス取出しアプリケーションをさらに備える、請求項１に記載のテスト・システム。
【請求項８】
前記テストシーケンス・レジスタがチップ上にあり、前記テスト・システムが、前記チップから離れて維持され、オフチップ外部メモリから前記テスト・シーケンスを取り出し、オンチップ・メモリに前記テスト・シーケンスをロードするように構成された、テストシーケンス取出しアプリケーションをさらに備える、請求項１に記載のテスト・システム。
【請求項９】
前記テスト・シーケンスが、ロジック・ビルトイン・セルフテスト（ＬＢＩＳＴ）を稼働するより前に、前記走査パスへのアクセスを制御する有限状態機械（ＦＳＭ）のｃａｐｔｕｒｅＤＲステップ中に、ＶＡＬＳ  ＪＴＡＧレジスタ中のデータ・チェーン中にクロック、電源、及びＩ／Ｏの関数値をキャプチャすることと、前記ＦＳＭのｓｈｉｆｔＤＲ段階中に、前記ＶＡＬＳ  ＪＴＡＧレジスタ中の前記データ・チェーンをシフトすることと、ｕｐｄａｔｅＤＲステップ中に、前記ＶＡＬＳ  ＪＴＡＧレジスタの更新ラッチ中に前記関数値をキャプチャすることと、前記ＶＡＬＳ  ＪＴＡＧレジスタがプログラムされた後に、ＭＡＳＫ  ＪＴＡＧレジスタ中のすべてのビットを共通の値に設定することとによって、前記関数値をキャプチャするように構成された関数値復元命令を含む、請求項１に記載のテスト・システム。
【請求項１０】
前記テストシーケンス・レジスタが、第１のテストシーケンス・レジスタであり、前記システムが、前記第１のテストシーケンス・レジスタを含む第１のチップ・パーティションと、前記第１のチップ・パーティションとデイジー・チェーンされ、第２のテストシーケンス・レジスタを含む、第２のチップ・パーティションとをさらに備え、前記第１のテストシーケンス・レジスタと前記第２のテストシーケンス・レジスタとが、両方とも、ロジック・ビルトイン・セルフテスト（ＬＢＩＳＴ）を稼働するために前記テスト・シーケンスのブロードキャスト入力を受信するように構成され、前記第１のチップ・パーティション及び前記第２のチップ・パーティションが、各々、クロック、電力、及びＩ／Ｏ状態の関数値がキャプチャされたとき、前記ＬＢＩＳＴを稼働するより前に共通の値にすべて変更されるビットを有するそれぞれのＭＡＳＫレジスタを含み、前記第１のパーティションの第１のＭＡＳＫレジスタが、前記第２のパーティションの第２のＭＡＳＫレジスタの第２の量のビットよりも大きい第１の量のビットを有し、前記第１のチップ・パーティションと前記第２のチップ・パーティションの両方に提供される前記ブロードキャスト入力が、前記第１の量に等しい量の共通の値を含む、請求項１に記載のテスト・システム。
【請求項１１】
前記テスト・シーケンス中のユーザ定義された命令によって、ブロードキャスト・モード又はデイジーチェーン・モードのいずれかで構成可能であるＪＴＡＧレジスタをさらに備える、請求項１に記載のテスト・システム。
【請求項１２】
前記テストシーケンス・レジスタが、ＩＥＥＥ１５００に従って構成され、前記テスト・システムが、各パーティションについての常時オン・ドメイン中に小さいロジックをさらに備える、請求項１に記載のテスト・システム。
【請求項１３】
チップ上のメモリから、ＪＴＡＧシーケンスを取り出して、前記ＪＴＡＧシーケンスのテスト部分が、第１の量のビットを有するデータ・レジスタに入力されたとき、前記チップ上でビルトイン・セルフテスト（ＢＩＳＴ）を実施することと、前記データ・レジスタを制御する第２の命令レジスタをプログラムする１つ又は複数の第１の命令レジスタに、前記ＪＴＡＧシーケンスの命令部分をロードすることと、前記チップ上のデータ・シフト・レジスタに前記ＪＴＡＧシーケンスの前記テスト部分をロードして、前記データ・レジスタに送信されるべき前記テスト部分をシリアル・データ・バスにシフトすることであって、前記ＪＴＡＧシーケンスの前記テスト部分が、前記第１の量のビットよりも少ない第２の量のビットを含む、シフトすることとを含む、方法。
【請求項１４】
前記命令部分は、前記テスト部分が前記データ・レジスタに入力されるとき、あらかじめ定義された値を前記データ・レジスタにシフトすることによって、前記あらかじめ定義された値において前記第１の量のビット中の非ターゲット・ビットを保持するように、前記第２の命令レジスタをプログラムする、バーストモード命令を含む、請求項１３に記載の方法。
【請求項１５】
前記シリアル・データ・バスにシフトする前に、あらかじめ定義された値に、前記テスト部分の中に含まれる１つ又は複数のビットを保持することをさらに含む、請求項１３に記載の方法。
【請求項１６】
前記命令部分が、前記命令レジスタを、前記ＪＴＡＧシーケンスの別のテスト部分に制御の同じセットを適用するようにプログラムするオートインクリメント命令を含む、請求項１３に記載の方法。
【請求項１７】
前記１つ又は複数の第１の命令レジスタが、１つ又は複数のＢＩＳＴ命令レジスタを備え、前記第２の命令レジスタがＪＴＡＧ命令レジスタを備える、請求項１３に記載の方法。
【請求項１８】
チップ上でロジック・ビルトイン・セルフテスト（ＬＢＩＳＴ）を稼働するより前に、有限状態機械（ＦＳＭ）のキャプチャ状態中に、クロック、電源、又はＩ／Ｏ状態のうちの少なくとも１つの関数値を第１のシフト・レジスタにコピーすることであって、前記ＦＳＭが、前記キャプチャ状態の後の第１のシフト状態を含む、コピーすることと、第１の更新状態中に前記第１のシフト・レジスタの更新ラッチ中に前記関数値をキャプチャすることと、第２のシフト・レジスタ中で、第２のシフト状態中にすべてのビットをそれぞれの値にシフトすることであって、前記第２のシフト・レジスタ中の前記すべてのビットの前記それぞれの値が、前記第１のシフト・レジスタの動作を制御する同じ値にシフトされる、シフトすることと、第２の更新状態中に前記第２のシフト・レジスタの更新ラッチ中に前記それぞれの値の各々をキャプチャすることとを含み、すべてのビットを共通の値にシフトすることは、前記関数値が、前記第１のシフト・レジスタにシフトされたオーバーライド・データでオーバーライドされることを可能にする、方法。
【請求項１９】
前記第１のシフト・レジスタがＶＡＬＳ  ＪＴＡＧシフト・レジスタを備え、前記第２のシフト・レジスタがＭＡＳＫ  ＪＴＡＧシフト・レジスタを備える、請求項１８に記載の方法。
【請求項２０】
前記ＦＳＭを制御する命令をＢＩＳＴ命令レジスタにプログラムすることによって、いかなるサイクルをも実行することなしに前記第１のシフト状態をスキップすることをさらに含む、請求項１８に記載の方法。
【請求項２１】
ブロードキャスト・モード又はデイジーチェーン・モードで構成可能であるユーザ定義されたＪＴＡＧレジスタを構成することによって、第１のチップ・パーティションと第２のチップ・パーティションの両方に対して前記ＬＢＩＳＴを稼働するためのＪＴＡＧテスト・シーケンスをブロードキャストすることをさらに含む、請求項１８に記載の方法。
【請求項２２】
前記第１のシフト・レジスタと前記第２のシフト・レジスタとを含む第１のチップ・パーティションと、前記第２のシフト・レジスタに対応する第３のシフト・レジスタを含む第２のチップ・パーティションの両方に対して、前記ＬＢＩＳＴを稼働するためのＪＴＡＧテスト・シーケンスをブロードキャストすることであって、前記第３のシフト・レジスタが、前記第２のシフト・レジスタ中の第２の量のビットよりも大きい第１の量のビットを含む、ブロードキャストすることと、前記第２のシフト・レジスタに、前記第３のシフト・レジスタのビットの前記量に等しい数のビットをシフトすることとをさらに含む、請求項１８に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピューティング・チップは、一般に、チップが適切に機能しているかどうか、及び製造欠陥があるかどうかを検証するために、配置より前に製造業者によってテストされる。たとえば、チップは、自動テスト機器（ＡＴＥ：Ａｕｔｏｍａｔｅｄ  Ｔｅｓｔ  Ｅｑｕｉｐｍｅｎｔ）を使用することによって、配置より前にテストされ得る。しかしながら、いくつかのチップは、様々なファクタ（たとえば、環境的危険、経年変化など）により、配置された後に障害を得、多くのチップ用途において、フィールド内障害検出能力（ｉｎ−ｆｉｅｌｄ，ｆａｕｌｔ−ｄｅｔｅｃｔｉｏｎ  ｃａｐａｂｉｌｉｔｙ）を有することが重要である。たとえば、チップがフィールドで配置された後にチップ上の潜在する障害を識別することが、自動車構成要素（たとえば、自動車プラットフォームをサポートするチップ）についてのＩＳＯ２６２６２  ＡＳＩＬ−Ｃ要件など、いくつかの業界要件に準拠するために必要である。いくつかの事例では、これらのチップは、ジョイント・テスト・アクション・グループ（ＪＴＡＧ：Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）規格と、埋込みコア・テストについての米国電気電子技術者協会（ＩＥＥＥ：Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）１５００規格（ＩＥＥＥ１５００ＳＥＣＴ、又は、単にＩＥＥＥ１５００）の両方に従って構成されたチップ・アーキテクチャを含み得る。たとえば、これらのチップはＩＥＥＥ１５００クラスタに編成され得、各クラスタはパーティションを含み得る。各パーティションは、パーティション全体にわたって、及び、より高いレベルにおいて、チップ全体にわたってシリアル様式でデイジー・チェーンされた、ＪＴＡＧレジスタを含み得る。
【０００２】
従来のシステムはＪＴＡＧをＩＥＥＥ１５００と統合するが、これらのシステムは、ビルトイン・セルフテスト（ＢＩＳＴ：ｂｕｉｌｔ−ｉｎ  ｓｅｌｆ−ｔｅｓｔ）能力をサポートしないか、或いは、それらは、大きいストレージ、扱いにくいランタイム、又はその両方を必要とし、それによりＢＩＳＴがリアルタイム配置シナリオにおいてあまり有効でなくなる。たとえば、いくつかの従来のシステムでは、潜在する障害（たとえば、チップが、自動車プラットフォームについてのフィールドで配置された後に起こる障害）を適時に識別するためにＡＴＥに依拠することは、ユーザがＡＴＥを有すること、又は、チップが、使用を中止されて、チップ固有テスターを有する施設に持って行かれることのいずれかを必要とすることになるので、有効でない。他の従来のシステムは、ＢＩＳＴ、又はＢＩＳＴとＡＴＥとの組合せを使用して実行され得るが、これらのシステムは、大きいストレージを必要とし、比較的遅く実行する。すなわち、単一のＪＴＡＧチェーン・テスト・シーケンスが数千個のビットであり得、テストを稼働するために、多くのＪＴＡＧレジスタがプログラムされなければならない。したがって、テスト・シーケンスは、極めて大きく、引き換えに、大きいストレージを必要とする。さらに、ＪＴＡＧレジスタは、比較的遅いクロック上にあり（たとえば、サイクルごとに１ビットがアクセスされる）、テスト・シーケンスが大きいとき、長いランタイムが生じ、それにより、システムに有害である時間期間の間、配置中の動作からチップを取り外す。
【０００３】
これらの従来のシステムは、上記で説明されたものに加えて、他の欠点がある。たとえば、ＢＩＳＴは、クロック、電力、及びＩ／Ｏ状態がすでに構成されたシステムにおいて実行されるが、これらの妥当な機能状態は、ロジック・ビルトイン・セルフテスト（ＬＢＩＳＴ：ｌｏｇｉｃ  ｂｕｉｌｔ−ｉｎ  ｓｅｌｆ−ｔｅｓｔ）走査動作中に損失され得、これは、ＢＩＳＴとは別個の動作に影響を及ぼすことがある。他の動作では、ＪＴＡＧ／ＩＥＥＥ１５００インターフェースのための既存の制御が、状態機械のいくつかの状態が所与の動作のために必要でないときでも、それらの状態がスキップされることを可能にせず、それにより、不要なサイクルが生じる。さらにまた、いくつかの従来のシステムでは、複数のＪＴＡＧレジスタが、同じＪＴＡＧテスト・シーケンスを伴って構成され得、その場合、その同じＪＴＡＧテスト・シーケンスの複数のコピーが記憶され、単に、同じシーケンスのコピーを記憶するために、より大きいメモリ要件が生じる。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示の実施例は、ＪＴＡＧとＩＥＥＥ１５００とに従って構成されたチップ上でフィールド内ＢＩＳＴを実行するためのテスト・システムに関する。たとえば、チップは、機能的安全規格の対象となるシステムに統合され得（たとえば、ＩＳＯ２６２６２  ＡＳＩＬ−Ｃの対象となる自動車プラットフォームをサポートするチップ）、テスト・システムは、配置の後のチップ中の潜在する障害を識別するために使用され得る。上記で説明されたものなど、従来のシステムとは対照的に、本開示は、チップが、自律機械用途においてなど、フィールドで配置されている間にＢＩＳＴを稼働するために、選択的にＩＥＥＥ１５００シリアル・インターフェースに接続するためにチップに配置され得る、ハードウェア及びソフトウェア実装形態について説明する。シリアル・インターフェースに接続するための機構を提供することに加えて、配置されたハードウェア及びソフトウェア実装形態は、テスト・シーケンスを稼働することに関連するメモリ要件とランタイムとを低減し、それにより、フィールドにある間のＢＩＳＴを可能にし得る。さらに、本開示のいくつかの実施例は、ＢＩＳＴを稼働するより前に、クロック、電力、及びＩ／Ｏの機能状態を記憶するように構成された構成要素を含み、これは、ＢＩＳＴ中の損失の可能性を低減しながら、ＢＩＳＴの後の、機能状態の復元を可能にする。本開示の他の実施例は、有限状態機械の状態が、不要なサイクルを実行することを回避するためにプログラム的にスキップされることを可能にし得る。さらにまた、いくつかの実施例では、ブロードキャスト・モードが使用され得、これは、ＪＴＡＧテスト・シーケンスの単一のインスタンスが、複数のパーティション又はクラスタに並行して通信されることを可能にし、したがって、ＪＴＡＧテスト・シーケンスの単一のコピーのみを記憶することによって、メモリ要件が低減される。
【０００５】
フィールド内ＢＩＳＴを実行するためのテスト・システムのための本システム及び方法が、参照により本明細書に組み込まれる、添付の図面を参照しながら以下で詳細に説明される。
【図面の簡単な説明】
【０００６】
【図１】本開示のいくつかの実施例による、コンピューティング・プラットフォームと自動車テスト機器（ＡＴＥ：ａｕｔｏｍｏｔｉｖｅ  ｔｅｓｔ  ｅｑｕｉｐｍｅｎｔ）とを含むコンピューティング環境のブロック図である。
【図２】本開示のいくつかの実施例による、ＩＳＴモジュールの追加のハードウェア構成要素と、ＪＴＡＧ／ＩＥＥＥ１５００アーキテクチャの追加の詳細と、オフチップ外部メモリからＩＳＴモジュールのレジスタへのＢＩＳＴテスト・シーケンスの送信とを含む、図１に示されているコンピューティング・プラットフォームの追加の詳細を示すブロック図である。
【図３】本開示のいくつかの実施例による、オフチップ外部メモリに記憶され得るＢＩＳＴテスト・シーケンスの追加の詳細を含む、図１に示されているコンピューティング・プラットフォームの追加の詳細を示すブロック図である。
【図４】本開示のいくつかの実施例による、機能状態がキャプチャされたときの、ＪＴＡＧレジスタを通してのデータ・シフトを示す図である。
【図５】本開示のいくつかの実施例による、ＢＩＳＴを実施する方法を示す流れ図である。
【図６】本開示のいくつかの実施例による、ＢＩＳＴを実施する方法を示す流れ図である。
【発明を実施するための形態】
【０００７】
ジョイント・テスト・アクション・グループ（ＪＴＡＧ）規格と米国電気電子技術者協会（ＩＥＥＥ）１５００規格とに従って構成されたチップ上でフィールド内ＢＩＳＴを実行するためのテスト・システムに関する、システム及び方法が開示される。いくつかの事例では、チップは、自動車用途（たとえば、自律機械用途）において使用されるより大きいコンピューティング・プラットフォーム、又は機能的安全規格の対象となる他のシステムの構成要素であり得、テスト・システムは、チップ中の潜在する障害の配置中（ｉｎ−ｄｅｐｌｏｙｍｅｎｔ）識別のために構成され得る。上記で説明されたものなど、従来のシステムとは対照的に、本開示は、チップが、フィールドで配置されている間にＢＩＳＴを稼働するために、選択的にＩＥＥＥ１５００シリアル・インターフェース上に接続するためにチップに追加される、ハードウェア及びソフトウェアについて説明する。シリアル・インターフェース上に接続するための機構を提供することに加えて、ハードウェア及びソフトウェアは、テスト・シーケンスを稼働することに関連するメモリ要件とランタイムとを低減し、それにより、フィールドにある間のＢＩＳＴを可能にし得る。さらに、本開示のいくつかの実施例は、ＢＩＳＴを稼働するより前に、クロック、電力、及びＩ／Ｏの機能状態を記憶するように構成された構成要素を含み、これは、ＢＩＳＴの後の、機能状態の復元を可能にする。主にＪＴＡＧ及びＩＥＥＥ１５００に関して説明されるが、これは限定するものではなく、本明細書のシステム及びプロセスは、本開示の範囲から逸脱することなく、（たとえば、ＪＴＡＧ及びＩＥＥＥ１５００と組み合わせられる、或いはＪＴＡＧ及びＩＥＥＥ１５００の代わりに使用される）任意のテスト・タイプ、構成、又は規格に適用可能であり得る。
【０００８】
本開示のシステムは、チップ上の構成要素によってアクセス可能なシステム・メモリ（たとえば、フラッシュ・メモリ、埋込みマルチメディア・コントローラ（ｅＭＭＣ：ｅｍｂｅｄｄｅｄ  Ｍｕｌｔｉ−Ｍｅｄｉａ  Ｃｏｎｔｒｏｌｌｅｒ）メモリ、オフチップ・システム・メモリ、又は外部システム・メモリ）にチップ固有ＪＴＡＧテスト・シーケンスを直接記憶し、これらのチップ固有ＪＴＡＧテスト・シーケンスは、潜在する障害を識別するために、メモリＢＩＳＴ（ＭＢＩＳＴ：ｍｅｍｏｒｙ  ＢＩＳＴ）、ロジックＢＩＳＴ（ＬＢＩＳＴ：ｌｏｇｉｃ  ＢＩＳＴ）、及び／又は他のＢＩＳＴタイプを稼働するために使用され得る。本開示はまた、システム・メモリに記憶されたＪＴＡＧテスト・シーケンスにアクセスし、ＪＴＡＧ／ＩＥＥＥ１５００シリアル・インターフェースに接続する、オンチップ・ハードウェア及びソフトウェアを含む。これは、自動車テスト機器（ＡＴＥ）になど、外部に及び統合システムから離れてチップ固有ＪＴＡＧテスト・シーケンスを記憶するか、又は、ＡＴＥなしでＢＩＳＴを稼働するためにＪＴＡＧ／ＩＥＥＥ１５００インターフェースに接続するための構成要素を有しない、いくつかの従来のシステムとは対照的である。さらに、外部システム・メモリにＪＴＡＧテスト・シーケンスを記憶し得る従来のシステムとは対照的に、本開示は、ランタイムに加えてストレージ利用率を低減する追加のハードウェア及びソフトウェア実装形態を含む。
【０００９】
オフチップ・システム構成要素は、本開示のオンチップ・ハードウェア及びソフトウェアと組み合わせて、様々な様式で動作し得る。たとえば、本開示は、オフチップ・システム・メモリからＪＴＡＧテスト・シーケンスにアクセスし、オンチップ構成要素にＪＴＡＧテスト・シーケンスを送信し、次いで、オンチップ構成要素が、ＪＴＡＧ／ＩＥＥＥ１５００シリアル・インターフェースにＪＴＡＧテスト・シーケンスをロードし得る、オフチップのセキュアなソフトウェアを含み得る。本開示のオンチップ構成要素は、ＪＴＡＧ／ＩＥＥＥ１５００インターフェースに移すより前にＪＴＡＧテスト・シーケンスを受信し、ＪＴＡＧ／ＩＥＥＥ１５００シリアル・インターフェースに接続し、ＪＴＡＧ／ＩＥＥＥ１５００インターフェースからのテスト出力を読み取り得る、任意の数のハードウェア構成要素（たとえば、有限状態機械、レジスタなど）を含み得る。
【００１０】
本明細書で示されるように、ＪＴＡＧチェーン・シフト・レジスタは極めて長く、数百から数千ビットの範囲内にあり得、ＪＴＡＧチェーン・シフト・レジスタは、比較的遅いクロック上にあり、サイクルごとに１ビットがアクセスされるものである。さらに、インターフェースのシリアル性質のために、ＪＴＡＧチェーン・シフト・レジスタがシフト・イン又はシフト・アウトされるたびに、チェーン全体が、チェーンを損失することを回避するためにアクセスされなければならない。これは、特定のＢＩＳＴが、ＪＴＡＧチェーン・シフト・レジスタ中の単一ビットのみに新しい値を書き込むことを含むときでも当てはまる。したがって、従来のシステムとは対照的に、特定のＢＩＳＴが構成されるとき、本開示のシステムは、特定のＢＩＳＴのために上書きされる必要があるビットのみを構成し得、ＪＴＡＧチェーン・シフト・レジスタ中のビットの残りは、あらかじめ定義されたリセット値において保持され（又は書き直され）得る。さらに、本開示の構成要素は、毎ビット・レベルにおいてプログラムする能力を提供する。ＪＴＡＧチェーン全体を記憶することとは反対に、所与のＢＩＳＴを実行するために書き込まれる必要があるターゲット・ビットのみのこの選択的記憶により、メモリ・ストレージ節約と、従来の手法よりも速いランタイムとが生じる。
【００１１】
本開示は、ＢＩＳＴ能力の改善に寄与する他の特徴を含む。たとえば、上述のように、従来のシステムは、クロック、電力、及びＩ／Ｏ状態の関数値をキャプチャしない。対照的に、ＬＢＩＳＴを稼働するより前に、本開示のシステムは、ＬＢＩＳＴ走査動作中にこれらの状態を損失することを回避するために、たとえば、クロック、電力、及びＩ／Ｏなどを構成するための、機能的設定をキャプチャし、保持する。より詳細には、本開示は、ＬＢＩＳＴ走査動作を稼働するより前に機能的設定をキャプチャするようにＪＴＡＧレジスタをプログラムするソフトウェアを含み、従来のテスト・システムとはさらに対照的に、機能的設定は、ＬＢＩＳＴの後に読み取られ得る。
【００１２】
さらに、いくつかのＢＩＳＴ動作では、同じＢＩＳＴテスト・シーケンスが、（たとえば、複数のパーティション又はクラスタが同じ構成を含む）複数のＪＴＡＧレジスタに入力され得る。従来のシステムは、しばしば、同じＢＩＳＴテスト・シーケンスの複数のコピーを記憶し、各ＪＴＡＧレジスタに個々のコピーを提供する。対照的に、本開示の実施例は、ＢＩＳＴテスト・シーケンスをブロードキャストすることを可能にする、パーティション・レベルにおける及びクラスタ・レベルにおけるハードウェアを含み、したがって、ＢＩＳＴテスト・シーケンスは、１回記憶され、１回ロードされるだけでよいことがある。さらに、この手法を使用して、ＢＩＳＴテスト・シーケンスは、複数のパーティション又はクラスタに並行して送られ、それにより、データを書き込むためにより少数のサイクルが使用されるので、ランタイムを減少させ、さらに、ＪＴＡＧテスト・シーケンスの単一のコピーのみが記憶される必要があり得るので、メモリ要件を減少させ得る。
【００１３】
さらに、ＪＴＡＧ／ＩＥＥＥ１５００アーキテクチャは、走査パスを破壊することによってチェーンへのアクセスを防ぎ得る、デイジー・チェーンに沿った電力ゲートされる部分を含み得る。したがって、本開示の一態様は、各パーティション及びクラスタに、常時オン状態にある小さいロジック（たとえば、単一ビット）を追加し、したがって、電力がゲートされたとき、ラッパー・シリアル制御（ＷＳＣ：Ｗｒａｐｐｅｒ  Ｓｅｒｉａｌ  Ｃｏｎｔｒｏｌ）が、その常時オン・ドメイン中の単一ビット・パスを通過する。したがって、より低い電力モードにおいてさえ、ＩＥＥＥ１５００チェーンはそのままである。
【００１４】
次に図１を参照すると、本開示の一実施例による、テスト・システムをもつ例示的なコンピューティング・プラットフォーム１００のブロック図が示されている。図１は、コンピューティング・プラットフォーム１００及びテスト・システムの高レベル概観を提供し、構成要素は、概して、図１のコンテキストにおいて説明されることになり、より具体的な詳細が、他の図面のうちのいくつかに関して説明される。コンピューティング・プラットフォーム１００は、プロセッサ、中央処理ユニット（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、グラフィックス処理ユニット（ＧＰＵ：ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、システムオンチップ（ＳｏＣ：ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）などの構成要素を含む、第１のチップ１１０と第２のチップ１１２とを有する統合システムを含み得る。第１のチップ１１０は、（本明細書では代替的に「アーキテクチャ１１４」と呼ばれる）ＪＴＡＧ／ＩＥＥＥ１５００アーキテクチャ１１４を含み得、第２のチップ１１２は、ＪＴＡＧ／ＩＥＥＥ１５００規格に従って構成され得る（本明細書では代替的に「アーキテクチャ１１２」と呼ばれる）ＪＴＡＧ／ＩＥＥＥ１５００アーキテクチャ１１２を含み得る。第１のチップ１１０及び第２のチップ１１２は、自律機械（たとえば、車両、ドローン、航空機、水上船舶など）又は機能的安全規格の対象となる他の用途に関連する動作を実行するように構成された、機能的コンピューティング・プラットフォームなど、より大きいコンピューティング・プラットフォーム１００に統合され得る。コンピューティング・プラットフォーム１００は、１つのタイプの統合システムの非限定的な実例であり、他の実施例は、本開示の範囲から逸脱することなく、より少数のチップ、より多くのチップ、異なるチップ、又はそれらの組合せを含み得る。
【００１５】
概して、コンピューティング・プラットフォーム１００は、各チップ１１０及び１１２上にいくつかの構成要素を含み、説明目的のために、これらの構成要素は、図１では、「オンチップ・アーキテクチャ」の一部であるものとしてラベリングされる。さらに、コンピューティング・プラットフォーム１００は、必ずしもチップ上にあるとは限らないが、プラットフォーム１００の一部としてチップと統合される、他の構成要素を含む。これらの他の構成要素は、図１では、「オフチップ・アーキテクチャ」１０２であるものとしてラベリングされ、オフチップ構成要素とオンチップ構成要素の両方が、コンピューティング・プラットフォーム１００のテスト・システムの一部を形成するハードウェア及び／又はソフトウェアを含み得る。たとえば、高レベルにおいて、テスト・システムのオフチップ及びオンチップ構成要素は、オフチップ外部メモリ１０４からＪＴＡＧテスト・シーケンスを取り出すための動作を実行し、ＪＴＡＧレジスタに入力されるべきＪＴＡＧテスト・シーケンスをＩＥＥＥ１５００バス１２６に移し得る。
【００１６】
本明細書で説明されるように、ＪＴＡＧチェーン・シフト・レジスタは極めて長く、数百から数千ビットの範囲内にあり得、ＪＴＡＧチェーン・シフト・レジスタは、比較的遅いクロック上にあり、サイクルごとに１ビットがアクセスされるものである。さらに、インターフェースのシリアル性質のために、ＪＴＡＧチェーン・シフト・レジスタがシフト・イン又はシフト・アウトされるたびに、チェーン全体が、チェーンを損失することを回避するためにアクセスされなければならない。これは、特定のＢＩＳＴが、ＪＴＡＧチェーン・シフト・レジスタ中の単一ビットのみに新しい値を書き込むことを含むときでも当てはまる。したがって、従来のシステムとは対照的に、本開示のテスト・システムは、外部メモリ１０４とＩＥＥＥ１５００バス１２６とを接続し、ＪＴＡＧテストに関連するランタイム及びストレージ使用量を低減する、様々なソフトウェア及びハードウェア構成要素を含む。
【００１７】
本開示の一態様では、第１のチップ１１０及び第２のチップ１１２は、それぞれ、インシステム・テストを容易にするためにオフチップ構成要素と通信する、オンチップ・インシステムテスト（ＩＳＴ：ｉｎ−ｓｙｓｔｅｍ−ｔｅｓｔ）マスタ１１８及びＩＳＴマスタ１２０を含み得る。たとえば、本明細書で説明されるように、ＢＩＳＴ、ＭＢＩＳＴ、及びＬＢＩＳＴを稼働するためのＪＴＡＧテスト・シーケンスは、オフチップ外部メモリ１０４に記憶され、これらのＪＴＡＧテスト・シーケンスは、テストが実施されるべきであるとき、オフチップ・インシステムテスト（ＩＳＴ）コントローラ１０６によってオンチップＩＳＴマスタ１１８及び１２０に選択的にロードされ得る。さらに、各チップ１１０及び１１２は、オンチップＩＳＴマスタ１２０からＪＴＡＧテスト・シーケンスを受信し、ＪＴＡＧテスト・シーケンスをＩＥＥＥ１５００バス１２６に移す、ハードウェア及び／又はソフトウェアを含むインシステムテスト（ＩＳＴ）モジュール１２２を含み得る。ＩＳＴモジュール１２２は、オンチップ・テスト・マスタ１２４の１つの構成要素であり、オンチップ・テスト・マスタ１２４は、ＩＳＴモジュール１２２と１つ又は複数の他のテスト・モジュール１２７との間でＩＥＥＥ１５００バス１２６へのアクセスを制御するように構成されたアクセス制御１２５を含む。たとえば、他のテスト・モジュール１２７は、ＡＴＥ１２８からのものを含む、他のタイプのシステム・テストを容易にし得る。
【００１８】
プラットフォーム１００及びテスト・システムの構成要素のうちのいくつかの高レベル概観を提供したので、次に、テスト・システムのいくつかの構成要素についてより詳細に説明するために、図２が参照される。図２は、オフチップ・アーキテクチャ１０２と（本明細書では代替的に「チップ１１２」と呼ばれる）第２のチップ１１２とを含む、コンピューティング・プラットフォーム１００の一部分の別のブロック図である。さらに、チップ１１２は、ＪＴＡＧ及びＩＥＥＥ１５００規格に従うアーキテクチャ１１６を含み得る。たとえば、アーキテクチャ１１６は、ラッパー・コネクタ１４０、１４２、１４４、及び１４６を通してデイジー・チェーンされた（本明細書では代替的に「クラスタ１３２、１３４、１３６、及び１３８」と呼ばれる）一連のＩＥＥＥ１５００ラッパー／クラスタ１３２、１３４、１３６、及び１３８を含み得る。さらに、各クラスタは、クラスタＡ１３２のパーティション１４８、１５０、１５２、及び１５４によって示されているように、一連のデイジー・チェーンされたパーティションを含み得る。示されていないが、クラスタ１３４、１３６、及び１３８も、クラスタ１３２のものと同様のパーティションを含み得る。各パーティションは、１つ又は複数のＪＴＡＧレジスタ（たとえば、命令レジスタ（ＩＲ：Ｉｎｓｔｒｕｃｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）１５６及びデータ・レジスタ（ＤＲ：Ｄａｔａ  Ｒｅｇｉｓｔｅｒ）１５８）、並びに、そのパーティション中のレジスタを制御するＩＥＥＥ１５００クライアント（図示せず）を含み得る。図２はまた、ラッパー・シリアル入力（ＷＳＩ：ｗｒａｐｐｅｒ  ｓｅｒｉａｌ  ｉｎｐｕｔ）、ラッパー・シリアル出力（ＷＳＯ：ｗｒａｐｐｅｒ  ｓｅｒｉａｌ  ｏｕｔｐｕｔ）、及びラッパー・シリアル制御（ＷＳＣ）を示す。各クラスタは、チップ１１２の機能ユニット（ロジック・ブロック）に関連し得る。ラッパー・コネクタは、特定のラッパー・コネクタに接続された対応するクラスタをバイパスするために使用され得るＩＥＥＥ１５００準拠モジュール（たとえば、ラッパー・バイパス・レジスタ（ＷＢＹ：Ｗｒａｐｐｅｒ  Ｂｙｐａｓｓ  Ｒｅｇｉｓｔｅｒ）、又はラッパー命令レジスタ（ＷＩＲ：Ｗｒａｐｐｅｒ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｒｅｇｉｓｔｅｒ））を備え得る。ＩＥＥＥ１５００バス１２６は、オフチップ外部メモリ１０４に記憶されたテスト命令及びテスト・データ（たとえば、「Ａ」１０８）をＪＴＡＧレジスタに送るためのパスを提供する。
【００１９】
本明細書で説明されるように、本開示のテスト・システムは、ＪＴＡＧテスト・シーケンスを稼働することに関連するメモリ使用量及びランタイムを低減する、様々なハードウェア及びソフトウェアを含む。本開示の一態様では、数千ビット長であり得るＪＴＡＧレジスタ（たとえば、１５８）は、ビットのサブユニットに分割され、各サブユニットは、ビットの個別のグループを含む。たとえば、ＪＴＡＧレジスタは、ＤＷＯＲＤ（ＤＷＯＲＤごとに３２ビット）、又は、各々共通の量のビットを含み得る、他のサイズのグループに分割され得る。さらに、ＩＳＴモジュール１２２は、一度に１つのビット・サブユニットずつ（たとえば、一度に１つのＤＷＯＲＤずつ）ＪＴＡＧテスト・シーケンスをＩＥＥＥ１５００インターフェース１２６に移すように構成されたハードウェアを含み得、そのハードウェアは、えり抜きのビット・サブユニットが、それによって、ＪＴＡＧチェーン・テスト・シーケンス全体を移すことなしに稼働され得る、（本明細書でより詳細に説明される）機構を提供し得る。
【００２０】
本開示の一態様では、ＩＳＴモジュール１２２は、オフチップ外部メモリ１０４に記憶され、ＢＩＳＴのために選択的に取り出された、ＪＴＡＧシーケンスなど、ＪＴＡＧテスト・シーケンスの異なる部分を受信する複数のレジスタを含み得る。図２に示されているように、ＩＳＴモジュール１２２は、制御（ＣＴＲＬ：ｃｏｎｔｒｏｌ）レジスタ１６０と、構成（ＣＦＧ：ｃｏｎｆｉｇｕｒａｔｉｏｎ）レジスタ１６２と、ＭＡＳＫレジスタ１６４と、データ・レジスタ１６６とを含む。一態様では、これらのレジスタの各々は３２ビット・レジスタであるが、本開示の範囲から逸脱することなく、他のレジスタ・サイズが使用され得る。概して、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２は、所与のＢＩＳＴのためにＪＴＡＧレジスタ（たとえば、１５６及び１５８）を構成するための命令を含む、（たとえば、パス１６８Ａによって例示的に示される）ＪＴＡＧテスト・シーケンスの部分を受信するように構成される。たとえば、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２は、どの（１つ又は複数の）ビット・サブグループ（たとえば（１つ又は複数の）ＤＷＯＲＤ）がＩＥＥＥ１５００バス１２６に書き込まれるべきであるかを指定する命令を受信し得る。さらに、ＭＡＳＫレジスタ１６４は、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２に提供される命令中で指定されるビット・サブグループ（たとえば、ＤＷＯＲＤ）内の特定のビットをプログラムするための、ビットレベルの命令を受信し得る。データ・レジスタ１６６は、ＪＴＡＧチェーン・テスト・シーケンスに書き込まれるべきテスト・データを受信する（又は出力を読み取る）ように構成され得る。以下の表１は、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２のための命令部分と、データ・レジスタのためのテスト部分とを含む、ＩＥＥＥ１５００バス１２６にコンテンツをシフトするときにレジスタ中で受信され得るコンテンツのタイプの一実例を提供する。
【表１】
2021535488.tif 000003
【００２１】
これらのレジスタを使用して、データが、様々な様式で、ＪＴＡＧチェーンに書き込まれるか、又はＪＴＡＧチェーンから読み取られ得る。たとえば、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２は、ターゲットＪＴＡＧレジスタ・チェーンを選択するようにＪＴＡＧ  ＩＲシフトをトリガするように構成され得る。次いで、各ＤＷＯＲＤについて、コンテンツは、ＩＥＥＥ１５００バス１２６にシフトするためにデータ・レジスタに書き込まれ得る。ＪＴＡＧチェーンからシーケンスを読み取るとき、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２は、ターゲットＪＴＡＧレジスタ・チェーンを選択するようにＪＴＡＧ  ＩＲシフトをトリガするように構成され得る。次いで、各ＤＷＯＲＤについて、ＣＴＲＬ／ＣＦＧレジスタは、データ・レジスタにターゲットＤＷＯＲＤ値をシフト・アウトするためのターゲットＤＷＯＲＤ数を伴って構成され得、シフト・アウトの時点において、データ・レジスタが読み取られ得る。いくつかの事例では、ＣＴＲＬレジスタ１６０及び／又はＣＦＧレジスタ１６２は、各ＤＷＯＲＤについて構成され得る。したがって、ＩＳＴモジュール１２２は、ＢＩＳＴのためのＪＴＡＧを構成するためにＩＥＥＥ１５００インターフェース（たとえば、バス１２６）にアクセスするための機構を提供し得る。従来のシステムとは対照的に、ＩＳＴモジュール１２２のレジスタは、本明細書でより詳細に説明されるように、ＪＴＡＧレジスタ内の特定のＤＷＯＲＤをターゲットにする能力を提供し、より詳細には、ＭＡＳＫレジスタを使用することによって特定のビットをターゲットにする能力を提供する。
【００２２】
本開示のテスト・システムは、オフチップ外部メモリ１０４に記憶されたＪＴＡＧテスト・シーケンス（たとえば、Ａ１０８）を受信するためにオフチップＩＳＴコントローラ１０６と通信する、オンチップ・ソフトウェア及びハードウェアをも含み得る。本開示の一態様では、オンチップＩＳＴマスタ１２０は、テスト・シーケンスのコピーがロードされ得るオンチップＩＳＴランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）１７０を含む。たとえば、テストを稼働する時間であるとき、オフチップＩＳＴコントローラ１０６は、オフチップ外部メモリ１０４からテスト・シーケンスを取り出し、オンチップＩＳＴ  ＲＡＭ１７０にＪＴＡＧテスト・シーケンスをロードし得る。さらに、オンチップＩＳＴマスタ１２０はオンチップＩＳＴコントローラ１７４を含み得、オンチップＩＳＴコントローラ１７４は、オンチップＩＳＴ  ＲＡＭ１７０からテスト・シーケンスを取り出し、ＩＳＴモジュールのレジスタに（たとえば、パス１６８Ａによって示されているように）テスト・シーケンスを提供し得る。一態様では、オンチップＩＳＴコントローラは、ＤＷＯＲＤごとにテスト・シーケンスを提供し得、したがって、オンチップＩＳＴコントローラ１７４は、ＤＷＯＲＤを送った後に、ＩＳＴモジュールが、別のＤＷＯＲＤを受信するための準備完了（ｒｅａｄｉｎｅｓｓ）をシグナリングするまで待つ。一実施例では、１つ又は複数のソフトウェア命令が、オンチップＩＳＴコントローラ１７４による動作をトリガし得る。たとえば、オンチップＲＡＭ１７０がテスト・シーケンスをロードされた後に、ソフトウェア・トリガが、オンチップＩＳＴコントローラ１７４中のソフトウェア・レジスタに書き込まれ得る。このレジスタが書き込まれると、オンチップＩＳＴコントローラ１７４の有限状態機械（ＦＳＭ：ｆｉｎｉｔｅ  ｓｔａｔｅ  ｍａｃｈｉｎｅ）１７８が、トリガされ得、シーケンスの終わりに達したときなど、動作の終わりまで、オンチップＲＡＭ１７０からのすべてのシーケンスを実行することを継続し得る。
【００２３】
図２は、テスト・シーケンスがオフチップ外部メモリ１０４から通信される、破線で示されたパスとともに、シーケンスの少なくとも一部を例示的に示す。たとえば、オフチップＩＳＴコントローラ１０６は、パス１６８Ｄによって示されているように、オフチップ外部メモリ１０４からＢＩＳＴテスト・シーケンスＡ１０８を取り出し、パス１６８ＣによってオンチップＲＡＭにＢＩＳＴテスト・シーケンスＡを提供し得る。ＢＩＳＴテスト・シーケンスＡのコピー１７２が、オンチップＲＡＭ１７０中に示されている。さらに、オンチップＩＳＴコントローラは、（たとえば、パス１６８Ｂによって）オンチップＲＡＭからＢＩＳＴテスト・シーケンスＡ１７２をフェッチし、パス１６８Ａによって示されているように、それをＤＷＯＲＤごとにＩＳＴモジュール１２２に提供し得る。本明細書で説明されるように、ＩＳＴモジュールは、（１つ又は複数の）ＪＴＡＧレジスタへの入力のためにＩＥＥＥ１５００バス１２６に（１つ又は複数の）ＤＷＯＲＤを移す。
【００２４】
いくつかの実施例では、図１及び図２に関して説明されるテスト・システムのハードウェア及びソフトウェアは、ＢＩＳＴを稼働するときのランタイム及びメモリ利用率を改善するために、異なるやり方で活用され得る。本明細書で説明されるように、従来のシステムでは、ＪＴＡＧレジスタがシフト・イン／アウトされるとき、チェーン全体がアクセスされる必要があり、そうでない場合、チェーンは損失され得る。たとえば、ＢＩＳＴが、チェーン中の単一ビットをプログラムすることを含む場合でも、チェーン全体が、損失を回避するためにシフトされる必要があり得る。しかしながら、従来のシステムにおいて一般に行われているようにすべてのチェーンのコンテンツ全体を記憶することは、著しい量のストレージ（たとえば、数百万ビット）を利用し得る。たとえば、ＪＴＡＧチェーンが、１００ＤＷＯＲＤ長である場合、２つのＤＷＯＲＤのみがＢＩＳＴのために書き込まれる必要がある場合でも、（上記の）表１中で識別されたコンテンツのストレージのために必要とされるビット数は、３２６４ビット（たとえば、ＣＴＲＬレジスタ１６０のための３２ビット、ＣＦＧレジスタ６２のための３２ビット、及びデータ・レジスタ１６６のための３２００ビット）である。さらに、ＩＥＥＥ１５００バス１２６からデータを読み取るために、ＣＴＲＬレジスタ１６０とＣＦＧレジスタ１６２とが、各ＤＷＯＲＤについて別個に構成され得るので、ストレージのために６４００ビットが必要とされる（たとえば、ＪＴＡＧチェーン中の各ＤＷＯＲＤについてのＣＴＲＬレジスタのための３２ビット、及びＪＴＡＧチェーン中の各ＤＷＯＲＤについてのＣＦＧレジスタ１６２のための３２ビット）。従来のシステムとは対照的に、本開示のシステムは、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２を構成するための命令と組み合わせて、所与のＢＩＳＴを実行するために書き込まれる必要があるターゲットＤＷＯＲＤのみを記憶する。したがって、本開示のシステムは、ＪＴＡＧチェーン・シフト・レジスタ中で各ビットのあらかじめ定義されたリセット値を活用し、ビットのサブセット（たとえば、ＤＷＯＲＤ）へのＪＴＡＧチェーン・シフト・レジスタの編成を使用して、特定のビットをターゲットにし、非ターゲット・ビットをスキップする。
【００２５】
より詳細には、ＢＩＳＴを実行するようにＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２を構成するとき、本開示のテスト・システムは、ＷＳＯからシフトされた既存の値が、ＷＳＩにループ・バックされて、既存の値（たとえば、あらかじめ定義されたリセット値）を保持することを引き起こし得る、「ｂｕｒｓｔ＿ｍｏｄｅ」命令を含み得る。したがって、ＩＲシフトを実施するチェーンを構成することに加えて、最初に、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２をｂｕｒｓｔ＿ｗｒｉｔｅモードを選択するように構成することによって、ＪＴＡＧチェーンへのバースト書込みシーケンスが実行され得る。次いで、本明細書で説明されるように、ターゲットＤＷＯＲＤについて、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２は、ターゲットＤＷＯＲＤをプログラムするように構成され得（たとえば、上記の表１を参照）、データ・レジスタ１６６は、ＩＥＥＥ１５００バス１２６にシフトされるべきＤＷＯＲＤのコンテンツでプログラムされ得る。ＩＳＴモジュール１２２中のレジスタと組み合わせてｂｕｒｓｔ＿ｍｏｄｅ命令を使用して、本開示のテスト・システムは、所与のＢＩＳＴにおける非ターゲットＤＷＯＲＤのいずれも記憶されないので、メモリ利用率を著しく低減する。たとえば、ＪＴＡＧチェーンが、１００個のＤＷＯＲＤである場合、及びＢＩＳＴを実行するために２つのＤＷＯＲＤのみが書き込まれる場合、ストレージのために１９２ビットが必要とされる（たとえば、第１のＤＷＯＲＤについてのＣＴＲＬレジスタ１６０のための３２ビット、第１のＤＷＯＲＤについてのＣＦＧレジスタ１６２のための３２ビット、第１のＤＷＯＲＤのデータ・レジスタ１６６のための３２ビット、第２のＤＷＯＲＤについてのＣＴＲＬレジスタ１６０のための３２ビット、第２のＤＷＯＲＤについてのＣＦＧレジスタ１６２のための３２ビット、及び第２のＤＷＯＲＤのデータ・レジスタ１６６のための３２ビット）。
【００２６】
本開示の別の態様では、ＤＷＯＲＤレベルにおいてプログラムする能力を提供することに加えて、テスト・システムは、ＤＷＯＲＤ内の各ビットをプログラムするためにＭＡＳＫレジスタ１６４を使用し得る。すなわち、ＤＷＯＲＤ中のいくつかのビットのみがＢＩＳＴのために上書きされる必要がある場合、ＭＡＳＫレジスタ１６４は、それらの選択されたビットのみを修正し、それらのあらかじめ定義されたリセット値において他のビットを保持するように、プログラムされ得る。本開示で使用される、これは、あらかじめ定義されたリセット値を保持することができる、所与のＤＷＯＲＤ中の単一ビットを識別する「スキップビット命令」と呼ばれることがある。ＤＷＯＲＤ中のすべてのビットがＢＩＳＴのためにプログラムされることになる場合、ＭＡＳＫレジスタ１６４はスキップされ得る。したがって、ｂｕｒｓｔ＿ｍｏｄｅを構成するための上記で説明されたシーケンスは、ＭＡＳＫレジスタ１６４に関する１つ又は複数の追加の動作を含み得る。より詳細には、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２が、ターゲットＤＷＯＲＤをプログラムするように構成された後に（たとえば、表１を参照）、ＭＡＳＫレジスタは、ターゲットＤＷＯＲＤ中の選択的ビットでプログラムされ得る。ただし、これは、ＤＷＯＲＤ中のすべてのビットがプログラムされることになる場合、スキップされ得る。次いで、データ・レジスタ１６６は、ＩＥＥＥ１５００バス１２６にシフトされているＤＷＯＲＤのコンテンツでプログラムされ得る。したがって、ＭＡＳＫレジスタ１６４は、ビット・レベルにおける追加のストレージ節約を提供する。
【００２７】
本開示の別の態様では、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２を通る複数のＤＷＯＲＤを構成するために必要とされるオーバーヘッドの量は、所与のＢＩＳＴが、（たとえば、チェーン中で互いに直接隣接する）連続するＤＷＯＲＤをプログラムすることを必要とするとき、低減される。すなわち、本明細書で説明されるように、いくつかの事例では、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２は各ＤＷＯＲＤについて構成され得、両方のレジスタが３２ビットであるとき、これは、各ＤＷＯＲＤについて６４ビットのストレージを必要とする。いくつかの事例では、連続するＤＷＯＲＤが、ＢＩＳＴを実行するためにプログラムされるとき、「オートインクリメントＤＷＯＲＤ」命令が、ＢＩＳＴにおいて構成され、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２に提供され得る。この命令は、ＩＳＴモジュール１２２を、自動的に後続のＤＷＯＲＤを移し、ＣＴＲＬレジスタ１６０をスキップするようにプログラムし得、ＣＦＧレジスタ１６２は、後続のＤＷＯＲＤについて書き込む。この手法は、所与のＢＩＳＴを稼働するためのメモリ要件及びランタイムの組み合わせられた低減を提供するために、ｂｕｒｓｔ＿ｍｏｄｅ及びＭＡＳＫレジスタ１６４と組み合わせられ得る。たとえば、ＪＴＡＧチェーンが１００個のＤＷＯＲＤである場合、及びＢＩＳＴを実行するために２つの連続するＤＷＯＲＤのみが書き込まれる場合、ｂｕｒｓｔ＿ｍｏｄｅ及びオートインクリメントを使用して、ストレージのために１２８ビットが必要とされる（たとえば、第１のＤＷＯＲＤ及び第２のＤＷＯＲＤについてのＣＴＲＬレジスタ１６０のための３２ビット、第１のＤＷＯＲＤ及び第２のＤＷＯＲＤについてのＣＦＧレジスタ１６２のための３２ビット、並びに第１のＤＷＯＲＤ及び第２のＤＷＯＲＤについてのデータ・レジスタ１６６のための６４ビット）。ｂｕｒｓｔ＿ｍｏｄｅ及びオートインクリメント・モードはまた、ＪＴＡＧチェーンを読み取るために著しいストレージ節約を提供する。たとえば、上記で説明されたように、従来のシステムを使用して１００個のＤＷＯＲＤのチェーンを読み取るために、６４００ビットのストレージが使用される。対照的に、ＪＴＡＧチェーンを読み取るためにｂｕｒｓｔ＿ｗｒｉｔｅ及びオートインクリメント・モードを使用すると、１００ＤＷＯＲＤチェーンの読取り命令を記憶するためのストレージ要件は、ＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２が、各ＤＷＯＲＤについて再構成される必要がないことがあるので、６４ビットである（たとえば、ＣＴＲＬレジスタ１６０のための３２ビット及びＣＦＧレジスタ１６２のための３２ビット）。そのような実例では、１００ＤＷＯＲＤ  ＪＴＡＧチェーンを読み取るためのストレージ・サイズは、６４００ビットから６４ビットに低減される。
【００２８】
コンピューティング・プラットフォーム１００が、ＪＴＡＧ／ＩＥＥＥ１５００アーキテクチャとテスト・システムとを含む、上記で説明されたハードウェアを含むように製造されると、ＢＩＳＴは、ＡＴＥを使用して構成され得る。さらに、所与のＢＩＳＴのためにターゲットＤＷＯＲＤのみをプログラムする能力の場合、得られたＢＩＳＴテスト・シーケンスのサイズが著しく低減され得る。構成されると、これらのＢＩＳＴテスト・シーケンスは、オフチップ外部メモリ１０４に別個に記憶され得、したがって、オフチップＩＳＴコントローラ１０６は、えり抜きのＢＩＳＴテスト・シーケンスを選択的に取り出すことができる。たとえば、図３を参照すると、オフチップ・アーキテクチャ１０２のより詳細な図を示すブロック図が示されている。図３は、ＢＩＳＴテスト・シーケンスを記憶し得るオフチップ外部メモリ１０４を含む。ＢＩＳＴテスト・シーケンスは、命令部分（たとえば、ＦＳＭ命令、ＣＴＲＬ命令、ＣＦＧ命令、及びＭＡＳＫ命令）とテストデータ部分（たとえば、データ命令）の両方を含み得る、ＢＩＳＴテスト・シーケンスＡ１０８を含み得る。いくつかの事例では、テスト・シーケンス（たとえば、ＢＩＳＴテスト・シーケンスＡ１０８）が、単一のＪＴＡＧレジスタに関する命令部分とデータ部分とを有し得る。他の態様では、テスト・シーケンス（たとえば、ＢＩＳＴテスト・シーケンスＡ１０８）が、複数のＪＴＡＧに関する命令部分とデータ部分とを有し得、したがって、単一のテスト・シーケンス内に、複数のＦＳＭ命令、ＣＴＲＬ命令、ＣＦＧ命令、ＭＡＳＫ命令、及びデータ命令があり得る。ＢＩＳＴテスト・シーケンスＡ１０８を取り出すようにトリガされたとき、オフチップＩＳＴコントローラ１０６（たとえば、セキュアなソフトウェア）は、メモリ１０４からＢＩＳＴテスト・シーケンスＡ１０８を取り出し、オンチップ・アーキテクチャ１１２にＢＩＳＴテスト・シーケンスＡ１０８を通信し得る。たとえば、ＢＩＳＴテスト・シーケンスＡ１０８は、上記で説明されたようにオンチップＲＡＭにロードされ得る。ＢＩＳＴテスト・シーケンスＡ１０８は、次いで、レジスタを構成し、ＪＴＡＧ／ＩＥＥＥ１５００アーキテクチャ１１６のターゲット部分に関してＢＩＳＴを稼働し得る。したがって、チェーン全体をシフトし、チェーン上のすべてのビットについての決定論的値を指定する、従来のシステムとは対照的に、本開示のテスト・システムは、任意のターゲットＢＩＳＴインスタンス又はターゲットＪＴＡＧレジスタが、同じチェーン上のすべての他のレジスタの既存の値を保存しながら、個別のＢＩＳＴテスト・シーケンス（たとえば、１０８）で選択的にプログラムされることを可能にする。
【００２９】
本明細書で説明されるように、従来のシステムは、クロック、電力、及びＩ／Ｏ状態の関数値をキャプチャしない。たとえば、従来の手法は、指定されたＪＴＡＧレジスタ（たとえば、図２中の１５８）を使用して関数値をオーバーライドすることを可能にするが、これらの従来の手法は、すでに構成された機能的設定に気づいておらず、したがって、その後、機能的設定を維持又は復元することが可能でない。対照的に、ＬＢＩＳＴを稼働するより前に、本開示のシステムは、ＬＢＩＳＴ走査動作中にこれらの状態を損失することを回避するために、クロック、電力、及びＩ／Ｏを構成するための、機能的設定をキャプチャし、保持する。より詳細には、本開示は、ＬＢＩＳＴ走査動作を稼働するより前に機能的設定をキャプチャするようにＪＴＡＧレジスタをプログラムするソフトウェアを含み、従来のテスト・システムとは対照的に、機能的設定は、ＬＢＩＳＴの後に読み取られ得る。
【００３０】
より詳細には、図４を参照すると、限定はしないが、図２中のＪＴＡＧレジスタ１５８など、例示的なＪＴＡＧレジスタが提供される。本開示のシステムは、ＬＢＩＳＴ走査動作を稼働するより前に機能的設定をキャプチャするようにＶＡＬＳ  ＪＴＡＧレジスタ２１０及びＭＡＳＫ  ＪＴＡＧレジスタ２１２をプログラムする、ソフトウェアを含み得、したがって、機能的設定は、テストの後に読み取られ、復元され得る。図４に示されているこれらの動作のうちのいくつかは、詳細には、ＪＴＡＧ規格に従う様々な状態を有する有限状態機械（たとえば、ＩＳＴモジュール１２２の有限状態機械（ＦＳＭ）１７６）に関する。機能的データをオーバーライドするより前に、「ｃａｐｔｕｒｅＤＲ」ステップ中に、関数値が、パス２１４によって示されているように、ＶＡＬＳ  ＪＴＡＧレジスタ２１０に書き込まれ得る。次いで、「ｓｈｉｆｔＤＲ」段階中に、チェーン全体が、矢印２１６によって示されているように、ＶＡＬＳ  ＪＴＡＧレジスタ２１０を通してシフトされ得る。最後に、「ｕｐｄａｔｅＤＲ」ステップ中に、シフト・レジスタ中の関数値は、矢印２１８によって示されているように、ＶＡＬＳ  ＪＴＡＧレジスタ２１０の更新ラッチ中にキャプチャされ得る。この時点で、オーバーライド・データは、従来の様式でＶＡＬＳ  ＪＴＡＧレジスタ２１０にシフトされ得る。たとえば、ＭＡＳＫ  ＪＴＡＧレジスタ２１２は、ＶＡＬＳ  ＪＴＡＧレジスタ２１０がプログラムされる間、最初に、すべての値を「０」に設定し得る。ＶＡＬＳ  ＪＴＡＧレジスタ２１０がプログラムされた後に、ＭＡＳＫ  ＪＴＡＧレジスタ２１２のチェーン中のすべてのビットが「１」に設定され得る。たとえば、「ｓｈｉｆｔＤＲ」２２０中に、チェーン全体は、「１」に設定されるようにシフトされ、「ｕｐｄａｔｅＤＲ」２２２中に、シフト・レジスタ中でキャプチャされた値は、更新ラッチ中にキャプチャされる。本開示のこの態様では、従来のシステムでは未使用である、ＶＡＬＳ  ＪＴＡＧレジスタ２１０へのキャプチャ・パスが、クロック、電力、及びＩ／Ｏの機能状態をキャプチャするために利用され得、したがって、関数値はＬＢＩＳＴ中に損失されない。
【００３１】
さらなる態様では、本開示は、サイクルのキャプチャ／保持時間を低減することによって関数値のキャプチャを最適化するための動作をも含む。より詳細には、ｃａｐｔｕｒｅＤＲ２１４及びｕｐｄａｔｅＤＲ２１８が単一のサイクル動作を含み得、ｓｈｉｆｔＤＲ２１６が、ターゲットＪＴＡＧチェーンの長さに応じたマルチ・サイクル動作を含み得る。たとえば、ターゲットＪＴＡＧチェーンが１０００ビットである場合、上述のｃａｐｔｕｒｅＤＲ２１４、ｓｈｉｆｔＤＲ２１６、及びｕｐｄａｔｅＤＲ２１８動作を実行するために必要とされる時間は、１００２（たとえば、ｃａｐｔｕｒｅＤＲ２１４のための１サイクル、ｓｈｉｆｔＤＲ２１６のための１０００サイクル、及びｕｐｄａｔｅＤＲ２１８のための１サイクル）である。ただし、ｓｈｉｆｔＤＲ動作（たとえば、図４中のパス２１６）は、実際には、ＶＡＬＳ  ＪＴＡＧレジスタ２１０中に機能的構成をキャプチャするために必要とされないことがある。しかし、上述のように、従来のシステムは、ＦＳＭにおけるステップをスキップする能力を提供せず、これは、不要なサイクル（たとえば、１０００ビットをもつＪＴＡＧチェーンの実例に基づく１０００個の不要なサイクル）を引き起こす。従来のシステムとは対照的に、本開示は、ＣＦＧレジスタ１６２中のビットをプログラムすることによって完全にｓｈｉｆｔＤＲ２１６状態をスキップする能力を提供し、これは、システムが、さもなければｓｈｉｆｔＤＲ２１６状態において必要とされることになるサイクルを省略することを可能にする。これは、図１及び図２で説明されるハードウェア（たとえば、ＣＦＧレジスタ１６２）が、ＢＩＳＴに関連するランタイムを改善するためにどのように活用されるかの別の実例である。
【００３２】
本開示のさらなる態様では、ＢＩＳＴを稼働するとき、ＪＴＡＧレジスタにおける設定のうちのいくつかは機能的設定をキャプチャし、他のフィールドは新しい値でプログラムされる。これは、機能的設定をキャプチャするために使用されるいくつかのフィールドと、ＭＢＩＳＴ又はＬＢＩＳＴのための設定を構成するために使用される他のフィールドとを有する、いくつかのＪＴＡＧレジスタのために適用され得る。したがって、ｂｕｒｓｔ＿ｍｏｄｅ、オートインクリメント、ＭＡＳＫレジスタ、及び、関数値をキャプチャすることなど、本明細書で説明される様々な態様は、他のビットの機能的設定をキャプチャしながら選択的に数個のビットをプログラムするために、組み合わせられ得る。
【００３３】
再び図２を参照すると、チップ１１２は、パーティションにわたって複製される又はクラスタにわたって複製される複数のＪＴＡＧレジスタを有し得、したがって、いくつかのＢＩＳＴのために、これらのＪＴＡＧレジスタは同じデータでプログラムされる必要があり得る。たとえば、アーキテクチャ１１６は、各々、２００ビットのＭＢＩＳＴ  ＪＴＡＧチェーンを受信するべきである、３００個のパーティションを含み得る。従来のテスト・システムは、すべてのパーティション中で、デイジーチェーンされたＪＴＡＧレジスタにデータをプログラムするために、６０，０００個超のサイクルを実行し得、すべてのそのようなデータが、あらゆるパーティションについてオンチップで記憶される必要があり得る。これらの従来の手法は、システムに関するストレージ要件とランタイム要件の両方を増加させ得る。
【００３４】
これらの従来のシステムとは対照的に、本開示のテスト・システムは、ＪＴＡＧテスト・シーケンスを配信するためのブロードキャスト・モード、又はデイジーチェーン・モードのいずれかを可能にするように、各パーティション中の及び各クラスタ中のＪＴＡＧレジスタを構成し得る。ブロードキャスト・モードでは、クラスタ中のすべてのパーティションがブロードキャストされ得、チップ中のすべてのクラスタがブロードキャストされ得る。たとえば、ＢＩＳＴテスト・シーケンス（たとえば、Ａ１０８）の一部として記憶された命令が、アーキテクチャ１１６の中で編成されたパーティションレベル又はクラスタレベルのＪＴＡＧレジスタによって制御されるブロードキャスト・モードをアクティブ化するための命令を含み得る。したがって、ブロードキャスト・モードが、ＪＴＡＧレジスタがブロードキャスト・モード命令を受信したことによってアクティブ化されたとき、パーティション（又はクラスタ）のすべてが、同じＢＩＳＴテスト・シーケンスで並行してプログラムされ得る。したがって、ブロードキャスト・モードを使用して、ランタイム及びストレージ利用率が著しく低減され得る。上記で概説された実例（たとえば、３００個のパーティション、及び２００ビットのＢＩＳＴ  ＪＴＡＧチェーン）を再び参照すると、従来のシステムを使用して、６０，０００サイクルで、複製されたＪＴＡＧチェーンをプログラムする代わりに、本開示のブロードキャスト・モードは、パーティションが並行してプログラムされ得るので、ほんの数百個のシフト・サイクルを使用する。さらに、デイジー・チェーン・コンテンツ全体がチップに記憶されることを必要とされない。代わりに、パーティションごとのほんの数百個のビットを記憶し、そのビットを１回取り出し、そのビットをすべてのパーティションにブロードキャストすることが、十分であり得る。
【００３５】
いくつかの事例では、ブロードキャスト・モードを利用するために、プログラムされるべきチェーン長及びコンテンツが、パーティション／クラスタにわたって同じである必要があり得る。また、他のフィールドを保持しながら選択的ビットをプログラムすることに対するハードルがある場合、チェーン全体がプログラムされる必要があり得る。たとえば、関数値のキャプチャを表す図４を再び参照すると、異なるパーティション中のＭＡＳＫ  ＪＴＡＧレジスタ（たとえば、２１２）が異なる長さである、テスト・シナリオが発生し得る。上記で説明されたように、ＭＡＳＫ  ＪＴＡＧレジスタの各ビットが（たとえば、ｓｈｉｆｔＤＲ２２０中に）「１」に変更され得、したがって、オーバーシフト（ｏｖｅｒ−ｓｈｉｆｔｉｎｇ）が、依然として、必要とされる「１」値にＭＡＳＫ  ＪＴＡＧレジスタを有効にプログラムするであろう（アンダーシフト（ｕｎｄｅｒ−ｓｈｉｆｔｉｎｇ）は、それを行わず、ビットのうちのいくつかにおいて「０」値を残すであろう）。したがって、本開示のシステムでは、ブロードキャストを介してデータを受信するすべてのターゲット・パーティションの中の最大チェーン長が、ＭＡＳＫ  ＪＴＡＧレジスタにいくつの「１」値をシフトすべきかを決定するために使用される。たとえば、第１のパーティションは、第１の量のビット（たとえば、１２０）を有する第１のＭＡＳＫ  ＪＴＡＧレジスタを含み得、第２のパーティションは、第１の量のビットよりも少なくなり得る第２の量のビット（たとえば、１１０）を有する第２のＭＡＳＫ  ＪＴＡＧレジスタを含み得る。テスト・シーケンスが、第１のパーティション及び第２のパーティションにブロードキャストされた場合、第１の量（たとえば、１２０）に等しい量の「１」が、関数値をキャプチャするために第２のＭＡＳＫ  ＪＴＡＧレジスタにシフトされ得る。
【００３６】
引き続き図２を参照すると、アーキテクチャ１１６は、１つ又は複数のＳＫＵを含み得、ＪＴＡＧデイジーチェーン・パス上のいくつかのパーティション又はクラスタが電力ゲートされ得る。その場合、チェーンは、潜在的にブロックされ、電力ゲートされていないパーティション又はクラスタへのアクセスを防ぎ得る。言い換えれば、パーティション又はクラスタが電力ゲートされた場合、パーティション又はクラスタは、それを通過する走査パスを破壊し得る。したがって、本開示の一態様は、チェーンがブロックされる可能性を低減するために、ＩＥＥＥ１５００  ＷＳ＿ＢＹＰＡＳＳパスを使用する。より詳細には、小さいロジックが、パーティション及びクラスタごとの常時オン・ドメイン中に保たれ、したがって、電力がゲートされたとき、ＷＳＣは、その常時オン・ドメイン中の単一ビットＷＳ＿ＢＹＰＡＳＳパスを通過する。したがって、より低い電力モードにおいてさえ、ＩＥＥＥ１５００チェーンはそのままである。
【００３７】
さらに、ＪＴＡＧテスト・シーケンスは、ゲートされていない電力ドメイン上にある単一ビット・バイパス・パスを通って他のクラスタ又はパーティションをバイパスしながら、一度に１つのクラスタ又は１つのパーティションにアクセスするように構成され得る。言い換えれば、一度に１つのクラスタ又は１つのパーティションがアクセスされるが、ＪＴＡＧテスト・シーケンスは、ハードウェアがすべてのＳＫＵをサポートしなければならないので、すべてのクラスタ又はパーティションについての命令とデータとを含むように構成され得るが、オンチップＩＳＴコントローラ１７４は、クラスタごとに又はパーティションごとにテスト・シーケンスをロードし得る。たとえば、パーティション又はクラスタについてのＪＴＡＧシーケンスがＩＥＥＥ１５００バス１２６にロードされた後に、有限状態機械は、ｓｈｉｆｔＤＲからｓｈｉｆｔＩＲに遷移して、次のパーティション又はクラスタが別個にロードされることを可能にし得る。クラスタ又はパーティションがレールゲートされた場合でも、そのクラスタ又はパーティションをターゲットにするシーケンスは、依然として実行され得、そのクラスタのための実際のプログラミングが失敗し得る。しかしながら、これは、レールゲートされたクラスタが、機能的に使用されず、テスト・システムによってテストされる必要がないので、障害をトリガしないことがある。
【００３８】
図１〜図４に関して本開示の様々な態様について説明したので、次に、様々な追加の態様が説明される。これらの様々な追加の態様について説明するとき、説明の目的で図１〜図４も参照され得る。より詳細には、本開示の別の態様は、ＢＩＳＴを実施するためのテスト・システムを含む。テスト・システムは、複数のビット・サブセット（たとえば、３２ビットを有するＤＷＯＲＤ、又は別の量のビットを有するビット・サブセット）を含み、テスト・シーケンスのシリアル入力を受信するように構成されたパス（たとえば、シリアル又はデイジーチェーン）を形成する、テストシーケンス・レジスタ（たとえば、ＪＴＡＧレジスタ１５８）を含み得る。さらに、テスト・システムは、テストシーケンス・レジスタへのシリアル入力の送信を制御するための命令レジスタ（たとえば、１５６）を含み得る。テスト・システムは、複数のビット・サブセット中のビット・サブセットの第１のサブセット識別子（たとえば、ＤＷＯＲＤ  ｉｄ  ｌｓｂ）を含むデータの第１のセット（たとえば、上記の表１中で識別されたＣＴＲＬレジスタのコンテンツ）を受信することによって、命令レジスタをプログラムするための制御レジスタ（たとえば、１６０）をも含み得る。テスト・システムは、ビット・サブセットの第２のサブセット識別子（たとえば、ＤＷＯＲＤ  ｉｄ  ｍｓｂ）を含むデータの第２のセットを受信及び通信することによって、命令レジスタをプログラムするための構成レジスタ（たとえば、１６２）を含み得る。さらに、テスト・システムは、シリアル入力に書き込まれるべきテスト・シーケンス（たとえば、ＢＩＳＴテスト・シーケンス中のデータ命令）を受信するためのデータ・レジスタ（たとえば、１６６）を含み得る。
【００３９】
テスト・システムは、他の追加又は代替の構成要素を含み得る。たとえば、テスト・システムは、あらかじめ定義されたリセット値を保持するための、ビット・サブセットの１つ又は複数のビットを指定するスキップビット命令を受信することによって、命令レジスタ（たとえば、１５６）をプログラムするための別のレジスタ（たとえば、１６４）をも含み得る。テスト・システムの他の態様では、ｂｕｒｓｔ＿ｍｏｄｅ命令が、ＣＴＲＬレジスタ及び／又はＣＦＧレジスタに提供され得、ｂｕｒｓｔ＿ｍｏｄｅ命令は、命令レジスタを、ビットをシリアル入力としてパス（たとえば、ＷＳＣパス）にループ・バックするようにプログラムし得る（たとえば、ここで、ビットは、テスト・シーケンスがパスに転送されるとき、テストシーケンス・レジスタ（たとえば、１５８）中にあり、ビット・サブセット中にない）。テスト・システムの別の態様では、オートインクリメント命令が、ＣＴＲＬレジスタ及び／又はＣＦＧレジスタに提供され得、オートインクリメント命令は、命令レジスタを、ビット・サブセットと同じ様式で他のビット・サブセットのシリアル入力を制御するようにプログラムし得る（たとえば、ここで、他のビット・サブセットは、テスト・シーケンス中のビット・サブセットの後に連続的に続く）。
【００４０】
テスト・システムの他の態様では、テストシーケンス・レジスタ（たとえば、ＪＴＡＧレジスタ）は、読み取られるべき、データ・レジスタ（たとえば、１６６）にシフトされるテスト結果をシリアルに出力するように構成され得る。さらに別の態様では、テスト・システムは、データ・レジスタ（たとえば、１６６）と外部自動テスト機器（たとえば、１２８）との間でのテストシーケンス・レジスタ（たとえば、ＪＴＡＧレジスタ）へのアクセスを制御するように構成されたアクセス制御アプリケーション（たとえば、アクセス制御１２５）をさらに含み得る。いくつかの実施例では、テストシーケンス・レジスタはチップ（たとえば、１１２）上に配設され得、テスト・システムは、チップ上にあり、オンチップ・メモリ（たとえば、１７０）からテスト・シーケンス（たとえば、１７２）を取り出すように構成された、テストシーケンス取出しアプリケーション（たとえば、オンチップＩＳＴコントローラ１７４）をさらに含み得る。さらに、テスト・システムは、チップから離れて維持され、オフチップ外部メモリ（たとえば、１０４）からテスト・シーケンス（たとえば、１０８）を取り出し、オンチップ・メモリ（たとえば、１７０）にテスト・シーケンスをロードするように構成された、テストシーケンス取出しアプリケーション（たとえば、オフチップＩＳＴコントローラ１０６）を含み得る。
【００４１】
テスト・システムでは、テスト・シーケンスは、ＪＴＡＧレジスタ中で稼働されたとき、ＬＢＩＳＴを稼働するより前に、クロック、電源、及びＩ／Ｏの関数値をキャプチャする関数値復元命令を含み得る。たとえば、パス（たとえば、ＷＳＣパス）へのアクセスを制御する有限状態機械（ＦＳＭ）のｃａｐｔｕｒｅＤＲ動作中に、関数値は、ＶＡＬＳ  ＪＴＡＧレジスタ（たとえば、２１０）中のデータ・チェーン中にキャプチャされ得る（たとえば、図４中の２１４）。さらに、ＦＳＭのｓｈｉｆｔＤＲ段階中に、ＶＡＬＳ  ＪＴＡＧレジスタ中のデータ・チェーンはシフトされ得る（たとえば、図４中の２１６）。さらに、ｕｐｄａｔｅＤＲ動作中に、関数値は、ＶＡＬＳ  ＪＴＡＧレジスタの更新ラッチ中にキャプチャされ得る（たとえば、２１８）。ＶＡＬＳ  ＪＴＡＧレジスタがプログラムされた後に、ＭＡＳＫ  ＪＴＡＧレジスタ中のすべてのビットが共通の値（たとえば、「１」）に設定され得る。
【００４２】
テスト・システムでは、テストシーケンス・レジスタは、第１のテストシーケンス・レジスタであり得る。システムは、第１のテストシーケンス・レジスタを含む第１のチップ・パーティションと、第１のチップ・パーティションとデイジー・チェーンされ、第２のテストシーケンス・レジスタ（たとえば、第２のＪＴＡＧレジスタ）を含む、第２のチップ・パーティションとをも含み得る。第１のテストシーケンス・レジスタと第２のテストシーケンス・レジスタとは、両方とも、第１のテストシーケンス・レジスタと第２のテストシーケンス・レジスタとが複製である場合など、ロジック・ビルトイン・セルフテスト（ＬＢＩＳＴ）を稼働するためのテスト・シーケンスのブロードキャスト入力を受信するように構成され得る。第１のチップ・パーティション及び第２のチップ・パーティションは、各々、クロック、電力、及びＩ／Ｏ状態の関数値がキャプチャされたとき、ＬＢＩＳＴを稼働するより前に共通の値にすべて変更されるビットを有するそれぞれのＭＡＳＫ  ＪＴＡＧレジスタ（たとえば、２１２）を含み得る。第１のパーティションの第１のＭＡＳＫ  ＪＴＡＧレジスタが、第２のパーティションの第２のＭＡＳＫ  ＪＴＡＧレジスタの第２の量のビットよりも大きい第１の量のビットを有するとき、第１のチップ・パーティションと第２のチップ・パーティションの両方に提供されるブロードキャスト入力は、第１の量に等しい量の共通の値を含み得る。
【００４３】
次に図５及び図６を参照すると、本明細書で説明される方法５００及び６００の各ブロックは、ハードウェア、ファームウェア、及び／又はソフトウェアの任意の組合せを使用して実施され得る、コンピューティング・プロセスを含む。たとえば、メモリに記憶された命令を実行するプロセッサによって、様々な機能が実行され得る。方法５００及び６００はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能命令として具現され得る。方法５００及び６００は、いくつかの実例を挙げれば、スタンドアロン適用例、サービス又はホストされたサービス（スタンドアロン又は別のホストされたサービスとの組合せで）、或いは、別の製品へのプラグインによって提供され得る。さらに、方法５００及び６００は、実例として、図１〜図３のシステム１００に関して説明される。しかしながら、これらの方法は、追加又は代替として、限定はしないが、本明細書で説明されるものを含む、任意の１つのシステム、又はシステムの任意の組合せによって実行され得る。
【００４４】
次に図５を参照すると、図５は、本開示のいくつかの実施例による、ＢＩＳＴを稼働するための方法５００を示す流れ図である。方法５００は、ブロックＢ５０２において、ＪＴＡＧシーケンスのテスト部分が、第１の量のビットを有するデータ・レジスタ（たとえば、ＪＴＡＧレジスタ）に入力されたとき、チップ上のメモリから、チップ上でビルトイン・セルフテスト（ＢＩＳＴ）を実施するためのＪＴＡＧシーケンスを取り出すことを含む。
【００４５】
方法５００は、ブロックＢ５０４において、１つ又は複数の第１の命令レジスタ（たとえば、１６０、１６２など）に、ＪＴＡＧシーケンスの命令部分をロードすることを含む。第１の命令レジスタは、データ・レジスタを制御する第２の命令レジスタ（たとえば、１５６）をプログラムし得る。ＪＴＡＧシーケンスの一実例は、オンチップＩＳＴコントローラによって取り出され、ＩＳＴモジュール１２２のレジスタにロードされ得る、ＢＩＳＴテスト・シーケンスＡ１７２である。ＪＴＡＧシーケンスは、テストデータ部分が、ＩＥＥＥ１５００バス１２６に移され、ＪＴＡＧデータ・レジスタ（たとえば、１５８）に入力されたとき、ＢＩＳＴを実施するためのテストデータ部分を含み得る。ＪＴＡＧデータ・レジスタは、第１の量のビットを含む。さらに、ＢＩＳＴテスト・シーケンスＡ１７２は、ＪＴＡＧ命令レジスタ（たとえば、１５６）をプログラムするためにＣＴＲＬレジスタ１６０及びＣＦＧレジスタ１６２にロードされる命令部分をも含み、これは、ＪＴＡＧデータ・レジスタ１５８を制御し得る。
【００４６】
方法５００は、ブロックＢ５０６において、チップ上のデータ・シフト・レジスタ（たとえば、１６６）にＪＴＡＧシーケンスのテスト部分をロードして、データ・レジスタに送信されるべきテスト部分をシリアル・データ・バスにシフトすることを含む。ＪＴＡＧシーケンスのテスト部分は、第２の量のビット（たとえば、ＤＷＯＲＤ）を含み得、第２の量のビットは、（たとえば、ＤＷＯＲＤが、ＪＴＡＧチェーンのビット・サブセットであるので）第１の量のビットよりも少なくなり得る。この点において、ＪＴＡＧチェーンの一部分のみが書き込まれ、それにより、ランタイム及びメモリ利用率を低減し得る。
【００４７】
次に図６を参照すると、図６は、本開示のいくつかの実施例による、ＢＩＳＴを稼働するための方法６００を示す別の流れ図を含む。方法６００は、ブロックＢ６０２において、チップ上でロジック・ビルトイン・セルフテスト（ＬＢＩＳＴ）を稼働するより前に、クロック、電源、又はＩ／Ｏ状態のうちの少なくとも１つの関数値を第１のシフト・レジスタ（たとえば、ＶＡＬＳ  ＪＴＡＧレジスタ２１２）にコピーすることを含む。たとえば、ｃａｐｔｕｒｅＤＲ動作中に、クロック、電源、及び（１つ又は複数の）Ｉ／Ｏ状態の関数値がシフト・レジスタにコピーされ得る。ｃａｐｔｕｒｅＤＲ状態は、有限状態機械（ＦＳＭ）の状態に対応し得、ＦＳＭは、ｃａｐｔｕｒｅＤＲ状態の後の第１のｓｈｉｆｔＤＲ状態を含み得る。たとえば、図４では、参照番号２１４は、関数値がＶＡＬＳ  ＪＴＡＧレジスタ２１０にコピーされることを表し得る。
【００４８】
方法６００は、ブロックＢ６０４において、第１のシフト・レジスタの更新ラッチ中に関数値をキャプチャすることを含む。たとえば、関数値は、第１のｕｐｄａｔｅＤＲ動作（たとえば、図４中の２１８）中に、ＶＡＬＳ  ＪＴＡＧシフト・レジスタ２１０の更新ラッチ中にキャプチャされ得る。
【００４９】
方法６００は、ブロックＢ６０６において、第２のシフト・レジスタ（たとえば、ＭＡＳＫ  ＪＴＡＧレジスタ）中で、すべてのビットを共通の値にシフトすることを含む。たとえば、第２のｓｈｉｆｔＤＲ動作（たとえば、矢印２２０）中に、ＭＡＳＫ  ＪＴＡＧレジスタ２１２中のすべてのビットのそれぞれの値は、ＶＡＬＳ  ＪＴＡＧレジスタ２１０の動作を制御する同じ値にシフトされ得る。たとえば、ＭＡＳＫ  ＪＴＡＧレジスタ２１２中ですべての値を「１」にシフトすることによって、ＶＡＬＳ  ＪＴＡＧレジスタ２１０は、オーバーライド・データでプログラムされ得る。
【００５０】
方法６００は、ブロックＢ６０８において、第２のシフト・レジスタの更新ラッチ中に共通の値をキャプチャすることを含む。たとえば、共通の値の各々が、第２のｕｐｄａｔｅＤＲ動作（たとえば、図４中の矢印２２２）中に、ＭＡＳＫ  ＪＴＡＧレジスタ２１２の更新ラッチ中にキャプチャされ、ここで、すべてのビットを共通の値にシフトすることは、関数値が、ＶＡＬＳ  ＪＴＡＧレジスタ２１０にシフトされたオーバーライド・データでオーバーライドされることを可能にし得る。
【００５１】
本開示は、個人情報端末又は他のハンドヘルド・デバイスなど、コンピュータ又は他の機械によって実行されている、プログラム・モジュールなどのコンピュータ実行可能命令を含む、コンピュータ・コード又は機械使用可能命令の一般的なコンテキストにおいて説明され得る。概して、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む、プログラム・モジュールは、特定のタスクを実施するか、又は特定の抽象データ・タイプを実装する、コードを指す。本開示は、ハンドヘルド・デバイス、コンシューマー・エレクトロニクス、汎用コンピュータ、より専門のコンピューティング・デバイスなどを含む、様々なシステム構成において実施され得る。本開示は、通信ネットワークを通してリンクされるリモート処理デバイスによってタスクが実施される分散コンピューティング環境においても実施され得る。
【００５２】
本明細書で使用される、２つ又はそれ以上の要素に関する「及び／又は」の具陳は、１つの要素のみ、又は要素の組合せを意味すると解釈されるべきである。たとえば、「要素Ａ、要素Ｂ、及び／又は要素Ｃ」は、要素Ａのみ、要素Ｂのみ、要素Ｃのみ、要素Ａ及び要素Ｂ、要素Ａ及び要素Ｃ、要素Ｂ及び要素Ｃ、又は要素Ａ及び要素Ｂ及び要素Ｃを含み得る。さらに、「要素Ａ又は要素Ｂのうちの少なくとも１つ」は、要素Ａのうちの少なくとも１つ、要素Ｂのうちの少なくとも１つ、又は要素Ａのうちの少なくとも１つ及び要素Ｂのうちの少なくとも１つを含み得る。さらに、「要素Ａ及び要素Ｂのうちの少なくとも１つ」は、要素Ａのうちの少なくとも１つ、要素Ｂのうちの少なくとも１つ、又は要素Ａのうちの少なくとも１つ及び要素Ｂのうちの少なくとも１つを含み得る。
【００５３】
本開示の主題は、法定要件を満たすために特異性をもって本明細書で説明される。しかしながら、説明自体は、本開示の範囲を限定するものではない。むしろ、発明者は、請求される主題がまた、現在又は将来の技術とともに、異なるステップ、又は、本明細書において説明されるステップと同様のステップの組合せを含むように、他のやり方で具現され得ることを企図している。その上、「ステップ」及び／又は「ブロック」という用語は、採用される方法の異なる要素を意味するために本明細書で使用され得るが、それらの用語は、個々のステップの順序が明示的に説明される場合を除いて、本明細書で開示される様々なステップ間の任意の特定の順序を暗示するものとして解釈されるべきでない。
【図１】
2021535488.tif 000004
【図２】
2021535488.tif 000005
【図３】
2021535488.tif 000006
【図４】
2021535488.tif 000007
【図５】
2021535488.tif 000008
【図６】
2021535488.tif 000009
【国際調査報告】
2021535488.tif 000010
2021535488.tif 000011
2021535488.tif 000012
2021535488.tif 000013
2021535488.tif 000014