(57)【要約】【課題】ロックステップ性能をテストする装置および対応する方法を提供する。【解決手段】装置は、ロックステップモードで動作する２つ以上のプロセッサを備え、プロセッサはそれぞれ、コードシーケンスを実行するプロセッサロジックと、コードシーケンスによって参照されるプロセッサ固有資源と、プログラム可能事象の発生に基づいて信号をアサートする状態マシンと、アサートされた信号を供給する出力と、を備える。装置はまた、２つ以上のプロセッサそれぞれの出力を読み取り比較するように動作可能なロックステップロジックブロックも備える。コードシーケンスの実行に基づくプロセッサ出力は、２つ以上のプロセッサそれぞれの出力を読み取り比較するように動作可能なロックステップロジックに提供される。【選択図】図１
2004038954.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッサ環境においてロックステップ機能をテストする装置であって、
ロックステップモードで動作する２つ以上のプロセッサを有し、該２つ以上のプロセッサはそれぞれ、
コードシーケンスを実行するプロセッサロジックであって、同一のコードシーケンスが前記２つ以上のプロセッサそれぞれのプロセッサロジックによって実行される、プロセッサロジックと、
プログラム可能事象の発生に基づいて信号をアサートする状態マシンと、
前記アサートされた信号を供給する出力と、
を有し、装置はまた、
前記２つ以上のプロセッサそれぞれの前記出力を読み出して比較するように動作可能なロックステップロジックブロックを有する装置。
【請求項２】
前記状態マシンは、カウントダウンタイマおよびプログラム可能レジスタアレイのうちの一方を含む請求項１記載の装置。
【請求項３】
前記アサートされる信号はテストマシンチェックを含む請求項１記載の装置。
【請求項４】
前記２つ以上のプロセッサはプロセッサ固有資源をさらに有し、該プロセッサ固有資源は、前記プログラム可能事象を実行して前記状態マシンに前記信号をアサートさせる請求項１記載の装置。
【請求項５】
マイクロプロセッサにおいてエラーをテストする方法であって、
プログラム可能事象の発生に基づいて状態マシンを制御するようにプロセッサ固有資源をプログラムするステップと、
前記プログラム可能事象発生時にテスト信号をアサートするステップと、
前記アサートされたテスト信号を読み出すステップと、
前記アサートされたテスト信号を読み出した後にロックステップロジックをオフにし、それによって２つ以上のプロセッサのロックステップ動作が停止するステップと、
を含む方法。
【請求項６】
前記状態マシンは、カウントダウンタイマおよびプログラム可能レジスタアレイのうちの一方を含む請求項５記載の方法。
【請求項７】
前記アサートされる信号はテストマシンチェックを含む請求項５記載の方法。
【請求項８】
前記プロセッサ固有資源は、前記プログラム可能事象を実行して前記状態マシンに前記信号をアサートさせる請求項５記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ロックステッププロセッサを使用するコンピュータシステムでのエラーテストに関する。
【０００２】
【従来の技術】
シリコンデバイスは、コンピュータシステムにおけるマイクロプロセッサを含め、宇宙線やα粒子によってもたらされるエラー等の「ソフトエラー」の影響をますます受けやすくなっている。宇宙線およびα粒子の衝突は、マイクロプロセッサ内のノードの状態を変化させ、「ソフトエラー」を発生させる。ソフトエラーは一時的なものであり、コンピュータシステムの他の部分にとっては不可視であり得る。多くのコンピュータシステム、特にマイクロプロセッサは、信頼性の向上のために、ソフトエラーを検出して修正するハードウェアを備えている。従来技術によるマイクロプロセッサは、マイクロプロセッサのエラー検出／エラー修正ハードウェアをテストするために、マイクロプロセッサにおける各種アレイ内のエラー（パリティ）ビットを初期化する能力を備えている。
【０００３】
コンピュータシステムの信頼性をさらに強化するために、ロックステップコアまたはＦＲＣ（Ｆｕｎｃｔｉｏｎａｌ　Ｒｅｌｉａｂｉｌｉｔｙ　Ｃｈｅｃｋ：機能信頼性チェック）と呼ばれる技法が使用され、２つ以上のマイクロプロセッサまたはマイクロプロセッサコアがマスタ／チェッカペアで動作し、２つ以上のコアの出力が常に比較される。出力の差はいずれも、おそらくソフトエラー状態を含むエラー状態を指し示す。しかし、ソフトエラーは一時的なものであるため、ソフトエラーの検出および修正に使用されるハードウェアは、シリコンにおいて確認することが難しい。
【０００４】
【発明が解決しようとする課題】
本発明の目的は、ロックステップ性能をテストする装置および対応する方法を提供することである。
【０００５】
【課題を解決するための手段】
高度なマルチコアプロセッサアーキテクチャでは、ロックステッププロセッサの動作をテストする装置および対応する方法が用いられる。実施形態において、装置は、ロックステップモードで動作する２つ以上のプロセッサを備え、２つ以上のプロセッサはそれぞれ、コードシーケンスを実行するプロセッサロジックであって、同一のコードシーケンスが２つ以上のプロセッサそれぞれのプロセッサロジックによって実行されるプロセッサロジックと、コードシーケンスによって参照されるプロセッサ固有資源と、プログラム可能事象の発生に基づいて信号をアサートする状態マシンと、アサートされた信号を供給する出力と、を備える。装置はまた、２つ以上のプロセッサそれぞれの出力を読み取り比較するように動作可能なロックステップロジックブロックも備える。コードシーケンスの実行に基づくプロセッサ出力は、２つ以上のプロセッサそれぞれの出力を読み取り比較するように動作可能なロックステップロジックに提供される。
【０００６】
詳細な説明では、同様の符号が同様の要素を指す添付図面を参照する。
【０００７】
【発明の実施の形態】
チップ設計プロセス中にロックステップ機能性をテストする装置および対応する方法を開示する。ロックステッププロセスは、定義上、同一のコードストリームを実行し、同一の出力を生成する。プロセッサに組み込まれた、または他の方法でプロセッサに組み合わされたロックステップロジックを使用して、ロックステッププロセッサの出力の差を検出する。出力の差は、プロセッサのうちの少なくとも１つのプロセッサがエラー状態にあることを示し、ロックステップの損失につながり得る。個々のプロセッサへの直接アクセスなしで（たとえば、テストポートを経由して）は、チップ設計者（またはテスト作成者）は、テストのためにロックステップを損失させる差（たとえば、エラー状況）を、１つまたは複数のロックステッププロセッサに挿入することができない。ロックステップロジックの様々な機構をテストするために、本明細書に記載の装置および方法を使用して、ロックステップロジックによって検出されるであろうエラーを起こすことができる。
【０００８】
適正なロックステップ機能性を確認するテストプロセスの一環として、チップ設計者は、ロックステップ回復プロセス、すなわちロックステップを損失した２つ以上のプロセッサをロックステップ動作モードに復帰させるプロセスもテストする。開示する装置および対応する方法は、この特定の態様のロックステップ機能性をテストするように設計される。さらに、本装置および本方法は、テスト結果の再現性を考慮する。
【０００９】
図１は、ロックステップエラーを注入し、ロックステップの損失からの適正回復をテストする能力を含む、エラーを注入しロックステップ機能をテストすることができるシリコンデバッグ環境２００を示す。図１では、プロセッサコア２１０が、エラー信号パス２１１およびＯＲゲート２１３を通してロックステップロジックブロック２３０に接続される。プロセッサコア２１０は、データパス２１５と、ＯＲゲート、ＸＯＲゲート、マルチプレクサ、またはある他のロジック要素であることができるロジック要素２１７を通してもロックステップロジック２３０に接続される。プロセッサコア２１０とロックステップで動作するプロセッサコア２２０もまた、エラー通知パス２２１およびＯＲゲート２２３、またデータパス２２５およびロジック要素２２７を使用してロックステップロジックブロック２３０に接続される。ＯＲゲート２１３には状態マシン２１２も接続され、ＯＲゲート２２３には状態マシン２２２が接続される。
【００１０】
プロセッサコア２１０は、読み出し専用マシン固有レジスタ（Ｍａｃｈｉｎｅ　Ｓｐｅｃｉｆｉｃ　Ｒｅｇｉｓｔｅｒ：　ＭＳＲ）２１４等のプロセッサ固有資源を備えることができる。ＭＳＲ２１４は、プロセッサコア２１０のアドレス（ｃｏｒｅ＿ｉｄ）等、プロセッサコア２１０に固有のデータを含むことができる。同様に、プロセッサコア２２０も、ＭＳＲ２１４と同じ機能を実行するＭＳＲ２２４を備えることができる。エラー信号パス２１１および２２１、ならびにパス上のハードウェア（ＯＲゲート２１３および２２３、ならびに状態マシン２１２および２２２）は、テストマシンチェックアサート（Ｍａｃｈｉｎｅ　Ｃｈｅｃｋ　Ａｓｓｅｒｔｉｏｎ：　ＭＣＡ）信号を含む、またはデータパス２１１および２２１のうちの一方におけるビットを変更する、エラーの注入に使用される。
【００１１】
状態マシン２１２および２２２は、プログラム可能であればよく、タイマ／カウンタ、プログラム可能レジスタアレイ、または他の適したハードウェアデバイス（図１に示さず）であることができる。状態マシン２１２および２２２は、設定サイクル数に従って動作することができ、各動作サイクルにつき値が減分され、そして値がゼロまたは他のプログラム可能な値に達すると、その時点でテストＭＣＡ信号が注入される。ハードウェア（ＯＲゲート、データパス、および状態マシン）を使用して、チップ設計者は、再現性のある事象を決定論的に発生させることができ、シリコンデバッグ環境におけるプロセッサコアの確認を行うことができる。プロセッサコア２１０および２２０、ならびに関連する上記ハードウェアは、単一のシリコンチップ（図示せず）上に実装することができ、エラーを注入しロックステップ機能性をテストする装置が、この関連するハードウェアを備える。
【００１２】
図２Ａ〜図２Ｃは、図１の環境２００において使用可能な様々な状態マシンを示す。図２Ａは、テストＭＣＡ信号またはエラーテスト信号の一度だけのアサートを供給するカウントダウンタイマ２５０を示す。カウントダウンタイマ２５０は、減分器２５１、値レジスタ２５３、および比較器２５５を備える。比較器２５５は、クロックサイクルごとに、またはある他の規定された周期で値レジスタ２５３から値を読み出す。減分器２５１は、クロックサイクルごとに１だけ（またはある他の量）値レジスタ２５３の値を減分する。比較器２５５は、特定のクロックサイクルで読み出された値を設定値、たとえば０等と比較する。読み出された値が設定値に達すると、カウンタ２５０が、テストＭＣＡ信号をアサートするように、関連するロジックハードウェアに信号を送る。
【００１３】
図２Ｂは、これもまたテストＭＣＡ信号の一度だけのアサートを供給するタイマ２６０を示す。タイマ２６０は、クロックサイクルごとに、またはある他の周期で１だけ、またはある他の値だけカウントアップするタイマ値レジスタ２６１と、プログラム可能値レジスタ２６３と、を備え、タイマ値レジスタ２６１および値レジスタ２６３は双方とも比較器２６５に接続される。比較器２６５は、レジスタ２６１および２６３の値を常に読み出し、２つの値が等しくなったときにＭＣＡ信号を供給する。
【００１４】
図２Ｃは、テストＭＣＡ信号のアサートを供給する代替のタイマ２７０を示す。タイマ２７０は、タイマ値レジスタ２７１、プログラム可能マスクレジスタ２７３、およびプログラム可能値レジスタ２７５を備える。レジスタ２７１および２７３は、ＡＮＤゲート２７７に接続される。ＡＮＤゲート２７７の出力は、比較器２７９に接続される。比較器２７９は、ＡＮＤゲートの出力がプログラム可能値レジスタ２７５の値と整合したときに、テストＭＣＡ信号を送る。
【００１５】
図２Ａ〜図２Ｃに示す様々な状態マシンは、テストＭＣＡ信号のアサートを制御するために使用することのできるデバイスの例にすぎない。
【００１６】
プロセッサコア２１０および２２０に関連する状態マシンは、１つの状態マシンのみがロックステップロジックブロック２３０への信号をアサートするように制御することができる。チップ設計者がロックステップの損失（または他のエラー）をテストしたい場合、たとえば、プロセッサコア２１０および関連するテストハードウェアは、アサートされたＭＣＡ信号のソースとなるように制御することができる。この場合、チップ設計者は、ロックステップの損失をテストし、プロセッサコア２１０の検出されたエラーに基づいて、続けて回復を開始するよう要求することができる。したがって、プロセッサコア２１０に関連する状態マシンのみが、テストＭＣＡ信号をアサートするように制御される。テストＭＣＡ信号がアサートされると、ロックステップロジックブロック２３０がオフになり、プロセッサコア２２０が非保護モードで実行される。次いで、ロックステップ損失からの回復をプロセッサコア２２０から開始することができる。チップ設計者は、テストＭＣＡ信号を双方のプロセッサコア２１０および２２０からアサートするよう要求することもできる。
【００１７】
図３は、図１の装置のテスト動作３００を示すフローチャートである。動作３００はブロック３０５において始まる。ブロック３１０において、チップ設計者がコアシーケンスをロードして、コアプロセッサ２１０および２２０に関連するＭＳＲのうちの一方または双方をプログラムする。たとえば、テストＭＣＡ信号を開始するように状態マシン２１２を制御することができる。ブロック３１５において、プログラムされたＭＳＲが状態マシン２１２を制御してテストＭＣＡ信号をアサートさせる。ブロック３２０において、テストロジックが、アサートされたテストＭＣＡ信号を状態マシン２１２から受け取ってオフになり、プロセッサ２１０および２２０のロックステップ動作が終了する。その後、プロセッサ２１０および２２０は、ロックステップ動作が回復するまで独立モードで動作する。次いで、動作３００はブロック３３０において終了する。
【００１８】
本明細書に使用する用語および説明は例示としてのみ記載され、制限を意味するものではない。当業者は、特記されない限りすべての用語をそれぞれの可能な限り最も広い意味で理解すべきである併記の特許請求の範囲およびその等価物において規定される本発明の精神および範囲内で多くの変形が可能なことを認めよう。
【図面の簡単な説明】
【図１】ロックステップマイクロプロセッサを含むマイクロプロセッサの適正動作を確認するために、事象を決定論的に発生させることができる装置を示すシリコンデバッグ環境の論理図。
【図２Ａ】マシンチェックおよび他のエラーをアサートするために、図１の環境において使用可能なユーザプログラム可能デバイスを示す図。
【図２Ｂ】マシンチェックおよび他のエラーをアサートするために、図１の環境において使用可能なユーザプログラム可能デバイスを示す図。
【図２Ｃ】マシンチェックおよび他のエラーをアサートするために、図１の環境において使用可能なユーザプログラム可能デバイスを示す図。
【図３】図１の装置の動作のフローチャート。
【図１】
2004038954.tif 000003
【図２Ａ】
2004038954.tif 000004
【図２Ｂ】
2004038954.tif 000005
【図２Ｃ】
2004038954.tif 000006
【図３】
2004038954.tif 000007