(57)【要約】【課題】  ハードディスクやフラッシュメモリが存在しないシステムにおいても適用可能なメモリ管理技術を提供する。【解決手段】  複数のメモリバンクから構成される主記憶装置を有し、前記主記憶装置上のメモリ領域の割り当ておよび解放を管理する計算機システムにおいて、サスペンド時に、メモリ領域の割り当ておよび解放の状況に基づいて特定のメモリバンクにデータをコピーして集め、特定のメモリに該データが入りきらない場合は、使用頻度の低いページを圧縮して格納し、そのメモリバンク以外のメモリバンクに対してその節電のための制御を行うメモリ節電手段を具備することを特徴とする計算機システム。【選択図】      図３
2009258925.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリバンクから構成される主記憶装置を有し、前記主記憶装置上のメモリ領域の割り当ておよび解放を管理する計算機システムにおいて、
サスペンド時に、メモリ領域の割り当ておよび解放の状況に基づいて特定のメモリバンクにデータをコピーして集め、特定のメモリに該データが入りきらない場合は、使用頻度の低いページを圧縮して格納し、そのメモリバンク以外のメモリバンクに対してその節電のための制御を行うメモリ節電手段を具備することを特徴とする計算機システム。
【請求項２】
前記コピー後にページテーブルをコピー先に書き換え、前記圧縮した場合は圧縮フラグを格納することを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記レジューム時に圧縮したページにアクセスがあった場合は展開することを特徴とする請求項１に記載の計算機システム。
【請求項４】
前記圧縮されたページが存在しＣＰＵがＩＤＬＥ状態になった場合もデータを展開することを特徴とする請求項３に記載の計算機システム。
【請求項５】
前記圧縮しても格納できなかった場合はコピーデータを戻し、すべてのメモリバンクに給電することを特徴とする請求項１に記載の計算機システム。
【請求項６】
複数のメモリバンクから構成される主記憶装置を有し、データに対する前記主記憶装置上のメモリ領域の割り当ておよび解放を管理する計算機システムにおけるメモリ管理方法において、
サスペンド時に、前記データに対する前記主記憶上のメモリ領域の割り当ておよび解放の状況に基づいて特定のメモリバンクにデータをコピーして集め、特定のメモリに該データが入りきらない場合は、使用頻度の低いページを圧縮して格納し、そのメモリバンク以外のメモリバンクに対してその節電のための制御を行うことを特徴とするメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムに係わり特に計算機システムのメモリ管理方法に関する。
【背景技術】
【０００２】
一般に、計算機システムでは、実行中のプログラムおよびそのプログラムが直接読み書きするデータを格納する手段として主記憶と呼ばれる記憶装置が利用されている。この記憶装置は、通常、電源を切ると記憶内容が消えてしまう揮発性の半導体メモリ素子を利用して構成されている。
【０００３】
従来の計算機システムにおいては、主記憶を構成する全ての半導体メモリが同一の電源線に接続されており、計算機システムを一旦パワーオンすると、その後は計算機システムがパワーオフされるまで全ての半導体メモリに電源が供給され続ける。
【０００４】
このような主記憶に対する電源管理の手法は、主記憶装置の消費電力が計算機システム全体の消費電力と比較して充分小さければ問題とならない。ところが、近年、ＰＤＡやノート型ＰＣ等のバッテリ駆動が必要とされる携帯情報端末においては、二次記憶装置を磁気ディスクからフラッシュメモリに置き換えたり、表示装置をＣＲＴから液晶ディスプレイに換えるなどの方法によって計算機システムの構成要素の低消費電力化が進められ、主記憶装置の消費電力が無視できなくなっている。
【０００５】
主記憶装置の低消費電力化のためには、メモリ素子を一般的に使われているＤＲＡＭからＳＲＡＭなどに置き換えて記憶内容保持のための消費電力を低減させる方法もあるが、ＳＲＡＭなどの素子はＤＲＡＭと比べて高価であるとともに容量が小さく、代替手段として不適切な場合も多い。したがって、ＤＲＡＭなどの一般的なメモリ素子を使ったままで低消費電力化を行う手法が望まれている。
【０００６】
これを実現するための１つの方式として、メモリカードを構成する複数のＤＲＡＭ素子の中で実際にデータが書き込まれるＤＲＡＭ素子をハードウェア的に検出し、そのＤＲＡＭ素子にのみ電源を供給し、他のＤＲＡＭ素子への電源供給を遮断するという技術が開示されている。
【０００７】
従来、システムが省電力の為にスリープ（サスペンド）する場合は、メモリを構成する全てのＤＩＭＭ（ＤｕａｌＩｎ−Ｌｉｎｅ Ｍｅｍｏｒｙ Ｍｏｄｕｌｅ）を一括してセルフ・リフレッシュ・モードにすることにより、ワーキング状態においてＩ／Ｏデバイス及びＣＰＵ単位での省電力の制御を行うようにしていた。
【０００８】
更に、特許文献１に記載のセルフ・リフレッシュ制御装置においては、複数のバンクからなるメモリを複数のページに分割し、各ページ毎に有効か未使用かを管理する管理手段と、有効なページを持たないバンクを抽出し、抽出されたバンクを使用不可に設定する制御手段と、設定されたバンクをセルフ・リフレッシュするリフレッシュ手段とを設けているとある。
【０００９】
一方、特許文献２に記載の技術では、サスペンド時にコピーできない領域をハードディスクやフラッシュメモリに書き出している。オーソドックスな方法ではあるが、しかしながらハードディスクやフラッシュメモリが存在しないシステムにおいては適用可能でなかった。
【特許文献１】特開２００１−１０１０６７号公報
【特許文献２】特開２００６−３４６２５４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、ハードディスクやフラッシュメモリが存在しないシステムにおいても適用可能なメモリ管理技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の計算機システムは、複数のメモリバンクから構成される主記憶装置を有し、前記主記憶装置上のメモリ領域の割り当ておよび解放を管理する計算機システムにおいて、サスペンド時に、メモリ領域の割り当ておよび解放の状況に基づいて特定のメモリバンクにデータをコピーして集め、特定のメモリに該データが入りきらない場合は、使用頻度の低いページを圧縮して格納し、そのメモリバンク以外のメモリバンクに対してその節電のための制御を行うメモリ節電手段を具備することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ハードディスクやフラッシュメモリが存在しないシステムにおいても適用可能なメモリ管理技術が得られる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明による実施形態を図１乃至図５を参照して説明する。
図１には、本発明の実施形態に係る計算機システムの主記憶装置周辺のハードウェア構成が示されている。この計算機システムは、例えばＰＤＡやノート型ＰＣのようにバッテリ駆動が可能な携帯情報端末を実現するためのものであり、またデジタル家電に組み込まれたシステムでもよく、図示のように、ＣＰＵ１１、システムコントローラ１２、メモリバンク１３〜１６、電源回路１７、メモリ電源切り替えスイッチ回路１８、ディスク装置１９、および各種Ｉ／Ｏ装置２０，２１を備えている。ＣＰＵ１１は、この計算機システム全体の制御およびオペレーティングシステムやアプリケーションプログラムを実行するマイクロプロセッサであり、ＣＰＵローカルバス３１を介してシステムコントローラ１２に接続されている。ＣＰＵローカルバス３１は、ＣＰＵ１１を構成するマイクロプロセッサの入出力ピンに直接繋がる信号群である。ここには、データバス、アドレスバス、および各種ステータス信号線などが含まれている。
【００１４】
システムコントローラ１２は、ＣＰＵローカルバス３１とシステムバス３２との間に接続されており、ＣＰＵ１１からの要求に応じてシステム内の全てのメモリおよびＩ／Ｏデバイスを制御する。このシステムコントローラ１２は、ゲートアレイによって構成された１個のＬＳＩによって実現されており、その中にはシステムメモリ１３および増設メモリ４１，４２のＤＲＡＭを制御するためのメモリ制御ロジックが組み込まれている。さらに、システムコントローラ１２には、ＣＰＵ１１によってリード／ライト可能な電源供給対象バンク指定レジスタ１２１が設けられている。この電源供給対象バンク指定レジスタ１２１には、４つのメモリバンク１３〜１６それぞれに対して電源を供給するか否かを指定する電源制御情報がＣＰＵ１１によって書き込まれる。
【００１５】
４つのメモリバンク１３〜１６はこの計算機システムの主記憶を構成するものであり、これらメモリバンク１３〜１６から構成される主記憶上には、オペレーティングシステム、実行対象のアプリケーションプログラム、およびそれらプログラムによって直接読み書きされる各種処理データなどが格納される。
【００１６】
４つのメモリバンク１３〜１６は互いに独立してアクセス可能な例えば３２ビットのメモリデバイスであり、それぞれ１チップ以上のＤＲＡＭから構成されている。メモリバンク１３〜１６の各々のデータ入出力端子はＣＰＵローカルバス３１の３２ビットデータバスに接続され、またアドレス入力端子はメモリアドレスバス３３に、制御信号端子はメモリ制御信号線３４に接続されているメモリアドレスバス３３はＤＲＡＭ専用のアドレスバスであり、このメモリアドレスバス３３上にはＤＲＡＭの物理アドレス（ロウアドレス／カラムアドレス）がシステムコントローラ１２から出力される。メモリ制御信号線３４には、ＤＲＡＭアクセス制御のためのＲＡＳ（ロウアドレスストローブ信号）、ＣＡＳ（カラムアドレスストローブ信号）、出力イネーブル、書き込みイネーブル信号などが含まれている。また、メモリバンク１３〜１６は、互いに異なる電源線１３ａ〜１６ａに接続されている。
【００１７】
メモリ電源切り替えスイッチ１８は、電源回路１７からメモリ電源を受け取り、電源供給対象バンク指定レジスタ１２１に設定されている電源制御情報の内容に従って、受け取ったメモリ電源を選択的に電源線１３ａ〜１６ａに供給する。これにより、電源供給対象バンク指定レジスタ１２１に設定される情報に従って、各メモリバンク毎に電源のオン・オフが制御される。電源供給対象バンク指定レジスタ１２１に対する電源制御情報の書き込みは、ソフトウェア制御の下でＣＰＵ１１によって行われる。
【００１８】
すなわち、この計算機システムでは、各種アプリケーションプログラムなどに対する主記憶上のメモリ領域の割り当ておよび解放はそれらアプリケーションプログラムからの要求やオペレーティングシステムからのアプリケーションプログラムの終了通知等に応じて動的に行われている点に着眼し、オペレーティングシステムと連携可能なメモリ電源管理プログラムを使用し、そのプログラムによって、アプリケーションプログラムやシステムプログラムによる主記憶の使用状態を調べ、全てのメモリ領域が有効利用されてないメモリバンクに対する電源供給を停止させるという電力管理をソフトウェア制御によって行う構成である。このメモリ電源管理のためのソフトウェア構成を図２に示す。
【００１９】
メモリ電源管理プログラムはオペレーティングシステムの一部またはそのオペレーティングシステム上で動作するユーザプログラムとして実現することができるが、ここでは、オペレーティングシステム自体にメモリ電源管理プログラムが含まれている場合を例にとって説明する。
【００２０】
図２に示されているように、オペレーティングシステム１０２は、プロセスの生成および消滅を管理するプロセス管理部１０３、各種プログラムに対する主記憶の割り当ておよび解放を管理するメモリ管理部１０４、および前述のメモリ電源管理を行うメモリ電源管理部１０７などのプログラムを含んでいる。これらプロセス管理部１０３、メモリ管理部１０４、およびメモリ電源管理部１０７などは、それぞれオペレーティングシステム１０２を構成するシステムプログラムとして実現されている。
【００２１】
メモリ管理部１０４は、アプリケーションプログラム１０１からの明示的なメモリ割り当て／解放要求や、プロセス管理部１０３からのプログラム実行／終了通知などに応じてアプリケーションプログラム１０１などに対する主記憶上のメモリ割り当ておよび解放を行ったり、アプリケーションプログラム１０１が利用する仮想メモリを自動的に割り当てる仮想記憶管理などを行う。また、メモリ管理部１０４は、主記憶上のメモリ領域の一部を磁気ディスクやフラッシュメモリなどの二次記憶装置に退避する機能も持つ。
【００２２】
メモリ管理部１０４による主記憶の割り当ておよび解放の制御は、割り当て済みメモリ領域管理テーブル１０５と未割り当てメモリ領域管理テーブル１０６を使用して行われる。割り当て済みメモリ領域管理テーブル１０５には、主記憶上のメモリ領域の中でこのシステムで実行されるアプリケーションプログラムやシステムプログラムに現在割り当てられているメモリ領域それぞれの先頭アドレスとそのメモリサイズが登録される。また、未割り当てメモリ領域管理テーブル１０６には、主記憶上のメモリ領域の中で現在使用されないメモリ領域（割り当て後に解放されたものを含む）それぞれの先頭アドレスとそのメモリサイズが登録される。
【００２３】
アプリケーションプログラム１０１などからメモリ割り当てが要求されると、メモリ管理部１０４は、未割り当てメモリ領域管理テーブル１０６の中から要求されたメモリサイズ分の未使用メモリ領域を探し出し、そのメモリ領域の先頭アドレスとメモリサイズをアプリケーションプログラム１０１に渡す。
【００２４】
図３は、本発明の一実施形態を示すバンク構成図を示している。複数のメモリバンクを持ち、バンクごとに電源供給を選択でき、またＨＤＤのような書き換え可能な不揮発メモリを持つことを前提としないシステムである。サスペンド時にはメモリをセルフ・リフレッシュ・モードに変更し通電したままにしておき、メモリの内容を保持したまま消費電力を下げる構成となっている。例えば１つのバンクのサイズは２５６ＭＢ、１つのページのサイズは４ＫＢである。ページのデータ内容は、プログラム、その関連データ、テキスト、映像等、種類を問わない。
【００２５】
本実施形態では、サスペンド時に未使用領域の少ないメモリバンクを選択する（以下では保存バンクとする）。保存バンクの未使用部分に、他のバンクから使用メモリをページ単位でコピーする。全てのページが保存バンクにコピーできた場合は、ページテーブルを書き換えて、サスペンド処理を終了する。保存バンクの容量不足により全てのページがコピーできなかった場合は、例えばＬＲＵ（Least Recently Used）によりページを選択し、圧縮して保存バンクに格納する。全てのページが格納できた場合はページテーブルを書き換えて、サスペンド処理を終了する。圧縮したページについては圧縮フラグをページテーブルに格納しておく。圧縮しても全てのページが格納できない場合は圧縮・コピーを元の状態に戻し、全てのメモリバンクに給電する。
【００２６】
またレジューム時に、ページテーブルの圧縮フラグが格納されているページにアクセスがあった場合は、展開処理を実行する。また、ＣＰＵがＩＤＬＥ状態になり、かつ圧縮フラグが格納されているページがあった場合も、展開処理を実行しておく。
【００２７】
再び図３は、上記を表現した模式図である。
例えば図３（ａ）は通常時の使用状態を表す。仮想アドレスに対してメモリバンク（ブロック）１は実線で示すページ対応があり、メモリバンク２は破線で示すページ対応がある。図３（ｂ）はこれに対してサスペンド時の動作を表している。未使用領域の少ないメモリバンクとしてメモリバンク１が選択され、メモリバンク２のページがメモリバンク１へ実線矢印のようにコピーされる。また使用頻度低のページについては、破線矢印のように圧縮を伴ってコピーされる。図３（ｃ）はこれに対してレジューム時の動作を表している。圧縮を伴ってコピーされたページが一点鎖線矢印で示すように展開されてメモリバンク２へ復元されている。
【００２８】
図４は、図３（ｂ）に相当するサスペンド時の動作をフローに表している。
まず未使用領域が最少であるメモリバンクを選択する（ステップＳ４１）。次に使用ページをコピーする（ステップＳ４２）。全ページがコピー完了かを判定し（ステップＳ４３）、ＹＥＳならばページテーブルを書き換える（ステップＳ４４）。他方、ステップＳ４３でＮＯならば圧縮可能ページが有るかを判定し（ステップＳ４５）、ＹＥＳならばＬＲＵで使用頻度が低いページを選択して圧縮し（ステップＳ４６）、ステップＳ４３へ戻る。他方、ステップＳ４５でＮＯならば圧縮可能ページを展開、コピー復元する（ステップＳ４７）。
【００２９】
また図５は、図３（ｃ）に相当するレジューム時の動作をフローに表している。まず圧縮ページへのアクセスが発生したか判定し（ステップＳ５１）、ＹＥＳならばそのページの展開処理を実行する（ステップＳ５３）。他方、ステップＳ５１でＮＯと判定されたならばＣＰＵがＩＤＬＥでありかつ圧縮ページがあるか判定し（ステップＳ５２）、ＹＥＳならば同様にそのページの展開処理を実行する（ステップＳ５３）。
【００３０】
一般にＨＤＤのような書き換え可能な不揮発メモリをシステムが所持している場合は、保存バンクに入らないページを不揮発メモリに書き出すことも可能だが、レジューム時に不揮発メモリの初期化や読み出しを待つ必要があるなど時間がかかってしまう。
【００３１】
対して、本実施形態では圧縮することによりメモリに格納する。効果としてメモリにのみ格納するため、ハードディスクやフラッシュメモリへのアクセスが必要ない。そのため、ハードディスクやフラッシュメモリが存在しないシステムにおいても適用可能である。
【００３２】
本実施形態では、全てのメモリの内容を保持したままにしておく必要はなく、使用しているメモリの内容のみ保持しておけばいいため、特定のメモリバンクに必要なデータを集め、そのメモリバンクにのみ通電し、その他のメモリバンク分の消費電力を下げることができる。
【００３３】
まとめると、先行技術ではサスペンド時にコピーできない領域をハードディスクやフラッシュメモリに書き出しているが、本発明では圧縮することでメモリに格納する。メモリにのみ格納するため、ハードディスクやフラッシュメモリへのアクセスが必要ない。そのため、ハードディスクやフラッシュメモリが存在しないシステムにおいてもサスペンド時の消費電力を下げることができる。
【００３４】
なお、この発明は上記実施形態に限定されるものではなく、この外その要旨を逸脱しない範囲で種々変形して実施することができる。例えば実施形態の図ではメモリバンクは２つであるが３つ以上選択することも同様に可能である。３つ以上あった場合は圧縮するページの数と通電するメモリバンクの数を選択することによって、レジューム時間と消費電力の関係を変化させ調整することができる。なお、ハードディスクやフラッシュメモリへのアクセスを禁止するものではない。
【００３５】
また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良いものである。
【図面の簡単な説明】
【００３６】
【図１】この発明の一実施形態に係る計算機システムの主記憶装置周辺のハードウェア構成を示すブロック図。
【図２】同実施形態の計算機システムに適用されるメモリ電源管理のためのソフトウェア構成を示す図。
【図３】同実施形態の装置（システム）を示す概略図。
【図４】同実施形態のサスペンド時のフローチャートを示す図。
【図５】同実施形態のレジューム時のフローチャートを示す図。
【符号の説明】
【００３７】
１１…ＣＰＵ、１２…システムコントローラ、１３〜１６…メモリバンク、１８…メモリ電源切り替えスイッチ回路、２８…リフレッシュ信号発生装置、１０１…アプリケーションプログラム、１０２…オペレーティングシステム、１０３…プロセス管理部、１０４…メモリ管理部、１０５…割り当て済みメモリ領域管理テーブル、１０６…未割り当てメモリ領域管理テーブル、１０７…メモリ電源管理部、１２１…電源供給対象バンク指定レジスタ。
【図１】
2009258925.tif 000003
【図２】
2009258925.tif 000004
【図３】
2009258925.tif 000005
【図４】
2009258925.tif 000006
【図５】
2009258925.tif 000007