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

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

Info

Publication number
JP3701890B2
JP3701890B2 JP2001254088A JP2001254088A JP3701890B2 JP 3701890 B2 JP3701890 B2 JP 3701890B2 JP 2001254088 A JP2001254088 A JP 2001254088A JP 2001254088 A JP2001254088 A JP 2001254088A JP 3701890 B2 JP3701890 B2 JP 3701890B2
Authority
JP
Japan
Prior art keywords
page
data structure
memory
space
deleted
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.)
Expired - Fee Related
Application number
JP2001254088A
Other languages
English (en)
Other versions
JP2002132582A (ja
Inventor
ピーター・エイ・フラナゼック
ダン・イー・ポフ
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

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Record Information Processing For Printing (AREA)

Description

【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) mod Rにあるページは、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)記載の機械可読プログラム・ストレージ・デバイス。
【図面の簡単な説明】
【図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出力リスト操作

Claims (27)

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

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JP2002132582A JP2002132582A (ja) 2002-05-10
JP3701890B2 true 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)

Families Citing this family (17)

* 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
US7039769B2 (en) 2002-05-30 2006-05-02 International Business Machines Corporation Direct addressed shared compressed memory system
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
EP1703404A1 (fr) * 2005-03-16 2006-09-20 Amadeus s.a.s Méthode et système pour maintenir la cohérence d'une mémoire cache utilisée par de multiples processus indépendants
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
US12321620B2 (en) * 2021-08-06 2025-06-03 Micron Technology, Inc. Techniques for memory zone size adjustment
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3701890B2 (ja) 圧縮メモリ・システムの再利用スペース予約
US6216199B1 (en) Hardware mechanism for managing cache structures in a data storage system
JP4718683B2 (ja) コンピュータ内のアプリケーションプログラム間でフォーカスが変更されたときに物理メモリの状態を復元する方法およびシステム
EP2478442B1 (en) Caching data between a database server and a storage system
US5794256A (en) Pointer swizzling facility using three-state references to manage access to referenced objects
US11256434B2 (en) Data de-duplication
US20020166022A1 (en) Access control method, access control apparatus, and computer-readable memory storing access control program
US9081692B2 (en) Information processing apparatus and method thereof
US20090164715A1 (en) Protecting Against Stale Page Overlays
JPH08129457A (ja) 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置
JPH01303527A (ja) 共有資源の管理方法
CA2426619A1 (en) Defensive heap memory management
US12223178B2 (en) Information processing apparatus
US20070130441A1 (en) Address translation table synchronization
US6889296B2 (en) Memory management method for preventing an operating system from writing into user memory space
JPH11259285A (ja) オペレーティングシステムのモジュール入れ替え方法及びモジュールの入れ替えを作う処理装置
US6782444B1 (en) Digital data storage subsystem including directory for efficiently providing formatting information for stored records
US8898413B2 (en) Point-in-time copying of virtual storage
JPH06332625A (ja) ファイルのデータ多重化方法及びデータ処理システム
US7159139B2 (en) Digital data storage subsystem including directory for efficiently providing formatting information for stopped records and utilization of a check value for verifying that a record is from a particular storage location
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
US8892838B2 (en) Point-in-time copying of virtual storage and point-in-time dumping
JPH05210584A (ja) 改善されたぺージングを有するディジタルデータプロセッサ
US7139879B2 (en) System and method of improving fault-based multi-page pre-fetches
US6804754B1 (en) Space management in compressed main memory

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