トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 圧縮メモリ・システムの再利用スペース予約
【発明者】 【氏名】ピーター・エイ・フラナゼック

【氏名】ダン・イー・ポフ

【要約】 【課題】圧縮された形で維持されページとして編成された内容を保存するフリー・スペースを持つ物理メモリ管理システムを提供する。

【解決手段】メモリ・ストレージ・デバイスとの間の圧縮された内容の入出力操作のパフォーマンスを管理する制御装置を含む。出力操作はフリー・メモリ・ストレージ・スペースを回復するメモリ・ページアウト操作を含む。制御装置はページアウト操作が実行できるように、しきい値量を超える量まで回復するためすぐ使用できるフリー・ストレージ・スペースを維持する。ページアウト操作のため物理メモリからすぐクリアできるページの位置を含む新規のデータ構造体が提供される。制御装置はフラッシュ操作を実行するためデータ構造体にアクセスし、リストで削除可能として識別された1つ以上のページを便宜上削除する。このデータ構造体とフラッシュ操作により、フリー・ストレージ・スペースを回復するしきい値量を大幅に縮小する。
【特許請求の範囲】
【請求項1】圧縮された形で維持される内容を保存するフリー・スペースのある物理メモリを含むメモリ・ストレージ・デバイスを管理するシステムであって、該圧縮メモリの内容は、該メモリ・ストレージ・デバイスのページとして編成され、前記メモリ・ストレージ・デバイスとの間の圧縮内容の入出力操作のパフォーマンスを管理し、該出力操作はフリー・メモリ・ストレージ・スペースを回復するメモリ・ページアウト操作を含み、後続のページアウト操作を実行できるように、回復にすぐ使用できるフリー・ストレージ・スペース量をしきい値量を上回る値に維持する、制御装置と、後続のページアウト操作のため前記物理メモリからすぐクリアできるページの位置を含むデータ構造体とを含み、前記制御装置はフラッシュ操作を実行するため、該データ構造体にアクセスし、リストで識別された1つ以上のページを便宜上削除し、よって、前記データ構造体により可能になった前記便宜上の削除を可能にすることによって、フリー・ストレージ・スペースを回復する前記しきい値量が少なくなる、システム。
【請求項2】通常、ページアウト操作では、プロセッサ・デバイスにより発行された仮想メモリ・アドレスをフリー・スペースを回復するため削除される前記物理メモリのページ位置にマップするページ・テーブルをオペレーティング・システム・スレッドにより走査する必要があり、前記システムは、前記フラッシュ操作のため該ページ・テーブル走査を必要としない、請求項1記載のシステム。
【請求項3】前記システムは、回復のためのフリー・スペースの不足を確認する機構を含み、ページアウトのためフリー・ストレージ・スペースをすぐ回復する必要のあることが確認されたことに応答して、該機構が割込みを生成し、オペレーティング・システムから前記データへのアクセスを可能にし、プロセッサ・デバイスにより実行されるコマンド実行操作の一時的保留を開始する、請求項1記載のシステム。
【請求項4】前記データ構造体はテーブル・エントリ・リストを持つハッシュ・テーブルを含み、該テーブル・エントリはそれぞれ、前記物理メモリの前記ページを見つけるページ識別子と、前記ページにより占められる関連物理スペースとを含み、前記データ構造体は前記リストの全てのアイテムにより占められる総物理スペースを維持する、請求項3記載のシステム。
【請求項5】前記データ構造体は更に、前記物理メモリ・ストレージから回復するかまたは前記物理メモリ・ストレージに追加する前記ページの可用性を示すビットを含み、前記制御装置は、前記フラッシュ操作のとき便宜上削除されるページに関連付けられたビットを設定する、請求項4記載のシステム。
【請求項6】前記制御装置は更に、システムの通常動作時に後続のページアウト操作を考慮して前記総物理スペースを調整するデバイスを含み、該調整は、前記データ構造体にテーブル・エントリを追加するかまたはそこから削除するための前記データ構造体へのアクセスを含み、入力された各ページ用に占有された物理スペースが前記総物理スペースに追加され、削除された各ページ用に占有された物理スペースが前記総物理スペースから削除される、請求項4記載のシステム。
【請求項7】1つのオペレーティング・システム・スレッドがシステムの通常動作で前記データ構造体にアクセスできるようにするロック機構を含み、前記割込み処理機構が前記データ構造体への該オペレーティング・システム・スレッドのアクセスを無効にして前記フラッシュ操作を可能にする、請求項6記載のシステム。
【請求項8】前記データ構造体に入力された新しいページを遷移中のページとして識別する機構を含み、前記制御装置が、該新しいページを便宜上削除しないように、遷移中の新しいページが識別されていないか確認する、請求項7記載のシステム。
【請求項9】フラッシュ操作時に消去された最も新しいページの位置への第1ポインタを維持し、便宜上の削除操作時に消去された最後のページへの位置への第2ポインタを維持するトラッキング・ポインタ機構を含む、請求項6記載のシステム。
【請求項10】前記フラッシュ操作の後、前記データ構造体リストのエントリを削除するスイープ機構を含み、削除される前記エントリは、前記第1ポインタと第2ポインタの位置の間にあり、前記可用性ビットが設定されたエントリを含む、請求項9記載のシステム。
【請求項11】圧縮された形で維持される内容を保存するフリー・スペースのある物理メモリを含むメモリ・ストレージ・デバイスを管理する方法であって、該圧縮メモリ内容は、該メモリ・ストレージ・デバイスにページとして編成され、該方法は、a)オペレーティング・システムによるページアウト操作を可能にするしきい値量を超える量まで回復するためすぐ使用できるフリー・メモリ・ストレージ・スペースを維持するステップと、b)後続のページアウト操作のため前記物理メモリからすぐクリアできるページの位置を含むデータ構造体にアクセスするステップと、c)前記リストで識別された1つ以上のページを便宜上削除することによってフラッシュ操作を実行するステップと、を含む、方法。
【請求項12】ステップb)の前に、ページアウト操作のためフリー・メモリ回復スペースの不足を確認するステップを含み、ページアウトのためフリー・ストレージ・スペースをすぐ回復する必要のあることの確認に応答して、割込みを生成してオペレーティング・システムから前記データへのアクセスを可能にするステップと、プロセッサ・デバイスにより実行されるコード実行操作の一時的保留を開始するステップと、を含む、請求項11記載の方法。
【請求項13】前記データ構造体は、テーブル・エントリ・リストを持つハッシュ・テーブルを含み、該テーブル・エントリはそれぞれ、前記物理メモリの前記ページを見つけるページ識別子と、前記ページにより占有された関連物理スペースとを含み、前記維持ステップa)は、前記リストの全アイテムにより占有される総物理スペースを維持するステップを含む、請求項12記載の方法。
【請求項14】前記データ構造体は更に、前記物理メモリ・ストレージから回復するかまたはそこに追加する前記ページの可用性を示すビットを含み、前記維持ステップa)は更に、前記フラッシュ操作のとき便宜上削除されるページに関連付けられたビットを設定するステップを含む、請求項13記載の方法。
【請求項15】前記維持ステップa)は更に、システムの通常動作時に後続のページアウト操作を考慮して前記総物理スペースを調整するステップを含み、該調整は、i)前記データ構造体にアクセスしてテーブル・エントリを前記データ構造体に追加するかまたはそこから削除するステップと、ii)入力された各ページについて占有された物理スペースを前記総物理スペースに追加するか、または、削除された各ページにより占有された物理スペースを前記総物理スペースから削除するステップと、を含む、請求項14記載の方法。
【請求項16】システムの通常動作で1つのオペレーティング・システム・スレッドから前記データ構造体にアクセスできるようにするロック機構を与え、該ロック機構が前記データ構造体へのオペレーティング・システム・スレッドのアクセスを無効にして、前記フラッシュ操作を可能にするステップを含む、請求項15記載の方法。
【請求項17】前記データ構造体に入力された新しいページを遷移中のページとして識別するステップと、前記フラッシュ操作時に遷移中のページとして識別された前記ページの便宜上の削除を防ぐステップと、を含む、請求項16記載の方法。
【請求項18】フラッシュ操作時に消去された最も新しいページの位置への第1ポインタを維持するステップと、便宜上の削除操作時に消去された最後のページの位置への第2ポインタを維持するステップと、を含む、請求項15記載の方法。
【請求項19】前記フラッシュ操作の後、前記第1ポインタと第2ポインタの位置の間にあり、前記可用性ビットが設定されたエントリを削除するステップを含む、請求項18記載の方法。
【請求項20】圧縮された形で維持される内容を保存するフリー・スペースを持つ物理メモリを含むメモリ・ストレージ・デバイスを管理する方法のステップを実行するため、機械で実行可能な命令のプログラムを明確に具体化した機械可読プログラム・ストレージ・デバイスであって、該圧縮メモリ内容は、該メモリ・ストレージ・デバイスにページとして編成され、該方法のステップは、a)オペレーティング・システムによるメモリのページアウト操作を可能にするしきい値量を超える量まで回復するためすぐ使用できるフリー・メモリ・ストレージ・スペースを維持するステップと、b)後続のページアウト操作のため前記物理メモリからすぐクリアできるページの位置を含むデータ構造体にアクセスするステップと、c)前記リストで識別された1つ以上のページを便宜上削除することによってフラッシュ操作を実行するステップと、を含む、機械可読プログラム・ストレージ・デバイス。
【請求項21】ステップb)の前に、ページアウト操作のためフリー・メモリ回復スペースの不足を確認するステップを含み、ページアウトのためフリー・ストレージ・スペースをすぐ回復する必要のあることが確認されたことに応答して、割込みを生成してオペレーティング・システムから前記データにアクセスできるようにするステップと、プロセッサ・デバイスにより実行されるコード実行操作の一時的保留を開始するステップと、を含む、請求項20記載の機械可読プログラム・ストレージ・デバイス。
【請求項22】前記データ構造体は、テーブル・エントリ・リストを持つハッシュ・テーブルを含み、該テーブル・エントリはそれぞれ、前記物理メモリの前記ページを見つけるページ識別子と、前記ページにより占有された関連物理スペースとを含み、前記維持ステップa)は、前記リストの全てのアイテムにより占有される総物理スペースを維持するステップを含む、請求項21記載の機械可読プログラム・ストレージ・デバイス。
【請求項23】前記データ構造体は更に、前記物理メモリ・ストレージから回復するかまたはそこに追加する前記ページの可用性を示すビットを含み、前記維持ステップa)は更に、前記フラッシュ操作のとき便宜上削除されるページに関連付けられたビットを設定するステップを含む、請求項22記載の機械可読プログラム・ストレージ・デバイス。
【請求項24】前記維持ステップa)は更に、システムの通常動作時に後続のページアウト操作を考慮して前記総物理スペースを調整するステップを含み、該調整は、i)前記データ構造体にアクセスしてテーブル・エントリを前記データ構造体に追加するかまたはそこから削除するステップと、ii)入力された各ページについて占有される物理スペースを前記総物理スペースに追加するか、または、削除された各ページにより占有された物理スペースを前記総物理スペースから削除するステップと、を含む、請求項23記載の機械可読プログラム・ストレージ・デバイス。
【請求項25】システムの通常動作で1つのオペレーティング・システム・スレッドから前記データ構造体にアクセスできるようにするロック機構を与え、該ロック機構が前記データ構造体へのオペレーティング・システム・スレッドのアクセスを無効にして前記フラッシュ操作を可能にするステップを含む、請求項24記載の機械可読プログラム・ストレージ・デバイス。
【請求項26】前記データ構造体に入力された新しいページを遷移中のページとして識別するステップと、前記フラッシュ操作時に遷移中のページとして識別された前記ページの便宜上の削除を防ぐステップと、を含む、請求項25記載の機械可読プログラム・ストレージ・デバイス。
【請求項27】フラッシュ操作時に消去された最も新しいページの位置への第1ポインタを維持するステップと、便宜上の削除操作時に消去された最後のページの位置への第2ポインタを維持するステップと、を含む、請求項24記載の機械可読プログラム・ストレージ・デバイス。
【請求項28】前記フラッシュ操作の後、前記第1ポインタと第2ポインタの位置の間にあり、前記可用性ビットが設定されたエントリを削除するステップを含む、請求項27記載の機械可読プログラム・ストレージ・デバイス。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、一般にはコンピュータのオペレーティング・システムに関し、特に圧縮メイン・メモリを組み込んだシステムで予約する必要のある物理フリー・スペースを少なくするシステム及び方法に関する。
【0002】
【従来の技術】図1は、圧縮メモリ管理機能を採用したコンピュータ・システム100の一例である。コンピュータ・システム100は、例えば1つ以上のプロセッサ102、オペレーティング・システム125、キャッシュ104、圧縮コントローラ106、圧縮メイン・メモリ108、及び1つ以上の入出力(I/O)デバイス110を含む。以下、それぞれについて説明する。
【0003】周知の通り、プロセッサ102はコンピュータ・システム100の制御センターである。プロセッサ102は少なくとも1つのオペレーティング・システム(OS)125を実行する。OSはプログラムの実行とデータの処理を制御する。OSには、IBMから商標AIXとして販売されているようなOSや、マイクロソフト社からWindows(R)として販売されているOS等がある。後述するように、オペレーティング・システム125は、コンピュータ・システム100の1つのコンポーネントであり、本発明の機能を組み込んで使用することができる。
【0004】プロセッサ102と圧縮コントローラ106(後述)にはキャッシュ・メモリ104が接続される。キャッシュ・メモリ104は、I/Oデバイス110や圧縮メイン・メモリ108から圧縮コントローラ106により取得されたデータのための短期、高速、高容量のコンピュータ・メモリである。
【0005】キャッシュ104と圧縮メモリ108には圧縮コントローラ106が接続される。コントローラ106は、後述する通り、例えばI/Oデバイス110とキャッシュ104間の情報の転送や圧縮メイン・メモリ108とキャッシュ104間の情報転送を管理する。圧縮コントローラの機能は、データの圧縮/圧縮解除、得られた圧縮ラインの固定サイズ・ブロックへの保存を含む。これは好適には、オペレーティング・システムから見て実ページ・アドレスからメモリ108の固定サイズ・ブロックのアドレスへのマッピングを含む。
【0006】圧縮コントローラ106に接続された圧縮メイン・メモリ108は、例えばキャッシュ・ライン単位で圧縮されたデータを格納する。実施例では各ページが4つのキャッシュ・ラインを含む。キャッシュ・ラインは、キャッシュ104に挿入されたとき圧縮解除され、キャッシュ104からキャストアウトされたとき圧縮される。I/Oデバイス110からのページもメイン・メモリ108に挿入されたとき(キャッシュ・ライン単位で)圧縮される。簡素化のため1つのキャッシュしか示していないが、実際のシステムにはキャッシュの階層を加えてもよい。
【0007】周知の通り、メモリのページに関する情報は、メイン・メモリまたはキャッシュの1つ以上のページ・テーブルに保存することができ、OS125により用いられる。ページ・テーブルの1例(140)を図2に示す。ページ・テーブル140は複数のページ・テーブル・エントリ142を含み、各エントリは、例えば所与のページの仮想アドレス144、そのページの仮想アドレスに対応した実アドレス146、及びページの管理情報148のセットを含む。管理情報148は、例えばページが参照されたかどうかを示す使用ビット・フィールドと、許可アクセス・タイプを示す読取り/書込みアクセス・フィールドまたは読取り専用アクセス・フィールドである。
【0008】ページの実アドレスは、キャッシュ・ライン毎に、メイン・メモリ108からページが要求されたとき物理アドレスのセット(ストレージ・ブロックの識別子等)にマップされる。これは、実施例では、図3に示すテーブル150及び160を使用して実行される。これらのテーブルは圧縮コントローラ106に保存することができる。テーブル150は、例えばページの実ページ・アドレスと呼ばれるアドレスであるPage(i)、及びページのライン毎のメモリ・ブロック・リストを含む。例えばページは、サイズが4Kバイトのときは4つのキャッシュ・ラインを含む。各キャッシュ・ラインのサイズは1Kバイトである。
【0009】圧縮キャッシュ・ラインは、例えば256バイトの固定サイズ・ブロックに保存される。テーブル160は、例えばPage(i)の特定のラインを構成する圧縮ブロックを含む。例えばPage(i)のライン1は、それぞれ256バイトの3つの圧縮ブロックを含む。この例では各ページが最大4つのキャッシュ・ラインを含み、各キャッシュ・ラインは最大4つの圧縮メモリ・ブロックを含むので、各ページは最大16のメモリ・ブロックを占めることができる。
【0010】再び図1に示したシステムを参照する。圧縮コントローラ106は、1つ以上の割込みレジスタ120とフリー・スペース・リスト112を含むことができる。フリー・スペース・リスト112の実施形態として、当業者には周知のリンク・リストが考えられる。圧縮コントローラ106は次のような様々な機能を実行する。
a)キャッシュ104からキャストアウトされたラインを圧縮し、結果をフリー・スペース・リスト112から引き出されたいくつかの固定サイズ・ブロックに保存する。
b)キャッシュ・フェッチでラインを圧縮解除する。
c)メモリからのラインの削除、変更されたラインの圧縮(によりスペースを少なくする)等の操作により空いたブロックをフリー・スペース・リスト112に追加する。
d)ブロック数のカウントFをフリー・スペース・リスト112に維持する。このカウントは好適には要求時にOS125から使用できる。
e)サイズFの割込みレジスタ(120)として実装されるしきい値セットを維持する。しきい値を超える結果になるFの変更により、プロセッサ割込みが生じる。好適には、各しきい値をソフトウェアにより動的に設定することができ、少なくとも測定量に関係するしきい値はコントローラ106の割込みレジスタ120に保存される。
【0011】図1には他に、フリー・スペース・リスト112に適切な数のブロックを維持するフリー・スペース・マネージャ130が示してある。ブロックが少なすぎるとシステムが異常終了するか、アプリケーションの実行が保留されてページアウトも保留される。ブロックが多すぎるとストレージが無駄になり、ページ・フォールトが過剰に発生する。フリー・スペース・マネージャ130はまた、割込みレジスタ120を、割込みが生成される1つ以上のしきい値(T0...TN)で設定する。定期的に測定される値とは異なる実際の測定値に関係するしきい値は、1つ以上の割込みレジスタ120に保存される。しきい値設定ポリシと制御プロセスの例については、米国特許出願第 (YO997338)号、COMPRESSION STORE FREE-SPACE MANAGEMENTを参照されたい。図1には、オペレーティング・システムにより要求されたときすぐ使用できるページ・フレームを表すページを持つ再利用リスト134も示してある。再利用リストの全ページの有効コピーがディスク上に存在するためにこれが可能である。
【0012】ページアウトを実行する際にはスペースを追加する必要があるが、これは、十分な量の物理フリー・スペースを維持することで解決することができる。ただし、これは物理ストレージをかなり無駄にすることにもなる。必要なページアウトは、最悪の場合の拡張も考慮する必要のあるページ・テーブル等の大きいオブジェクトの走査を伴うことがあるからである。これは、使用されているが使用可能な状態にあるメモリとみなされる。
【0013】例えば、図1に示すように、共有キャッシュ・メモリを実装したコンピュータ・システム100に関して、コントローラ106は、コンピュータのオペレーティング・システムから使用できるフリー・スペースの量を表す値を持つカウント"F"を維持するように構成される。一般にFは、スペース量がF*と指定されるページアウトを実行するに十分でなければならない。Fがしきい値T1より小さくなると(T1>=F*)、メモリ・コントローラはプロセッサに割込みを発行する。この割込みにより通常の処理が停止し、第2しきい値T2より上で使用できるフリー・スペースを増やすため十分なページ数を削除するか、またはディスクにページアウトすることによってフリー・スペースの回復が開始される。一般にT1により表される予約域はかなり大きく、かなりの量の未使用スペースがあり、従って無駄になっているスペースがあることを示す。
【0014】ディスクへのページアウトを実行するため必要な予約スペースを少なくするシステム及び方法を提供することが強く望まれる。
【0015】割込みハンドラにより削除できるが、システムにより参照し使用することもできるページ・セットに予約域の多くを維持することによって、ページアウトを実行するため必要な予約スペースを少なくするシステム及び方法を提供することも強く望まれる。
【0016】ディスクへのページアウトを実行し、ページ・テーブルの一般走査やページングI/Oの必要なしに、ページアウトを実行できるようにするため必要な予約スペースを少なくするシステム及び方法を提供することも強く望まれる。
【0017】
【発明が解決しようとする課題】本発明の目的は、予約スペースが足りないときにページアウトを実行できるように予約しておく必要のある物理スペースを少なくすることである。
【0018】本発明の他の目的は、圧縮メモリ・システムにおいて、圧縮/圧縮解除の過負荷から高速に回復する、つまりスペースを高速にクリアし、ページを回復する機構を提供することである。
【0019】本発明の他の目的は、圧縮メモリ・システムにおいて、割込みハンドラにより削除でき、システムによって参照し使用することもできるページ・セットに予約域の多くを維持することによって、ページアウト操作を実行するのに必要な予約スペースを少なくするシステム及び方法を提供することである。
【0020】本発明の他の目的は、圧縮メモリ・システムにおいて、ページアウト操作を実行するのに必要な予約スペースを少なくし、ページ・テーブルの一般走査やページングI/Oの必要なしにページアウトを実行できるようにするシステム及び方法を提供することである。
【0021】
【課題を解決するための手段】本発明に従い、圧縮された形で維持され、ページとして編成された内容を保存するフリー・スペースを持つ物理メモリを含むメモリ・ストレージ・デバイスを管理するシステム及び方法が提供される。システムは、圧縮された内容のメモリ・ストレージ・デバイスとの間の入出力操作の実行を管理する制御装置を含む。出力操作は、フリー・メモリ・ストレージ・スペースを回復するメモリ・ページアウト操作を含む。制御装置は、後続のページアウト操作が実行できるように、しきい値量を超えるまで回復するためすぐ使用できるフリー・ストレージ・スペースを維持する。後続のページアウト操作のため物理メモリからすぐクリアできるページの場所を含む新規のデータ構造体が提供される。制御装置は、データ構造体にアクセスし、このリストで削除可能と判定された1つ以上のページを便宜上削除することによってフラッシュ操作を実行する。このデータ構造体とフラッシュ操作により、フリー・ストレージ・スペースを回復するためのしきい値量を大幅に縮小することができる。
【0022】新規データ構造体が、すぐクリアできるページのリストを含む特別なソフトウェア構造体であることは好都合であり、ページ・テーブルの一般走査やページングI/Oが不要になる。
【0023】新規データ構造体の構造は、更新目的の通常のアクセス(スペース不足の問題がないとき)では、オペレーティング・システムをロックする必要があるが、(スペース不足の問題があるとき)ページのリストを走査することができ、最初にロックを取得することなく物理ストレージからページを消去することができる構造である。もう1つの要件は、割込み処理中に、またはサービス・プロセッサを介して、仮想メモリ・リスト管理とは独立して構造自体にアクセスできることである。
【0024】更に、新規データ構造体の構造は、通常動作へ復帰できるだけのストレージを表すのに十分なページのリストを保持することが保証された状態に保たれる構造である。従って、メモリが不足している場合にリストからページが消去されるとき、通常動作を再開する前のオペレーティング・システムの目的は、次の回復のため十分なページをこのリストに追加することである。
【0025】
【発明の実施の形態】本発明に従い、特別なソフトウェア構造体(ここでは"出力リスト"と称する)が提供され、図1のオペレーティング・システム125によって維持される。構造体は、すぐクリアできるページのリストを含むので、ページ・テーブルの一般走査やページングI/Oが不要になる。出力リスト構造の要件は、仮想メモリ・リスト管理から独立して、割込み処理中に、またはサービス・プロセッサを介して構造それ自体にアクセスできることである。
【0026】好適には、出力リスト構造自体が小さいメモリ・スペースを占め、よって大きい予約スペースの必要なしに走査し処理することができる。すなわち、出力リスト構造を与えることで、次の要件で前記のしきい値T1が大幅に縮小される。
【数1】T1<F*−F0+F1【0027】ここでF0は、出力リスト上のページにより保持されるスペース、F1は、出力リストの走査と処理のため予約する必要のあるスペース、F*は、ページアウトの実行を可能にするため必要な所定メモリ・スペースである。
【0028】図4は、好適には仮想アドレスが連続したN個のページのセットを持つハッシュ・テーブル180を含む出力リスト構造(180)の概念を示す。図4に示すように、出力リスト180上のページは、ハッシュ・テーブルのエントリ185として表され、各エントリ185は位置を含む。通常のハッシュ・リストに見られるように、所与のページのエントリは、そのアドレスのハッシュによりハッシュ・テーブルのエントリ・ポイントを取得することによって見つけることができる。衝突の場合(異なるページがこの位置に入力された場合)、Rを法とする昇順アドレスの順序で所望のページ(またはページのスペース)が見つかるまでアイテムが調べられる。Rはリスト上の位置の数である。出力リストにページが存在することは、オペレーティング・システムのページ・テーブルにあるそのエントリで示される。
【0029】図5は、フラッシュ操作でページの存在を示す"存在"ビット・フラグを格納するフィールド190(後述)、現在のページを示すページIDフィールド195、及びページが占める物理スペースS(i)、つまり出力リスト・スペースを示すフィールド199を含むハッシュ・テーブル180のエントリ185を示す。
【0030】図6乃至図8に関して詳述するが、好適には、出力リスト上で行える操作が3つある。1)出力リスト上でのページの通常の追加と削除のNORMAL。出力リストにページが入力されると、それが占める物理スペースの量が、リストのアイテムにより占められる総物理スペースに追加される。逆に、出力リストからページが削除されると、それが占める物理スペースの量が、リストのアイテムにより占められる総物理スペースから引かれる。2)割込みハンドラによる出力リストからのページの削除であるFLUSH、及び3)通常の操作が再開される前に、ページ・テーブルが更新され、FLUSH操作により行われたページの削除が反映されるSWEEPである。図4に戻る。システムの通常動作時、ハッシュ・テーブル180での位置を示すポインタPが維持される。例えばポインタ・エントリP1は、フラッシュ操作で消去された最も新しいページ181を示す。ポインタP2として示される第2ポインタ・エントリは、最後に消去されたページ184を示す。
【0031】NORMAL動作ではハッシュ・テーブル180にアイテムを追加し、またはそこからアイテムを削除することができる。例えばテーブルのページ185を参照し、よってワーキング・セットに移すことができる。ページ"Vi"が削除されると、量F0は、S(i)により示される占有物理スペースの量だけ少なくされる。F0が少なすぎる、つまりしきい値T1を下回る場合、リストにページが追加され、F0がF0>T1になるまで調整される。
【0032】出力リストのデータ構造体は、(スペース不足が問題ではないときの)更新を目的にした通常のアクセスでは、オペレーティング・システムのロックを取得する必要がある。すなわち、2つ以上のOSスレッドが出力リストを同時に変更しようとするときの不一致を避けるため、通常のスレッド1つだけがアクティブになることを許可され、ページの入力または削除毎にロックが取得される。これは、ハッシュ・テーブルにロックを保持することをこのスレッドに要求することによって制御される。ただし、好適な実施例では、(スペース不足が問題になっているとき)ページのリストを走査し、FLUSH操作で、最初にロックを取得することなしに物理ストレージからページを消去することができる。すなわち、入力が完了する前にフラッシュ操作によりスレッドに割込みをかけることができる。好適には、この不一致を避けるため、ページを"Vi"に入力する操作または"Vi"に入力されたページを削除する操作について、図6と合わせて説明する。"Vi"は、一番後に追加されたかまたは削除され、S(i)物理スペースを占めるページのIDを表す。
【0033】図6は、NORMAL出力リスト操作200のフローチャートである。図6で、ハッシュ・テーブルにページを入力するかまたはそこから削除するため、ハッシュ・テーブルに対するロックを取得する第1ステップ202が必要である。次にステップ205で、このページが移行中であることを示すページID"V"がPageInTransシステム変数に割当てられる。この変数は、フラッシュ操作割込みの呼び出しにより追加/削除操作に割込みが入った場合にこのページが削除されるのを防ぐため与えられる。ページ208で、参照されたページを追加するか削除するかが確認される。ページが追加される場合、ステップ212に示すように、"存在ビット"の状態が確認される。存在ビットが設定されていない場合、ステップ215でハッシュ・テーブル・エントリが追加される。更にステップ216で、出力リストのページにより保持されたスペース、つまりF0の量を調整するため、比較交換操作により、ページが占める物理スペース量S(i)だけF0が増やされる。ステップ212で、ビットがすでに存在することが確認された場合、プロセスはステップ219に進み、PageInTrans変数がリセットされ、操作は終了する。この時点で、ハッシュ・テーブルはロックが解除される(ステップ220)。比較が否定的な場合(フラッシュがあったことを示す場合)、ステップ208以下でページ・エントリを追加するかまたは削除する操作が繰り返される。
【0034】図6のステップ208に戻る。参照されたページが削除される場合、ステップ222に示されるように、"存在ビット"の状態が確認される。存在ビットが設定されている場合、ハッシュ・テーブル・エントリが削除される(ステップ225)。プロセスはステップ216に進み、出力リストのページにより保持されたスペースの量、つまりF0を調整するため、比較交換操作により削除されたページが占めていた物理スペース量S(i)だけF0が増やされる。ステップ222で、ビットがもう存在しないことが確認された場合、プロセスはステップ219に進み、PageInTrans変数がリセットされ、操作は終了する。ここでハッシュ・テーブルのロックが解除される(ステップ220)。比較が否定的な場合(フラッシュがあったことを示す場合)、ステップ208以下でページ・エントリを追加する操作または削除する操作が繰り返されることを理解されたい。
【0035】比較交換は、図6のステップ216に示すようなアトミック・オペレーションであることを理解されたい。前述の通り、比較が否定的なら(フラッシュがあった場合)、プロセスは繰り返される。
【0036】図7は、割込み時に発生するシステムFLUSH操作300の詳細を示すフローチャートである。基本的には、通常動作時に割込みが受信されてフラッシュ操作が開始された場合、i=1、2、...のとき、位置(P1+i) modRにあるページは、Vを除いて消去され、それらの存在ビットがステップ157で0に設定される。また詳しく後述するが、量F0が調整される。これはF0が量"デルタ"だけ小さくなるまで続けられる。デルタは、オペレーティング・システム(OS)を再起動するため十分と判断されるフリー・スペースの量である。最後に消去されるページは位置P2である。
【0037】図7の最初のステップ303に示すように、次のエントリが選択され、ステップ306で、PageIDがPageInTrans(遷移中のページ)に等しくないか確認される。PageIDがPageInTrans変数に等しくない場合、ステップ308でハッシュ・エントリの"存在ビット"が使用できないものとして指示され、ステップ310でページが0にされる。次にステップ313で、出力リストのページにより保持されたスペース量、つまりF0を調整するため、比較交換操作が実行され、ページが占めた物理スペース量S(i)だけF0が調整される。ステップ315に進み、フラッシュされたスペースがF*ページアウトの実行に必要なメモリ・スペース量に等しいかまたはより大きいか確認される。ステップ315で、フラッシュされたスペースがF*ページアウトの実行に必要なメモリ・スペース量に等しいかまたはより大きいことが確認された場合、プロセスは終了し、スイープ操作に進む。ステップ315で、フラッシュされたスペースが必要なF*量に等しくないかまたはより大きくないことが確認された場合、プロセスはステップ303に戻り、フラッシュ操作のためハッシュ・テーブルから次のエントリが選択される。ステップ315の条件が真になるまでプロセス・ステップ303乃至315が繰り返される。
【0038】好適な実施例では、オペレーティング・システムが"ページ・フレーム・データベース"を維持する。このデータベースはメモリに保持されたページの状態を記述する。本発明に従って出力リストに保持されたページに対応するビットが、ページ・フレーム・データベースに設定される。これが参照される場合、一般には、ここで述べる操作により出力リストからこれを削除するのが望ましい。次に、出力リストのページにより保持されたスペース量がしきい値より少なくなった場合、このリストにページが追加される。図8は、FLUSH操作の後、通常動作の再開前に発生するSWEEP操作400を示す。この手順では、ページ・テーブルが更新され、FLUSHの結果としてのページの削除が反映される。特にOSはハッシュ・テーブルに対するロックを取得し、ポインタP1及びP2によりポイントされたページ位置間の全エントリをスイープし、存在ビットが0に設定されたエントリを消去し、そのページ・テーブルを調整するため、十分なエントリをテーブルに追加してスペース予約要件を満足する。これが完了すると、通常のシステム動作が再開される。具体的には、図8のステップ403に示すように、最初のステップはハッシュ・テーブルに対するロックを取得し、ポインタPを最初のページP1、つまりフラッシュ操作時に消去された最も新しいページに等しく設定することである。次にステップ405で次のエントリが選択され、ステップ408で存在ビットが設定されているか確認される。選択されたページの存在ビットが設定されていない場合、つまり0に等しい場合、プロセスはステップ412に進み、ハッシュ・エントリとページ・フレーム・データベースのエントリが削除される。次にステップ415でページ・テーブル・エントリとフラッシュ・テーブルが無効にされる。ステップ408に戻り、存在ビットが設定されている場合、つまりフラッシュ操作が指示されている場合、プロセスはステップ418に進み、ポインタ値Pが増分され、PがP2、つまりFLUSH操作で最後に消去されたページより大きいか確認される。値Pが値P2よりまだ大きくない場合、プロセスはステップ405にループバックし、ハッシュ・テーブルの次のエントリが選択され、ステップ408乃至418が繰り返される。プロセス・ステップ405乃至418は、図8のステップ418で、ポインタPがP2より大きいことが確認されるまで繰り返される。この条件が成立すると、プロセスはステップ420に進み、ハッシュ・テーブルのロックが解除され、再び新しいポインタ値PがP1に等しく設定される。
【0039】まとめとして、本発明の構成に関して以下の事項を開示する。
【0040】(1)圧縮された形で維持される内容を保存するフリー・スペースのある物理メモリを含むメモリ・ストレージ・デバイスを管理するシステムであって、該圧縮メモリの内容は、該メモリ・ストレージ・デバイスのページとして編成され、前記メモリ・ストレージ・デバイスとの間の圧縮内容の入出力操作のパフォーマンスを管理し、該出力操作はフリー・メモリ・ストレージ・スペースを回復するメモリ・ページアウト操作を含み、後続のページアウト操作を実行できるように、回復にすぐ使用できるフリー・ストレージ・スペース量をしきい値量を上回る値に維持する、制御装置と、後続のページアウト操作のため前記物理メモリからすぐクリアできるページの位置を含むデータ構造体とを含み、前記制御装置はフラッシュ操作を実行するため、該データ構造体にアクセスし、該データ構造体リストで識別された1つ以上のページを便宜上削除し、よって、前記データ構造体により可能になった前記便宜上の削除を可能にすることによって、フリー・ストレージ・スペースを回復する前記しきい値量が少なくなる、システム。
(2)通常、ページアウト操作では、プロセッサ・デバイスにより発行された仮想メモリ・アドレスをフリー・スペースを回復するため削除される前記物理メモリのページ位置にマップするページ・テーブルをオペレーティング・システム・スレッドにより走査する必要があり、前記システムは、前記フラッシュ操作のため該ページ・テーブル走査を必要としない、前記(1)記載のシステム。
(3)前記システムは、回復のためのフリー・スペースの不足を確認する機構を含み、ページアウトのためフリー・ストレージ・スペースをすぐ回復する必要のあることが確認されたことに応答して、該機構が割込みを生成し、オペレーティング・システムから前記データへのアクセスを可能にし、プロセッサ・デバイスにより実行されるコマンド実行操作の一時的保留を開始する、前記(1)記載のシステム。
(4)前記データ構造体はテーブル・エントリ・リストを持つハッシュ・テーブルを含み、該テーブル・エントリはそれぞれ、前記物理メモリの前記ページを見つけるページ識別子と、前記ページにより占められる関連物理スペースとを含み、前記データ構造体は前記リストの全てのアイテムにより占められる総物理スペースを維持する、前記(3)記載のシステム。
(5)前記データ構造体は更に、前記物理メモリ・ストレージから回復するかまたは前記物理メモリ・ストレージに追加する前記ページの可用性を示すビットを含み、前記制御装置は、前記フラッシュ操作のとき便宜上削除されるページに関連付けられたビットを設定する、前記(4)記載のシステム。
(6)前記制御装置は更に、システムの通常動作時に後続のページアウト操作を考慮して前記総物理スペースを調整するデバイスを含み、該調整は、前記データ構造体にテーブル・エントリを追加するかまたはそこから削除するための前記データ構造体へのアクセスを含み、入力された各ページ用に占有された物理スペースが前記総物理スペースに追加され、削除された各ページ用に占有された物理スペースが前記総物理スペースから削除される、前記(4)記載のシステム。
(7)1つのオペレーティング・システム・スレッドがシステムの通常動作で前記データ構造体にアクセスできるようにするロック機構を含み、前記割込み処理機構が前記データ構造体への該オペレーティング・システム・スレッドのアクセスを無効にして前記フラッシュ操作を可能にする、前記(6)記載のシステム。
(8)前記データ構造体に入力された新しいページを遷移中のページとして識別する機構を含み、前記制御装置が、該新しいページを便宜上削除しないように、遷移中の新しいページが識別されていないか確認する、前記(7)記載のシステム。
(9)フラッシュ操作時に消去された最も新しいページの位置への第1ポインタを維持し、便宜上の削除操作時に消去された最後のページへの位置への第2ポインタを維持するトラッキング・ポインタ機構を含む、前記(6)記載のシステム。
(10)前記フラッシュ操作の後、前記データ構造体リストのエントリを削除するスイープ機構を含み、削除される前記エントリは、前記第1ポインタと第2ポインタの位置の間にあり、前記可用性ビットが設定されたエントリを含む、前記(9)記載のシステム。
(11)圧縮された形で維持される内容を保存するフリー・スペースのある物理メモリを含むメモリ・ストレージ・デバイスを管理する方法であって、該圧縮メモリ内容は、該メモリ・ストレージ・デバイスにページとして編成され、該方法は、a)オペレーティング・システムによるページアウト操作を可能にするしきい値量を超える量まで回復するためすぐ使用できるフリー・メモリ・ストレージ・スペースを維持するステップと、b)後続のページアウト操作のため前記物理メモリからすぐクリアできるページの位置を含むデータ構造体にアクセスするステップと、c)前記リストで識別された1つ以上のページを便宜上削除することによってフラッシュ操作を実行するステップと、を含む、方法。
(12)ステップb)の前に、ページアウト操作のためフリー・メモリ回復スペースの不足を確認するステップを含み、ページアウトのためフリー・ストレージ・スペースをすぐ回復する必要のあることの確認に応答して、割込みを生成してオペレーティング・システムから前記データへのアクセスを可能にするステップと、プロセッサ・デバイスにより実行されるコード実行操作の一時的保留を開始するステップと、を含む、前記(11)記載の方法。
(13)前記データ構造体は、テーブル・エントリ・リストを持つハッシュ・テーブルを含み、該テーブル・エントリはそれぞれ、前記物理メモリの前記ページを見つけるページ識別子と、前記ページにより占有された関連物理スペースとを含み、前記維持ステップa)は、前記リストの全アイテムにより占有される総物理スペースを維持するステップを含む、前記(12)記載の方法。
(14)前記データ構造体は更に、前記物理メモリ・ストレージから回復するかまたはそこに追加する前記ページの可用性を示すビットを含み、前記維持ステップa)は更に、前記フラッシュ操作のとき便宜上削除されるページに関連付けられたビットを設定するステップを含む、前記(13)記載の方法。
(15)前記維持ステップa)は更に、システムの通常動作時に後続のページアウト操作を考慮して前記総物理スペースを調整するステップを含み、該調整は、i)前記データ構造体にアクセスしてテーブル・エントリを前記データ構造体に追加するかまたはそこから削除するステップと、ii)入力された各ページについて占有された物理スペースを前記総物理スペースに追加するか、または、削除された各ページにより占有された物理スペースを前記総物理スペースから削除するステップと、を含む、前記(14)記載の方法。
(16)システムの通常動作で1つのオペレーティング・システム・スレッドから前記データ構造体にアクセスできるようにするロック機構を与え、該ロック機構が前記データ構造体へのオペレーティング・システム・スレッドのアクセスを無効にして、前記フラッシュ操作を可能にするステップを含む、前記(15)記載の方法。
(17)前記データ構造体に入力された新しいページを遷移中のページとして識別するステップと、前記フラッシュ操作時に遷移中のページとして識別された前記ページの便宜上の削除を防ぐステップと、を含む、前記(16)記載の方法。
(18)フラッシュ操作時に消去された最も新しいページの位置への第1ポインタを維持するステップと、便宜上の削除操作時に消去された最後のページの位置への第2ポインタを維持するステップと、を含む、前記(15)記載の方法。
(19)前記フラッシュ操作の後、前記第1ポインタと第2ポインタの位置の間にあり、前記可用性ビットが設定されたエントリを削除するステップを含む、前記(18)記載の方法。
(20)圧縮された形で維持される内容を保存するフリー・スペースを持つ物理メモリを含むメモリ・ストレージ・デバイスを管理する方法のステップを実行するため、機械で実行可能な命令のプログラムを明確に具体化した機械可読プログラム・ストレージ・デバイスであって、該圧縮メモリ内容は、該メモリ・ストレージ・デバイスにページとして編成され、該方法のステップは、a)オペレーティング・システムによるメモリのページアウト操作を可能にするしきい値量を超える量まで回復するためすぐ使用できるフリー・メモリ・ストレージ・スペースを維持するステップと、b)後続のページアウト操作のため前記物理メモリからすぐクリアできるページの位置を含むデータ構造体にアクセスするステップと、c)前記リストで識別された1つ以上のページを便宜上削除することによってフラッシュ操作を実行するステップと、を含む、機械可読プログラム・ストレージ・デバイス。
(21)ステップb)の前に、ページアウト操作のためフリー・メモリ回復スペースの不足を確認するステップを含み、ページアウトのためフリー・ストレージ・スペースをすぐ回復する必要のあることが確認されたことに応答して、割込みを生成してオペレーティング・システムから前記データにアクセスできるようにするステップと、プロセッサ・デバイスにより実行されるコード実行操作の一時的保留を開始するステップと、を含む、前記(20)記載の機械可読プログラム・ストレージ・デバイス。
(22)前記データ構造体は、テーブル・エントリ・リストを持つハッシュ・テーブルを含み、該テーブル・エントリはそれぞれ、前記物理メモリの前記ページを見つけるページ識別子と、前記ページにより占有された関連物理スペースとを含み、前記維持ステップa)は、前記リストの全てのアイテムにより占有される総物理スペースを維持するステップを含む、前記(21)記載の機械可読プログラム・ストレージ・デバイス。
(23)前記データ構造体は更に、前記物理メモリ・ストレージから回復するかまたはそこに追加する前記ページの可用性を示すビットを含み、前記維持ステップa)は更に、前記フラッシュ操作のとき便宜上削除されるページに関連付けられたビットを設定するステップを含む、前記(22)記載の機械可読プログラム・ストレージ・デバイス。
(24)前記維持ステップa)は更に、システムの通常動作時に後続のページアウト操作を考慮して前記総物理スペースを調整するステップを含み、該調整は、i)前記データ構造体にアクセスしてテーブル・エントリを前記データ構造体に追加するかまたはそこから削除するステップと、ii)入力された各ページについて占有される物理スペースを前記総物理スペースに追加するか、または、削除された各ページにより占有された物理スペースを前記総物理スペースから削除するステップと、を含む、前記(23)記載の機械可読プログラム・ストレージ・デバイス。
(25)システムの通常動作で1つのオペレーティング・システム・スレッドから前記データ構造体にアクセスできるようにするロック機構を与え、該ロック機構が前記データ構造体へのオペレーティング・システム・スレッドのアクセスを無効にして前記フラッシュ操作を可能にするステップを含む、前記(24)記載の機械可読プログラム・ストレージ・デバイス。
(26)前記データ構造体に入力された新しいページを遷移中のページとして識別するステップと、前記フラッシュ操作時に遷移中のページとして識別された前記ページの便宜上の削除を防ぐステップと、を含む、前記(25)記載の機械可読プログラム・ストレージ・デバイス。
(27)フラッシュ操作時に消去された最も新しいページの位置への第1ポインタを維持するステップと、便宜上の削除操作時に消去された最後のページの位置への第2ポインタを維持するステップと、を含む、前記(24)記載の機械可読プログラム・ストレージ・デバイス。
(28)前記フラッシュ操作の後、前記第1ポインタと第2ポインタの位置の間にあり、前記可用性ビットが設定されたエントリを削除するステップを含む、前記(27)記載の機械可読プログラム・ストレージ・デバイス。
【出願人】 【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【出願日】 平成13年8月24日(2001.8.24)
【代理人】 【識別番号】100086243
【弁理士】
【氏名又は名称】坂口 博 (外2名)
【公開番号】 特開2002−132582(P2002−132582A)
【公開日】 平成14年5月10日(2002.5.10)
【出願番号】 特願2001−254088(P2001−254088)