JP4051375B2 - 圧縮可能度に基づいて圧縮メイン・メモリを使用するためのシステムおよび方法 - Google Patents

圧縮可能度に基づいて圧縮メイン・メモリを使用するためのシステムおよび方法 Download PDF

Info

Publication number
JP4051375B2
JP4051375B2 JP2004529049A JP2004529049A JP4051375B2 JP 4051375 B2 JP4051375 B2 JP 4051375B2 JP 2004529049 A JP2004529049 A JP 2004529049A JP 2004529049 A JP2004529049 A JP 2004529049A JP 4051375 B2 JP4051375 B2 JP 4051375B2
Authority
JP
Japan
Prior art keywords
memory
compressed
data
data block
compression
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
JP2004529049A
Other languages
English (en)
Other versions
JP2005535051A (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 JP2005535051A publication Critical patent/JP2005535051A/ja
Application granted granted Critical
Publication of JP4051375B2 publication Critical patent/JP4051375B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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 (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、概して言えば、コンピュータ・システムにおける圧縮メイン・メモリ・アーキテクチャの分野に関し、詳しく云えば、圧縮メイン・メモリまたは関連する非圧縮キャッシュを管理するための方法および装置の改良に関するものである。
今や、メイン・メモリとプロセッサとの間のデータ・フロー・パスにおいて高速度の圧縮/圧縮解除ハードウェアを使用するコンピュータ・メイン・メモリ・システムが一般的に利用可能である。これらのシステム内でのメイン・メモリに対するプロセッサ・アクセスは、圧縮装置および圧縮解除装置を通して間接的に遂行される。この圧縮装置および圧縮解除装置の両方とも、プロセッサのアクセス待ち時間オーバヘッドをかなり増大するが、ストレージの経費低減をかなり促進するものである。
圧縮メイン・メモリ(以下、「圧縮メモリ」と呼ぶ)に対するプロセッサの参照頻度を少なくして大きい圧縮/圧縮解除待ち時間の影響を軽減するために、プロセッサと圧縮装置および圧縮解除装置との間に大型のキャッシュ・メモリ(以下、「キャッシュ」と呼ぶ)が実装される。これらのキャッシュは非圧縮データを含み、一般には、圧縮および圧縮解除装置が必要とする一定のデータ・ブロック・サイズに等しいサイズのキャッシュ・ラインに区分けされる。キャッシュに未だ配置されてないデータをプロセッサが要求するとき、その要求されたデータを含むラインが圧縮メモリにおいて位置指定され、しかる後、圧縮メモリから読み出されて圧縮解除され、非圧縮キャッシュ内に配置される。非圧縮キャッシュにおいて空きのキャッシュ・ラインが得られないとき、1つの既存のキャッシュ・ラインが置換のために選択される。その既存のキャッシュ・ラインはキャッシュから排除され、圧縮されて圧縮メモリ内に保存され、キャッシュではその新たなキャッシュ・ラインによって置換される。その後、初期参照の局所性におけるプロセッサ参照およびそのキャッシュ・ライン内でのプロセッサ参照は非圧縮キャッシュ・データから直接にサービスされ、圧縮解除に関連した待ち時間を被らない。次に、非圧縮データをキャッシュする方法を説明する。
一般的な独立型キャッシュ・アレイおよび関連するディレクトリは最大のパフォーマンスを提供するが、それは最高のコストで提供されることになる。キャッシュおよびディレクトリ・ハードウェアはプロセッサによる最小待ち時間のアクセスを得るように最適化されるので、パフォーマンスは最大となり、メイン・メモリ・インターフェース・トラフィックはキャッシュ・インターフェースのトラフィックから分離される。しかし、コストは、キャッシュ・アレイ、ディレクトリ、および関連のハードウェア・インターフェースと関連している。
Hovis 他を発明者とする米国特許第5,812,817号は、メイン・メモリ内に非圧縮キャッシュ・メモリ領域を論理的に割り振る。キャッシュ・コントローラおよびメモリ・コントローラが同じ物理的インターフェースを介して同じ記憶装置アレイを共用する。キャッシュ・ラインの置換時に、データが、圧縮ハードウェアを通して圧縮メイン・メモリ領域および非圧縮キャッシュ領域の間で随時往復する。この方式の利点は、非圧縮キャッシュのサイズが特定のシステム・アプリケーションに対して容易に最適化できることであり、独立したキャッシュ・メモリ、ディレクトリ、および関連のインターフェースに関連したコストが不要にされることである。なお、待ち時間にセンシティブなキャッシュ・コントローラによるメイン・メモリの物理的インターフェースに対する競合によって、パフォーマンスは不利となる。
Benveniste 他を発明者とする米国特許第6,349,372B1号は、圧縮不可能なデータ・ブロックが保存される態様と同じ態様で圧縮メモリ内に非圧縮フォーマットで保存されることを許された所定数の非圧縮データ・ブロックから成る「仮想非圧縮キャッシュ」を開示している。プロセッサのデータ参照は、すべて、圧縮メモリ・ディレクトリから位置指定されるので、別個のキャッシュ・ディレクトリは必要ない。非圧縮のデータ・ブロックのFIFOリストが維持されており、新たなデータ・ブロックが非圧縮にされるとき、それはそのリストにおけるデータ・ブロックと置換する。データは、非圧縮リストにおけるデータ・ブロックの置換時に、圧縮/非圧縮ハードウェアを通して圧縮メイン・メモリの外および内を往復する。この方式は、特別のキャッシュ・メモリまたはディレクトリが存在しないので、コストが非常に低い。しかし、圧縮装置/非圧縮装置のデータ・フローがプロセッサのデータ参照およびディレクトリ参照と競合することにより、パフォーマンスは不利となる。
これらの方式はすべて、非圧縮フォーマットにおける一定量のデータまたはキャッシュを可能にするが、(実用上は)圧縮メモリのすべての内容を圧縮フォーマットで維持することを必要とする。データは、非圧縮データ・セットまたはキャッシュにおいて見つからないデータをプロセッサが要求するときだけ(要求時に)非圧縮にされる。これは、メイン・メモリにおける利用可能なスペースを最大にするが、そのスペースは使用されないことが多い。これらの方式は、データに対するアクセスが要求される前にデータを圧縮/圧縮解除するための手段を提供するものではない。従って、プロセッサがメモリに対するアクセスを要求すると同時に、メモリにおいて圧縮装置/非圧縮装置データ・トラフィック・ブロックが生成され、その結果、競合が生じる。更に、書き込みトラフィックは、すべての必要なデータが圧縮装置にとって使用可能になるまで実行することができず、圧縮装置は、メモリ書き込み機能停止が一般的であるように(数百サイクルの周期で)データを処理していた。これらの方式はすべて、大量の未使用のメモリを準備し、メモリ・プレッシャ(memory pressure)として知られた問題を軽減するために特殊なソフトウェアを頼りにしている。このメモリ・プレッシャの問題は、全体の圧縮率が不十分であり且つ実メモリ使用率が高いため、圧縮メモリにデータを保存するには、そのとき使用可能なメモリよりも多くのメモリが必要であるというときに生じる。
データを保存するためにメイン・メモリにおけるスペースを、それを未使用にするのとは対照的に、最大にし得ることが望ましいであろう。圧縮/圧縮解除オペレーションを回避することによって参照待ち時間を減少させるためには、実用的な量の非圧縮データをメイン・メモリに保存することも望ましいであろう。十分に圧縮し得ないデータ・ブロックに関するその後の不要な圧縮活動を軽減するために、圧縮オペレーションのオーバヘッドを被った後のデータ・ブロックに対する圧縮可能度を、各データ・ブロックに関連してメモリに保持することも望ましいであろう。更に、プロセッサがデータを必要とする前に圧縮解除活動/圧縮活動を遂行できること、および、メイン・メモリが使用されることがないときに、メモリに対するプロセッサのアクセスとの競合条件を緩和できることが望ましいであろう。最後に、圧縮メモリ・マネージャのハードウェアがメモリ・プレッシャ条件に即座に応答し、それによって無駄なメモリ予約のサイズを減少させることが望ましいであろう。
米国特許第5,812,817号 米国特許第6,349,372 B1号
本発明の目的は、圧縮メモリ・システムにおいて、データ・アクセスが圧縮および拡張に伴う待ち時間の不利を被らなければならない場合の条件を緩和するために、非圧縮フォーマットでデータを保存するために利用される圧縮メイン・メモリの量を最大にするためのデータ管理方法を提供することにある。
本発明のもう1つの目的は、使用可能なメモリの量が所定の閾値から外れたときを検出することによって圧縮メイン・メモリ全体の圧縮率を調整し、それに応答して、使用可能なメモリの量が所定の範囲内になるまで、メモリ・システムがビジーでないとき、またはビジー状態に関係なく優先的に、圧縮のための(使用可能なメモリに加えるために)データ・ブロックを選択すること、または圧縮解除のための(非圧縮データのための余分な使用可能なメモリを使用するために)データ・ブロックを選択することを開始する方法および装置を提供することにある。
本発明は、圧縮データ・ブロックおよび非圧縮データ・ブロックを含むデータ・ブロックのセクタを有するメモリを具備したコンピュータ・システムを含む。そのメモリに対して動作関係に接続されたセクタ・カウンタが、そのメモリの使用済みメモリ・セクタ・カウントを維持するように適応する。圧縮メモリ・マネージャがそのメモリに対して動作関係に接続される。更に、本発明は、圧縮メモリ・マネージャに対して動作関係に接続された、圧縮メモリ閾値を含む圧縮メモリ閾値レジスタを有する。セクタ変換テーブルがそのメモリに対して動作関係に接続され、データ・ブロックが最後にアクセスされた時を表すタッチ・ビットを含む。拡張メモリ閾値レジスタが圧縮メモリ・マネージャに対して動作関係に接続され、拡張メモリ閾値を含む。圧縮メモリ・マネージャは、使用済みメモリ・セクタ・カウントが圧縮メモリ閾値を越えたときにメモリにおけるデータ・ブロックを圧縮するように適応する。タッチ・ビットに基づいて、最近のアクセス頻度の小さいデータ・ブロックが、最近のアクセス頻度の大きいデータ・ブロックよりも前に圧縮される。圧縮メモリ・マネージャは、更に、使用済みメモリ・セクタ・カウントが拡張メモリ閾値よりも下になったときにデータ・ブロックを圧縮解除するように適応する。
本発明は、更に、メモリに対して動作関係に接続されたメモリ・コントローラを有し、そのメモリ・コントローラはメモリ・アクセス・リクエストを遂行してないときだけ圧縮メモリ・マネージャによる圧縮および圧縮解除が行われる。優先圧縮メモリ閾値を含む優先圧縮メモリ閾値レジスタが圧縮メモリ・マネージャに対して動作関係に接続される。圧縮メモリ・マネージャは、更に、使用済みメモリ・セクタ・カウントがメモリ・コントローラのメモリ・アクセス・リクエスト活動に関係なく、優先圧縮メモリ閾値を越えるときにメモリにおけるデータ・ブロックを圧縮するように適応することが可能である。セクタ変換テーブルが、「すべてゼロ」のデータ・ブロックを表すゼロ属性を含んだデータ・ブロックの圧縮属性を含む。圧縮メモリ・マネージャは、更に、ゼロ属性を有するデータ・ブロックをゼロ・エントリとしてメモリに保存するように適応する。なお、ゼロ・エントリが、メモリ・セクタを使用することを防止する。圧縮メモリ・マネージャは、更に、低圧縮率属性を有するデータ・ブロックを圧縮する前に高圧縮率属性を有するデータ・ブロックを圧縮するように適応する。
本発明は、コンピュータ・システムにおけるセクタ化された圧縮メモリを利用する方法を提供する。その方法は、メモリの使用済みメモリ・セクタ・カウントをモニタすること、その使用済みメモリ・セクタ・カウントが圧縮メモリ閾値を越えるとき、メモリにおけるデータ・ブロックを圧縮すること、および、その使用済みメモリ・セクタ・カウントが拡張メモリ閾値よりも小さいとき、データ・ブロックを圧縮解除することを含む。本発明は、最近のアクセス頻度の大きいデータ・ブロックを圧縮する前に、最近のアクセス頻度の小さいデータ・ブロックを圧縮する。圧縮および圧縮解除は、コンピュータ・システムにおける圧縮メモリ・マネージャがメモリ・アクセス・リクエストを遂行しようとしていないときに遂行される。更に、本発明は、圧縮メモリ・マネージャのメモリ・アクセス・リクエスト活動に関係なく、使用済みメモリ・セクタ・カウントが優先圧縮メモリ閾値よりも小さいときにメモリにおけるデータ・ブロックを圧縮する。本発明は、「すべてゼロ」を有するデータ・ブロックをゼロ・エントリとしてメモリに常に記憶し、ゼロ・エントリがメモリ・セクタを使用しないようにする。本発明は、低圧縮率属性を有するデータ・ブロックを圧縮する前に高圧縮率属性を有するデータ・ブロックを圧縮する。圧縮解除は、単に、非圧縮データ・ブロックだけを圧縮解除しないようにする。本発明は、コンピュータ・システムにおけるキャッシュに保持されたデータ・ブロックを圧縮しないようにする。
本発明によれば、所与の転送サイクルにおけるデータが「すべてゼロ」である時を示すことを目的として、ゼロ・データを検出するための手段が圧縮装置の書き込みバッファへのデータ・パスに存在する。所与のデータ・ブロックに対するいずれの転送サイクルもゼロでないとき、そのデータ・ブロックは非ゼロ・データ・ブロックである。十分なフリー・メモリが存在するとき、非ゼロ・データ・ブロックは、すべて、(圧縮装置を迂回して)非圧縮フォーマットで保存される。それ以外のデータは、スペース上の余裕が存在するとき、圧縮され、圧縮済みのものとして保存される。3ビットの圧縮可能度(Degree of Compressibility – DOC)属性が導入され、すべてのデータ・ブロックに対する圧縮メモリ・ディレクトリ・エントリに保存される。使用可能なメモリの量が閾値境界から外れる場合、圧縮メモリ・マネージャは、それが圧縮メモリ・ディレクトリのDOCフィールドをスキャンするとき、(圧縮または圧縮解除を通して)メモリを救済するための最も圧縮可能なデータ・ブロックまたはメモリを拡張するための圧縮済みデータ・ブロックの選択を開始することを可能にされる。このプロセスは、使用可能なメモリが所定の閾値境界内に戻るまで継続する。
本発明が非圧縮キャッシュを有するシステムに適用されるとき、キャッシュされていないデータ・ブロックだけが再圧縮に対する候補である。本発明は、更に、圧縮メイン・メモリから失効データを取り除く。そうしないと、非圧縮キャッシュが使用されないとき、メイン・メモリから最近読み出されたデータ・ブロックのアドレスの小型バッファ(一般には、32、64、または128エントリのバッファ)がハードウェアで維持され、従って、そのバッファにおいて見つからないデータ・ブロックだけが再圧縮のための候補である。
図面、特に、図1を参照すると、コンピュータ・システム100のブロック図が示される。コンピュータ・システム100は、一般的な共用メモリ・コントローラ102に接続された1つまたは複数のプロセッサ101を含み、メモリ・コントローラはシステム・メイン・メモリ103に対してアクセスを行うものである。共用メモリ・コントローラ102は、メイン・メモリに最大限に保存するために一定サイズの情報ブロックをできるだけ小さいブロックに圧縮するための圧縮装置104、その保存された情報がそれ以後にメイン・メモリから検索された後で圧縮オペレーションを逆行するための圧縮解除装置105、および圧縮装置を宛先としたメイン・メモリ保存リクエストの情報ブロックを待ち行列に入れるための書き込みキュー113を含む。他のプロセッサおよび/または共用メモリ・コントローラの間で非圧縮情報を搬送するために、プロセッサ・データ・バス108が使用される。メイン・メモリ103から圧縮解除装置105を介してまたはそれを迂回して、更に、マルチプレクサ111を介してプロセッサ・データ・バス108に情報を転送することが可能である。同様に、プロセッサ・データ・バス108から書き込みキュー113および圧縮装置104を介してまたはそれを迂回して、更に、マルチプレクサ112を介してメイン・メモリ103に情報を転送することも可能である。
メイン・メモリ103は、一般に、メイン・メモリ・コントローラ106によって制御されるアクセスを伴うダイナミック・ランダム・アクセス・メモリ(DRAM)から構成される。プロセッサ・アドレス/制御バス107上に生じるアドレスは実アドレスとして知られている。それはプログラミング環境では理解されており、周知である。メイン・メモリ・アドレス/制御バス109上に生じるアドレスは物理アドレスとして知られている。それはメモリ・コントローラおよびメイン・メモリDRAMの間でのみ使用され、意味のあるものである。メモリ・コントローラ106におけるメモリ管理ブロック(MMU)ハードウェアは、実プロセッサ・アドレスを仮想物理アドレス・スペースに変換するために使用される。この変換は、圧縮された情報、従って、可変サイズの情報を効果的に保存および検索する目的で物理的メモリを小さいインクリメントで割り振るための手段を提供する。
圧縮装置104は、所定のサイズの情報ブロック、即ち、1024バイトを操作する。その操作は、そのブロックにおける反復したバイト・ストリングを見つけてそれを所与のストリングの第1インスタンスに対するポインタでもって置換することおよびプロトコルに従ってその結果をエンコードすることによって行われる。このプロセスは、所定の長さにわたるバイト単位の比較を通して生じ、シーケンス・カウンタによって速度調整され、その結果、一定の完成時間が生じる。圧縮装置が圧縮を保証するほど十分には始めのブロック・サイズを減少させ得なかったとき、後方のプロセスの出力ブロックは、数ブロックからオリジナル・ブロックのサイズまでの範囲になる。圧縮解除装置105は、その結果として生じた圧縮装置の出力ブロックをデコードし、上記のポインタにより指示された位置におけるブロックにバイト・ストリングを挿入し、それによってオリジナル情報ブロックを再構成することにより、圧縮装置のオペレーションを逆行することによって機能する。最良の環境においても、圧縮装置は、一般に、周辺のシステムにおけるデータ率帯域幅の1/4乃至1/2の能力しか持たない。圧縮および圧縮解除のプロセスは、本来、線形および直列的であり、ハードウェアを通して非常に長い待ち時間のメモリ・アクセスを意味する。
図2を参照すると、メイン・メモリを区分するための構造が項目200として示される。圧縮メイン・メモリ205はプロセッサ・プログラムおよびデータ、並びに、情報をアクセスするにはなくてはならないすべての必要なデータ構造を含むので、この圧縮メイン・メモリ205は論理エンティティである。この論理圧縮メイン・メモリ205は、物理メモリ・アドレス・スペース206から物理的に区分される。ある場合には、メイン・メモリ205は、整数ディレクトリまたは外部に実装されたディレクトリを有するキャッシュとして働くための別の領域を提供するように使用可能な物理的メモリよりも小さい。キャッシュ・ストレージが実装されるとき、そのキャッシュ・ストレージは、物理メモリ206の領域201として、または管理された量の非圧縮セクタとして、または別のストレージ・アレイとして実装することが可能であることに留意すべきである。いずれの場合も、キャッシュ・コントローラが実装されるとき、そのキャッシュ・コントローラは、圧縮メイン・メモリに対するアクセスを、キャッシュが存在しない場合にプロセッサがそのようなアクセスを要求するのと同様に、要求するであろう。
論理圧縮メイン・メモリ205はセクタ変換テーブル202に区分される。残りのメモリは、圧縮情報または非圧縮情報、フリー・セクタ・ポインタ、あるいは、任意の他の情報(それがセクタに編成される限り)を含み得るセクタ・ストレージ203に割り振られる。そのセクタ変換テーブル領域のサイズは、システム内のプログラマブル・レジスタによって定義された実アドレス・スペースのサイズに比例して変わる。詳しく云えば、下記の式(1)が、セクタ変換テーブル領域のサイズの変換を管理する:
(数1)
セクタ変換テーブル・サイズ=(実メモリ・サイズ/圧縮ブロック・サイズ)*
変換テーブル・エントリ・サイズ (1)
各エントリは、プロセッサの実アドレス・スペースにおける一定のアドレス範囲に直接にマップされ、リクエスト・アドレスは下記の式(2)に従って管理される:
(数2)
セクタ変換テーブル・エントリ・アドレス=(実アドレス/圧縮ブロック・サイズ)*変換テーブル・エントリ・サイズ+オフセット・サイズ (2)
例えば、マッピングは、数量256バイト・セクタとして割り振られた1024バイト実アドレスの圧縮ブロックをリロケートするために16バイト変換テーブル・エントリを使用する。なお、その256バイト・セクタの各々は、テーブル・エントリに保存された25ビット・ポインタによって表された物理メモリ・アドレスで位置指定される。また、そのテーブル・エントリは、有効なセクタ・ポインタの番号、サイズ、またはその他の情報を表す属性ビット208も含む。メイン・メモリに対するすべての実アドレス参照は、リクエスト・アドレス210を含む実アドレス・ブロックに対応した変換テーブル・エントリ207をメモリ・コントローラに参照させる。
読み取りリクエストに関して、MMUは、属性ビット208をデコードし、有効なポインタ209を取り出し、指示されたセクタ204における位置指定された情報をメイン・メモリ記憶領域203から読み出すようにメモリ・コントローラに要求する。同様に、書き込みリクエストの結果、MMUおよびメモリ・コントローラは、情報がメイン・メモリに書き込まれることを除いて同じ動作を遂行する。しかし、書き込みリクエストが、変換テーブル・エントリにおいて既に有効である更なるセクタを要求する場合、書き込みが開始する前に追加のセクタがテーブル・エントリに割り当てられる必要がある。セクタは、一般に、スタックとして動的に維持された未使用セクタのリスト、または未使用セクタに保存されたポインタのリンクしたリストから割り振られる。データを保存するために割り振られたセクタの絶対数は、セクタ使用済みカウンタによって、または、セクタが未使用セクタ・リストに/から転送されるときにいつも調節されるセクタ・フリー・カウンタによって、常に知られている。この変換方式に関しては多くの可能な変更が存在するが、いずれもセクタ変換テーブルとしてマップされたメイン・メモリの領域およびセクタとしてマップされたメモリの領域を必要とする。DRAMベースのメイン・メモリにおけるこれらのデータ構造のストレージは、最低のコストで最高のパフォーマンスを提供し、しかも、圧縮および変換なしにメモリ・システムを一般的なダイレクト・マップ・メモリに戻すことを容易にする。
代表的な圧縮メイン・メモリ・システムを説明したが、次に本発明の一実施例を詳細に説明する。本発明によれば、圧縮メモリ・マネージャ(CMM)ハードウェアに圧縮メモリ内の非圧縮データの量を最大にさせる目的で、割り振られたメモリ・セクタ・カウントがある規定された範囲から外れた時を検出するために、3つのプログラマブル・レジスタが、所定閾値を設定する手段を提供する。拡張メモリ閾値(EMT)レジスタ、圧縮メモリ閾値(CMT)レジスタ、および優先圧縮メモリ閾値(PCMT)レジスタが、常に、セクタ使用済みカウンタと比較される。セクタ使用済みカウンタの値がEMTよりも小さいとき、CMMハードウェアは、圧縮データ・ブロックを位置指定および拡張することが可能にされる。逆に、セクタ使用済みカウンタの値がCMTまたはPCMTよりも大きいとき、CMMは、拡張データ・ブロックを位置指定および圧縮することが可能にされる。CMMは、それが上記のように可能にされるとき、それがPCMTによって可能にされるときを除いて、メモリがプロセッサ発生のアクセス・リクエストをサービスすることにビジーでないときにだけ動作する。この場合、CMMは、圧縮を通して未使用セクタのプールに開放されるメモリ・セクタの量を最大にするようプロセッサ活動に関係なく動作し、それによって、その未使用のセクタ・プールが危険なまでに少なくなるとき、メモリ・プレッシャ条件を緩和する。
CMMがSTTを参照するとき、それはSTTエントリ、一般には、4乃至6個のエントリのブロックをアクセスするであろう。CMMは、プログラマブル・レジスタに従って、STTを周期的に参照するように実装することも可能である。新たなランタイム・メモリ要件に適応するよう調整境界を再定義するために、ソフトウェアがシステム・オペレーション中にいつでもそれらのレジスタを再プログラムすることが可能である。閾値付近のセクタ使用済みカウントをディザリングするとき、拡張モードと縮小モードとの間のCMM変動を回避するために、あるレベルのヒステリシスがそれらの閾値に適用される。例えば、CMMは、セクタ使用済みカウンタ値がCMTよりも大きいときにイネーブルされ、セクタ使用済みカウンタ値がCMTとヒステリシス・オフセットとの差(一般には、64)よりも小さくなるまでそのままである。いずれの閾値に対するすべての更なる参照も、そのように明確に述べない場合、ヒステリシス・オフセットを意味する。
上記のように、あるデータ・ブロック・パターンは、圧縮結果が、それを表すための特殊ビットと共に関連のSTTエントリ自体において適合するに十分なほど小さく、使用可能なメモリ・セクタを必要としないほど高度に圧縮可能である。本発明は、正規の圧縮装置および圧縮解除装置オーバヘッド(待ち時間および帯域幅)を被ることなくそのようなデータ・ブロック・パターンの「すべてゼロ」のケースを検出するための手段を提供し、従って、そのハードウェアが他のデータ・ブロックを並行して操作することを可能にする。「ゼロ・データ圧縮装置」は、所与の転送サイクルにおけるデータが「すべてゼロ」であるときを表す目的で、圧縮装置書き込みバッファへのパスにゼロが存在するときを検出する。所与のデータ・ブロックに対するいずれの転送サイクルもゼロでないとき、そのデータ・ブロックは非ゼロのデータ・ブロックである。そうでない場合、そのデータ・ブロックは、「ゼロ」ケースであり、特別にエンコードされたSTTエントリとして直ちに保存することが可能である。常に「ゼロ」のデータ・ブロックは、すべて、圧縮効率を得るように圧縮されて保存される。メモリ読み取りアクセス中に「ゼロ」ケースがデコードされるとき、メモリ・コントローラは、単に、データ・ブロック圧縮解除オペレーションなしで「すべてゼロ」の応答を供給する。非ゼロのデータ・ブロックは、すべて、十分なフリー・メモリが存在するとき、(圧縮装置を迂回して)非圧縮フォーマットで保存される。十分なフリー・メモリが存在する場合、スペース上の有利性が存在するとき、データは圧縮され、圧縮済みとして保存される。
図6を参照すると、本発明の原理に従って、「すべてゼロ」のデータ・ブロックを検出するための手段を有するメモリ制御装置が示される。圧縮解除装置609の出力データ・バス601へのデータ・フローおよびプロセッサ・データ・バス603からのデータ・フローでは、プロセッサが、マルチプレクサ602によって改良される。即ち、マルチプレクサ602は、圧縮解除装置609の出力データを、ゼロ検出装置604および書き込みキュー605を介して圧縮装置606にラップするための手段を提供し、メモリ・コントローラ607が非圧縮メイン・メモリ・データ・ブロックの圧縮および圧縮メイン・メモリ・データ・ブロックの拡張を行うための手段を提供する。更に、ゼロ検出装置(バス・ワイド論理OR機能)604は、プロセッサ・データ・バス603または圧縮解除装置データ・バス601から圧縮装置606の書き込みキュー605へのデータ・ブロック転送と関連したいずれの特定のサイクルもゼロでない時を検出するための手段を提供する。この論理条件は論理信号608によってメモリ・コントローラ607に搬送される。メモリ制御の下での圧縮は、マルチプレクサ610によって非圧縮のデータ・ブロックに圧縮解除装置609を迂回させ、マルチプレクサ602およびゼロ検出装置604を介して書き込みキュー605へ循環させる。従って、データは、マルチプレクサ611によって圧縮装置606を通過または迂回してメモリに書き戻すことが可能である。メモリ制御の下での拡張は、圧縮されたデータ・ブロックに、圧縮解除装置609、マルチプレクサ610およびマルチプレクサ602、更にゼロ検出装置604を介して書き込みキュー605へ循環させる。従って、データは、「すべてゼロ」の特殊ケースまたは非圧縮の場合のように、マルチプレクサ611によって圧縮装置606を迂回してメモリに書き戻すことが可能である。
図3を参照すると、本発明の原理に従って修正され改良された圧縮メモリ・セクタ変換テーブル(STT)302が示される。プロセッサが特定のデータ・ブロックをアクセスしたときを表すために、タッチ(T)ビット304がSTTエントリ301に含まれる。このビットは、STTエントリが、プロセッサ読み取りまたは書き込みリクエストをサービスするためにアクセスされるたびにセットされる。CMMは、それがいずれかのSTTを更新するときに、このビットをリセットする。
8個の独特の圧縮属性をデコードするために、3ビットの「圧縮可能度(DOC)」属性フィールド303が各SSTエントリ301に含まれる。DOCは、データ・ブロックが「すべてゼロ」の特殊ケースであることを表すために「ゼロ」を含む。その「すべてゼロ」の特殊ケースは、圧縮メモリ・セクタを使用せずにSSTに圧縮され、圧縮装置を迂回するものであり、圧縮解除されることがない。DOCは、データ・ブロックが総圧縮率(特殊ケースであるがゼロではない)を有することを表すために「特殊」も含む。その「特殊」ケースは、圧縮メモリ・セクタを使用せずにSSTエントリに圧縮される。DOCは、データ・ブロックが高い圧縮率を有することを表すために「高」を含む。「高」圧縮データ・ブロックは、メイン・メモリ記憶装置の1つまたは2つのメモリ・セクタを含む。DOCは、データ・ブロックが中間の圧縮率を有することを表すために「中間」も含む。「中間」圧縮データ・ブロックは、メイン・メモリ記憶装置の3つのメモリ・セクタを必要とする。DOCは、データ・ブロックが低い圧縮率を有することを表すために「低」も含む。「低」圧縮データ・ブロックは、メイン・メモリ記憶装置の4つのメモリ・セクタを必要とするが、それは「無(nil)」ケースではない。DOCは、データ・ブロックが未知の圧縮率を有することを表すために「未知」を含む。「未知」の非圧縮データ・ブロックは、圧縮されてないか、圧縮装置を迂回したか、または、最後の圧縮以後に修正されている。DOCは、データ・ブロックが圧縮可能ではない、即ち、圧縮が実用的でないことを表すために「無」を含む。DOCは、データ・ブロックが圧縮されるべきでないことを表すために「不可(never)」を含む。「不可」は、圧縮が所与のデータ・ブロックに対して回避されるべきであるときにアプリケーション特有のパフォーマンス最適化のためのソフトウェアによってのみセットされる。
DOCの値「ゼロ」乃至「無」はハードウェアによって設定され、「不可」というDOCの値はソフトウェアによって設定または変更される。CMMがメモリを圧縮しようとしているとき、それは、圧縮のための最も有益な非圧縮データ・ブロック、例えば、最高の圧縮率を有するデータ・ブロックを選択する。CMMがメモリを拡張しようとしているとき、圧縮データ・ブロックまたは未知のデータ・ブロックだけが圧縮解除のために選択される。本発明が非圧縮キャッシュを有するシステムに適用されるとき、キャッシュされないデータ・ブロックだけが再圧縮のための候補である。別の方法では、メイン・メモリから読み取られた最新のデータ・ブロック・アドレスの小型バッファ(一般には、32または64)がハードウェアで維持され、バッファにおいて見つからなかったデータ・ブロックだけが再圧縮のための候補である。初期設定時、有効なエラー訂正を設定するために、物理メモリ全体が1つのパターンで持って満たされる。デコードすることが可能である複製された充填パターンを可能にするために有効STTの「すべてゼロ」ケースのような方法でSSTエンコーディングが定義される。メモリは、この時点でできるだけ十分に圧縮される。データがソフトウェア「ブート」中にメモリに書き込まれるとき、メモリ・コントローラはデータ・ブロックの圧縮解除を開始し、新しいデータを収容するためにセクタを割り振り、そして関連のTビットを設定するであろう。セクタ使用済みカウントがEMTよりも上になるまで、データ・ブロックは決して圧縮されない。そのカウントがEMTよりも下である間、CMMは、拡張可能な圧縮データに関してSTTをスキャンしようとするだろうし、何も検出されなくても、Tビットがリセットされるであろう。セクタ使用済みカウントがCMTを越えるとき、CMMは、データ・ブロックに関してSTTのスキャンを開始し、非圧縮データを読み取り、圧縮し、しかる後、「低」または「無」以外のDOCであってTでないデータ・ブロックに対してその圧縮データを復元し、そして、すべてのケースにおいて、その計算されたDOCを反映し、TビットをリセットするようにSTTエントリを更新する。データの再圧縮はセクタを空き状態にし、セクタ使用済みカウントを減じる。そのカウントがCMTよりも下になるとき、CMMは停止する。なお、このプロセスは、使用可能なメモリにおいて最大量の非圧縮データを維持すると同時に、最も圧縮可能な最も少ない参照のデータ・ブロックおよびゼロのデータ・ブロックすべてが圧縮されるという結果を生じる傾向がある。
図4を参照すると、圧縮メイン・メモリにおける非圧縮データの量を最大にすると共に、すべてのゼロ・データ・ブロックを特別に処理するための特殊な手段によってその圧縮メイン・メモリをアクセスする方法に関する状態図が示される。当初は、メモリのアクセスを求めるリクエストが表明されるまで、メモリ・コントローラはアイドル状態401のままである。そのような時、リクエスト状態(アドレス、読み取り/書き込み、サイズ、および「すべてゼロ」の表示)がリクエスト・バッファに捕捉され、リクエスト・フェーズが承認される。しかる後、ステップ403において、リクエスト・アドレスからインデックスされたダイレクト・マッピングのSTTエントリがメモリから読み出され、デコードされる。
ステップ404におけるメモリ読み取りアクセス・リクエストの決定時に、ステップ405において検出された「すべてゼロ」のデータ・ブロックが、ステップ410におけるそのリクエストに対する即時データ応答後に完了する。ステップ406において検出された特殊ケースのデータ・ブロックは、先ず、ステップ409において圧縮解除されなければならず、しかる後、ステップ410においてデータ・リクエストに対するデータ応答が発生され、それと並行して、本発明は、ステップ412においてその非圧縮データをメモリに戻して保存する。その他のデータ・ケースは、すべて、ステップ404からステップ405および406を介してステップ407に進む。ステップ407では、STTエントリによって表されたメモリ・セクタからデータが読み出される。ステップ408においてそのデータが圧縮されたことをSTTエントリが表すとき、それは、ステップ409において圧縮解除され、しかる後、ステップ410において応答し、ステップ412において、非圧縮のものとして再保存される。それとは別に、ステップ408において、データが既に非圧縮のものであるとされるとき、ステップ410において、データ応答が直ちに遂行される。
ステップ404におけるメモリ書き込みアクセス・リクエストの決定時に、ステップ413においてデータ・ブロックが「すべてゼロ」であると決定された場合、ステップ412において、データ・ブロックは、特別にエンコードされたSTTエントリとして保存される。ステップ414において十分なストレージが使用可能である場合(セクタ使用済みカウント<EMTレジスタの場合)、非ゼロのデータ・ブロックがメモリに直接に保存され、そうでない場合、データは、先ず、ステップ415において圧縮され、しかる後、ステップ412においてそのデータの保存が行われる。
図5を参照すると、圧縮メイン・メモリが、指定された範囲内での記憶装置全体の利用を維持しながら最大量の非圧縮データを持つことを目的として、その圧縮メイン・メモリにおけるデータ圧縮を調整する方法に関する圧縮メモリ・マネージャ(CMM)の状態図が示される。CMMは、最近の使用状態、圧縮可能度(DOC)に従って、メイン・メモリにおけるデータ・ブロックを二者択一的に圧縮または拡張することによってメイン・メモリの利用を調整する。CMMは、メモリにおけるSTTの範囲全体にわたってSTTエントリの各ブロックを逐次に読み取りおよび書き込む。CMMは、先ず、バッファを空にし、しかる後、エントリの次のブロックを読み取る。STTバッファに保持されたSTTエントリの範囲に対するいずれのアクセスも、STTメモリにおいてSTTエントリを直接に参照する代わりに、そのバッファからサービスされる。CMMは、そのバッファがメモリに書き戻される前に、そのバッファにおける各STTエントリを逐次に操作する。最初に、およびプログラマブル・イネーブル・ビットによってディセーブルされるとき、CMMはアイドル状態501にある。しかし、イネーブルされたときは、割り振られたメモリ・セクタ・カウントまたはセクタ使用済みカウンタが拡張メモリ閾値(EMT)(データの拡張)レジスタ、圧縮メモリ閾値(CMT)(データの縮小)レジスタ、または優先圧縮メモリ閾値(PCMT)(データの優先圧縮)レジスタによって定義された範囲の外にあるとき、条件502に応答する。そのような時、ステップ503において、バッファ・ポインタが進められ、ステップ504において、バッファが空であるかまたはバッファ・ポインタが第1エントリにラップされたとき、全バッファがメモリに書き戻され、ステップ505において、STTエントリの次のブロックがメモリから読み出されてバッファを満たす。そうでない場合、ステップ504において、バッファ・ポインタは有効なSTTエントリを選択する。ステップ506において、CMMは最近の読み取り(MRR)バッファにおいて見つかったSTTエントリをスキップするが、ステップ515において、タッチ(T)ビットがリセットされ、CMM制御はアイドル状態501にループ・バックする。CMMは、ステップ508における拡張または縮小に関連して、ステップ506においてスキップされなかったエントリを評価する。
既に圧縮されているデータ(または、十分には圧縮し得ないデータ)を圧縮することは不必要である。データ・ブロックが最近参照され(Tセット)、メモリが優先的に圧縮されない場合、ステップ509において、CMMは、その選択されたデータ・ブロックの圧縮をスキップし、制御がアイドル状態501に戻される前にTビットをリセットする。そうでない場合、ステップ509において、データは圧縮されるであろうが、ステップ510において、STTで指定されたロケーションにおいてメモリから最初に読み出されなければならない。ステップ511において「すべてゼロ」を含むものとして検出されたデータ・ブロックは圧縮をスキップする。そうでない場合、ステップ512において、データ・ブロックが圧縮され、ステップ513においてSTTに完全に圧縮したデータ・ブロックは、STTエントリのDOC更新、Tビット、およびデータ・ブロック・メモリがステップ515において「フリー・メモリ」プールに割当解除されるという結果を生じる。Tビットおよびデータ・ブロック・メモリがステップ513において有益に圧縮可能でないデータ・ブロックはメモリにおいて未変更のままであり、ステップ515において、DOC更新およびTビット・リセットを受けるだけである。そうでない場合、ステップ513に続いて、ステップ514において、圧縮データがメイン・メモリに保存され、しかる後、STTエントリDOCが更新され、ステップ515において、新しい圧縮データ・ロケーションが更新され、データ・ブロック・メモリが「フリー・メモリ」プールに割当解除される。しかる後、制御がアイドル状態501に戻される。
ステップ516では、既に非圧縮のデータまたは「すべてゼロ」の圧縮データを拡張することは不必要であるので、ステップ515において、CMM制御がアイドル状態501に再び戻る前にTビットだけはリセットされる必要がある。ステップ516における別の場合では、ステップ519において、データが圧縮解除されることになる。従って、圧縮データは、ステップ517において、DOC=特殊であるときにSTTエントリ自体から取り出されるか、または、ステップ518において、STTエントリにより表されたメイン・メモリのロケーションから読み出され、しかる後、ステップ519において、それは圧縮解除される。その非圧縮データは、ステップ514において、メイン・メモリに保存され、STTエントリがその非圧縮データの新しいロケーションでもって更新され、CMM制御がアイドル状態501に戻される前にTがリセットされる。
この実施例は、キャッシュ構造体を持たない最低コストの実施態様を表す。しかし、本発明は、より高いパフォーマンスを得るために一般的な独立したキャッシュと共に使用することが可能である。上記の実施例は、閾値条件502が正当であるときに機能するだけであるということを示唆するが、CMM機能は、DRAMにおいて累積することがあり得る「ソフト」エラーを検出および除去するためにSSTメモリを「消し込む(scrubbing)」ための周期的インターバルに対するものであってもよい。好適な実施例はSSTエントリにおける個別の「圧縮」フラッグを開示しているが、この状態は、更なる圧縮率属性に対するエンコーディング・スペースを提供するために圧縮可能度(DOC)に集約させることが可能である。
好適な実施例は、特に、特殊な「ゼロ」データ・ブロック検出装置およびそのような状況に対して圧縮装置および圧縮解除装置を迂回するための方法を開示しているが、データ・フローのパスにおける固定長のパターンのいかなる反復も検出するように、そのような検出装置を容易に機能強化することが可能であることは当業者には明らかであろう。「ゼロ」ケースは、コンピュータ・システムにおける最も顕著なケースであるが、検出装置が所定の一定長の如何なる反復パターンをも検出するように設計されるとき、わずかなパフォーマンス・ゲインが実現可能であることが認められている。
本発明を使用する圧縮メイン・メモリ・システムは、メモリ圧縮によってもたらされる利点をこれまでどおり保持しながら、全体的により少ないメモリ読み取り待ち時間(より高いパフォーマンス)から恩恵を享受している。本発明は、使用可能なメモリがデータおよびプログラム・コードを保存するために最大限に利用されるよう、メモリ全体の圧縮率をプロセッサからの保存要求に均衡させるための自動的手段を提供する。メモリ圧縮を使用するいずれのシステムも、本発明からのパフォーマンス上の成果を具現することが可能である。そのようなシステムは、ネットワークまたはI/Oアダプタ・キャッシュ、ディスク・ストレージ・サブシステム・キャッシュ、およびプロセッサ・メイン・メモリ・システムを含むが、それに限定されない。他のシステムも、「ゼロ」で埋められたデータ・ブロックをハードウェアで検出および処理するための本発明の手段から恩恵を享受することが可能である。特に、データのブロックを転送することを必要とするアプリケーションは、これらのケースを検出すること、および、「ゼロ」データ・ブロックを表すコードを転送することによって、他の転送に対する通信チャネル帯域幅を自由化することから恩恵を享受することが可能である。
本発明を好適な実施例によって説明したが、本発明が「特許請求の範囲」の主旨および範囲内での修正によって具現化可能であることは当業者には明らかであろう。
ハードウェア圧縮装置および圧縮解除装置を持ったキャッシュおよびメイン・メモリ・システムを有するコンピュータのブロック図である。 メモリ・アドレス・スペースの区分化を示す図である。 本発明の原理に従って修正された圧縮メモリ・セクタ変換テーブルを示す図である。 本発明の原理に従ってキャッシュのない圧縮メイン・メモリ・アクセス制御をアクセスする方法に関する状態図である。 本発明の原理に従って、メモリ全体の圧縮率に関してキャッシュのない圧縮メモリ内に最適な量の非圧縮データを動的に維持する方法に関する状態図である。 本発明の原理に従ってメモリ制御装置を示す図である。

Claims (27)

  1. 圧縮データ・ブロックおよび非圧縮データ・ブロックを含むデータ・ブロックのセクタを有するメモリと、
    前記メモリに対して動作関係に接続され、前記メモリの使用済みメモリ・セクタ・カウントを維持するように適応するセクタ・カウンタと、
    前記メモリに対して動作関係に接続された圧縮メモリ・マネージャと、
    前記圧縮メモリ・マネージャに対して動作関係に接続され、圧縮メモリ閾値を含む圧縮メモリ閾値レジスタと、
    前記圧縮メモリ・マネージャに対して動作関係に接続され、拡張メモリ閾値を含む拡張メモリ閾値レジスタと、
    を含み、
    前記圧縮メモリ・マネージャは、前記使用済みメモリ・セクタ・カウントが前記圧縮メモリ閾値よりも大きいとき、前記メモリにおけるデータ・ブロックを圧縮するように適応し、
    更に、前記圧縮メモリ・マネージャは、前記使用済みメモリ・セクタ・カウントが前記拡張メモリ閾値よりも小さいとき、前記データ・ブロックを圧縮解除するように適応する、
    コンピュータ・システム。
  2. 前記メモリに対して動作関係に接続されたメモリ・コントローラを更に含み、
    前記圧縮する動作および前記圧縮解除する動作は、前記メモリ・コントローラがメモリ・アクセス・リクエストを遂行していないときに前記圧縮メモリ・マネージャによって遂行される、請求項1に記載のコンピュータ・システム。
  3. 前記圧縮メモリ・マネージャに対して動作関係に接続され、優先圧縮メモリ閾値を含む優先圧縮メモリ閾値レジスタを更に含み、
    前記圧縮メモリ・マネージャは、前記メモリ・コントローラのメモリ・アクセス・リクエスト活動に関係なく、前記使用済みメモリ・セクタ・カウントが前記優先圧縮メモリ閾値よりも大きいとき、前記メモリにおける前記データ・ブロックを圧縮するように更に適応する、請求項2に記載のコンピュータ・システム。
  4. 前記メモリに対して動作関係に接続され、前記データ・ブロックの圧縮属性を含むセクタ変換テーブルを更に含む、請求項1に記載のコンピュータ・システム。
  5. 前記圧縮属性は、「すべてゼロ」のデータ・ブロックを表すゼロ属性を含み、
    前記圧縮メモリ・マネージャは前記ゼロ属性を有するデータ・ブロックをゼロ・エントリとして前記メモリに保存するように更に適応し、
    前記ゼロ・エントリはメモリ・セクタを使用することを回避する、
    請求項4に記載のコンピュータ・システム。
  6. 前記圧縮属性は、圧縮不可属性、および未知圧縮率属性を含む、請求項4に記載のコンピュータ・システム。
  7. 前記圧縮メモリ・マネージャは、低圧縮率属性を有するデータ・ブロックを圧縮する前に高圧縮率属性を有するデータ・ブロックを圧縮するように更に適応する、請求項1に記載のコンピュータ・システム。
  8. 圧縮データ・ブロックおよび非圧縮データ・ブロックを含むデータ・ブロックのセクタを有するメモリと、
    前記メモリに対して動作関係に接続され、前記メモリの使用済みメモリ・セクタ・カウントを維持するように適応するセクタ・カウンタと、
    前記メモリに対して動作関係に接続された圧縮メモリ・マネージャと、
    前記圧縮メモリ・マネージャに対して動作関係に接続され、圧縮メモリ閾値を含む圧縮メモリ閾値レジスタと、
    前記メモリに対して動作関係に接続され、前記データ・ブロックが最後にアクセスされた時を表すタッチ・ビットを含むセクタ変換テーブルと、
    前記圧縮メモリ・マネージャに対して動作関係に接続され、拡張メモリ閾値を含む拡張メモリ閾値レジスタと、
    を含み、
    前記圧縮メモリ・マネージャは、前記使用済みメモリ・セクタ・カウントが前記圧縮メモリ閾値よりも大きいとき、前記メモリにおけるデータ・ブロックを圧縮するように適応し、
    前記タッチ・ビットに基づいて、最近のアクセス頻度が低いデータ・ブロックが、最近のアクセス頻度が高いデータ・ブロックよりも前に圧縮され、
    更に、前記圧縮メモリ・マネージャは、前記使用済みメモリ・セクタ・カウントが前記拡張メモリ閾値よりも小さいとき、前記データ・ブロックを圧縮解除するように適応する、
    コンピュータ・システム。
  9. 前記メモリに対して動作関係に接続されたメモリ・コントローラを更に含み、
    前記圧縮する動作および前記圧縮解除する動作は、前記メモリ・コントローラがメモリ・アクセス・リクエストを遂行していないときに前記圧縮メモリ・マネージャによって遂行される、請求項8に記載のコンピュータ・システム。
  10. 前記圧縮メモリ・マネージャに対して動作関係に接続され、優先圧縮メモリ閾値を含む優先圧縮メモリ閾値レジスタを更に含み、
    前記圧縮メモリ・マネージャは、前記メモリ・コントローラのメモリ・アクセス・リクエスト活動に関係なく、前記使用済みメモリ・セクタ・カウントが前記優先圧縮メモリ閾値よりも大きいとき、前記メモリにおける前記データ・ブロックを圧縮するように更に適応する、請求項9に記載のコンピュータ・システム。
  11. 前記セクタ変換テーブルは、「すべてゼロ」のデータ・ブロックを表すゼロ属性を含む前記データ・ブロックの圧縮属性を含み、
    前記圧縮メモリ・マネージャは、前記ゼロ属性を有するデータ・ブロックをゼロ・エントリとして前記メモリに保存するように更に適応し、
    前記ゼロ・エントリはメモリ・セクタを使用することを回避する、
    請求項8に記載のコンピュータ・システム。
  12. 前記圧縮メモリ・マネージャは、低圧縮率属性を有するデータ・ブロックを圧縮する前に高圧縮率属性を有するデータ・ブロックを圧縮するように更に適応する、請求項8に記載のコンピュータ・システム。
  13. 前記セクタ変換テーブルは、圧縮不可属性を含む前記データ・ブロックの圧縮属性を含む、請求項8に記載のコンピュータ・システム。
  14. コンピュータ・システムにおけるセクタ化された圧縮メモリを利用する方法であって、 前記メモリの使用済みメモリ・セクタ・カウントをモニタするステップと、
    前記使用済みメモリ・セクタ・カウントが圧縮メモリ閾値よりも大きいとき、前記メモリにおけるデータ・ブロックを圧縮するステップと、
    前記使用済みメモリ・セクタ・カウントが拡張メモリ閾値よりも小さいとき、前記データ・ブロックを圧縮解除するステップと、
    を含む、方法。
  15. 前記圧縮するステップおよび前記圧縮解除するステップは、前記コンピュータ・システムにおける圧縮メモリ・マネージャがメモリ・アクセス・リクエストを遂行していないときに遂行される、請求項14に記載の方法。
  16. 前記圧縮メモリ・マネージャのメモリ・アクセス・リクエスト活動に関係なく、前記使用済みメモリ・セクタ・カウントが優先圧縮メモリ閾値よりも大きいとき、前記メモリにおける前記データ・ブロックを圧縮するステップを更に含む、請求項15に記載の方法。
  17. 「すべてゼロ」を有するデータ・ブロックをゼロ・エントリとして前記メモリに常に保存するステップを更に含み、
    前記ゼロ・エントリはメモリ・セクタを使用することを回避する、請求項14に記載の方法。
  18. 前記圧縮するステップは、低い圧縮率を有するデータ・ブロックを圧縮する前に高い圧縮率を有するデータ・ブロックを圧縮するステップを更に含む、請求項14に記載の方法。
  19. 前記圧縮解除するステップは、非圧縮データ・ブロックだけを圧縮解除しないようにする、請求項14に記載の方法。
  20. 前記圧縮するステップは、前記コンピュータ・システムのキャッシュに保持されたデータを圧縮しないようにする、請求項14に記載の方法。
  21. コンピュータ・システムおけるセクタ化された圧縮メモリを利用する方法であって、
    前記メモリの使用済みメモリ・セクタ・カウントをモニタするステップと、
    前記使用済みメモリ・セクタ・カウントが圧縮メモリ閾値よりも大きいとき、前記メモリにおけるデータ・ブロックを圧縮するステップと、
    前記使用済みメモリ・セクタ・カウントが拡張メモリ閾値よりも小さいとき、前記データ・ブロックを圧縮解除するステップと、
    を含み、
    前記圧縮するステップは、最近のアクセス頻度が高いデータ・ブロックを圧縮する前に最近のアクセス頻度が低いデータ・ブロックを圧縮するステップを更に含む、方法。
  22. 前記圧縮するステップおよび前記圧縮解除するステップは、前記コンピュータ・システムにおける圧縮メモリ・マネージャがメモリ・アクセス・リクエストを遂行していないときに遂行される、請求項21に記載の方法。
  23. 前記圧縮メモリ・マネージャのメモリ・アクセス・リクエスト活動に関係なく、前記使用済みメモリ・セクタ・カウントが優先圧縮メモリ閾値よりも大きいとき、前記メモリにおける前記データ・ブロックを圧縮するステップを更に含む、請求項22に記載の方法。
  24. 「すべてゼロ」を有するデータ・ブロックをゼロ・エントリとして前記メモリに常に保存するステップを更に含み、
    前記ゼロ・エントリはメモリ・セクタを使用することを回避する、請求項21に記載の方法。
  25. 前記圧縮するステップは、低い圧縮率を有するデータ・ブロックを圧縮する前に高い圧縮率を有するデータ・ブロックを圧縮するステップを更に含む、請求項21に記載の方法。
  26. 前記圧縮解除するステップは、非圧縮データ・ブロックだけを圧縮解除しないようにする、請求項21に記載の方法。
  27. 前記圧縮するステップは、前記コンピュータ・システムのキャッシュに保持されたデータを圧縮しないようにする、請求項21に記載の方法。
JP2004529049A 2002-08-06 2003-03-03 圧縮可能度に基づいて圧縮メイン・メモリを使用するためのシステムおよび方法 Expired - Fee Related JP4051375B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/213,840 US6775751B2 (en) 2002-08-06 2002-08-06 System and method for using a compressed main memory based on degree of compressibility
PCT/US2003/006554 WO2004017208A1 (en) 2002-08-06 2003-03-03 System and method for using a compressed main memory based on degree of compressibility

Publications (2)

Publication Number Publication Date
JP2005535051A JP2005535051A (ja) 2005-11-17
JP4051375B2 true JP4051375B2 (ja) 2008-02-20

Family

ID=31494539

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004529049A Expired - Fee Related JP4051375B2 (ja) 2002-08-06 2003-03-03 圧縮可能度に基づいて圧縮メイン・メモリを使用するためのシステムおよび方法

Country Status (7)

Country Link
US (1) US6775751B2 (ja)
EP (1) EP1546886A4 (ja)
JP (1) JP4051375B2 (ja)
KR (1) KR100745532B1 (ja)
CN (1) CN1329845C (ja)
AU (1) AU2003230590A1 (ja)
WO (1) WO2004017208A1 (ja)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7589789B2 (en) * 1999-05-08 2009-09-15 Lg Electronics Inc. Video converting device and method for digital TV
KR100777271B1 (ko) * 2001-02-28 2007-11-20 엘지전자 주식회사 디지털 시스템의 메모리 관리 방법
US7761497B1 (en) * 2001-07-13 2010-07-20 Vignette Software, LLC Storage medium having a manageable file directory structure
US7363540B2 (en) 2002-10-22 2008-04-22 Microsoft Corporation Transaction-safe FAT file system improvements
US7174420B2 (en) * 2002-10-22 2007-02-06 Microsoft Corporation Transaction-safe FAT file system
US20050071151A1 (en) * 2003-09-30 2005-03-31 Ali-Reza Adl-Tabatabai Compression-decompression mechanism
US20050071566A1 (en) * 2003-09-30 2005-03-31 Ali-Reza Adl-Tabatabai Mechanism to increase data compression in a cache
US7636810B2 (en) * 2003-11-26 2009-12-22 Intel Corporation Method, system, and apparatus for memory compression with flexible in-memory cache
US20050132161A1 (en) * 2003-12-15 2005-06-16 Nokia Corporation Creation of virtual memory space in a memory
US7512750B2 (en) * 2003-12-31 2009-03-31 Intel Corporation Processor and memory controller capable of use in computing system that employs compressed cache lines' worth of information
US7257693B2 (en) * 2004-01-15 2007-08-14 Intel Corporation Multi-processor computing system that employs compressed cache lines' worth of information and processor capable of use in said system
US7383399B2 (en) * 2004-06-30 2008-06-03 Intel Corporation Method and apparatus for memory compression
US7254689B1 (en) * 2004-07-15 2007-08-07 Google Inc. Decompression of block-sorted data
US7243191B2 (en) * 2004-08-31 2007-07-10 Intel Corporation Compressing data in a cache memory
US20060044934A1 (en) 2004-09-02 2006-03-02 Micron Technology, Inc. Cluster based non-volatile memory translation layer
US7702875B1 (en) * 2004-11-18 2010-04-20 Sun Microsystems, Inc. System and method for memory compression
US8321439B2 (en) 2004-12-17 2012-11-27 Microsoft Corporation Quick filename lookup using name hash
US7873596B2 (en) 2006-05-23 2011-01-18 Microsoft Corporation Extending cluster allocations in an extensible file system
US9639554B2 (en) 2004-12-17 2017-05-02 Microsoft Technology Licensing, Llc Extensible file system
US8606830B2 (en) * 2004-12-17 2013-12-10 Microsoft Corporation Contiguous file allocation in an extensible file system
US20060200481A1 (en) * 2005-03-04 2006-09-07 Khalid Goyan Method and system for data optimization and protection in DSP firmware
JP4394047B2 (ja) * 2005-08-05 2010-01-06 信越ポリマー株式会社 キーフレームおよび押釦スイッチ用カバー部材
US20070088920A1 (en) * 2005-10-19 2007-04-19 Philip Garcia Managing data for memory, a data store, and a storage device
WO2008007419A1 (fr) * 2006-07-10 2008-01-17 Fujitsu Microelectronics Limited Contrôleur de mémoire
US7809900B2 (en) * 2006-11-24 2010-10-05 Sandforce, Inc. System, method, and computer program product for delaying an operation that reduces a lifetime of memory
US7747813B2 (en) * 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US7904619B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US7747664B2 (en) 2007-01-16 2010-06-29 Microsoft Corporation Storage system format for transaction safe file system
US7613738B2 (en) 2007-01-16 2009-11-03 Microsoft Corporation FAT directory structure for use in transaction safe file system
US8874518B2 (en) 2007-06-06 2014-10-28 International Business Machines Corporation System, method and program product for backing up data
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
US7987161B2 (en) * 2007-08-23 2011-07-26 Thomson Reuters (Markets) Llc System and method for data compression using compression hardware
US7895242B2 (en) * 2007-10-31 2011-02-22 Microsoft Corporation Compressed storage management
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US7849275B2 (en) 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US9183133B2 (en) * 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
US7930483B2 (en) * 2008-03-04 2011-04-19 International Business Machines Corporation Associativity implementation in a system with directly attached processor memory
US7966455B2 (en) * 2008-03-04 2011-06-21 International Business Machines Corporation Memory compression implementation in a multi-node server system with directly attached processor memory
US7984240B2 (en) * 2008-03-04 2011-07-19 International Business Machines Corporation Memory compression implementation in a system with directly attached processor memory
US8037251B2 (en) * 2008-03-04 2011-10-11 International Business Machines Corporation Memory compression implementation using non-volatile memory in a multi-node server system with directly attached processor memory
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US8108442B2 (en) * 2008-07-22 2012-01-31 Computer Associates Think, Inc. System for compression and storage of data
JP4461187B1 (ja) * 2008-12-24 2010-05-12 株式会社東芝 不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法
US8261174B2 (en) * 2009-01-13 2012-09-04 International Business Machines Corporation Protecting and migrating memory lines
US8560918B1 (en) 2009-04-21 2013-10-15 Marvell International Ltd. Method and apparatus for dynamically selecting an error correction code to be applied to data in a communication system
US8516166B2 (en) * 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US8533550B2 (en) * 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8892809B2 (en) * 2010-10-25 2014-11-18 Marvell World Trade Ltd. Data compression and encoding in a memory system
US8738962B2 (en) 2010-11-17 2014-05-27 International Business Machines Corporation Memory mirroring with memory compression
US8495267B2 (en) 2010-11-24 2013-07-23 International Business Machines Corporation Managing shared computer memory using multiple interrupts
US8452900B2 (en) * 2010-12-30 2013-05-28 Emc Corporation Dynamic compression of an I/O data block
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US8909608B2 (en) * 2012-06-14 2014-12-09 International Business Machines Corporation Reducing decompression latency in a compression storage system
US9053018B2 (en) * 2012-06-29 2015-06-09 International Business Machines Corporation Compressed memory page selection based on a population count of a dataset
KR20140035082A (ko) * 2012-09-13 2014-03-21 삼성전자주식회사 메모리 관리방법
KR102081980B1 (ko) 2012-10-08 2020-02-27 삼성전자 주식회사 메모리 시스템에서의 라이트 동작 또는 리드 동작 수행 방법
US9176858B2 (en) * 2012-11-19 2015-11-03 Hitachi, Ltd. Storage system configured to selectively utilize data compression based on real pool usage rates
US10565099B2 (en) 2012-12-28 2020-02-18 Apple Inc. Methods and apparatus for compressed and compacted virtual memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
KR101423867B1 (ko) * 2013-01-30 2014-07-29 재단법인 다차원 스마트 아이티 융합시스템 연구단 L2 이상의 레벨 캐쉬 캐시를 관리하는 장치 및 방법
US9852055B2 (en) * 2013-02-25 2017-12-26 International Business Machines Corporation Multi-level memory compression
KR102005227B1 (ko) 2013-03-12 2019-07-30 삼성전자 주식회사 데이터 처리 시스템과 이의 동작 방법
US10102148B2 (en) 2013-06-13 2018-10-16 Microsoft Technology Licensing, Llc Page-based compressed storage management
US9477605B2 (en) 2013-07-11 2016-10-25 Advanced Micro Devices, Inc. Memory hierarchy using row-based compression
US11132300B2 (en) * 2013-07-11 2021-09-28 Advanced Micro Devices, Inc. Memory hierarchy using page-based compression
KR102114388B1 (ko) 2013-10-18 2020-06-05 삼성전자주식회사 전자 장치의 메모리 압축 방법 및 장치
US9491103B2 (en) * 2014-02-28 2016-11-08 Qualcomm Incorporated Introducing uncompressed packets in compression flow based on flow control
JP2015176245A (ja) * 2014-03-13 2015-10-05 株式会社東芝 情報処理装置及びデータ構造
US9684625B2 (en) 2014-03-21 2017-06-20 Microsoft Technology Licensing, Llc Asynchronously prefetching sharable memory pages
WO2015199574A1 (en) * 2014-06-27 2015-12-30 Emc Corporation Techniques for automatically freeing space in a log-structured storage system
JP2016057763A (ja) 2014-09-08 2016-04-21 株式会社東芝 キャッシュ装置、及びプロセッサ
US9727479B1 (en) * 2014-09-30 2017-08-08 EMC IP Holding Company LLC Compressing portions of a buffer cache using an LRU queue
CN105630687B (zh) * 2014-10-27 2019-01-08 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器存储装置
US20160124684A1 (en) * 2014-10-30 2016-05-05 ScaleFlux Method to realize object-oriented in-memory data storage and processing
CN104571955A (zh) * 2014-12-27 2015-04-29 华为技术有限公司 提高存储容量的方法和装置
US9632924B2 (en) 2015-03-02 2017-04-25 Microsoft Technology Licensing, Llc Using memory compression to reduce memory commit charge
US10037270B2 (en) 2015-04-14 2018-07-31 Microsoft Technology Licensing, Llc Reducing memory commit charge when compressing memory
US9766816B2 (en) 2015-09-25 2017-09-19 Seagate Technology Llc Compression sampling in tiered storage
US20170109367A1 (en) * 2015-10-16 2017-04-20 International Business Machines Corporation Early compression related processing with offline compression
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10241945B2 (en) 2015-11-05 2019-03-26 International Business Machines Corporation Memory move supporting speculative acquisition of source and destination data granules including copy-type and paste-type instructions
US10346164B2 (en) * 2015-11-05 2019-07-09 International Business Machines Corporation Memory move instruction sequence targeting an accelerator switchboard
US10152322B2 (en) 2015-11-05 2018-12-11 International Business Machines Corporation Memory move instruction sequence including a stream of copy-type and paste-type instructions
US10140052B2 (en) 2015-11-05 2018-11-27 International Business Machines Corporation Memory access in a data processing system utilizing copy and paste instructions
US10126952B2 (en) 2015-11-05 2018-11-13 International Business Machines Corporation Memory move instruction sequence targeting a memory-mapped device
US9996473B2 (en) 2015-11-13 2018-06-12 Samsung Electronics., Ltd Selective underlying exposure storage mapping
US9946642B2 (en) 2015-11-13 2018-04-17 Samsung Electronics Co., Ltd Distributed multimode storage management
US9990304B2 (en) * 2015-11-13 2018-06-05 Samsung Electronics Co., Ltd Multimode storage management system
US9940028B2 (en) 2015-11-13 2018-04-10 Samsung Electronics Co., Ltd Multimode storage device
US9823854B2 (en) * 2016-03-18 2017-11-21 Qualcomm Incorporated Priority-based access of compressed memory lines in memory in a processor-based system
US10191850B2 (en) 2016-03-31 2019-01-29 Qualcomm Incorporated Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system
US10176090B2 (en) * 2016-09-15 2019-01-08 Qualcomm Incorporated Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems
US10387305B2 (en) * 2016-12-23 2019-08-20 Intel Corporation Techniques for compression memory coloring
US10417141B2 (en) * 2017-05-22 2019-09-17 Arm Limited Method and apparatus for hardware management of multiple memory pools
US10649967B2 (en) * 2017-07-18 2020-05-12 Vmware, Inc. Memory object pool use in a distributed index and query system
US11151155B2 (en) 2017-07-18 2021-10-19 Vmware, Inc. Memory use in a distributed index and query system
CN110765031B (zh) * 2019-09-27 2022-08-12 Oppo广东移动通信有限公司 数据存储方法、装置、移动终端及存储介质
US11977525B2 (en) * 2021-03-04 2024-05-07 EMC IP Holding Company LLC Method to optimize ingest in dedupe systems by using compressibility hints
CN114885359A (zh) * 2022-06-09 2022-08-09 中国联合网络通信集团有限公司 时延性能评估方法、接入网设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU679457B2 (en) * 1992-10-22 1997-07-03 Nec Corporation File compression processor
US5710909A (en) * 1996-01-23 1998-01-20 International Business Machines Corporation Data compression utilization method and apparatus for computer main store
US6038571A (en) * 1996-01-31 2000-03-14 Kabushiki Kaisha Toshiba Resource management method and apparatus for information processing system of multitasking facility
US6000009A (en) * 1997-05-06 1999-12-07 International Business Machines Corporation Method and apparatus for allocation of disk memory space for compressed data records
US7024512B1 (en) * 1998-02-10 2006-04-04 International Business Machines Corporation Compression store free-space management
US6446145B1 (en) 2000-01-06 2002-09-03 International Business Machines Corporation Computer memory compression abort and bypass mechanism when cache write back buffer is full
US6549995B1 (en) 2000-01-06 2003-04-15 International Business Machines Corporation Compressor system memory organization and method for low latency access to uncompressed memory regions
US6519733B1 (en) 2000-02-23 2003-02-11 International Business Machines Corporation Method and apparatus for high integrity hardware memory compression
US6457104B1 (en) 2000-03-20 2002-09-24 International Business Machines Corporation System and method for recycling stale memory content in compressed memory systems
US6877081B2 (en) * 2001-02-13 2005-04-05 International Business Machines Corporation System and method for managing memory compression transparent to an operating system

Also Published As

Publication number Publication date
WO2004017208A1 (en) 2004-02-26
EP1546886A4 (en) 2008-05-21
CN1329845C (zh) 2007-08-01
KR100745532B1 (ko) 2007-08-03
EP1546886A1 (en) 2005-06-29
CN1672135A (zh) 2005-09-21
AU2003230590A1 (en) 2004-03-03
US6775751B2 (en) 2004-08-10
KR20050027270A (ko) 2005-03-18
US20040030847A1 (en) 2004-02-12
JP2005535051A (ja) 2005-11-17

Similar Documents

Publication Publication Date Title
JP4051375B2 (ja) 圧縮可能度に基づいて圧縮メイン・メモリを使用するためのシステムおよび方法
US6446145B1 (en) Computer memory compression abort and bypass mechanism when cache write back buffer is full
US6549995B1 (en) Compressor system memory organization and method for low latency access to uncompressed memory regions
US7047382B2 (en) System and method for managing compression and decompression and decompression of system memory in a computer system
US5237460A (en) Storage of compressed data on random access storage devices
US6857045B2 (en) Method and system for updating data in a compressed read cache
US7162584B2 (en) Mechanism to include hints within compressed data
US6349375B1 (en) Compression of data in read only storage and embedded systems
CN107066397B (zh) 用于管理数据迁移的方法、系统和存储介质
US6968424B1 (en) Method and system for transparent compressed memory paging in a computer system
US7143238B2 (en) Mechanism to compress data in a cache
US7958289B2 (en) Method and system for storing memory compressed data onto memory compressed disks
US20070005911A1 (en) Operating System-Based Memory Compression for Embedded Systems
US10310984B2 (en) Storage apparatus and storage control method
US6779100B1 (en) Method and device for address translation for compressed instructions
US20210056030A1 (en) Multi-level system memory with near memory capable of storing compressed cache lines
US7162583B2 (en) Mechanism to store reordered data with compression
US6353871B1 (en) Directory cache for indirectly addressed main memory
WO1993000635A1 (en) Data storage management systems
US7526615B2 (en) Compressed victim cache
US7469320B2 (en) Adaptive replacement cache
CN102792296B (zh) 移动终端中请求页面调度方法、控制器以及移动终端
US20050071566A1 (en) Mechanism to increase data compression in a cache
EP0490239A2 (en) Storage of compressed data on random access storage devices
JP2023012369A (ja) ファイルストレージ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070619

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070918

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071019

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: 20071126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071203

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: 20101207

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131207

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees