JP2007517331A - コンピューターシステム、方法、装置 - Google Patents
コンピューターシステム、方法、装置 Download PDFInfo
- Publication number
- JP2007517331A JP2007517331A JP2006547483A JP2006547483A JP2007517331A JP 2007517331 A JP2007517331 A JP 2007517331A JP 2006547483 A JP2006547483 A JP 2006547483A JP 2006547483 A JP2006547483 A JP 2006547483A JP 2007517331 A JP2007517331 A JP 2007517331A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- hint
- line
- compressed
- computer system
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 27
- 230000006835 compression Effects 0.000 claims abstract description 67
- 238000007906 compression Methods 0.000 claims abstract description 67
- 230000015654 memory Effects 0.000 claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 5
- 230000006837 decompression Effects 0.000 claims description 13
- 239000000284 extract Substances 0.000 claims 9
- 230000004083 survival effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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に結合されたキャッシュメモリー及びキャッシュメモリーに結合されたキャッシュ制御部を有する。キャッシュメモリーは、追加データを格納する複数の圧縮可能なキャッシュラインを有する。キャッシュ制御部は、複数のキャッシュラインの1つ以上を圧縮キャッシュラインに圧縮する圧縮ロジック、及びヒント情報を圧縮キャッシュライン内の未使用領域に格納するヒントロジックを有する。
Description
本発明は、コンピューターシステムに関し、より詳細には、本発明は中央演算処理装置(CPU)キャッシュに関する。
現在、種々の方法が、ランダムアクセスメモリー(RAM)のようなコンピューターシステムの主記憶装置の内容を圧縮するために利用されている。これらの方法は、同一の性能を提供するために必要な物理記憶空間の量を減少させる。例えば、メモリーが2:1の比を用いて圧縮される場合、メモリーは2倍のデータ量を同一のコストで、又は同一のデータ量を半分のコストで格納し得る。
このような方法の1つに、ニューヨーク州アーモンク市のIBM(インターナショナル・ビジネス・マシンズ)社により開発されたメモリー拡張技術(MXT)がある。MXTは、インストールされている主記憶装置の有効容量を2倍にするメモリーシステムアーキテクチャーを用い、システムメモリーのコストを解決する。論理集中型の圧縮器及び伸長器ハードウェアエンジンは、データが共有キャッシュと主記憶装置の間を移動する時に、圧縮と伸長を同時に行う。圧縮器は、データブロックをアルゴリズムの許容範囲で小さく符号化する。
しかしながら、現在、キャッシュに格納されているデータを圧縮する方法はない。キャッシュデータを圧縮する能力を有することは、結果として主記憶の圧縮と同様の効果を得るだろう(例えば、同一の性能を提供するために必要なキャッシュ空間の量を削減する)。
本発明は、以下の詳細な説明及び本発明の種々の実施例の図からより完全に理解されるだろう。図は、しかしながら、本発明を特定の実施例に限定するものと見なされるべきではなく、単に説明及び理解のためである。
キャッシュのデータを圧縮する方法が開示される。以下の説明では、多くの詳細事項が説明される。しかしながら、当業者は、本発明がそのような特定の詳細にかかわらず実施されて良いことを理解するだろう。他の例では、既知の構造及び装置は、本発明の不明瞭さを回避するため、詳細ではなくブロック図の形式で示される。
本願明細書における「ある実施例」又は「実施例」という表現は、実施例と関連付けられて説明される特定の機能、構造、又は特徴が、本発明の少なくとも1つの実施例に包含されるということを意味する。本願明細書における「ある実施例では」という表現は、必ずしも全て同一の実施例を参照するものではない。
図1は、コンピューターシステム100の実施例を示すブロック図である。コンピューターシステム100は、バス105と結合された中央演算処理装置(CPU)102を有する。ある実施例では、CPU102は、カリフォルニア州サンタクララのインテル社から入手可能なPentium(登録商標) II系プロセッサー、Pentium(登録商標) IIIプロセッサー及びPentium(登録商標) IVを含むPentium(登録商標)系プロセッサーの1つである。代案として、他のCPUが利用されて良い。
チップセット107も、バス105と結合される。チップセット107は、メモリーコントローラハブ(MCH)110を有する。MCH110は、主記憶装置115と結合されたメモリー制御部112を有して良い。主記憶装置115は、データ及び命令シーケンス及びCPU102又はシステム100に含まれる他の装置により実行され得るデータ信号により表されるコードを格納する。
ある実施例では、主記憶装置115は、ダイナミックランダムアクセスメモリー(DRAM)を有するが、主記憶装置115は、他のメモリー種類を用いて実施されても良い。複数のCPU及び/又は複数のシステムメモリーのような追加装置はまた、バス105と結合されて良い。
ある実施例では、MCH110は、入出力制御ハブ(ICH)140とハブインターフェースを経由して結合される。ICH140は、コンピューターシステム110内の入出力(I/O)装置にインターフェースを提供する。例えば、ICH140は、オレゴン州ポートランドのPCI−SIG(PCI Special Interest Group)により開発されたPCIバスv2.1と結合されて良い。
圧縮キャッシュ
ある実施例によると、キャッシュメモリー103は、プロセッサー102内に存在し、メモリー115にも格納されるデータ信号を格納する。キャッシュ103は、アクセスの局所性を利用してプロセッサー103によるメモリーアクセスを高速化する。別の実施例では、キャッシュ103は、プロセッサー103の外部に存在する。
ある実施例によると、キャッシュメモリー103は、プロセッサー102内に存在し、メモリー115にも格納されるデータ信号を格納する。キャッシュ103は、アクセスの局所性を利用してプロセッサー103によるメモリーアクセスを高速化する。別の実施例では、キャッシュ103は、プロセッサー103の外部に存在する。
更に別の実施例によると、キャッシュ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は、非圧縮キャッシュで利用されるメモリーアドレスの例を示す。従来のキャッシュでは、アドレスは、タグ、セット及びオフセット部に分割される。セット部は、ライン内のセットの1つを選択するために利用される。同様に、オフセット部は、ライン内のバイトを選択するために利用されるアドレスの下位ビットである。
図4Bは、圧縮キャッシュ内の検索のために利用されるメモリーアドレスの例を示す。図4Bは、コンパニオンラインを同一のセットに位置付けるために利用されるコンパニオンビットの実施例を示す。コンパニオンビットは、ラインが圧縮されていない場合に利用される。従って、ラインが圧縮されていない場合、コンパニオンビットは2つの圧縮コンパニオンラインのどちらが利用されるべきかを示す。
ある実施例では、セット選択に利用されるアドレスビット部は、コンパニオンビットがセット選択とバイトオフセットビットの間に位置するよう、1つ左にシフトされる。このように、コンパニオンビットとセット選択ビットが重なり合わないので、コンパニオンラインは、同一のキャッシュセットに位置する。コンパニオンビットは、もはやセット選択ビットの一部ではなく、タグの一部になるが、実際のタグの大きさは増加しない。従来の非圧縮キャッシュでは、コンパニオンビットは、アドレスの一部であり、セット選択で利用され、アドレスが奇数又は偶数キャッシュセットにハッシュされるかを決定する。
図5は、圧縮キャッシュのタグアレイエントリーの実施例を示す。タグアレイエントリーは、コンパニオンビット(例えばアドレスタグビットの一部として)及び圧縮ビットを有する。圧縮ビットは、圧縮キャッシュ103のタグを従来の非圧縮キャッシュのタグより1ビット長くする。圧縮ビットは、ラインが圧縮されているか否かを示す。
特に、圧縮ビットは、コンパニオンビットの処理方法を特定する。圧縮ビットがラインは圧縮されていると示す場合、ラインは圧縮された対なので、コンパニオンビットは、オフセットの一部として扱われる。圧縮ビットが圧縮を示さない場合、コンパニオンビットは、タグアレイの一部と見なされ、オフセットの一部として無視される。
図6は、キャッシュ制御部104の実施例を示すブロック図である。キャッシュ制御部104は、セット及びウェイ選択ロジック610、バイト選択ロジック620及び圧縮ロジック630を有する。更に、キャッシュ制御部104は、以下に説明されるようにヒントロジック640を有する。セット及びウェイ選択ロジック610は、キャッシュ103内のキャッシュラインを選択するために利用される。
図7は、圧縮キャッシュのセット及びウェイ選択ロジック610の実施例を示す。 セット及びウェイ選択ロジック610は、タグアレイからの入力を受信し受信したアドレスに基づきキャッシュラインを選択するタグ比較ロジック710を有する。タグ比較ロジック710は、キャッシュラインが圧縮データを有するか否かを考慮する。キャッシュラインは可変データサイズを有するので、タグ比較ロジック710も特定のラインが圧縮されているか否かに依存して長さが変わる。従って、タグ整合は、圧縮ビットを考慮する。
図8は、非排他的論理和(XNOR)ゲート1からn、ORゲート及びANDゲートを有するタグ比較ロジック710の実施例を示す。XNORゲート及びANDゲートは、従来の非圧縮キャッシュに含まれ、対応するものが見付かるまで、アドレスをタグアレイ内のタグエントリーと比較するために利用される。ORゲートは、ラインの圧縮状態に基づきコンパニオンビットを選択するために利用される。
アドレスのコンパニオンビットは、圧縮ビットが設定されているか否かに基づき、選択的に無視される。以上に説明されたように、圧縮ビットが設定されている場合、キャッシュラインは両方のコンパニオンを有するので、アドレスのコンパニオンビットは、タグ整合の間無視される。圧縮ビットが設定されていない場合、アドレスのコンパニオンビットは、タグのコンパニオンビットと比較される。
等価演算子の「XNORの結果」の構成は、従って、ORゲートを利用し選択的にコンパニオンビットを無視する。ある実施例では、タグのコンパニオンビットは、圧縮ビットが設定されている(例えば、「dont’ care」である)場合、タグのコンパニオンビットは他の用途に利用され得る。例えば、ラインが圧縮されている場合、このビットは圧縮形式ビットとして用いられ、2つの異なる圧縮アルゴリズムの間の選択に利用されて良い。別の例では、コンパニオンビットは、圧縮ライン内のコンパニオンラインの順序を符号化するために利用され得る。
他の実施例では、各キャッシュラインは、セクターが共に圧縮され得る場合のみ、同一の物理キャッシュラインに格納された2つのセクターに分けられる。タグエントリーでは、コンパニオンビット及び圧縮ビットは、図9に示されるようにセクター存在表示になる。この実施例では、コンパニオンビットはセクター表示(例えば上位又は下位)であり、従ってセクターIDとして改称されている。
従って、「01」は下位セクター(圧縮されていない)を示し、「10」は上位セクター(圧縮されていない)を示し、及び「11」は両方のセクター(2:1圧縮)を示す。また、この構成では、物理キャッシュラインサイズは、論理セクターサイズと等しい。非圧縮の場合、ラインの各セクターは、同一のセット内の異なる物理ライン(例えば、同一のセットの異なるウェイ)に格納される。
少なくとも2:1で圧縮可能な場合、各ラインの2つのセクターは、(例えば、1つのウェイ内の)単一の物理キャッシュラインに格納される。重要なことに、これは、所与の論理ラインの異なる論理セクターが非圧縮時に同時に異なるウェイに格納され得る従来のセクター分けされたキャッシュ構成と異なる。
ある実施例では、未使用符号(「00」)は、MESI状態を符号化する他のビットと結合された場合、タグビットコストを低下する可能性のある無効なエントリーを示すために利用される。これは単に補助的な符号化なので、セクター存在ビットは、タグ整合を検出する若干異なるロジックを必要とする。図10は、セクター存在ビットを利用するタグ比較ロジック710の別の実施例を示す。
再び図6を参照すると、バイト選択ロジック620は、ライン内のアドレス指定されたデータを選択する。ある実施例によると、バイト選択ロジック620は、圧縮ビットに依存する。図11は、バイト選択ロジック620の実施例を示す。バイト選択ロジック620は、選択されたキャッシュラインを必要な場合に伸長する伸長器1110を有する。入力マルチプレクサは、伸長されたキャッシュラインと非圧縮キャッシュラインの間で、圧縮ビットに基づき選択する。
ある実施例では、オフセットの範囲は、ラインが圧縮されているか否かに依存する。ラインが圧縮されている場合、アドレスのコンパニオンビットは、オフセットの高位のビットとして利用される。ラインが圧縮されていない場合、伸長器1110はバイパスされ、アドレスのコンパニオンビットはオフセットに利用されない。選択されたラインは、圧縮データを格納できるよう、物理ラインサイズの2倍のサイズを有するバッファに有せられる。
代案の実施例は、コンパニオンビットを利用し、伸長されたワードの半分のどちらを、物理ラインサイズと同じ長さのバッファに格納するか選択するよう選んで良い。しかしながら、ライン全体のバッファリングは、キャッシュへのライト後にデータを変更及び再圧縮する場合に便利である。
再び図6を参照すると、圧縮ロジック630は、キャッシュラインを圧縮するために利用される。ある実施例では、キャッシュラインは、Lempel−Ziv圧縮アルゴリズムに従い圧縮されている。しかしながら、他の実施例では、キャッシュラインを圧縮するために他の圧縮アルゴリズム(例えば、WK、X―Match、符号ビット圧縮、ラン長圧縮、等)が利用されて良い。
圧縮ロジック630はまた、何時ラインが圧縮されるべきかを決定するために利用されて良い。 ある実施例によると、機を見て圧縮が行われ、何時ラインが圧縮されるべきかが決定されて良い。機を見て圧縮する場合、キャッシュミスの発生時、要求されるキャッシュラインは、メモリー115からフェッチされ、キャッシュ103は、コンパニオンラインがキャッシュに存在する場合、2つのコンパニオンを1つのラインに圧縮しようとする。コンパニオンラインがキャッシュ103に存在しない場合、又は2つのコンパニオンが2:1で圧縮可能でない場合、キャッシュ103は標準の置換アルゴリズムを利用しフェッチされたラインのために空間を作る。
その他の場合、キャッシュ103は存在するコンパニオンのキャッシュラインを再利用し、新たに圧縮されたコンパニオンの対を格納するので、置換を回避する。留意すべきは、タグ整合演算子は、第2のキャッシュアクセスを行うことなくコンパニオンラインが存在するか否かを検査するよう、簡単に変更されることである。例えば、コンパニオンビットを除くアドレスタグビットの全てが整合する場合、コンパニオンラインは存在する。
別の実施例では、プリフェッチ方式が利用され、ラインが圧縮されるべきかどうかを判定する。プリフェッチ方式では、機を見た方法はプリフェッチを追加することにより高機能化される。要求−フェッチされたラインのコンパニオンが存在しない場合、キャッシュはコンパニオンをプリフェッチし、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つのキャッシュラインに一緒に圧縮することが可能である。ある実施例では、この機構はセット位置付け機能を変更し、隣接メモリーラインが一緒に圧縮されるようコンパニオンビットを選択し、空間的局所性を利用する。
圧縮データ内のヒント挿入
以上に説明されたキャッシュ圧縮の機構は、空間的時間的資源の要求を低減するために有効な技術である。一般に、キャッシュ内の全てのブロックは、ある一定の整数倍率(例えば、2:1、3:1、4:1の倍率)により圧縮可能であり、その結果、キャッシュ内に固定サイズの割り付け単位を生じる。例えば、キャッシュ内の固定サイズのラインは、明らかにキャッシュ領域の割り付けを有意に容易にする。
以上に説明されたキャッシュ圧縮の機構は、空間的時間的資源の要求を低減するために有効な技術である。一般に、キャッシュ内の全てのブロックは、ある一定の整数倍率(例えば、2:1、3:1、4:1の倍率)により圧縮可能であり、その結果、キャッシュ内に固定サイズの割り付け単位を生じる。例えば、キャッシュ内の固定サイズのラインは、明らかにキャッシュ領域の割り付けを有意に容易にする。
しかしながら、圧縮アルゴリズムが全てのデータブロックに亘り一貫した有効な圧縮比を有することはほとんど無い。実際に、いくつかの圧縮率の閾値は、一般にキャッシュ構造の設計が並列の場合、圧縮率を数個の整数倍率に制限する特定の実装で選択される。例えば、128バイトブロックのセットで、所与の圧縮アルゴリズムは広範囲の圧縮率を利用し得る。従って、ブロックは、128バイト(圧縮不可)まで1、2、3、4等で圧縮されて良い。他の実施例では、ブロックはまた、バイトで割り切れないビット数(例えば、13ビット)に圧縮されて良い。
しかしながら、キャッシュは一般に8バイト幅の倍数であり、64バイト及び128バイトの転送に更に最適化されて良い。従って、全てのトランザクションがこれら最適化されたサイズに適するよう、圧縮は2から1へ(又は50%)の圧縮に制限されるべきか、又は全く圧縮されてはならない。この強制的な固定した境界の配置は、特定量の断片又は無駄なバイトをトランザクションで生じる。
例えば、図12はセクター分けされたキャッシュの内容の圧縮を示す。キャッシュの各ラインはデータセクターを最大2つ有する。50%又はそれ以下に縮小される場合のみ圧縮が生じるならば、各圧縮ラインでバイトが無駄になる可能性がある(2つのセクターが1つのセクターに圧縮されることに注意)。実際、圧縮アルゴリズムとアプリケーションデータが良いほど、バイトの無駄が多くなる。
ある実施例によると、ヒント及び他の情報は、圧縮時に提供される無効領域に格納される。例えば、この領域の複数のバイトは、特定のキャッシュラインの次のラインのフェッチされた情報を格納するために利用されて良い(例えば、絶対アドレス又はオフセット(要求されるバイト数を制限する)の何れか)。以上に説明されたヒントの挿入は圧縮キャッシュラインに関連して説明されたが、当業者は、ヒントの格納は圧縮メモリー及びバスを経由した圧縮データ転送のような他の用途に利用されて良いことを理解するだろう。
ある実施例では、キャッシュ制御部104(図1)は、データが圧縮された後、ヒントをキャッシュラインに挿入する。ある実施例では、ヒントの符号化は、キャッシュラインがキャッシュ内にライトされる時に生じる。ヒントの符号化は、ヒントロジック640(図6)で管理される。
ある実施例では、符号化されたヒントは、ライン毎にリードされる次のアドレス又はオフセットを示す関連するプリフェッチされたヒントを有する。このような実施例では、ヒントは、特定の格納されたアドレスの考察を提供し、キャッシュの現在のラインが最後にリードされ時、どのラインが次にリードされたかを決定する。このようなヒントは、ヒントが正しい時はいつでも、キャッシュミスを待つより、データのプリフェッチを可能にする。
別の実施例では、符号化されたヒントは、ライン内のどのオフセットがアドレス指定に利用されるべきかを示す、内容に基づくプリフェッチヒントを有する。オフセットは、終了するキャッシュライン内の値が次にプリフェッチされたアドレスとして使用されているトラックを保つために利用される。
更に別の実施例では、ヒントは、正確な置換計画のためにキャッシュの生存履歴又は数を有する。従って、キャッシュが全て使用され新しいラインが受信された場合はいつでも、ヒントはどのラインをキャッシュから廃棄すべきかを決定するために利用されて良い。例えば、ヒントはラインが最後にキャッシュに存在していた期間に使用された周期の数を有して良い。これは、キャッシュに規定のアルゴリズム(例えば、使用頻度が最も低い)を破棄させ、その周期の数だけキャッシュ内に存在しているラインを強制退去させる。結果として、キャッシュは、キャッシュラインが追い出され、従って電力を節約するよう、新しいラインを受信する前にラインを廃棄して良い。
他の実施例では、ヒントは、メモリー又はキャッシュの何れかの圧縮待ち時間を隠す事前の伸長のために、次に利用されるライン/オフセットヒントを有する。このヒントは、次に利用されるキャッシュ内のラインの予測を可能にし、積極的にラインを伸長する。従って、ラインは既に伸長されているので、ラインの伸長に関する待ち時間は排除される。
ある実施例では、キャッシュラインに挿入されたヒントは、固定幅、又は可変幅を有して良い。図13は、固定幅のヒントを有する圧縮ラインの実施例を示す。固定幅のヒントの挿入の結果、無駄なバイト数を固定的に減少させる。しかしながら、図13から分かるように、無駄な領域は依然として圧縮キャッシュラインに存在している。
図14は、可変幅のヒントを有する圧縮ラインの実施例を示す。可変幅のヒントは、キャッシュラインが全て使用されるまで、キャッシュ制御部104により機を見て圧縮キャッシュラインに挿入されて良い。以上に説明されたように、ヒントの挿入は、キャッシュ圧縮に加え、帯域幅圧縮及びメモリー圧縮のために利用されて良い。
ある実施例では、ヒントの復号化は、ライン自体の復号化時に生じる。圧縮キャッシュでは、復号化は、キャッシュ制御部104内のヒントロジック640(図6)で生じる。ある実施例では、復号化は、キャッシュラインがキャッシュ内にリードされる時に生じる。他の実施例では、復号化及び符号化は、存在するラインの各リード及びライトと共に生じて良い。
圧縮バストランザクションでは、復号化及び符号化はメモリー制御部で生じる。また、圧縮メモリートランザクションでは、復号化及び符号化はメモリーバスのどちらかの終端で生じて良い。図15から17は、ヒントロジック640の復号化の実施例を示す。
図15は、キャッシュ制御部又はメモリー制御部における圧縮データ内に組み込まれたヒントの復号化の実施例を示す。このような実施例では、ライン内の全てのデータは、伸長ロジックで受信される。伸長ロジックは、ライン内の全ての圧縮データが伸長された時を認識するので、残りデータはヒントロジックへ送られ、含まれているヒントを復号化する。
図16は、非圧縮キャッシュを用い、バスを経由して受信された圧縮データ内に組み込まれたヒントの復号化の実施例を示す。この実施例では、キャッシュラインは、メモリー制御部内の伸長ロジックにおいてバスから受信される。図15に示された実施例と同様に、伸長ロジックは、ライン内の全ての圧縮データが伸長された時を認識し、残りデータをヒントロジックへ送り、含まれているヒントを復号化する。
図17は、圧縮キャッシュを用い、バスを経由して受信された圧縮データ内に組み込まれたヒントの復号化の実施例を示す。このような実施例では、圧縮データは圧縮キャッシュに格納されるので、受信データを伸長する必要がない。このように、ヒントは、バスに送信される前に、圧縮データから抽出され、そして圧縮データと別に送信される。
また、本発明の多くの代案及び変更は、以上の説明から、この分野の通常の知識を有する者には明らかである。示された如何なる特定の実施例も例であり、本発明を限定する者ではない。従って、種々の実施例の詳細に関する参照は、本発明として考えられる特徴に言及したものであり、請求の範囲を限定するものではない。
Claims (40)
- コンピューターシステムであって、
中央演算処理装置(CPU)、
前記CPUと結合され、追加データを格納する複数の圧縮可能なキャッシュラインを有するキャッシュメモリー、及び
前記キャッシュメモリーと結合され、複数のキャッシュラインの1つ以上を圧縮キャッシュラインに圧縮する圧縮ロジック及び前記圧縮キャッシュライン内の未使用領域にヒント情報を格納するヒントロジックを有するキャッシュ制御部、
を有する、コンピューターシステム。 - 前記キャッシュ制御部は、前記圧縮キャッシュラインを伸長する伸長ロジックを更に有する、請求項1記載のコンピューターシステム。
- 前記ヒントロジックは、前記圧縮キャッシュラインからヒント情報を抽出する、請求項2記載のコンピューターシステム。
- 前記ヒントロジックは、各圧縮キャッシュラインの伸長時にヒント情報を抽出する、請求項3記載のコンピューターシステム。
- 前記ヒントロジックは、前記キャッシュメモリー内への伸長された各キャッシュラインのリード時にヒント情報を抽出する、請求項3記載のコンピューターシステム。
- 前記ヒント情報は、各キャッシュラインの次のアドレス又はオフセットを示すプリフェッチヒントを有する、請求項1記載のコンピューターシステム。
- 前記ヒント情報は、ライン内のどのオフセットがアドレス指定に使用されるべきかを示す内容に基づくプリフェッチヒントを有する、請求項1記載のコンピューターシステム。
- 前記ヒント情報は、置換計画のためのキャッシュの生存履歴又は数を有する、請求項1記載のコンピューターシステム。
- 前記ヒント情報は、前記キャッシュメモリーの圧縮待ち時間を隠すよう事前に伸長するために、次に利用されるライン/オフセットヒントを有する、請求項1記載のコンピューターシステム。
- 前記ヒント情報は、固定幅を有する、請求項1記載のコンピューターシステム。
- 前記ヒント情報は、可変幅を有する、請求項1記載のコンピューターシステム。
- 前記CPUと結合されたメモリー制御部を更に有し、前記メモリー制御部は、
1つ以上のデータラインを圧縮データラインに圧縮する圧縮ロジック、
ヒント情報を前記データライン内の未使用領域に格納するヒントロジック、及び
前記圧縮データラインを伸長する伸長ロジック、
を有する、請求項2記載のコンピューターシステム。 - 前記メモリー制御部と結合され、前記圧縮データラインを送信及び受信するバス、及び
前記バスと結合された主記憶装置、
を更に有する、請求項12記載のコンピューターシステム。 - 方法であって、
圧縮データラインを形成するため1つ以上のデータラインを圧縮する段階、及び
各圧縮データラインにヒント情報を挿入する段階、
を有する、方法。 - 前記ヒント情報は、各圧縮データラインがキャッシュメモリーにライトされる時に挿入される、請求項14記載の方法。
- 前記圧縮データラインを1つ以上のデータラインに伸長する段階、及び
前記ヒント情報を抽出する段階
を更に有する、請求項14記載の方法。 - 前記ヒント情報は、各圧縮データラインがキャッシュメモリーからリードされる時に抽出される、請求項16記載の方法。
- 前記ヒント情報は、各圧縮データラインが伸長される時に抽出される、請求項16記載の方法。
- 装置であって、
1つ以上のデータラインを圧縮データラインに圧縮する圧縮ロジック、及び
ヒント情報を前記データライン内の未使用領域に格納するヒントロジック、
を有する、装置。 - 前記圧縮データラインを伸長する伸長ロジックを更に有する、請求項19記載の装置。
- 前記ヒントロジックは、前記圧縮キャッシュラインからヒント情報を抽出する、請求項20記載の装置。
- 前記ヒントロジックは、各圧縮キャッシュラインの伸長時にヒント情報を抽出する、請求項21記載の装置。
- 前記ヒントロジックは、前記キャッシュメモリー内への伸長された各キャッシュラインのリード時にヒント情報を抽出する、請求項21記載の装置。
- 前記ヒント情報は、各キャッシュラインの次のアドレス又はオフセットを示すプリフェッチヒントを有する、請求項19記載の装置。
- 前記ヒント情報は、アドレス指定に使用されるべきラインのオフセットを示す内容に基づくプリフェッチヒントを有する、請求項19記載の装置。
- 前記ヒント情報は、置換計画のためのキャッシュの生存履歴又は数を有する、請求項19記載の装置。
- 前記ヒント情報は、前記キャッシュメモリーの圧縮待ち時間を隠すよう事前に伸長するために、次に利用されるライン/オフセットヒントを有する、請求項19記載の装置。
- 前記ヒント情報は、固定幅を有する、請求項19記載の装置。
- 前記ヒント情報は、可変幅を有する、請求項19記載の装置。
- 前記装置は、キャッシュ制御部を有する、請求項19記載の装置。
- 前記装置は、メモリー制御部を有する、請求項19記載の装置。
- コンピューターシステムであって、
中央演算処理装置(CPU)、
前記CPUと結合され、複数のキャッシュラインの1つ以上を圧縮キャッシュラインに圧縮する圧縮ロジック及びヒント情報を前記圧縮キャッシュライン内の未使用領域に格納するヒントロジックを有するメモリー制御部、及び
前記メモリー制御部と結合された主記憶装置、
を有する、コンピューターシステム。 - 前記キャッシュ制御部は、前記圧縮キャッシュラインを伸長する伸長ロジックを更に有する、請求項32記載のコンピューターシステム。
- 前記ヒントロジックは、前記圧縮キャッシュラインからヒント情報を抽出する、請求項33記載のコンピューターシステム。
- コントロールハブ/スイッチを有するコンピューターシステムであって、
1つ以上のデータラインを圧縮データラインに圧縮する圧縮ロジック、及び
ヒント情報を前記圧縮データライン内の未使用領域に格納するヒントロジック、
を有する、コンピューターシステム。 - 前記コントロールハブ/スイッチは、前記圧縮キャッシュラインを伸長する伸長ロジックを更に有する、請求項35記載のコンピューターシステム。
- 前記ヒントロジックは、前記圧縮データラインからヒント情報を抽出する、請求項36記載のコンピューターシステム。
- バス制御部を有するコンピューターシステムであって、
1つ以上のデータラインを圧縮データラインに圧縮する圧縮ロジック、及び
ヒント情報を前記圧縮データライン内の未使用領域に格納するヒントロジック、
を有する、コンピューターシステム。 - 前記コントロールハブ/スイッチは、前記圧縮キャッシュラインを伸長する伸長ロジックを更に有する、請求項38記載のコンピューターシステム。
- 前記ヒントロジックは、前記圧縮データラインからヒント情報を抽出する、請求項39記載のコンピューターシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/747,474 US7162584B2 (en) | 2003-12-29 | 2003-12-29 | Mechanism to include hints within compressed data |
PCT/US2004/043673 WO2005066801A2 (en) | 2003-12-29 | 2004-12-23 | A mechanism to include hints within compressed data |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007517331A true JP2007517331A (ja) | 2007-06-28 |
Family
ID=34700749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006547483A Pending JP2007517331A (ja) | 2003-12-29 | 2004-12-23 | コンピューターシステム、方法、装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7162584B2 (ja) |
JP (1) | JP2007517331A (ja) |
CN (1) | CN1902603B (ja) |
GB (1) | GB2426094B (ja) |
WO (1) | WO2005066801A2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007520813A (ja) * | 2004-01-15 | 2007-07-26 | インテル コーポレイション | 圧縮されたキャッシュラインのワース・オブ・インフォメーションを利用したマルチプロセッサ計算システム及び当該システムに利用可能なプロセッサ |
JP2010073029A (ja) * | 2008-09-19 | 2010-04-02 | Toshiba Corp | 命令キャッシュシステム |
JP2010134929A (ja) * | 2008-12-03 | 2010-06-17 | Nvidia Corp | 圧縮状態ビットキャッシュ及びバッキング記憶装置 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788448B2 (en) * | 2004-03-08 | 2010-08-31 | Pmc-Sierra Us, Inc. | Sequencer cache and method for operating the same |
US7225297B2 (en) * | 2004-05-28 | 2007-05-29 | International Business Machines Corporation | Compressed cache lines incorporating embedded prefetch history data |
WO2006061838A2 (en) * | 2004-12-08 | 2006-06-15 | Imagine Communications Ltd. | Distributed statistical multiplexing of multi-media |
EP1717708B1 (en) * | 2005-04-29 | 2010-09-01 | STMicroelectronics Srl | An improved cache memory system |
US20070083711A1 (en) * | 2005-10-07 | 2007-04-12 | International Business Machines Corporation | Reconfiguring caches to support metadata for polymorphism |
US8140833B2 (en) * | 2005-10-07 | 2012-03-20 | International Business Machines Corporation | Implementing polymorphic branch history table reconfiguration |
US7949794B2 (en) | 2006-11-02 | 2011-05-24 | Intel Corporation | PCI express enhancements and extensions |
US7711904B2 (en) * | 2007-03-22 | 2010-05-04 | International Business Machines Corporation | System, method and computer program product for executing a cache replacement algorithm |
US8510509B2 (en) * | 2007-12-18 | 2013-08-13 | International Business Machines Corporation | Data transfer to memory over an input/output (I/O) interconnect |
US20090210622A1 (en) * | 2008-02-19 | 2009-08-20 | Stefan Birrer | Compressed cache in a controller partition |
US20090271578A1 (en) * | 2008-04-23 | 2009-10-29 | Barrett Wayne M | Reducing Memory Fetch Latency Using Next Fetch Hint |
WO2010004455A2 (en) * | 2008-06-16 | 2010-01-14 | Nxp B.V. | A switched-capacitor pipeline adc stage |
EP2304572A1 (en) * | 2008-06-17 | 2011-04-06 | Nxp B.V. | Processing circuit with cache circuit and detection of runs of updated addresses in cache lines |
US20100312828A1 (en) * | 2009-06-03 | 2010-12-09 | Mobixell Networks Ltd. | Server-controlled download of streaming media files |
US8527649B2 (en) * | 2010-03-09 | 2013-09-03 | Mobixell Networks Ltd. | Multi-stream bit rate adaptation |
US8832709B2 (en) | 2010-07-19 | 2014-09-09 | Flash Networks Ltd. | Network optimization |
US8688074B2 (en) | 2011-02-28 | 2014-04-01 | Moisixell Networks Ltd. | Service classification of web traffic |
JP5895229B2 (ja) * | 2011-06-10 | 2016-03-30 | パナソニックIpマネジメント株式会社 | 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法 |
WO2012113206A1 (zh) * | 2011-08-15 | 2012-08-30 | 展讯通信(上海)有限公司 | 移动终端中请求页面调度方法、控制器以及移动终端 |
US8725939B1 (en) | 2011-11-30 | 2014-05-13 | Emc Corporation | System and method for improving cache performance |
US9424175B1 (en) | 2011-11-30 | 2016-08-23 | Emc Corporation | System and method for improving cache performance |
US8738858B1 (en) | 2011-11-30 | 2014-05-27 | Emc Corporation | System and method for improving cache performance |
US9208098B1 (en) * | 2011-11-30 | 2015-12-08 | Emc Corporation | System and method for improving cache performance |
US8738857B1 (en) | 2011-11-30 | 2014-05-27 | Emc Corporation | System and method for improving cache performance |
US9081833B1 (en) * | 2012-04-06 | 2015-07-14 | Google Inc. | Providing a tooltip based on search results |
US9582426B2 (en) | 2013-08-20 | 2017-02-28 | International Business Machines Corporation | Hardware managed compressed cache |
CN108108311A (zh) | 2013-12-12 | 2018-06-01 | 株式会社日立制作所 | 存储装置及存储装置的控制方法 |
US9612833B2 (en) * | 2014-02-28 | 2017-04-04 | Intel Corporation | Handling compressed data over distributed cache fabric |
WO2015142341A1 (en) * | 2014-03-20 | 2015-09-24 | Hewleet-Packard Development Company, L. P. | Dynamic memory expansion by data compression |
JP2016028319A (ja) * | 2014-07-08 | 2016-02-25 | 富士通株式会社 | アクセス制御プログラム、アクセス制御装置及びアクセス制御方法 |
US9361228B2 (en) | 2014-08-05 | 2016-06-07 | Qualcomm Incorporated | Cache line compaction of compressed data segments |
US9612971B2 (en) | 2014-08-19 | 2017-04-04 | Qualcomm Incorporated | Supplemental write cache command for bandwidth compression |
US9858196B2 (en) | 2014-08-19 | 2018-01-02 | Qualcomm Incorporated | Power aware padding |
US10102129B2 (en) * | 2015-12-21 | 2018-10-16 | Intel Corporation | Minimizing snoop traffic locally and across cores on a chip multi-core fabric |
US10048868B2 (en) * | 2016-09-29 | 2018-08-14 | Intel Corporation | Replacement of a block with a compressed block to increase capacity of a memory-side cache |
US9917597B1 (en) * | 2016-12-16 | 2018-03-13 | Intel Corporation | Method and apparatus for accelerated data compression with hints and filtering |
US10503652B2 (en) | 2017-04-01 | 2019-12-10 | Intel Corporation | Sector cache for compression |
US11262912B2 (en) | 2017-11-13 | 2022-03-01 | Weka.IO Ltd. | File operations in a distributed storage system |
US11573899B1 (en) * | 2021-10-21 | 2023-02-07 | International Business Machines Corporation | Transparent interleaving of compressed cache lines |
US20230297382A1 (en) * | 2022-03-16 | 2023-09-21 | International Business Machines Corporation | Cache line compression prediction and adaptive compression |
US12066935B2 (en) * | 2022-03-16 | 2024-08-20 | International Business Machines Corporation | Cache line compression prediction and adaptive compression |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3717212B2 (ja) | 1995-10-27 | 2005-11-16 | 株式会社日立製作所 | 情報処理装置及び情報処理ユニット |
US5944815A (en) | 1998-01-12 | 1999-08-31 | Advanced Micro Devices, Inc. | Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access |
US6553411B1 (en) * | 1999-05-18 | 2003-04-22 | International Business Machines Corporation | System and method for cache acceleration |
CA2387653C (en) * | 1999-08-13 | 2006-11-14 | Fujitsu Limited | File processing method, data processing device and storage medium |
US7082166B2 (en) * | 2000-04-17 | 2006-07-25 | Pts Corporation | Decoder for decoding segment-based encoding of video data using segmentation performed at a decoder |
GB2366643B (en) * | 2000-05-25 | 2002-05-01 | Siroyan Ltd | Methods of compressing instructions for processors |
US6735673B2 (en) | 2002-01-10 | 2004-05-11 | Hewlett-Packard Development Company, L.P. | Apparatus and methods for cache line compression |
-
2003
- 2003-12-29 US US10/747,474 patent/US7162584B2/en not_active Expired - Fee Related
-
2004
- 2004-12-23 GB GB0614949A patent/GB2426094B/en not_active Expired - Fee Related
- 2004-12-23 CN CN2004800393626A patent/CN1902603B/zh not_active Expired - Fee Related
- 2004-12-23 WO PCT/US2004/043673 patent/WO2005066801A2/en active Application Filing
- 2004-12-23 JP JP2006547483A patent/JP2007517331A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007520813A (ja) * | 2004-01-15 | 2007-07-26 | インテル コーポレイション | 圧縮されたキャッシュラインのワース・オブ・インフォメーションを利用したマルチプロセッサ計算システム及び当該システムに利用可能なプロセッサ |
JP4652344B2 (ja) * | 2004-01-15 | 2011-03-16 | インテル コーポレイション | 圧縮されたキャッシュラインのワース・オブ・インフォメーションを利用したマルチプロセッサ計算システム及び当該システムに利用可能なプロセッサ |
JP2010073029A (ja) * | 2008-09-19 | 2010-04-02 | Toshiba Corp | 命令キャッシュシステム |
JP4653830B2 (ja) * | 2008-09-19 | 2011-03-16 | 株式会社東芝 | 命令キャッシュシステム |
JP2010134929A (ja) * | 2008-12-03 | 2010-06-17 | Nvidia Corp | 圧縮状態ビットキャッシュ及びバッキング記憶装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2005066801A2 (en) | 2005-07-21 |
GB2426094B (en) | 2007-08-29 |
WO2005066801A3 (en) | 2006-02-16 |
US20050144387A1 (en) | 2005-06-30 |
GB0614949D0 (en) | 2006-09-06 |
US7162584B2 (en) | 2007-01-09 |
CN1902603A (zh) | 2007-01-24 |
CN1902603B (zh) | 2010-05-26 |
GB2426094A (en) | 2006-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007517331A (ja) | コンピューターシステム、方法、装置 | |
JP4009310B2 (ja) | コンピューターシステム、キャッシュ制御部、方法 | |
US7243191B2 (en) | Compressing data in a cache memory | |
JP6505132B2 (ja) | メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法 | |
US6640283B2 (en) | Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size | |
JP3399520B2 (ja) | 圧縮メイン・メモリの仮想非圧縮キャッシュ | |
CN107250991B (zh) | 透明硬件辅助存储器解压缩 | |
US6879266B1 (en) | Memory module including scalable embedded parallel data compression and decompression engines | |
USRE43483E1 (en) | System and method for managing compression and decompression of system memory in a computer system | |
JP2007519100A (ja) | コンピューターシステム、方法、装置 | |
US7493445B2 (en) | Cache memory system and control method of the cache memory system | |
JP4653830B2 (ja) | 命令キャッシュシステム | |
US6353871B1 (en) | Directory cache for indirectly addressed main memory | |
US10140211B2 (en) | Cache device and method for storing tag data and cache data in cache device | |
Rizzo | A very fast algorithm for RAM compression | |
Benveniste et al. | Cache-memory interfaces in compressed memory systems | |
US6587923B1 (en) | Dual line size cache directory | |
US20050071566A1 (en) | Mechanism to increase data compression in a cache | |
US6601155B2 (en) | Hot way caches: an energy saving technique for high performance caches | |
Keramidas et al. | Dynamic dictionary-based data compression for level-1 caches | |
Lahiry et al. | Dual dictionary compression for the last level cache | |
Kesavan et al. | Comparative Study on Data Compression Techniques in Cache to Promote Performance | |
Sardashti et al. | Cache/Memory Link Compression | |
US7966452B2 (en) | Cache architecture for a processing unit providing reduced power consumption in cache operation | |
Lee et al. | Performance analysis of a selectively compressed memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090825 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100209 |