【実施例】
【0009】
図1に、この発明の第1の実施の形態を開示する。図面の開示によれば、この発明による計算システム1は、プロセッサー10と、プロセッサー10に電気的に接続するメモリ12と、保存装置14とを含んでなる。
【0010】
保存装置14はハイバネーションファイル142と、スワップ領域144と、ファイルシステム146との保存に供する。また、保存装置14はクイックランダムアクセスの記憶装置であって、例えばフラッシュメモリであるか、もしくはクイックランダムアクセスと、継続的なクイックアクセスとが可能な記憶装置、例えばハイブリッドHDDなどである。ハイブリッドHDDは、フラッシュメモリとハードディスクを包含する。
【0011】
保存装置14が一つだけの場合、保存装置14は、好ましくは例えばフラッシュメモリなどのクイックランダムアクセスの特性を具える記憶装置とし、ハイバネーションファイル142と、スワップ領域144と、ファイルシステム146とを保存装置14に保存する。
【0012】
保存装置がハイブリッドHDDの場合は、
図6に開示するように、ハイバネーションファイル142と、一部のファイルシステム146とを保存装置の中のクイックシーケンシャルアクセス特性を有する保存装置14に保存し、スワップ領域162と、一部のファイルシステム164とをクイックランダムアクセス特性を有する保存装置16に保存する。
【0013】
次いで、
図1から
図3に開示するこの発明の方法のフローチャートについて、第1の実施の形態によるシステムのブロック図(即ち、
図1である)を参照して以下に詳述する。また、この方法とステップについては、
図2のツリー状のブロック図を参照にして、この発明の技術内容を明確に説明する。
【0014】
図3に開示するように、先ずS10のステップにおいて、計算機システム1はスリープモードに入る。計算機システム1のプロセッサー10は、少なくとも1以上のメモリ12に対して、複数のスワップアウト可能なページと、複数のスワップアウト不可のページとに区分けする。さらに、プロセッサー10は複数の該スワップアウト不可のページをハイバネーションファル142に書き込み、保存装置14に保存する。
【0015】
次いで、S12のステップにおいて。システム内の全てのページを判断の対象とし、ファイルシステム146内と、スワップ領域162内と、メモリ12内とにおける全てのページを使用頻度が高い(Frequntly−Used)ページと、使用頻度が低い(Infrequntly−Used)ページとし、かつ複数の使用頻度が高いページをハイバネーションファイル142に書き込む。
【0016】
仮に使用頻度が高いページがメモリ12に存在しないことを感知したならば、保存装置14から使用頻度が高いページを取出してハイバネーションファイル142に保存する。ここにおける使用頻度が高いページは計算機システム1が起動する場合に必ず用いるページであるか、もしくは使用頻度、使用確率の比較的高いページである。
【0017】
使用頻度が低いページは、恐らくは計算機システム1が起動しても読み取ることの少ないページであって、また、経済効果にそぐわないページともいえる。例えば、システムが多くの時間と電力を用いて保存しても、起動時には僅かな時間しか減少させることができないため経済効果にそぐわないページである。
【0018】
上述するS12のステップで、スワップアウト可能のページを判断して使用頻度が高いページ、もしくは使用頻度が低いページに区分けするステップは、判別式を利用した判断であってもよく、その判別式は、次に開示する式1の通りである。
【0019】
【数1】
【0020】
上述する式1におけるseqは、シーケンシャルアクセスのコストであって、randはランダムアクセスのコストである。accessは判断されたページの予期されるアクセス率である。
【0021】
仮に、式1が成立するのであれば、そのページが使用頻度が高いページであることを表わし、かつ使用頻度が高いページはハイバネーションファイル142に置かれる。但し、式1が成立しないのであれば、判断したページは使用頻度が低いページである。
【0022】
上述するコストとは、ページの書き込み、読み取りのために必要とする時間、
読み取りのために必要とするエネルギー(即ち消費電力である)であって、それぞれのページの予期する書き込み、読み取り率(即ちaccessである)は、長時間に亘る統計などの方式で算定する。
ここで注意すべきは、上述する式の目的は、出現したあるページに対してあるシステムが、使用頻度が高いページであるか判断することは、該システムのランダムアクセスの速度とシーケンシャルアクセスの速度に関連するということである。シーケンシャルアクセスとランダムアクセスのエネルギーのコストが近ければ近いほどそのページが、使用頻度が高いページであるという可能性は低くなる。
【0023】
以上の他に、計算機システム1は、メモリ12の全ての使用頻度が低いページを強制的にスワップアウトするために、次に述べる四種類の方策、もしくはその他方法を運用する。
【0024】
1、システムコールの関数によってメモリのページを書き出す。例えばOSカーネル(LINUX)においてメモリ管理シーケンス(shrink-_all_memory)をコールして、強制的に使用頻度が低いページをスワップアウトする。
【0025】
2、オペレーションシステムに大量のメモリページを配置し、その後、これらメモリぺージを開放する。オペレーションシステムに大量のメモリページを配置する場合、間接的にオペレーションシステムが使用頻度が低いページを書き出す。使用頻度が低いページの書き出しが終わると、オペレーションシステムはこれらメモリページを開放する。
【0026】
3、アプリケーションの中に大量のメモリページを配置し、かつこれらメモリページをデータに書き込み、その後これらメモリページを開放する。オペレーションシステムは間接的に使用頻度が低いページをスワップアウトする。使用頻度が低いページをスワップアウトした後、次いでアプリケーションがこれらメモリページを開放する。
【0027】
4、オペレーションシステムに、ある記憶装置がオフラインすると伝える。大部分のメモリを除去する場合、オペレーションシステムは大部分のメモリページを開放する。よって、効率よく使用頻度が低いページをスワップアウトすることができる。
【0028】
もしくは、その他方法を用いてもよい。
【0029】
次いで、S14のステップにおいて、複数の使用頻度が低いページをクリーンページとダーティーページとに区分けし、該クリーンページをファイルシステム146の保存装置14に保存する。もしくは該クリーンページを保存しない。
【0030】
次に、S16のステップにおいて、プロセッサー10が、使用頻度が低いページをピックアップし、重複して使用頻度が低いページ関連のページを少なくとも1以上のデータグループに加える。実施例においては8つの関連ページを一つのデータグループに加え、該データグループを保存装置14のスワップ領域144に入れる。この場合、該関連ページが保存装置14に存在するのであれば、ファイルシステム146に保存するページはコピーしてバックアップを取り、スワップ領域144のデータグループに入れる。
【0031】
S16のステップにおいて、ピックアップされたページに関連するページをダーティーページに設定し、スワップ領域144の使用効率を最適化してもよい。
【0032】
S16のステップにおいて、使用頻度が低いページのダーティーページに関連するダーティーページを少なくとも1以上のデータグループに加え、かつ使用頻度が低いダーティーページをピックアップできなくなるまで、このステップを繰り返し行う。言い換えれば、全ての使用頻度が低いページは、少なくとも1以上のデータグループに属する。
【0033】
使用頻度が低いページの多くは、互いに関連性を有する。このため、実際にピックアップする数量は、使用頻度が高いページの数量より少なくなる。
【0034】
プロセッサー10が、さらにページをピックアップできなくなった場合は、即ちプロセッサー10がすでにメモリ12の全ての使用頻度が低いダーティーページを少なくとも1以上のデータグループに所属させたことにある。次いで、これらデータグループをシーケンシャルアクセスの方式でスワップ領域144に入れる。
【0035】
S16のステップにおいて、使用頻度が低いページの関連ページは、連続して使用する使用頻度が高いページと使用頻度が低いページに分けることができる。即ち、ロジックアドレス、もしくは実体ページアドレスが隣り合うページであって、高い使用量のページをデータグループに入れてデータグループとしてもよい。
【0036】
この他、
図4に開示するように、ページの使用頻度に基づいてグループに区分けしてしてもよい。グループに区分けした後、さらに使用頻度に基づいて順位を設定してもよい。また、
図5に開示するように、全てのページを使用確率でグループ分けし、グループ毎にデータグループに加えてもよい。
【0037】
上述する使用確率、使用頻度、常時使用されるか、恒常的に連続して使用されるか、については、データキャプチャの方式で統計を取る。即ち、計算機システム1を起動した後の一定の時間内に常時読み書きするページか統計を取る。起動した後の一定の時間とは、特定の秒数であって、例えば15秒である。または、1秒毎にスワップインするか、スワップアウトする数量をしきい値より少なくなるよう設定する。例えば、1秒毎のスワップイン、スワップアウトの回数を10回より少なくなるよう設定する。これらの設定は使用者の感覚によって設定することができ、上述に限定することはない。
【0038】
当然のことながら、上述するデータグループは、オペレーションシステム、又はハードにおける最も最近使われなかったもの(least resent used≪LRU≫)の順序にしたがって、複数の連続して配列したページをデータグループに加えてもよい。
【0039】
上述するグループに区分けしてデータグループに加える方式は、計算機システム1のページキャッシュが非常に効率的になる。高度な関連性を有するページが集約され、起動のプロセスにおいて、1回で関連性のあるページを読取ることができ、このように起動の速度をさらに高めることができる。
【0040】
次いで、S18のステップにおいて、計算機システム1を再起動すると、計算機システム1のプロセッサー10は、保存装置14がハイバネーションファイル142を読取り、かつファイバネーションファイル142を回復させてメモリ12に保存する。
【0041】
最後に、S20のステップにおいて、保存装置14の、而もファイバネーションファイル142の重要なページを読取った後、プロセッサー10が保存装置14からスワップ領域144のデータグループを読取り、かつメモリ12にロードする。
【0042】
以上は、この発明の好ましい実施の形態であって、この発明の実施の範囲を限定するものではない。よって、当業者の成し得る修正、もしくは変更であってこの発明の精神の下においてなされ、かつこの発明に対して均等の効果を有するものは、いずれもこの発明の特許請求の範囲に属するものとする。