(57)【特許請求の範囲】
【請求項１】
メモリ・サブシステムであって、
少なくとも１つのメモリ・バンクと、
前記少なくとも１つのメモリ・バンクを制御するためのメモリ・コントローラであって、
前記少なくとも１つのメモリ・バンクへのアクセスが中断されることを要求する信号を受信するための手段と、
前記受信された信号に応答して、前記少なくとも１つのメモリ・バンクへのアクセスを中断するための手段と、
メモリ・アクセスが中断されると、セルフリフレッシュ・モードを開始するよう前記少なくとも１つのメモリ・バンクに、命令するための手段
とを含むことからなる、メモリ・コントローラと、
前記少なくとも１つのメモリ・バンクが、セルフリフレッシュ・モードである間には、前記メモリ・コントローラを走査するための手段と、
走査が終了される時には、前記セルフリフレッシュ・モードから抜けるよう前記少なくとも１つのメモリ・バンクに命令するための手段
とを含む、メモリ・サブシステム。
【請求項２】
メモリを制御するメモリ・コントローラを走査する方法であって、該メモリ・コントローラと該メモリとが、コンピュータ・システム内にあり、該方法は、
走査することが要求されていることを示す信号をアサートするステップと、
前記信号に応答して、前記メモリをセルフリフレッシュ・モードにし、及び前記メモリ・コントローラを走査するステップと、
前記走査を完了する時には、前記メモリを前記セルフリフレッシュ・モードから解除するステップ
とを含む、方法。
【請求項３】
メモリ・コントローラによって制御されるメモリを有するコンピュータ・システムを試験する方法であって、
前記メモリをセルフリフレッシュ・モードにするステップと、
前記メモリが前記セルフリフレッシュ・モードである間に、前記メモリ・コントローラを走査するステップと、
前記走査が完了する時には、前記メモリを前記セルフリフレッシュ・モードから解除するステップ
とを含む、方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、全般的にはコンピュータ・アーキテクチャに関し、詳細には、メイン・メモリをリフレッシュする方法およびシステムに関する。
【０００２】
【従来の技術】
現代のコンピュータは、コンピュータ・システムの状態を判定する機能を有する。そのような機能は、コンピュータを試験し、なぜコンピューティング・エラーが発生したかを判定する場合に有用である。
【０００３】
コンピュータを試験する１つの方法は「走査試験(scan testing)」である。走査試験では、１つまたは複数のサイクルを段階的に進むためにコンピュータの内部クロックの停止と開始が繰り返される。コンピュータを走査モードにすると、コンピュータ内のある内部レジスタおよび外部レジスタは１つまたは複数の連続リングとして相互接続される。したがって、１つのレジスタのビットの出力は、リング内の次のレジスタに入力される。そのような相互接続によって、これらのレジスタは実際上、単一の大規模なシフト・レジスタになる。通常、数千または数万個のレジスタからのデータをこのようにシフトアウトすることができる。次いで、ソフトウェア・プログラムを使用してデータが解釈され、コンピュータ・ハードウェアの状態が判定される。
【０００４】
システム・エラーが発生したときは、コンピュータのメイン・メモリの内容を調べることも望ましい。しかし、メイン・メモリを調べるとレジスタの状態が変化する可能性があるので、メイン・メモリは、レジスタを走査した後に調べなければならない。したがって、走査動作時にはメイン・メモリの内容を保存しなければならない。
【０００５】
残念なことに、走査の間メモリの状態を保存することは困難である。現代のコンピュータは、同期ランダム・アクセス・メモリ（ＳＤＲＡＭ）を使用している。通常動作時に、メモリ・コントローラは、ＳＤＲＡＭに周期的なリフレッシュ・コマンドを発行する。ＳＤＲＡＭは、内部アドレス・カウンタを維持し、リフレッシュ・コマンドに応答して適切なアドレスをリフレッシュする。
【０００６】
走査試験の第１のステップのうちの１つはコンピュータの内部クロックを停止することなので、メモリ・コントローラは、走査が行われている間、周期的なリフレッシュ・コマンドを送信することはできない。この難点を克服する従来技術の１つの方法は、任意選択でメモリ・コントローラを走査リングから除去することであった。メモリ・コントローラをこのように除去すると、メモリ・コントローラ内の自走クロックによって、メモリ・コントローラは走査中にリフレッシュを生成することができた。必要に応じて、メモリ・コントローラを走査リングに戻すオプション・ビットをセットすることができた。
【０００７】
メモリをリフレッシュする上記の方法に関する主要な問題は、メモリ・コントローラの少なくとも一部が走査不能であることである。したがって、メモリ・コントローラ内でエラーが起こった場合にそれを検出する方法はない。上記の方法に関する他の問題は、コントローラ・チップ内でかなりのクロック資源が必要になることである。クロックを分配するためにチップ上で必要とされる物理資源のために、かなりの量のチップ面積が消費される。したがって、チップ上に追加クロックの余地はほとんどない。
【０００８】
従来技術のコンピュータが走査時にＳＤＲＡＭへリフレッシュ・コマンドを送信する他の方法は、走査ユーティリティにリフレッシュ機構を組み込むことであった。したがって、走査を制御するコンピュータの部分は、メモリ・リフレッシュをどのように発行すべきかも知っていた。しかし、この方法では、走査ユーティリティおよびメモリ・コントローラをさらに複雑にする必要があった。
【０００９】
【発明が解決しようとする課題】
したがって、本発明の目的は、走査動作および試験動作時にＳＤＲＡＭの内容を維持する方法を提供することである。
【００１０】
本発明の別の目的は、走査動作および試験動作時に、ＳＤＲＡＭを維持し、同時にメモリ・コントローラを完全に走査可能にしておく方法を提供することである。
【００１１】
本発明のさらに別の目的は、走査動作および試験動作時に、メモリ・コントローラ・チップ上の追加クロック分配ロジックを必要としないＳＤＲＡＭを維持する方法を提供することである。
【００１２】
【課題を解決するための手段】
本発明では、上記及びその他の目的を達成するために、ＳＤＲＡＭを通常動作時にオートリフレッシュ・モードにして、走査動作または試験動作時にセルフリフレッシュ・モードにする方法およびシステムによって満たされる。オートリフレッシュ・モードでは、ＳＤＲＡＭは、メモリ・コントローラからリフレッシュ・コマンドを受信するたびに１つの内部行をリフレッシュする。コンピュータを通常どおり使用している間、ＳＤＲＡＭはオートリフレッシュ・モードのままである。
【００１３】
走査状態またはエラー状態時に、メモリ・コントローラはＳＤＲＡＭをセルフリフレッシュ・モードにする。ＳＤＲＡＭは、セルフリフレッシュ・モードを開始するときにはアイドル状態でなければならない。メモリ・コントローラは、この状態を確保するために、セルフリフレッシュ・モードへの遷移を必要とする事象を監視する。そのような事象が発生すると、メモリ・コントローラは、アクティブなメモリ動作を終了し、クロックが停止する前にＳＤＲＡＭをセルフリフレッシュ・モードにしておく。通常動作が再開すると、ＳＤＲＡＭがセルフリレッシュ・モードを終了し、オートリレッシュが再初期設定され、通常のリフレッシュ・サイクルが継続する。
【００１４】
メモリ・コントローラに対する唯一の損失は、ロジックが、セルフリレッシュの使用条件を認識し、クロック・イネーブル信号を用いてＳＤＲＡＭにセルフリフレッシュ・モードの開始および終了を繰り返させる必要があることである。
【００１５】
以上のように、下記の本発明の詳細な説明をよりよく理解できるように本発明の特徴および技術的利点をかなり広範囲に概説した。本発明の特許請求の範囲の主題を形成する本発明の他の特徴および利点を下記に説明する。当業者は、開示した概念および特定の実施形態が、本発明の同じ目的を実施する他の構造を修正または設計するための基礎として容易に使用できるものであることを理解されたい。当業者は、そのような等価構造が、添付の特許請求の範囲に記載した本発明の趣旨および範囲から逸脱しないことも認識されたい。
【００１６】
本発明およびその利点をより完全に理解するために、次に、添付の図面と共に下記の説明を参照する。
【００１７】
【発明の実施の形態】
図１は、メモリ・サブシステム１００のハイレベル図である。メモリ・アクセス・コントローラ（ＭＡＣ）１１０および同期ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）の４つのバンク１１２ＡないしＤが示されている。また、データ・レジスタ１１４ＡないしＤは各メモリ・バンク１１２の中央に配置される。ＭＡＣ１１０から各メモリ・バンク１１２ＡないしＤへのアドレス信号および制御信号はアドレス・バス１１６を構成する。データは、データ・バス１１８、１２０を介してレジスタ１１４とＭＡＣ１１０との間で転送される。メモリ・サブシステム１００は、マルチプロセッサ・コンピュータ・システム内の８つのメモリ・ボードのうちの１つである。
【００１８】
ＭＡＣ１１０は、大規模な特定用途向け集積回路（ＡＳＩＣ）である。特に、ＭＡＣ１１０はメモリ・サブシステム１００内のすべてのメモリ１１２を制御する。ＭＡＣ１１０は内部で、それぞれ、偶数ＳＤＲＡＭバンク１１２Ａ、１１２Ｃおよび奇数ＳＤＲＡＭバンク１１２Ｂ、１１２Ｄを制御する、偶数バンク・コントローラ１２２ＡないしＢおよび奇数バンク・コントローラ１２２ＣないしＤに分割される。各バンク・コントローラ１２２ＡないしＤ内に、対応するＳＤＲＡＭバンク用の状態マシンがある。ＭＡＣ１１０はリフレッシュ・モード・コントローラ１１１も含む。リフレッシュ・モード・コントローラ１１１については図２に関して詳しく論じる。
【００１９】
当業者には良く知られているように、ＳＤＲＡＭ１１２は基本的に、制御経路、アドレス経路、データ経路に追加状態マシンおよびレジスタを含むダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）である。これらの状態マシンおよびレジスタは、メモリ・インタフェースを簡略化し、外部インタフェースを加速できるようにする。また、ＳＤＲＡＭ１１２は、ＳＤＲＡＭ１１２がＭＡＣ１１０を効率的に使用できるようにする、行アドレスおよび列アドレスならびにデータ経路の内部パイプライン動作を有する。たとえば、ＭＡＣ１１０は第１のクロック・サイクルで読取りコマンドを発行することができる。ＳＤＲＡＭ１１２は、内部に読取りコマンドを保持し、次いで実行する。その間、ＭＡＣ１１０はその後に続くクロック・サイクルで、異なるメモリに他のコマンドを発行することができる。
【００２０】
バンク１１２Ａを例示するＳＤＲＡＭ１１２ＡないしＤの各バンクは二重インライン・メモリ・モジュール（ＤＩＭＭ）１２４ＡないしＤを含む。もちろん、単一インライン・メモリ・モジュール（ＳＩＭＭ）で容易に置き換えることができる。前述のように、バンクは偶数ハーフと奇数ハーフとで構成される。図１に示したように、バンク１１２Ａおよび１１２Ｃは偶数ハーフであり、それに対してバンク１１２Ｂおよび１１２Ｄは奇数ハーフである。各メモリ・レジスタ１１４ＡないしＤは、それぞれのＳＤＲＡＭバンク１１２ＡないしＤからの出力を記憶する。
【００２１】
アドレス制御バス１１６は、コマンドをＭＡＣ１１０からＳＤＲＡＭバンク１１２ＡないしＤへ転送する。通常のＤＲＡＭの場合と同様に、アドレス制御バス１１６は、アドレス線と、列アドレス・ストローブ（ＣＡＳ）と、行アドレス・ストローブ（ＲＡＳ）と、書込みイネーブル（ＷＥ）と、チップ選択に分割される。通常のＤＲＡＭと異なり、ＳＤＲＡＭ１１２は、バス１１６を介してクロック・イネーブル（ＣＫＥ）信号およびクロックも受信する。メモリ・バンク１１２がＳＤＲＡＭなので、制御信号を使用してメモリ・コマンドがコード化される。したがって、ＳＤＲＡＭ１１２は、制御信号を介して活動化コマンド、読取りコマンド、書込みコマンド、事前充電コマンド、リフレッシュ・コマンド、「ｅｎｔｅｒ  ｓｅｌｆ−ｒｅｆｒｅｓｈ」コマンドを受信する。データ・バス１１８および１２０はそれぞれ、信号を偶数バンク・レジスタおよび奇数バンク・レジスタ１１４からＭＡＣ１１０へ送信する。
【００２２】
前述のように、ＳＤＲＡＭ１１２は、クロック・エッジ上のコマンドを取り込むことによって動作する。次いで、ＳＤＲＡＭ１１２はコマンドを内部で処理し、所望の機能を実行する。また、ある種の命令はＳＤＲＡＭを、ＳＤＲＡＭ１１２がどのように動作するかに影響を与える様々なモードにすることができる。したがって、ＳＤＲＡＭ１１２は、その現モードと、ＳＤＲＡＭ自体が受信した命令によって決定される内部状態を有する。
【００２３】
電源投入時および通常動作時に、ＳＤＲＡＭ１１２は「オートリフレッシュ」モードまたは「命令リフレッシュ」モードである。このモードでは、ＳＤＲＡＭ１１２は次にリフレッシュすべき行アドレスを追跡する内部カウンタを維持する。ＳＤＲＡＭ１１２は、ＭＡＣ１１０から「リフレッシュ」コマンドを受信すると、カウンタに示されたアドレスをリフレッシュし、カウンタを増分する。ＭＡＣ１１０がリフレッシュ間隔内にリフレッシュ・コマンドを送信しない場合、そのアドレスのデータが失われている恐れがある。
【００２４】
ＳＤＲＡＭ１１２がアイドル状態である場合、ＭＡＣ１１０はＳＤＲＡＭ１１２を「セルフリフレッシュ」モードに切り換える。この切換は、「ｅｎｔｅｒ  ｓｅｌｆ−ｒｅｆｒｅｓｈ」コマンドを発行し、同時にＣＫＥ信号を否定することによって実行される。このモードでは、ＳＤＲＡＭ１１２は、同じアドレス・カウンタおよび内部クロック源を使用してＳＤＲＡＭ自体を自動的にリフレッシュする。ＳＤＲＡＭ１１２は、セルフリフレッシュ・モードでは読取りコマンドにも、あるいは書込みコマンドにも応答しない。
【００２５】
セルフリフレッシュ・モードは、本来、メモリを含むコンピュータが電力節約モードであるときに、メモリを維持するものであったことに留意されたい。通常ＳＤＲＡＭが使用されるパーソナル・コンピュータ（ＰＣ）およびワークステーションでは、通常、エラーを通じてＳＤＲＡＭの状態を維持する必要はない。エラーが発生した場合、コンピュータまたはワークステーションはリブートされる。
【００２６】
しかし、本発明の好適な実施形態は、技術的応用分野および商業的応用分野向けの大規模マルチプロセッサ・サーバに存在する。そのようなコンピュータでは、サービス要件のために、システム状態を使用して故障を診断しデバッグすることができるようにシステム状態を取り込む必要がある。セルフリフレッシュ・モードは独立のコントローラを必要とせず、またリフレッシュ要求をＳＤＲＡＭに発行するための独立のクロック・ツリーも必要としないので、走査および試験時にセルフリフレッシュ・モードを使用してメモリを維持することによって資源が節約される。
【００２７】
したがって、ＳＤＲＡＭ１１２がセルフリフレッシュ・モードになった後、ＭＡＣ１１０の走査および試験を開始することができる。一般に、走査は、マルチプレクサを使用してＭＡＣ１１０内の各レジスタの入出力をリンクしリングを形成することによって行われる。その場合、レジスタ内の値は、後で分析できるようにリング内でシフトアウトされる。
【００２８】
走査モードでは、走査が進行するにつれて、予測不能な値をレジスタを通じてシフトすることができる。したがって、レジスタの値に直接依存するＭＡＣ１１０の出力は、走査中は予想不能になる。その結果、安定でなければならない出力をドライブするレジスタは主走査リングから削除される。その代わり、そのようなレジスタは、別のサブリングに置かれる。このようなサブリングは、ロジックを１つまたは複数の特殊試験モードにすることによって主リングと同様に試験することができる。
【００２９】
図２は、リフレッシュ・モード・コントローラ（ＲＭＣ）１１１がどのようにＳＤＲＡＭ１１２をオートリフレッシュ・モードとセルフリフレッシュ・モードとの間で切り換えるかを示すアルゴリズミック状態マシンの図である。図２で、各ボックスは状態を示し、各ボックス内のテキストは、その状態でアサートされる信号を示す。特に指摘しないかぎり、ＣＫＥを除くすべての信号はＭＡＣ１１０の内部の信号である。
【００３０】
図２の各ダイヤモンドは試験を表し、各ダイヤモンド内のテキストは、その点で試験されている信号を表す。ダイヤモンド内で、「｜」記号はブール論理和を表し、それに対して「＆」はブール論理積を示す。ダイヤモンドの出口点は、「０」または「１」として表され、ダイヤモンド内のブール式の評価に応じて従うべき経路を示す。
【００３１】
システム電力を印加すると、電力が安定するまで外部信号のｐｏｗｅｒ＿ｆａｉｌがＭＡＣ１１０に対してアサートされる。その直後に、ＳＤＲＡＭ初期設定の必要に応じてＣＫＥがアサートされる（状態２１２）。試験２１４で示したように、ＲＭＣ１１１は、ｐｏｗｅｒ＿ｆａｉｌが否定されるまで状態２１２のままである。試験２１６で、ＲＭＣ１１１は、ＲＭＣ自体がリセット状態に保持されているかどうかを調べる検査を行う。ＲＭＣ１１１は、ｐｏｗｅｒ＿ｆａｉｌとリセットがもはやアサートされなくなるまで状態２１２のままである。
【００３２】
次に状態２１８で、ＲＭＣ１１１はｐｏｗｅｒ＿ｕｐ＿ｉｎｉｔ信号もアサートする。この信号は、ＭＡＣ１１０内の各バンク・コントローラ１２２に与えられる。これに応答して、バンク・コントローラ１２２はＳＤＲＡＭ電源投入初期設定シーケンスを実行する。試験２２０で示したように、状態マシンは、初期設定が終了したときにｉｎｉｔ＿ｄｏｎｅ信号を返す。
【００３３】
初期設定が完了すると、ＲＭＣ１１１は通常動作を開始する。通常動作は状態２２２で示されており、この状態ではＣＫＥのみがアサートされる。この状態２２２で、ＭＡＣ１１０は必要に応じて読取りコマンド、書込みコマンド、オートリフレッシュ・コマンドをメモリに発行する。
【００３４】
メモリ・サブシステム１００が規則正しく停止すべきであることを示すｉｄｌｅ＿ｍｅｍおよびｈａｒｄｅｒｒという２つの信号がある。試験２２４で、走査コントローラがｉｄｌｅ＿ｍｅｍをアサートしたかどうかが検査される。単一のｉｄｌｅ＿ｍｅｍは、走査動作を実行できるようにメモリ・サブシステム１００をアイドル状態になるよう命令する。
【００３５】
ｉｄｌｅ＿ｍｅｍがアサートされた場合、ＲＭＣ１１１は状態２４２へ移る。状態２４２で、ＲＭＣ１１１はＣＫＥだけでなくｓｕｓｐｅｎｄ＿ｍｅｍをアサートする。これらの信号は、現動作が完了した後にメモリを中断するよう（しかし、現動作は中止しない）コントローラ１２２内のバンク状態マシンに命令する。各バンク・コントローラ１１２ＡないしＤは、動作を中断すると、ｂａｎｋ＿ｓｕｓｐｅｎｄｅｄ信号をＭＡＣ１１０に送り返す。試験２４４で示したように、ｂａｎｋ＿ｓｕｓｐｅｎｄｅｄが各バンクに対して真であるとき、ＲＭＣ１１１は状態２３２へ移る。
【００３６】
試験２２４で、ｉｄｌｅ＿ｍｅｍがアサートされていない場合、試験２２６で、ｈａｒｄｅｒｒがアサートされているかどうかが判定される。ｈａｒｄｅｒｒ信号がアサートされるのは、コンピュータ・システムが内部処理エラーを検出したときである。通常、コンピュータ・オペレータは、エラーが検出された後にコンピュータ・システムを走査することを望む。しかし、オペレータは、コンピュータ・システムが処理を継続できるようにすることを望むこともある。したがって、メモリ・サブシステム１００の好ましい実施形態は、ハード・エラー時に動作を停止しないオプションを有する。このオプションは、試験２２６においてｓｔｏｐ＿ｏｎ＿ｈａｒｄ信号で示されている。ｓｔｏｐ＿ｏｎ＿ｈａｒｄがアサートされていない場合、ＲＭＣ１１１は状態２２２に戻る。
【００３７】
ｈａｒｄｅｒｒとｓｔｏｐ＿ｏｎ＿ｈａｒｄが共にアサートされている場合、ＲＭＣ１１１は状態２２８へ移る。状態２２８で、ＲＭＣ１１１はａｂｏｒｔ＿ｍｅｍ信号をバンク状態マシンに発行する。この信号は、現在実行しているメモリ動作を維持するかどうかにかかわらず、それぞれのＳＤＲＡＭ１１２をできるだけ迅速にセルフリレッシュ・モードにするよう各状態マシンに命令する。すべてのバンク状態マシンが動作を中断し、ｂａｎｋ＿ｓｕｓｐｅｎｄｅｄをアサートすると（試験２３０）、ＲＭＣ１１１は状態２３２へ移る。
【００３８】
状態２３２で、ＲＭＣ１１１はｓｅｌｆ＿ｒｅｆｒｅｓｈ信号をアサートする。この信号は、バンク・コントローラ１２２に「ｅｎｔｅｒ  ｓｅｌｆ−ｒｅｆｒｅｓｈ」コマンドを生成するよう命令する。また、ＣＫＥはアサートされたままである。この信号の組合せは、ＳＤＲＡＭ制御信号出力レジスタに含まれていたすべての信号を無効化しレジスタ出力にＳＤＲＡＭセルフリフレッシュ・コマンドを発信させるようバンク・コントローラ１２２に命令する。次のクロック・サイクルで、ＳＤＲＡＭセルフリフレッシュ・コマンドが保持されるが、ＣＫＥ信号が否定され、それによって、ＳＤＲＡＭが強制的にセルフリフレッシュ・モードになり、ＲＭＣ１１１が状態２３４に進む。
【００３９】
状態２３４で、状態マシンはｃｌｋ＿ｓｔｏｐ＿ｅｎ（クロック停止イネーブル）信号をアサートする。クロックおよび走査試験動作に責任を負うＭＡＣ１１０の部分は、この信号を受信し、試験動作および走査動作を開始できるようにする。試験および動作が行われている間、ＳＤＲＡＭ１１２に影響を与えずにクロックの開始および停止を繰り返すことができる。
【００４０】
試験２３６で示したように、メモリ・システム１００は、リセット信号がアサートされるまで状態２３４のままである。リセットがアサートされた後、ＲＭＣ１１１は状態２３８へ移り、ｃｌｋ＿ｓｔｏｐ＿ｅｎおよびｓｅｌｆ＿ｒｅｆｒｅｓｈを解除する。しかし、ＣＫＥがアサートされておらず、したがってＳＤＲＡＭ１１２がセルフリフレッシュ・モードのままであることに留意されたい。
【００４１】
状態２３８で、ＲＭＣ１１１は、リセット信号が否定され、走査モードが終了するのを待つ。試験２４０で、ｉ＿ｓｃａｎ信号が否定されることによって、走査モードが終了したことが示されているかどうかが検査される。また、試験２４０で、ｓａｆｅ＿ｍｅｍ信号が否定されたかどうかが検査される。ｓａｆｅ＿ｍｅｍは、他に何が行われているかにかかわらず、メモリ・サブシステム１００をセルフリフレッシュ・モードに保持させるようにセットされたオプションズ・リング・ビット(options ring bit)である。ｓａｆｅ＿ｍｅｍを使用する必要があるのは、複数の走査動作が必要になることがあるからである。ｓａｆｅ＿ｍｅｍを使用しない場合、ＳＤＲＡＭが走査間のギャップ中にセルフリフレッシュ・モードを終了する可能性がある。そのような場合、メモリ・サブシステム１００はまだオートリフレッシュ・モードの準備を完了してないので、メモリ損失が発生する。
【００４２】
試験２４０で示したように、リセット、ｉ＿ｓｃａｎ、ｓａｆｅ＿ｍｅｍがすべて否定されると、ＲＭＣ１１１は状態２２２に戻る。状態２２２で、ＣＫＥがアサートされ、ＳＤＲＡＭ１１２が通常のオートリレッシュ・モードに戻る。
【００４３】
本発明およびその利点について詳しく説明したが、添付の請求の範囲で定義した本発明の趣旨および範囲から逸脱せずに本発明に様々な変更、置換、変更を加えられることを理解されたい。
【００４４】
以上、本発明の実施例について詳述したが、以下、本発明の各実施態様の例を示す。
（実施態様１）
メモリ・サブシステム１００であって、
少なくとも１つのメモリ・バンク１１２と、
少なくとも１つのメモリ・バンクを制御するメモリ・コントローラ１１０とを有し、メモリ・コントローラが、
少なくとも１つのメモリ・バンク１１２へのアクセスを中断することを要求する信号を受信する手段と、
信号に応答して少なくとも１つのメモリ・バンク１１２へのアクセスを中断する手段と、
メモリ・アクセスが中断された後にセルフリフレッシュ・モードを開始するよう少なくとも１つのメモリ・バンク１１２に命令する手段と、
少なくとも１つのメモリ・バンク１１２がセルフリフレッシュ・モードである間にメモリ・サブシステム１００を走査する手段と、
走査が終了したときにセルフリフレッシュ・モードを終了するよう少なくとも１つのメモリ・バンク１１２に命令する手段と
を備えることを特徴とするメモリ・サブシステム。
（実施態様２）
コンピュータ・システム内のメモリ１１２を制御するメモリ・コントローラ１１０を走査する方法であって、
走査が必要であることを示す信号をアサートするステップと、
信号に応答して、メモリをセルフリフレッシュ・モードにするステップ２３４と、
走査が完了したときに、メモリをセルフリレッシュ・モードから除去するステップ２４０と
を含むことを特徴とする方法。
（実施態様３）
前記信号は、メモリがアイドル状態である（２２４）ことを要求することを特徴とする実施態様２に記載の方法。
（実施態様４）
前記信号が、コンピュータ・システム・エラーを示す（２２６）ことを特徴とする実施態様２に記載の方法。
（実施態様５）
さらに、
信号がコンピュータ・システム・エラーを示す（２２６）場合にコンピュータ・システムを停止すべきかどうかを判定するステップを含むことを特徴とする実施態様４に記載の方法。
（実施態様６）
前記メモリ１１２がＳＤＲＡＭであることを特徴とする実施態様３、４、５のいずれか一項に記載の方法。
（実施態様７）
前記メモリをセルフリフレッシュ・モードにするステップが、
メモリを中断するステップ２３０と、
メモリへセルフリフレッシュ・コマンドを送信するステップと、
クロック・イネーブル信号を否定するステップと
を含むことを特徴とする実施態様３、４、５のいずれか一項に記載の方法。
（実施態様８）
前記削除ステップが、
走査が完了したかどうかを判定するステップ２４０と、
走査が完了した場合に、クロック・イネーブル信号をアサートするステップ２２２と
を含むことを特徴とする実施態様３、４、５のいずれか一項に記載の方法。
（実施態様９）
メモリ・コントローラによって制御されるメモリを有するコンピュータ・システムを調べる方法であって、
メモリをセルフリフレッシュ・モードにするステップ２３２と、
走査が完了したときに、メモリをセルフリレッシュ・モードから除去するステップ２２２と
を含むことを特徴とする方法。
（実施態様１０）
前記メモリをセルフリフレッシュ・モードにするステップが、
第１の信号を受信するステップ２２４と、
第１の信号に応答して、メモリがアクセスを中断することを要求する第２の信号をバンク・コントローラに発行するステップ２４２と、
メモリがアクセスを中断したことを示す第３の信号をバンク・コントローラから受信するステップ２４４と、
第３の信号に応答して、メモリにセルフリフレッシュ・モードを開始するよう命令する第４の信号を発行するステップ２３２とを含むことを特徴とする実施態様９に記載の方法。
【００４５】
【発明の効果】
以上のように、本発明を用いると、走査動作および試験動作時にＳＤＲＡＭの内容を維持する方法を提供することができる。また、走査動作および試験動作時に、ＳＤＲＡＭを維持し、同時にメモリ・コントローラを完全に走査可能にしておく方法を提供することができる。さらに、走査動作および試験動作時に、メモリ・コントローラ・チップ上の追加クロック分配ロジックを必要としないＳＤＲＡＭを維持する方法を提供することができる。
【図面の簡単な説明】
【図１】本発明によるメモリ・サブシステムのハイレベル・ブロック図である。
【図２】本発明を実施するアルゴリズミック状態マシンの図である。
【符号の説明】
１００：メモリ・サブシステム
１１０：メモリ・アクセス・コントローラ（ＭＡＣ）
１１１：リフレッシュ・モード・コントローラ
１１２Ａ、１１２Ｃ：偶数ＳＤＲＡＭバンク
１１２Ｂ、１１２Ｄ：奇数ＳＤＲＡＭバンク
１１４：レジスタ
１１４Ａ、１１４Ｂ、１１４Ｃ、１１４Ｄ：データ・レジスタ
１１６：バス・アドレス
１１８、１２０：データ・バス
１２２Ａ、１２２Ｂ：偶数バンク・コントローラ
１２２Ｃ、１２２Ｄ：奇数バンク・コントローラ
【図１】
0004083847.tif 000002
【図２】
0004083847.tif 000003