JP2002132582A - 圧縮メモリ・システムの再利用スペース予約 - Google Patents

圧縮メモリ・システムの再利用スペース予約

Info

Publication number
JP2002132582A
JP2002132582A JP2001254088A JP2001254088A JP2002132582A JP 2002132582 A JP2002132582 A JP 2002132582A JP 2001254088 A JP2001254088 A JP 2001254088A JP 2001254088 A JP2001254088 A JP 2001254088A JP 2002132582 A JP2002132582 A JP 2002132582A
Authority
JP
Japan
Prior art keywords
page
data structure
memory
space
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001254088A
Other languages
English (en)
Other versions
JP3701890B2 (ja
Inventor
Peter A Franaszek
ピーター・エイ・フラナゼック
Dan E Poff
ダン・イー・ポフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2002132582A publication Critical patent/JP2002132582A/ja
Application granted granted Critical
Publication of JP3701890B2 publication Critical patent/JP3701890B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 圧縮された形で維持されページとして編成さ
れた内容を保存するフリー・スペースを持つ物理メモリ
管理システムを提供する。 【解決手段】 メモリ・ストレージ・デバイスとの間の
圧縮された内容の入出力操作のパフォーマンスを管理す
る制御装置を含む。出力操作はフリー・メモリ・ストレ
ージ・スペースを回復するメモリ・ページアウト操作を
含む。制御装置はページアウト操作が実行できるよう
に、しきい値量を超える量まで回復するためすぐ使用で
きるフリー・ストレージ・スペースを維持する。ページ
アウト操作のため物理メモリからすぐクリアできるペー
ジの位置を含む新規のデータ構造体が提供される。制御
装置はフラッシュ操作を実行するためデータ構造体にア
クセスし、リストで削除可能として識別された1つ以上
のページを便宜上削除する。このデータ構造体とフラッ
シュ操作により、フリー・ストレージ・スペースを回復
するしきい値量を大幅に縮小する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にはコンピュ
ータのオペレーティング・システムに関し、特に圧縮メ
イン・メモリを組み込んだシステムで予約する必要のあ
る物理フリー・スペースを少なくするシステム及び方法
に関する。
【0002】
【従来の技術】図1は、圧縮メモリ管理機能を採用した
コンピュータ・システム100の一例である。コンピュ
ータ・システム100は、例えば1つ以上のプロセッサ
102、オペレーティング・システム125、キャッシ
ュ104、圧縮コントローラ106、圧縮メイン・メモ
リ108、及び1つ以上の入出力(I/O)デバイス1
10を含む。以下、それぞれについて説明する。
【0003】周知の通り、プロセッサ102はコンピュ
ータ・システム100の制御センターである。プロセッ
サ102は少なくとも1つのオペレーティング・システ
ム(OS)125を実行する。OSはプログラムの実行
とデータの処理を制御する。OSには、IBMから商標
AIXとして販売されているようなOSや、マイクロソ
フト社からWindows(R)として販売されているOS等
がある。後述するように、オペレーティング・システム
125は、コンピュータ・システム100の1つのコン
ポーネントであり、本発明の機能を組み込んで使用する
ことができる。
【0004】プロセッサ102と圧縮コントローラ10
6(後述)にはキャッシュ・メモリ104が接続され
る。キャッシュ・メモリ104は、I/Oデバイス11
0や圧縮メイン・メモリ108から圧縮コントローラ1
06により取得されたデータのための短期、高速、高容
量のコンピュータ・メモリである。
【0005】キャッシュ104と圧縮メモリ108には
圧縮コントローラ106が接続される。コントローラ1
06は、後述する通り、例えば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つ以上の割込みレジスタ1
20とフリー・スペース・リスト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に
保存される。しきい値設定ポリシと制御プロセスの例に
ついては、米国特許出願第 (YO9973
38)号、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フィールド1
95、及びページが占める物理スペースS(i)、つま
り出力リスト・スペースを示すフィールド199を含む
ハッシュ・テーブル180のエントリ185を示す。
【0030】図6乃至図8に関して詳述するが、好適に
は、出力リスト上で行える操作が3つある。1)出力リ
スト上でのページの通常の追加と削除のNORMAL。
出力リストにページが入力されると、それが占める物理
スペースの量が、リストのアイテムにより占められる総
物理スペースに追加される。逆に、出力リストからペー
ジが削除されると、それが占める物理スペースの量が、
リストのアイテムにより占められる総物理スペースから
引かれる。2)割込みハンドラによる出力リストからの
ページの削除であるFLUSH、及び3)通常の操作が
再開される前に、ページ・テーブルが更新され、FLU
SH操作により行われたページの削除が反映されるSW
EEPである。図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つだけがアクティブにな
ることを許可され、ページの入力または削除毎にロック
が取得される。これは、ハッシュ・テーブルにロックを
保持することをこのスレッドに要求することによって制
御される。ただし、好適な実施例では、(スペース不足
が問題になっているとき)ページのリストを走査し、F
LUSH操作で、最初にロックを取得することなしに物
理ストレージからページを消去することができる。すな
わち、入力が完了する前にフラッシュ操作によりスレッ
ドに割込みをかけることができる。好適には、この不一
致を避けるため、ページを"Vi"に入力する操作また
は"Vi"に入力されたページを削除する操作について、
図6と合わせて説明する。"Vi"は、一番後に追加され
たかまたは削除され、S(i)物理スペースを占めるペ
ージのIDを表す。
【0033】図6は、NORMAL出力リスト操作20
0のフローチャートである。図6で、ハッシュ・テーブ
ルにページを入力するかまたはそこから削除するため、
ハッシュ・テーブルに対するロックを取得する第1ステ
ップ202が必要である。次にステップ205で、この
ページが移行中であることを示すページID"V"がPage
InTransシステム変数に割当てられる。この変数は、フ
ラッシュ操作割込みの呼び出しにより追加/削除操作に
割込みが入った場合にこのページが削除されるのを防ぐ
ため与えられる。ページ208で、参照されたページを
追加するか削除するかが確認される。ページが追加され
る場合、ステップ212に示すように、"存在ビット"の
状態が確認される。存在ビットが設定されていない場
合、ステップ215でハッシュ・テーブル・エントリが
追加される。更にステップ216で、出力リストのペー
ジにより保持されたスペース、つまりF0の量を調整す
るため、比較交換操作により、ページが占める物理スペ
ース量S(i)だけF0が増やされる。ステップ212
で、ビットがすでに存在することが確認された場合、プ
ロセスはステップ219に進み、PageInTrans変数がリ
セットされ、操作は終了する。この時点で、ハッシュ・
テーブルはロックが解除される(ステップ220)。比
較が否定的な場合(フラッシュがあったことを示す場
合)、ステップ208以下でページ・エントリを追加す
るかまたは削除する操作が繰り返される。
【0034】図6のステップ208に戻る。参照された
ページが削除される場合、ステップ222に示されるよ
うに、"存在ビット"の状態が確認される。存在ビットが
設定されている場合、ハッシュ・テーブル・エントリが
削除される(ステップ225)。プロセスはステップ2
16に進み、出力リストのページにより保持されたスペ
ースの量、つまりF0を調整するため、比較交換操作に
より削除されたページが占めていた物理スペース量S
(i)だけF0が増やされる。ステップ222で、ビッ
トがもう存在しないことが確認された場合、プロセスは
ステップ219に進み、PageInTrans変数がリセットさ
れ、操作は終了する。ここでハッシュ・テーブルのロッ
クが解除される(ステップ220)。比較が否定的な場
合(フラッシュがあったことを示す場合)、ステップ2
08以下でページ・エントリを追加する操作または削除
する操作が繰り返されることを理解されたい。
【0035】比較交換は、図6のステップ216に示す
ようなアトミック・オペレーションであることを理解さ
れたい。前述の通り、比較が否定的なら(フラッシュが
あった場合)、プロセスは繰り返される。
【0036】図7は、割込み時に発生するシステムFL
USH操作300の詳細を示すフローチャートである。
基本的には、通常動作時に割込みが受信されてフラッシ
ュ操作が開始された場合、i=1、2、...のとき、
位置(P1+i) modRにあるページは、Vを除い
て消去され、それらの存在ビットがステップ157で0
に設定される。また詳しく後述するが、量F0が調整さ
れる。これはF0が量"デルタ"だけ小さくなるまで続け
られる。デルタは、オペレーティング・システム(O
S)を再起動するため十分と判断されるフリー・スペー
スの量である。最後に消去されるページは位置P2であ
る。
【0037】図7の最初のステップ303に示すよう
に、次のエントリが選択され、ステップ306で、Page
IDがPageInTrans(遷移中のページ)に等しくないか確
認される。PageIDがPageInTrans変数に等しくない場
合、ステップ308でハッシュ・エントリの"存在ビッ
ト"が使用できないものとして指示され、ステップ31
0でページが0にされる。次にステップ313で、出力
リストのページにより保持されたスペース量、つまりF
0を調整するため、比較交換操作が実行され、ページが
占めた物理スペース量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のステップ4
18で、ポインタ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)入力された各ページについて占有された物理スペー
スを前記総物理スペースに追加するか、または、削除さ
れた各ページにより占有された物理スペースを前記総物
理スペースから削除するステップと、を含む、前記(1
4)記載の方法。 (16)システムの通常動作で1つのオペレーティング
・システム・スレッドから前記データ構造体にアクセス
できるようにするロック機構を与え、該ロック機構が前
記データ構造体へのオペレーティング・システム・スレ
ッドのアクセスを無効にして、前記フラッシュ操作を可
能にするステップを含む、前記(15)記載の方法。 (17)前記データ構造体に入力された新しいページを
遷移中のページとして識別するステップと、前記フラッ
シュ操作時に遷移中のページとして識別された前記ペー
ジの便宜上の削除を防ぐステップと、を含む、前記(1
6)記載の方法。 (18)フラッシュ操作時に消去された最も新しいペー
ジの位置への第1ポインタを維持するステップと、便宜
上の削除操作時に消去された最後のページの位置への第
2ポインタを維持するステップと、を含む、前記(1
5)記載の方法。 (19)前記フラッシュ操作の後、前記第1ポインタと
第2ポインタの位置の間にあり、前記可用性ビットが設
定されたエントリを削除するステップを含む、前記(1
8)記載の方法。 (20)圧縮された形で維持される内容を保存するフリ
ー・スペースを持つ物理メモリを含むメモリ・ストレー
ジ・デバイスを管理する方法のステップを実行するた
め、機械で実行可能な命令のプログラムを明確に具体化
した機械可読プログラム・ストレージ・デバイスであっ
て、該圧縮メモリ内容は、該メモリ・ストレージ・デバ
イスにページとして編成され、該方法のステップは、 a)オペレーティング・システムによるメモリのページ
アウト操作を可能にするしきい値量を超える量まで回復
するためすぐ使用できるフリー・メモリ・ストレージ・
スペースを維持するステップと、 b)後続のページアウト操作のため前記物理メモリから
すぐクリアできるページの位置を含むデータ構造体にア
クセスするステップと、 c)前記リストで識別された1つ以上のページを便宜上
削除することによってフラッシュ操作を実行するステッ
プと、を含む、機械可読プログラム・ストレージ・デバ
イス。 (21)ステップb)の前に、ページアウト操作のため
フリー・メモリ回復スペースの不足を確認するステップ
を含み、ページアウトのためフリー・ストレージ・スペ
ースをすぐ回復する必要のあることが確認されたことに
応答して、割込みを生成してオペレーティング・システ
ムから前記データにアクセスできるようにするステップ
と、プロセッサ・デバイスにより実行されるコード実行
操作の一時的保留を開始するステップと、を含む、前記
(20)記載の機械可読プログラム・ストレージ・デバ
イス。 (22)前記データ構造体は、テーブル・エントリ・リ
ストを持つハッシュ・テーブルを含み、該テーブル・エ
ントリはそれぞれ、前記物理メモリの前記ページを見つ
けるページ識別子と、前記ページにより占有された関連
物理スペースとを含み、前記維持ステップa)は、前記
リストの全てのアイテムにより占有される総物理スペー
スを維持するステップを含む、前記(21)記載の機械
可読プログラム・ストレージ・デバイス。 (23)前記データ構造体は更に、前記物理メモリ・ス
トレージから回復するかまたはそこに追加する前記ペー
ジの可用性を示すビットを含み、前記維持ステップa)
は更に、前記フラッシュ操作のとき便宜上削除されるペ
ージに関連付けられたビットを設定するステップを含
む、前記(22)記載の機械可読プログラム・ストレー
ジ・デバイス。 (24)前記維持ステップa)は更に、システムの通常
動作時に後続のページアウト操作を考慮して前記総物理
スペースを調整するステップを含み、該調整は、 i)前記データ構造体にアクセスしてテーブル・エント
リを前記データ構造体に追加するかまたはそこから削除
するステップと、 ii)入力された各ページについて占有される物理スペー
スを前記総物理スペースに追加するか、または、削除さ
れた各ページにより占有された物理スペースを前記総物
理スペースから削除するステップと、を含む、前記(2
3)記載の機械可読プログラム・ストレージ・デバイ
ス。 (25)システムの通常動作で1つのオペレーティング
・システム・スレッドから前記データ構造体にアクセス
できるようにするロック機構を与え、該ロック機構が前
記データ構造体へのオペレーティング・システム・スレ
ッドのアクセスを無効にして前記フラッシュ操作を可能
にするステップを含む、前記(24)記載の機械可読プ
ログラム・ストレージ・デバイス。 (26)前記データ構造体に入力された新しいページを
遷移中のページとして識別するステップと、前記フラッ
シュ操作時に遷移中のページとして識別された前記ペー
ジの便宜上の削除を防ぐステップと、を含む、前記(2
5)記載の機械可読プログラム・ストレージ・デバイ
ス。 (27)フラッシュ操作時に消去された最も新しいペー
ジの位置への第1ポインタを維持するステップと、便宜
上の削除操作時に消去された最後のページの位置への第
2ポインタを維持するステップと、を含む、前記(2
4)記載の機械可読プログラム・ストレージ・デバイ
ス。 (28)前記フラッシュ操作の後、前記第1ポインタと
第2ポインタの位置の間にあり、前記可用性ビットが設
定されたエントリを削除するステップを含む、前記(2
7)記載の機械可読プログラム・ストレージ・デバイ
ス。
【図面の簡単な説明】
【図1】本発明の原理に従ってメモリ管理機能を組み込
み使用するコンピュータ環境100の例を示す図であ
る。
【図2】ページ・テーブル構造の例を示す図である。
【図3】圧縮メイン・メモリのページの物理アドレスの
編成例を示す図である。
【図4】物理スペースを回復するためのページのリスト
を含む出力リスト・テーブル200を示す図である。
【図5】本発明に従った出力リスト・テーブル・エント
リ250の内容を示す図である。
【図6】本発明の原理に従ったNORMAL出力リスト
操作200に関するシステム手法を示す図である。
【図7】本発明の原理に従ったFLUSH出力リスト操
作300に関するシステム手法を示す図である。
【図8】本発明の原理に従ったSWEEP出力リスト操
作400に関するシステム手法を示す図である。
【符号の説明】
100 コンピュータ・システム 102 プロセッサ 104 キャッシュ 106 圧縮コントローラ 108 圧縮メイン・メモリ 110 入出力(I/O)デバイス 112 フリー・スペース・リスト 120 割込みレジスタ 125 オペレーティング・システム(OS) 130 フリー・スペース・マネージャ 134 再利用リスト 140 ページ・テーブル 142 ページ・テーブル・エントリ 144 仮想アドレス 146 実アドレス 148 ページの管理情報 150、160 テーブル 180 ハッシュ・テーブル(出力リスト) 181、184、208 ページ 185 エントリ(ページ) 190 ビット・フィールド 195 ページIDフィールド 199 出力リスト・スペース・フィールド 200 NORMAL出力リスト操作 300 FLUSH出力リスト操作 400 SWEEP出力リスト操作
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/08 559 G06F 12/08 559Z 12/10 505 12/10 505B (72)発明者 ピーター・エイ・フラナゼック アメリカ合衆国10549、ニューヨーク州マ ウント・キスコ、クロウ・ヒル・ロード 355 (72)発明者 ダン・イー・ポフ アメリカ合衆国10541、ニューヨーク州マ ホパック、リッジ・ロード 3 Fターム(参考) 5B005 JJ01 JJ11 KK14 LL19 MM01 MM31 NN12 RR04 SS14 5B060 AA06 AA08 AA09 AA12 AA14 AC01 AC11 GA18 5B082 CA08 GA01

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】圧縮された形で維持される内容を保存する
    フリー・スペースのある物理メモリを含むメモリ・スト
    レージ・デバイスを管理するシステムであって、該圧縮
    メモリの内容は、該メモリ・ストレージ・デバイスのペ
    ージとして編成され、 前記メモリ・ストレージ・デバイスとの間の圧縮内容の
    入出力操作のパフォーマンスを管理し、該出力操作はフ
    リー・メモリ・ストレージ・スペースを回復するメモリ
    ・ページアウト操作を含み、後続のページアウト操作を
    実行できるように、回復にすぐ使用できるフリー・スト
    レージ・スペース量をしきい値量を上回る値に維持す
    る、制御装置と、 後続のページアウト操作のため前記物理メモリからすぐ
    クリアできるページの位置を含むデータ構造体とを含
    み、前記制御装置はフラッシュ操作を実行するため、該
    データ構造体にアクセスし、リストで識別された1つ以
    上のページを便宜上削除し、 よって、前記データ構造体により可能になった前記便宜
    上の削除を可能にすることによって、フリー・ストレー
    ジ・スペースを回復する前記しきい値量が少なくなる、
    システム。
  2. 【請求項2】通常、ページアウト操作では、プロセッサ
    ・デバイスにより発行された仮想メモリ・アドレスをフ
    リー・スペースを回復するため削除される前記物理メモ
    リのページ位置にマップするページ・テーブルをオペレ
    ーティング・システム・スレッドにより走査する必要が
    あり、前記システムは、前記フラッシュ操作のため該ペ
    ージ・テーブル走査を必要としない、請求項1記載のシ
    ステム。
  3. 【請求項3】前記システムは、回復のためのフリー・ス
    ペースの不足を確認する機構を含み、ページアウトのた
    めフリー・ストレージ・スペースをすぐ回復する必要の
    あることが確認されたことに応答して、該機構が割込み
    を生成し、オペレーティング・システムから前記データ
    へのアクセスを可能にし、プロセッサ・デバイスにより
    実行されるコマンド実行操作の一時的保留を開始する、
    請求項1記載のシステム。
  4. 【請求項4】前記データ構造体はテーブル・エントリ・
    リストを持つハッシュ・テーブルを含み、該テーブル・
    エントリはそれぞれ、 前記物理メモリの前記ページを見つけるページ識別子
    と、 前記ページにより占められる関連物理スペースとを含
    み、前記データ構造体は前記リストの全てのアイテムに
    より占められる総物理スペースを維持する、 請求項3記載のシステム。
  5. 【請求項5】前記データ構造体は更に、前記物理メモリ
    ・ストレージから回復するかまたは前記物理メモリ・ス
    トレージに追加する前記ページの可用性を示すビットを
    含み、前記制御装置は、前記フラッシュ操作のとき便宜
    上削除されるページに関連付けられたビットを設定す
    る、請求項4記載のシステム。
  6. 【請求項6】前記制御装置は更に、システムの通常動作
    時に後続のページアウト操作を考慮して前記総物理スペ
    ースを調整するデバイスを含み、該調整は、前記データ
    構造体にテーブル・エントリを追加するかまたはそこか
    ら削除するための前記データ構造体へのアクセスを含
    み、 入力された各ページ用に占有された物理スペースが前記
    総物理スペースに追加され、削除された各ページ用に占
    有された物理スペースが前記総物理スペースから削除さ
    れる、請求項4記載のシステム。
  7. 【請求項7】1つのオペレーティング・システム・スレ
    ッドがシステムの通常動作で前記データ構造体にアクセ
    スできるようにするロック機構を含み、前記割込み処理
    機構が前記データ構造体への該オペレーティング・シス
    テム・スレッドのアクセスを無効にして前記フラッシュ
    操作を可能にする、請求項6記載のシステム。
  8. 【請求項8】前記データ構造体に入力された新しいペー
    ジを遷移中のページとして識別する機構を含み、前記制
    御装置が、該新しいページを便宜上削除しないように、
    遷移中の新しいページが識別されていないか確認する、
    請求項7記載のシステム。
  9. 【請求項9】フラッシュ操作時に消去された最も新しい
    ページの位置への第1ポインタを維持し、便宜上の削除
    操作時に消去された最後のページへの位置への第2ポイ
    ンタを維持するトラッキング・ポインタ機構を含む、請
    求項6記載のシステム。
  10. 【請求項10】前記フラッシュ操作の後、前記データ構
    造体リストのエントリを削除するスイープ機構を含み、
    削除される前記エントリは、前記第1ポインタと第2ポ
    インタの位置の間にあり、前記可用性ビットが設定され
    たエントリを含む、請求項9記載のシステム。
  11. 【請求項11】圧縮された形で維持される内容を保存す
    るフリー・スペースのある物理メモリを含むメモリ・ス
    トレージ・デバイスを管理する方法であって、該圧縮メ
    モリ内容は、該メモリ・ストレージ・デバイスにページ
    として編成され、該方法は、 a)オペレーティング・システムによるページアウト操
    作を可能にするしきい値量を超える量まで回復するため
    すぐ使用できるフリー・メモリ・ストレージ・スペース
    を維持するステップと、 b)後続のページアウト操作のため前記物理メモリから
    すぐクリアできるページの位置を含むデータ構造体にア
    クセスするステップと、 c)前記リストで識別された1つ以上のページを便宜上
    削除することによってフラッシュ操作を実行するステッ
    プと、 を含む、方法。
  12. 【請求項12】ステップb)の前に、ページアウト操作
    のためフリー・メモリ回復スペースの不足を確認するス
    テップを含み、ページアウトのためフリー・ストレージ
    ・スペースをすぐ回復する必要のあることの確認に応答
    して、 割込みを生成してオペレーティング・システムから前記
    データへのアクセスを可能にするステップと、 プロセッサ・デバイスにより実行されるコード実行操作
    の一時的保留を開始するステップと、 を含む、請求項11記載の方法。
  13. 【請求項13】前記データ構造体は、テーブル・エント
    リ・リストを持つハッシュ・テーブルを含み、該テーブ
    ル・エントリはそれぞれ、 前記物理メモリの前記ページを見つけるページ識別子
    と、 前記ページにより占有された関連物理スペースとを含
    み、前記維持ステップa)は、前記リストの全アイテム
    により占有される総物理スペースを維持するステップを
    含む、 請求項12記載の方法。
  14. 【請求項14】前記データ構造体は更に、前記物理メモ
    リ・ストレージから回復するかまたはそこに追加する前
    記ページの可用性を示すビットを含み、前記維持ステッ
    プa)は更に、前記フラッシュ操作のとき便宜上削除さ
    れるページに関連付けられたビットを設定するステップ
    を含む、 請求項13記載の方法。
  15. 【請求項15】前記維持ステップa)は更に、システム
    の通常動作時に後続のページアウト操作を考慮して前記
    総物理スペースを調整するステップを含み、該調整は、 i)前記データ構造体にアクセスしてテーブル・エント
    リを前記データ構造体に追加するかまたはそこから削除
    するステップと、 ii)入力された各ページについて占有された物理スペー
    スを前記総物理スペースに追加するか、または、削除さ
    れた各ページにより占有された物理スペースを前記総物
    理スペースから削除するステップと、 を含む、請求項14記載の方法。
  16. 【請求項16】システムの通常動作で1つのオペレーテ
    ィング・システム・スレッドから前記データ構造体にア
    クセスできるようにするロック機構を与え、該ロック機
    構が前記データ構造体へのオペレーティング・システム
    ・スレッドのアクセスを無効にして、前記フラッシュ操
    作を可能にするステップを含む、請求項15記載の方
    法。
  17. 【請求項17】前記データ構造体に入力された新しいペ
    ージを遷移中のページとして識別するステップと、 前記フラッシュ操作時に遷移中のページとして識別され
    た前記ページの便宜上の削除を防ぐステップと、 を含む、請求項16記載の方法。
  18. 【請求項18】フラッシュ操作時に消去された最も新し
    いページの位置への第1ポインタを維持するステップ
    と、 便宜上の削除操作時に消去された最後のページの位置へ
    の第2ポインタを維持するステップと、 を含む、請求項15記載の方法。
  19. 【請求項19】前記フラッシュ操作の後、前記第1ポイ
    ンタと第2ポインタの位置の間にあり、前記可用性ビッ
    トが設定されたエントリを削除するステップを含む、請
    求項18記載の方法。
  20. 【請求項20】圧縮された形で維持される内容を保存す
    るフリー・スペースを持つ物理メモリを含むメモリ・ス
    トレージ・デバイスを管理する方法のステップを実行す
    るため、機械で実行可能な命令のプログラムを明確に具
    体化した機械可読プログラム・ストレージ・デバイスで
    あって、該圧縮メモリ内容は、該メモリ・ストレージ・
    デバイスにページとして編成され、該方法のステップ
    は、 a)オペレーティング・システムによるメモリのページ
    アウト操作を可能にするしきい値量を超える量まで回復
    するためすぐ使用できるフリー・メモリ・ストレージ・
    スペースを維持するステップと、 b)後続のページアウト操作のため前記物理メモリから
    すぐクリアできるページの位置を含むデータ構造体にア
    クセスするステップと、 c)前記リストで識別された1つ以上のページを便宜上
    削除することによってフラッシュ操作を実行するステッ
    プと、 を含む、機械可読プログラム・ストレージ・デバイス。
  21. 【請求項21】ステップb)の前に、ページアウト操作
    のためフリー・メモリ回復スペースの不足を確認するス
    テップを含み、ページアウトのためフリー・ストレージ
    ・スペースをすぐ回復する必要のあることが確認された
    ことに応答して、 割込みを生成してオペレーティング・システムから前記
    データにアクセスできるようにするステップと、 プロセッサ・デバイスにより実行されるコード実行操作
    の一時的保留を開始するステップと、 を含む、請求項20記載の機械可読プログラム・ストレ
    ージ・デバイス。
  22. 【請求項22】前記データ構造体は、テーブル・エント
    リ・リストを持つハッシュ・テーブルを含み、該テーブ
    ル・エントリはそれぞれ、 前記物理メモリの前記ページを見つけるページ識別子
    と、 前記ページにより占有された関連物理スペースとを含
    み、前記維持ステップa)は、前記リストの全てのアイ
    テムにより占有される総物理スペースを維持するステッ
    プを含む、 請求項21記載の機械可読プログラム・ストレージ・デ
    バイス。
  23. 【請求項23】前記データ構造体は更に、前記物理メモ
    リ・ストレージから回復するかまたはそこに追加する前
    記ページの可用性を示すビットを含み、前記維持ステッ
    プa)は更に、前記フラッシュ操作のとき便宜上削除さ
    れるページに関連付けられたビットを設定するステップ
    を含む、 請求項22記載の機械可読プログラム・ストレージ・デ
    バイス。
  24. 【請求項24】前記維持ステップa)は更に、システム
    の通常動作時に後続のページアウト操作を考慮して前記
    総物理スペースを調整するステップを含み、該調整は、 i)前記データ構造体にアクセスしてテーブル・エント
    リを前記データ構造体に追加するかまたはそこから削除
    するステップと、 ii)入力された各ページについて占有される物理スペー
    スを前記総物理スペースに追加するか、または、削除さ
    れた各ページにより占有された物理スペースを前記総物
    理スペースから削除するステップと、 を含む、請求項23記載の機械可読プログラム・ストレ
    ージ・デバイス。
  25. 【請求項25】システムの通常動作で1つのオペレーテ
    ィング・システム・スレッドから前記データ構造体にア
    クセスできるようにするロック機構を与え、該ロック機
    構が前記データ構造体へのオペレーティング・システム
    ・スレッドのアクセスを無効にして前記フラッシュ操作
    を可能にするステップを含む、請求項24記載の機械可
    読プログラム・ストレージ・デバイス。
  26. 【請求項26】前記データ構造体に入力された新しいペ
    ージを遷移中のページとして識別するステップと、 前記フラッシュ操作時に遷移中のページとして識別され
    た前記ページの便宜上の削除を防ぐステップと、 を含む、請求項25記載の機械可読プログラム・ストレ
    ージ・デバイス。
  27. 【請求項27】フラッシュ操作時に消去された最も新し
    いページの位置への第1ポインタを維持するステップ
    と、 便宜上の削除操作時に消去された最後のページの位置へ
    の第2ポインタを維持するステップと、 を含む、請求項24記載の機械可読プログラム・ストレ
    ージ・デバイス。
  28. 【請求項28】前記フラッシュ操作の後、前記第1ポイ
    ンタと第2ポインタの位置の間にあり、前記可用性ビッ
    トが設定されたエントリを削除するステップを含む、請
    求項27記載の機械可読プログラム・ストレージ・デバ
    イス。
JP2001254088A 2000-08-25 2001-08-24 圧縮メモリ・システムの再利用スペース予約 Expired - Fee Related JP3701890B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/648,681 US6842832B1 (en) 2000-08-25 2000-08-25 Reclaim space reserve for a compressed memory system
US09/648681 2000-08-25

Publications (2)

Publication Number Publication Date
JP2002132582A true JP2002132582A (ja) 2002-05-10
JP3701890B2 JP3701890B2 (ja) 2005-10-05

Family

ID=24601778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001254088A Expired - Fee Related JP3701890B2 (ja) 2000-08-25 2001-08-24 圧縮メモリ・システムの再利用スペース予約

Country Status (6)

Country Link
US (1) US6842832B1 (ja)
JP (1) JP3701890B2 (ja)
KR (1) KR100443320B1 (ja)
IE (1) IE20010731A1 (ja)
IL (1) IL142020A (ja)
TW (1) TW509842B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039769B2 (en) 2002-05-30 2006-05-02 International Business Machines Corporation Direct addressed shared compressed memory system
JP2008533600A (ja) * 2005-03-16 2008-08-21 アマデウス エス.エイ.エス 複数の独立プロセスによってアクセス可能なキャッシュメモリの一貫性を維持する方法及びシステム

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565509B2 (en) * 2002-04-17 2009-07-21 Microsoft Corporation Using limits on address translation to control access to an addressable entity
US6986006B2 (en) * 2002-04-17 2006-01-10 Microsoft Corporation Page granular curtained memory via mapping control
US20050246461A1 (en) * 2004-04-29 2005-11-03 International Business Machines Corporation Scheduling threads in a multi-processor computer
US7383399B2 (en) * 2004-06-30 2008-06-03 Intel Corporation Method and apparatus for memory compression
KR100735552B1 (ko) * 2005-09-23 2007-07-04 삼성전자주식회사 코드 메모리 상의 프로그램의 코드 크기를 줄이는 방법
KR100786505B1 (ko) * 2006-03-02 2007-12-17 엘지전자 주식회사 휴대용 단말기의 파일 관리 방법
US20080307188A1 (en) * 2007-06-06 2008-12-11 International Business Machines Corporation Management of Guest OS Memory Compression In Virtualized Systems
US8260927B2 (en) * 2009-01-22 2012-09-04 International Business Machines Corporation Management of a reserve forever device
KR101574747B1 (ko) * 2009-05-07 2015-12-07 삼성전자주식회사 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템
US8868575B2 (en) * 2010-01-13 2014-10-21 International Business Machines Corporation Method and system for transformation of logical data objects for storage
KR101956031B1 (ko) * 2012-10-15 2019-03-11 삼성전자 주식회사 데이터 압축 장치 및 방법, 데이터 압축 장치를 포함하는 메모리 시스템
US9760478B2 (en) * 2014-12-02 2017-09-12 Macronix International Co., Ltd. Read leveling method and memory device using the same
US9690488B2 (en) * 2015-10-19 2017-06-27 Intel Corporation Data compression using accelerator with multiple search engines
CN113900826B (zh) * 2021-11-25 2024-04-12 企查查科技股份有限公司 数据处理方法、装置、计算机设备、存储介质和程序产品

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995018996A2 (en) * 1993-12-30 1995-07-13 Connectix Corporation Lossless data compression system and method
US5696927A (en) * 1995-12-21 1997-12-09 Advanced Micro Devices, Inc. Memory paging system and method including compressed page mapping hierarchy
US6279092B1 (en) * 1999-01-06 2001-08-21 International Business Machines Corporation Kernel identification for space management in compressed memory systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039769B2 (en) 2002-05-30 2006-05-02 International Business Machines Corporation Direct addressed shared compressed memory system
JP2008533600A (ja) * 2005-03-16 2008-08-21 アマデウス エス.エイ.エス 複数の独立プロセスによってアクセス可能なキャッシュメモリの一貫性を維持する方法及びシステム

Also Published As

Publication number Publication date
US6842832B1 (en) 2005-01-11
TW509842B (en) 2002-11-11
IE20010731A1 (en) 2002-04-17
IL142020A0 (en) 2002-03-10
JP3701890B2 (ja) 2005-10-05
KR100443320B1 (ko) 2004-08-09
KR20020016513A (ko) 2002-03-04
IL142020A (en) 2006-04-10

Similar Documents

Publication Publication Date Title
US6216199B1 (en) Hardware mechanism for managing cache structures in a data storage system
US6119209A (en) Backup directory for a write cache
KR100734823B1 (ko) 메모리 압축된 머신을 모핑하는 방법 및 장치
US7024512B1 (en) Compression store free-space management
US6631478B1 (en) Technique for implementing high performance stable storage hierarchy in a computer network
US6651075B1 (en) Support for multiple temporal snapshots of same volume
EP2176795B1 (en) Hierarchical storage management for a file system providing snapshots
JP4718683B2 (ja) コンピュータ内のアプリケーションプログラム間でフォーカスが変更されたときに物理メモリの状態を復元する方法およびシステム
JP3701890B2 (ja) 圧縮メモリ・システムの再利用スペース予約
US9081692B2 (en) Information processing apparatus and method thereof
US20060253498A1 (en) Method and apparatus for reclaiming memory from a heap
US20090164715A1 (en) Protecting Against Stale Page Overlays
US20060224639A1 (en) Backup system, program and backup method
US6889296B2 (en) Memory management method for preventing an operating system from writing into user memory space
US7526615B2 (en) Compressed victim cache
US6782444B1 (en) Digital data storage subsystem including directory for efficiently providing formatting information for stored records
US7523290B2 (en) Very high speed page operations in indirect accessed memory systems
US6279092B1 (en) Kernel identification for space management in compressed memory systems
US5900009A (en) System and method for accessing records in a cache slot which are associated with a current owner storage element or at least one previous owner storage element
US7552297B2 (en) Instant copy of data in a cache memory via an atomic command
US7107404B2 (en) Method and system for data processing for controlling a cache memory
US6804754B1 (en) Space management in compressed main memory
US6438609B1 (en) Method of pacing the frequency at which systems of a multisystem environment compress log streams
US6594726B1 (en) Digital data storage subsystem including arrangement for efficiently controlling fast write storage operation
US11947811B2 (en) Storage system and data replication method in storage system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050620

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050714

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080722

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090722

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100722

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110722

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110722

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120722

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130722

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees