JP4008826B2 - オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置 - Google Patents
オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置 Download PDFInfo
- Publication number
- JP4008826B2 JP4008826B2 JP2003008220A JP2003008220A JP4008826B2 JP 4008826 B2 JP4008826 B2 JP 4008826B2 JP 2003008220 A JP2003008220 A JP 2003008220A JP 2003008220 A JP2003008220 A JP 2003008220A JP 4008826 B2 JP4008826 B2 JP 4008826B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- memory
- data
- tag
- line
- 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
Links
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
- 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
-
- 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
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)
Description
【発明の属する技術分野】
本発明は、高性能プロセッサ集積回路のキャッシュ設計の分野に関し、特に、大きくて高レベルのオンチップキャッシュにおいてデータを圧縮する装置に関する。
【0002】
【従来の技術】
キャッシュメモリは、それよりも大きくて低速のメモリシステムの内容の部分的な複製を記憶する高速メモリシステムである。キャッシュに記憶された部分的複製は通常は、プロセッサにより最近アクセスされた一層大きなメモリシステムの内容の一部を含むものである。キャッシュメモリは、多数のプログラムが同一の又は近くのコード及びデータロケーションに繰り返しアクセスするという点において利点を提供する。すなわち、命令の実行は、統計的に、最近アクセスされたロケーション又はその最近アクセスされたロケーションの近くのロケーションにアクセスする可能性の方が、メモリ内の他のロケーションにアクセスする可能性よりも高いためである。
【0003】
多くの最新のコンピュータシステムは、メインメモリにメモリデータをキャッシュするために階層をなすキャッシュメモリシステムを実施している。かかるシステムのメインメモリは、一般に、ダイナミックランダムアクセスメモリ(DRAM)からなる。IntelのPentium(R)-II及びPentium(R)-III回路を含む多くの一般的なプロセッサは2レベルのキャッシュを有する。3レベル及び4レベルのキャッシュを有する計算処理システムも存在する。
【0004】
キャッシュメモリシステムは、ストレージ(storage)に加えて、一層大きくて低速のメモリシステムのうちキャッシュ内に保持されている部分を識別する装置もまた有し、これはキャッシュタグメモリという形をとることが多い。
【0005】
キャッシュシステムは一般に、キャッシュタグメモリサブシステム及びキャッシュデータメモリサブシステムを有する。各キャッシュデータメモリは一般に、キャッシュラインとして知られる所定サイズのデータ単位で動作する。該キャッシュラインのサイズは、マルチレベルのキャッシュの各レベル毎に異なり得るものである。キャッシュラインは、一般にプロセッサにより使用されるワード又はバイトサイズよりも大きく、したがって最近使用されたロケーションだけでなく最近使用されたロケーションの近くのデータを含むことが可能である。
【0006】
代表的なキャッシュメモリシステムでは、特定のメインメモリアドレスにあるメモリロケーションに対して読み出しが行われる際に、メインメモリアドレスの一部からキャッシュラインアドレスが導出される。該キャッシュラインアドレスの一部は一般に、キャッシュタグメモリとキャッシュデータメモリに提示され、すなわちそれら両メモリに対する読み出し操作が行われる。
【0007】
キャッシュタグメモリは一般に1つ又は2つ以上のアドレスタグフィールドを含む。キャッシュにおける複数の「Way」の「アソシエイティビティ」に対応するために複数のアドレスタグフィールドを設けることが可能であり、また同フィールドを設けることが多い。各アドレスタグフィールドが、キャッシュラインアドレスの残りのビットと比較されて、キャッシュデータメモリから読み取ったデータのどこかの部分が所望のメインメモリアドレスにおけるデータに対応しているか否かが判定される。そのタグが、所望のデータがキャッシュデータメモリ内にあることを示している場合には、該データがプロセッサと次の下位レベルのキャッシュとに提示され、そうでない場合には、読み出し操作は、次の上位レベルのキャッシュへと進められる。上位レベルのキャッシュが存在しない場合には、読み出し操作はメインメモリへと進められる。NWayセットアソシエイティブキャッシュは、かかる所望のデータアドレスの一部に対するアドレスタグフィールドの比較をN回同時に実行する。
【0008】
一般に、タグメモリは、データ情報だけでなくステータス情報も含む。このステータス情報は、キャッシュ内の情報が一層高レベルのメモリに既に書き込まれているがまだ更新されていないことを示す「書込済」フラグと、キャッシュ内の情報が有効であることを示す「有効」フラグとを含むことができる。
【0009】
キャッシュ「ヒット」は、キャッシュへのメモリアクセスが行われて、該キャッシュシステムが、そのタグメモリを調べることにより、要求されたデータがキャッシュ内に存在し有効であることを見出した際に発生する。キャッシュ「ミス」は、キャッシュへのメモリアクセスが行われて、キャッシュシステムが、そのタグメモリを調べて、要求されたデータがキャッシュ内に存在せず有効でないことを見出した際に発生する。
【0010】
キャッシュ「ミス」が、典型的なマルチレベルキャッシュシステムの低レベルキャッシュで発生した場合には、メインメモリアドレスが次のレベルのキャッシュに渡されて、上位レベルのキャッシュタグメモリが調べられ、該上位レベルで「ヒット」又は「ミス」が存在するか否かが判定される。キャッシュ「ミス」が最高レベルのキャッシュで発生した場合には、一般にリファレンスがメインメモリに渡される。
【0011】
一般に、セットアソシエイティブキャッシュタグサブシステムにおけるアソシエイティビティの「Way」の数は、タグメモリの各ラインにおけるアドレスタグの組とそれに対応するコンパレータの組の数である。ストレージ(storage)の「Way」の数は、キャッシュタグメモリの単一ラインを介して記憶し個々に参照することができるキャッシュライン(又はスーパーライン)の数である。殆どのキャッシュでは、アソシエイティビティのWayの数は、ストレージのWayの数と同じである。キャッシュスーパーラインは、タグメモリの1ライン中の単一のアドレスタグにより参照することができる複数のキャッシュラインを組み合わせたものである。
【0012】
ライトスルーキャッシュは、キャッシュに記憶されているデータに対する書き込み操作によって、一層高レベルのキャッシュ内又はメインメモリ内のデータを即座に更新するものである。ライトバックキャッシュは、キャッシュに記憶されているデータに対する書き込み操作によって、キャッシュにデータを書き込むが上位レベルのキャッシュ内又はメインメモリ内のデータの更新を遅延させるものである。ライトバックモード及びライトスルーモードでのキャッシュの動作は、当業界で周知のところである。
【0013】
キャッシュ「ミス」が何れかのレベルのキャッシュで生じた場合には、上位レベルのキャッシュ又はメインメモリからフェッチされたデータは、一般にキャッシュのデータメモリに記憶され、データが現在存在することを反映するようタグメモリが更新される。また一般に、この新しくフェッチされるデータのための空きを作成するために他のデータを排除する必要がある可能性がある。
【0014】
キャッシュ「ヒット率」は、システム内の全メモリリファレンスに対するキャッシュ内の「ヒット」するメモリリファレンスの比率である。キャッシュを有するプロセッサの実効性能は、キャッシュ「ヒット率」により劇的に変動し得ることが知られている。またヒット率は、プログラムの特性、キャッシュサイズ、割り込みイベントの発生、及びその他の要因により変動することが知られている。特に、有効キャッシュサイズが大きいと、キャッシュサイズが小さいときよりもヒット率が大幅によくなることがあることが知られている。
【0015】
したがって、有効キャッシュサイズが大きいと有利である。
【0016】
多くのコンピュータシステムは、マルチプロセッサを実施しており、その個々のプロセッサは、メインメモリリファレンスをキャッシュするためのそれ自体のキャッシュシステムを有する。一般に、かかるシステムのプロセッサは、共有メモリにアクセスすることが可能である。かかるコンピュータシステムのキャッシュメモリではコヒーレンシが必要となる。キャッシュコヒーレンシとは、システム内の各キャッシュが同じメモリ値を「見ている」という意味である。したがって、キャッシュが、特定のメモリロケーションの内容を変更したい場合には、該キャッシュ内の該メモリロケーションの複製を有するシステム内の他の全てのキャッシュの内容を更新し又は無効にしなければならない。
【0017】
【発明が解決しようとする課題】
データを圧縮することができる多数の方法が当業界で知られている。かかる方法として、ランレングスアルゴリズム、反復ベースのアルゴリズム、及び辞書ベースのアルゴリズムが挙げられる。ランレングスアルゴリズムは、一般にファクシミリ伝送に使用されている。ディスクストレージ及びモデムデータ伝送のためにデータを圧縮し解凍するソフトウェアツールは当業界で一般的なものである。ディスクデータをメインメモリにキャッシュする際に該ディスクデータを圧縮し解凍するソフトウェアツールが知られている。メインメモリページを圧縮し解凍するためのソフトウェアユーティリティもまた知られている。かかるユーティリティとツールの殆どは、その圧縮操作及び解凍操作の両方を実行するためにシステムのプロセッサを利用するものであり、かかるユーティリティ及びツールは、システム性能に悪影響を与えるほどプロセッサ時間を消費し得るものである。
【0018】
多くのシステムは、メインメモリ又はメインメモリと類似した速度の他のメモリへのディスクデータのキャッシングに備えるものである。本発明の目的上、メインメモリ又はメインメモリと類似した速度のメモリにディスクデータをキャッシュするキャッシュがディスクキャッシュであり、プロセッサにより情報がフェッチされる際にメインメモリリファレンスをキャッシュするキャッシュがプロセッサキャッシュである。オンチップキャッシュは、プロセッサと同じ集積回路上に配置されたプロセッサキャッシュである。
【0019】
キャッシュメモリに記憶されるデータは、一般に圧縮形式では記憶されない。これは、有効キャッシュサイズを大きくしそれによりヒット率を高めるのに有利である。
【0020】
一般に、データ圧縮は、データ解凍よりも多くの時間を要する。これは、ランレングスをカウントし、反復を検出し、及び辞書を構築するのに時間を要するためである。
【0021】
従来例には、圧縮した命令のストリームを記憶するプロセッサキャッシュが開示されている(例えば特許文献1参照)。また別の従来例にも、圧縮した命令のストリームを記憶するプロセッサキャッシュが開示されている(例えば特許文献2参照)。特許文献1の図8は、ローダブルモジュールを生成する際に命令ストリームを圧縮することを開示しており、プロセッサ上で実行するソフトウェア圧縮ユーティリティが意図されていることは明らかである。特許文献1及び特許文献2の圧縮された命令ストリームは、その命令がキャッシュからプロセッサへと読み込まれる際に専用のハードウェアにより「オンザフライ」で解凍されるものと思われる。
【0022】
プロセッサキャッシュが少なくとも何らかのデータ及び命令を圧縮形式で記憶することにより、圧縮なしで利用可能なサイズよりも大きい有効キャッシュサイズを提供することが有利である。また、残りのシステム構成要素に対してトランスペアレントに(すなわち透過的に)圧縮及び解凍を実行して、情報の圧縮に関連する遅延を伴うことなくキャッシュへの書き込みを行うことが有利である。
【0023】
【特許文献1】
米国特許第5,826,054号明細書
【0024】
【特許文献2】
米国特許第6,216,213号明細書
【0025】
【課題を解決するための手段】
命令及びデータを記憶するプロセッサキャッシュサブシステムは、命令及びデータ情報を圧縮形式及び非圧縮形式の両方で記憶することが可能である。最初に該キャッシュサブシステムに非圧縮情報が書き込まれ、圧縮エンジンが、そのキャッシュをスキャンして前記非圧縮情報を圧縮情報に置換すると共に再使用に備えて空きスペースを解放するために提供される。
【0026】
特定の実施形態では、キャッシュサブシステムは、システム内に第2レベルのキャッシュを構成しているが、本発明が第3更には第4レベルのキャッシュサブシステムにも適用可能であることが予想される。
【0027】
第1レベルキャッシュ内でのキャッシュミスの発生時には、プロセッサリファレンスがキャッシュサブシステムに渡される。タグメモリをアドレス指定するために各リファレンスアドレスの一部が使用される。タグメモリは、少なくとも1つ(好ましくは2つ以上の)タグアドレスフィールドと、キャッシュ管理用のフラグと、キャッシュデータメモリ中の各スーパーラインの各キャッシュラインのロケーションを示す各Way毎のデータラインポインタとを含む。特定の実施形態では、キャッシュは、4ラインのスーパーラインにおける64バイトのラインとして編成される。キャッシュデータメモリは、サブラインのアレイとして編成される。この場合、2つ又は3つ以上のサブラインが各キャッシュラインを構成し、特定の実施形態ではキャッシュは32バイトのサブラインを有するものとなる。キャッシュデータメモリ内の各サブラインに「圧縮済」フラグが関連付けされる。
【0028】
キャッシュヒットは、タグメモリのタグアドレスフィールドをリファレンスアドレスの追加ビットと比較することにより決定される。キャッシュヒットが生じると、タグメモリからのデータラインポインタが使用されて、キャッシュデータメモリ内の情報の位置が特定される。圧縮された情報は、第1レベルキャッシュ及びプロセッサに送られる前に解凍される。
【0029】
速度を高めるために、キャッシュミスが生じた際に上位レベルのキャッシュ又はメインメモリから取り出された情報は、適切に更新されたタグ情報及びポインタと共にキャッシュデータメモリに非圧縮形式で書き込まれる。この情報は、空きスペースリストに示されたロケーションに書き込まれ、圧縮エンジンにより探し出されて圧縮されるまで非圧縮状態のままとなる。
【0030】
キャッシュに入れられた情報は、タグが再利用されるとき、又は空きスペースリストが所定のしきい値未満になったときに追い出される。
【0031】
もう1つの実施形態では、キャッシュは、16Wayのアソシエイティビティのための十分なアドレスタグを有するキャッシュタグメモリによりアドレス指定される。各アドレスタグはWay指示子及びフラグに関連付けされる。各アドレスタグ毎のフラグには、圧縮済フラグ及び幅指示子が存在する。
【0032】
関連付けされたキャッシュデータメモリは、12Wayの非圧縮情報を記憶するのに十分なメモリを有する。キャッシュデータメモリ内の各タグメモリラインに対応するロケーションにキャッシュライングループが記憶される。各キャッシュライングループ内の非圧縮データを指定するのに必要となる数よりも多く提供されるアドレスタグは、本書では過剰アドレスタグと称することとする。
【0033】
各アドレスタグと関連付けされたWay指示子は、アドレスタグと関連付けされたキャッシュラインを記憶している可能性のあるキャッシュライングループ中の場所を示す。
【0034】
圧縮エンジンは、定期的にキャッシュライングループを読み出し、該キャッシュライングループ内のデータが圧縮可能な場合に該キャッシュライングループを圧縮形式で書き換え、圧縮済フラグ及びそれぞれ関連付けされたタグラインのWay指示子を更新して、データの各ラインを記憶しているキャッシュライングループ中の場所を示す。
【0035】
この実施形態では、キャッシュライングループの一部又は全てのラインが圧縮形式で記憶されている場合は、ライングループ内の残りの空間は、過剰アドレスタグに関連付けされたキャッシュデータにより使用することが可能である。
【0036】
本発明は、他のアソシエイティビティ及びストレージのWayに適用可能であると予想される。例えば、キャッシュタグメモリの各ラインに32組のアドレスタグを有するキャッシュと24Wayのストレージとを同様にして実施することが可能である。
【0037】
【発明の実施の形態】
コンピュータシステム100(図1)は、プロセッサ集積回路103上に当業界で知られているような第1レベルキャッシュ104と共にプロセッサ102を有している。第1レベルキャッシュ104は、統合化(又は一体化)された命令/データキャッシュとすることが可能であり、また個別の命令及びデータキャッシュを含むことが可能である。システム100はまた、第2レベルキャッシュ106及びシステムコントローラ108を有する。システムコントローラ108は、第2レベルキャッシュ106を、メインメモリ110並びにディスク記憶システム112やその他の入出力装置114に接続する。システムコントローラ108はまた、ディスク記憶システム112からメインメモリ110へのアクセスを提供する。
【0038】
第2レベルキャッシュ106(図2)はプロセッサキャッシュである。第2レベルキャッシュ106は、プロセッサポート202を介して、第1レベルキャッシュ104内で失ったリファレンスを受け取る。かかるリファレンスには、読み出し及び書き込みの両操作のためのリファレンスアドレスと書き込み操作のためのデータとを含む。リファレンスアドレスは、4つの部分、すなわち、タグアドレス部分、高アドレスビット部分、ライン・イン・スーパーライン(line-in-superline)部分、及びロケーション・イン・ライン・ライン(location-in-line line)部分に分割される。リファレンスアドレスのタグアドレス部分は、タグメモリ204中の対応するタグラインを見出すために使用される。
【0039】
第2レベルキャッシュ106は、NWayセットアソシエイティブである。ここで、Nは2以上であることが好ましく、特定の実施形態では6である。タグメモリ204内の各タグラインは、NWayのアソシエイティビティの各々のタグアドレスフィールドとキャッシュ管理用のフラグとを有する。NWayのアソシエイティビティの各々のタグアドレスフィールドは、タグコンパレータ及びヒットロジック206内のリファレンスアドレスの高アドレスビット部分と比較され、その比較結果とタグラインのフラグとを使用してヒットが存在するか否かが判定される。
【0040】
また、タグメモリ204内の各タグラインは、キャッシュデータメモリ210内の各スーパーラインの各キャッシュラインの各サブラインのロケーションを示す各Way毎のデータラインポインタ208を有する。特定の実施形態では、キャッシュは、合計256バイトの4ラインのスーパーライン内の64バイトのラインとして編成される。キャッシュデータメモリ210は、サブラインのアレイとして編成され、この場合、2つ又は3つ以上のサブラインが各キャッシュラインを構成し、特定の実施形態では、キャッシュは32バイトのサブラインを有する。「圧縮済」フラグ212は、キャッシュデータメモリ内の各サブラインと関連付けされる。
【0041】
第2レベルキャッシュ106が、ヒットを評価する読み出し要求を受け取ると、タグメモリからのデータラインポインタ208の第1のデータラインポインタを使用して、キャッシュデータメモリ210内の参照情報の第1のサブラインとそれに関連する圧縮済フラグ212との位置が特定される。第1のサブラインに関連する圧縮済フラグ212がセットされた場合には、サブラインが解凍エンジン214によりフルキャッシュラインへと拡張され、解凍された情報が下位レベルのキャッシュ104及びプロセッサ102に渡される。圧縮済フラグ212が、サブラインが非圧縮情報を含むことを示している場合には、タグメモリからのデータラインポインタ208の第2のデータラインポインタを使用して参照情報の第2のサブラインの位置が特定され、該第1及び第2のサブラインが下位レベルのキャッシュ104及びプロセッサ102に渡される。
【0042】
第1の代替的な実施形態では、データラインポインタ208の第2のデータラインポインタの代わりに、第1のサブラインと共に記憶された順方向リンク(forward link)216を使用して、参照情報の第2のサブラインの位置が特定される。
【0043】
第2レベルキャッシュ106が、ヒットを評価する書き込み要求を受け取ると、タグメモリからのデータラインポインタ208の第1のデータラインポインタを使用して、キャッシュデータメモリ210に以前に記憶された情報の第1のサブライン及びそれに関連する圧縮済フラグ212の位置が特定される。第1のサブラインに関連する圧縮済フラグ212が、サブラインが非圧縮情報を含むことを示している場合には、第1のサブラインは、第1レベルキャッシュ104又はプロセッサ102からの情報の第1のサブラインで上書きされる。次いで、サブラインポインタ208の第2のサブラインポインタを使用して、第1レベルキャッシュ104又はプロセッサ102からの情報の第2のサブラインで上書きされることになるサブラインの位置が特定される。
【0044】
第1の代替的な実施形態では、データラインポインタ208の第2のデータラインポインタの代わりに、第1のサブラインと共に記憶された順方向リンク216を使用して、置換のための参照情報の第2のサブラインの位置が特定される。
【0045】
圧縮済フラグ212が、サブラインが圧縮情報を含むことを示している場合には、第1のサブラインが、既述のように下位レベルキャッシュ104及びプロセッサ102からの情報の第1のサブラインで上書きされ、圧縮済フラグがクリアされて該ラインが非圧縮情報を含むことが示される。第2のサブラインが空きスペースリスト218から削除され、データラインポインタ208の第2のデータラインポインタに第2のサブラインへのポインタが書き込まれ、第2のサブラインには、第1レベルキャッシュ104又はプロセッサ102からの情報の第2のサブラインが書き込まれる。
【0046】
第1の代替的な実施形態では、第1のサブラインの順方向リンク216には、データラインポインタ208の第2のデータラインポインタを書き込む代わりに、書き込まれた情報の第2のサブラインへのポインタが書き込まれる。
【0047】
空きスペースリスト218は、リンクされたリストとして維持される。特定の実施形態では、この空きスペースリストは、未使用の各サブラインに記憶された順方向リンクを含む。第1の代替的な実施形態では、空きスペースリストに関連付けされたポインタは、未使用の各サブラインの順方向リンク216のフィールドに記憶される。このリストは、空きスペースリストに全てのサブラインが存在するようにブート時に初期化される。データメモリ210の輻輳を回避するために、空きスペースリストの最初の幾つかのエントリが空きリストバッファ222にキャッシュにされ、これにより、空きスペースリストに従うためにデータメモリ210を循環することなくキャッシュアクティビティの短いバーストを行うことが可能になる。
【0048】
読み出し及び書き込みのためにキャッシュデータメモリ210の循環が必要ない場合には、圧縮エンジン230は、非圧縮情報の存在を示す圧縮済フラグ212を有するサブラインを求めてキャッシュデータメモリ210をスキャンする。かかるサブラインが見つかった場合には、圧縮エンジン230は、データを圧縮し、逆方向リンク232をたどってサブラインに関連するキャッシュタグの位置を見出す。キャッシュライン全体の残りのサブラインの位置を特定するために、キャッシュタグからデータラインポインタ208の第2のデータラインポインタが取得される。
【0049】
第1の代替的な実施形態では、順方向リンク216をたどってキャッシュライン全体の残りのサブラインの位置を特定する。この実施形態では逆方向リンク232は必要ない。
【0050】
次いで圧縮エンジンはキャッシュラインの圧縮を試みる。該圧縮により非圧縮データよりも少数のサブラインに適合する情報が得られた場合には、該圧縮済データがキャッシュデータメモリ210に書き込まれ、圧縮済フラグがセットされ、解放されたサブラインが空きスペースリスト218にリンクされる。
【0051】
キャッシュミスは、上位レベルキャッシュ又はメインメモリに渡され、当業界で知られているようにミスロジック234を介して新しいデータがフェッチされる。必要に応じて追出し制御部244によりデータが追い出されて、新しいデータを記憶するための空間が形成される。
【0052】
キャッシュシステムは、当業界で知られているようにライトバックキュー242及び追出制御ロジック244を含むキャッシュ制御ロジック240を有する。
【0053】
第2の代替的な実施形態では、プロセッサリファレンスは、下位レベルキャッシュにミスが生じた場合に、プロセッサポート300(図3)を介してキャッシュサブシステムに入る。各リファレンスアドレスは、3つの部分、すなわち、タグアドレス部分、高アドレスビット部分、及びロケーションインラインライン部分に分割される。リファレンスアドレスのタグアドレス部分は、タグメモリ304内の対応するタグラインを見つけるために使用される。
【0054】
この実施形態のタグメモリ304の各ラインは、16Wayのアソシエイティビティにとって十分なアドレスタグ400(図4)を有する。各アドレスタグ400は、Way指示子404及びフラグ402に関連付けされる。各アドレスタグ毎のフラグ402には、圧縮済フラグ406、幅指示子410、及び有効フラグ408が含まれる。
【0055】
関連付けされたキャッシュデータメモリ306(図3)は、12Wayの非圧縮情報を記憶する。タグメモリラインに対応するキャッシュデータメモリ内の各ロケーションにキャッシュライングループが記憶される。ここで、各キャッシュライングループ中の非圧縮データを指定するために必要となる数よりも多く提供されるアドレスタグを本書では過剰アドレスタグと称することとする。
【0056】
各アドレスタグと関連付けされたWay指示子404,424(図4)は、キャッシュライン412,432といったアドレスタグに関連付けされたキャッシュラインが記憶されているキャッシュデータメモリ310内のキャッシュライングループ440中の位置を示すものとなる。幅指示子410,430は、キャッシュラインの幅をサブラインの個数(整数値)として示すものである。
【0057】
圧縮エンジン308(図3)は、タグメモリ304及びそのフラグ306に対して定期的に読み出しを行い、キャッシュデータメモリ310からキャッシュライングループ440を読み出す。圧縮エンジン308は、キャッシュライングループ440が圧縮可能である場合にはそれを圧縮してキャッシュデータメモリ310に圧縮形式で再び書き込む。圧縮エンジン308はまた、幅指示子410、Way指示子404、及びタグメモリフラグ306の圧縮済フラグ406を、圧縮したキャッシュライングループ440と一致するよう修正する。
【0058】
データをキャッシュから読み出す際、該データは、解凍エンジン314を介して読み出され、データが圧縮されていることを圧縮済フラグ404が示している場合に解凍される。
【0059】
キャッシュヒットは、リファレンスアドレスの上位アドレスフィールドを、タグコンパレータ及びヒットロジック320内のアドレスタグ400と比較することにより決定される。キャッシュミスは、ミスロジック322を介して上位レベルキャッシュ又はメインメモリに渡される。キャッシュはまた、当業界で知られているように、ライトバックキュー332、先読み(read ahead)ロジック334、及び追出し制御ロジック336を含む制御ロジック330を有する。追出し制御ロジックは、図示されていない最新使用(recency of use)フラグを含む追加のフラグを利用する。
【0060】
この実施形態では、圧縮エンジン308(図5)は、キャッシュタグメモリ304及びキャッシュデータメモリ310を指すアドレスポインタ500を有する。一実施形態では、このポインタをカウンタとして実施して、キャッシュタグメモリ及びキャッシュデータメモリ310の全てのロケーションがスキャンされるようにすることが可能である。別の実施形態では、このポインタを、キャッシュ内の最も最近書き込みが行われたロケーションのキューとして実施し、これにより非圧縮データをキャッシュ内で迅速に見つけることが可能となる。圧縮エンジン308はまた、キャッシュタグメモリ304及びキャッシュデータメモリ310に対する読み出し及び書き込みを行うためのインタフェイス502を有する。
【0061】
圧縮エンジン308は、インタフェイス502を介してアドレスポインタ500により示される通りにキャッシュタグメモリ304及びキャッシュデータメモリ310のロケーションを読み出し、キャッシュデータメモリ310から圧縮ロジック504へデータを渡す。圧縮ロジック504は、1つ又は2つ以上の圧縮アルゴリズムをデータに適用することを試みる。特定の実施形態では、圧縮ロジック504は、ランレングスカウント圧縮アルゴリズム、繰返しビットシーケンスカウント圧縮アルゴリズム、及び共通演算コード(common opcode recognition)認識及び符号化アルゴリズムを使用するが、他の実施形態では他の圧縮アルゴリズムを使用することが可能である。共通演算コード認識及び符号化アルゴリズムは、ノーオペレーション(no operation)命令を含む多数の共通命令コードを認識し、それを効率的に符号化することができるものである。圧縮ロジック504が、多数の圧縮アルゴリズムを適用することができる場合には、アルゴリズム指示子は、圧縮ロジックにより生成される圧縮データの一部を構成するものとなる。
【0062】
データの圧縮時に圧縮アルゴリズムが必ずしも成功するとは限らないので、圧縮ロジック504は、圧縮したデータだけでなく圧縮成功指示子を生成する。この圧縮成功指示子が制御ロジック506により使用されて、圧縮したデータをキャッシュデータメモリ310に書き戻すべきか否か、及びキャッシュタグメモリ304をキャッシュタグ更新回路508により更新すべきか否かが判定される。
【0063】
この実施形態では、キャッシュライングループの一部又は全てが圧縮形式で記憶されている場合には、該キャッシュライングループ内の残りの空間を、過剰アドレスタグに関連するキャッシュデータにより使用することが可能である。過剰アドレスタグを使用すると、キャッシュデータが圧縮可能であることが判明した場合に最大16通りのキャッシュデータのアドレス指定が可能になり、これにより、3メガバイトのキャッシュが4メガバイトの情報を保持することが可能となり得る。
【0064】
本発明は、他のアソシエイティビティ及びストレージのWayに適用可能であると予想される。例えば、キャッシュタグメモリの各ラインに32組のアドレスタグを有するキャッシュと20Wayのストレージとを同様に実施することが可能である。最適なアソシエイティビティ、ストレージのWay数、及びキャッシュサイズは、キャッシュ階層における圧縮可能なキャッシュのレベル、集積回路の製造技術の改善、及び集積回路が実行することが意図されたアプリケーションによって、変化することが予想される。
【0065】
本発明はまた、スーパーラインを有するキャッシュ編成及びスーパーラインを有さないキャッシュ編成、並びに第2レベル以外のレベルのキャッシュにも、等しく適用可能であると予想される。特に、本発明は第3レベルキャッシュとして動作可能であると予想される。本発明はまた、ライトスルー及びライトバックキャッシュシステムに適用可能であると予想される。
【0066】
本発明を特に特定の実施形態に関して示し説明したが、当業者は、本発明の思想及び範囲から逸脱することなく形態及び細部に他の様々な変更を行うことができることを理解されよう。本発明を様々な実施形態に適用する際に、本明細書に開示され特許請求の範囲により理解される一層広義の本発明の思想から逸脱することなく様々な変更を行うことが可能であることが理解されよう。
【0067】
以下においては、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
1.キャッシュメモリサブシステムのための圧縮エンジン(308)であって、該キャッシュメモリサブシステムが、キャッシュタグメモリ(304)及びキャッシュデータメモリ(310)を有しており、該キャッシュデータメモリ(310)が複数のサブラインとして編成されており、前記圧縮エンジン(308)が、
前記キャッシュタグメモリ(304)及び前記キャッシュデータメモリ(310)内へのポインタ(500)と、
該ポインタ(500)に結合されたインタフェイス(502)であって、前記キャッシュタグメモリ(304)及び前記キャッシュデータメモリ(310)と結合することができ、タグ情報及び非圧縮データを読み出し、及び修正したタグ情報及び圧縮データを書き込むことが可能である、インタフェイス(502)と、
該インタフェイス(502)により読み出されたデータに少なくとも1つの圧縮アルゴリズムを適用して圧縮データを生成し、及び圧縮成功情報を生成するように結合された、圧縮ロジック(504)と、
前記圧縮成功情報及び前記タグ情報に従って修正したタグ情報を生成するタグライン更新回路(508)と
を含む、圧縮エンジン(308)。
2.前記圧縮ロジック(504)が、複数の圧縮アルゴリズムを用いた圧縮を試行することが可能なものである、前項1に記載の圧縮エンジン。
3.前記ポインタ(500)が、最近書き込みが行われたアドレスのキューを含む、前項1に記載の圧縮エンジン。
4.前記ポインタ(500)がカウンタを含む、前項1に記載の圧縮エンジン。
5.キャッシュメモリであって、
タグ比較及びヒットロジック(320)と共に動作してキャッシュヒットを判定することが可能なキャッシュタグメモリ(304)と、
キャッシュデータメモリ(310)と、
プロセッサによる前記キャッシュタグメモリ(304)及び前記キャッシュデータメモリ(310)への参照を可能にするよう結合されたプロセッサポート(300)と、
上位レベルキャッシュ及びメインメモリからなるグループから選択されたメモリへミスしたリファレンスを渡すよう結合されたメモリポート(322)と、
前記キャッシュデータメモリ(310)に結合された圧縮エンジン(308)であって、該キャッシュデータメモリ(310)からデータを読み出し、該キャッシュデータメモリ(310)に圧縮データを書き込み、及び前記キャッシュデータメモリ(310)及び前記キャッシュタグメモリ(304)からなるグループから選択されたメモリに記憶されている圧縮済フラグを更新するよう結合された、圧縮エンジン(308)と、
前記キャッシュデータメモリ(310)から圧縮データを受容してその解凍データを前記プロセッサポート(300)に提供するよう結合された解凍エンジン(314)と、
前記メモリポート(322)を介してフェッチされた新しいデータのための場所を形成するために必要に応じて前記キャッシュメモリからデータを追い出すよう結合されたキャッシュ制御ロジック(330)と
を含む、キャッシュメモリ。
6.前記キャッシュデータメモリ(310)が、複数の別個に割当可能なサブラインとして編成され、キャッシュデータメモリ(310)内の利用可能なサブライン(218)のリンクされたリストが維持される、前項5に記載のキャッシュメモリ。
7.前記キャッシュデータメモリ(310)が、ライングループ内の複数の別個に割当可能なサブラインとして編成され、前記キャッシュタグメモリ(304)及び前記タグ比較及びヒットロジック(320)が、キャッシュデータメモリ(310)内の各ライングループ(440)で提供されるストレージのWayよりも多数のWayのアソシエイティビティを有する、複数Wayのアソシエイティビティを含む、前項5に記載のキャッシュメモリ。
8.キャッシュタグメモリ(304)内の複数Wayのアソシエイティビティが、キャッシュデータメモリ(310)内のライングループ(440)内の関連するキャッシュラインの開始点を示すWay指示子が関連付けされたものである、前項7に記載のキャッシュメモリ。
【図面の簡単な説明】
【図1】2レベルキャッシュサブシステムを有するコンピュータシステムを示すブロック図である。
【図2】有効キャッシュサイズの増大のためのデータ圧縮をサポートする上位レベルキャッシュサブシステムを示すブロック図である。
【図3】上位レベルキャッシュサブシステムの第2の代替的な実施形態を示すブロック図である。
【図4】上位レベルキャッシュサブシステムのキャッシュデータメモリ編成を示す説明図である。
【図5】上位レベルキャッシュサブシステムのための圧縮エンジンを示すブロック図である。
【符号の説明】
218 サブライン
300 プロセッサポート
304 キャッシュタグメモリ
308 圧縮エンジン
310 キャッシュデータメモリ
320 コンパレータ及びヒットロジック
320 ヒットロジック
322 メモリポート
440 ライングループ
500 ポインタ
502 インタフェイス
504 圧縮ロジック
508 タグライン更新回路
Claims (3)
- キャッシュメモリであって、
タグ比較及びヒットロジックと共に動作してキャッシュヒットを判定することが可能なキャッシュタグメモリと、
キャッシュデータメモリと、
プロセッサによる前記キャッシュタグメモリ及び前記キャッシュデータメモリへの参照を可能にするよう結合されたプロセッサポートと、
上位レベルキャッシュ及びメインメモリからなるグループから選択されたメモリへミスしたリファレンスを渡すよう結合されたメモリポートと、
前記キャッシュデータメモリに結合された圧縮エンジンであって、該キャッシュデータメモリからデータを読み出し、該キャッシュデータメモリに圧縮データを書き込み、及び該キャッシュデータメモリ及び前記キャッシュタグメモリからなるグループから選択されたメモリに記憶されている圧縮済フラグを更新するよう結合された、圧縮エンジンと、
前記キャッシュデータメモリから圧縮データを受容してその解凍データを前記プロセッサポートに提供するよう結合された解凍エンジンと、
前記メモリポートを介してフェッチされた新しいデータのための場所を形成するために必要に応じて前記キャッシュメモリからデータを追い出すよう結合されたキャッシュ制御ロジックと
を含み、
前記プロセッサポートを介してデータが読み出される場合には必ず、前記キャッシュデータメモリから読み出された圧縮データが解凍された後に前記プロセッサポートに提示される、
キャッシュメモリ。 - 前記キャッシュデータメモリが、複数の別個に割当可能なサブラインとして編成され、該キャッシュデータメモリ内の利用可能な該サブラインのリンクされたリストが維持される、請求項1に記載のキャッシュメモリ。
- 前記キャッシュデータメモリが、複数のライングループ内の複数の別個に割当可能なサブラインとして編成され、前記キャッシュタグメモリ及び前記タグ比較及びヒットロジックが、キャッシュデータメモリ内の各ライングループで提供されるストレージの Way よりも多数の Way のアソシエイティビティを有する、複数 Way のアソシエイティビティを含む、請求項1に記載のキャッシュメモリ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/050,736 US6640283B2 (en) | 2002-01-16 | 2002-01-16 | Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size |
US10/050736 | 2002-01-16 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003216494A JP2003216494A (ja) | 2003-07-31 |
JP2003216494A5 JP2003216494A5 (ja) | 2005-05-12 |
JP4008826B2 true JP4008826B2 (ja) | 2007-11-14 |
Family
ID=21967090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003008220A Expired - Fee Related JP4008826B2 (ja) | 2002-01-16 | 2003-01-16 | オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6640283B2 (ja) |
JP (1) | JP4008826B2 (ja) |
FR (1) | FR2834809B1 (ja) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7203935B2 (en) * | 2002-12-05 | 2007-04-10 | Nec Corporation | Hardware/software platform for rapid prototyping of code compression technologies |
US20090118019A1 (en) * | 2002-12-10 | 2009-05-07 | Onlive, Inc. | System for streaming databases serving real-time applications used through streaming interactive video |
US7190367B2 (en) * | 2003-03-25 | 2007-03-13 | Mitsubishi Electric Research Laboratories, Inc. | Method, apparatus, and system for rendering using a progressive cache |
US6846876B1 (en) * | 2003-07-16 | 2005-01-25 | Adherent Laboratories, Inc. | Low odor, light color, disposable article construction adhesive |
US7143238B2 (en) * | 2003-09-30 | 2006-11-28 | Intel Corporation | Mechanism to compress data in a cache |
US20050071566A1 (en) * | 2003-09-30 | 2005-03-31 | Ali-Reza Adl-Tabatabai | Mechanism to increase data compression in a cache |
US20050071151A1 (en) * | 2003-09-30 | 2005-03-31 | Ali-Reza Adl-Tabatabai | Compression-decompression mechanism |
US7636810B2 (en) | 2003-11-26 | 2009-12-22 | Intel Corporation | Method, system, and apparatus for memory compression with flexible in-memory cache |
US7162583B2 (en) * | 2003-12-29 | 2007-01-09 | Intel Corporation | Mechanism to store reordered data with compression |
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 |
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 |
US7457940B2 (en) * | 2004-11-16 | 2008-11-25 | International Business Machines Corporation | System and method for managing data |
US7904619B2 (en) | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for reducing memory write operations using difference information |
US7747813B2 (en) * | 2006-11-24 | 2010-06-29 | Sandforce, Inc. | Multi-memory device system and method for managing a lifetime thereof |
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 |
US7904672B2 (en) | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
KR101352512B1 (ko) | 2007-01-15 | 2014-01-17 | 삼성전자주식회사 | 효율적인 메모리 사용을 위한 스택 관리 장치 및 방법 |
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 |
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 |
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 |
US11065552B2 (en) * | 2007-12-05 | 2021-07-20 | Sony Interactive Entertainment LLC | System for streaming databases serving real-time applications used through streaming interactive video |
JP4653830B2 (ja) * | 2008-09-19 | 2011-03-16 | 株式会社東芝 | 命令キャッシュシステム |
JP5188348B2 (ja) * | 2008-09-25 | 2013-04-24 | 三菱電機株式会社 | データアクセス装置 |
US8700862B2 (en) * | 2008-12-03 | 2014-04-15 | Nvidia Corporation | Compression status bit cache and backing store |
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 |
US9881099B2 (en) | 2010-05-24 | 2018-01-30 | International Business Machines Corporation | System, method and computer program product for data transfer management |
US9378560B2 (en) | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US9261946B2 (en) | 2012-10-11 | 2016-02-16 | Wisconsin Alumni Research Foundation | Energy optimized cache memory architecture exploiting spatial locality |
US9032157B2 (en) * | 2012-12-11 | 2015-05-12 | International Business Machines Corporation | Virtual machine failover |
US9582426B2 (en) * | 2013-08-20 | 2017-02-28 | International Business Machines Corporation | Hardware managed compressed cache |
KR102114388B1 (ko) * | 2013-10-18 | 2020-06-05 | 삼성전자주식회사 | 전자 장치의 메모리 압축 방법 및 장치 |
US9740621B2 (en) | 2014-05-21 | 2017-08-22 | Qualcomm Incorporated | Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods |
US10838862B2 (en) | 2014-05-21 | 2020-11-17 | Qualcomm Incorporated | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
US10503661B2 (en) | 2014-05-21 | 2019-12-10 | Qualcomm Incorporated | Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system |
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 |
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 |
US10140211B2 (en) | 2016-06-30 | 2018-11-27 | Toshiba Memory Corporation | Cache device and method for storing tag data and cache data in cache device |
US10176090B2 (en) * | 2016-09-15 | 2019-01-08 | Qualcomm Incorporated | Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems |
CN111149166B (zh) | 2017-07-30 | 2024-01-09 | 纽罗布拉德有限公司 | 基于存储器的分布式处理器架构 |
CN113597599A (zh) * | 2019-03-18 | 2021-11-02 | 拉姆伯斯公司 | 具有高速缓存模式的dram部件的系统应用 |
KR20220100030A (ko) * | 2019-11-25 | 2022-07-14 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 패턴 기반 캐시 블록 압축 |
US12001338B2 (en) * | 2021-10-29 | 2024-06-04 | Nutanix, Inc. | Method and system for implementing metadata compression in a virtualization environment |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6002411A (en) * | 1994-11-16 | 1999-12-14 | Interactive Silicon, Inc. | Integrated video and memory controller with data processing and graphical processing capabilities |
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 |
US5893920A (en) * | 1996-09-30 | 1999-04-13 | International Business Machines Corporation | System and method for cache management in mobile user file systems |
US6128094A (en) * | 1998-07-08 | 2000-10-03 | Hewlett-Packard Company | Printer having processor with instruction cache and compressed program store |
US6341325B2 (en) * | 1999-01-12 | 2002-01-22 | International Business Machines Corporation | Method and apparatus for addressing main memory contents including a directory structure in a computer system |
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 |
-
2002
- 2002-01-16 US US10/050,736 patent/US6640283B2/en not_active Expired - Lifetime
-
2003
- 2003-01-14 FR FR0300340A patent/FR2834809B1/fr not_active Expired - Fee Related
- 2003-01-16 JP JP2003008220A patent/JP4008826B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
FR2834809A1 (fr) | 2003-07-18 |
FR2834809B1 (fr) | 2005-09-02 |
JP2003216494A (ja) | 2003-07-31 |
US20030135694A1 (en) | 2003-07-17 |
US6640283B2 (en) | 2003-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4008826B2 (ja) | オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置 | |
US5958040A (en) | Adaptive stream buffers | |
US5577227A (en) | Method for decreasing penalty resulting from a cache miss in multi-level cache system | |
US7047382B2 (en) | System and method for managing compression and decompression and decompression of system memory in a computer system | |
US6795897B2 (en) | Selective memory controller access path for directory caching | |
US5353426A (en) | Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete | |
EP1654660B1 (en) | A method of data caching | |
US8122216B2 (en) | Systems and methods for masking latency of memory reorganization work in a compressed memory system | |
US7167954B2 (en) | System and method for caching | |
US6457104B1 (en) | System and method for recycling stale memory content in compressed memory systems | |
US7962700B2 (en) | Systems and methods for reducing latency for accessing compressed memory using stratified compressed memory architectures and organization | |
KR100339904B1 (ko) | 캐시 프로세스용 시스템 및 방법 | |
US5214770A (en) | System for flushing instruction-cache only when instruction-cache address and data-cache address are matched and the execution of a return-from-exception-or-interrupt command | |
US6584546B2 (en) | Highly efficient design of storage array for use in first and second cache spaces and memory subsystems | |
JP2000347935A (ja) | 圧縮メイン・メモリの仮想非圧縮キャッシュ | |
KR19980079433A (ko) | 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템 | |
KR20090054657A (ko) | 라이트-백 동작시 라이트-백 데이터의 버스트 길이를조절할 수 있는 캐시 메모리와 이를 포함하는 시스템 | |
KR20010062173A (ko) | 스마트 캐시 | |
KR100348099B1 (ko) | 단일의캐쉬액세스파이프단을이용하여파이프라인저장명령을실행하기위한장치및방법과,파이프라인프로세서및,컴퓨터시스템 | |
US20080301372A1 (en) | Memory access control apparatus and memory access control method | |
US7219197B2 (en) | Cache memory, processor and cache control method | |
Benveniste et al. | Cache-memory interfaces in compressed memory systems | |
US6587923B1 (en) | Dual line size cache directory | |
US11321235B2 (en) | Cache memory device, system including the same, and method of operating the same | |
JPH0743671B2 (ja) | キャッシュ・メモリ制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040623 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040623 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070206 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070316 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070322 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070806 |
|
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: 20070821 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070830 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |