(57)【特許請求の範囲】
【請求項１】
ホット・リセットされた際に、外部リフレッシュ信号がリイネーブルされるまで、セルフリフレッシュ可能なメモリ・デバイスの内容を保存するリフレッシュ制御回路であって、
前記リフレッシュ制御回路が設けられるデータ処理システムにバスで接続され、該システムからの信号を解釈するデコーダと、
ＯＲゲートと、
ＡＮＤゲートと、
ラッチとを備え、
前記デコーダは、前記ＯＲゲートの第１の入力に接続された出力と、システム・リセット信号が供給される入力とを有し、
前記ＡＮＤゲートは、前記ＯＲゲートの出力に接続された第１の入力と、前記システム・リセット信号が供給される第２の入力と、前記データ処理システムからのクロック・イネーブル信号が供給される第３の入力とを有し、
前記ＡＮＤゲートは、前記ラッチの入力と、セルフリフレッシュ可能なメモリ・デバイスとに接続された出力を有し、
前記ラッチの出力は、前記ＯＲゲートの第２の入力に接続されており、
システムがホット・リセットされると、ＣＰＵコアからのクロック・イネーブル信号が非活性化されることによって、前記ＡＮＤゲートの出力が非活性化されて、メモリ・デバイスがセルフリフレッシュ・モードにされ、次いで、前記システム・リセット信号が活性化されて、前記デコーダの、前記ＯＲゲートの第１の入力に接続された出力が非活性化され、これによって、前記クロック・イネーブル信号が活性化された後にも、前記ＡＮＤゲートの出力が非活性に維持される、
リフレッシュ制御回路。
【請求項２】
前記データ処理システムは、システム・オン・ア・チップであり、前記クロック・イネーブル信号は、前記システム・オン・ア・チップのコアによって発生される、請求項１に記載のリフレッシュ制御回路。
【請求項３】
前記システム・オン・ア・チップは、特定用途向け集積回路である、請求項２に記載のリフレッシュ制御回路。
【請求項４】
前記システム・オン・ア・チップは、プログラマブル・アレイ・ロジック・チップである請求項２に記載のリフレッシュ制御回路。
【請求項５】
前記システム・オン・ア・チップは、フィールド・プログラマブル・アレイ・ロジック・チップである請求項２に記載のリフレッシュ制御回路。
【請求項６】
前記セルフリフレッシュ可能なメモリ・デバイスは、シンクロナス・ダイナミック・ランダム・アクセス・メモリである、請求項１に記載のリフレッシュ制御回路。
【請求項７】
前記デコーダがレジスタを備え、該レジスタは単一レジスタ・ビット（ＣＫＥ＿Ｃｏｎｔｒｏｌ）を有し、該ビットは前記システム・リセット信号が該レジスタのクリアに入力されることによってローにセットされて、前記ＯＲゲートの第１の入力に接続された出力が非活性化され、及び、所定のソフトウェアによりハイにセットされると前記ＯＲゲートの第１の入力に接続された出力が活性化される、請求項１〜６のいずれか１項記載のリフレッシュ制御回路。
【請求項８】
バスに接続されたプロセッサと、
前記バスに接続されたメモリ・デバイス・コントローラと、
前記メモリ・デバイス・コントローラに接続されたセルフリフレッシュ可能なメモリ・デバイスとを備えたデータ処理システムにおいて、
前記バスと前記メモリ・デバイス・コントローラとに接続されたリフレッシュ・コントローラをさらに含み、該リフレッシュ・コントローラが請求項１〜７のいずれか１項記載のリフレッシュ制御回路を有することを特徴とする、データ情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、一般的には、コンピュータ・メモリ、具体的には、システムのリセットの間、同期ランダム・アクセス・メモリの内容を保存することに関する。
【０００２】
【従来の技術】
通常、メモリ・コントローラがリセットされるとき、メモリの現在の状態を、保存する必要はなかった。しかし、いくつかの設計アプリケーションは、メモリの内容がリセットの間に保存されて、リセット後もメモリの内容が再びアクセスできるようにすることを必要とする。例えば、ハング（すなわちフローズン）したシステムの場合、オペレータは、システムをパワーオフすることなしに、リセット・ボタンを押すことを望むかもしれない。システムが再びブート・アップすると、オペレータは、前のシステム・ハングの原因を理解しようとするために、メモリの内容を照会するオプションを有することを望むかもしれない。あるいはまた、オペレータは、システムがフリーズする前に保存されなかったデータをメモリから回復させたいかもしれない。もちろん、これらの場合、ブート・コードは、ブート・コードがシステム・メモリに書込む前に、この診断モードに入るための手段を与えなければならない。
【０００３】
シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）において、メモリ内容を保存する際に、克服すべき１つの重要な問題は、リフレッシュの維持である。ＳＤＲＡＭは、他の種類のＳＤＲＡＭの様に、リフレッシュ・サイクルを正規の周波数で発生させることを必要とする。技術およびメモリ・サイズに依存する特定の最大時間が、リフレッシュ・サイクルとリフレッシュ・サイクルとの間の時間を超えると、メモリは破壊されるであろう。メモリ・コントローラがリセットされると、その内部レジスタのすべてが、デフォルト状態に戻る。このことは、メモリ・コントローラが、ソフトウェアによって再初期化されるまで、メモリのリフレッシュを停止することを意味している。リセットの開始とメモリ・コントローラの再初期化との間の時間は、可変であり、リフレッシュ・サイクル間の最大許容時間よりも通常長いので、この時間の間に、メモリが破壊する可能性が高い。
【０００４】
【発明が解決しようとする課題】
メモリ・コントローラが、特定種類のリセットを検知することを簡単に除外することは、選択事項ではない。システム・ハングが、多くの事象によって引き起こされるので、マシンを成功的にリブートするためには、すべてのリセットの間に、メモリ・コントローラを含むすべてのハードウェアを、デフォルト状態に復元させることが必要である。システム・メモリのデフォルト状態は、ランダムに始まるので、その内容を保存することは、リブート・プロセスを妨げない。したがって、特定種類のリセット信号の際に、新しいアーキテクチャおよび既存のアーキテクチャに、メモリをリフレッシュする機能を付加する装置および方法が望まれる。
【０００５】
【課題を解決するための手段】
この発明は、データ処理システムのリセットの期間中、セルフリフレッシュ可能なメモリ・デバイスの内容を保持する方法，システム，および装置を提供する。一実施形態では、リフレッシュ・コントローラは、データ処理システムがリセットされていることの指示を受取る。必要ならば、リフレッシュ・コントローラは、メモリ・デバイスがセルフリフレッシュ・モードに保たれるように、メモリ・コントローラからメモリ・デバイスへの信号を変更する。リフレッシュ・コントローラは、データ処理システムが外部リフレッシュ信号をリイネーブルするまで、メモリ・デバイスをセルフリフレッシュ・モードに保つ。
【０００６】
【発明の実施の形態】
図１は、この発明を実施することのできるデータ処理システムのブロック図を示す。データ処理システム１００は、周辺コンポーネント相互接続（peripheral component interconnect ；ＰＣＩ）ローカルバス・アーキテクチャを採用している。図示の例は、ＰＣＩバスを採用しているが、Ｍｉｃｒｏ  ＣｈａｎｎｅｌおよびＩＳＡのような他のバス・アーキテクチャを用いることもできる。プロセッサ１０２と、シンクロナス・ダイナミック・ランダム・アクセス・メモリ（synchronous dynamic random access memory ；ＳＤＲＡＭ）メインメモリ・コントローラ１０４とが、ＰＣＩブリッジ１０８を介してＰＣＩローカルバス１０６に接続されている。ＰＣＩブリッジ１０８は、プロセッサ１０２のためのキャッシュ・メモリを有することもできる。ＳＤＲＡＭメイン・メモリ・コントローラ１０４は、また、ＳＤＲＡＭメイン・メモリ１３６およびリフレッシュ・コントローラ１３４に接続される。
【０００７】
ＰＣＩローカルバス１０６への追加の接続は、直接コンポーネント相互接続またはアドイン（ａｄｄ−ｉｎ）ボードによって行うことができる。図示の例ではローカル・エリア・ネットワーク（ＬＡＮ）アダプタ１１０，ＳＣＳＩホストバス・アダプタ１１２，拡張バス・インタフェース１１４は、直接コンポーネント接続によって、ＰＣＩローカルバス１０６に接続される。対照的に、オーディオ・アダプタ１１６，グラフィックス・アダプタ１１８，オーディオ／ビデオ・アダプタ（Ａ／Ｖ）１１９は、拡張スロットに挿入されたアドイン・ボードによって、ＰＣＩローカルバス１０６に接続される。拡張バス・インタフェース１１４は、ＩＳＡバス１３５を介して、キーボードおよびマウス・アダプタ１２０，モデム１２２，付加メモリ１２４への接続を与える。図示の例では、ＳＣＳＩホストバス・アダプタ１１２は、ディスク・ドライバ１２６，テープ・ドライバ１２８，ＣＤ−ＲＯＭドライブ１３０，デジタル・ビデオ・ディスク・リードオンリ・メモリ・ドライブ（ＤＶＤ−ＲＯＭ）１３２への接続を与える。典型的なＰＣＩローカルバス・インプリメンテーションは、３個または４個の拡張スロットまたはアドイン・コネクタを接続する。
【０００８】
オペレーティング・システムは、プロセッサ１０２上で実行され、図１のデータ処理システム１００内の種々のコンポーネントの調整および制御を与えるために用いられる。オペレーティング・システムは、International Business Machines Corporationから得られるＯＳ／２のような市販のオペレーティング・システムとすることができる。“ＯＳ／２”は、International Business Machines Corporationの登録商標である。Ｊａｖａ（R）のようなオブジェクト指向プログラミング・システムは、オペレーティング・システムと一緒に実行されて、データ処理システム１００上で実行されるＪａｖａ(R)プログラムまたはアプリケーションからオペレーティング・システムへの呼出しを与えることができる。オペレーティング・システムに対する命令と、オブジェクト指向オペレーティング・システムと、アプリケーションまたはプログラムとは、ハードディスク・ドライブ１２６のようなストレージ・デバイスに配置され、プロセッサ１０２により実行するために、メインメモリ１３６にロードすることができる。
【０００９】
ＳＤＲＡＭメインメモリ・コントローラ１０４は、データ処理システムからの特定のコマンドに応じて、ＳＤＲＡＭメインメモリ１３６をセルフリフレッシュ・モードにする能力を有している。この発明は、データ処理システムが、“ボタン（ｂｕｔｔｏｎ）”リセットのような特定種類のリセット信号に応じて、ＳＤＲＡＭコントローラをセルフリフレッシュ・モードにすることを必要とする。ＳＤＲＡＭメインメモリ１３６は、メモリの内容が、周期的にリフレッシュされることを必要とすする。ＳＤＲＡＭメインメモリ１３６が、長期間にわたってリフレッシュされなければ、ＳＤＲＡＭメインメモリ１３６内の内容は、失われるであろう。セルフリフレッシュ・モードの間、ＳＤＲＡＭメインメモリ１３６は、外部リフレッシュ・サイクルの実行を必要としないが、ＳＤＲＡＭメインメモリ１３６は、この間、アクセスできない。しかし、ＳＤＲＡＭメインメモリ１３６内の内容は、データ処理システムが、ＳＤＲＡＭメインメモリ１３６の外部リフレッシュをリイネーブルするまで、保存される。
【００１０】
また、リフレッシュ・コントローラ１３４は、ＳＤＲＡＭメインメモリ・コントローラ１０４に接続されている。リフレッシュ・コントローラ１３４は、ＳＤＲＡＭメインメモリ１３６が、例えばデータ処理システムのリブートの間のような、割込み期間の間、セルフリフレッシュ・モードを早々と終了することを阻止する追加のコンポーネントである。ＳＤＲＡＭメインメモリ１３６が、セルフリフレッシュ・モードを早々と終了することを阻止することによって、リブートまたは他システム割込みの前のＳＤＲＡＭメインメモリ１３６の内容は、リブート・プロセスが完了した後に、データ処理システムに利用できる。
【００１１】
リフレッシュ・コントローラ１３４の重要性および機能の理解を助けるために、以下の例を考察する。ユーザが、データ処理システム１００上の“ボタン”リセットを押したとする。リセット信号は、データ処理システム１００のリセット・ロジックに直接供給されるよりはむしろ、割込みに関係づけられるので、割込みが行われる。割込みサービス・ルーチンは、最初に、ＳＤＲＡＭメインメモリ１３６のすべてのＳＤＲＡＭバンクをアイドルする。次に、第２のステップで、ＳＤＲＡＭメインメモリ・コントローラ１０４は、データ処理システムで実行されている割込みサービス・ルーチンの要求時に、ＳＤＲＡＭメインメモリ１３６を、セルフリフレッシュ・モードにする。最後に、第３のステップで、割込みサービス・ルーチンは、ソフトウェア（データ処理システム内で通常利用できるメカニズム）によってシステム・リセットをアクチベートする。第２のステップにおいて、ＳＤＲＡＭメインメモリ・コントローラ１０４は、ＳＤＲＡＭメモリをセルフリフレッシュ状態にするコマンドをＳＤＲＡＭメモリに送った後、クロック・イネーブル（ＣＫＥ）をロー状態にする。しかし、リフレッシュ・コントローラ１３４が使用されないと、割込みサービス・ルーチンは、第３のステップで、ＣＫＥを、デフォルト・ハイ（イネーブルされた）状態に戻す。というのは、システム・リセットは、すべてのデバイスをデフォルト状態に戻すからである。ＣＫＥがハイに戻されると、ＳＤＲＡＭメインメモリ１３６は、セルフリフレッシュ・モードを終了して、ブート・コードが、ＳＤＲＡＭメインメモリ・コントローラ１０４を再初期化する前に、データを失うであろう。したがって、リフレッシュ・コントローラ１３４によって与えられる付加回路は、リセット信号がリリースされるときに、ＣＫＥをローに保持することが要求される。ＣＫＥは、ブート・コードが、ＳＤＲＡＭメインメモリ・コントローラ１０４の再初期化を終了させるまで、インアクティブに保持されなければならない。
【００１２】
当業者は、図１のハードウェアが、インプリメンテーションに応じて変化し得ることがわかるであろう。例えば、光ディスクドライブなどのような他の周辺デバイスを、図１に示されたハードウェアに加えて、あるいはハードウェアに代えて、用いることができる。図示の例は、この発明に対して構造的な限定を加えることを意味するものではない。例えば、この発明のプロセスは、マルチプロセッサ・データ処理システムに適用することができる。
【００１３】
図２は、この発明を実施できるシステム・オン・ア・チップ（System-On-a-Chip）のブロック図を示す。システム・オン・ア・チップ２００は、プロセッサ・ローカルバス（Processor Local Bus ；ＰＬＢ）アーキテクチャを用いている。しかし、他のバス・アーキテクチャをさらに用いることができる。プロセッサ・ローカルバス２２４は、接続されるＣＰＵ２１４のような高性能，高帯域幅のブロックをホストする。図示の例では、ＣＰＵ２１４は、Ｐｏｗｅｒ−ＰＣ４０５（登録商標）のＣＰＵコアである。また、プロセッサ・ローカルバス２２４に、ＲＯＭ周辺コントローラ２２８と、ＳＤＲＡＭコントローラ２２６と、ダイレクト・メモリ・アクセス（ＤＭＡ）コントローラ２２０とが接続される。ＤＭＡコントローラ２２０は、ＣＰＵ２１４を用いることなしに、メモリからメモリへデータを転送する特殊回路または専用マイクロプロセッサである。ＰＣＩブリッジ２３０は、プロセッサ・ローカルバス２２４上のデバイスに対しインタフェースを与え、システム・オン・ア・チップ２００外のＰＣＩバス上のＰＣＩデバイスと通信する。ＰＬＢアービタ２２２は、ＰＣＩプロセッサ・ローカルバス２２４に対するリクエストを受取り、次にどのデバイスが、ＰＣＩプロセッサ・ローカルバス２２４へのアクセスを受取るかを決定する。
【００１４】
システム・オン・ア・チップ２００は、また、直列ポート２０２〜２０６とイーサネット(R)（登録商標）２１２のような低データ転送速度周辺装置をホストするオン・チップ周辺（ＯＰＢ）バス２１０を有する。直列ポート２０２〜２０６は、システム・オン・ア・チップ２００と、システム・オン・ア・チップ２００外のデバイスおよびコンポーネントとの間の接続を与える。イーサネット(R)２１２は、外部ネットワークへの接続を与える。ＯＰＢアービタ２０８は、ＯＰＢバス２１０へのリクエストを受取り、次にどのデバイスがアクセスを受取るかを決定する。ＯＰＢバス２１０は、ＯＰＢブリッジ２１８およびＤＭＡコントローラ２２０を経て、プロセッサ・ローカルバス２２４に接続される。
【００１５】
ＳＤＲＡＭコントローラ２２６は、ＳＤＲＡＭメモリ２３４とリフレッシュ・コントローラ２３６とに接続される。ＳＤＲＡＭコントローラ２２６は、データ処理システムからのリクエストに応じて、ＳＤＲＡＭメモリ２３４をセルフリフレッシュ・モードにする能力を有している。データ処理システムは、“ボタン（ｂｕｔｔｏｎ）”リセットのような特定種類のリセット信号に応じて、ＳＤＲＡＭコントローラが、ＳＤＲＡＭをセルフリフレッシュ・モードにすることを要求する。ＳＤＲＡＭメモリ２３４は、メモリの内容が、周期的にリフレッシュされることを要求する。セルフリフレッシュ・モード中、ＳＤＲＡＭメモリ２３４は、外部リフレッシュ・サイクルが実行されることを要求しない。しかし、ＳＤＲＡＭメモリ２３４内の内容は、システム・オン・ア・チップ２００が、ＳＤＲＡＭメモリ１３４の外部リフレッシュをイネーブルするまで、保存される。
【００１６】
ＳＤＲＡＭコントローラ２２６には、また、リフレッシュ・コントローラ２３６が接続される。リフレッシュ・コントローラ２３６は、ＳＤＲＡＭメモリ２３４が、例えばシステムのリブートの間のような、割込みの期間の間に、セルフリフレッシュ・モードを早々と終了させることを阻止する追加のコンポーネントである。ＳＤＲＡＭメモリ２３４が、セルフリフレッシュ・モードを早々と終了させることを阻止することによって、リブート、または他システムの割込みの前に、ＳＤＲＡＭメモリ２３４の内容を、リブート・プロセスが終了した後に、システム・オン・ア・チップ２００に対して利用できる。リフレッシュ・コントローラ２３６は、図１のリフレッシュ・コントローラ１３４と同様に動作する。
【００１７】
システム・オン・ア・チップ２００は、この発明を実施することのできる特定用途向け集積回路（application specific integrated circuit ；ＡＳＩＣ）のようなシステム・オン・ア・チップの一例である。システム・オン・ア・チップ２００は、単に例示として与えられており、構成上の制限を課することを意味していない。システム・オン・ア・チップ２００は、図２に示されない他のコンポーネントを有することができる。
【００１８】
図３は、、外部リフレッシュ・サイクルがイネーブルされるまで、ＳＤＲＡＭメモリをセルフリフレッシュ・モードに保持するこの発明のリフレッシュ制御回路を示す図である。リフレッシュ制御回路３００は、図２のリフレッシュ・コントローラ２３６として、あるいは、以下に説明するようなわずかな変形で、図１のリフレッシュ・コントローラ１３４として実現することができる。読取り／書込みクロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｒｏｌ＿Ｂｉｔを実現するバス・ロジックは、デコーダ３０２内にあるが、図示していない。リフレッシュ制御回路３００は、また、プログラマブル・アレイ・ロジック（programmable array logic ；ＰＡＬ）のようなプログラマブル・ロジック・デバイス内に設けることができる。なお、プログラマブル・アレイ・ロジックは、プログラマブルＡＮＤゲートおよび定義済みＯＲゲートのアレイを有するプログラマブル・ロジック・チップのタイプのもの、あるいはＳＤＲＡＭコントローラを有するチップ外のフィールド・プログラマブル・アレイ（field programmable array ；ＦＰＧＡ）である。
【００１９】
リフレッシュ制御回路３００は、デコーダ３０２，ＯＲゲート３０４，ＡＮＤゲート３０６，Ｄフリップフロップ・ラッチ３０８を有している。デコーダ３０２は、リフレッシュ制御回路３００とのソフトウェア通信をデコードするシステム・バスの“デコーダ”を含んでいる。デコーダ３０２は、また、ＣＫＥ＿Ｃｏｎｔｒｏｌと呼ばれる単一レジスタ・ビットを有している。このビットは、デコーダ３０２を介して、システムにより書込むことのできる（およびインプリメンテーションに応じて、読取ることもできる）。デコーダ３０２から出力されたＣＫＥ＿Ｃｏｎｔｒｏｌは、ＯＲゲート３０４の入力に供給される。ＯＲゲート３０４の出力は、アンドゲート２０６の入力に供給される。ＡＮＤゲート３０６の入力には、アクティブ・ロー・システムリセット信号Ｓｙｓｔｅｍ＿Ｒｅｓｅｔ＿Ｎと、コアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅとが供給される。ＡＮＤゲート３０６の出力は、Ｄフリップフロップ・ラッチ３０８の入力に供給され、チップ外に送出される。Ｄフリップフロップ・ラッチ３０８の出力は、ＯＲゲート３０４の第２の入力に供給される。ＡＮＤゲート３０６の出力ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐは、また、ＳＤＲＡＭメモリ（図示せず）に供給されて、リセット中にＳＤＲＡＭメモリの内容を保持する。
【００２０】
ＳＤＲＡＭバス上に特定の電子コマンドを発行し、およびクロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐをインアクティブ・ロー状態にすることによって、ＳＤＲＡＭメモリは、ＳＤＲＡＭコントローラにより、セルフリフレッシュ・モードにされる。通常動作中、Ｓｙｓｔｅｍ＿Ｒｅｓｅｔ＿Ｎはハイ（インアクティブ）であり、クロック・イネーブル制御信号ＣＫＥ＿Ｃｏｎｔｏｒｌはハイ（アクティブ）であり、コアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅはハイ（アクティブ）であり、したがってクロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐおよびフィードバック信号Ｆｅｅｄｂａｃｋはハイである。このモードでは、コアは、そのアクティブ・ハイ・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅをアサートおよびデアサートし、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐに、影響を与えることができる。
【００２１】
ロジック３０６の唯一つのレベルが、コアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅと、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐとの間に、付加された。したがって、最近の特定用途向け集積回路（ＡＳＩＣ）において解決すべき困難なタイミングの問題は、存在しない。
【００２２】
“ボタン”リセットまたは他の種類の特殊リセットがアサートされると、リセット割込みサービス・ルーチンが、ＳＤＲＡＭコントローラを、セルフリフレッシュ・モードにする。このことは、コアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅ、したがってクロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐを、インアクティブ（ロー）になるようにする。割込みサービス・ルーチンの終わりは、リセット信号Ｓｙｓｔｅｍ＿Ｒｅｓｅｔ＿Ｎをローにアクティベートする。このことは、リセット中にコアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅに何が生じようとも、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐをローに保持する。また、クロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｏｒｌ＿ｂｉｔは、リセット中、デコーダ３０２によってローにセットされる。これは、リセット信号Ｓｙｓｔｅｍ＿Ｒｅｓｅｔ＿Ｎを、ＣＫＥ＿Ｃｏｎｔｏｒｌレジスタの“クリア（ｃｌｅａｒ）”入力に供給することにより達成される。
【００２３】
リセット期間が終わると、リセット信号Ｓｙｓｔｅｍ＿Ｒｅｓｅｔ＿Ｎは、ハイに戻り、コアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅはまたハイであるが、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐは、クロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｏｒｌ＿ｂｉｔがローであり、フィードバック信号Ｆｅｅｄｂａｃｋがローであるが故に、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐは、ローに留まる。それは、クロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｏｒｌ＿ｂｉｔがハイになるまで、ローに留まるであろう。“パワーオン（Ｐｏｗｅｒ−ｏｎ）”リセットによって、システムがリセットされたならば、ＳＤＲＡＭバス・トランザクションを実行する初期化シーケンスが、ＳＤＲＡＭメモリ・モジュールによって検知されるように、ＳＤＲＡＭコントローラの初期化の前に、ソフトウェアは、クロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｏｒｌ＿ｂｉｔを“１”にセットしなければならない。“ボタン・リセット（Ｂｕｔｔｏｎ−Ｒｅｓｅｔ）”、またはメモリ内容が保存されなければならない他の種類のリセットによって、システムがリセットされたならば、ソフトウェアは、実リアル・システムを再びリフレッシュする直前まで、クロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｏｒｌ＿ｂｉｔを、“０”状態のままにしておく。この場合、ソフトウェアは、ＳＤＲＡＭがセルフリフレッシュ・モードに依然としてある間に、通常動作状態のためにＳＤＲＡＭコントローラを、セットアップする。
【００２４】
ＳＤＲＡＭコントローラの初期化の結果、実行されるＳＤＲＡＭバス・サイクルは、クロック・イネーブル信号ＣＫＥがインアクティブであるが故に、ＳＤＲＡＭによって、無視されるであろう。このことは望ましい。というのは、ＳＤＲＡＭメモリは、リセットの前に正確にセットアップされており、依然として正しい状態にある。ＳＤＲＡＭコントローラが完全にセットアップされると、ソフトウェアは、クロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｏｒｌ＿ｂｉｔを、“１”にセットする。これは、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐを、“１”になるようにする。ソフトウェアについて、最終ステップは、実システム・リフレッシュをリイネーブルすることである。
【００２５】
たとえ、ソフトウェアが、通常動作中に、クロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｏｒｌ＿ｂｉｔを切替えても、フィードバック信号Ｆｅｅｄｂａｃｋロジックは、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐが、ハイに留まることを許容する。この特徴は、ソフトウェアが、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐを“０”にセットすることを阻止する。これは、適切にそのようにするために、メモリ・コントローラを用いることなく、リフレッシュ・コントローラによって行われる。このステップが、メモリ・コントローラによって行われるときには、メモリ・コントローラは、コアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅを“０”にセットする前に、適切なセルフリフレッシュ・モード・コマンドを発行する。これらのコマンドが、コアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅを“０”にセットする前に、実行されないならば、ＳＤＲＡＭメモリは、未定義状態になり、セルフリフレッシュ・モードにならない。
【００２６】
リフレッシュ制御回路３００を、システム・オン・ア・チップ内の動作に関連して前述したが、リフレッシュ制御回路３００は、例えば図１のリフレッシュ・コントローラ１３４のような、リフレッシュ・コントローラとして実現することもでき、および例えば図１のデータ処理システムのようなデータ処理システム内のメモリ・コントローラ・チップ外に設けられる。このような場合、リセット信号Ｓｙｓｔｅｍ＿Ｒｅｓｅｔ＿Ｎおよびクロック信号Ｃｌｏｃｋは、データ処理システムから得られるであろう。クロック信号Ｃｌｏｃｋは、ＳＤＲＡＭメモリにより用いられるクロック信号と同一でなければならない。というのは、データ処理システムは、多くのクロックを有し得るからである。コアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅは、チップからのクロック・イネーブル信号（通常、ＣＫＥ＿Ｆｒｏｍ＿Ｃｈｉｐと称される）であり、システムＳＤＲＡＭへのメモリ・コントローラ・チップのＣＫＥ出力である。チップからのクロック・イネーブル信号は、ＳＤＲＡＭメモリによって受取られる前に、例えば図１のリフレッシュ・コントローラ１３４のような、リフレッシュ・コントローラによって、典型的にインターセプトされる。クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐは、メモリへのクロック・イネーブル信号（通常、ＣＫＥ＿Ｔｏ＿Ｍｅｍと称される）によって置換えられる。メモリへのクロック・イネーブル信号は、この発明のシステムＳＤＲＡＭに送られるクロック・イネーブル信号（ＣＫＥ）である。図３のＣＫＥ制御ビット３０２へ接続されるシステムバスは、実行される入力／出力（Ｉ／Ｏ）トランザクションを有するデータ処理システム内のバスとすることができる。システムバスは、例えば、プロセッサ・バス，ＰＣＩバス、またはＩＳＡバスとさえすることができる。ソフトウェアが、バスに対してＩ／Ｏトランザクションを実行して、クロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｒｏｌ＿ｂｉｔを制御する限り、いかなるバスも満足できる。
【００２７】
図４は、パワーオン・シーケンス中の、図３のこの発明のリフレッシュ制御回路３００の動作を説明するタイミング図を示す。クロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｒｏｌ＿ｂｉｔのパワーオン状態が“０”であり、コアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅが“１”である。クロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｒｏｌ＿ｂｉｔが、ソフトウェアによって“１”にセットされるまで、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐは、“０”に留まる。その後、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐは、コアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅの変移に従う。また、次のリセットの前の、クロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｒｏｌ＿ｂｉｔのさらなる変化は、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐに影響を及ぼさない。
【００２８】
図５は、“ホット・リセット（ｈｏｔ−ｒｅｓｅｔ）”、すなわちシステムがしばらくの間、通常モードで実行された後に発生するリセットの間の、図３のこの発明のリフレッシュ制御回路３００の動作を説明するタイミング図を示す。例えば、リセット・ボタンを押すオペレータにより、あるいはウオッチドッグ・タイマーの満了の結果、“ホット・リセット”が生じる。もちろん、“ホット・リセット”を発生させることのできるシステム内に、他の可能なアクションが存在する。ＳＤＲＡＭをセルフリフレッシュ・モードにする割込みサービス・ルーチンの結果、コアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅは、ローになる。これは、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐを“０”にさせる。このとき、割込みサービス・ルーチンは、ソフト・リセットを行うことによって、リセット信号Ｓｙｓｔｅｍ＿Ｒｅｓｅｔ＿Ｎをアクティベートする。このことは、クロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｒｏｌ＿ｂｉｔを、“０”にし、最終的にコアからのクロック・イネーブル信号ＣＫＥ＿Ｆｒｏｍ＿Ｃｏｒｅを“１”にする。リセット期間中、およびリセット信号Ｓｙｓｔｅｍ＿Ｒｅｓｅｔ＿Ｎが“１”になった後は、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐは、“０”に留まる。ソフトウェアがクロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｒｏｌ＿ｂｉｔをセットするとき、クロック・イネーブル出力信号ＣＫＥ＿Ｏｆｆ＿Ｃｈｉｐが“１”になる。
【００２９】
図４および図５において、イベント間のクロックの数は、イベント間のクロック・サイクルの実際の数を示すことを意味していないが、イベントの相対的発生の実例として単に示されていることに留意すべきである。実際には、リセット信号Ｓｙｓｔｅｍ＿Ｒｅｓｅｔ＿Ｎは、多数のクロック・サイクルに対して、典型的にローとなり、例えば、ハイになるリセット信号Ｓｙｓｔｅｍ＿Ｒｅｓｅｔ＿Ｎと、ハイになるクロック・イネーブル制御ビット信号ＣＫＥ＿Ｃｏｎｔｒｏｌ＿ｂｉｔとの間に、多数のクロック・サイクルが存在し得る。
【００３０】
図６は、システム・リセットの期間中、ＳＤＲＡＭメモリ・デバイスに対して、セルフリフレッシュ・モードを保持するこの発明の方法を説明するフローチャートを示す。まず初めに、データ処理システムが、システムがリセットされる指示を受取る（ステップ６０２）。次に、データ処理システムは、リセット指示の種類を決定する（ステップ６０４）。例えば、リセットは、おそらくシステムがハングしたので、ユーザがコンピュータのリセット・ボタンを押した“ボタン”リセットであり、あるいはリセットは、システムのパワーオンによるリセットとすることができる。
【００３１】
システム・リセットの種類が一旦決定されると、データ処理システムは、外部リフレッシュがリイネーブルされるまで、リセットの期間中、セルフリフレッシュ・モードを用いて、ＳＤＲＡＭメモリがリフレッシュされたままにすべきか否かを決定する（ステップ６０６）。例えば、システムがパワーダウン状態からパワーアップ状態になるために、ＳＤＲＡＭメモリをリフレッシュされた状態に保つ必要がない場合には、システムは、リフレッシュ・コントローラにおけるＣＫＥ＿Ｃｏｎｔｒｏｌ＿ｂｉｔをすぐにイネーブルして、ソフトウェアが、通常動作にＳＤＲＡＭコントローラをセットアップすることを許容する必要がある（ステップ６１６）。ＳＤＲＡＭメモリをリフレッシュ状態に保つ必要がある場合には、データ処理システムは、ＳＤＲＡＭコントローラに、ＳＤＲＡＭをセルフリフレッシュ・モードにすることを通知する（ステップ６０８）。これは、ＳＤＲＡＭコントローラに、ＳＤＲＡＭメモリへセルフリフレッシュ・コマンドを送らせ、続いてＣＫＥ信号をＳＤＲＡＭコントローラによってローにする。ＳＤＲＡＭは、セルフリフレッシュ・モードのままにする必要がある。というのは、例えば、システムのハング状態のために、ユーザによってシステムがリセットされ、しかも、システムがリセットされた後に、ユーザが使用のために保有したい内容がＳＤＲＡＭメモリ内に存在するかもしれないからである。
【００３２】
リフレッシュ・コントローラは、ＣＫＥ信号の制御を行って、ＳＤＲＡＭメモリをセルフリフレッシュ・モードに保ち、他方、リフレッシュ・コントローラは、システムがリセット（リブート）を完了するのを待つ（ステップ６１０）。システムは、その通常のリブート・プロシージャの一部として、ＳＤＲＡＭコントローラをセットアップする。システムは、そのＳＤＲＡＭセットアップの一部として、外部リフレッシュをリイネーブルする（ステップ６１２）。システムが、外部リフレッシュをリイネーブルする直前に、リフレッシュ・コントローラに、ＣＫＥラインの制御を解放させることを命令することは差し支えない。これは、ＣＫＥ＿Ｃｏｎｔｒｏｌ＿ｂｉｔを書込み、ハイにセットすることによって、システムが行う。システムがＣＫＥ＿Ｃｏｎｔｒｏｌ＿ｂｉｔをハイにセットすると、ＳＤＲＡＭメモリへのＣＫＥ信号の制御は、メモリ・コントローラへ引渡される。このことは、システムが、ＳＤＲＡＭメモリの制御をリアサートすることを許容し（ステップ６１４）、この時点で、プロセスは終了する。
【００３３】
この発明を、ＳＤＲＡＭメモリについて主に説明したが、この発明は、リフレッシュを要求し、およびセルフリフレッシュ機能を有するいかなるメモリにも適用できることに留意すべきである。
【００３４】
この発明を、十分に機能するデータ処理システムについて説明したが、当業者であれば、この発明の方法を、命令のコンピュータ読取り可能な媒体の形態で、あるいは種々の形態で頒布することができ、およびこの発明は、頒布するのに実際に用いられる特定種類の信号担持媒体にかかわらず、同様に適用できることがわかることを知るのは重要である。コンピュータ読取り可能な媒体の例は、フロッピー（登録商標）ディスク，ハードディスク・ドライブ，ＲＡＭ，ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭのような記録可能媒体と、デジタル／アナログ通信リンク，および例えば無線周波および光波伝送のような伝送形態を用いるワイヤまたはワイヤレス通信リンクのような伝送タイプ媒体とを含んでいる。コンピュータ読取り可能な媒体は、特定のデータ処理システムにおいて実際に使用するためにデコードされるコード化フォーマットの形態をとることができる。
【００３５】
この発明の記述は、説明のために与えられており、この発明を開示された形態に限定することを意図するものではない。当業者には、多くの変形，変更が明らかであろう。例えば、リフレッシュ回路について特定の構造を示したが、この発明のメカニズムは、異なる回路構造にも適用できる。この発明の原理および実際の応用例を最良に説明するために、および意図する特定の使用に適した種々の変形を含む種々の実施例について、当業者にこの発明を理解させることを可能にするために、実施例を選び説明した。
【００３６】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）データ処理システムのリセットの期間中、セルフリフレッシュ可能なメモリ・デバイスの内容を保持する方法であって、
データ処理システムのリセット状態の指示を受取るステップと、
必要ならば、前記メモリ・デバイスがセルフリフレッシュ・モードに保たれるように、メモリ・コントローラから前記メモリ・デバイスへの信号を変更するステップと、
前記データ処理システムが外部リフレッシュ信号をリイネーブルするまで、前記メモリ・デバイスをセルフリフレッシュ・モードに保つステップと、
を含む方法。
（２）前記メモリ・デバイスは、シンクロナス・ダイナミック・ランダム・アクセス・メモリである、上記（１）に記載の方法。
（３）前記リセット状態が、前記メモリ・デバイスの内容を保持することを必要としないという決定に応じて、前記メモリ・コントローラから前記メモリ・デバイスへの前記信号の変更を行わないステップをさらに含む、上記（１）に記載の方法。
（４）前記リセット状態は、パワーオン状態である、上記（３）に記載の方法。
（５）セルフリフレッシュ可能なメモリ・デバイスの内容を保存するリフレッシュ制御回路であって、
前記リフレッシュ制御回路が設けられるデータ処理システムからの信号を解釈するデコーダと、
ＯＲゲートと、
ＡＮＤゲートと、
ラッチとを備え、
前記デコーダは、前記ＯＲゲートの第１の入力に接続された出力と、システム・リセット信号が供給される入力とを有し、
前記ＡＮＤゲートは、前記ＯＲゲートの出力に接続された第１の入力と、前記システム・リセット信号が供給される第２の入力と、前記データ処理システムからのクロック・イネーブル信号が供給される第３の入力とを有し、
前記ＡＮＤゲートは、前記ラッチの入力と、セルフリフレッシュ可能なメモリ・デバイスとに接続された出力を有し、
前記ラッチの出力は、前記ＯＲゲートの第２の入力に接続されている、リフレッシュ制御回路。
（６）前記データ処理システムは、システム・オン・ア・チップであり、前記クロック・イネーブル信号は、前記システム・オン・ア・チップのコアによって発生される、上記（５）に記載のリフレッシュ制御回路。
（７）前記システム・オン・ア・チップは、特定用途向け集積回路である、上記（６）に記載のリフレッシュ制御回路。
（８）前記システム・オン・ア・チップは、プログラマブル・アレイ・ロジック・チップである上記（６）に記載のリフレッシュ制御回路。
（９）前記システム・オン・ア・チップは、フィールド・プログラマブル・アレイ・ロジック・チップである上記（６）に記載のリフレッシュ制御回路。
（１０）前記セルフリフレッシュ可能なメモリ・デバイスは、シンクロナス・ダイナミック・ランダム・アクセス・メモリである、上記（５）に記載のリフレッシュ制御回路。
（１１）バスに接続されたプロセッサと、
前記バスに接続されたメモリ・デバイス・コントローラと、
前記メモリ・デバイス・コントローラに接続されたリフレッシュ・コントローラと、
前記メモリ・デバイス・コントローラに接続されたセルフリフレッシュ可能なメモリ・デバイスとを備え、
前記リフレッシュ・コントローラは、システム・リセットの期間中、前記セルフリフレッシュ可能なメモリ・デバイス内の内容を保存する、
データ処理システム。
（１２）前記セルフリフレッシュ可能なメモリ・デバイスは、シンクロナス・ダイナミック・ランダム・アクセス・メモリである、上記（１１）に記載のデータ処理システム。
（１３）前記リフレッシュ・コントローラは、また、前記バスに接続されている、上記（１１）に記載のデータ処理システム。
（１４）前記リフレッシュ・コントローラは、ＡＮＤゲートと、ＯＲゲートと、フィードバック・ループを与えるラッチとを備え、前記ＡＮＤゲートの出力は、前記メモリ・コントローラへの信号を制御し、前記メモリ・コントローラは、システム・リセットの期間中、セルフリフレッシュ可能なメモリの内容を保持する、上記（１１）に記載のデータ処理システム。
（１５）前記データ処理システムは、システム・オン・ア・チップである、上記（１１）に記載のデータ処理システム。
（１６）前記システム・オン・ア・チップは、特定用途向け集積回路である、上記（１５）に記載のデータ処理システム。
（１７）前記システム・オン・ア・チップは、プログラマブル・アレイ・ロジック・チップである上記（１５）に記載のデータ処理システム。
（１８）前記システム・オン・ア・チップは、フィールド・プログラマブル・アレイ・ロジック・チップである上記（１５）に記載のデータ処理システム。
（１９）データ処理システムのリセットの期間中、データ処理システム内のメモリ・デバイスの内容を保存するシステムであって、
データ処理システムがいつリセット信号を受取ったかを決定する第１の手段と、
前記データ処理システムがリセット信号を受取ったことの決定に応じて、外部リフレッシュ信号が前記データ処理システムによってリイネーブルされるまで、前記メモリ・デバイスの内容が保存されたままであるように、前記メモリ・デバイスへの制御信号を変更する第２の手段と、
を備えるシステム。
（２０）前記メモリは、セルフリフレッシュ可能なメモリ・デバイスである上記（１９）に記載のシステム。
（２１）前記メモリは、シンクロナス・ダイナミック・ランダム・アクセス・メモリである上記（１９）に記載のシステム。
（２２）前記第２の手段は、外部リフレッシュ信号が前記データ処理システムによってリイネーブルされるまで、前記メモリ・デバイスをセルフリフレッシュ・モードに保つ、上記（１９）に記載のシステム。
【図面の簡単な説明】
【図１】この発明を実施することのできるデータ処理システムのブロック図を示す。
【図２】この発明を実施できるシステム・オン・ア・チップのブロック図を示す。
【図３】外部リフレッシュ・サイクルをリイネーブルするこの発明のリフレッシュ制御回路を示す。
【図４】パワーオン・シーケンス中の、図３のこの発明のリフレッシュ制御回路３００の動作を説明するタイミング図を示す。
【図５】“ホット・リセット”中の図３のこの発明のリフレッシュ制御回路３００の動作を説明するタイミング図を示す。
【図６】システム・リセットの期間中、ＳＤＲＡＭメモリ・デバイスに対して、セルフ・リフレッシュ・モードを保持するこの発明の方法を説明するフローチャートを示す。
【符号の説明】
１０２  プロセッサ
１０４  ＳＤＲＡＭメインメモリ・コントローラ
１０６  ＰＣＩローカルバス
１０８  ＰＣＩブリッジ
１１０  ＬＡＮアダプタ
１１２  ＳＣＳＩホストバス・アダプタ
１１４  拡張バス・インタフェース
１１６  オーディオ・アダプタ
１１８  グラフィックス・アダプタ
１１９  オーディオ／ビデオ・アダプタ
１２０  キーボードおよびマウス・アダプタ
１２２  モデム
１２４  付加メモリ
１２６  ディスク・ドライバ
１２８  テープ・ドライバ
１３０  ＣＤ−ＲＯＭドライブ
１３２  ＤＶＤ−ＲＯＭ
１３４  リフレッシュ・コントローラ
１３５  ＩＳＡバス
１３６  ＳＤＲＡＭメイン・メモリ
２００  システム・オン・ア・チップ
２０２〜２０６  直列ポート
２０８  ＯＰＢアービタ
２１０  ＯＰＢバス
２１２  イーサネット(R)（登録商標）
２１４  ＣＰＵ
２２０  ＤＭＡコントローラ
２２２  ＰＬＢアービタ
２２４  プロセッサ・ローカルバス
２２６  ＳＤＲＡＭコントローラ
２２８  ＲＯＭ周辺コントローラ
２３４  ＳＤＲＡＭメモリ
２３６  リフレッシュ・コントローラ
３００  リフレッシュ制御回路
３０２  デコーダ
３０４  ＯＲゲート
３０６  ＡＮＤゲート
３０８  Ｄフリップフロップ・ラッチ
【図１】
0003880331.tif 000002
【図２】
0003880331.tif 000003
【図３】
0003880331.tif 000004
【図４】
0003880331.tif 000005
【図５】
0003880331.tif 000006
【図６】
0003880331.tif 000007