(57)【特許請求の範囲】
【請求項１】
キャッシュ・メモリを含むシステム・メモリをテストするために、メモリ・チェック・テストを実行する方法であって、
前記キャッシュ・メモリは、少なくとも２つの、各々が第１のサイズを有するモジュールを含み、
前記第１のサイズの少なくとも２倍である第２のサイズの参照メモリ・ブロックを選択する段階と、
１回目に前記キャッシュ・メモリを使用不能にするよう作用する段階と、
前記参照メモリ・ブロックの１回目のビット故障テストを実行する段階と、
ビット故障が検出されなかった場合、前記キャッシュ・メモリを使用可能にする段階と、
前記参照メモリ・ブロックの２回目のビット故障テストを実行する段階と、
前記２回目のテストで故障が検出されたビットを含むバイトのバイト・アドレスを、ルックアップ・テーブルを用いて、前記モジュール中の物理的位置に対応付けし、故障したモジュールの取り替えによって故障を治すことを可能にする段階と、
を含む方法。
【請求項２】
前記対応付けする段階に続いて、さらに前記キャッシュ・メモリを２回目に使用不能にするよう作用する段階を含む請求項１に記載の方法。
【請求項３】
前記２回目に使用不能にする段階に続いて、さらにビット故障が検出されたとき、ビット故障の存在を表すエラー標識を提供する段階を含む請求項２に記載の方法。
【請求項４】
前記標識をディスプレイ装置上で提示する請求項３に記載の方法。
【請求項５】
前記標識が、故障が検出されたビットを含むバイトのバイト・アドレスを表す請求項４に記載の方法。
【請求項６】
前記１回目のテストで故障が検出された場合、前記１回目のテストを実行する前記段階に続いて、該故障が検出されたビットを含むバイトのバイト・アドレスを、ルックアップ・テーブルを用いて、前記メモリ・ブロック中の物理的位置に対応付けする段階と、
前記メモリ・チェック・テストを終了する段階とをさらに含む請求項１〜５のいずれか１項に記載の方法。
【請求項７】
キャッシュ・メモリを含むシステム・メモリであって、前記キャッシュ・メモリは少なくとも２つの、各々が第１のサイズを有するモジュールを含む、システム・メモリに対して、メモリ・チェック・テストを実行するためのコンピュータ・プログラムを記録した記録媒体であって、
前記コンピュータ・プログラムが、
前記第１のサイズの少なくとも２倍である第２のサイズの参照メモリ・ブロックを選択する段階と、
１回目に前記キャッシュ・メモリを使用不能にするよう作用する段階と、
前記参照メモリ・ブロックの１回目のビット故障テストを実行する段階と、
ビット故障が検出されなかった場合、前記キャッシュ・メモリを使用可能にする段階と、
前記参照メモリ・ブロックの２回目のビット故障テストを実行する段階と、
前記２回目のテストで故障が検出されたビットを含むバイトのバイト・アドレスを、ルックアップ・テーブルを用いて、前記モジュール中の物理的位置に対応付けし、故障したモジュールの取り替えによって故障を治すことを可能にする段階と、
を含む、記録媒体。
【請求項８】
前記コンピュータ・プログラムが、前記対応付け段階に続いて、前記キャッシュ・メモリを２回目に使用不能にする段階をさらに含む、請求項７に記載の記録媒体。
【請求項９】
前記コンピュータ・プログラムが、前記２回目に使用不能にする段階に続いて、ビット故障が検出されたとき、ビット故障の存在を表すエラー標識を提供する段階をさらに含む、請求項８に記載の記録媒体。
【請求項１０】
前記コンピュータ・プログラムが、前記標識をディスプレイ装置上に提示する段階をさらに含む、請求項９に記載の記録媒体。
【請求項１１】
前記標識が、故障が検出されたビットを含むバイトのバイト・アドレスを表すものである請求項１０に記載の記録媒体。
【請求項１２】
前記コンピュータ・プログラムが、
前記１回目のテストで故障が検出された場合、前記１回目のテストを実行する前記段階に続いて、該故障が検出されたビットを含むバイトのバイト・アドレスを、ルックアップ・テーブルを用いて、前記メモリ・ブロック中の物理的位置に対応付けする段階と、
前記メモリ・チェック・テストを終了する段階とをさらに含む、請求項７〜１１のいずれか１項に記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に情報処理システムに関するものであり、より詳細には、メモリ・システムをテストするための改良された技法に関するものである。
【０００２】
【従来の技術】
一般に、パーソナル・コンピュータもしくは「ＰＣ」を含めてコンピュータ・システムは、一連の電子回路板またはカードから構成されるＣＰＵケーシングまたはボックスを含んでいる。この回路板またはカードは、一般に、それぞれ、その回路板上に集積回路（ＩＣ）または「チップ」を装着しており、ＩＣは、一緒にかつ互いに接続されているだけでなく、コンピュータ・システムにおける他の基板上の他の構成要素とも接続されている。実装されているＩＣは、通常、ディスプレイ・サブシステム、入出力サブシステム、メモリ・サブシステムなどコンピュータ・システム内部のサブシステムの一部でもあり、これらすべてが一緒に機能しなければ、コンピュータ・システムやＰＣは正しく作動しない。
【０００３】
工場でＰＣを組み立てるとき、通常はＩＣを含む構成部品を何度もテストしてから、回路カードに装着しコンピュータ・システム内部の他の回路に接続する。同様に、装着後でさえ、これらのカードをテストして、構成要素それ自体またはコンピュータ・システムのサブシステム内に欠陥がないことを確認する。
【０００４】
構成要素やサブシステムの欠陥は、数多くの原因から起こりうる。たとえば、ＩＣが単体の構成要素として以前のテストにパスしていたとしても、そのＩＣが回路カードに組み込まれたとき、この単体のＩＣがサブシステムの故障や欠陥を引き起こす原因になるかもしれない。ＩＣの出荷途中、あるいは単なる組み立て工程中の通常の作業で、欠陥が生じることもある。システムを組み立て、テストし、装置を顧客の元に配達した後でさえ、その装置を運搬する途中、またはカストマ・セットアップの途中でさえ、コンピュータ装置が正しく機能しなくなるような何かが起こるかもしれない。たとえば、顧客が装置を設置しているとき、その顧客の設置場所で静電放電や接地が起こるかもしれない。そうなれば、その結果として、１つまたは複数のＩＣがだいなしになり、取り替えが必要になる。このように、製造の組み立て作業、構成要素の問題、または顧客の誤った対応の結果として、欠陥が起こる可能性がある。
【０００５】
このようなシステムを修復するために、最初にする仕事は、故障した構成要素を分離し、その位置を突きとめることである。複雑なＣＰＵカード設計では、すばやく欠陥を識別できることがとても重要である。すばやく分離すれば、すばやく修正も行なえる。小型のコンピュータ・システムや他の情報処理システムでさえ、何千もの接続や何百もの構成要素があることを考慮すると、この仕事は比較的複雑である。ある構成要素は、故障があった特定の領域を分離し識別するために、その装置上で実行される自己試験プログラムに関連して自動故障分離を行なうことができる。この処理は、通常は、最初にシステムに電源が投入されたとき、「Ｐｏｗｅｒ  Ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ（電源投入時自己診断）」（ＰＯＳＴ）ルーチンを実行することによって行なわれる。
【０００６】
【発明が解決しようとする課題】
改良を必要とする具体的な一領域が、メモリ・サブシステム内にある。レベル２（Ｌ２）のキャッシュを含めたキャッシュ・メモリ及びシステム・メモリの保全性は、ＰＯＳＴを使ってテストすることができるが、問題がシステム・メモリにあるのかそれともＬ２にあるのかを判断するのは、難しい仕事である。したがって、故障した構成要素やモジュールをすばやく分離して、それらのモジュールを取り替えるために、ＰＯＳＴ故障を特定のＬ２モジュールに分離することができる技術または方法が必要である。このような方法があれば、最小限の時間と費用で、欠陥モジュールを取り替えることができるようになるはずである。
【０００７】
【課題を解決するための手段】
システム・メモリ及びキャッシュ・メモリを含むメモリ・サブシステムの故障を自動的かつ系統的にテストし、かつ故障したシステム・メモリ、またはキャッシュ・メモリのモジュールを表す標識を提供するように選択的に動作可能な方法及び実施システムが提供される。
【０００８】
【発明の実施の形態】
本明細書で開示する様々な方法は、１つまたは複数のサブ・システムを含む典型的なコンピュータ・システム、ワークステーション、またはその他の電子装置内で実施できる。この例では、本明細書で開示する技法を説明するため、コンピュータ・システム内のメモリ・サブシステムについて論じる。その内部で本発明が実施されるワークステーションやコンピュータ・システムの大部分が、当分野では一般に知られており、また、それを構成する電子部品や回路も、当分野の技術者には周知である。したがって、図１に示した以上の回路の細部は、例示として必要と思われる範囲を越えてまでは説明しないこととする。こうすることによって、本発明の根底にある概念を理解し評価してもらい、本発明の教示が不明瞭になったり、教示からそれてしまったりすることがないようにしたい。
【０００９】
具体的に図１を参照すると、中央演算処理装置（ＣＰＵ）１０１がローカル・バス１０３に接続されている。ローカル・バス１０３は、レベル２（Ｌ２）のキャッシュ装置１０５に接続され、メモリ制御装置１０７を介してシステム・メモリ１０９にも接続されている。ローカル・バス１０３はまた、マウス装置、キーボード、ディスク駆動機構またはＣＤ読取装置など他の媒体読取装置、ディスプレイ装置、ネットワーク接続、プリンタあるいはそれらの組合せなどのシステム入出力装置１０６にも結合されている。ローカル・バス１０３は、このローカル・バス１０３から他のサブシステムやコンピュータ装置に接続され、またブリッジ回路を介して他のバス構成にも接続されるように配置されている（１１１）。しかし、この例では、ここで開示するメモリ・テスト方法を説明するため、メモリ制御装置１０７、システム・メモリ１０９、及びＬ２キャッシュ１０５を含む図示のメモリ・サブシステムのみを参照することにする。
【００１０】
図２では、ローカル・バス１０３が、Ｌ２キャッシュ・メモリ装置１０５内で、複数の例示的モジュールに接続されている。Ｌ２キャッシュ１０５は、偶数ワード及び奇数ワードを保持するように設計されており、Ｌ２キャッシュ内の各モジュールは、対応するワードの上位バイトまたは下位バイトのいずれかを保持するように設計されている。たとえば、図に示した４個のモジュールのうち、最初のモジュール２０１は、奇数ワードの上位バイトを保持するように設計されている。同様に、モジュール２０５は、奇数ワードの下位バイトを保持する。モジュール２０３は、偶数ワードの上位バイトを保持し、モジュール２０７は、偶数ワードの下位バイトを保持する。
【００１１】
本明細書で開示する、どのＬ２モジュールに欠陥があるかを検出する方法が、図３に示してある。最初に、手順が開始したとき（３０１）、あるメモリ・アドレスのブロックが選択される（３０３）。この例では、１メガバイトのＬ２がテストするシステムにインストールされており、２メガバイト・ブロックのアドレスを選択することによって、Ｌ２キャッシュ全体をテストすることが保証されている。選択できるアドレスの個数は、Ｌ２キャッシュのサイズの２倍より多くてもよい。
【００１２】
次に、Ｌ２キャッシュ１０５を使用不能にし（３０５）、ＰＯＳＴルーチンを使って、選択されたブロックの個々のバイト・アドレスに対して１回目のテスト３０７を実行するが、このルーチンは、どんな単一のビット故障も特定のバイト・アドレスに分離することができる。１回目のテスト３０７で故障が検出された場合（３０８）、故障アドレスがマップされ（３１０）、通常はエラー・メッセージが表示され（３１２）、このルーチンが終了する（３２１）。１回目のテスト手順３０７の結果、ビット故障が検出されなかった場合（３０８）、Ｌ２キャッシュが使用可能になり（３０９）、２回目のテストを実行し、テスト・ブロック全体を再びテストして（３１１）、ビット故障を特定のバイト・アドレスに分離する。この時点で、発見された新たな故障は、すべてＬ２の故障と想定される。次に、故障が検出された場合（３１３）、故障アドレスは、その故障が起こったＬ２の物理モジュールにマップされる（３１５）。このマップは、設計に依存しており、カスタム・ルックアップ・テーブルを必要とする。この例では、奇数アドレスが上位ワードに位置するバイトでＰＯＳＴ故障を起こした場合、奇数上位ワードのＬ２モジュール２０１に欠陥があり、取り替える必要があると識別されることになる。次に、Ｌ２が使用不能になり（３１７）、エラー・メッセージが表示され（３１９）、処理は終了する（３２１）。故障が検出されなかった場合（３１３）、故障をチェックした（３１３）直後に処理は終了することになる（３２１）。
【００１３】
図４は、図３のブロック・テスト処理３１１などの例示的キャッシュ・テスト処理を示す簡略流れ図である。ブロック３１１でテストを呼び出すと、ブロック・テストを開始し（４０１）、指定されたテスト・パターンを各キャッシュ・ラインに書き込む（４０３）。次に、各キャッシュ・ラインを読み戻し（４０５）、入力テスト・パターンと比較する（４０７）。比較が一致すれば、キャッシュ・ラインを全部テストし終わったかどうかを判断するためにチェックを行なう（４１３）。キャッシュ・ラインを全部テストし終えている場合、「ｎｏ  ｅｒｒｏｒｓ（エラーなし）」状況を獲得し、ブロック３１３に「ＮＯ（なし）」応答を返す。図示のように、テスト・ループは、各キャッシュ・ラインをテストし終えるまで続行される。エラーが検出され、読み出したものがキャッシュ・ラインに書き込まれたテスト・パターンと一致しないとき（４０７）、「ｅｒｒｏｒ  ｄｅｔｅｃｔｅｄ（エラー検出）」状況を獲得し（４０９）、「ＹＥＳ（あり）」の故障応答をブロック３１３に返す。
【００１４】
本発明の方法及び装置について、本明細書で開示する好ましい実施形態に関して説明した。本明細書では、本発明の実施形態をそのいくつかの変形形態と共に、詳細に示し説明したが、当分野の技術者なら本発明の教示を取り入れて、他の数多くの多様な実施形態を簡単に作成できる、分離プログラムとして提供し、あるいはルーチンとして組み入れ、あるいはＣＰＵまたは他のより大規模なシステム集積回路またはチップに、統合しハードワイヤ化して組み込むことができるであろう。したがって、本発明は、本明細書に記した特定の形式に限定させるものではなく、逆に、本発明の請求及び範囲に正当に含めることができる代替例、修正例及び相当物を包括するものである。
【００１５】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００１６】
（１）キャッシュ・メモリを含むシステム・メモリをテストするために、メモリ・チェック・テストを実行する方法であって、
前記キャッシュ・メモリのサイズより大きな参照メモリ・ブロックを選択する段階と、
１回目に前記キャッシュ・メモリを使用不能にするよう作用する段階と、
前記参照メモリ・ブロックの１回目のビット故障テストを実行する段階と、
ビット故障が検出されなかった場合、前記キャッシュ・メモリを使用可能にする段階と、
前記参照メモリ・ブロックの２回目のビット故障テストを実行する段階と、
前記２回目のテストで検出されたビット故障に対して、適切なバイト・アドレスをマップする段階とを含む方法。
（２）前記キャッシュ・メモリが第１のサイズであり、前記参照メモリ・ブロックが第２のサイズとなるように選択された、前記第２のサイズが前記第１のサイズの少なくとも２倍である上記（１）に記載の方法。
（３）前記マップする段階に続いて、さらに前記キャッシュ・メモリを２回目に使用不能にするよう作用する段階を含む上記（１）に記載の方法。
（４）前記２回目に使用不能にする段階に続いて、さらにビット故障が検出されたとき、ビット故障の存在を表すエラー標識を提供する段階を含む上記（３）に記載の方法。
（５）前記標識をディスプレイ装置上で提示する上記（４）に記載の方法。
（６）前記標識が、検出されたビット故障を含むバイトのバイト・アドレスを表す上記（５）に記載の方法。
（７）前記マップする段階に続いて、さらに前記キャッシュ・メモリを２回目に使用不能にするよう作用する段階を含む上記（２）に記載の方法。
（８）前記２回目に使用不能にする段階に続いて、さらにビット故障が検出されたとき、ビット故障の存在を表すエラー標識表示を提供する段階を含む上記（７）に記載の方法。
（９）前記標識をディスプレイ装置上で提示する上記（８）に記載の方法。
（１０）前記標識が、検出されたビット故障を含むバイトのバイト・アドレスを表す上記（９）に記載の方法。
（１１）前記１回目のテストを実行する前記段階に続いて、さらに前記１回目のテストで検出されたビット故障に対して適切なバイト・アドレスをマップする段階と、
前記メモリ・チェック・テストを終了する段階とを含む上記（１）に記載の方法。
（１２）機械可読標識を含み、入力装置に選択的に結合される、前記入力装置が処理回路に結合され、前記入力装置が前記機械可読標識を読み取り、それを表すプログラム信号を提供するよう選択的に動作可能である記憶媒体において、前記プログラム信号が、
前記キャッシュ・メモリのサイズより大きな参照メモリ・ブロックを選択する段階と、
前記キャッシュ・メモリを１回目に使用不能にするよう作用する段階と、
前記参照メモリ・ブロックの１回目のビット故障テストを実行する段階と、
ビット故障が検出されなかった場合、前記キャッシュ・メモリを使用可能にする段階と、
前記参照メモリ・ブロックの２回目のビット故障テストを実行する段階と、
前記２回目のテストで検出されたビット故障に対して適切なバイト・アドレスをマップする段階とを実行することによってキャッシュを含むメモリ・サブシステムをテストするために、前記処理回路にメモリ・チェック・テストを実行させるための記憶媒体。
（１３）前記キャッシュ・メモリが第１のサイズであり、前記参照メモリ・ブロックが第２のサイズとなるように選択された、前記第２のサイズが前記第１のサイズの少なくとも２倍である上記（１２）に記載の記憶媒体。
（１４）前記マップする段階に続いて、前記プログラム信号がさらに前記キャッシュ・メモリを２回目に使用不能にする段階を実行させる上記（１２）に記載の記憶媒体。
（１５）前記２回目に使用不能にする段階に続いて、前記プログラム信号がさらにビット故障が検出されたとき、ビット故障の存在を表すエラー標識を提供する段階を実行させる上記（１４）に記載の記憶媒体。
（１６）前記標識をディスプレイ装置上に提示する段階を実行させる上記（１５）に記載の記憶媒体。
（１７）前記標識が、検出されたビット故障を含むバイトのバイト・アドレスを表すものである上記（１６）に記載の記憶媒体。
（１８）前記マップする段階に続いて、前記プログラム信号がさらに前記キャッシュ・メモリを２回目に使用不能にする段階を実行させる上記（１３）に記載の記憶媒体。
（１９）前記２回目に使用不能にする段階に続いて、前記プログラム信号がさらにビット故障が検出されたとき、ビット故障の存在を表すエラー標識を提供する段階を実行させる上記（１８）に記載の記憶媒体。
（２０）前記標識をディスプレイ装置上で提示する段階を実行させる上記（１７）に記載の記憶媒体。
（２１）前記標識が、検出されたビット故障を含むバイトのバイト・アドレスを表すものである上記（２０）に記載の記憶媒体。
（２２）前記１回目のテストを実行する前記段階に続いて、前記プログラム信号がさらに前記１回目のテストで検出されたビット故障に対して適切なバイト・アドレスをマップし、
前記メモリ・チェック・テストを終了する段階を実行させる上記（１２）に記載の記憶媒体。
【図面の簡単な説明】
【図１】メモリ・サブシステムを含む例示的コンピュータ・システムの一部分の簡略なブロック図である。
【図２】図１に示したシステムのキャッシュ・メモリ部分の簡略なブロック図である。
【図３】本明細書で提示した例示的実施形態で実施される、開示された方法の適用を示す流れ図である。
【図４】簡略化したキャッシュ・メモリ・テスト処理を示す流れ図である。
【符号の説明】
１０１  中央演算処理装置（ＣＰＵ）
１０３  ローカル・バス
１０５  レベル２（Ｌ２）キャッシュ装置
１０６  システム入出力装置
１０７  メモリ制御装置
１０９  システム・メモリ
２０１  奇数上位ワードのＬ２モジュール
２０３  偶数上位ワードのＬ２モジュール
２０５  奇数下位ワードのＬ２モジュール
２０７  偶数下位ワードのＬ２モジュール
【図１】
0003664466.tif 000002
【図２】
0003664466.tif 000003
【図３】
0003664466.tif 000004
【図４】
0003664466.tif 000005