(57)【要約】本発明は動的故障を回路デバイスに注入するための方法及び装置を含む。装置は、回路デバイスの複数の出力部のうちの選択されたもの及び回路デバイスの複数のエラーレジスタのうちの選択されたものの少なくとも１つを識別する選択データを受信するように適合された第１のレジスタ、出力部のうちの選択されたもの及びエラーレジスタのうちの選択されたものの少なくとも１つに向けた伝達のための動的故障データを受信するよう適合された第２のレジスタ、及び出力部のうちの選択されたものの各々及びエラーレジスタのうちの選択されたものの各々の少なくとも１つに動的故障を供給するように、選択データを第１のレジスタに、及び動的故障データを第２のレジスタに適用するためのコントローラを含む。
2010507170.tif 000002
【特許請求の範囲】
【請求項１】
回路デバイスで動的故障を注入するための装置であって、
該回路デバイスの複数の出力部のうちの選択されたもの及び該回路デバイスの複数のエラーレジスタのうちの選択されたものの少なくとも１つを識別する選択データを受信するように適合された第１のレジスタ、
該出力部のうちの選択されたもの及び該エラーレジスタのうちの選択されたものの少なくとも１つに向けた伝達のための動的故障データを受信するよう適合された第２のレジスタ、及び
該出力部のうちの選択されたものの各々及び該エラーレジスタのうちの選択されたものの各々の少なくとも１つに動的故障を供給するように、該選択データを該第１のレジスタに、及び該動的故障データを該第２のレジスタに適用するためのコントローラ
からなる装置。
【請求項２】
請求項１の装置において、該コントローラは該選択データを該第１のレジスタに適用して該複数の出力部それぞれに関連する複数のデータ選択回路及び該複数のエラーレジスタそれぞれに関連する複数のデータ選択回路の少なくとも１つを制御する装置。
【請求項３】
請求項２の装置において、該出力部に関連する各データ選択回路が、適用された該選択データを用いて、該回路デバイスの機能論理部から機能論理データの１つを、又は該第２のレジスタから該動的故障データの関連部分を選択するように制御可能である装置。
【請求項４】
請求項２の装置において、該エラーレジスタに関連する各データ選択回路が、適用された該選択データを用いて、該回路デバイスの複数の入力部のそれぞれから入力論理データを、又は該第２のレジスタから該動的故障データの関連部分を選択するように制御可能である装置。
【請求項５】
請求項１の装置において、該コントローラが、該選択データを該第１のレジスタに選択ベクトルとして適用し、及び該動的故障データを該第２のレジスタに複数の動的故障ベクトルとして適用する装置。
【請求項６】
請求項１の装置であって、さらに、
該回路デバイスと通信するシステムソフトウェアであって、該出力部の選択されたもの及び該エラーレジスタの選択されたもののうちの少なくとも１つに供給された該動的故障を用いて試験されるシステムソフトウェア
からなる装置。
【請求項７】
方法であって、
選択データを第１のレジスタに適用するステップであって、該選択データが、該回路デバイスの複数の出力部のうちの選択されたもの及び該回路デバイスの複数のエラーレジスタのうちの選択されたものの少なくとも１つを識別するよう適合されている、ステップ、及び
動的故障データを第２のレジスタに適用するステップであって、該動的故障データが、該出力部のうちの選択されたもの及び該エラーレジスタのうちの選択されたものの少なくとも１つに向けた伝達のために適合されている、ステップ
からなり、
該出力部のうちの選択されたもの各々及び該エラーレジスタの選択されたもの各々の少なくとも１つに動的故障を供給するように、該選択データ及び動的故障データが適用される方法。
【請求項８】
請求項７の方法において、該選択されたデータが、該複数の出力部それぞれに関連する複数のデータ選択回路及び該複数のエラーレジスタそれぞれに関連する複数のデータ選択回路の少なくとも１つを制御するように適合されている方法。
【請求項９】
回路デバイスに動的故障を注入するためのシステムであって、
該回路デバイスの複数の出力部のうちの選択されたもの及び該回路デバイスの複数のエラーレジスタのうちの選択されたものの少なくとも１つを識別する選択データを受信するように適合された第１のレジスタ、
該出力部のうちの選択されたもの及び該エラーレジスタのうちの選択されたものの少なくとも１つに向けた伝達のための動的故障データを受信するよう適合された第２のレジスタ、及び
該出力部のうちの選択されたものの各々及び該エラーレジスタのうちの選択されたものの各々の少なくとも１つに動的故障を供給するように、該選択データを該第１のレジスタに、及び該動的故障データを該第２のレジスタに適用するためのコントローラ
からなるシステム。
【請求項１０】
請求項９のシステムにおいて、該コントローラは該選択データを該第１のレジスタに適用して該複数の出力部それぞれに関連する複数のデータ選択回路及び該複数のエラーレジスタそれぞれに関連する複数のデータ選択回路の少なくとも１つを制御するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子システムに関し、より具体的にはハードウェア故障注入を用いるシステムソフトウェア試験に関する。
【背景技術】
【０００２】
一般に、様々なアプリケーションで使用される電子システムには高いレベルの動作信頼性が要求される。例えば、電気通信ネットワークにおける電子システムはあるレベルの動作信頼性を必要とすることが多い。同様に、例えば、取引プロセッサ、ウェブサーバ、航空管制システム等といった種々の他のアプリケーションで使用されるコンピュータシステムは高いレベルの動作信頼性を必要とする。これによってシステム設計がそのような電子システムのハードウェア及びソフトウェアの部分における故障耐性機能を必要とするようになる。そのようなシステムでは冗長ハードウェアが通常は設けられるが、高い信頼性要件を有するシステムはそのような故障耐性機能を検証するための適切な試験機能を必要とする。
【０００３】
電子システムの高い信頼性への要求が増すのと同様に電子システムの複雑さが増していることから、システムソフトウェアが確実にシステムハードウェア内の故障状態を検出するための電子システムの試験が実行される。既存のシステムソフトウェア試験手法では、システムソフトウェアが静的な故障を検出できるかを判定するために、静的な故障をシステムハードウェアに注入するハードウェア故障注入法が使用される。例えば、システムソフトウェアがこれらの静的な故障を検出するかを判断するためにｓｔｕｃｋ＿ａｔ及びｓｔｕｃｋ＿ｕｐｏｎのような静的な故障が電子システムに注入され得る。しかし、不都合なことに、動的故障の試験に対するサポートは現在のところ存在しない。
【発明の概要】
【課題を解決するための手段】
【０００４】
回路デバイスに動的な故障を注入するための方法及び装置の発明によって従来技術の様々な欠点が対処される。装置は、回路デバイスの複数の出力部のうちの選択されたもの及び／又は回路デバイスの複数のエラーレジスタのうちの選択されたものを識別する選択データに適合した第１のレジスタ、回路デバイスの複数の出力部のうちの選択されたもの及び／又は回路デバイスの複数のエラーレジスタのうちの選択されたものに向けた伝達のための動的故障データに適合された第２のレジスタ、及び回路デバイスの複数の出力部のうちの選択されたもの各々及び／又は回路デバイスの複数のエラーレジスタのうちの選択されたもの各々に動的な故障を与える態様で、選択データを第１のレジスタに、動的故障データを第２のレジスタに適用するためのコントローラを含む。
【０００５】
本発明の教示は添付図面を参照して以降の詳細な説明を検討することによって直ちに理解できる。
理解を容易にするために、可能な場合には、図面を通じて共通の同一要素を示すために同一の符号を用いた。
【図面の簡単な説明】
【０００６】
【図１】図１は本発明が実施され得るシステム例の上位レベルのブロック図を示す。
【図２】図２は図１のシステム例の例示的回路基板の上位レベルのブロック図を示す。
【図３】図３は図２の例示的回路基板の例示的チップを含むシステムの一部分の上位レベルのブロック図を示す。
【図４】図４は図３の例示的システムの実施例の上位レベルのブロック図を示す。
【図５】図５はタイミング故障を生成するタイミングパルス例を示す。
【図６】図６は本発明の一実施例による方法を示す。
【図７】図７はここに記載される機能の少なくとも一部を実行する際の使用に適する汎用コンピュータの上位レベルブロック図を示す。
【発明を実施するための形態】
【０００７】
本発明は、関連するシステムソフトウェアが動的な故障を検出するかを判断するために、境界スキャン機能を用いて動的な故障をシステムハードウェアに注入する。多くの複雑なシステム設計エラーは動的なエラーとして挙動するので、システムソフトウェアがそのような動的なエラーの発生を直ちに検出することが重要である。静的な故障（例えば、ｓｔｕｃｋ＿ａｔ、ｓｔｕｃｋ＿ｏｐｅｎその他の静的な故障）の注入のために通常使用されるチップ／基板／システムの既存の境界スキャン構造を再利用することによって、本発明は、動的な故障（例えば、タイミング故障、過渡故障等）に応答するシステムソフトウェアの試験を、システムハードウェア又はソフトウェアの最小限の修正で可能とする。
【０００８】
図１に本発明が実施され得るシステム例の上位レベルのブロック図を示す。具体的には、システム例１００は複数の回路基板１０４１−１０４Ｎ（まとめて回路基板１０４）と通信するシステムソフトウェアモジュール１０２を含む。システムソフトウェアモジュール１０２はあらゆるシステム機能（例えば、回路基板１０４への過渡信号、回路基板１０４からの受信信号等、その他これらの種々の組合せ）を実行するように適合された機能ソフトウェアを含む。回路基板１０４はあらゆるハードウェア機能を実行することができる。システム例１００はあらゆる電子システムを含むことができ、システムソフトウェアモジュール１０２及び関連の回路基板１０４はあらゆる機能を実行するよう動作可能なものである。本発明はシステム例１００の機能に限定されるものではない。
【０００９】
一実施例では、システムソフトウェアモジュール１０２はシステムソフトウェアモジュール１０２の機能ソフトウェアを試験するために適合された試験ソフトウェアを含むことができる。一実施例では、試験ソフトウェアは、機能ソフトウェアが回路基板１０４に関連する故障を正確に検出することを検証するために機能ソフトウェアを試験するように適合されている。一実施例では、試験ソフトウェアは、機能ソフトウェアが動的な故障（例えば、タイミング故障、過渡故障等、その他これらの種々の組合せ）を正確に検出することを検証するために機能ソフトウェアを試験するように適合されている。一実施例では、システムソフトウェアモジュール１０２の機能ソフトウェアによってサポートされる機能に依存して、試験ソフトウェアは、機能ソフトウェアが回路基板１０４に関連する故障を検出したことに応じて１以上のアクションを開始し、回路基板１０４に関連する故障を検出したことに応じて故障情報を取得し、その他これらの種々の組合せを行うよう動作可能であることを確認するために機能ソフトウェアを試験するよう適合されている。
【００１０】
図２に図１のシステム例の例示的回路基板の上位レベルのブロック図を示す。具体的には、図２の例示的回路基板２００は複数のチップ２０２を含む。チップ２０２はあらゆる機能を実行することができる。一実施例では、チップ２０２の少なくとも一部は構成可能な論理ブロック（例えば、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ））とすることができる。一実施例では、チップ２０２は、種々の制御機能、試験機能等、その他これらの種々の組合せを提供する境界ピンの制御性及び監視性を与える境界スキャン機能を含む。本発明は図３に関してよりよく理解することができる。
【００１１】
図３に図２の例示的回路基板からの例示的チップを含むシステムの一部分の上位レベルのブロック図を示す。具体的には、図３のシステム３００は例示的チップ２０２及びソフトウェアモジュール（ＳＳＭ）３３０を含む。例示的チップ２０２は回路基板（例えば、図１に図示及び記載した回路基板１０４の１つ）上の複数のチップのうちの１つであればよい。ＳＳＭ３３０は、図１に関して図示及び記載されたシステムソフトウェアモジュール１０２であればよい。ここに記載するように、本発明は、故障検出を試験し、ＳＳＭ３３０の機能に応答するために、例示的チップ２０２の入力部、機能論理部及び出力部の種々の組合せにおいて動的故障を生成し注入するように使用することができる。
【００１２】
例示的チップ２０２はテストクロックピン３０１ＴＣＫ、テストモード選択ピン３０１ＴＭＳ、テストアクセスポート（ＴＡＰ）コントローラ３０２、境界スキャンマクロ３０４、入力選択レジスタ（ＩＳＲ）３０６１、動的故障レジスタ（ＤＦＲ）３０６２、機能論理部３０８、入力論理（ＩＬ）３１０、及び出力論理（ＯＬ）３２０を含む。ＩＬ３１０は複数の境界スキャン入力ピン（ＢＳＩＰ）３１１１−３１１Ｍ（まとめてＢＳＩＰ３１１）、複数の境界スキャン入力セル（ＢＳＩＣ）３１２１−３１２Ｍ（まとめてＢＳＩＣ３１２）、及び複数の入力マルチプレクサ（ＩＭＵＸ）３１４１−３１４Ｍ（まとめてＩＭＵＸ３１４）を含む。ＯＬ３２０は複数の出力マルチプレクサ（ＯＭＵＸ）３２２１−３２２Ｍ（まとめてＯＭＵＸ３２２）、複数の境界スキャン出力セル（ＢＳＯＣ）３２４１−３２４Ｍ（まとめてＢＳＯＣ３２４）、及び複数の境界スキャン出力ピン（ＢＳＯＰ）３２５１−３２５Ｍ（まとめてＢＳＯＰ３２５）を含む。
【００１３】
ＴＡＰコントローラ３０２は例示的チップ２０２の種々の部材を制御することによって例示的チップ２０２の動作を制御するよう動作できる。一実施例では、ＴＡＰコントローラ３０２は例示的チップ２０２の動作を制御するための状態機械として動作する。一実施例では、ＴＡＰコントローラ３０２は入力ピンを介して受信された種々の入力信号に応答して例示的チップ２０２の動作を制御する。テストクロックピン３０１ＴＣＫ及びテストモード選択ピン３０１ＴＭＳはそれぞれクロック信号及びテストモード選択信号をＴＡＰコントローラ３０２に供給する。ＴＡＰコントローラ３０２は例示的チップ２０２による入力信号の処理を制御することができる。説明の明確化のために省略したが、一実施例では、ＴＡＰコントローラ３０２は他のチップ、基板、システム等その他それらの種々の組合せから、例示的チップ２０２の動作を制御するための種々の信号を受信することができる。
【００１４】
図３に示すように、ＩＳＲ３０６１はｍ個の格納位置を含み、格納位置１−ｍはそれぞれ、入力部のＢＳＩＣ３１２１−３１２Ｍ及びＩＭＵＸ３１４１−３１４Ｍ、機能論理部３０８のＥＲ３０９１−３０９Ｍ、並びに出力部のＯＭＵＸ３２２１−３２２Ｍ及びＢＳＯＣ３２４１−３２４Ｍに関連付けられている。ＩＳＲ３０６１のｍ個の格納位置はそれぞれＯＭＵＸ３２２１−３２２Ｍの選択入力に関連付けられている。ＩＳＲ３０６１はＴＡＰコントローラ３０２から境界スキャンマクロ３０４を介してｍ個の値（ｍ個の入力選択ビット）を含む入力選択ベクトルを受信するよう適合されている。ＴＡＰコントローラ３０２はＩＳＲ３０６１への入力選択ベクトルのスキャンを制御する。ＩＳＲ３０６１のｍ個の格納位置はそれぞれｍ個の値の入力選択ベクトルを格納するように適合されている。
【００１５】
図３に図示するように、ＤＦＲ３０６２はｍ個の格納位置を含み、格納位置１−ｍはそれぞれ、入力部のＢＳＩＣ３１２１−３１２Ｍ及びＩＭＵＸ３１４１−３１４Ｍ、機能論理部３０８のＥＲ３０９１−３０９Ｍ、並びに出力部のＯＭＵＸ３２２１−３２２Ｍ及びＢＳＯＣ３２４１−３２４Ｍに関連付けられている。ＤＦＲ３０６２のｍ個の格納位置はそれぞれＯＭＵＸ３２２１−３２２Ｍの第２の入力部に関連付けられている。ＤＦＲ３０６２はＴＡＰコントローラ３０２から境界スキャンマクロ３０４を介してｍ個の値（ｍ個の動的故障ビット）を含む動的故障ベクトルを受信するよう適合されている。ＴＡＰコントローラ３０２はＤＦＲ３０６２への動的故障ベクトルのスキャンを制御する。ＤＦＲ３０６２のｍ個の格納位置はそれぞれ動的故障ベクトルのｍ個の値を格納するように適合されている。
【００１６】
ＴＡＰコントローラ３０２はＩＳＲ３０６１及びＤＦＲ３０６２をそれぞれ識別する境界スキャンインストラクションを用いてＩＳＲ３０６１及びＤＦＲ３０６２に接続する。例えば、ＩＳＲ３０６１及びＤＦＲ３０６２がＸＩＬＩＮＸ＿ＦＰＧＡのＵＳＲ１及びＵＳＲ２レジスタとしてそれぞれ実装されるような一実施例では、ＵＳＲ１及びＵＳＲ２の境界スキャンインストラクション（又はＡＬＴＥＲＡ、ＯＲＣＡ、ＬＡＴＴＩＣＥ等のような他の会社のＦＰＧＡの同様のＵＳＥＲインストラクション）は、ＴＡＰコントローラ３０２によって実行されると、ＩＳＲ３０６１及びＤＦＲ３０６２をＴＡＰコントローラ３０２にそれぞれ接続するために使用することができる。ＩＳＲ３０６１がＴＡＰコントローラ３０２によって境界スキャンチェーンに接続されると、ＴＡＰコントローラ３０２はＳＡＭＰＬＥ／ＰＲＥＬＯＡＤインストラクションを実行して入力選択ビットパターンをＩＳＲ３０６１にスキャンすることによって入力選択ベクトルをＩＳＲ３０６１に読み込むことができる。ＤＦＲ３０６２が境界スキャンチェーンにＴＡＰコントローラ３０２によって接続されると、ＴＡＰコントローラ３０２はＳＡＭＰＬＥ／ＰＲＥＬＯＡＤインストラクションを実行して動的故障ビットパターンをＤＦＲ３０６２にスキャンすることによって動的故障ベクトルをＤＦＲ３０６２に読み込むことができる。
【００１７】
ＢＳＩＣ３１２及びＢＳＯＣ３２４は境界スキャンセルを含む。一実施例では、ＢＳＩＣ３１２の少なくとも一部分が１以上のそれぞれの格納要素（例えば、入力レジスタ）を含むことができる。一実施例では、ＢＳＯＣ３２４の少なくとも一部分が１以上のそれぞれの格納要素及び種々の出力データの組合せを選択するための１以上の関連のマルチプレクサを含むことができる。説明の明確化のために省略したが、一実施例では、ＢＳＩＣ３１２の少なくとも一部分が（例えば、境界スキャンセルのチェーンを形成して）相互に接続され、ＢＳＯＣ３２４の少なくとも一部分が（例えば、境界スキャンセルのチェーンを形成して）相互に接続され得る。一実施例では、ＢＳＩＣ３１２及びＢＳＯＣ３２４の少なくとも一部分が（例えば、境界スキャンセルのチェーンを形成して）相互接続され得る。
【００１８】
図３に示すように、ＢＳＩＰ３１１１−３１１Ｍは種々の他の部材（例えば、チップ、基板等、その他これらの種々の組合せ）から受信した入力信号をＢＳＩＣ３１２１−３１２Ｍのそれぞれの入力部に伝達する。ＢＳＩＣ３１２１−３１２Ｍの出力部はＩＭＵＸ３１４１−３１４Ｍのそれぞれの第１の入力部に結合される。ＤＦＲ３０６２の格納位置１−ｍはＩＭＵＸ３１４１−３１４Ｍのそれぞれの第２の入力部に結合される。図３に示すように、ＩＭＵＸ３１４１−３１４Ｍの各々は、ＩＭＵＸ３１４１−３１４Ｍの第１の入力部にそれぞれ結合されたＢＳＩＣ３１２１−３１２ＭのいずれかからＩＭＵＸ３１４１−３１４Ｍが個々に入力を選択できるように、ＩＳＲ３０６１の格納位置１−ｍ、又はＩＭＵＸ３１４１−３１４Ｍの第２の入力部にそれぞれ結合されたＤＦＲ３０６２の格納位置１−ｍを用いて制御可能である。ＩＭＵＸ３１４１−３１４Ｍの出力部は機能論理部３０８のそれぞれの入力部に結合される。
【００１９】
ここに記載するように、ＩＭＵＸ３１４１−３１４Ｍの各々はＩＳＲ３０６１を用いて制御可能である。図３に示すように、ＩＳＲ３０６１の格納位置１−ｍの各々は、ＩＳＲ３０６１のそれぞれの格納位置１−ｍにおける選択ビットがＩＭＵＸ３１４１−３１４Ｍの選択入力に入力されてＩＭＵＸ３１４１−３１４Ｍを個々に制御するように、ＩＭＵＸ３１４１−３１４Ｍの選択入力にそれぞれ関連付けられている。一実施例では、ＩＭＵＸ３１４の選択入力に適用された０の入力選択ビットによって、ＩＭＵＸ３１４が（動的故障データとは逆に、機能入力データが機能論理部３０８への対応する入力部で現れるように）関連のＢＳＩＣ３１２から入力を選択することが可能となり、ＩＭＵＸ３１４の選択入力に適用された１の入力選択ビットによって、ＩＭＵＸ３１４が（関連するＢＳＩＣ３１２からの機能入力データとは逆に、ＤＦＲ３０６２のその格納位置からの動的故障データが機能論理部３０８への対応する入力部で現れるように）ＤＦＲ３０６２の対応する格納位置からの入力を選択することが可能となる。他の実施例として、ＩＭＵＸ３１４のそれぞれの入力部からのデータの選択を制御するために逆の値が使用されてもよい。
【００２０】
機能論理部３０８は例示的チップ２０２の種々の機能を実行するためにＳＳＭ３３０と相互に動作することができる。機能論理部３０８は、電子システムに実装されるように適合したあらゆる機能論理部を含むことができ、従って、機能論理部３０８が実装されるチップ、機能論理部３０８が実装される回路基板、機能論理部３０８が実装されるシステム等、その他これらの種々の組合せによって変わるものである。例えば、機能論理部３０８は電気通信システム、コンピュータ制御システム、航空管制システム等、その他これらの種々の組合せに関連する機能をサポートするよう構成することができる。
【００２１】
（機能論理部３０８のそれぞれの入力部に対応する）機能論理部３０８のそれぞれの出力部はＯＭＵＸ３２２１−３２２Ｍの第１の入力部にそれぞれ結合されている。ＤＦＲ３０６２の格納位置１−ｍはＯＭＵＸ３２２１−３２２Ｍの第２の入力部にそれぞれ結合される。図３に示すように、ＯＭＵＸ３２２１−３２２Ｍの各々は、ＯＭＵＸ３２２１−３２２Ｍの第１の入力部にそれぞれ結合された機能論理部３０８の出力のいずれかからＯＭＵＸ３２２１−３２２Ｍが入力を個々に選択できるように、ＩＳＲ３０６１の格納位置１−ｍ、又はＯＭＵＸ３２２１−３２２Ｍの第２の入力部にそれぞれ結合されたＤＦＲ３０６２の格納位置１−ｍを用いて制御可能である。ＯＭＵＸ３２２１−３２２Ｍの出力部はＢＳＯＣ３２４１−３２４Ｍの入力部にそれぞれ結合される。ＢＳＯＣ３２４１−３２４Ｍは受信出力信号を他の種々の部材（例えば、チップ、基板等、その他これらの種々の組合せ）に向けてＢＳＯＰ３２５１−３２５Ｍを介してそれぞれ伝達する。
【００２２】
ここに記載するように、ＯＭＵＸ３２２１−３２２Ｍの各々はＩＳＲ３０６１を用いて制御可能である。図３に示すように、ＩＳＲ３０６１の格納位置１−ｍの各々は、ＩＳＲ３０６１のそれぞれの格納位置１−ｍにおける選択ビットがＯＭＵＸ３２０１−３２０Ｍの選択入力に入力されてＯＭＵＸ３２０１−３２０Ｍを個々に制御するように、ＯＭＵＸ３２０１−３２０Ｍの選択入力にそれぞれ関連付けられている。一実施例では、ＯＭＵＸ３２０の選択入力に適用された入力選択ビット０によって、ＯＭＵＸ３２０が（動的故障データとは逆に、機能出力データがＢＳＯＣ３２４への対応する入力部で現れるように）機能論理部３０８の関連の出力から入力を選択することが可能となり、ＯＭＵＸ３２０の選択入力に適用された入力選択ビット１によって、ＯＭＵＸ３２０が（機能論理部３０８の関連の出力からの機能出力データとは逆に、ＤＦＲ３０６２のその格納位置からの動的故障データがＢＳＯＣ３２４への対応する入力部で現れるように）ＤＦＲ３０６２の対応する格納位置からの入力を選択することが可能となる。他の実施例として、ＯＭＵＸ３２０のそれぞれの入力部からのデータの選択を制御するために逆の値が使用されてもよい。
【００２３】
システムモードの動作において、ＩＭＵＸ３１４は関連するＢＳＩＣ３１２から（ＤＦＲ３０６２からではなく）入力データを選択するように（ＩＳＲ３０６１の関連の選択ビットを用いて）制御される。ＩＭＵＸ３１４は関連のＢＳＩＣ３１２からの入力データを機能論理部３０８に供給する。機能論理部３０８はＢＳＩＣ３１２から受信した入力データを処理する。機能論理部３０８は出力データを生成する。機能論理部３０８は出力データを、（ＤＦＲ３０６２からではなく）機能論理部３０８から出力データを選択するよう（ＩＳＲ３０６１の関連の選択ビットを用いて）制御される関連のＯＭＵＸ３２０に供給する。ＯＭＵＸ３２０は機能論理部３０８からの出力データを他の回路、デバイス等に向けた送信のために関連のＯＭＵＸ３２２に供給する。
【００２４】
試験モードの動作において、例示的チップ２０２の入力部に関して、各ＩＭＵＸ３１４は（関連するＢＳＩＣ３１２から入力データを選択するのではなく）ＤＦＲ３０６２の関連のビット位置から動的故障データを選択するように（ＩＳＲ３０６１の関連の選択ビットを用いて）制御される。実行されている試験に依存して、動的故障データが対応のエラーレジスタ３０９に記憶されることができる。ＳＳＭ３３０は例示的チップ２０２における動的故障を検出するためにエラーレジスタ３０９を監視することになるので、試験されている動的故障のタイプをＳＳＭ３３０が適切に検出していることの表示が、エラーレジスタ３０９における動的故障データのＳＳＭ３３０による検出の成功によって提供される一方、試験されている動的故障のタイプをＳＳＭ３３０が適切に検出していないことの表示が、エラーレジスタ３０９における動的故障データのＳＳＭ３３０での検出の失敗によって提供される。
【００２５】
試験モードの動作において、例示的チップ２０２の出力部に関して、各ＯＭＵＸ３１４は（機能論理部３０８の関連の出力部から出力データを選択するのではなく）ＤＦＲ３０６２の関連のビット位置から動的故障データを選択するように（ＩＳＲ３０６１の関連の選択ビットを用いて）制御される。動的故障データは関連するＢＳＯＰ３２４を介した送信のために関連のＢＳＯＣ３２２に伝達される。ＳＳＭ３３０は例示的チップ２０２における動的故障を検出するためにＢＳＯＰ３２４を監視することになるので、試験されている動的故障のタイプをＳＳＭ３３０が適切に検出していることの表示が、関連のＢＳＯＰ３２４での動的故障データのＳＳＭ３３０による検出成功によって提供される一方、試験されている動的故障のタイプをＳＳＭ３３０が適切に検出していないことの表示が、関連のＢＳＯＰ３２４での動的故障データのＳＳＭ３３０での検出の失敗によって提供される。
【００２６】
図３に示すように、入力選択ベクトル及び動的故障ベクトルの種々の組合せをＩＳＲ３０６１及びＤＦＲ３０６２にそれぞれスキャンすることによって、ＴＡＰコントローラ３０２はＩＬ３１０、機能論理部３０８、ＯＬ３２０のどの部分がシステムモード動作で動作し、ＩＬ３１０、機能論理部３０８及びＯＬ３２０のどの部分が試験モード動作で動作するかを制御する。ＴＡＰコントローラ３２０は動的故障の生成及び動的故障の例示的チップ２０２への注入を制御する。例示的チップ２０２への動的故障の注入を制御することによって、ＴＡＰコントローラ３０２は、ＳＳＭ３３０によってサポートされる動的故障検出の機能及び構成が適切に動作していることを確かめるために、ＳＳＭ３３０によってサポートされることになる種々の動的故障検出機能及び構成の試験を駆動する。
【００２７】
ここに記載するように、入力選択ベクトル及び動的故障ベクトルは多くの異なる動的故障を生成するように構成され得る。ここに記載するように、ＴＡＰコントローラ３０２による入力選択ベクトル及び動的故障ベクトルの制御（例えば、ベクトルがスキャンされる順序、ベクトルがスキャンされる速さ等、その他これらの種々の組合せ）は種々の異なる動的故障を生成するように構成され得る。一実施例では、ＴＡＰコントローラ３０２は、種々の異なる動的故障を例示的チップ２０２に注入するために、入力選択ベクトル及び動的故障ベクトルの種々の組合せをそれぞれＩＳＲ３０６１及びＤＦＲ３０６２にスキャンするように構成されたコードを実行する。ここに記載するように、動的故障がシステムソフトウェア（例えば、ＳＳＭ３３０）の能力を試験するために例示的チップ２０２に注入されてそのような動的故障を検出する。
【００２８】
ここに主に記載するのはＩＳＲ３０６１及びＤＦＲ３０６２を用いた動的故障の注入に関するものであるが、一実施例として、少なくとも１つの他の動的故障注入メカニズムを用いて動的故障が例示的チップ２０２に注入されてもよい。一実施例では、例えば、動的故障が例示的チップ２０２の種々の他の部材を用いて注入されてもよい。例えば、一実施例では、動的故障が境界スキャンセル（例えば、ＢＳＩＣ３１２及びＢＳＯＣ３２４）によって注入されてもよい。一実施例では、例えば、動的故障が注入される例示的チップの他の部材（例えば、機能論理部３０８の他の部分、インストラクションレジスタ、データレジスタ等の種々の組合せ、その他これらの種々の組合せ）を用いて動的故障が注入されてもよい。一実施例では、例示的チップ２０２に結合された他のチップから動的故障が注入されるようにしてもよい。
【００２９】
図３に示すように、図３の例示的チップ２０２はソフトウェアモジュール（例えば、ＳＳＭ３３０）と通信する。ＳＳＭ３３０はチップレベルソフトウェアモジュール（例えば、チップレベルプロセッサ、マイクロコントローラ等）、基板レベルソフトウェアモジュール（例えば、基板レベルプロセッサ、基板レベルマイクロコントローラ等）、システムレベルソフトウェアモジュール（例えば、基板レベルプロセッサ、マイクロコントローラ等）等、その他これらの種々の組合せを含むことができる。ここに記載するように、ソフトウェアモジュール３２０は例示的チップ２０２の種々の部材（例えば、ＴＡＰコントローラ３０２、境界スキャンマクロ３０４、ＩＳＲ３０６１、ＤＦＲ３０６２、ＢＳＩＣ３１０、ＩＭＵＸ３１２、機能論理部３０８、ＥＲ３０９、ＯＭＵＸ３２２、ＢＳＯＣ３２４等、その他これらの種々の組合せの少なくとも１つ）と通信することができる。
【００３０】
ここに記載するように、本発明を用いて生成され注入される動的故障によってソフトウェア（例えば、システムレベルソフトウェア、基板レベルソフトウェア、チップレベルソフトウェア等、その他これらの種々の組合せ）の試験が可能となる。本発明を用いて生成され注入された動的故障によってシステムのライフサイクルにおける（例えば、集積前コンポーネント試験、集積システム試験、実施前システムテスト、実施後システムテスト等、その他これらの組合せのための）様々な時点でのソフトウェア試験が可能となる。本発明を用いて試験されたシステムソフトウェアは本発明を用いて注入された動的故障を検出するためのあらゆる手段を使用することができる。本発明は、注入された動的故障をシステムソフトウェアが検出する手段に限定されるものではない。
【００３１】
一実施例では、システムソフトウェア（例えば、ＳＳＭ３３０）は、動的故障が注入されたチップの１以上の部材（例えば、入力ピン、入力レジスタ、エラーレジスタ、出力レジスタ、出力ピン等、その他これらの種々の組合せ）を監視すること、動的故障が注入されたチップから後段にある１以上のチップの１以上の部材（例えば、入力ピン、入力レジスタ、エラーレジスタ、出力レジスタ、出力ピン等、その他後段にあるチップのこれらの種々の組合せ）を監視すること、種々の他のシステム部材（例えば、他のチップ、基板、モジュール等、その他これらの種々の組合せ）を監視すること等、その他これらの種々の組合せによって、注入された動的故障を検出することができる。
【００３２】
ここに記載するように、システムソフトウェア（例えばＳＳＭ３３０）は本発明を用いて生成され注入された動的故障の検出に応じてあらゆる機能を実行することができる。その機能は概略として、注入された動的故障に応じて１以上のアクションを実行すること、注入された動的故障に応じて１以上の診断情報を取得すること等、その他これらの種々の組合せの少なくとも１つを含むことができる。一実施例では、実行されたアクション、取得された診断情報等は試験されているシステムによって変わり得る。例えば、電気通信システムにおいて実行されるアクション及び取得される診断情報の少なくとも一部は、航空管制システムにおいて実行されるアクション及び取得される診断情報の少なくとも一部とは異なるものとなる。本発明は検出された注入動的エラーに対するシステムソフトウェアの応答に限定されるものではない。
【００３３】
図４に図３のシステム例の例示的実施例の上位レベルのブロック図を示す。具体的には、システム実装例４００は例示的チップ２０２及びシステムソフトウェアモジュール（ＳＳＭ）４３０を含む。図４に関連して図示及び説明されるシステム実装例４００は実質的に図３の例示的チップ２０２に関連して上述したように動作するが、図４のシステム実装例４００の動作は、システムソフトウェアの試験のための動的故障の生成及び注入に関する以下の記載を参照してより良く理解され得る。
【００３４】
図４に示すように、例示的チップ２０２はテストクロックピン４０１ＴＣＫ、テストモード選択ピン４０１ＴＭＳ、テストアクセスポート（ＴＡＰ）コントローラ４０２、境界スキャンマクロ４０４、入力選択レジスタ（ＩＳＲ）４０６１、動的故障レジスタ（ＤＦＲ）４０６２、機能論理部４０８、入力論理（ＩＬ）４１０、及び出力論理（ＯＬ）４２０を含む。ＩＬ４１０は６個のＢＳＩＰ４１１１−４１１６の各々（まとめてＢＳＩＰ４１１）、ＢＳＩＣ４１２１−４１２６（まとめてＢＳＩＣ４１２）、及びＩＭＵＸ４１４１−４１４６（まとめてＩＭＵＸ４１４）を含む。ＯＬ４２０は６個のＯＭＵＸ４２２１−４２２６の各々（まとめてＯＭＵＸ４２２）、ＢＳＯＣ４２４１−４２４６（まとめてＢＳＯＣ４２４）、及びＢＳＯＰ４２５１−４２５６（まとめてＢＳＯＰ４２５）を含む。ＩＳＲ４０６１及びＤＦＲ４０６２は、ＴＡＰコントローラ４０２によってスキャンされる６ビット入力選択ベクトル及び６ビット動的故障ベクトル用の６個の（１から６で示される）格納位置をそれぞれ含む。
【００３５】
ここに記載するように、入力選択ベクトル及び動的故障ベクトルは試験機能ソフトウェアに適合する種々の動的故障を生成するように構成することができる。例えば、ＳＳＭ４３０の１以上の故障検出（及び、選択的に故障応答）機能が、ＥＲ４０９４及び関連するＢＳＯＰ４２５４において動的故障を注入することによって試験されるものとする。動的故障が単一のＥＲ３０９及び／又はＢＳＯＰ４２５に対して注入される例に関して説明したが、ここに記載するように、動的故障は、ＳＳＭ４３０の１以上の故障検出（及び選択的に故障応答）機能を試験するために種々の組合せのＥＲ３０９及び／又はＢＳＯＰ４２５において注入できる。
【００３６】
ＴＡＰコントローラ４０２はＩＳＲ４０６１に接続するためのインストラクションを実行する。例えば、ＴＡＰコントローラ４０２は「００００１０」の入力選択ベクトルをＩＳＲ４０６１にスキャンする。入力選択ベクトル「００００１０」は、ＩＭＵＸ４１４１−４１４３及び４１４５−４１４６並びに関連するＯＭＵＸ４２２１−４２２３及び４２２５−４２２６がシステムモードで動作することを示す（ＢＳＩＣ４１２１−４１２３及び４１２５−４１２６から入力データをそれぞれ選択し、ＢＳＯＣ４２４１−４２４３及び４２４５−４２４６へ向けた伝達のために機能論理部４０８のそれぞれの出力から機能論理データをそれぞれ選択する）。入力選択ベクトル「００００１０」は（ＩＭＵＸ４１４４がＥＲ４０９４への伝達のために動的故障データをＤＦＲ４０６２の位置４から選択し、ＯＭＵＸ４２２４がＢＳＯＰ４２５４への伝達のためにＤＦＲ４０６２のビット位置４から動的故障データを選択するように）ＩＭＵＸ４１４４及び関連するＯＭＵＸ４２２４が試験モードで動作することを示す。
【００３７】
ＴＡＰコントローラ４０２はＩＳＲ４０６１への接続からＤＦＲ４０６２への接続に切り換えるインストラクションを実行する。ＴＡＰコントローラ４０２は１以上のインストラクションを実行して１以上のそれぞれの動的故障ベクトルをＤＦＲ４０６２にスキャンする。表１はＥＲ４０９４及び／又はＢＳＯＰ４２５４上でタイミングパルス故障例を生成するように適合された動的故障ベクトルのセットを示す。表１に示すように、各列は６ビットＤＦＲ４０６２の６個の格納位置の１つ（ＩＭＵＸ４１４１−４１４６及びＯＭＵＸ４２２１−４２２６に関連してそれぞれＤＦＲＢｉｔ−１からＤＦＲＢｉｔ−６として記載される）に対応する。表１に示すように、各行は、ＴＡＰコントローラ４０２がタイミングパルスを生成するためにＤＦＲ４０６２にスキャンする異なる動的故障ベクトルに対応する。論理値ハイ（即ち、１）が動的故障のパルスを示すタイミングパルスに関して主に記載及び説明するが、他の実施例として、論理値ロー（即ち、０）が動的故障のパルスを示すようにしてもよい。
【００３８】
【表１】
2010507170.tif 000003
【００３９】
ＴＡＰコントローラ４０２は表１の動的故障ベクトルをＤＦＲ４０６２に順にスキャンする。ＩＳＲ４０６１のスキャンされた入力選択値によると、ＩＭＵＸ４１４４がＩＭＵＸ４１４４の第２の入力部から入力を選択するようにセットされているので、ＴＡＰコントローラ４０２が動的故障ベクトルをＤＦＲ４０６２にスキャンするとＩＭＵＸ４１４４はＤＦＲＢｉｔ−４の値を選択する。ＤＦＲＢｉｔ−４の値の選択がなされると、ＩＭＵＸ４１４４はＤＦＲＢｉｔ−４の値を機能論理部４０８のＥＲ４０９４に向けて伝達する。ＯＭＵＸ４２２４が、ＩＳＲ４０６１のスキャンされた入力選択値に従って、ＯＭＵＸ４２２４の第２の入力部から入力を選択するように設定されるので、ＴＡＰコントローラ４０２が動的故障ベクトルをＤＦＲ４０６２にスキャンするとＯＭＵＸ４２２４はＤＦＲＢｉｔ−４の値を選択する。ＤＦＲＢｉｔ−４の値の選択がなされると、ＯＭＵＸ４２２４はＤＦＲＢｉｔ−４の値をＢＳＯＣ４２４４及びＢＳＯＰ４２５４へ向けて伝達する。
【００４０】
ＴＡＰコントローラ４０２は、ＩＭＵＸ４１４４及びＯＭＵＸ４２２４の第２の入力部にそれぞれ論理値０、１、０、０が順に現れるように、表１の動的故障ベクトルをＤＦＲ４０６２に順にスキャンし、それによってタイミングパルスがＩＭＵＸ４１４４の第２の入力部に、及び同一のタイミングパルスがＯＭＵＸ４２２４の第２の入力部にそれぞれもたらされる。ＩＭＵＸ４１４４及びＯＭＵＸ４２２４の第２の入力部にそれぞれ注入された同一のタイミングパルス各々は（Ｔ＿パルスとして示す）ハイ部分及び（Ｔ＿オフセットとして示す）ロー部分を有する。（３個の論理「０」が入力される間の）Ｔ＿オフセットの期間は（論理「１」が入力される間の）Ｔ＿パルスの期間の３倍である。単一のタイミングパルスを有する動的故障の生成及び注入に関して主に説明するが、一実施例として、ＴＡＰコントローラ４０２が種々の組合せのインストラクションを用いることによって、種々の組合せのタイミングパルスを有する動的故障が生成及び挿入され得る。
【００４１】
一実施例では、例えば、種々の組合せの動的故障ビットを有する動的故障ベクトルをスキャンすることによって、種々の組合せのタイミングパルスを有する動的故障が生成及び注入されることができる。一実施例では、例えば、種々の組合せのタイミングパルスを有する動的故障が、タイミングパルスが生成される速度、タイミングパルスが生成される周波数、その他これらの種々の組合せを修正するよう適合されたインストラクションの種々の組合せを用いて動的故障ベクトルをスキャンすることによって、生成及び注入されることができる。種々の組合せのＴＡＰコントローラインストラクションを用いて適合され得る特定のパラメータ（例えば、Ｔ＿パルス、Ｔ＿オフセット等）に関して主に説明するが、生成及び注入される動的故障によって、他の動的故障を生成及び注入するために他の種々のパラメータが適用されてもよい。
【００４２】
前述の例の続きとして、例えば、ＴＡＰコントローラ４０２は（ＥＲ４０９４に伝達するための）ＩＭＵＸ４１４４及び（ＢＳＯＣ４２４４及びＢＳＯＰ４２５４に伝達するための）ＯＭＵＸ４２２４の第２の入力部にそれぞれ論理値０、１、０、０、０、１、０、０、０、１、０、０が現れるように、表１に示すベクトルセットにおけるベクトルをＤＦＲ４０６２に、複数回（例えば３回）順次スキャンすることができ、それによって、３個のハイ部分（期間Ｔ＿パルスの各々）及び３個のロー部分（期間Ｔ＿オフセットの各々）が続く最初のロー部分を有するタイミングパルス列（タイミング波形）がもたらされる。前述の例の続きとして、表１に関して上記の３パルスタイミング波形を生成するためにＴＡＰコントローラ４０２によって実行される擬似コード例は以下の通りである。
【表２】
2010507170.tif 000004
【００４３】
表１に関して図示及び記載したように、インストラクション「Ｒｅｐｅａｔ「Ｓｃａｎ  Ｄａｔａ  Ｒｅｇ  ＤＦＲ＿ＲＥＧ「００００００」Ｎ  Ｔｉｍｅｓ」は、（Ｓｃａｎ  Ｄａｔａ  Ｒｅｇ  ＤＦＲ＿ＲＥＧ「００００００」の対に関連して）タイミング波形におけるタイミングパルス間の期間Ｔ＿オフセットが３個のタイミングパルス各々の関連の期間Ｔ＿パルスの３倍となるように、一度実行される（即ち、Ｎ＝１）。一実施例では、Ｔ＿オフセットはＮの値を増やすことによって増加させることができる。例えば、Ｎの値の１から４まで増やすことによって、タイミング波形におけるタイミングパルス間のＴ＿オフセットが３個のタイミングパルス各々の関連する期間Ｔ＿パルスの６倍となる。図５は上述の擬似コード例によって生成された動的故障例（即ち、タイミング波形）を図示する。
【００４４】
特定の動的故障に関連して主に図示及び記載するが、（関連する動的故障波形を有する）種々の異なる動的故障が、本発明の種々の実施例を用いて生成及び注入され得る。一実施例では、本発明の種々の実施例を用いて生成された異なる動的故障（例えば、動的故障波形）は種々の動的故障波形パラメータ（例えば、Ｔ＿パルス、Ｔ＿オフセット等、その他これらの種々の組合せ）を制御することによって構成可能とすることもできる。動的故障（例えば、Ｔ＿パルス及びＴ＿オフセット）を構成するために制御可能な特定のパラメータに関連して主に図示及び記載したが、本発明を用いて生成される動的故障に依存して、種々の他のパラメータが種々の他の動的故障を構成するために制御され得る。
【００４５】
ここに記載するように、種々のパラメータ（例えば、動的故障ベクトル値、タイミング故障ベクトルのシーケンスその他）を構成することによって、種々の異なるタイミング故障が試験システムソフトウェアを試験するために生成及び注入される得る。一実施例では、動的故障に関連するパラメータは動的故障ベクトルを修正することによって構成され得る。一実施例では、動的故障に関連するパラメータはＴＡＰコントローラ４０２が動的故障ベクトルをＤＦＲ４０６２にスキャンする速度を制御することによって構成され得る。一実施例では、動的故障に関連するパラメータはＴＡＰコントローラ４０２によって実行されるインストラクションの種々の組合せを用いて構成され得る。
【００４６】
一実施例では、動的故障に関連するパラメータはＴＡＰコントローラの状態機械の動作に従って構成可能とすることができる。例えば、ＴＡＰコントローラ４０２はＩＥＥＥ１１４９.１によって実装されたＴＡＰ状態機械を実施するものとする。この例では、ｕｐｄａｔｅ＿ｄｒに到達するために以下のｒｕｎ＿ｔｅｓｔ＿ｉｄｅｌ  →  ｓｅｌｅｃｔ＿ｄｒ＿ｓｃａｎ  →  ｃａｐｔｕｒｅ＿ｄｒ  →  ｓｈｉｆｔ＿ｄｒ  →  ｅｘｉｔ１＿ｄｒ  →  ｕｐｄａｔｅ＿ｄｒの最低５ＴＣＫサイクルが必要なことがｒｕｎ＿ｔｅｓｔ＿ｉｄｌｅ状態から明らかである。言い換えると、最低６ＴＣＫサイクルがＤＦＲ４０６２上で単一のビットシフトを有効とするのに必要となる。表１では、Ｖｅｃｔｏｒ−１からＶｅｃｔｏｒ−４までのベクトルのシーケンスが３個のベクトルを含み、その各々は前のベクトルの単一のビットシフトとなるだけである。
【００４７】
本例の続きとして、表１を用いて、各「Ｓｃａｎ  Ｄａｔａ  Ｒｅｇ  ＤＦＲ＿ＲＥＧ「ＶＥＣＴＯＲ」」インストラクションの実行時間はＴＣＫの６クロックサイクルを要する。この例では、Ｔ＿パルス≦（６＊ＴＣＫのクロック期間）、及び、Ｔ＿オフセット≦（Ｎ＊Ｔ＿パルス）である。本例では、ＴＣＫクロック速度を１ＭＨｚとすると、１０００ｎｓの対応するクロック期間で、対応するＴ＿パルスの最小値が６ミリ秒、Ｔ＿オフセットがＴ＿パルス値の整数倍となる。本例では、ＴＣＫクロック速度を１０ＭＨｚとすると、１００ｎｓの対応するクロック期間で、対応するＴ＿パルスの最小値が６００ナノ秒、Ｔ＿オフセットがＴ＿パルス値の整数倍となる。
【００４８】
例えば、電気通信システムは電気通信システムから受信されるネットワーク同期信号を用いて同期して稼動することができる。この例では、電気通信システムが固定の時間のインターバル（フレーム同期信号として示す）でデータフレームを送信及び受信する送信機及び受信機回路を含むものとして、そのような同期信号は固定フレーム同期境界の開始及び終了をマークするように使用することができる。例えば、ユニバーサル移動体通信システム（ＵＭＴＳ）無線システムでは、ＵＭＴＳシステムの移動局及び基地局が１０ｍｓ毎に同期信号を受信するように、フレームインターバルが１０ｍｓに標準化されている（送信機及び受信機による全ての処理が、１０ｍｓ間隔で現れる外部駆動される同期信号に同期される）。
【００４９】
本例の続きとして、本発明を用いることなく、同期パルスのタイミングインターバルを確認するためにタイミング回路がＵＭＴＳシステムのハードウェア部分に付加されなければならない。タイミング回路は２つの連続する同期信号間の時間をカウントし、タイミングインターバルが１０ｍｓよりも小さい又は大きいものと検出されると、エラーフラグがセットされる。ＵＭＴＳシステムのシステムレベル診断ソフトウェアは（例えば、内部エラーレジスタを用いて）そのようなエラーフラグを継続的に監視し、エラーフラグがセットされたことの検出に応じて、システムレベル診断ソフトウェアがエラーフラグへの応答をトリガすることができる（例えば、ＵＭＴＳシステムを再起動する）。
【００５０】
そのようなＵＭＴＳ同期エラー状態がＵＭＴＳシステムの通常動作中にシステムレベル診断ソフトウェアによって検出されることを確かめるために、そのようなＵＭＴＳ同期エラーに応答してＵＭＴＳシステムレベル診断ソフトウェアの動作を試験するための本発明の故障注入機能を使用し、それによってそのようなＵＭＴＳシステムレベル診断ソフトウェア試験を実行する追加のタイミング回路の必要性を明示することができる。本例の続きとして、本発明を用いて、ＵＭＴＳシステムレベル診断ソフトウェアの動作を試験するために動的故障が生成及び注入され得る。本例では、本発明は１０ｍｓよりも小さくなる又は大きくなるように構成される過渡パルスを生成するように使用され得る（即ち、ＵＭＴＳシステムの同期が失われた状況を過渡パルスによってシミュレーションする）。
【００５１】
本例の続きとして、ここに記載するように、１０ｍｓよりも小さくなる又は大きくなるように構成される過渡パルスはＴ＿パルス値及びＴ＿オフセット値を構成することによって形成することができる。ここに記載するように、構成された過渡パルスはＵＭＴＳシステムの同期の欠如をシミュレーションするために境界スキャンアーキテクチャを用いてＵＭＴＳチップに注入される。一実施例では、過渡パルスの注入は、試験されているＵＭＴＳチップの機能論理部のエラーレジスタにおけるエラー状態の直接の設定となり得る。一実施例では、試験されているＵＭＴＳチップの機能論理部の一部分による注入過渡パルスの検出は、関連のシステムソフトウェアモジュールが同期条件の欠如を検出する態様で機能論理部の１以上のエラーレジスタが設定されることに帰着する。その後、ＵＭＴＳデバイスのシステムソフトウェアモジュールが適切に同期の欠如を示すエラー状態を検出するかについて判断がなされる。
【００５２】
前述の例ではＵＭＴＳシステムにおいて同期の欠如を示す動的故障を注入することに関して主に記載したが、本発明はＵＭＴＳシステムにおける種々の他の動的故障を生成及び注入するために用いられ得る。前述の例ではＵＭＴＳシステムにおける動的故障を注入することに関して記載されているが、本発明は種々の他の電気通信システム（例えば、エッジルータ、コアルータ、光スイッチシステム、ケーブル分散システム等、その他これらの種々の組合せ）における他の動的故障を生成及び注入するために使用され得る。
【００５３】
電気通信システムに関して記載するが、本発明はあらゆる機能（例えば、電気通信機能、航空管制システム、電子システムによって実行されるあらゆる他の機能）を実行するために動作可能なあらゆる電子システム（例えば、チップ、基板、システム等、その他これらの種々の組合せ）を試験するための動的故障を生成するために使用され得る。従って、本発明は特定の機能をサポートするシステムにおける動的故障の生成、注入及び試験に限定されるものではない。任意の電子システムに動的故障を生成及び注入し、注入された動的故障に応じてシステムソフトウェアを試験するための方法が図６に関して図示及び説明される。
【００５４】
図６に本発明の一実施例による方法を示す。具体的には、図６の方法６００は回路デバイスに動的故障を注入するための方法を示す。直列的に実行されるものとして記載するが、当業者であれば方法６００のステップの少なくとも一部は同時に、又は図６に示すものとは異なる順序で実行され得ることが分かるはずである。方法６００はステップ６０２で始まり、ステップ６０４に進む。
【００５５】
ステップ６０４において、選択データが第１のレジスタ（例示的にＩＳＲ３０６１）に適用される。ステップ６０６において、動的故障データが第２のレジスタ（例示的にＤＦＲ３０６２）に適用される。選択データ及び動的故障データの適用によって、試験される回路の選択されたエラーレジスタ及び／又は選択された出力部に動的故障が生成される。ステップ６０８において、動的故障が検出されたかについての判断がなされる。一実施例では、試験される回路が配置されるシステムに関連する機能ソフトウェアによって動的故障が検出されるかについて判断がなされる。一実施例では、動的故障が検出され、試験される回路が配置されるシステムに関連する機能ソフトウェアを試験することによって実行されるかについての判断がなされる。
【００５６】
動的故障が検出されない場合、エラーが報告された時点で方法６００はステップ６１０に進む。一実施例では、動的故障を検出するための機能ソフトウェアの故障についてソフトウェアを試験することによってエラーが報告される。動的故障が検出される場合、方法６００は結果が確認された時点でステップ６１２に進む。一実施例では、結果はソフトウェアを試験することによって（例えば、動的故障の検出に応じて機能ソフトウェアによって実行される１以上のアクションを確認すること、動的故障の検出に応じて機能ソフトウェアによって生成される診断結果を処理すること等、その他これらの種々の組合せによって）確認することができる。方法６００はステップ６１０及び６１２からステップ６１４に進む。
【００５７】
ステップ６１４において、回路デバイスを再試験するかについての判断がなされる。一実施例では、回路デバイスを再試験するか否かについての判断が以前の試験の結果（例えば、動的故障が検出されたか否か）に基づいてシステムソフトウェアによって実行されることができる。一実施例では、回路デバイスを再試験するかについての判断が、回路デバイスが配置されるシステムを制御するために適合したユーザインターフェイスを介してユーザから受信される入力を用いてなされる。回路デバイスが再試験されるべきとの判断があった場合、方法６００はステップ６０４に戻る。回路デバイスが再試験されるべきでないとの判断があった場合、方法６００はステップ６１６に進み、ここで方法６００は終了する。
【００５８】
特定の境界スキャン実装に関連して主に記載したが、当業者であれば、本発明は種々の他の境界スキャン実装（例えば、他の境界スキャンアーキテクチャ、境界スキャンインストラクション等、その他これらの種々の組合せ）を利用するシステムにおいて利用できることが分かるはずである。特定の境界スキャン機能に関して図示及び記載したが、当業者であれば、本発明は種々の他の境界スキャン機能を利用するシステムにおいて利用できることが分かるはずである。本発明は、本発明の種々の実施例によって修正された境界スキャン実装及び関連する境界スキャン機能によって限定されるものではない。
【００５９】
特定の動的故障（即ち、タイミング故障波形）に関して主に図示及び記載したが、種々の他の動的故障が本発明の種々の実施例を用いて生成され得る。一実施例では、例えば、本発明はタイミング故障波形、過渡故障波形、その他同期エラー、データバスノイズパルス、割込み線ノイズパルスその他これらの種々の組合せをシミュレーションするために適合されたもの等を生成するために用いることができる。さらに、特定のバージョンの異なる動的故障（例えば、特定のＴ＿パルス値及びＴ＿オフセット値を有するタイミング故障波形の生成）に関して主に図示及び記載したが、種々の他のバージョンの種々の異なる動的故障が本発明の種々の実施例を用いて生成され得る。
【００６０】
特定の動的故障を用いるシステムソフトウェア試験に関して主に記載したが、当業者であれば、システムソフトウェア試験における使用のために本発明を用いて種々の他の動的故障（例えば、サイクリック冗長チェック試験、パリティエラー試験、システムクロック試験、システム割込み信号試験等、その他これらの種々の組合せ）が生成及び注入され得ることが分かるはずである。本発明はそのような動的故障に応答してシステムソフトウェアを試験すること、システムソフトウェアが動的故障を検出することを確認すること、並びに選択的にシステムソフトウェアが動的故障に応答すること及び／又は動的故障に関連する適切な診断情報を提供することを確認することを可能とする。
【００６１】
図７は上述の機能を実行する際の使用に適した汎用コンピュータの上位レベルのブロック図である。図７に示すように、システム７００はプロセッサ要素７０２（例えば、ＣＰＵ）、メモリ７０４（例えば、ランダムアクセスメモリ（ＲＡＭ）及び／又は読み取り専用メモリ（ＲＯＭ））、故障注入制御モジュール７０５、並びに種々の入力／出力デバイス７０６（例えば、限定するわけではないがテープドライブ、フロッピー（登録商標）ドライブ、ハードディスクドライブ又はコンパクトディスクドライブ等の記憶デバイス、受信機、送信機、スピーカ、ディスプレイ、出力ポート、及び（キーボード、キーパッド、マウス等のような）ユーザ入力デバイス））を備える。
【００６２】
なお、本発明は、例えば用途特定集積回路（ＡＳＩＣ）、汎用コンピュータ又はあらゆる他のハードウェア等価物を用いて、ソフトウェア及び／又はソフトウェアとハードウェアの組合せにおいて実施され得る。一実施例では、開示した故障注入制御モジュール又はプロセス７０５がメモリ７０４に読み込まれ、プロセッサ７０２によって実行されて上述した機能を実施することができる。このように、本発明の故障注入制御プロセス７０５（関連のデータ構造を含む）はコンピュータ可読媒体又はキャリア、例えば、ＲＡＭメモリ、磁気若しくは光ドライブ、又はディスケット等に記憶することができる。
【００６３】
本発明の教示を含む種々の実施例が詳細に示され記載されてきたが、当業者であれば、これらの教示をなおも含む他の多くの変形例を容易に創意工夫することができるはずである。
【図１】
2010507170.tif 000005
【図２】
2010507170.tif 000006
【図３】
2010507170.tif 000007
【図４】
2010507170.tif 000008
【図５】
2010507170.tif 000009
【図６】
2010507170.tif 000010
【図７】
2010507170.tif 000011
【国際調査報告】
2010507170.tif 000012
2010507170.tif 000013
2010507170.tif 000014