JP2002510085A - テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造 - Google Patents
テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造Info
- Publication number
- JP2002510085A JP2002510085A JP2000541596A JP2000541596A JP2002510085A JP 2002510085 A JP2002510085 A JP 2002510085A JP 2000541596 A JP2000541596 A JP 2000541596A JP 2000541596 A JP2000541596 A JP 2000541596A JP 2002510085 A JP2002510085 A JP 2002510085A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- temporary
- bit
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims abstract description 112
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000013479 data entry Methods 0.000 claims description 5
- 230000008520 organization Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- 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
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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
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
Description
命令及び非テンポラリ命令用の共用キャッシュ構造を達成するための技術に関す
る。
易に短縮される。キャッシュ構成の基本的な考えは、最も頻繁にアクセスされる
命令及びデータを高速キャッシュメモリに置くことによって、平均メモリアクセ
スタイムをそのキャッシュのアクセスタイムに近づけられるということである。
可能な最大演算速度ないしは動作速度を達成するために、典型的なプロセッサで
は、キャッシュ階層構造、すなわちいくつかの異なるレベルのキャッシュメモリ
が実装されている。これらいくつかのキャッシュの異なるレベルは、プロセッサ
コアからの異なる距離に対応している。キャッシュがプロセッサに近ければ近い
ほど、データアクセスは速くなる。しかしながら、データアクセスを速くするほ
ど、データを記憶するためのコストは高くなる。その結果、キャッシュレベルが
プロセッサに近いほど、キャッシュはより高速で、より小さくなる。
プロセッサがメモリを参照して、そのワードがキャッシュで見つかった場合、ヒ
ットしたと言われる。そのワードがキャッシュで見つからない場合は、メインメ
モリ中にあり、それは無ヒットを意味するミスあるいはキャッシュミスとしてカ
ウントされる。ミスが起こると、そのアクセスによってインデックスを付けられ
たエントリに割当てが行われる。このアクセスはプロセッサにデータをロードす
るためのアクセスのこともあれば、プロセッサからメモリにデータを記憶するた
めのアクセスのこともある。キャッシュ記憶された情報は、必要でなくなるか、
無効になるか、あるいは他のデータによって置き換えられてキャッシュエントリ
が割当てを解除されるまで、キャッシュメモリに保持される。
アム・プロ)TMプロセッサのようなキャッシュ階層構造を実装したプロセッサに
おいては、より高速で小さい方のL1キャッシュがL2キャッシュよりもプロセ
ッサに近く配置される。プロセッサがキャッシュ記憶可能なデータ、例えば、ロ
ード命令を要求すると、その要求はまずL1キャッシュに送られる。要求された
データがL1キャッシュにあれば、そのデータがプロセッサに供給される。要求
されたデータがL1キャッシュになければ、L1キャッシュミスになり、要求は
L2キャッシュに転送される。同様に、L2キャッシュヒットがあれば、そのデ
ータがL1キャッシュ及びプロセッサコアに送られる。L2キャッシュミスにな
ると、その要求はメインメモリに転送される。メインメモリはL2キャッシュミ
スに応答して、その要求されたデータをL2キャッシュ、L1キャッシュ、及び
プロセッサコアに供給する。
クティブ部分が含まれる。キャッシュが容量いっぱいになったときには、新たに
要求された何行かのデータを入れるスペースを得るために、キャッシュメモリで
記憶された何行かのデータを置き換えることが必要である。このような一つの置
換技術として、最低使用頻度(LRU)アルゴリズムを用いたものがあり、最低
使用頻度のデータ行が新たに要求されたデータ行と置き換えられるようになって
いる。Pentium ProTMプロセッサにおいては、L2キャッシュがL1
キャッシュより大きいので、L2キャッシュには、通常、L1キャッシュの全て
のデータに加えてL1キャッシュでLRUアルゴリズムにより置き換えられた何
行かのデータが記憶されている。
(1996年12月17日出願)には、命令と関連づけられたローカリティヒン
ト(locality hint)を使用することによりキャッシュメモリを割り当てるための 技術が開示されている。プロセッサがプロセッサとメモリとの間におけるデータ
転送のためにメモリにアクセスするとき、そのアクセスは命令と関連づけられた
ローカリティヒントに従って種々のレベルのキャッシュに割り当てられるか、あ
るいはキャッシュメモリに全く割り当てられないかである。命令の中にはまれに
しか使われないものがいくつかある。例えば、非テンポラリのプリフェッチ命令
(先取り命令)は、プロセッサがすぐには必要としないが近い将来必要になると
予測されるデータをプレロードする。このようなデータは、通常、一度しか使わ
れないか、あるいはごく近い将来に再使用されることがなく、「非テンポラリデ
ータ」と呼ばれる。頻繁に使用される命令やデータは「テンポラリデータ」と呼
ばれる。非テンポラリデータの場合、データはたまにしか使われないので、最適
性能の必要上、キャッシュ記憶されたアプリケーションコードやデータはこの使
用頻度の低いデータによっては上書きされないようになっている。上記米国特許
出願第08/767,950号は、非テンポラリの先取りデータのような使用頻
度の低いデータを記憶するためにキャッシュメモリとは別途にバッファを設ける
ことによってこの問題を解消したものである。しかしながら、別途に余分のバッ
ファを使用することはコスト的にもスペース的にも高価となる。
ポラリ命令用の共用キャッシュ構造を得るための技術が必要とされている情況が
存在する。
ムにある。本発明のシステムは、メインメモリと、メインメモリに接続されたプ
ロセッサと、データをキャッシュ記憶するための該プロセッサに接続された少な
くとも1つのキャッシュメモリとを備える。上記少なくとも1つのキャッシュメ
モリは、各々複数のキャッシュセットを備え、それぞれが少なくとも2つのキャ
ッシュウェイを有する。上記複数のキャッシュセットの各セットは上記少なくと
も2つのキャッシュウェイの一方に非テンポラリのデータが書き込まれているか
どうかを指示するビットを有する。プロセッサは、メインメモリまたは上記少な
くとも1つのキャッシュメモリの一方のデータにアクセスする。
態に基づき詳細に説明する。図中、同じ参照符号は、同様の構成要素を指示する
。
ュメモリのマネジメントを達成するための技術の実施形態について説明する。以
下の説明においては、本発明の完全な理解を期すために特定のメモリデバイス、
回路図、プロセッサ命令等のような詳細事項を具体的に多数記載する。しかしな
がら、当業者ならば、本発明がこれらの特定の細部なしで実施可能であることは
理解されよう。その他の場合においては、本発明を不明瞭にしないために、周知
の技術や構造については詳細な説明を省略した。また、特定の実施態様を本発明
の好ましい実施形態として説明するが、他の実施形態についても、本発明の精神
及び範囲を逸脱しない範囲で設計し、実施することが可能なことは容易に理解さ
れよう。さらに、本発明は、直列配置構成のキャッシュ階層システムに基づいて
説明するが、厳密にこのような形態の階層構造に限定する必要はないということ
も理解されよう。
中央処理装置(CPU)を形成するプロセッサ10はバス14によってメインメ
モリ11に接続されている。メインメモリ11は、通常ランダムアクセスメモリ
で構成され、RAMと通称される。次に、メインメモリ11は、一般に、情報の
大量記憶(または保管)用の磁気記憶装置あるいは光メモリデバイスのような大
容量記憶装置12に接続されている。キャッシュメモリ13(以下単にキャッシ
ュとも称する)も同様にバス14に接続されている。図示の場合、キャッシュ1
3は、例えばキャッシュ13と関連づけられたデータの機能的使用及び転送を実
際に行うための例として、CPU10とメインメモリ11との間に配置されてい
る。キャッシュ13の実際の物理的配置は、システム及びプロセッサアーキテク
チャによって変わり得るということは理解されよう。さらに、キャッシュ13の
動作を制御するために、キャッシュコントローラ15が図示のようにキャッシュ
13及びバス14に接続されている。コントローラ15のようなキャッシュコン
トローラの動作は当技術分野においては周知であり、従って図2以下の図面では
キャッシュコントローラは省略されている。ここでは、図示のキャッシュの動作
を制御するために、CPU10の制御下で動作する何らかのコントローラが設け
られているものと仮定されている。
10からのメモリアクセスによって行われる。キャッシュ記憶可能なデータがC
PU10によって今現在あるいはすぐ後にアクセスされるはずのデータである場
合、そのデータはまずキャッシュ13に割り当てられる。すなわち、CPU10
は、メモリ11中の所与の情報にアクセスするとき、まずキャッシュ13からそ
の情報を探す。もしアクセスされたデータがキャッシュ13中にあれば、「ヒッ
ト」が起こる。キャッシュ中になければ、「ミス」となり、そのデータについて
のキャッシュ割当てがシークされる。現在行われているように、ほとんどのアク
セスは(ロードであるか記憶であるかにかかわらず)キャッシュ13の割当てを
必要とする。ただキャッシュ不可能なアクセスだけはキャッシュに割り当てられ
ない。
る。CPU10はやはりバス14によってメインメモリ11に接続され、そして
メモリ11は大容量記憶装置12に接続されている。しかしながら、図2の例に
おいては、互いに別の2つのキャッシュメモリ21及び22が示されている。キ
ャッシュ21及び22は図示のように直列に配置され、その各キャッシュがそれ
ぞれレベル1(L1)キャッシュ及びレベル2(L2)キャッシュと名付けられ
た一つのキャッシュレベルを表している。さらに、L1キャッシュ21は図示の
ようにCPU10の一部になっているのに対して、L2キャッシュ22はCPU
10の外部にある。この構造は、L1キャッシュをプロセッサチップ上に置き、
プロセッサコアからより遠くにあるL1キャッシュより低いレベルのキャッシュ
をプロセッサの外部に置く現行の実施形態の一例と同じ構造である。種々のキャ
ッシュメモリの実際の配置は設計上の選択事項であるか、あるいはプロセッサア
ーキテクチャによって決まる。従って、L1キャッシュをCPU10の外部に置
くこともできるということは理解されよう。
/デコーダ・ユニット25を備えている。実行ユニット23は、種々の算術(あ
るいは非記憶)命令等のプロセッサ命令を実行するためのCPU10の処理コア
である。レジスタファイル24は、実行ユニット23が必要とする種々の情報を
記憶(あるいはセーブ)するための一群の汎用レジスタよりなる。より高度のシ
ステムでは、2つ以上のレジスタファイルを設けることも可能である。フェッチ
/デコーダ・ユニット25は、実行されるプログラムの命令を保持する(メイン
メモリ11のような)記憶場所から命令をフェッチし、それらの命令を実行ユニ
ット23によって実行されるように解読する。パイプライン型アーキテクチャを
用いたさらに高度のプロセッサにおいては、命令が必要になったときフェッチさ
れるのを待ってアイドル状態になるのを防ぐように、後で必要になる未来の命令
がそれらが実際に必要になる前に先取りされ、解読される。
いる。バスインタフェースユニット(BIU)26は、CPU10の種々の構成
ユニットないしは装置をバス14に接続するためのインタフェースである。図2
に示すように、L1キャッシュは内部バス27に接続されており、CPU10用
の内部キャッシュとして機能する。しかしながら、この場合も、L1キャッシュ
はCPU10の外部に置いた上でバス14に接続することも可能であるというこ
とに留意すべきである。これらのキャッシュはデータ、命令あるいはその両方を
キャッシュ記憶するために用いることができる。一部システムでは、実際にはL
1キャッシュを2つの部分に分割し、その1つの部分にデータをキャッシュ記憶
し、もう1つの部分に命令をキャッシュ記憶することが行われる。しかしながら
、説明を簡単にするために、図で説明する種々のキャッシュは各々単一のキャッ
シュとして示してあり、本願においてはデータ、命令及びその他の情報を全て含
めてデータと総称する。図2に示す構成ユニットないしは装置の動作は周知のも
のであることは理解されよう。さらに、CPU10は実際には図示されているだ
けの構成要素以外にはるかに多くの構成要素を備えるということも理解されよう
。従って、図2には本発明を理解する上において関係のある構成のみが示されて
いる。一実施形態においては、本発明はデータキャッシュを有するシステムで使
用される。しかしながら、本発明はどのような形態のキャッシュについても適用
可能である。
のCPUを備えることも可能であるということに留意するべきである。このよう
なシステムにおいては、複数のCPUがメインメモリ11及び/または大容量記
憶装置12を共用することは通常行われている。従って、コンピュータシステム
と関連づけられた一部あるいは全てのキャッシュをコンピュータシステムの種々
のプロセッサによって共用することも可能である。例えば、図2のシステムで、
各プロセッサのL1キャッシュ21はそのプロセッサのみによって使用され、メ
インメモリ11はシステムの全てのCPUによって共有されるようなこともある
。さらに、各CPUはそれぞれ対応する外部L2キャッシュ22を有する。
ータシステムとして実施することができる。さらに、メモリにアクセスする他の
形態の構成ユニットないしは装置(プロセッサ以外)が本願で説明したCPUと
等価に機能することができ、従って、本願で説明したCPUと同様のメモリアク
セス機能を遂行することができるということも留意されよう。例えば、直接メモ
リアクセス(DMA)デバイスは本願で説明したプロセッサと同様にメモリに容
易にアクセスすることができる。このように、プロセッサ(CPU)は1つしか
持たないが、1つ以上のメモリアクセスユニットないしは装置を有するコンピュ
ータシステムは、本願で説明したマルチプロセッサシステムと等価に機能するは
ずであろう。
い。しかしながら、コンピュータシステムは、必ずしも2レベルのキャッシュの
みに限定されるものではない。現在、より進んだシステムでは第3レベル(L3
)キャッシュを用いることは一般的に行われるようになっている。また、L1キ
ャッシュにキャッシュ記憶されたデータがL2キャッシュにもキャッシュ記憶さ
れるようにキャッシュメモリを直列配置構成にすることも一般的に行われている
。仮にL3キャッシュが設けられる場合は、L2キャッシュにキャッシュ記憶さ
れるデータは通常L3キャッシュにもキャッシュ記憶される。このように、ある
特定のキャッシュレベルにキャッシュ記憶されるデータはそれより高いキャッシ
ュ階層の全てのレベルにもキャッシュ記憶される。
解するブロック図である。一般に、キャッシュ構造に「x」のセットと、1セッ
ト当たり「y」のウェイ(ただしy≧2)があり、各ウェイには1つのデータエ
ントリまたは1本のキャッシュラインが入っている。本発明によれば、そのセッ
ト中のいずれかのウェイに非テンポラリ(NT)データが書き込まれているかど
うかを示すLRUロックビットが設けられる。このようにNTデータが書き込ま
れていれば、正規または疑似のLRUビットがそのNTデータを指示するように
更新される。また、1セット毎に「z」の正規または疑似のLRUビットが設け
られる。LRUロックビットがセットされていなければ、正規または疑似のLR
Uビットは実装された最低使用頻度技術に従ってそのセット中のウェイを指示す
る。1セット当たりの正規または疑似のLRUビットの数は、1セット当たりの
ウェイ数及び使用される(正規または疑似の)LRU技術によって変わる。
ャッシュとして編成されている。図3の例では、各ページはキャッシュサイズの
4分の1に等しいものとして示されている。詳しく言うと、キャッシュ50が4
つの同じサイズのウェイ(例えば、ウェイ0(52)、ウェイ1(54)、ウェ
イ2(56)及びウェイ3(58))に分割され、メインメモリ11(図1及び
2も参照のこと)は図示のようにいくつかのページ(例えば、ページ0〜ページ
n)に分割されている。別の実施形態においては、各ページはキャッシュサイズ
より大きい場合もあれば、キャッシュサイズより小さい場合もある。キャッシュ
50の構成(図3に示すような)は、図1のキャッシュ13、図2のL1キャッ
シュ及び/またはL2キャッシュ22の中に実装することができる。
イを備え、その各ビットが最低使用頻度データ(あるいはバイアスされたLRU
技術が使用される場合においてはNTデータ)を有するセット中のウェイを指示
する。このような表作成がキャッシュコントローラ15の制御下でLRU技術に
従って行われ、キャッシュセットがいっぱいの場合にどのキャッシュエントリを
上書きするかが決定される。LRU論理回路ないしは論理機構(図示省略)がそ
れまでの最低使用頻度のセット中のキャッシュ記憶場所を追跡し続ける。一実施
形態においては、最低使用頻度ディレクトリアルゴリズムを厳密に追跡し続ける
LRU技術を使用することもできる。もう一つの実施形態においては、最低使用
頻度のディレクトリ要素を最良の形で追跡しようとする疑似LRUアルゴリズム
が使用される。なお、説明の都合上、ビット600〜60nをLRUビット60
0〜60nと称し、LRUビット600〜60nのアレイをLRUビット60と
称する。
ウェイ52、54、56、58のいずれかにキャッシュ50を汚さないはずのデ
ータ(すなわち、使用頻度の低いデータ)が書き込まれているどうかを指示する
LRUロックビット70O〜70nのアレイを備える。
である。本発明は、LRUロックビット700〜70nのアレイを用いて、対応
するキャッシュ記憶されたデータのいずれかがストリーミングデータあるいは非
テンポラリデータであり、従って、対応するセットに対してキャッシュミスが生
じたとき置換される最初のエントリであるのかどうかを指示する。一実施形態に
おいては、LRUロックビット70は、“1”にセットされている場合、対応す
るセットが非テンポラリのエントリを有することを示す。LRUロックビット7
0がクリアないしはリセットされている場合は、テンポラリ命令によるキャッシ
ュヒットによって、実装されたLRU技術に従って対応するLRUビット60が
更新され、(図4のアイテム1参照)、それに関連付けられたLRUロックビッ
トは更新されない。しかしながら、LRUロックビット70が既に“1”にセッ
トされていれば(対応するセットが非テンポラリ命令を有することを示す)、L
RUロックビット70は更新されず、またLRUビット60も更新されない(ア
イテム2参照)。
ト70の状態にかかわらずLRUビット60及びLRUロックビット70は更新
されない(アイテム3参照)。別の実施形態においては、L1キャッシュコント
ローラの制御レジスタのモードビットを通して制御されるところに従い、ストリ
ーミング命令あるいは非テンポラリ命令によるキャッシュヒットはLRUビット
をそのヒットされたウェイに強制する(アイテム4参照)。さらに、LRUロッ
クビット70は“1”にセットされる。この実施形態においては、ストリーミン
グ命令あるいは非テンポラリ命令によってヒットしたデータは、対応するセット
に対するキャッシュミス時に置換される最初のデータになる。
アされ、LRUビット60は疑似LRU技術に基づいて更新される(アイテム5
)。しかしながら、ストリーミング命令あるいは非テンポラリ命令によるキャッ
シュミス時には、LRUロックビット70は“1”にセットされ、対応するLR
Uビット60は更新されない(アイテム6)。
及び5Bは、テンポラリ命令がキャッシュセット0のウェイ2をヒットする前後
におけるキャッシュメモリの編成の一例を図解したものである。この例は図4の
アイテム1に対応する。この場合、キャッシュセット0に対してLRUロックビ
ット700はあらかじめクリアされており、テンポラリ命令によってキャッシュ
セット0がヒットしたので、LRUロックビット700は更新されない。しかし
ながら、LRUビット600は実装されたLRU技術に従って更新される。この
例では、疑似LRU技術がウェイ3を最低使用頻度のエントリとして指示するも
のと仮定されている。
ットする前後におけるキャッシュメモリの編成のもう一つの例を図解したもので
ある。この例は図4のアイテム2に対応する。この場合、キャッシュセット0に
対して、LRUロックビット700は、対応するセットに非テンポラリデータが
書き込まれていることを指示すようあらかじめ“1”にセットされている。従っ
て、LRUロックビット700もLRUビット600も更新されない。
ヒットする前後におけるキャッシュメモリの編成のもう一つの例を図解したもの
である。この例は図4のアイテム3に対応し、L1キャッシュコントローラにあ
るモードビットを“0”にセットして実施することができる(図4参照)。第1
の場合においては(図7A及び7B)、キャッシュセット0に対してLRUロッ
クビット700があらかじめクリアされている。この実施形態では、非テンポラ
リ命令のキャッシュヒットはLRUロックビット70を更新させない。従って、
キャッシュセット0が非テンポラリ命令によってヒットしたから、LRUロック
ビット700もLRUビット600も更新されない。第2の場合は(図7C及び
7D)、キャッシュセット0に対して、LRUロックビット700は対応するセ
ットに非テンポラリデータが書き込まれていることを指示するようあらかじめ“
1”にセットされている。従って、LRUロックビット700もLRUビット6
00も更新されない。
ヒットする前後におけるキャッシュメモリの編成のもう一つの例を図解したもの
である。この例は図4のアイテム4に対応し、L1キャッシュコントローラにあ
るモードビットを“1”にセットして実施することができる(図4参照)。第1
の場合では(図8A及び8B)、キャッシュセット0に対してLRUロックビッ
ト700あらかじめクリアされている。図7A乃至7Dに示す例のもう一つの態
様であるこの例においては、非テンポラリ命令のキャッシュヒットがLRUロッ
クビット70を更新させる。従って、図8Aに示すように、キャッシュセット0
が非テンポラリ命令によってヒットしたので、図8Bに示すようにLRUロック
ビット700は更新される(“1”にセットされる)。さらに、LRUビット6
00はウェイがヒットしたことを示すよう更新される。キャッシュセット0に対
してLRUロックビット700があらかじめ“1”にセットされていた場合は(
図8C及び8D)、LRUロックビット700は“1”にセットされたまま保た
れる。さらに、LRUビット60oはヒットしたセット中のウェイを指示するよ
うにされる。
なる前後におけるキャッシュメモリの編成の一例を図解したものである。この例
は図4のアイテム5に対応する。この場合、キャッシュセット0に対してLRU
ロックビットはあらかじめ“1”にセットされ、セット0を探すテンポラリ命令
によりキャッシュミスが生じたかから、そのセットについて、LRUロックビッ
ト700はそのキャッシュにおけるテンポラリ命令のミスが置換されると同時に
クリアされる。しかしながら、LRUビット600は実装されたLRU技術に従
って更新される。この例では、疑似LRU技術はウェイ3が最低使用頻度のエン
トリであると指示する。
てミスとなる前後におけるキャッシュメモリの編成の一例を図解したものである
。この例は図4のアイテム6に対応する。この場合、キャッシュセット0に関し
てLRUロックビット700あらかじめクリアされている。キャッシュセット0
に対する非テンポラリ命令のキャッシュミスがあるため、対応するセット0にお
ける非テンポラリデータを指示するよう、LRUロックビット700はセットさ
れ、LRUビット600は前と同じ状態に保たれる。
シュ階層におけるデータ汚染が最小となるテンポラリ命令及び非テンポラリ命令
を管理するための共用キャッシュ構造が達成され、本発明を実装することによっ
て別途バッファを使用する必要がなくなり、発明実施上、費用効果及び効率が共
に改善される。
態様で実施することが可能である。本願で開示、説明した実施形態は全ての点に
おいて例示説明を目的としして解釈されるべきものであり、本発明を限定する意
味を有するものではない。従って、発明の範囲は、以上の説明ではなく特許請求
の範囲の記載によって示される。特許請求の範囲に記載する所と等価の意味及び
意味及び範囲内の変更態様は全て本発明の範囲に包括されるべきものである。
し、図示実施形態においてはコンピュータシステムのメインメモリとプロセッサ
との間におけるデータアクセスのためにキャッシュメモリが使用される。
を示し、図示実施形態においてはコンピュータシステムのメインメモリとプロセ
ッサとの間におけるデータアクセスのために、キャッシュメモリ階層構造に編成
された2つのキャッシュメモリが使用される。
ロック図である。
る。
をヒットする前後におけるキャッシュメモリの編成の一例を5Aと5Bに分けて
図解した説明図である。
をヒットする前後におけるキャッシュメモリの編成のもう一つの例を6Aと6B
に分けて図解した説明図である。
2をヒットする前後におけるキャッシュメモリの編成の一例を7A乃至7Dに分
けて図解した説明図である。
2をヒットする前後におけるキャッシュメモリの編成の一例を7A乃至7Dに分
けて図解した説明図である。
2をヒットする前後におけるキャッシュメモリの編成の一例を7A乃至7Dに分
けて図解した説明図である。
2をヒットする前後におけるキャッシュメモリの編成の一例を7A乃至7Dに分
けて図解した説明図である。
2をヒットする前後におけるキャッシュメモリの編成のもう一つの例を8A乃至
8Dに分けて図解した説明図である。
2をヒットする前後におけるキャッシュメモリの編成のもう一つの例を8A乃至
8Dに分けて図解した説明図である。
2をヒットする前後におけるキャッシュメモリの編成のもう一つの例を8A乃至
8Dに分けて図解した説明図である。
2をヒットする前後におけるキャッシュメモリの編成のもう一つの例を8A乃至
8Dに分けて図解した説明図である。
スとなる前後におけるキャッシュメモリの編成の一例を9A及び9Bに分けて図
解した説明図である。
ミスとなる前後におけるキャッシュメモリの編成の一例を10A乃至10Dに分
けて図解した説明図である。
Claims (24)
- 【請求項1】 メインメモリと; 前記メインメモリに接続されたプロセッサと; 前記プロセッサに接続され、各々少なくとも2つのキャッシュウェイを備える
複数のセットを有し、その複数のセットの各セットが前記少なくとも2つのキャ
ッシュウェイの中の1つに非テンポラリデータが入っているかどうかを指示する
第1のビットを有する少なくとも1つのキャッシュメモリと; を備え、 前記プロセッサが前記メインメモリあるいは前記少なくとも1つのキャッシュ
メモリのいずれかのデータにアクセスする; ことを特徴とするキャッシュメモリ・マネジメントを達成するためのコンピュー
タシステム。 - 【請求項2】 前記少なくとも1つのキャッシュメモリが、さらに、対応す
るウェイ中のデータエントリの順序を指示する第2のビットを備えることを特徴
とする請求項1記載のコンピュータシステム。 - 【請求項3】 前記順序が前記データエントリが他のエントリに対して最低
使用頻度のエントリであるかどうかを指示することを特徴とする請求項2記載の
コンピュータシステム。 - 【請求項4】 前記第1のビットが、セットされて、関連づけられたウェイ
に非テンポラリデータが入っていることを指示することを特徴とする請求項1記
載のコンピュータシステム。 - 【請求項5】 前記第1のビットが、クリアされて、関連づけられたウェイ
にテンポラリデータが入っていることを指示することを特徴とする請求項1記載
のコンピュータシステム。 - 【請求項6】 さらに、前記少なくとも1つのキャッシュメモリ及び前記プ
ロセッサに接続されていて、前記少なくとも1つのキャッシュメモリを制御する
ためのキャッシュ制御論理機構を備えたことを特徴とする請求項2記載のコンピ
ュータシステム。 - 【請求項7】 前記プロセッサがデータにアクセスするための命令を受け取
り、かつプロセッサが前記データが前記少なくとも1つのキャッシュメモリ中に
あるかどうかの判断を行って、そこにあれば前記少なくとも1つのキャッシュメ
モリから前記データを読み出し、そこになければ前記メインメモリから前記デー
タを読み出すことを特徴とする請求項6記載のコンピュータシステム。 - 【請求項8】 前記データが前記少なくとも1つのキャッシュメモリから読
み出される場合に、前記キャッシュ制御論理機構が前記データがテンポラリデー
タであるかどうかの判断を行い、テンポラリデータであれば、アクセスされてい
る前記ウェイに対応する前記第2のビットの順序を更新し、テンポラリデータで
なければ前記順序を変えないでおくことを特徴とする請求項7記載のコンピュー
タシステム。 - 【請求項9】 前記ウェイに対応する前記第1のビットは変えないでおくこ
とを特徴とする請求項8記載のコンピュータシステム。 - 【請求項10】 前記データが前記少なくとも1つのキャッシュメモリから
読み出される場合に、前記キャッシュ制御論理機構が読み出される前記データが
非テンポラリであることを指示すように前記第1のビットを設定すると共に、前
記キャッシュ制御論理機構がさらに前記第2のビットの前記順序を更新すること
を特徴とする請求項7記載のコンピュータシステム。 - 【請求項11】 前記データが前記メインメモリから読み出される場合に、
前記キャッシュ制御論理機構が前記データが非テンポラリデータであるかどうか
の判断を行い、非テンポラリデータであれば、前記読み出されている前記データ
が非テンポラリデータであることを指示するように前記第1のビットを設定し、
前記キャッシュ制御論理機構が前記第2のビットの前記順序を変えないでおくこ
とを特徴とする請求項7記載のコンピュータシステム。 - 【請求項12】 前記キャッシュ制御論理機構が前記データがテンポラリデ
ータであると判断した場合に、前記キャッシュ制御論理機構が読み出される前記
データがテンポラリであることを前記第1のビットが指示するように設定し、前
記キャッシュ制御論理機構が前記第2のビットの前記順序を更新することを特徴
とする請求項11記載のコンピュータシステム。 - 【請求項13】 コンピュータシステムにおけるキャッシュメモリをプロセ
ッサによって使用されるデータのアクセスパターンに基づいて割り当てる方法で
あって: メインメモリを設け; 前記メインメモリに接続されたプロセッサを設け; 前記プロセッサに接続された少なくとも1つのキャッシュメモリを設け、前記
少なくとも1つのキャッシュメモリが各々少なくとも2つのキャッシュウェイ備
える複数のセットを有し、その複数のセットの各セットが前記少なくとも2つの
キャッシュウェイの1つに非テンポラリデータが入っているかどうかを指示する
第1のビットを有し; 前記プロセッサによって前記メインメモリあるいは前記少なくとも1つのキャ
ッシュメモリのいずれかのデータにアクセスする; ことを特徴とする方法。 - 【請求項14】 前記少なくとも1つのキャッシュメモリが、さらに、対応
するウェイ中のデータエントリの順序を指示する第2のビットを備えることを特
徴とする請求項13記載の方法。 - 【請求項15】 前記順序が前記データエントリが他のエントリに対して最
低使用頻度のエントリであるかどうかを指示することを特徴とする請求項14記
載の方法。 - 【請求項16】 前記第1のビットがセットされて、関連づけられたウェイ
に非テンポラリデータが入っていることを指示することを特徴とする請求項13
記載の方法。 - 【請求項17】 前記第1のビットがクリアされて、関連づけられたウェイ
にテンポラリデータが入っていることを指示することを特徴とする請求項13記
載のコンピュータシステム。 - 【請求項18】 さらに、前記少なくとも1つのキャッシュメモリ及び前記
プロセッサに接続されていて、前記少なくとも1つのキャッシュメモリを制御す
るためのキャッシュ制御論理機構を設けることを特徴とする請求項14記載の方
法。 - 【請求項19】 前記プロセッサがデータにアクセスするための命令を受け
取り、かつプロセッサがそのデータが前記少なくとも1つのキャッシュメモリ中
にあるかどうかの判断を行って、そこにあれば前記少なくとも1つのキャッシュ
メモリから前記データを読み出し、そこになければ前記メインメモリから前記デ
ータを読み出すことを特徴とする請求項18記載の方法。 - 【請求項20】 前記データが前記少なくとも1つのキャッシュメモリから
読み出される場合に、前記キャッシュ制御論理機構が前記データがテンポラリデ
ータであるかどうかの判断を行い、テンポラリデータであれば、アクセスされて
いる前記ウェイに対応する前記第2のビットの順序を更新し、テンポラリデータ
でなければその順序を変えないでおくことを特徴とする請求項19記載の方法。 - 【請求項21】 前記ウェイに対応する前記第1のビットは変えないでおく
ことを特徴とする請求項19記載の方法。 - 【請求項22】 前記データが前記少なくとも1つのキャッシュメモリから
読み出される場合に、前記キャッシュ制御論理機構が読み出される前記データが
非テンポラリであることを指示すように前記第1のビットを設定すると共に、前
記キャッシュ制御論理機構がさらに前記第2のビットの前記順序を更新すること
を特徴とする請求項19記載の方法。 - 【請求項23】 前記データが前記メインメモリから読み出される場合に、
前記キャッシュ制御論理機構が前記データが非テンポラリデータであるかどうか
の判断を行い非テンポラリデータであれば、前記読み出されている前記データが
非テンポラリデータであることを指示するように前記第1のビットを設定し、前
記キャッシュ制御論理機構が前記第2のビットの前記順序を変えないでおくこと
を特徴とする請求項19記載の方法。 - 【請求項24】 前記キャッシュ制御論理機構が前記データがテンポラリデ
ータであると判断した場合に、前記キャッシュ制御論理機構が読み出される前記
データがテンポラリであることを前記第1のビットが指示するように設定し、前
記キャッシュ制御論理機構が前記第2のビットの前記順序を更新することを特徴
とする請求項23記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/053,386 US6202129B1 (en) | 1998-03-31 | 1998-03-31 | Shared cache structure for temporal and non-temporal information using indicative bits |
US09/053,386 | 1998-03-31 | ||
PCT/US1999/006501 WO1999050752A1 (en) | 1998-03-31 | 1999-03-24 | Shared cache structure for temporal and non-temporal instructions |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002510085A true JP2002510085A (ja) | 2002-04-02 |
JP2002510085A5 JP2002510085A5 (ja) | 2007-03-08 |
JP4486750B2 JP4486750B2 (ja) | 2010-06-23 |
Family
ID=21983863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000541596A Expired - Fee Related JP4486750B2 (ja) | 1998-03-31 | 1999-03-24 | テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造 |
Country Status (10)
Country | Link |
---|---|
US (2) | US6202129B1 (ja) |
EP (1) | EP1066566B1 (ja) |
JP (1) | JP4486750B2 (ja) |
KR (1) | KR100389549B1 (ja) |
CN (1) | CN1230750C (ja) |
AU (1) | AU3364599A (ja) |
BR (1) | BR9909295A (ja) |
RU (1) | RU2212704C2 (ja) |
TW (1) | TW573252B (ja) |
WO (1) | WO1999050752A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013080426A1 (ja) * | 2011-12-01 | 2013-06-06 | パナソニック株式会社 | 熱を考慮した構造を持つ集積回路装置、三次元集積回路、三次元プロセッサ装置、及びプロセススケジューラ |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978379A (en) | 1997-01-23 | 1999-11-02 | Gadzoox Networks, Inc. | Fiber channel learning bridge, learning half bridge, and protocol |
US6202129B1 (en) * | 1998-03-31 | 2001-03-13 | Intel Corporation | Shared cache structure for temporal and non-temporal information using indicative bits |
US6216215B1 (en) | 1998-04-02 | 2001-04-10 | Intel Corporation | Method and apparatus for senior loads |
US6542966B1 (en) * | 1998-07-16 | 2003-04-01 | Intel Corporation | Method and apparatus for managing temporal and non-temporal data in a single cache structure |
US7430171B2 (en) | 1998-11-19 | 2008-09-30 | Broadcom Corporation | Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost |
US6560677B1 (en) * | 1999-05-04 | 2003-05-06 | International Business Machines Corporation | Methods, cache memories, systems and computer program products for storing transient, normal, and locked entries in an associative cache memory |
US6728835B1 (en) * | 2000-08-30 | 2004-04-27 | Unisys Corporation | Leaky cache mechanism |
US6681295B1 (en) * | 2000-08-31 | 2004-01-20 | Hewlett-Packard Development Company, L.P. | Fast lane prefetching |
US6578111B1 (en) * | 2000-09-29 | 2003-06-10 | Sun Microsystems, Inc. | Cache memory system and method for managing streaming-data |
AU2001294856A1 (en) * | 2000-09-29 | 2002-04-08 | Sun Microsystems, Inc. | System and method for identifying and managing streaming-data |
US6598124B1 (en) * | 2000-09-29 | 2003-07-22 | Sun Microsystems, Inc. | System and method for identifying streaming-data |
US6668307B1 (en) * | 2000-09-29 | 2003-12-23 | Sun Microsystems, Inc. | System and method for a software controlled cache |
US6766413B2 (en) * | 2001-03-01 | 2004-07-20 | Stratus Technologies Bermuda Ltd. | Systems and methods for caching with file-level granularity |
US6766389B2 (en) * | 2001-05-18 | 2004-07-20 | Broadcom Corporation | System on a chip for networking |
US6574708B2 (en) * | 2001-05-18 | 2003-06-03 | Broadcom Corporation | Source controlled cache allocation |
US7287649B2 (en) * | 2001-05-18 | 2007-10-30 | Broadcom Corporation | System on a chip for packet processing |
US7239636B2 (en) | 2001-07-23 | 2007-07-03 | Broadcom Corporation | Multiple virtual channels for use in network devices |
US6823426B2 (en) * | 2001-12-20 | 2004-11-23 | Intel Corporation | System and method of data replacement in cache ways |
US7328328B2 (en) * | 2002-02-19 | 2008-02-05 | Ip-First, Llc | Non-temporal memory reference control mechanism |
US7295555B2 (en) | 2002-03-08 | 2007-11-13 | Broadcom Corporation | System and method for identifying upper layer protocol message boundaries |
US7266587B2 (en) * | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
US7114043B2 (en) * | 2002-05-15 | 2006-09-26 | Broadcom Corporation | Ambiguous virtual channels |
US7269709B2 (en) * | 2002-05-15 | 2007-09-11 | Broadcom Corporation | Memory controller configurable to allow bandwidth/latency tradeoff |
US7035979B2 (en) * | 2002-05-22 | 2006-04-25 | International Business Machines Corporation | Method and apparatus for optimizing cache hit ratio in non L1 caches |
US7073030B2 (en) | 2002-05-22 | 2006-07-04 | International Business Machines Corporation | Method and apparatus providing non level one information caching using prefetch to increase a hit ratio |
US6904501B1 (en) * | 2002-06-17 | 2005-06-07 | Silicon Graphics, Inc. | Cache memory for identifying locked and least recently used storage locations |
US7934021B2 (en) | 2002-08-29 | 2011-04-26 | Broadcom Corporation | System and method for network interfacing |
US7346701B2 (en) | 2002-08-30 | 2008-03-18 | Broadcom Corporation | System and method for TCP offload |
US7411959B2 (en) | 2002-08-30 | 2008-08-12 | Broadcom Corporation | System and method for handling out-of-order frames |
US8180928B2 (en) | 2002-08-30 | 2012-05-15 | Broadcom Corporation | Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney |
US7313623B2 (en) | 2002-08-30 | 2007-12-25 | Broadcom Corporation | System and method for TCP/IP offload independent of bandwidth delay product |
US7512498B2 (en) * | 2002-12-31 | 2009-03-31 | Intel Corporation | Streaming processing of biological sequence matching |
WO2005050455A1 (ja) * | 2003-11-18 | 2005-06-02 | Matsushita Electric Industrial Co., Ltd. | キャッシュメモリ及びその制御方法 |
US7321954B2 (en) * | 2004-08-11 | 2008-01-22 | International Business Machines Corporation | Method for software controllable dynamically lockable cache line replacement system |
US20060101208A1 (en) * | 2004-11-09 | 2006-05-11 | Intel Corporation | Method and apparatus for handling non-temporal memory accesses in a cache |
US7356650B1 (en) * | 2005-06-17 | 2008-04-08 | Unisys Corporation | Cache apparatus and method for accesses lacking locality |
US7437510B2 (en) * | 2005-09-30 | 2008-10-14 | Intel Corporation | Instruction-assisted cache management for efficient use of cache and memory |
US7624257B2 (en) * | 2005-11-30 | 2009-11-24 | International Business Machines Corporation | Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads |
US20070150658A1 (en) * | 2005-12-28 | 2007-06-28 | Jaideep Moses | Pinning locks in shared cache |
US8527713B2 (en) * | 2006-01-31 | 2013-09-03 | Qualcomm Incorporated | Cache locking without interference from normal allocations |
GB0603552D0 (en) | 2006-02-22 | 2006-04-05 | Advanced Risc Mach Ltd | Cache management within a data processing apparatus |
WO2007097028A1 (ja) * | 2006-02-27 | 2007-08-30 | Fujitsu Limited | Lru制御装置、lru制御方法およびlru制御プログラム |
US20080147989A1 (en) * | 2006-12-14 | 2008-06-19 | Arm Limited | Lockdown control of a multi-way set associative cache memory |
US8078803B2 (en) | 2008-01-30 | 2011-12-13 | Qualcomm Incorporated | Apparatus and methods to reduce castouts in a multi-level cache hierarchy |
US7793049B2 (en) * | 2007-10-30 | 2010-09-07 | International Business Machines Corporation | Mechanism for data cache replacement based on region policies |
US8108614B2 (en) * | 2007-12-31 | 2012-01-31 | Eric Sprangle | Mechanism for effectively caching streaming and non-streaming data patterns |
MX2011000292A (es) * | 2008-07-23 | 2011-02-23 | Micro Motion Inc | Sistema de procesamiento con cotrol de acceso a memoria externa. |
US8364898B2 (en) * | 2009-01-23 | 2013-01-29 | International Business Machines Corporation | Optimizing a cache back invalidation policy |
US8312219B2 (en) * | 2009-03-02 | 2012-11-13 | International Business Machines Corporation | Hybrid caching techniques and garbage collection using hybrid caching techniques |
US9063825B1 (en) * | 2009-09-21 | 2015-06-23 | Tilera Corporation | Memory controller load balancing with configurable striping domains |
EP2513799B1 (en) * | 2009-12-16 | 2014-03-12 | Telefonaktiebolaget L M Ericsson (PUBL) | A method, server and computer program for caching |
US9323527B2 (en) * | 2010-10-15 | 2016-04-26 | International Business Machines Corporation | Performance of emerging applications in a virtualized environment using transient instruction streams |
EP3382556A1 (en) | 2011-09-30 | 2018-10-03 | INTEL Corporation | Memory channel that supports near memory and far memory access |
CN103946811B (zh) | 2011-09-30 | 2017-08-11 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
WO2013048497A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy |
CN103946826B (zh) | 2011-09-30 | 2019-05-31 | 英特尔公司 | 用于在公共存储器通道上实现多级存储器层级的设备和方法 |
US9519549B2 (en) * | 2012-01-11 | 2016-12-13 | International Business Machines Corporation | Data storage backup with lessened cache pollution |
US8856455B2 (en) | 2012-03-28 | 2014-10-07 | International Business Machines Corporation | Data cache block deallocate requests |
US8874852B2 (en) | 2012-03-28 | 2014-10-28 | International Business Machines Corporation | Data cache block deallocate requests in a multi-level cache hierarchy |
CN103577480B (zh) * | 2012-08-07 | 2017-05-31 | 中国银联股份有限公司 | 一种参数划分系统及其方法、一种业务处理系统及其方法 |
US9558121B2 (en) * | 2012-12-28 | 2017-01-31 | Intel Corporation | Two-level cache locking mechanism |
US9256539B2 (en) | 2013-03-07 | 2016-02-09 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Sharing cache in a computing system |
US9311239B2 (en) | 2013-03-14 | 2016-04-12 | Intel Corporation | Power efficient level one data cache access with pre-validated tags |
US20150095586A1 (en) * | 2013-09-30 | 2015-04-02 | Advanced Micro Devices , Inc. | Storing non-temporal cache data |
US11580125B2 (en) | 2015-05-08 | 2023-02-14 | Adp, Inc. | Information system with temporal data |
US10379827B2 (en) * | 2016-12-29 | 2019-08-13 | Intel Corporation | Automatic identification and generation of non-temporal store and load operations in a dynamic optimization environment |
US11681627B1 (en) * | 2021-10-18 | 2023-06-20 | Meta Platforms Technologies, Llc | Distributed temporal cache for Systems on a Chip |
US12072803B1 (en) * | 2022-06-30 | 2024-08-27 | Advanced Micro Devices, Inc. | Systems and methods for tracking data cache miss requests with data cache tags |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5119453A (en) * | 1974-08-08 | 1976-02-16 | Fujitsu Ltd | Patsufua memoriseigyohoshiki |
JPS5534336A (en) * | 1978-08-31 | 1980-03-10 | Fujitsu Ltd | Buffer memory control method |
JPS58159285A (ja) * | 1982-03-17 | 1983-09-21 | Nec Corp | バツフアメモリ制御方式 |
JPH01133162A (ja) * | 1987-11-18 | 1989-05-25 | Fujitsu Ltd | キャッシュメモリ制御方式 |
JPH0358151A (ja) * | 1989-07-26 | 1991-03-13 | Nec Corp | キャッシュメモリ装置 |
JPH0358252A (ja) * | 1989-07-27 | 1991-03-13 | Nec Corp | キャッシュメモリ制御装置 |
JPH041838A (ja) * | 1990-04-18 | 1992-01-07 | Nec Corp | キャッシュメモリ制御回路 |
JPH04215151A (ja) * | 1990-12-13 | 1992-08-05 | Nec Commun Syst Ltd | キャッシュ制御方式 |
JPH05165726A (ja) * | 1991-12-12 | 1993-07-02 | Nec Corp | データ処理装置 |
JPH05233454A (ja) * | 1992-02-24 | 1993-09-10 | Hitachi Ltd | キャッシュメモリ装置 |
JPH06348595A (ja) * | 1993-06-07 | 1994-12-22 | Hitachi Ltd | キャッシュ装置 |
JPH07281957A (ja) * | 1994-04-15 | 1995-10-27 | Hitachi Ltd | キャッシュ記憶装置およびアクセス命令生成方法 |
JPH07334428A (ja) * | 1994-06-14 | 1995-12-22 | Toshiba Corp | キャッシュメモリ |
JPH10207767A (ja) * | 1997-01-16 | 1998-08-07 | Toshiba Corp | ロック機能付キャッシュメモリ及びこのキャッシュメモリを備えたマイクロプロセッサ |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4905141A (en) | 1988-10-25 | 1990-02-27 | International Business Machines Corporation | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification |
EP0496439B1 (en) * | 1991-01-15 | 1998-01-21 | Koninklijke Philips Electronics N.V. | Computer system with multi-buffer data cache and method therefor |
GB2255211B (en) * | 1991-04-25 | 1995-05-17 | Intel Corp | LRU pointer updating in a controller for two-way set associative cache |
GB2256512B (en) * | 1991-06-04 | 1995-03-15 | Intel Corp | Second level cache controller unit and system |
US5353425A (en) * | 1992-04-29 | 1994-10-04 | Sun Microsystems, Inc. | Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature |
US5471605A (en) * | 1992-08-27 | 1995-11-28 | Intel Corporation | Apparatus for updating a multi-way set associative cache memory status array |
US5434992A (en) | 1992-09-04 | 1995-07-18 | International Business Machines Corporation | Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace |
US5493667A (en) * | 1993-02-09 | 1996-02-20 | Intel Corporation | Apparatus and method for an instruction cache locking scheme |
US5826052A (en) | 1994-04-29 | 1998-10-20 | Advanced Micro Devices, Inc. | Method and apparatus for concurrent access to multiple physical caches |
US5584014A (en) * | 1994-12-20 | 1996-12-10 | Sun Microsystems, Inc. | Apparatus and method to preserve data in a set associative memory device |
US5701426A (en) * | 1995-03-31 | 1997-12-23 | Bull Information Systems Inc. | Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio |
US5845317A (en) * | 1995-11-17 | 1998-12-01 | Micron Technology, Inc. | Multi-way cache expansion circuit architecture |
GB2311880A (en) * | 1996-04-03 | 1997-10-08 | Advanced Risc Mach Ltd | Partitioned cache memory |
US5829025A (en) * | 1996-12-17 | 1998-10-27 | Intel Corporation | Computer system and method of allocating cache memories in a multilevel cache hierarchy utilizing a locality hint within an instruction |
US6434671B2 (en) * | 1997-09-30 | 2002-08-13 | Intel Corporation | Software-controlled cache memory compartmentalization |
US6202129B1 (en) * | 1998-03-31 | 2001-03-13 | Intel Corporation | Shared cache structure for temporal and non-temporal information using indicative bits |
US6205520B1 (en) * | 1998-03-31 | 2001-03-20 | Intel Corporation | Method and apparatus for implementing non-temporal stores |
US6105111A (en) * | 1998-03-31 | 2000-08-15 | Intel Corporation | Method and apparatus for providing a cache management technique |
US6223258B1 (en) * | 1998-03-31 | 2001-04-24 | Intel Corporation | Method and apparatus for implementing non-temporal loads |
-
1998
- 1998-03-31 US US09/053,386 patent/US6202129B1/en not_active Expired - Lifetime
-
1999
- 1999-03-24 WO PCT/US1999/006501 patent/WO1999050752A1/en active IP Right Grant
- 1999-03-24 CN CNB998047333A patent/CN1230750C/zh not_active Expired - Lifetime
- 1999-03-24 BR BR9909295-6A patent/BR9909295A/pt not_active Application Discontinuation
- 1999-03-24 EP EP99915030A patent/EP1066566B1/en not_active Expired - Lifetime
- 1999-03-24 AU AU33645/99A patent/AU3364599A/en not_active Abandoned
- 1999-03-24 RU RU2000127102/09A patent/RU2212704C2/ru not_active IP Right Cessation
- 1999-03-24 JP JP2000541596A patent/JP4486750B2/ja not_active Expired - Fee Related
- 1999-03-24 KR KR10-2000-7010799A patent/KR100389549B1/ko not_active IP Right Cessation
- 1999-03-31 TW TW88105070A patent/TW573252B/zh not_active IP Right Cessation
-
2001
- 2001-03-09 US US09/803,357 patent/US6584547B2/en not_active Expired - Lifetime
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5119453A (en) * | 1974-08-08 | 1976-02-16 | Fujitsu Ltd | Patsufua memoriseigyohoshiki |
JPS5534336A (en) * | 1978-08-31 | 1980-03-10 | Fujitsu Ltd | Buffer memory control method |
JPS58159285A (ja) * | 1982-03-17 | 1983-09-21 | Nec Corp | バツフアメモリ制御方式 |
JPH01133162A (ja) * | 1987-11-18 | 1989-05-25 | Fujitsu Ltd | キャッシュメモリ制御方式 |
JPH0358151A (ja) * | 1989-07-26 | 1991-03-13 | Nec Corp | キャッシュメモリ装置 |
JPH0358252A (ja) * | 1989-07-27 | 1991-03-13 | Nec Corp | キャッシュメモリ制御装置 |
JPH041838A (ja) * | 1990-04-18 | 1992-01-07 | Nec Corp | キャッシュメモリ制御回路 |
JPH04215151A (ja) * | 1990-12-13 | 1992-08-05 | Nec Commun Syst Ltd | キャッシュ制御方式 |
JPH05165726A (ja) * | 1991-12-12 | 1993-07-02 | Nec Corp | データ処理装置 |
JPH05233454A (ja) * | 1992-02-24 | 1993-09-10 | Hitachi Ltd | キャッシュメモリ装置 |
JPH06348595A (ja) * | 1993-06-07 | 1994-12-22 | Hitachi Ltd | キャッシュ装置 |
JPH07281957A (ja) * | 1994-04-15 | 1995-10-27 | Hitachi Ltd | キャッシュ記憶装置およびアクセス命令生成方法 |
JPH07334428A (ja) * | 1994-06-14 | 1995-12-22 | Toshiba Corp | キャッシュメモリ |
JPH10207767A (ja) * | 1997-01-16 | 1998-08-07 | Toshiba Corp | ロック機能付キャッシュメモリ及びこのキャッシュメモリを備えたマイクロプロセッサ |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013080426A1 (ja) * | 2011-12-01 | 2013-06-06 | パナソニック株式会社 | 熱を考慮した構造を持つ集積回路装置、三次元集積回路、三次元プロセッサ装置、及びプロセススケジューラ |
US9122286B2 (en) | 2011-12-01 | 2015-09-01 | Panasonic Intellectual Property Management Co., Ltd. | Integrated circuit apparatus, three-dimensional integrated circuit, three-dimensional processor device, and process scheduler, with configuration taking account of heat |
Also Published As
Publication number | Publication date |
---|---|
EP1066566A4 (en) | 2002-10-23 |
CN1295687A (zh) | 2001-05-16 |
WO1999050752A1 (en) | 1999-10-07 |
US20020007441A1 (en) | 2002-01-17 |
AU3364599A (en) | 1999-10-18 |
TW573252B (en) | 2004-01-21 |
EP1066566B1 (en) | 2006-11-02 |
JP4486750B2 (ja) | 2010-06-23 |
BR9909295A (pt) | 2000-12-05 |
WO1999050752A9 (en) | 2000-05-25 |
US6202129B1 (en) | 2001-03-13 |
US6584547B2 (en) | 2003-06-24 |
KR20010042262A (ko) | 2001-05-25 |
CN1230750C (zh) | 2005-12-07 |
RU2212704C2 (ru) | 2003-09-20 |
KR100389549B1 (ko) | 2003-06-27 |
EP1066566A1 (en) | 2001-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002510085A (ja) | テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造 | |
US6105111A (en) | Method and apparatus for providing a cache management technique | |
US6138213A (en) | Cache including a prefetch way for storing prefetch cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line | |
US6957304B2 (en) | Runahead allocation protection (RAP) | |
US6292871B1 (en) | Loading accessed data from a prefetch buffer to a least recently used position in a cache | |
JP2554449B2 (ja) | キャッシュ・メモリを有するデータ処理システム | |
US5623627A (en) | Computer memory architecture including a replacement cache | |
US5361391A (en) | Intelligent cache memory and prefetch method based on CPU data fetching characteristics | |
US7895399B2 (en) | Computer system and control method for controlling processor execution of a prefetech command | |
US6643745B1 (en) | Method and apparatus for prefetching data into cache | |
USRE45078E1 (en) | Highly efficient design of storage array utilizing multiple pointers to indicate valid and invalid lines for use in first and second cache spaces and memory subsystems | |
EP0763795A1 (en) | Stream prefetching buffer with stream filter | |
US20020042863A1 (en) | Storing a flushed cache line in a memory buffer of a controller | |
US20020138698A1 (en) | System and method for caching directory information in a shared memory multiprocessor system | |
US20090055588A1 (en) | Performing Useful Computations While Waiting for a Line in a System with a Software Implemented Cache | |
US6826652B1 (en) | Smart cache | |
JP3262519B2 (ja) | 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム | |
US6959363B2 (en) | Cache memory operation | |
US7162588B2 (en) | Processor prefetch to match memory bus protocol characteristics | |
JPH09223067A (ja) | 多方向アソシエーティブ・キャッシュにタグ付けする方法および装置 | |
EP1111511A1 (en) | Cache with multiple fill modes | |
US7293141B1 (en) | Cache word of interest latency organization | |
US6249845B1 (en) | Method for supporting cache control instructions within a coherency granule | |
US6240487B1 (en) | Integrated cache buffers | |
JP3515333B2 (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060317 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060317 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070122 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090610 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090714 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20091014 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091021 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20091116 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091124 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20091214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100114 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100224 |
|
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: 20100316 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100329 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130402 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130402 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140402 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |