JP2007507806A - コンピューターシステム、キャッシュ制御部、方法 - Google Patents

コンピューターシステム、キャッシュ制御部、方法 Download PDF

Info

Publication number
JP2007507806A
JP2007507806A JP2006534088A JP2006534088A JP2007507806A JP 2007507806 A JP2007507806 A JP 2007507806A JP 2006534088 A JP2006534088 A JP 2006534088A JP 2006534088 A JP2006534088 A JP 2006534088A JP 2007507806 A JP2007507806 A JP 2007507806A
Authority
JP
Japan
Prior art keywords
cache
cache line
compressed
computer system
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.)
Granted
Application number
JP2006534088A
Other languages
English (en)
Other versions
JP4009310B2 (ja
Inventor
アドル−タバタバイ,アリ−レザ
グローム,アンワー
フガハリ,ラム
ニューバーン,クリス
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2007507806A publication Critical patent/JP2007507806A/ja
Application granted granted Critical
Publication of JP4009310B2 publication Critical patent/JP4009310B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • 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)

Abstract

ある実施例では、コンピューターシステムが開示される。コンピューターシステムは、中央演算処理装置(CPU)及びCPUに結合されたキャッシュメモリーを有する。キャッシュメモリーは、複数の圧縮可能なキャッシュラインを有し、追加データを格納する。

Description

本発明は、コンピューターシステムに関連する。より詳細には、本発明は中央演算処理装置(CPU)のキャッシュに関連する。
現在、種々の方法がRAM(ランダム・アクセス・メモリー)等のコンピューターシステムの主記憶装置の内容を圧縮するために利用されている。これらの方法は、同じ性能を提供するために必要な物理メモリー空間の量を減少させる。例えば、メモリーが2:1の比を用いて圧縮される場合、メモリーは2倍の量のデータを同じコストで、又は同じ量のデータを半分のコストで格納する。
このような方法の1つに、ニューヨーク州アーモンク市のIBM(アイ・ビー・エム)により開発されたMXT(メモリー・エクスパンジョン・テクノロジー)がある。MXTは、組み込まれた主記憶装置の有効容量を2倍にするメモリーシステムアーキテクチャを用いシステムメモリーのコストを解決する。論理集約型の圧縮器及び伸張器のハードウェアエンジンは、データが共有キャッシュと主記憶装置の間を移動する時に、同時に圧縮及び伸張する手段を提供する。圧縮器は、データブロックを符号化し、アルゴリズムが許容する大きさに圧縮する。
しかしながら、現在は、キャッシュに格納されているデータを圧縮する如何なる方法も存在しない。キャッシュデータを圧縮する機能を有することは、主記憶装置の圧縮と同様の利点をもたらすだろう(例えば、同じ性能を提供するために必要なキャッシュ空間の量を減らす)。
本発明は、以下の詳細な説明、及び本発明の種々の実施例の図からより完全に理解されるだろう。図は、しかしながら、本発明を特定の実施例に制限すると考えられるべきではなく、説明及び理解のためのみに必要なものである。
キャッシュ内のデータを圧縮するメカニズムが説明される。以下の説明で、多くの詳細事項が説明される。しかしながら、当業者には、本発明はこれらの特定の詳細事項なしで実施されて良いことが、明らかであろう。他の例では、本発明の不明瞭さを避けるため、広く知られた構造及び装置がブロック図の形式で詳細に示される。
本願明細書において、「ある実施例」又は「1つの実施例」は、実施例と関連して記述される特定の特長、構造、又は特性が本発明の少なくとも1つの実施例に含まれることを意味する。種々の場所における「ある実施例では」という記述は、必ずしも全て同一の実施例を参照していない。
図1は、コンピューターシステム100の実施例のブロック図である。コンピューターシステム100は、バス105と結合される中央演算処理装置(CPU)102を有する。ある実施例では、CPU102は、カリフォルニア州サンタクララのIntel Corporationから入手できるPentium(登録商標)IIプロセッサーファミリー、Pentium(登録商標)IIIプロセッサーファミリー、及びをPentium(登録商標)IVプロセッサーを含む、Pentium(登録商標)ファミリーのプロセッサーである。あるいは他のCPUが用いられても良い。
チップセット107はまた、バス105に結合される。チップセット107は、メモリー制御ハブ(MCH)110を有する。MCH110は、主システムメモリー115に結合されるメモリー制御部112を有する。主システムメモリー115は、データ及び命令シーケンス及びCPU102又はシステム100に含まれる他の装置により実行されて良いデータ信号により表されたコードを格納する。
ある実施例では、主システムメモリー115はDRAM(ダイナミック・ランダム・アクセス・メモリー)を有する。しかしながら、主システムメモリー115は、他のメモリーの種類を用いて実現されても良い。複数のCPU及び/又は複数のシステムメモリーのような追加の装置もまた、バス105に結合されて良い。
ある実施例では、MCH110は入力/出力制御ハブ(ICH)140にハブインターフェースを経由して結合される。ICH140は、コンピューターシステム100内の入力/出力(I/O)装置にインターフェースを提供する。例えば、ICH140は、オレゴン州ポートランドのPCI Special Interest Group(ピー・シー・アイ・スペシャル・インタレスト・グループ)により開発されたSpecification Revision(スペシフィケーション・リビジョン) 2.1バスに準拠するPeripheral Component Interconnect(周辺機器相互接続)バスと結合されて良い。
ある実施例では、キャッシュメモリー103は、プロセッサー102内に存在し、メモリー115にも格納されるデータ信号を格納する。キャッシュ103は、プロセッサー102によるメモリーアクセスを、アクセスの局所性を利用することにより高速化する。別の実施例では、キャッシュ103はプロセッサー102の外部に存在する。
更なる実施例では、キャッシュ103は圧縮されたキャッシュラインを有し、追加データを同一の大きさの領域に格納させる。図2は、キャッシュ103の物理編成の実施例を示す。ある実施例では、キャッシュ103は、512セット、4ウェイのセットアソシアティブキャッシュである。しかしながら、当業者は、他の大きさを実現しているキャッシュが本発明の真の範囲から逸脱することなく実現されて良いことを理解するだろう。
タグはセットの各ラインと関連付けられる。更に、圧縮ビットは各タグに関連付けられる。圧縮ビットは、各キャッシュラインが圧縮されたデータを有するか否かを示す。圧縮ビットが設定される場合、キャッシュラインの物理メモリーは、2つの圧縮されたコンパニオンラインを有する。コンパニオンラインは、コンパニオンビットのみが異なるアドレスを有する2つのラインである(例えば、ラインの配列に並べられた2つの連続したメモリーライン)。
ある実施例では、コンパニオンビットは、コンパニオンラインが隣接したラインであるように選択される。しかしながら、如何なるビットもコンパニオンビットに選択できる。他の実施例では、MESI状態ビットのような、キャッシュラインの状態を符号化する他のビットと共に圧縮表示を符号化することが可能であって良い。従ってこの空間オーバーヘッドを完全に削除できる。
圧縮ビットが設定されない場合、キャッシュラインの物理メモリーは、1つのラインを圧縮されない状態に保つ。図2の斜線で示される圧縮ビットは、圧縮されたキャッシュラインを示す。図3はキャッシュ103の論理編成の実施例を示す。図3に示されるように、キャッシュラインは2:1の圧縮方法により圧縮されている。例えば、セット0の第2のラインは圧縮されており、従って1つではなく2つのキャッシュラインを格納している。
ある実施例では、各キャッシュラインは、圧縮されていない場合、64バイトのデータを有する。従って、各キャッシュラインは、圧縮されている場合、128バイトのデータを有する。説明された圧縮方法の効果は、各キャッシュタグが種々の長さの論理キャッシュラインに割り付けられることである。その結果、キャッシュ103は、物理的な大きさを増大させずに、2倍のデータ量を格納できる。
図1を再び参照すると、キャッシュ制御部104は、キャッシュ103に結合され、キャッシュ103の動作を管理する。特にキャッシュ制御部104は、キャッシュ103のルックアップ動作を行う。ある実施例では、物理セット及びウェイにアドレスを割り付けるために用いられるハッシング関数は、典型的なキャッシュ制御部で用いられるものから変更される。ある実施例では、ハッシング関数は、コンパニオンラインが同一のセットに割り付けられるよう構成される。その結果として、コンパニオンラインは、1つのアドレスタグを用いる単一のライン(例えばウェイ)に一緒に圧縮されて良い。
図4Aは、圧縮されていないキャッシュに実装されたメモリーアドレスの例を示す。従来のキャッシュでは、アドレスはタグ、セット及びオフセット部に分けられる。セット部は、ラインのセットを選択するために用いられる。同様に、オフセット部は、ライン内のバイトを選択するために用いられるアドレスの下位ビットである。
図4Bは、圧縮されたキャッシュのルックアップのために実装されたメモリーアドレスの実施例を示す。図4Bは、コンパニオンラインを同一のセットに割り付けるために用いられるコンパニオンビットの実装を示す。コンパニオンビットは、例えば、ラインが圧縮されていない場合に用いられる。従って、ラインが圧縮されていない場合、コンパニオンビットは、2つの圧縮されたコンパニオンラインのどちらが利用されるべきかを示す。
ある実施例では、セット選択に利用されるアドレスビットの枠は、左へ1つシフトされ、コンパニオンビットがセット選択とバイトオフセットビットの間に来るようにする。このように、コンパニオンビットとセット選択ビットは重ならないので、コンパニオンラインは同一のキャッシュセットに割り付けられる。コンパニオンビットは、もはやセット選択ビットの一部ではなく、タグの一部になるが、実際のタグの大きさは増大しない。従来の圧縮されていないキャッシュでは、コンパニオンビットは、アドレスの一部であり、セット選択で用いられ、アドレスが奇数又は偶数キャッシュセットに細分されるか否かを決定する。
図5は、圧縮されたキャッシュのタグアレイエントリの実施例を示す。タグアレイエントリはコンパニオンビット(例えば、アドレスタグビットの一部)及び圧縮ビットを有する。圧縮ビットは、圧縮されたキャッシュ103のタグを、従来の圧縮されていないキャッシュのタグより1ビット長くする。圧縮ビットは、ラインが圧縮されているか否かを示す。
特に、圧縮ビットは、コンパニオンビットの扱い方を指定する。圧縮ビットが、ラインが圧縮されていることを示す場合、ラインは圧縮された対であるので、コンパニオンビットは、オフセットの一部として扱われる。圧縮ビットが圧縮されていないことを示している場合、コンパニオンビットはタグアレイの一部として見なされ、オフセットの一部として無視される。
図6は、キャッシュ制御部104の実施例を示すブロック図である。キャッシュ制御部104は、セット及びウェイ選択ロジック610、バイト選択ロジック620及び圧縮ロジック630を有す。セット及びウェイ選択ロジック610は、キャッシュ103内のキャッシュラインを選択するために用いられる。図7は、圧縮されたキャッシュのセット及びウェイ選択ロジック610の実施例を示す。
図7を参照すると、セット及びウェイ選択ロジック610は、タグ比較ロジック710を有する。タグ比較ロジック710は、タグアレイからの入力を受信し、受信したアドレスに基づきキャッシュラインを選択する。タグ比較ロジック710は、キャッシュラインが圧縮されたデータを有するか否かを考慮する。キャッシュラインは種々のデータサイズを有するので、タグ比較ロジック710もまた、特定のラインが圧縮されているか否かにより、種々の長さである。従ってタグ整合は圧縮ビットを考慮する。
図8は、タグ比較ロジック710の実施例を示す。タグ比較ロジック710は、否定排他的論理和(XNOR)ゲート1−n、ORゲート及びANDゲートを有する。XNORゲート及びANDゲートは、従来の圧縮されていないキャッシュに含まれ、対が見つかるまでアドレスをタグアレイ内のタグエントリと比較するために用いられる。ORゲートは、ラインの圧縮状態に基づきコンパニオンビットを選択するために用いられる。
アドレスのコンパニオンビットは、圧縮ビットが設定されているか否かによって、選択的に無視される。以上に説明されたように、圧縮ビットが設定されている場合、キャッシュラインは両方のコンパニオンを有するので、そのアドレスのコンパニオンビットは、タグ整合の間、無視される。圧縮ビットが設定されていない場合、アドレスのコンパニオンビットは、タグのコンパニオンビットと比較される。
等価演算子の「XNOR製品」の構造は、従って、ORゲートを用い、コンパニオンビットを選択的に無視する。ある実施例では、圧縮ビットが設定されている場合(例えば、「don’t care」)、タグのコンパニオンビットは無視されるので、タグのコンパニオンビットは他の用途に利用できる。例えば、ラインが圧縮されている場合、このビットは、2つの異なる圧縮アルゴリズムの間で選択する圧縮方式ビットとして用いられても良い。別の実施例では、コンパニオンビットは、圧縮されたライン内のコンパニオンビットの順序を符号化するために用いられても良い。
他の実施例では、2つのセクターを共に圧縮できる場合、各キャッシュラインは、同一の物理キャッシュラインのみに格納される2つのセクターに仕切られる。タグエントリでは、図9に示されるように、コンパニオン及び圧縮ビットはセクターの存在表示になる。この実施例では、コンパニオンビットは、セクターの識別子(例えば、上位又は下位)であり、従ってセクターIDとして改称される。
従って、「01」は下位セクター(圧縮されない)、「10」は上位セクター(圧縮されない)、そして「11」は両方のセクター(2:1圧縮)を示す。また、この構成では、物理キャッシュラインの大きさは、論理セクターの大きさと同一である。圧縮されていない場合、ラインの各セクターは、同一のセット内の異なる物理ライン(例えば、同一のセットの異なるウェイ)に格納される。
少なくとも2:1に圧縮可能な場合、各ラインの2つのセクターは、単一の物理キャッシュライン(例えば、1つのウェイ)に格納される。留意すべき重要な事は、これは従来のセクターに分けられたキャッシュの設計とは、与えられた論理ラインの異なる論理セクターが、圧縮されない場合、異なるウェイに同時に格納されて良い点で異なることである。
ある実施例では、空いている符号(「00」)は、無効なエントリを示すために用いられ、場合によっては、MESI状態を符号化する他のビットと組み合わせる場合、タグビットのコストを減らす。これは単に代替えの符号化なので、セクター存在ビットは、タグ整合の検出と僅かに異なるロジックを必要とする。図10は、セクター存在符号を実装しているタグ比較ロジック610の別の実施例を示す。
図6を再び参照すると、バイト選択ロジック620は、ライン内のアドレスを指定されたデータを選択する。ある実施例では、バイト選択ロジック620は、圧縮ビットに依存する。図11は、バイト選択ロジック620のある実施例を示す。バイト選択ロジック620は、必要ならば選択されたキャッシュを伸張する伸張器1110を有する。入力マルチプレクサーは、伸張されたキャッシュラインと圧縮されていないキャッシュラインの間で、圧縮ビットに基づき選択する。
ある実施例では、オフセットの範囲はラインが圧縮されているか否かに依存する。ラインが圧縮されている場合、アドレスのコンパニオンビットは、オフセットの上位ビットとして用いられる。ラインが圧縮されていない場合、伸張器1110はバイパスされ、アドレスのコンパニオンビットはオフセットに用いられない。選択されたラインは、物理ラインの大きさの2倍の大きさのバッファに保持され、圧縮されたデータを有する。
別の実施例では、伸張されたワードの半分のどちらを、物理ラインの大きさと同じ長さのバッファに格納するかを選択するために、コンパニオンビットを用いるよう選択しても良い。しかしながら、ライン全体をバッファすることは、キャッシュへの書き込みの後に、データを変更及び再圧縮する際に便利である。
図6を再び参照すると、圧縮ロジック630は、キャッシュラインを圧縮するために用いられる。ある実施例では、キャッシュラインは、Lempel―Ziv(レンペル−ジブ)圧縮アルゴリズムに従い圧縮される。しかしながら、他の実施例では、他の圧縮アルゴリズム(例えば、WK、X−Match、符号ビット圧縮、ランレングス圧縮、等)を利用し、キャッシュラインを圧縮しても良い。
圧縮ロジック630は、ラインが圧縮されるべき時を決定するために用いられて良い。ある実施例では、機会主義的な圧縮が行われ、ラインが圧縮されるべき時を決定する。機会主義的圧縮では、キャッシュミスが生じた場合、要求されたキャッシュラインはメモリー115からフェッチされ、そして、そのコンパニオンラインがキャッシュ内に存在する場合、キャッシュ103は両コンパニオンを1つのラインに圧縮しようとする。コンパニオンラインがキャッシュ103内に存在しない場合、又は2つのコンパニオンが2:1に圧縮できない場合、キャッシュ103は、標準の置換アルゴリズムを用い、フェッチされたラインのための空間を作る。
また、キャッシュ103は、存在するコンパニオンのキャッシュラインを再利用し、新たに圧縮されたコンパニオンの対を格納し、従って置換を回避する。留意すべき事は、タグ整合演算子を変更し、第2のキャッシュアクセスを行わずに、コンパニオンラインが存在するか否かを検査することは簡単であるということである。例えば、コンパニオンビットを除く全てのアドレスタグビットが整合する場合、コンパニオンラインが存在する。
別の実施例では、プリフェッチのメカニズムは、ラインが圧縮されるべきかどうかを決定するために用いられる。プリフェッチ圧縮メカニズムでは、機会主義的手法は、プリフェッチを追加することにより改良される。フェッチされた要求のラインのコンパニオンが存在しない場合、キャッシュはコンパニオンをフェッチし、両コンパニオンを1つのラインに圧縮する。
2つのコンパニオンラインが2:1に圧縮できない場合、キャッシュ103は、プリフェッチされたラインを廃棄するか(従って、バス帯域を消費する)、又は圧縮されていないプリフェッチされたラインをキャッシュに格納するか(従って、2つのラインの全てがセット内で置換される可能性がある)の何れかの選択肢を有する。ある実施例では、ハードウェアは、プログラムがどれだけの場所的局所性及び待ち時間の許容範囲を示すかに基づき、これらの手段の間で適切に切り替えることができる。
他の実施例では、犠牲者圧縮メカニズムが用いられ、ラインが圧縮されるべきか否かを決定する。犠牲者圧縮では、追い出されようとしているライン(例えば、犠牲者)を圧縮する。犠牲者がまだ圧縮されてなく、そのコンパニオンが存在する場合、キャッシュ103は、犠牲者をそのコンパニオンと共に圧縮することにより、犠牲者にキャッシュ内に存在し続ける機会を与える。犠牲者が既に圧縮されていて、そのコンパニオンが存在しない場合、又は犠牲者とそのコンパニオンが2:1に圧縮できない場合、犠牲者は追い出される。またキャッシュ103は、存在するコンパニオンのキャッシュラインを再利用し、圧縮されたコンパニオン対を格納し、従って追い出しを回避する。
データが書き込まれる時、ラインの圧縮可能性は変化して良い。圧縮されたコンパニオン対への書き込みは、もはや圧縮できない対を生じさせる。圧縮されたキャッシュラインが圧縮できなくなった場合、3つの手法が採られる。第1の手法は、単に別のラインを追い出し、展開から生じた追加ラインのための余地を作る。これは、セット内の全てのラインが圧縮された場合、追い出すべき2つのコンパニオンラインを生じさせる。
第2の手法は、書き込まれたラインのコンパニオンを追い出す。第3の手法は、書き込まれたラインを追い出す。これらの手法の何れを選択するかは、圧縮されたキャッシュ103とプロセッサーに最も近い次のキャッシュの間の相互作用に部分的に依存する(例えば、L3が圧縮されたキャッシュである場合、L3とL2の相互作用に依存する)。
圧縮されたキャッシュは、包括的なL3キャッシュであり、L2は書き戻しキャッシュであるとすると、初めの2つの手法はL2キャッシュ内の追い出したラインの無効を含み、複数のレベルの内容を維持する。これはL2又はL1内の最近アクセスしたキャッシュラインを追い出してしまう危険性を有する。第3の手法は、L2の無効を要求せず、書き込まれているラインはL2から追い出されているので、最近アクセスしたキャッシュラインをL2から追い出してしまう危険性を有さない。
以上に説明されたメカニズムは、同一のセットに割り付けられる如何なる2つのキャッシュラインも許容し、そしてそれらは1つのキャッシュラインに共に圧縮されるべきコンパニオンビットのみが異なる。ある実施例では、メカニズムはセット割付機能を変更し、隣接したメモリーラインが一緒に圧縮されるようコンパニオンビットを選択する。これは場所的局所性を利用している。
本発明の多くの代替え及び変更は、以上の説明を読んだ後に、当業者には明らかであろう。説明のために図示及び説明された如何なる特定の実施例も、制限と見なされるべきではない。従って、種々の実施例の詳細に関する言及は、請求項の範囲を制限するものではなく、本発明の特長を引用したに過ぎない。
コンピューターシステムの実施例を示す。 キャッシュの物理編成の実施例を示す。 キャッシュの論理編成の実施例を示す。 圧縮されていないキャッシュに実装されたメモリーアドレスの例を示す。 圧縮されたキャッシュに実装されたメモリーアドレスの実施例を示す。 圧縮されたキャッシュのタグアレイエントリの実施例を示す。 キャッシュ制御部の実施例を示すブロック図である。 圧縮されたキャッシュのセット及びウェイ選択機構の実施例を示す。 タグ比較ロジックの実施例を示す。 圧縮されたキャッシュのタグアレイエントリの別の実施例を示す。 タグ比較ロジックの別の実施例を示す。 バイト選択ロジックの実施例を示す。

Claims (47)

  1. コンピューターシステムであって、
    中央演算処理装置(CPU)、及び
    前記CPUと結合され、追加データを格納する複数の圧縮可能なキャッシュラインを有するキャッシュメモリー
    を有するコンピューターシステム。
  2. 前記コンピューターシステムは、前記キャッシュメモリーのルックアップ動作を実行するキャッシュ制御部を更に有する、請求項1記載のコンピューターシステム。
  3. 前記キャッシュ制御部は、前記CPU内に包含される、請求項1記載のコンピューターシステム。
  4. 前記キャッシュ制御部は、複数のキャッシュラインのそれぞれに対応するタグの配列を有し、各タグは、対応するキャッシュラインが圧縮されているか否かを示す1つ以上の圧縮符号ビットを有する、請求項2記載のコンピューターシステム。
  5. 前記対応する圧縮ビットが、ラインが圧縮されていると示す場合、単一のキャッシュラインは、2つ以上のキャッシュラインを格納する、請求項4記載のコンピューターシステム。
  6. 各タグは、共通のキャッシュセットにどのコンパニオンラインが格納されているかを示す1つ以上のコンパニオン符号ビットを有する、請求項4記載のコンピューターシステム。
  7. 前記コンパニオンラインは、隣接するメモリーラインである、請求項5記載のコンピューターシステム。
  8. 前記コンパニオン符号ビットは、異なる圧縮アルゴリズムの中から選択するための圧縮方式ビットとして利用される、請求項4記載のコンピューターシステム。
  9. 前記コンパニオン符号ビットは、前記圧縮されたライン内のコンパニオンラインの順序を符号化するために用いられる、請求項4記載のコンピューターシステム。
  10. 前記キャッシュ制御部は、キャッシュラインを選択するセット及びウェイ選択ロジックを更に有する、請求項6記載のコンピューターシステム。
  11. 前記セット及びウェイ選択ロジックは、キャッシュラインアドレスをタグの配列内のタグと比較するタグ比較ロジックを有する、請求項10記載のコンピューターシステム。
  12. 前記1つ以上の圧縮符号ビットが、前記キャッシュラインが圧縮されていると示す場合、前記タグ比較ロジックは、前記アドレス内の前記1つ以上のコンパニオン符号ビットを無視する、請求項11記載のコンピューターシステム。
  13. 前記圧縮符号ビットが、前記キャッシュラインが圧縮されていないと示す場合、前記タグ比較ロジックは、前記アドレス内の前記1つ以上のコンパニオンビットを、前記タグ内の前記1つ以上のコンパニオン符号ビットと比較する、請求項11記載のコンピューターシステム。
  14. 前記キャッシュ制御部は、キャッシュラインを圧縮する圧縮ロジックを更に有する、請求項10記載のコンピューターシステム。
  15. 前記圧縮ロジックは、辞書に基づく圧縮アルゴリズムを通じてキャッシュラインを圧縮する、請求項14記載のコンピューターシステム。
  16. 前記圧縮ロジックは、符号ビット圧縮アルゴリズムを通じてキャッシュラインを圧縮する、請求項14記載のコンピューターシステム。
  17. 前記圧縮ロジックは、キャッシュラインが圧縮されるべき時を決定する、請求項14記載のコンピューターシステム。
  18. 前記圧縮ロジックは、機会主義的圧縮に基づき、キャッシュラインを圧縮する、請求項17記載のコンピューターシステム。
  19. 前記圧縮ロジックは、プリフェッチ圧縮に基づき、キャッシュラインを圧縮する、請求項17記載のコンピューターシステム。
  20. 前記圧縮ロジックは、犠牲者圧縮に基づき、キャッシュラインを圧縮する、請求項17記載のコンピューターシステム。
  21. 前記キャッシュ制御部は、キャッシュライン内のアドレスを指定されたデータを選択するバイト選択ロジックを更に有する、請求項14記載のコンピューターシステム。
  22. 前記バイト選択ロジックは、
    選択されたキャッシュラインを伸張する伸張器、
    伸張されたキャッシュラインと伸張されていないキャッシュラインの間で選択する入力マルチプレクサー、及び
    圧縮されていないキャッシュラインの中のコンパニオンラインの間で選択する出力マルチプレクサー
    を有する、請求項21記載のコンピューターシステム。
  23. キャッシュ制御部であって、
    キャッシュ記憶装置内のラインを圧縮する圧縮ロジック、及び
    キャッシュラインを選択するセット及びウェイロジック
    を有する、キャッシュ制御部。
  24. 前記キャッシュラインのそれぞれに対応するタグの配列を更に有し、各タグは、対応するキャッシュラインが圧縮されているか否かを示す1つ以上の圧縮符号ビットを有する、請求項23記載のキャッシュ制御部。
  25. 前記対応する圧縮ビットが、ラインが圧縮されていると示す場合、単一のキャッシュラインは、2つ以上のキャッシュラインを格納する、請求項24記載のキャッシュ制御部。
  26. 各タグは、どのコンパニオンラインが共通のキャッシュセットに格納されているかを示す1つ以上のコンパニオン符号ビットを有する、請求項24記載のキャッシュ制御部。
  27. 前記セット及びウェイ選択ロジックは、キャッシュラインアドレスをタグの配列内のタグと比較するタグ比較ロジックを有する、請求項26記載のキャッシュ制御部。
  28. 前記1つ以上の圧縮符号ビットが、前記キャッシュラインが圧縮されていると示す場合、前記タグ比較ロジックは、前記アドレス内の前記1つ以上のコンパニオン符号ビットを無視する、請求項27記載のキャッシュ制御部。
  29. 前記圧縮符号ビットが、前記キャッシュラインが圧縮されていないと示す場合、前記タグ比較ロジックは、前記アドレス内の前記1つ以上のコンパニオンビットを、前記タグ内の前記1つ以上のコンパニオン符号ビットと比較する、請求項28記載のキャッシュ制御部。
  30. 前記圧縮ロジックは、辞書に基づく圧縮アルゴリズムを通じてキャッシュラインを圧縮する、請求項23記載のキャッシュ制御部。
  31. 前記圧縮ロジックは、符号ビット圧縮アルゴリズムを通じてキャッシュラインを圧縮する、請求項23記載のキャッシュ制御部。
  32. 前記圧縮ロジックは、キャッシュラインが圧縮されるべき時を決定する、請求項23記載のキャッシュ制御部。
  33. 前記キャッシュ制御部は、キャッシュライン内のアドレスを指定されたデータを選択するバイト選択ロジックを更に有する、請求項23記載のキャッシュ制御部。
  34. 前記バイト選択ロジックは、
    選択されたキャッシュラインを伸張する伸張器、
    伸張されたキャッシュラインと伸張されていないキャッシュラインの間で選択する入力マルチプレクサー、及び
    圧縮されていないキャッシュラインの中のコンパニオンラインの間で選択する出力マルチプレクサー
    を有する、請求項33記載のキャッシュ制御部。
  35. 方法であって、
    キャッシュ記憶装置内の第1のキャッシュラインは圧縮されるべきか否かを決定し、及び
    前記第1のキャッシュラインを圧縮する、
    方法。
  36. 前記第1のキャッシュラインを圧縮する段階は、前記第1のキャッシュライン内の第2のキャッシュラインからのデータを格納する段階を有する、請求項35記載の方法。
  37. タグの配列内の前記第1のキャッシュラインと関連付けられたタグを分析し、前記第1のキャッシュラインは圧縮されるべきか否かを決定する段階を更に有する、請求項35記載の方法。
  38. 前記第1のキャッシュラインが圧縮されていない場合、1つ以上のコンパニオン符号ビットを分析する段階を更に有する、請求項37記載の方法。
  39. 前記第1のキャッシュラインが圧縮されている場合、前記1つ以上のコンパニオン符号ビットを無視する段階を更に有する、請求項38記載の方法。
  40. 前記第1のキャッシュラインが圧縮されている場合、前記1つ以上のコンパニオン符号ビットを、異なる圧縮アルゴリズムの間で選択するための圧縮方式ビットとして用いる段階を更に有する、請求項37記載の方法。
  41. 前記第1のキャッシュラインが圧縮されている場合、前記第1のキャッシュライン内コンパニオンラインの順序を符号化するために、前記1つ以上のコンパニオン符号ビットを用いる段階を更に有する、請求項37記載の方法。
  42. コンピューターシステムであって、
    中央演算処理装置(CPU)、
    前記CPUと結合され、追加データを格納する複数の圧縮可能なキャッシュラインを有するキャッシュメモリー、
    前記CPUに結合されるチップセット、及び
    主記憶装置
    を有するコンピューターシステム。
  43. 前記コンピューターシステムは、前記キャッシュメモリーのルックアップ動作を実行するキャッシュ制御部を更に有する、請求項1記載のコンピューターシステム。
  44. 前記キャッシュ制御部は、前記CPU内に包含される、請求項1記載のコンピューターシステム。
  45. 前記キャッシュ制御部は、前記チップセットに包含される、請求項1記載のコンピューターシステム。
  46. 前記キャッシュ制御部は、前記複数のキャッシュラインのそれぞれに対応するタグの配列を有し、各タグは、対応するキャッシュラインが圧縮されているか否かを示す1つ以上の圧縮符号ビットを有する、請求項43記載のコンピューターシステム。
  47. 前記対応する圧縮ビットが、ラインが圧縮されていると示す場合、単一のキャッシュラインは2つ以上のキャッシュラインを格納する、請求項46記載のコンピューターシステム。
JP2006534088A 2003-09-30 2004-09-29 コンピューターシステム、キャッシュ制御部、方法 Expired - Fee Related JP4009310B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/676,480 US7143238B2 (en) 2003-09-30 2003-09-30 Mechanism to compress data in a cache
PCT/US2004/032110 WO2005033946A1 (en) 2003-09-30 2004-09-29 A mechanism to compress data in a cache

Publications (2)

Publication Number Publication Date
JP2007507806A true JP2007507806A (ja) 2007-03-29
JP4009310B2 JP4009310B2 (ja) 2007-11-14

Family

ID=34377403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006534088A Expired - Fee Related JP4009310B2 (ja) 2003-09-30 2004-09-29 コンピューターシステム、キャッシュ制御部、方法

Country Status (4)

Country Link
US (1) US7143238B2 (ja)
JP (1) JP4009310B2 (ja)
CN (1) CN100432959C (ja)
WO (1) WO2005033946A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009098822A (ja) * 2007-10-16 2009-05-07 Sony Corp データ処理装置及び共有メモリのアクセス方法
JP2010073029A (ja) * 2008-09-19 2010-04-02 Toshiba Corp 命令キャッシュシステム

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7243191B2 (en) * 2004-08-31 2007-07-10 Intel Corporation Compressing data in a cache memory
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
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
US20090210622A1 (en) * 2008-02-19 2009-08-20 Stefan Birrer Compressed cache in a controller partition
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
US20130019029A1 (en) * 2011-07-13 2013-01-17 International Business Machines Corporation Lossless compression of a predictive data stream having mixed data types
US8990217B2 (en) 2011-07-13 2015-03-24 International Business Machines Corporation Lossless compression of high nominal-range data
US9261946B2 (en) * 2012-10-11 2016-02-16 Wisconsin Alumni Research Foundation Energy optimized cache memory architecture exploiting spatial locality
KR102336528B1 (ko) 2014-07-07 2021-12-07 삼성전자 주식회사 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법
US9361228B2 (en) 2014-08-05 2016-06-07 Qualcomm Incorporated Cache line compaction of compressed data segments
US20160283390A1 (en) * 2015-03-27 2016-09-29 Intel Corporation Storage cache performance by using compressibility of the data as a criteria for cache insertion
WO2016163421A1 (ja) * 2015-04-08 2016-10-13 国立大学法人奈良先端科学技術大学院大学 データ処理装置
US10025956B2 (en) * 2015-12-18 2018-07-17 Intel Corporation Techniques to compress cryptographic metadata for memory encryption
US10019375B2 (en) * 2016-03-02 2018-07-10 Toshiba Memory Corporation Cache device and semiconductor device including a tag memory storing absence, compression and write state information
US10042576B2 (en) * 2016-08-17 2018-08-07 Advanced Micro Devices, Inc. Method and apparatus for compressing addresses
CN115129618A (zh) * 2017-04-17 2022-09-30 伊姆西Ip控股有限责任公司 用于优化数据缓存的方法和设备
US10983915B2 (en) 2019-08-19 2021-04-20 Advanced Micro Devices, Inc. Flexible dictionary sharing for compressed caches
US11586554B2 (en) * 2020-07-23 2023-02-21 Arm Limited Cache arrangements for data processing systems
US20230315627A1 (en) * 2022-03-16 2023-10-05 International Business Machines Corporation Cache line compression prediction and adaptive compression
US20230297382A1 (en) * 2022-03-16 2023-09-21 International Business Machines Corporation Cache line compression prediction and adaptive compression

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237675A (en) * 1990-06-04 1993-08-17 Maxtor Corporation Apparatus and method for efficient organization of compressed data on a hard disk utilizing an estimated compression factor
US5247638A (en) * 1990-06-18 1993-09-21 Storage Technology Corporation Apparatus for compressing data in a dynamically mapped virtual data storage subsystem
US5206939A (en) * 1990-09-24 1993-04-27 Emc Corporation System and method for disk mapping and data retrieval
JP3426385B2 (ja) * 1995-03-09 2003-07-14 富士通株式会社 ディスク制御装置
US5875454A (en) * 1996-07-24 1999-02-23 International Business Machiness Corporation Compressed data cache storage system
US6115787A (en) * 1996-11-05 2000-09-05 Hitachi, Ltd. Disc storage system having cache memory which stores compressed data
US5798718A (en) * 1997-05-12 1998-08-25 Lexmark International, Inc. Sliding window data compression method and apparatus
US6199126B1 (en) * 1997-09-23 2001-03-06 International Business Machines Corporation Processor transparent on-the-fly instruction stream decompression
US6092071A (en) * 1997-11-04 2000-07-18 International Business Machines Corporation Dedicated input/output processor method and apparatus for access and storage of compressed data
US7024512B1 (en) * 1998-02-10 2006-04-04 International Business Machines Corporation Compression store free-space management
US20010054131A1 (en) * 1999-01-29 2001-12-20 Alvarez Manuel J. System and method for perfoming scalable embedded parallel data compression
US6819271B2 (en) * 1999-01-29 2004-11-16 Quickshift, Inc. Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US6145069A (en) * 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
US6289420B1 (en) * 1999-05-06 2001-09-11 Sun Microsystems, Inc. System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem
US6449689B1 (en) * 1999-08-31 2002-09-10 International Business Machines Corporation System and method for efficiently storing compressed data on a hard disk drive
US6507895B1 (en) * 2000-03-30 2003-01-14 Intel Corporation Method and apparatus for access demarcation
US6523102B1 (en) * 2000-04-14 2003-02-18 Interactive Silicon, Inc. Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules
US6480938B2 (en) * 2000-12-15 2002-11-12 Hewlett-Packard Company Efficient I-cache structure to support instructions crossing line boundaries
US6735673B2 (en) * 2002-01-10 2004-05-11 Hewlett-Packard Development Company, L.P. Apparatus and methods for cache line compression
US6640283B2 (en) * 2002-01-16 2003-10-28 Hewlett-Packard Development Company, L.P. Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size
US6795897B2 (en) * 2002-05-15 2004-09-21 International Business Machines Corporation Selective memory controller access path for directory caching
US7162669B2 (en) * 2003-06-10 2007-01-09 Hewlett-Packard Development Company, L.P. Apparatus and method for compressing redundancy information for embedded memories, including cache memories, of integrated circuits

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009098822A (ja) * 2007-10-16 2009-05-07 Sony Corp データ処理装置及び共有メモリのアクセス方法
JP2010073029A (ja) * 2008-09-19 2010-04-02 Toshiba Corp 命令キャッシュシステム
JP4653830B2 (ja) * 2008-09-19 2011-03-16 株式会社東芝 命令キャッシュシステム

Also Published As

Publication number Publication date
CN100432959C (zh) 2008-11-12
WO2005033946A1 (en) 2005-04-14
US20050071562A1 (en) 2005-03-31
JP4009310B2 (ja) 2007-11-14
CN1853170A (zh) 2006-10-25
US7143238B2 (en) 2006-11-28

Similar Documents

Publication Publication Date Title
JP4009310B2 (ja) コンピューターシステム、キャッシュ制御部、方法
US7162584B2 (en) Mechanism to include hints within compressed data
JP6505132B2 (ja) メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法
US7243191B2 (en) Compressing data in a cache memory
US6640283B2 (en) Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size
USRE43483E1 (en) System and method for managing compression and decompression of system memory in a computer system
US6795897B2 (en) Selective memory controller access path for directory caching
US7493445B2 (en) Cache memory system and control method of the cache memory system
US7162583B2 (en) Mechanism to store reordered data with compression
JP6859361B2 (ja) 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと
JP2017516234A (ja) 次の読取りアドレスプリフェッチングによるメモリ容量圧縮および/またはメモリ帯域幅圧縮を利用するメモリコントローラ、ならびに関連するプロセッサベースシステムおよび方法
JP2005528695A (ja) キャッシュ置換ポリシーの簡略化した実施態様を用いたマルチスレッド化キャッシュのための方法および装置
US11586555B2 (en) Flexible dictionary sharing for compressed caches
US9430394B2 (en) Storage system having data storage lines with different data storage line sizes
EP0942376A1 (en) Method and system for pre-fetch cache interrogation using snoop port
Benveniste et al. Cache-memory interfaces in compressed memory systems
US20050071566A1 (en) Mechanism to increase data compression in a cache
US10140211B2 (en) Cache device and method for storing tag data and cache data in cache device
US6587923B1 (en) Dual line size cache directory
US7966452B2 (en) Cache architecture for a processing unit providing reduced power consumption in cache operation
Angeline et al. Vlsi Design of Cache Compression in Microprocessor Using Pattern Matching Technique

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070213

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070511

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070518

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070613

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070620

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070713

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070831

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

Free format text: PAYMENT UNTIL: 20100907

Year of fee payment: 3

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

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees