(57)【特許請求の範囲】
【請求項１】
セルフ・リフレッシュ機能を有するダイナミック・ランダム・アクセス・メモリを制御するための第１の複数のメモリ制御信号を生成するメモリ・コントローラと、
前記メモリ・コントローラの外にあり、所定の状態に応じて前記メモリをセルフ・リフレッシュ状態にするセルフ・リフレッシュ回路と
を備え、
このセルフ・リフレッシュ回路は、複数の入力信号に基づいて、前記メモリを制御するための第２の複数のメモリ制御信号であって各々が前記第１の複数のメモリ制御信号の各一つに対応した第２の複数の制御信号を生成する状態機械を備えており、
さらに、前記セルフ・リフレッシュ回路は、前記複数の入力信号に基づいて、前記第１の複数のメモリ制御信号と前記第２の複数のメモリ制御信号を選択して前記メモリに付与するよう構成されるとともに、前記メモリ・コントローラからの第１のクロック信号を入力として受けて前記メモリに第２のクロック信号を出力するクロック生成器を有しており、
このクロック生成器が、前記メモリを前記セルフ・リフレッシュ状態にし続けるため、前記第１のクロック信号の停止後に前記第２のクロック信号を出力し続けるＰＬＬを含む
ことを特徴とする装置。
【請求項２】
前記セルフ・リフレッシュ回路の動作はソフトウェアの介在なしに行われる請求項１に記載の装置。
【請求項３】
前記メモリは、同期ダイナミック・ランダム・アクセス・メモリの一形態である請求項１に記載の装置。
【請求項４】
前記セルフ・リフレッシュ回路は、
複数の制御信号を受け取り、前記第２の複数のメモリ制御信号を生成する状態機械と、
前記状態機械と前記メモリに結合されたマルチプレクサ回路と
を備える請求項１に記載の装置。
【請求項５】
バッテリのバックアップ機能をイネーブルするための手段を備え、主電源および補助電源から電力を受け取り、主電源のレベルが所定条件を満たすときは主電源から前記メモリに電力を供給し、主電源のレベルが所定条件を満たさないときは補助電源から前記メモリに電力を供給する電源管理及び選択回路をさらに備える請求項１に記載の装置。
【請求項６】
前記所定条件が、あらかじめ決定されたリセット要求のための電力消費のない様々な条件の内のいずれかの発生に応答するトリガ信号のアサートを含む請求項１に記載の装置。
【請求項７】
前記状態機械は、前記メモリが実行中のメモリ動作を完了させることを可能にする待機状態に入ることによって前記所定の条件に応答するとともに、該待機状態が完了した後のみに前記メモリをプリチャージ状態に入らせることを特徴とする請求項１に記載の装置。
【請求項８】
セルフ・リフレッシュ機能を有するダイナミック・ランダム・アクセス・メモリと、そのメモリを制御するメモリ・コントローラとを備えた処理システムに使用するためのセルフ・リフレッシュ・マネージメント回路であって、
前記メモリ・コントローラの外にある状態機械であって前記メモリを制御するメモリ制御信号群であって各々が前記メモリ・コントローラによって出力されるメモリ制御信号の各一つに対応したメモリ制御信号群を生成するとともにトリガ信号のアサートに応答して前記メモリをセルフ・リフレッシュ状態に入らせる状態機械と、
前記メモリ・コントローラの外にあるマルチプレクサ回路であって、前記状態機械からのメモリ制御信号群または前記メモリ・コントローラからのメモリ制御信号群を、前記状態機械からの選択信号に応答して、選択するマルチプレクサ回路と、
前記メモリ・コントローラからの第１のクロック信号を入力として受けて前記メモリに第２のクロック信号、前記状態機械に第３のクロック信号を出力するクロック生成器と
を有し、このクロック生成器が、前記メモリを前記セルフ・リフレッシュ状態にし続けるため、前記第１のクロック信号の停止後に前記第２のクロック信号を出力し続けるＰＬＬを含む
ことを特徴とする回路。
【請求項９】
前記セルフ・リフレッシュ回路の動作はソフトウェアの介在なしに行われる請求項８に記載の回路。
【請求項１０】
前記メモリは、同期ダイナミック・ランダム・アクセス・メモリの一形態である請求項８に記載の回路。
【請求項１１】
前記トリガ信号は、あらかじめ決定されたリセット要求のための電力消費のない様々な条件の内のいずれかに応答してアサートされることを特徴とする請求項８に記載の回路。
【請求項１２】
前記状態機械は、前記メモリが実行中のメモリ動作を完了させることを可能にする待機状態に入ることによって前記トリガ信号に応答するとともに、該待機状態が完了した後のみに前記メモリをプリチャージ状態に入らせることを特徴とする請求項８に記載の回路。
【請求項１３】
プロセッサと、このプロセッサに結合しているとともにセルフ・リフレッシュ機能を有するダイナミック・ランダム・アクセス・メモリと、そのメモリを制御するための第１の複数のメモリ制御信号を生成するメモリ・コントローラとを備えた処理システムに使用するためのセルフ・リフレッシュ・マネージメント回路であって、
前記メモリ・コントローラの外にある状態機械であって第１の複数の入力信号にしたがって選択される複数の状態を有し、あらかじめ決定されたリセット要求のための電力消費のない様々な条件の内のいずれかに応答してアサートされるトリガ信号のアサートに応答して前記メモリをセルフ・リフレッシュ状態にするとともに前記状態機械の状態にしたがってメモリを制御するための第２の複数のメモリ制御信号であって各々が前記第１のメモリ制御信号の各一つに対応した第２の複数のメモリ制御信号を生成し、さらに前記状態機械の状態にしたがって選択信号を出力する状態機械と、
前記メモリ・コントローラの外にある複数のマルチプレクサ回路であって、各マルチプレクサ回路が前記第１の複数の制御信号の各一つを受ける第１の入力と前記第２の複数のメモリ制御信号の各一つを受ける第２の入力とを有し、かつ前記第１、第２の入力のいずれかを前記選択信号にしたがって選択して前記メモリ制御のためのメモリ制御信号を前記メモリに供給するための出力を備えた複数のマルチプレクサ回路と、
前記メモリ・コントローラからの第１のクロック信号を入力として受けて前記メモリに第２のクロック信号を出力するクロック生成器と
を有し、このクロック生成器が、前記メモリを前記セルフ・リフレッシュ状態にし続けるため、前記第１のクロック信号の停止後に前記第２のクロック信号を出力し続けるＰＬＬを含む
ことを特徴とする回路。
【請求項１４】
前記セルフ・リフレッシュ回路の動作はソフトウェアの介在なしに行われる請求項１３に記載の回路。
【請求項１５】
前記メモリは、同期ダイナミック・ランダム・アクセス・メモリの一形態である請求項１３に記載の回路。
【請求項１６】
前記状態機械は、前記メモリが実行中のメモリ動作を完了させることを可能にする待機状態に入ることによって前記トリガ信号に応答するとともに、該待機状態が完了した後のみに前記メモリをプリチャージ状態に入らせることを特徴とする請求項１３に記載の回路。
【請求項１７】
プロセッサと、このプロセッサに結合しているとともに複数の不揮発性大容量記憶装置とのデータ通信を可能にするストレージ・インタフェースと、前記プロセッサに結合しているとともにネットワーク経由で遠隔処理システムとのデータ通信を可能にするネットワーク・インタフェースと、前記プロセッサに結合しているとともにセルフ・リフレッシュ機能を有するダイナミック・ランダム・アクセス・メモリと、そのメモリを制御するためのメモリ・コントローラと、前記メモリ・コントローラの外にあって前記メモリに結合しているセルフ・リフレッシュ・マネージメント回路とを有する記憶システムであって、
前記セルフ・リフレッシュ・マネージメント回路は、前記メモリを制御する複数のメモリ制御信号であって各々が前記メモリ・コントローラから出力される複数のメモリ制御信号の各一つに対応する複数のメモリ制御信号を生成し、あらかじめ決定されたリセット要求のための電力消費のない様々な条件の内のいずれかに応答してアサートされるトリガ信号のアサートに応答して前記メモリをセルフ・リフレッシュ状態にする状態機械を有しており、
前記状態機械からの前記複数のメモリ制御信号の各一つまたは前記メモリ・コントローラからの前記複数のメモリ制御信号の各一つを、前記状態機械からの選択信号に応答して、それぞれ選択する複数のマルチプレクサ回路と、
前記メモリ・コントローラからの第１のクロック信号を入力として受けて前記メモリに第２のクロック信号、前記状態機械に第３のクロック信号を出力するクロック生成器と
を有し、このクロック生成器が、前記メモリを前記セルフ・リフレッシュ状態にし続けるため、前記第１のクロック信号の停止後に前記第２のクロック信号を出力し続けるＰＬＬを含む
ことを特徴とする記憶システム。
【請求項１８】
前記セルフ・リフレッシュ回路の動作はソフトウェアの介在なしに行われる請求項１７に記載の記憶システム。
【請求項１９】
前記メモリは、同期ダイナミック・ランダム・アクセス・メモリの一形態である請求項１７に記載の記憶システム。
【請求項２０】
前記状態機械は、前記メモリが実行中のメモリ動作を完了させることを可能にする待機状態に入ることによって前記トリガ信号に応答するとともに、該待機状態が完了した後のみに前記メモリをプリチャージ状態に入らせることを特徴とする請求項１７に記載の記憶システム。
【請求項２１】
メモリ・コントローラと、セルフ・リフレッシュ機能を有するダイナミック・ランダム・アクセス・メモリとを備えた処理システムの動作に関連する信号を、状態機械が受信するステップと、
前記メモリ・コントローラによって生成された第１の複数のメモリ制御信号を、マルチプレクサ回路が受信するステップと、
前記メモリ・コントローラの外にあって、各々が前記複数の第１のメモリ制御信号の各一つに対応した第２の複数のメモリ制御信号を、前記状態機械が生成して前記マルチプレクサ回路に出力するステップと、
複数の制御信号に基づいて、メモリコントローラからのトリガ信号のアサートに応答して前記メモリをセルフ・リフレッシュ状態にするために、前記第１の複数のメモリ制御信号に代えて前記第２の複数のメモリ制御信号を前記メモリに、前記状態機械にしたがった前記マルチプレクサ回路が供給するステップと、
前記メモリ・コントローラから第１のクロック信号を、クロック発生器が受信するステップと、
前記第１のクロック信号に基づいて第２のクロック信号を、前記クロック発生器が生成するステップと、
前記第２のクロック信号を前記メモリに前記クロック発生器が供給するステップと、
前記メモリを前記セルフ・リフレッシュ状態にし続けるため、前記第１のクロック信号の停止後に前記第２のクロック信号を、ＰＬＬによって出力し続けるステップと
を含む方法。
【請求項２２】
バッテリのバックアップ機能をイネーブルするための手段を備え、主電源および補助電源から電力を、電源管理回路（ＰＭＳ）が受け取るステップと、
主電源のレベルが所定条件を満たすときは主電源から、主電源のレベルが所定条件を満たさないときは補助電源から、それぞれ前記メモリに電力を、前記電源管理回路から供給するステップと
をさらに備える請求項２１に記載の方法。
【請求項２３】
前記トリガ信号は、あらかじめ決定されたリセット要求のための電力消費のない様々な条件の内のいずれかに応答してアサートされることを特徴とする請求項２１に記載の方法。
【請求項２４】
前記第１の複数のメモリ制御信号に代えて前記第２の複数のメモリ制御信号を前記メモリに供給するステップが、
前記状態機械によって、前記トリガ信号に応答して前記メモリを実行中のメモリ動作を完了させることを可能にする待機状態に入れるステップと、
前記状態機械によって、該待機状態が完了した後のみに前記メモリをプリチャージ状態にするステップと
を含む請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の少なくとも１つの実施形態は、処理システム中の不揮発性メモリを制御することに関し、より詳細には、不揮発性メモリをセルフリフレッシュ状態にすることに関する。
【０００２】
背景技術
本出願は、２００２年８月１５日に出願された「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｔｏ  Ｅｓｔａｂｌｉｓｈ  Ｓａｆｅ  Ｓｔａｔｅ  ｉｎ  ａ  Ｖｏｌａｔｉｌｅ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  ｕｎｄｅｒ  Ｍｕｌｔｉｐｌｅ  Ｈａｒｄｗａｒｅ  ａｎｄ  Ｓｏｆｔｗａｒｅ  Ｍａｌｆｕｎｃｔｉｏｎ  Ｃｏｎｄｉｔｉｏｎｓ」という名称の同時係属米国特許出願番号１０／２１９，３７６の一部継続出願である。同特許出願は、参照により本明細書に組み込む。
【０００３】
現代のコンピュータベースの処理システムはいずれも、何らかの種類のプロセッサ、メモリ、１つまたは複数の入出力（Ｉ／Ｏ）デバイスを含んでいる。そのような処理システムの例は、パーソナル・コンピュータ（ＰＣ）、サーバクラス・コンピュータ、携帯情報端末（ＰＤＡ）などのハンドヘルド・デバイス、ネットワークに接続する各種電気器具である。処理システム中のメモリは、通常、プロセッサによって実行されるデータと命令を記憶する。
【０００４】
こうしたシステムの多くでは、主記憶装置は通例ランダム・アクセス・メモリ（ＲＡＭ）の形態である。すべてではなくとも大半の形態のＲＡＭは、記憶されたデータを保持するために電力を必要とする揮発性であると考えられている。最も一般的な２タイプのＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ）とダイナミックＲＡＭ（ＤＲＡＭ）である。ＳＲＡＭ中のビットはある論理状態に設定することができ、そのビットは別の論理状態に設定するか、または電力が失われるまでその状態を保つので、ＳＲＡＭは静的である。ＳＲＡＭは一般にアクセス時間の点で非常に高速であるが、同時に高価である傾向がある。
【０００５】
ＤＲＡＭは、一般にＳＲＡＭに比べてはるかに安価であり、そのため、大量生産される処理システムの主記憶装置としてＳＲＡＭより好んで使用されることが多い。しかし、ＤＲＡＭは、その状態を維持するために周期的に読み取りおよび書き込みを行わなければならない点で動的である。この読み取り／書き込みのプロセスを「リフレッシュ」という。ＤＲＡＭをリフレッシュしないとその内容が失われる。典型的なＤＲＡＭをリフレッシュするには、周期的にリフレッシュ信号をＤＲＡＭに印加し、同時にＤＲＡＭ中に記憶されたデータを保持するために電力を印加する必要がある。通常は、メモリ・コントローラなどの外部回路によってＤＲＡＭにリフレッシュ信号を供給する。ＤＲＡＭには、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、ＲａｍｂｕｓＤＲＡＭ（ＲＤＲＡＭ）など各種形態がある。
【特許文献１】同時係属米国特許出願番号１０／２１９，３７６
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ある条件下では、通常ＤＲＡＭに印加されるリフレッシュ信号が生成されない場合がある。例えば、処理システムでエラーまたは誤動作が生じた際（例えばシステムが「停止」または「クラッシュ」した際）に行われる可能性があるシステム・リセット中には、通例、リフレッシュ信号が生成されない。しかし、現在のＤＲＡＭは、上記のような条件下でＤＲＡＭをセルフリフレッシュ状態で動作させるセルフリフレッシュ機能を備えており、セルフリフレッシュ状態ではＤＲＡＭは自動的に自己のリフレッシュ信号を生成する。セルフリフレッシュ状態は、記憶データが保持される安全な状態である。
【０００７】
外部のリフレッシュ信号が失われる可能性のある一般的な条件の多くは、電力の喪失にも関連する。そのような条件の例は、その他の点では正常に動作しているコンピュータ・システムの手動実行による電源遮断や、コンピュータ・システムへの電力の予期しない中断または喪失である。ＤＲＡＭをセルフリフレッシュ状態にした場合でも、ＤＲＡＭへの電力が維持されなければＤＲＡＭに記憶されたデータは失われる。そのような条件下ではバッテリなどの補助的な無停止電源からＤＲＡＭに電力を供給することにより、セルフリフレッシュ状態で記憶データを保持することができる。ＤＲＡＭがセルフリフレッシュ状態で消費する電力は通常状態よりもはるかに少ないので、バッテリ電力を保存する助けとなる。
【０００８】
多くの処理システムは、ソフトウェアによって開始される電源遮断またはリセットを行う機能を備えるが、これにはＤＲＡＭをセルフリフレッシュ状態にすることも含まれる。しかし、生じる可能性がある多くのエラー条件はソフトウェアに関連するので、特にデータの喪失を防止することが不可欠であるシステムでは、ＤＲＡＭをセルフリフレッシュ状態にするためにソフトウェアに依存しなければならないことは望ましくない。
【課題を解決するための手段】
【０００９】
本発明は、セルフリフレッシュ機能を有するランダム・アクセス・メモリを制御するメモリ・コントローラと、メモリ・コントローラの外にあり、メモリをセルフリフレッシュ状態にするセルフリフレッシュ回路とを備える装置を含む。
【００１０】
本発明のその他の特徴は、添付図面および以下の詳細な説明から明らかになろう。
【発明を実施するための最良の形態】
【００１１】
本発明を、限定ではなく例として添付図面の図に示す。図中、同様の参照符号は同様の要素を表す。
【００１２】
メモリ・コントローラの外にあり、不揮発性ＤＲＡＭをセルフリフレッシュ状態にする回路について以下で説明する。この説明中、「一実施形態」または「実施形態」という言及は、言及する特徴を本発明の少なくとも１つの実施形態に含める意味であることに留意されたい。さらに、この説明における「一実施形態」または「実施形態」と分けて言及することは、必ずしも同じ実施形態を意味しない。しかし、そのような実施形態はまた、そのような指摘がない限り、また当業者には説明から明らかになる場合を除いて相互に排他的でない。例えば、一実施形態で述べる特徴、構造などは、他の実施形態にも含めることができる。したがって、本発明は、ここに記載する実施形態の各種の組み合わせおよび／または統合を含むことができる。
【００１３】
図１は、ＤＲＡＭをセルフリフレッシュ状態にするために本発明によるセルフリフレッシュ管理回路を実施することができる処理システムのハイレベル図である。図のように、処理システムは、バス・システム１４で相互に結合された、１つまたは複数のプロセッサ１１、メモリ１２、メモリ・コントローラ１３を含む。バス・システム１４は、１つまたは複数のバス・コントローラ、ブリッジ、および／またはアダプタと併せて、１つまたは複数のバス（例えばシステム・バスや１つまたは複数のＩ／Ｏバスまたは拡張バス）を代表している。この処理システムは、バス・システム１４を通じてプロセッサ１１とメモリ１２に結合された１つまたは複数のＩ／Ｏデバイス１５も含む。
【００１４】
この説明では、メモリ１２は、セルフリフレッシュ機能を持つＤＲＡＭの形態であると想定する。ただし、処理システムは、読み取り専用メモリ（ＲＯＭ）、フラッシュ・メモリ、大容量記憶装置（例えばディスク）など他タイプのメモリも含むことができることは理解されよう。処理システムは、メモリ１２とメモリ・コントローラ１３に結合されたセルフリフレッシュ管理回路（ＳＲＭＣ）１６、メモリ１２に結合された電源管理及び電源選択回路（ＰＭＳ）１７、主電源１８並びにバックアップ電源（例えばバッテリ）１９も含む。
【００１５】
ＤＲＡＭをセルフリフレッシュ状態にすることが必要となる多くのエラー条件は、ソフトウエアに関連する。したがって、純粋に決定論的であり、かつ、ソフトウェアのようにクラッシュまたは停止する可能性がない純粋にハードウェアに基づく解決法を使用してＤＲＡＭをセルフリフレッシュ状態にする機能を備えることが望ましい。さらに、その解決法は、メモリ・バス速度で動作することができ、メモリ・コントローラとＤＲＡＭの間で、それらの外に配置されることが望ましい。
【００１６】
下記でさらに述べるように、ＳＲＭＣ１６はそのような解決法である。ＳＲＭＣ１６は、電源遮断によるリセット条件を含む各種の異なる条件下でメモリ１２をセルフリフレッシュ状態にすることができる。ＳＲＭＣ１６はＰＭＳ１７と併せて使用する。ＰＭＳ１７は、通常は主電源１８からの電力をメモリ１２に送るが、主電源１８の電圧レベルが所定レベル以下になるとバックアップ電源１９からメモリ１２への電力を供給させる。
【００１７】
ＳＲＭＣ１６とＰＭＳ１７は、記憶データの喪失を防ぐことが不可欠でかつソフトウェアのみに依存してＤＲＡＭをセルフリフレッシュ状態にすることが望ましくない処理システムで特に有用である。そのような処理システムの一例はファイル・サーバである。ファイル・サーバとは、１つまたは複数のクライアントのために記憶装置のセット（例えばディスク・ドライブ）に共有ファイルを格納し、管理する、ネットワークに接続された処理システムである。ファイル・サーバは、しばしば、バックアップ・データやその他の重要データを企業レベルで格納するために使用される。ファイル・サーバ内のディスクは、通常、独立した／安価なディスクの冗長配列（ＲＡＩＤ：redundant array of independent/inexpensive disks）の１つまたは複数のグループとして編成される。ファイル・サーバを使用できる構成の１つは、ネットワーク・アタッチド・ストレージ（ＮＡＳ）の構成である。ＮＡＳ構成では、ファイル・サーバは、ローカル・エリア・ネットワーク（ＬＡＮ）や企業イントラネットなどのネットワークに接続する機器の形態で実装することができる。そのようなデバイスを「ファイラー」と称することがある。そのような機器の一例は、カリフォルニア州サニーベールのＮｅｔｗｏｒｋ  Ａｐｐｌｉａｎｃｅ社製のファイラー製品である。
【００１８】
ＳＲＭＣ１６およびＰＭＳ１７を有利に実装することができる別のタイプの処理システムは、ストレージ・エリア・ネットワーク（ＳＡＮ）記憶装置である。ＳＡＮは、相互に接続された、共有される記憶装置からなる高効率（高速度）ネットワークである。ＳＡＮ記憶装置もまたＮｅｔｗｏｒｋ  Ａｐｐｌｉａｎｃｅ社製である。ＮＡＳとＳＡＮの違いの１つは、ＳＡＮでは、記憶機器がリモート・ホストに記憶データへのブロックレベルのアクセス権を与えるのに対して、ＮＡＳ構成では、通常はファイル・サーバが記憶データへのファイル・レベルのアクセス権のみをクライアントに提供する点である。
【００１９】
図２に、ＳＲＭＣ１６およびＰＭＳ１７を有利に含めることができるネットワーク・ファイル・サーバを含むＮＡＳ環境を示す。ここではこれらの回路についてファイル・サーバの状況で説明するが、同じ手法は、ＳＡＮ記憶装置で、あるいは基本的にセルフリフレッシュ機能を有する不揮発性ＲＡＭの一形態を使用する任意の他の処理システムで有利に実装できることに留意されたい。図２で、ファイル・サーバ・ヘッド１は、いくつかのディスク・ドライブのセット２にループ構成で接続されている。各ディスク・ドライブのセット２は、ヘッド１の制御下でＲＡＩＤグループとして稼動する複数のディスク・ドライブ２３を含む。ファイル・サーバ・ヘッド１は、複数のクライアント２４に、ディスク・ドライブ２３に格納された共有ファイルへのアクセス権を与える。
【００２０】
この文脈で、「ヘッド」とは、大容量記憶装置（ディスク・ドライブなど）へのアクセスを制御するために使用される「インテリジェンス」を組み込んだすべてのハードウェア（すなわち電子機器と支援インフラストラクチャ）、ファームウェアおよび／またはソフトウェアであり、大容量記憶装置自体は含まない。この文脈における「ヘッド」は、ディスクに物理的にデータを読み書きするのに使用される磁気ヘッドまたは光学ヘッドと同じではなく、また混同すべきでない。
【００２１】
そのようなシステムはバックアップ・データやその他の重要データの記憶に使用されることが多いので、ファイル・サーバ環境では、しばしば、予期せぬ電力の喪失または低下によるデータ喪失を防ぐことが不可欠とされる。したがって、上記の理由から、結果的にシステムの電源遮断につながるリセット条件が発生した場合に、そのようなシステムのＤＲＡＭをセルフリフレッシュ状態にする機能を備えることが望ましい。さらに、しばしばそのようなリセットを発生させる誤動作はソフトウェアに関連することが多いので、そのような機能をソフトウェアに依存しない形で提供することが望ましい。したがって、ＳＲＭＣ１６とＰＭＳ１７（図１）は、ファイル・サーバ・ヘッド１に含めることが有利である。
【００２２】
図３に、特定の実施形態によるファイル・サーバ・ヘッド１をより詳細に示す。図に示すように、ヘッド１は、プロセッサ４１、メモリ４２、プロセッサ４１をメモリ４２に接続するチップセット４３を含む。上述の説明と同様に、メモリ４２は、セルフリフレッシュ機能を持つ何らかの形態のＤＲＡＭであると想定する。また、チップセット４３はペリフェラル・バス４４をプロセッサ４１やメモリ４２に接続する。ペリフェラル・バス４４には、１つまたは複数のネットワーク・アダプタ４５、１つまたは複数のストレージ・アダプタ４６、１つまたは複数の種々のＩ／Ｏコンポーネント４７が接続され、実施形態によっては１つまたは複数の他の周辺コンポーネント４８も接続される。ヘッド１は、主電源１８とバックアップ電源（バッテリなど）１９も含む。主電源１８は、その電力を処理システムに印加される外部のＡＣ電源から受け取る。
【００２３】
プロセッサ４１は、ヘッド１の中央演算処理装置（ＣＰＵ）であり、１つまたは複数のプログラム可能な汎用または専用マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、プログラム可能コントローラ、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能ロジック・デバイス（ＰＬＤ）など、あるいはそのようなデバイスの組み合わせであるか、またはそれらを含むことができる。
【００２４】
図の実施形態では、チップセット４３は、メモリ（ＤＲＡＭ）４２への読み取りおよび書き込みのトランザクションを行い、管理するメモリ・コントローラ４９を含む。他の実施形態では、メモリ・コントローラ４９は、チップセット４３の外に、例えばプロセッサ４１の内部や、または完全に別のコンポーネントとして存在することができる。
【００２５】
ヘッド１はメモリ４２とメモリ・コントローラ４９に結合されたＳＲＭＣ１６も含む。さらに、ヘッド１はメモリ４２、主電源１８、バックアップ電源１９に結合されたＰＭＳ１７を含む。
【００２６】
チップセット４３は、メモリ・コントローラ４９に加えて、１つまたは複数のバス・コントローラ、ブリッジおよび／またはアダプタを含むことができる。ペリフェラル・バス４４は、例えば、ＰＣＩ（Peripheral Component Interconnect）バス、ＨｙｐｅｒＴｒａｎｓｐｏｒｔまたは業界標準アーキテクチャ（ＩＳＡ）バス、ＳＣＳＩ（スモール・コンピュータ・システム・インタフェース）バス、ユニバーサル・シリアル・バス（ＵＳＢ）、またはＩＥＥＥ（Institute of Electrical and Electronics Engineers）標準１３９４バス（「ファイアワイヤ」とも称する）でよい。各ネットワーク・アダプタ４５は、ヘッド１に、図２のクライアント２４などのリモート・デバイスと通信する能力を提供する。これは例えばイーサネット（登録商標）・アダプタである。各ストレージ・アダプタ４６は、ヘッド１が各種シェルフ２の外部ディスク・ドライブ２３にアクセスすることを可能にする。これは例えばＦｉｂｒｅ  Ｃｈａｎｎｅｌアダプタである。
【００２７】
図４〜７に、本発明の特定実施形態によるＳＲＭＣ１６とＰＭＳ１７をさらに示す。図４〜７では、１つまたは複数のデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）の形態でＤＲＡＭ４２を実装している。ＳＲＭＣ１６は、システム・リセット信号ＴＲＩＧＧＥＲと、ＤＲＡＭ４２を制御するための複数のメモリ制御信号とをメモリ・コントローラ４９から受け取る。この制御信号には、行アドレス・ストローブ（ＲＡＳ＿Ｎ）信号や、列アドレス・ストローブ（ＣＡＳ＿Ｎ）信号、書き込みイネーブル（ＷＥ＿Ｎ）信号、チップ選択（ＣＳ＿Ｎ）信号が含まれ、これらの信号はすべてアクティブ・ローの信号である。ＳＲＭＣ１６は、これらと同じ指示と機能を有する対応する信号をＤＲＡＭ４２に出力する。メモリ構成に応じて、信号ＲＡＳ＿Ｎ、ＣＡＳ＿Ｎ、ＷＥ＿Ｎ、ＣＳ＿Ｎは、実際には、それぞれ複数の信号から構成してもよいが、説明を簡略にするために各信号１つのみを示している。
【００２８】
通常の動作状況では、ＳＲＭＣ１６は、単に、それらのメモリ制御信号をメモリ・コントローラ４９からＤＲＡＭ４２に渡す。しかしＤＲＡＭ４２をセルフリフレッシュ状態にすることが必要なときには、ＳＲＭＣ１６は、これらのメモリ制御信号を内部で生成してＤＲＡＭ４２に提供し、同時にメモリ・コントローラ４９からのそれらに対応する信号はＤＲＡＭ４２に渡されないようにする。
【００２９】
ＰＭＳ１７は、バッテリのバックアップ機能のためにＰＭＳ１７を選択的にイネーブルにするために使用される１ビットの汎用Ｉ／Ｏ信号ＧＰＩＯ０をメモリ・コントローラ４２から受け取る。また、ＰＭＳ１７は内部の主電源１８とバックアップ電源１９から電力ＶＤＤを受け取り、それらの電源の１つ（通常は主電源１８）からの電力をＤＲＡＭ４２に供給する。
【００３０】
図５に、本発明の一実施形態によるＰＭＳ１７をより詳細に示す。図に示すように、ＰＭＳ１７は、２入力マルチプレクサ（電界効果トランジスタ（ＦＥＴ）スイッチでよい）６１、比較器６４、ラッチ６５、高効率ＤＣ／ＤＣコンバータ６２、高電力ＤＣ／ＤＣコンバータ６３を含む。高効率ＤＣ／ＤＣコンバータ６２は、バックアップ電源（例えばバッテリ）１９から電力を受け取り、その電力を調整した形態のＶＤＤ＿ＤＩＭＭ＿ＢＡＴＴとしてマルチプレクサ６１の入力の１つに出力する。マルチプレクサ６１のもう一方の入力は、高電力ＤＣ／ＤＣコンバータ６３の出力ＶＤＤ’であり、コンバータ６３は、入力として主電源１８から調整された電力ＶＤＤを受け取る。高電力ＤＣ／ＤＣコンバータ６３の出力は、比較器６４の入力の１つにも供給される。
【００３１】
基準となる電圧Ｖｒｅｆは、比較器６４のもう一方の入力に印加され、ＤＲＡＭ４２の低電力閾値に相当する。マルチプレクサ６１の入力ＶＤＤ’が基準電圧Ｖｒｅｆを上回っている間は、マルチプレクサ６１のＶＤＤ’の入力がＤＲＡＭ４２への電源として選択された状態を保つ。ＶＤＤ’が基準電圧Ｖｒｅｆを下回ると、比較器６４は、マルチプレクサ６１に選択信号を出力して、マルチプレクサ６１にバッテリの電力入力をＤＲＡＭ４２の電源として選択させる。したがって、ＶＤＤ’（主電源１８の電圧を表す）が所定レベル（Ｖｒｅｆ）を下回ると、ＰＭＳ１７は、ＤＲＡＭ４２への電力を主電源１８ではなくバックアップ電源１９から供給する。
【００３２】
ＰＭＳ１７は、ラッチ６５も含み、これは、メモリ・コントローラ４９からＧＰＩＯ０信号を受け取り、高効率ＤＣ／ＤＣコンバータ６２にＭＥＭ＿ＶＡＬＩＤビットを出力して、バッテリのバックアップ機能をイネーブルまたはディセーブルする。バッテリのバックアップ機能は、一般に、ＤＲＡＭ４２に記憶されたデータが有効であるときにイネーブルになる。その場合はＧＰＩＯ０がアサートされ、ラッチ６５によってラッチされ、ＭＥＭ＿ＶＡＬＩＤとして高効率ＤＣ／ＤＣコンバータ６２に出力されて、バッテリのバックアップ機能をイネーブルにする。
【００３３】
図６に、本発明の一実施形態によるＳＲＭＣ１６をより詳細に示す。図に示すように、ＳＲＭＣ１６は、電源障害状態機械（ＰＦＳＭ）７１、４つの２入力マルチプレクサ７２、ラッチ７３、位相ロック・ループ（ＰＬＬ）クロック・バッファ７４を含む。マルチプレクサ７２はＦＥＴで製造することができ、伝播遅延が非常に小さいことが好ましい。各マルチプレクサ７２は、例えば、Ｑｕａｌｉｔｙ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ社のＱＳ３２１７マルチプレクサである。ＰＦＳＭ７１は、ＤＲＡＭ４２を制御するためのメモリ・コントローラ４９からの信号ＲＡＳ＿Ｎ、ＣＡＳ＿Ｎ、ＷＥ＿Ｎ、ＣＳ＿Ｎに対応する信号を生成するように動作する。
【００３４】
各マルチプレクサ７２は、その入力の１つでメモリ・コントローラ４９からのメモリ制御信号の１つを受け、かつそのメモリ制御信号に対応するＰＦＳＭ７１からの信号を受け取る。ＰＦＳＭ７１は、各マルチプレクサ７２に選択信号ＳＥＬを出力して、メモリ・コントローラ４９からのメモリ制御信号か、ＰＦＳＭ７１が内部で生成するメモリ制御信号かのいずれかをマルチプレクサに選択させてＤＲＡＭ４２に供給させる。ＳＥＬ＝１のとき、マルチプレクサ７２は、メモリ・コントローラ４９からのメモリ制御信号をＤＲＡＭ４２に接続する。ＳＥＬ＝０のとき、マルチプレクサ７２は、ＰＦＳＭ７１からのメモリ制御信号をＤＲＡＭ４２に接続する。参照を容易にするために、メモリ・コントローラ４９から発するメモリ制御信号は、プレフィクス「ＭＣ」を付し、すなわちＭＣ．ＲＡＳ＿Ｎ、ＭＣ．ＣＡＳ＿Ｎ、ＭＣ．ＷＥ＿Ｎ、ＭＣ．ＣＳ＿Ｎとし、一方ＰＦＳＭ７１で生成されるそれに相当するメモリ制御信号はプレフィクス「ＰＦ」を付し、すなわちＰＦ．ＲＡＳ＿Ｎ、ＰＦ．ＣＡＳ＿Ｎ、ＰＦ．ＷＥ＿Ｎ、ＰＦ．ＣＳ＿Ｎとし、マルチプレクサ７２から出力されるそれに相当するメモリ制御信号は、プレフィクス「ＭＥＭ」を付し、すなわちＭＥＭ．ＲＡＳ＿Ｎ、ＭＥＭ．ＣＡＳ＿Ｎ、ＭＥＭ．ＷＥ＿Ｎ、ＭＥＭ．ＣＳ＿Ｎとする。
【００３５】
下記でさらに説明するように、ＰＦＳＭ７１は、いくつかの入力論理信号に応答して動作する。この信号には、ＷＡＫＥＵＰ信号、ＴＲＩＧＧＥＲ信号、パワー・オン・リセット回路（ＰＯＲＣ）信号、メモリ・コントローラ４９からのＭＣ．ＣＳ＿Ｎ信号が含まれる。ＭＣ．ＣＳ＿Ｎ信号は、ＤＲＡＭ４２がアイドル状態かどうかをＰＦＳＭ７１が判定するのに使用される。ＷＡＫＥＵＰ、ＴＲＩＧＧＥＲ、ＰＯＲＣ信号の使用については、図７を参照して下記で説明する。
【００３６】
ＤＲＡＭ４２は正常に機能するためにクロック信号ＭＥＭ．ＣＬＫを必要とする。ＰＬＬクロック・バッファ７４は、メモリ・コントローラ４９からのクロックＣＬＫＯＵＴを４２へのＭＥＭ．ＣＬＫ信号を一致させる。メモリ・コントローラの多くは、リセットが発生すると直ちにクロックを停止させる。システムの電源遮断またはリセットが発生した場合は、ＰＦＳＭ７１がＤＲＡＭ４２をセルフリフレッシュ状態にすることができるように、そのクロックを一定数のサイクル（例えば約２０サイクル。使用するＤＲＡＭのタイプによって異なる）に保持することが必要となる。ＰＬＬクロック・バッファ７４は、メモリ・コントローラ４９からのクロックＣＬＫＯＵＴが停止した後に、ＭＥＭ．ＣＬＫが多くのサイクル（例えば数百サイクル）にわたって動作できるようにする。ＤＲＡＭ４２は、ラッチ７３からのクロック・イネーブル信号ＭＥＭ．ＣＫＥによってイネーブルされ、ラッチ７３の入力は、ＰＦＳＭ７１から出力されるクロック・イネーブル信号ＰＦ．ＣＫＥである。
【００３７】
図７は、本発明の一実施形態によるＰＦＳＭ７１の動作を説明する状態図である。ＰＦＳＭ７１は、従来の逐次論理素子で構築することができる状態機械である。図に示すように、ＰＦＳＭ７１は、ＩＤＬＥ、ＡＲＭ、ＷＡＴ４ＣＳ、ＴＲＣＤＬＹ、ＰＲＥＣＨＲＧ、ＴＲＰＤＬＹ、ＳＲＥＦの７つの状態を有する。ＰＦＳＭ７１は、通常、ＤＲＡＭ４２がセルフリフレッシュ状態にあるか、システムの初期化が完了する前にＰＯＲＣがアサートされたときにはＩＤＬＥ状態にある。ＰＯＲＣ信号は、システムの電源投入時にのみアサートされ、ＰＦＳＭ７１を非同期にリセットするために使用される。ＰＯＲＣがアサートされると、ＰＦＳＭ７１は強制的にＩＤＬＥ状態に入れられる。ＩＤＬＥ状態は、ＳＥＬ＝０、ＰＦ．ＣＫＥ＝０、ＰＦ．｛ＲＡＳ＿Ｎ，ＣＡＳ＿Ｎ，ＷＥ＿Ｎ，ＣＳ＿Ｎ｝＝１１１１によって特徴付けられる。ＩＤＬＥ状態にあるとき、ＰＦＳＭ７１はＷＡＫＥＵＰがアサートされるまでその状態にある。ＷＡＫＥＵＰは、ＤＲＡＭ４２をセルフリフレッシュ状態からウェークアップさせるためにシステムによって発される信号である。所与の実装では、電源オン状態でこの信号を予測することが可能である場合には、ＷＡＫＥＵＰをメモリ・コントローラから出力されるクロック・イネーブル信号とすることができる。そうでない場合、ＷＡＫＥＵＰは、ＤＲＡＭをセルフリフレッシュ状態から解除することが必要なときにソフトウェアが書き込むことができる外部のレジスタ回路から発することができる。
【００３８】
ＷＡＫＥＵＰがアサートされると、ＰＦＳＭ７１は、ＩＤＬＥ状態からＡＲＭ状態に遷移し、その状態でＰＦＳＭ７１はトリガ・イベントを待つ。ＡＲＭ状態は、ＳＥＬ＝１、ＰＦ．ＣＫＥ＝１、ＰＦ．｛ＲＡＳ＿Ｎ，ＣＡＳ＿Ｎ，ＷＥ＿Ｎ，ＣＳ＿Ｎ｝＝１１１１によって特徴付けられる。ＡＲＭ状態にあるとき、ＰＦＳＭ７１は、ＴＲＩＧＧＥＲがアサートされるまでその状態で待つ。通例、ＴＲＩＧＧＥＲは、リセット「ｆｕｎｎｅｌ」、すなわちリセットを発生させるべき複数の条件の論理和の出力である。
【００３９】
ＴＲＩＧＧＥＲがアサートされると、ＰＦＳＭ７１はＷＡＩＴ４ＣＳ状態に遷移する。ＷＡＩＴ４ＣＳは、ＤＲＡＭ４２が非アクティブになるのをＰＦＳＭ７１が待つ状態である（ＴＲＩＧＧＥＲがアサートされた後にメモリ・オペレーションは進行を続けることが可能である）。ＷＡＩＴ４ＣＳ状態は、ＳＥＬ＝１、ＰＦ．ＣＫＥ＝１、ＰＦ．｛ＲＡＳ＿Ｎ，ＣＡＳ＿Ｎ，ＷＥ＿Ｎ，ＣＳ＿Ｎ｝＝１１１１によって特徴付けられる。ＷＡＩＴ４ＣＳ状態にあるとき、ＰＦＳＭ７１は、ＭＣ．ＣＳ＿Ｎがデアサートされる（１に等しい）までその状態にあり、ＭＣ．ＣＳ＿ＮがデアサートされるとＰＦＳＭ７１はＴＲＣＤＬＹ状態に遷移する。
【００４０】
ＴＲＣＤＬＹ状態に入ると、ＰＦＳＭ７１は、所定数ｔＲＣのＰＦ．ＣＬＫサイクルだけ待機し、その後ＰＦＳＭ７１はＰＲＥＣＨＲＧ（プリチャージ）状態に遷移する。ｔＲＣの値は、ＤＲＡＭ４２の速度によって異なる。例えばＤＤＲ２６６  ＳＤＲＡＭの場合は、ｔＲＣの値は６５ｎｓ（９サイクル）が適切であると考えられる。ＴＲＣＤＬＹ状態は、ＳＥＬ＝０、ＰＦ．ＣＫＥ＝１、ＰＦ．｛ＲＡＳ＿Ｎ，ＣＡＳ＿Ｎ，ＷＥ＿Ｎ，ＣＳ＿Ｎ｝＝１１１１によって特徴付けられる。
【００４１】
ＰＲＥＣＨＲＧ状態にあるとき、ＰＦＳＭ７１は、ＰＲＥ＿ＣＨＡＲＧＥ  ＡＬＬコマンドをＤＲＡＭ４２に送る（ｄｒｉｖｅ  ｏｕｔ）。ＰＲＥＣＨＲＧ状態は、ＳＥＬ＝０、ＰＦ．ＣＫＥ＝１、ＰＦ．｛ＲＡＳ＿Ｎ，ＣＡＳ＿Ｎ，ＷＥ＿Ｎ，ＣＳ＿Ｎ｝＝０１００によって特徴付けられる。ＰＲＥＣＨＲＧ状態から、ＰＦＳＭ７１は（ＰＯＲＣがアサートされなければ）通常直接ＴＲＰＤＬＹ状態に遷移する。
【００４２】
ＴＲＰＤＬＹ状態は、ＳＥＬ＝０、ＰＦ．ＣＫＥ＝１、ＰＦ．｛ＲＡＳ＿Ｎ，ＣＡＳ＿Ｎ，ＷＥ＿Ｎ，ＣＳ＿Ｎ｝＝１１１１によって特徴付けられる。ＴＲＰＤＬＹ状態に入ると、ＰＦＳＭ７１は、所定数ｔＲＰのＰＦ．ＣＬＫサイクルだけ待ち、その後ＰＦＳＭ７１はＳＲＥＦ（セルフリフレッシュ）状態に遷移する。ｔＲＰの値は、ＤＲＡＭ４２の速度によって異なる。例えば、ＤＤＲ２２６  ＳＤＲＡＭの場合、ｔＲＰの値は２０ｎｓ（３サイクル）が適切であると考えられる。
【００４３】
ＳＲＥＦ状態にあるとき、ＰＦＳＭ７１は、ＳＥＬＦ  ＲＥＦＲＥＳＨコマンドをＤＲＡＭ４２に送る。この状態は、ＳＥＬ＝０、ＰＦ．ＣＫＥ＝０、ＰＦ．｛ＲＡＳ＿Ｎ，ＣＡＳ＿Ｎ，ＷＥ＿Ｎ，ＣＳ＿Ｎ｝＝００１０によって特徴付けられる。ＳＲＥＦ状態から、ＰＦＳＭ７１は直接ＩＤＬＥ状態に遷移する。
【００４４】
上述の実施形態におけるＳＲＭＣ１６は、ＤＲＡＭをセルフリフレッシュ状態にするための純粋にハードウェアに基づく解決法であり、上述の理由から有利であることが理解されよう。ただし、これほど有利ではないがなお有益でありうるこの他の手法も使用できることに留意されたい。例えば、代替実施形態では、ＳＲＭＣ１６をプログラム可能なマイクロコントローラまたは機能固有のプロセッサの形態とすることができるが、そのような解決法は、上述の実施形態に比べて複雑で、より障害が発生しやすくなる傾向がある。別の代替実施形態として、オペレーティング・システムと分離した（かつ依存しない）ソフトウェアに実装し、オペレーティング・システムの停止やクラッシュに対して脆弱でなければ、ソフトウェアベースのＳＲＭＣも有用である可能性がある。
【００４５】
以上、メモリ・コントローラの外にあり、不揮発性ＤＲＡＭをセルフリフレッシュ状態にする回路について説明した。本発明について特定の例示的実施形態を参照して説明したが、本発明はここに記載する実施形態に限定されず、特許請求の範囲内の修正および変更を加えて実施できることは理解されよう。したがって、本明細書および図面は、限定的な意味ではなく例証的な意味で解釈されたい。
【図面の簡単な説明】
【００４６】
【図１】本発明によるセルフリフレッシュ管理回路（ＳＲＭＣ）を含む処理システムの図である。
【図２】ＳＲＭＣを含めることが可能なネットワーク・ストレージ・サーバを含むネットワーク接続ストレージ（ＮＡＳ）環境の図である。
【図３】ＳＲＭＣが実装されるストレージ・サーバ・ヘッドの図である。
【図４】本発明の第２の実施形態によるＳＲＭＣの図である。
【図５】電源管理及び電源選択回路（ＰＭＳ）のより詳細な図である。
【図６】電源障害状態機械（ＰＦＳＭ）のより詳細な図である。
【図７】ＰＦＳＭのオペレーションを示す状態図である。
【符号の説明】
【００４７】
１  ファイル・サーバ・ヘッド、  ２  ディスク・ドライブ、  １１、４１  プロセッサ、  １２、４２  メモリ（ＤＲＡＭ）、  １３、４９  メモリ・コントローラ、  １４  バス・システム、  １５  Ｉ／Ｏデバイス、  １６  ＳＲＭＣ、  １７  ＰＭＳ、  １８  主電源、  １９  バックアップ電源、  ２３  ディスク・ドライブ、  ２４  クライアント、  ４３  チップセット、  ４４  ペリフェラル・バス、  ４５  ネットワーク・アダプタ、  ４６  ストレージ・アダプタ、  ４７  Ｉ／Ｏコンポーネント、  ４８  周辺コンポーネント、  ６１、７２  マルチプレクサ、  ６２  高効率ＤＣ／ＤＣコンバータ、  ６３  高電力ＤＣ／ＤＣコンバータ、  ６４  比較器、  ６５、７３  ラッチ、  ７１  ＰＦＳＭ、  ７４  ＰＬＬクロック・バッファ。
【図１】
0004511140.tif 000002
【図２】
0004511140.tif 000003
【図３】
0004511140.tif 000004
【図４】
0004511140.tif 000005
【図５】
0004511140.tif 000006
【図６】
0004511140.tif 000007
【図７】
0004511140.tif 000008