JP4008826B2 - オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置 - Google Patents

オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置 Download PDF

Info

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
Application number
JP2003008220A
Other languages
English (en)
Other versions
JP2003216494A5 (ja
JP2003216494A (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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2003216494A publication Critical patent/JP2003216494A/ja
Publication of JP2003216494A5 publication Critical patent/JP2003216494A5/ja
Application granted granted Critical
Publication of JP4008826B2 publication Critical patent/JP4008826B2/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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; 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)

Description

【0001】
【発明の属する技術分野】
本発明は、高性能プロセッサ集積回路のキャッシュ設計の分野に関し、特に、大きくて高レベルのオンチップキャッシュにおいてデータを圧縮する装置に関する。
【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. キャッシュメモリであって、
    タグ比較及びヒットロジックと共に動作してキャッシュヒットを判定することが可能なキャッシュタグメモリと、
    キャッシュデータメモリと、
    プロセッサによる前記キャッシュタグメモリ及び前記キャッシュデータメモリへの参照を可能にするよう結合されたプロセッサポートと、
    上位レベルキャッシュ及びメインメモリからなるグループから選択されたメモリへミスしたリファレンスを渡すよう結合されたメモリポートと、
    前記キャッシュデータメモリに結合された圧縮エンジンであって、該キャッシュデータメモリからデータを読み出し、該キャッシュデータメモリに圧縮データを書き込み、及び該キャッシュデータメモリ及び前記キャッシュタグメモリからなるグループから選択されたメモリに記憶されている圧縮済フラグを更新するよう結合された、圧縮エンジンと、
    前記キャッシュデータメモリから圧縮データを受容してその解凍データを前記プロセッサポートに提供するよう結合された解凍エンジンと、
    前記メモリポートを介してフェッチされた新しいデータのための場所を形成するために必要に応じて前記キャッシュメモリからデータを追い出すよう結合されたキャッシュ制御ロジックと
    を含み、
    記プロセッサポートを介してデータが読み出される場合には必ず、前記キャッシュデータメモリから読み出された圧縮データが解凍された後に前記プロセッサポートに提示される、
    キャッシュメモリ。
  2. 前記キャッシュデータメモリが、複数の別個に割当可能なサブラインとして編成され、該キャッシュデータメモリ内の利用可能な該サブラインのリンクされたリストが維持される、請求項1に記載のキャッシュメモリ。
  3. 前記キャッシュデータメモリが、複数のライングループ内の複数の別個に割当可能なサブラインとして編成され、前記キャッシュタグメモリ及び前記タグ比較及びヒットロジックが、キャッシュデータメモリ内の各ライングループで提供されるストレージの Way よりも多数の Way のアソシエイティビティを有する、複数 Way のアソシエイティビティを含む、請求項1に記載のキャッシュメモリ。
JP2003008220A 2002-01-16 2003-01-16 オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置 Expired - Fee Related JP4008826B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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