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