(57)【要約】【解決手段】  メモリにエラーを注入する装置および方法が開示されている。一実施形態によると、専用インターフェースは、エラー注入システムアドレスレジスタと、当該エラー注入システムアドレスレジスタに結合されているエラー注入マスクレジスタとを備える。エラー注入システムアドレスレジスタが、入力される書き込みアドレスと一致するシステムアドレスを含む場合、エラー注入マスクレジスタがエラーをメモリに出力する。【選択図】  図３
2014531681.tif 000002
【特許請求の範囲】
【請求項１】
メモリにエラーを注入する装置であって、
エラー注入システムアドレスレジスタと、
前記エラー注入システムアドレスレジスタに結合されているエラー注入マスクレジスタと
を備え、
前記エラー注入システムアドレスレジスタが、入力される書き込みアドレスに一致するシステムアドレスを含む場合、前記エラー注入マスクレジスタは前記メモリにエラーを出力する
装置。
【請求項２】
プロセッサのメモリコントロールハブ（ＭＣＨ）のコンポーネントである請求項１に記載の装置。
【請求項３】
前記エラー注入マスクレジスタは、前記エラーが予めプログラミングされている請求項１または２に記載の装置。
【請求項４】
前記エラーは、修正済みエラーまたは未修正エラーのうち少なくとも１つを含む請求項３に記載の装置。
【請求項５】
前記エラー注入システムアドレスレジスタに結合されているロックメカニズムをさらに備え、
前記ロックメカニズムは、前記エラー注入システムアドレスレジスタをロックするか、または、前記エラー注入システムアドレスレジスタのロックを解除して、前記エラー注入マスクレジスタが前記メモリに対して前記エラーを出力できるようにするか、または、前記メモリに前記エラーを出力できないようにする請求項１から４の何れか１項に記載の装置。
【請求項６】
前記ロックメカニズムはさらに、前記エラー注入システムアドレスレジスタの有効ビットを有する請求項５に記載の装置。
【請求項７】
ロジックブロックをさらに備え、
前記ロジックブロックは、エラー注入信号を前記エラー注入マスクレジスタに送信し、前記エラー注入マスクレジスタが前記エラーを前記メモリに出力する請求項５または６に記載の装置。
【請求項８】
前記ロックメカニズムのロックが解除され、前記システムアドレスが前記入力される書き込みアドレスに一致する場合、前記ロジックブロックは、前記エラー注入信号を前記エラー注入マスクレジスタに送信する請求項７に記載の装置。
【請求項９】
メモリと、
命令を処理するプロセッサと、
前記メモリにエラーを注入する専用インターフェースを有するメモリコントロールハブ（ＭＣＨ）と
を備え、
前記専用インターフェースは、
エラー注入システムアドレスレジスタと、
前記エラー注入システムアドレスレジスタに結合されているエラー注入マスクレジスタと
を有し、
前記エラー注入システムアドレスレジスタが、入力される書き込みアドレスに一致するシステムアドレスを持っている場合、前記エラー注入マスクレジスタは前記エラーを前記メモリに出力するコンピュータシステム。
【請求項１０】
前記エラー注入マスクレジスタは、前記エラーが予めプログラミングされている
請求項９に記載のコンピュータシステム。
【請求項１１】
前記エラーは、修正済みエラーまたは未修正エラーのうち少なくとも１つを含む
請求項１０に記載のコンピュータシステム。
【請求項１２】
前記エラー注入システムアドレスレジスタに結合されているロックメカニズムをさらに備え、
前記ロックメカニズムは、前記エラー注入システムアドレスレジスタをロックするか、または、前記エラー注入システムアドレスレジスタのロックを解除して、前記エラー注入マスクレジスタが前記メモリに前記エラーを出力できるようにするか、または、前記メモリに前記エラーを出力できないようにする請求項９から１１の何れか１項に記載のコンピュータシステム。
【請求項１３】
前記ロックメカニズムはさらに、前記エラー注入システムアドレスレジスタの有効ビットを有する請求項１２に記載のコンピュータシステム。
【請求項１４】
ロジックブロックをさらに備え、
前記ロジックブロックは、エラー注入信号を前記エラー注入マスクレジスタに送信して、前記エラー注入マスクレジスタが前記エラーを前記メモリに出力する請求項１２または１３に記載のコンピュータシステム。
【請求項１５】
前記ロックメカニズムのロックが解除されており、前記システムアドレスが前記入力される書き込みアドレスに一致する場合、前記ロジックブロックは、前記エラー注入マスクレジスタに前記エラー注入信号を送信する請求項１４に記載のコンピュータシステム。
【請求項１６】
メモリにエラーを注入する方法であって、
エラー注入システムアドレスレジスタにおいて試験ソフトウェアからシステムアドレスを受信する段階と、
前記エラー注入システムアドレスレジスタの前記システムアドレスが、入力される書き込みアドレスに一致するか否かを判断する段階と、
前記システムアドレスが、前記入力される書き込みアドレスに一致する場合、前記メモリにエラーを出力するようエラー注入マスクレジスタに命令する段階と
を備える方法。
【請求項１７】
前記エラーを前記エラー注入マスクレジスタに予めプログラミングする段階をさらに備える請求項１６に記載の方法。
【請求項１８】
前記エラーは、修正済みエラーまたは未修正エラーのうち少なくとも１つを含む請求項１７に記載の方法。
【請求項１９】
ロックメカニズムは、前記エラー注入システムアドレスレジスタに結合されており、
前記ロックメカニズムは、前記エラー注入システムアドレスレジスタをロックするか、または、前記エラー注入システムアドレスレジスタのロックを解除して、前記エラー注入マスクレジスタが前記メモリに前記エラーを出力できるようにするか、または、前記エラーを前記メモリに出力できないようにする請求項１６から１８の何れか１項に記載の方法。
【請求項２０】
前記ロックメカニズムはさらに、前記エラー注入システムアドレスレジスタの有効ビットを有する請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は概して、メモリにエラーを注入する方法および装置に関する。
【背景技術】
【０００２】
複雑なエラー処理およびエラー修復用のソフトウェア（ＳＷ）を開発および評価するべく、オペレーティングシステム（ＯＳ）ベンダー、仮想マシンマネージャ（ＶＭＭ）ベンダー等のＳＷベンダーは、ソフトウェア試験のために所定のシステムアドレスにエラーを注入することが可能な簡単なインターフェースを望んでいる。
【０００３】
現在の実施例では、メモリにエラーを注入するために用いられ得る簡単なインターフェースが存在しない。代わりに、ベーシックインプットアウトプットシステム（ＢＩＯＳ）を利用する複雑な方法が用いられており、当該方法はエラー注入メカニズムを試験するよう設計（ＤＦｘ）されている。尚、当該エラー注入メカニズムは、エラー注入を実施するために用いられる。
【０００４】
残念なことに、これらの方法は、複雑で、試験対象である各製品に関連して設計上の問題を多く抱えている。さらに、これらの方法は通常、試験対象の製品毎に「再発明」する必要があるので、転用可能ではない。例えば、所定のシステムアドレスをメモリアドレスに変換する必要があり（ＤＦｘメカニズムはメモリアドレスを基に動作するため）、試験対象の特定の製品についてのみ利用されることが意図されていた特定の機能を解除するべくマイクロコードによる支援がさらに必要になる場合もある。
【０００５】
このため、製品を試験するべくエラーを注入することを目的として簡単なインターフェースを利用することは有益と考えられる。
【図面の簡単な説明】
【０００６】
以下の詳細な説明と共に以下の図面を参照することで本発明をより理解できるであろう。図面は以下の通りである。
【０００７】
【図１】本発明の実施形態で用いられるコンピュータシステムアーキテクチャを示す図である。
【０００８】
【図２】本発明の実施形態で用いられるコンピュータシステムアーキテクチャを示す図である。
【０００９】
【図３】本発明の一実施形態に係る、ＭＣＨ専用インターフェースを示すブロック図である。
【００１０】
【図４】本発明の一実施形態に係る、試験ソフトウェアフローおよびＭＣＨ専用インターフェースフロー（例えば、ハードウェア（ＨＷ）フロー）を示すフローチャート４００である。
【発明を実施するための形態】
【００１１】
以下の説明では、説明の便宜上、後述する本発明の実施形態を深く理解していただくべく具体的且つ詳細な内容を数多く記載する。しかし、本発明の実施形態は以下に記載する具体的且つ詳細内容の一部を採用することなく実施し得ることは当業者には明らかである。また、公知の構造およびデバイスは、本発明の実施形態の基礎的な原理をあいまいにしないようにブロック図形式で図示している。
【００１２】
以下に記載するのは、後述する本明細書で詳細に説明する命令を実行するための本発明の実施形態と共に利用し得るコンピュータシステムの一例である。ラップトップ、デスクトップ、手持ちＰＣ、携帯情報端末、エンジニアリングワークステーション、サーバ、ネットワークデバイス、ネットワークハブ、スイッチ、埋め込みプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、グラフィクスデバイス、ビデオゲームデバイス、セットトップボックス、マイクロコントローラ、携帯電話、ポータブルメディアプレーヤ、手持ちデバイス、および、さまざまなその他の電子デバイスについての関連技術分野で公知の他のシステム設計およびシステム構成も適宜利用される。一般的に、本明細書に開示するプロセッサおよび／または他の実行ロジックを組み込むことが可能な非常に多岐にわたるシステムまたは電子デバイスは概して、適宜利用される。
【００１３】
ここで図１を参照すると、本発明の一実施形態に係るコンピュータシステム１００のブロック図が図示されている。システム１００は、１以上の処理要素１１０、１１５を備えるとしてよい。処理要素１１０、１１５は、グラフィクスメモリコントローラハブ（ＧＭＣＨ）１２０に結合されている。任意の追加の処理要素１１５を、図１において破線で示している。各処理要素は、シングルコアであってもよいし、または、これに代えて複数のコアを含むとしてもよい。処理要素は任意で、処理コア以外に、統合メモリコントローラおよび／または統合Ｉ／Ｏ制御ロジック等の他のオンダイ要素を含むとしてもよい。また、少なくとも一の実施形態について、処理要素のコアは、複数のハードウェアスレッドコンテキストをコア毎に持つという点で、マルチスレッド型としてもよい。
【００１４】
図１では、ＧＭＣＨ１２０が、メモリ１４０に結合されている様子が図示されている。メモリ１４０は、例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）であってよい。ＤＲＡＭは、少なくとも一の実施形態について、不揮発性キャッシュに対応付けられているとしてよい。ＧＭＣＨ１２０は、チップセットであってもよいし、または、チップセットの一部であってもよい。ＧＭＣＨ１２０は、プロセッサ１１０、１１５と通信するとしてよく、プロセッサ１１０、１１５とメモリ１４０との間のやり取りを制御するとしてよい。ＧＭＣＨ１２０はまた、プロセッサ１１０、１１５と、システム１００の他の要素との間のアクセラレーテッドバスインターフェースとして動作するとしてよい。少なくとも一の実施形態について、ＧＭＣＨ１２０は、フロントサイドバス（ＦＳＢ）１９５等のマルチドロップバスを介してプロセッサ１１０、１１５と通信する。さらに、ＧＭＣＨ１２０は、ディスプレイ１４０（フラットパネルディスプレイ等）に結合されている。ＧＭＣＨ１２０は、統合グラフィクスアクセラレータを含むとしてよい。ＧＭＣＨ１２０はさらに、入出力（Ｉ／Ｏ）コントローラハブ（ＩＣＨ）１５０に結合されている。ＩＣＨ１５０は、さまざまな周辺機器をシステム１００に結合するために用いられるとしてよい。図１の実施形態では、一例として、ＩＣＨ１５０に結合されているディスクリートなグラフィクスデバイスである外部グラフィクスデバイス１６０と、別の周辺機器１７０とを図示している。
【００１５】
これに代えて、システム１００にはさらに追加の処理要素または異なる処理要素が設けられているとしてもよい。例えば、追加の処理要素１１５は、プロセッサ１１０と同一の追加のプロセッサ、プロセッサ１１０と異質または非対称の追加のプロセッサ、アクセラレータ（例えば、グラフィクスアクセラレータまたはデジタルシグナルプロセッサ（ＤＳＰ）ユニット）、フィールドプログラマブルゲートアレイ、または、任意のその他の処理要素を含むとしてよい。物理リソース１１０、１１５には、アーキテクチャ上の特徴、マイクロアーキテクチャ上の特徴、熱特性、消費電力特性等を含む多岐にわたるメトリックに関して、さまざまな違いがあるとしてよい。これらの違いは、処理要素１１０、１１５の非対称性および異質性を事実上示しているとしてよい。少なくとも一の実施形態において、さまざまな処理要素１１０、１１５は同じダイパッケージに存在しているとしてよい。
【００１６】
ここで図２を参照すると、本発明の実施形態に応じた別のコンピュータシステム２００のブロック図が図示されている。図２に示すように、マルチプロセッサシステム２００は、ポイントツーポイントインターコネクトシステムであり、ポイントツーポイントインターコネクト２５０を介して結合されている第１の処理要素２７０および第２の処理要素２８０を備える。図２に図示されているように、処理要素２７０および２８０のそれぞれは、マルチコアプロセッサであってよく、第１のプロセッサコアおよび第２のプロセッサコアを含む（つまり、プロセッサコア２７４ａおよび２７４ｂ、ならびに、プロセッサコア２８４ａおよび２８４ｂ）。これに代えて、処理要素２７０、２８０のうち１以上は、プロセッサ以外の要素であってもよく、例えば、アクセラレータまたはフィールドプログラマブルゲートアレイであってよい。図示している処理要素は２７０、２８０の２つのみであるが、本発明の範囲はこれに限定されないと理解されたい。他の実施形態では、１以上の追加の処理要素を一の所与のプロセッサに設けるとしてもよい。
【００１７】
第１の処理要素２７０はさらに、後述するように専用インターフェース２７３を含むメモリコントローラハブ（ＭＣＨ）２７２と、ポイントツーポイント（Ｐ−Ｐ）インターフェース２７６および２７８とを有するとしてよい。同様に、第２の処理要素２８０は、後述するように専用インターフェース２８３を含むＭＣＨ２８２と、Ｐ−Ｐインターフェース２８６および２８８とを有するとしてよい。プロセッサ２７０、２８０は、ポイントツーポイント（ＰｔＰ）インターフェース２５０を介してＰｔＰインターフェース回路２７８、２８８を用いてデータをやり取りするとしてよい。図２に示すように、ＭＣＨ２７２および２８２は、プロセッサを対応するメモリに結合しており、つまり、メモリ２３２およびメモリ２３４に結合している。メモリ２３２およびメモリ２３４は、メインメモリのうち対応するプロセッサにローカルに取り付けられている部分であってよい。
【００１８】
プロセッサ２７０、２８０はそれぞれ、ポイントツーポイントインターフェース回路２７６、２９４、２８６、２９８を用いて、個々のＰｔＰインターフェース２５２、２５４を介してチップセット２９０とデータをやり取りするとしてよい。チップセット２９０はさらに、高性能グラフィクスインターフェース２３９を介して高性能グラフィクス回路２３８とデータをやり取りするとしてよい。本発明の実施形態は、任意の数の処理コアを持つ任意の処理要素に設けられているとしてよい。一実施形態によると、任意のプロセッサコアは、ローカルキャッシュメモリ（不図示）を含むとしてもよいし、または、ローカルキャッシュメモリ（不図示）に対応付けられているとしてもよい。さらに、共有キャッシュ（不図示）は、一方のプロセッサに含まれているとしてもよいし、または、両プロセッサの外部にあるがｐ２ｐインターコネクトを介して両プロセッサに接続されているとしてもよく、一方または両方のプロセッサのローカルキャッシュ情報は、プロセッサが低電力モードである場合には共有キャッシュに格納されるとしてよい。第１の処理要素２７０および第２の処理要素２８０はそれぞれ、Ｐ−Ｐインターコネクト２７６、２８６を介してチップセット２９０に結合されているとしてよい。図２に図示されているように、チップセット２９０はＰ−Ｐインターフェース２９４および２９８を含む。さらに、チップセット２９０は、チップセット２９０を高性能グラフィクスエンジン２４８に結合するべくインターフェース２９２を含む。一実施形態によると、バス２４９は、グラフィクスエンジン２４８をチップセット２９０に結合するために用いられるとしてよい。これに代えて、ポイントツーポイントインターコネクト２４９は、これらの構成要素を結合するとしてもよい。そして、チップセット２９０は、インターフェース２９６を介して第１のバス２１６に結合されているとしてよい。一実施形態によると、第１のバス２１６は、ぺリフェラルコンポーネントインターコネクト（ＰＣＩ）バスであってよく、または、ＰＣＩ  Ｅｘｐｒｅｓｓバス等のバスであってよく、または、別の第三世代Ｉ／Ｏインターコネクトバスであってもよい。しかし、本発明の範囲はこれに限定されない。
【００１９】
図２に図示するように、さまざまなＩ／Ｏデバイス２１４は、第１のバス２１６を第２のバス２２０に結合するバスブリッジ２１８と共に、第１のバス２１６に結合されているとしてよい。一実施形態によると、第２のバス２２０はローピンカウント（ＬＰＣ）バスであってよい。さまざまなデバイスが第２のバス２２０に結合されているとしてよい。例えば、一実施形態によると、キーボード／マウス２２２、通信デバイス２２６、および、コード２３０を含むディスクドライブまたは他の大容量格納デバイス等のデータ格納ユニット２２８が結合されているとしてよい。さらに、オーディオＩ／Ｏ２２４が第２のバス２２０に結合されているとしてよい。尚、他のアーキテクチャも可能である。例えば、ポイントツーポイントアーキテクチャの代わりに、システムはマルチドロップバスまたは他の同様のアーキテクチャを実現するとしてもよい。
【００２０】
一実施形態によると、処理要素２７０は、専用インターフェース２７３を含むＭＣＨ２７２を含むとしてよい。他の処理要素が、同様に専用インターフェース（例えば、処理要素２８０の専用インターフェース２８３）を含むＭＣＨを含み得ると認められたい。説明するように、ＭＣＨ２７２の専用インターフェース２７３は、エラーを注入すべきシステムアドレスをプログラミングするべくコンピュータシステム２００の試験ソフトウェアによって用いられるとしてよく、注入すべきエラーの種類を選択するべくマスクレジスタを含むとしてよい。
【００２１】
ここで図３を参照すると、本発明の一実施形態に応じたＭＣＨ専用インターフェース２７３のブロック図が図示されている。一実施形態によると、ＭＣＨ専用インターフェース２７３は、エラー注入システムアドレスレジスタ３０２、および、エラー注入システムアドレスレジスタに結合されているエラー注入マスクレジスタ３３０を含む。エラー注入システムアドレスレジスタ３０２が、入力される書き込みアドレス３２５と一致するシステムアドレスを含む場合、エラー注入マスクレジスタ３３０はメモリ３５０にエラーを出力する。
【００２２】
ＭＣＨ専用インターフェース２７３の概略をここで説明する。図３に示すように、エラー注入システムアドレスレジスタ３０２は、コンピュータシステムの試験ソフトウェアがエラーを注入すべき所望のシステムアドレスをプログラミングできるように設けられている。このようにプログラミングされたアドレスと入力される要求のアドレス３２５とが一致するか否かを検証するためのロジック３１０がさらに設けられている。システムアドレスがエラー注入システムアドレスレジスタ３０２にプログラミングされると、試験ソフトウェアはこの後、このシステムアドレス３２５に対して書き込みを実行することができる。アドレスが一致すると、メモリ３５０の当該位置へのエラー（例えば、データ３３３）の入力がトリガされるとしてよい。エラーの種類（修正済み、または、未修正）は、どのビットがエラーを含むかを制御するエラー注入マスクレジスタ３３０のソフトウェアプログラミングによって選択されるとしてよい。一例として、ＭＣＨ専用インターフェース２７３は、メモリ２３２に対応付けられているコンピュータシステム２００の処理要素２７０のＭＣＨ２７２と共に利用されるとしてよいが、理解されるように、任意のコンピュータシステムで利用され得る。例えば、本発明の実施形態は、図１のコンピュータシステム１００で実現されるとしてよい。
【００２３】
一例として、図３に示すように、セキュリティのために、ロックメカニズム３０１がエラー注入システムアドレスレジスタ３０２に結合されているとしてよい。具体例として、ロックメカニズム３０１は、システム管理モード（ＳＭＭ）時にはロックが解除されているとしてよい。試験ソフトウェアは、インバータ３２２を介してＡＮＤゲート３２４に結合されているロック３２０のロックを解除するとしてよく、レジスタへの書き込み３２１をＡＮＤゲート３２４に送信するとしてよい。このようにして、有効ビット３０４がエラー注入システムアドレスレジスタ３０２に設定されるとしてよく、システムのロックが解除される。
【００２４】
前述したように、試験ソフトウェアは、エラー注入システムアドレスを、エラー注入システムアドレスレジスタ３０２に供給するとしてよい。判断ロジックブロック３１０は、試験ソフトウェアプログラム書き込みアドレス３２５と、エラー注入システムアドレス３０２とが一致するか否かを検証するために用いられる。具体的には、メモリ書き込み信号３０９および有効信号３０４が、判断ロジックブロック３１０に信号を送信するＡＮＤゲート３０６によって受信され、判断ロジックブロック３１０が、レジスタ３０２からのエラー注入システムアドレスが、試験ソフトウェアプログラム書き込みアドレス３２５と一致すると判断すると、判断ロジックブロック３１０はエラー注入信号３１２をエラー注入マスクレジスタ３３０に送信する。
【００２５】
このため、エラー注入システムアドレスがレジスタ３０２にプログラミングされると、試験ソフトウェアはこの後、システムアドレス３２５への書き込みを実行することができ、判断ロジックブロック３１０によってアドレスが一致すると判断されると、決定ブロック３１０は、エラー注入マスクレジスタ３３０を通して、当該位置へと注入すべきエラー注入信号３１２をトリガすることができる。エラーの種類（修正済み、または、未修正）は、エラーを含むビットを制御するエラー注入マスクレジスタ３３０のデータマスクレジスタを予めプログラミングする試験ソフトウェアによって選択され得る。図３から分かるように、データエラー３３３は、試験のために、メモリ３５０へとデータバッファ３４０を介して供給され得る。
【００２６】
このようにして、上述した構造および方法によると、コンピュータシステム２００の試験ソフトウェアによってソフトウェアの問題を検出して修正するべく、メモリエラー３３３（修正済み、または、未修正）をメモリ３５０に注入することができるようになる。
【００２７】
さらに図４を参照すると、図４は、試験ソフトウェアフローおよびＭＣＨ専用インターフェースフロー（例えば、ハードウェア（ＨＷ）フロー）を示すフローチャート４００である。図４から分かるように、試験ソフトウェアは、上述したようにロックメカニズム３０１のロックを解除する（サークル４０２）。続いて、試験ソフトウェアは、エラー注入システムアドレスレジスタ３０２にＸをプログラミングする（サークル４０４）。Ｘは試験ソフトウェアがエラーを注入したいシステムアドレスであると考えられたい。
【００２８】
続いて、試験ソフトウェアは、所望のエラーを発生させるようにエラー注入マスクレジスタ３３０をプログラミングする（サークル４０６）。さらに、試験ソフトウェアは、有効ビット３０４を設定して、注入のためにハードウェアロジックを準備する（サークル４０８）。続いて、試験ソフトウェアは、アドレスＸへの書き込みを実行する（サークル４１０）。
【００２９】
ハードウェアまたはＭＣＨ専用インターフェースフローについて、メモリ書き込みアクセスが存在するか否かを判断する（判断サークル４２０）。存在しない場合、トランザクションはエラーを注入することなく継続する（サークル４２２）。しかし、メモリ書き込みである場合、アクセスの対象がアドレスＸであるか否か、および、メカニズムが準備されているか否かを判断する（判断サークル４２５）。アドレスＸではなく、メカニズムが準備されていない場合、トランザクションはエラーを注入することなく継続する（サークル４２２）。
【００３０】
しかし、メカニズムが準備されており、アクセスの対象がアドレスＸである場合（例えば、ロジックブロック３１０によって判断される）、エラー注入マスク３３０が適用されるとしてよい（サークル４３０）。この場合、データ３３３はエラー４３４と共にメモリ３５０に書き込まれる。上述したように、エラーの種類（修正済み、または、未修正）は、どのビットがエラーを含むかを制御するエラー注入マスクレジスタ３３０のデータマスクレジスタを予めプログラミングする試験ソフトウェアによって選択することができる。
【００３１】
さらに、試験ソフトウェアは、アドレスＸ読み出しを実行するとしてよく（サークル４５０）、ハードウェアはエラーを検出するとしてよい（サークル４５２）。ハードウェアはこの後、エラーを記録して伝達し（サークル４５４）、エラー処理ソフトウェアがエラーを処理するとしてよい（サークル４５６）。
【００３２】
このように、上述した構造および方法によれば、コンピュータシステムの試験ソフトウェアによってソフトウェアの問題を検出して修正するべくメモリへのメモリエラー（修正済み、または、未修正）の注入が可能になる。さらに、上述した専用インターフェースおよびソフトウェア方法の実施形態は、ソフトウェアベンダー、例えば、オペレーティングシステムベンダーおよび仮想マシンマネジメントベンダー、そして、ＯＥＭ（相手先商標製品製造者）によるエラー注入要件を満たすために用いられるとしてよい。上述した本発明では、試験のためにメモリにエラーを注入するように特別に構成された簡単なインターフェースが提供される。具体的には、上記の方法によると、検出および修正を目的としてメモリエラー（修正済み、および／または、未修正）の注入が可能になる。基本的には、上述した構造および方法は、メモリへの真のエラー注入を可能とし、エラー修復フローの開発および評価を可能とする。
【００３３】
本明細書に開示したメカニズムの実施形態は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの実装方法の組み合わせで実現され得る。本発明の実施形態は、少なくとも一のプロセッサ、データ格納システム（揮発性および不揮発性のメモリおよび／または格納素子を含む）、少なくとも一の入力デバイス、および、少なくとも一の出力デバイスを備えるプログラミング可能システムで実行されるコンピュータプログラムまたはプログラムコードとして実現され得る。
【００３４】
プログラムコードを入力データに適用して、本明細書で説明した機能を実行し、出力情報を生成するとしてよい。出力情報は、公知の方法で１以上の出力デバイスに適用されるとしてよい。本願において、処理システムは、例えば、デジタルシグナルプロセッサ（ＤＳＰ）、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、または、マイクロプロセッサ等のプロセッサを備える任意のシステムを含む。
【００３５】
プログラムコードは、処理システムと通信するべく高級プロシージャ言語またはオブジェクト指向型プログラミング言語で実装されるとしてよい。プログラムコードはさらに、所望される場合、アセンブリ言語または機械言語で実装されるとしてもよい。実際には、本明細書で説明するメカニズムの範囲は、任意の特定のプログラミング言語に限定されるものではない。どの場合でも、言語はコンパイラ型またはインタプリタ型のどちらであってもよい。
【００３６】
少なくとも一の実施形態の１以上の側面を、プロセッサにおけるさまざまなロジックを表す機械可読媒体に格納されているデータ表現で実装するとしてよい。当該データ表現は、機械によって読み出されると、機械にロジックを製造させて本明細書で説明した方法を実現させる。このような表現は、「ＩＰコア」として知られており、有形の機械可読媒体に格納されているとしてよく、さまざまな顧客または製造設備に供給され、ロジックまたはプロセッサを実際に生成する製造機械にロードされる。このような機械可読格納媒体は、これらに限定されることなく、機械またはデバイスによって製造または形成される非一時的で有形の粒子の配列を含むとしてよい。例えば、ハードディスク、任意のその他の種類のディスク、例えば、フロッピー（登録商標）ディスク、光ディスク、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスクリライタブル（ＣＤ−ＲＷ）および光磁気ディスク等の格納媒体、半導体デバイス、例えば、リードオンリーメモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、消去可能プログラミング可能リードオンリーメモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能プログラミング可能リードオンリーメモリ（ＥＥＰＲＯＭ）、磁気カードまたは光カード、または、電子命令を格納するのに適した任意のその他の種類の媒体を含む。
【００３７】
したがって、本発明の実施形態はさらに、本発明の実施形態に係る処理を実行するための命令を含む、または、本明細書で説明した構造、回路、装置、プロセッサおよび／またはシステムフィーチャを定義するＨＤＬ等の設計データを含む非一時的で有形の機械可読媒体を含む。このような実施形態は、プログラム製品とも呼ばれるとしてよい。
【００３８】
本明細書で開示した命令の特定の処理は、ハードウェア素子によって実行されるとしてよく、機械実行可能命令で具現化されるとしてよく、当該機械実行可能命令は、当該機械実行可能命令がプログラミングされている回路または他のハードウェア素子に当該処理を実行させるか、または、少なくとも当該回路または他のハードウェア素子で当該処理を発生させるために用いられる。回路は、汎用プロセッサまたは特定用途向けプロセッサを含むとしてよく、または、ロジック回路を含むとしてもよい。これは数例に過ぎない。処理はさらに任意で、ハードウェアおよびソフトウェアの組み合わせで実行されるとしてもよい。実行ロジックおよび／またはプロセッサは、機械命令または機械命令から導出される１以上の制御信号に応答して、命令が特定した結果であるオペランドを格納する特別または特定の回路または他のロジックを含むとしてよい。例えば、本明細書で開示した命令の実施形態は、図１および図２のシステムのうち１以上で実行されるとしてよい。命令の実施形態は、システムで実行されるべきプログラムコードに格納されるとしてよい。さらに、これらの図面の処理要素は、本明細書で詳細に説明した詳細なパイプラインおよび／またはアーキテクチャ（例えば、インオーダアーキテクチャおよびアウトオブオーダアーキテクチャ）のうち１つを利用するとしてよい。例えば、インオーダアーキテクチャのデコードユニットは、命令をデコードして、デコードされた命令をベクトルユニットまたはスカラーユニットに供給する等としてよい。
【００３９】
上記の説明では、説明の便宜上、本発明を深く理解していただくべく具体的且つ詳細な内容を数多く記載している。しかし、本発明が上記の具体的且つ詳細な内容の一部を採用することなく実施し得ることは当業者には明らかであろう。したがって、本発明の範囲および意図は、特許請求の範囲によってのみ判断されるべきである。
【図１】
2014531681.tif 000003
【図２】
2014531681.tif 000004
【図３】
2014531681.tif 000005
【図４】
2014531681.tif 000006
【国際調査報告】
2014531681.tif 000007
2014531681.tif 000008