JP4783229B2 - キャッシュメモリシステム - Google Patents
キャッシュメモリシステム Download PDFInfo
- Publication number
- JP4783229B2 JP4783229B2 JP2006196822A JP2006196822A JP4783229B2 JP 4783229 B2 JP4783229 B2 JP 4783229B2 JP 2006196822 A JP2006196822 A JP 2006196822A JP 2006196822 A JP2006196822 A JP 2006196822A JP 4783229 B2 JP4783229 B2 JP 4783229B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- tag
- physical
- virtual
- virtual index
- 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
- 230000015654 memory Effects 0.000 title claims description 160
- 238000000034 method Methods 0.000 claims description 37
- 238000001514 detection method Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000000926 separation method Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- 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
- 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
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
VIPT方式は、仮想アドレスの仮想インデックスに基づいてキャッシュメモリのキャッシュラインにアクセスし、アクセスしたキャッシュラインのタグ情報(キャッシュラインのデータが格納されていたメインメモリの物理ページを示す情報、つまり、当該物理ページの物理タグに一致する情報)をタグアレイから読み出す。また、仮想アドレスの上位ビットをアドレス変換して物理アドレスの物理タグを得る。そして、タグアレイから読み出したタグ情報とアドレス変換により得られた物理タグとを比較して、キャッシュヒットかキャッシュミスかの判定を行う。
図10はダイレクトマップ型のキャッシュメモリにおいて物理ブロックがマッピングされるキャッシュラインを説明するための図である。但し、キャッシュサイズが物理ページの2ページ分であるとする。
キャッシュサイズは物理ページの2ページ分であるので、例えば、1つの物理アドレスPAと2つの仮想アドレスVA,VA’とが対応する。
図12はキャッシュエイリアスの問題を説明するための図である。
このキャッシュエイリアス問題に対処する技術として、例えば、次のようなものがある。
上記のキャッシュメモリシステムにおいて、前記キャッシュメモリはライトスルーキャッシュであり、前記比較手段によりキャッシュエイリアスが検出された場合において、リード操作であれば、前記アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインの1つを除き無効化する無効化手段と、前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得手段と、前記無効化手段により無効化されなかった前記キャッシュラインの前記タグ情報と前記物理タグ取得手段により取得される前記物理タグとを比較し、一致すればキャッシュヒットとし、一致しなければキャッシュミスとする物理タグ比較手段と、を更に備えるようにしてもよい。
以下、本発明の第1の実施の形態について図面を参照しつつ説明する。なお、本実施の形態及び後述する実施の形態ではダイレクトマップ型のキャッシュにVIPT方式でアクセスし、キャッシュメモリのキャッシュサイズがメインメモリの物理ページのページサイズより大きい場合について説明する。
本実施の形態のキャッシュメモリシステムのシステム構成について図1を参照しつつ説明する。図1はキャッシュメモリシステムのシステム構成図である。
キャッシュメモリシステム1は、キャッシュメモリ11、メインメモリ12、仮想インデックス取得部13、デコーダ14、物理タグ取得部15、比較部16及びキャッシュフィル部17を備える。
データアレイ11cの各々のキャッシュラインのエントリには、対応するキャッシュラインと例えば図10を参照して説明した関係にある物理ブロックの何れかの物理ブロックのデータが格納される。
選択回路11bは、比較部16からのヒット信号に応じてデコードされた仮想インデックスに対応したデータアレイ11cのキャッシュラインから取り出されたデータData1を不図示のマイクロプロセッサへ出力する。
仮想インデックス取得部13は、不図示のマイクロプロセッサから入力される仮想アドレスVADに基づいてアクセス対象のキャッシュラインの仮想インデックスVI(0)及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの仮想インデックスVI(1),VI(2),・・・を取得する。そして、仮想インデックス取得部13は、取得した仮想インデックスVI(i)(i=0,1,2,・・・)をデコーダ14へ出力し、仮想インデックスVI(0)をキャッシュフィル部17へ出力する。但し、仮想インデックス取得部13は不図示のマイクロプロセッサから仮想アドレスVADが入力された時に仮想インデックスVI(0)をデコーダ14に出力し、比較部16から不一致信号が入力された時にその度に仮想インデックスVI(1),VI(2),・・・のうちの1つの未出力の仮想インデックスをデコーダ14に出力する。
比較部16は、物理タグ取得部15から入力される物理タグTAGとキャッシュメモリ11のタグアレイ11aから入力されるタグ情報TAG(i)とを比較する。比較部16は、物理タグTAGとタグ情報TAG(i)とが一致しなければ不一致信号を仮想インデックス取得部13へ出力し、一致すればキャッシュヒットとしてヒット信号を選択回路11bへ出力する。
図1の仮想インデックス取得部の構成について図2を参照しつつ説明する。図2は図1の仮想インデックス取得部の構成図の一例である。
ただし、物理ページの1ページサイズが4Kバイト、キャッシュメモリのメモリサイズが8Kバイト、キャッシュラインの1ラインサイズ及び物理ページの1物理ブロックサイズが16バイト、及び仮想アドレスが32ビットとする。
また、図11の場合と同じく、仮想アドレスVADの12〜4ビット桁の9ビットが仮想インデックスである。仮想アドレスVADの仮想インデックスVI(0)に対応するキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの仮想インデックスVI(1)は、仮想インデックスVI(0)の最上位ビットを反転して得られるビット列である。
仮想アドレス分離部13aは、仮想アドレスVAD[31:0]の11〜4ビット桁の仮想アドレスVAD[11:4]をデコーダ14に出力し、その12ビット桁の仮想アドレスVAD[12]を反転器13b及び選択器13cに出力する。
選択器13cは、仮想アドレス取得部13に仮想アドレスVAD[12]の入力時において仮想アドレス分離部13aからの入力である仮想アドレスVAD[12]を選択してデコーダ14に出力する。これにより、デコーダ14には仮想アドレスVAD[31:0]の仮想インデックスVI(0)(VAD[12:4])が入力されることになる。
<動作>
図1のキャッシュメモリシステムの動作について図3を参照しつつ説明する。図3は図1のキャッシュメモリシステムの動作のフローチャートである。
仮想インデックス取得部13は、デコーダ14へ出力する仮想インデックスとして仮想インデックスVI(i)を選択し、選択した仮想インデックスVI(i)をデコーダ14へ出力する(ステップS104)。
比較部16は、タグ情報TAG(i)と物理タグTAGとを比較する(ステップS106)。
比較の結果、タグ情報TAG(i)が物理タグTAGと一致していなければ(S106:NO)、比較部16は仮想インデックス取得部13に不一致信号を出力し、仮想インデックス取得部13はカウンタ値iを1カウントアップする(ステップS108)。
カウンタ値iが定数Nより大きければ(S109:YES)、アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの全てのタグ情報TAG(i)(i=0,1,・・・,N)が物理タグTAGと一致しなかったので、仮想インデックス取得部13はキャッシュミスとしてミス信号をキャッシュフィル部17へ出力する(ステップS110)。
≪第2の実施の形態≫
以下、本発明の第2の実施の形態について図面を参照しつつ説明する。但し、第1の実施の形態は同じ物理ページの同じ物理ブロックがキャッシュメモリの2つ以上のキャッシュラインに同時に格納されないようにしてキャッシュエイリアスを回避するものであるのに対して、第2の実施の形態は同じ物理ページの同じ物理ブロックのデータがキャッシュメモリの2つ以上のキャッシュラインに格納されて生じるキャッシュエイリアスを検出するものである。
本実施の形態のキャッシュメモリシステムのシステム構成について図4を参照しつつ説明する。図4はキャッシュメモリシステムのシステム構成図である。なお、第2の実施の形態において、第1の実施の形態と同じ機能を有する構成には同じ符号を付し、その説明が適用できるため説明を省略する。
キャッシュメモリ31はタグアレイ31a、選択回路11b、データアレイ11cを有する。キャッシュメモリ31では、デコードされた仮想アドレスに対応したキャッシュラインがアクセスされ、デコーダ31a及びデータアレイ31cからデータが取り出される。
第1比較部33は、アクセス対象のキャッシュラインのタグ情報TAG(0)と、当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインのタグ情報TAG(i)(i=1,2,・・・)とを比較する。第1比較部33は、タグ情報TAG(0)とタグ情報TAG(i)とが一致していればキャッシュエイリアスを検出したとして不図示のマイクロプロセッサにエイリアス検出信号を出力し、一致していなければ不一致信号を仮想インデックス取得部32へ出力する。
<動作>
図4のキャッシュメモリシステムの動作について図5を参照しつつ説明する。図5は図4のキャッシュメモリシステムの動作のフローチャートである。
仮想インデックス取得部32は、デコーダ14へ出力する仮想インデックスとしてアクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの仮想インデックスVI(i)を選択し、選択した仮想インデックスVI(i)をデコーダ14へ出力する(ステップS206)。
第1比較部33は、タグ情報TAG(0)とタグ情報TAG(i)とを比較する(ステップS208)。
比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していなければ(S208:NO)、第1比較部33は仮想インデックス取得部32に不一致信号を出力し、仮想インデックス取得部32はカウンタ値iを1カウントアップする(ステップS210)。
カウンタ値iが定数Nより大きくなければ(S211:NO)、キャッシュエイリアスの判定対象となっていないキャッシュエイリアスの関係になり得るキャッシュラインに対して判定処理を行うために、ステップS206以降の処理が行われる。
以下、本発明の第3の実施の形態について図面を参照しつつ説明する。但し、第3の実施の形態は第2の実施の形態のキャッシュメモリシステムにキャッシュエイリアス検出時にキャッシュエイリアスの関係にあったキャッシュラインを無効化する機能を付加したものである。なお、本実施の形態のキャッシュメモリは、ライトスルーキャッシュメモリとする。
本実施の形態のキャッシュメモリシステムのシステム構成について図6を参照しつつ説明する。図6はキャッシュメモリシステムのシステム構成図である。なお、第3の実施の形態において、第1及び第2の実施の形態と同じ機能を有する構成には同じ符号を付し、その説明が適用できるため説明を省略する。
仮想インデックス取得部51は、不図示のマイクロプロセッサから入力される仮想アドレスVADに基づいてアクセス対象のキャッシュラインの仮想インデックスVI(0)及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの仮想インデックスVI(1),VI(2),・・・を取得する。そして、仮想インデックス取得部51は、取得した仮想インデックスVI(i)(i=0,1,2,・・・)をデコーダ14へ出力し、仮想インデックスVI(0)をキャッシュフィル部54へ出力する。但し、仮想インデックス取得部51は不図示のマイクロプロセッサから仮想アドレスVADが入力された時に仮想インデックスVI(0)と仮想インデックスVI(1)を順次デコーダ14へ出力し、第1比較部52からカウント信号が入力された時にその度に仮想インデックスVI(2),VI(3),・・・のうちの1つの未出力の仮想インデックスをデコーダ14に出力する。
<動作>
図6のキャッシュメモリシステムの動作について図7を参照しつつ説明する。図7は図6のキャッシュメモリシステムの動作のフローチャートである。
仮想インデックス取得部51は、デコーダ14へ出力する仮想インデックスとしてアクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る仮想インデックスVI(i)を選択し、選択した仮想インデックスVI(i)をデコーダ14へ出力する(ステップS306)。
第1比較部52は、タグ情報TAG(0)とタグ情報TAG(i)とを比較する(ステップS308)。
ステップS312における判定の結果、カウンタ値iが定数Nより大きくなければ(S312:NO)、キャッシュエイリアスの判定対象となっていないキャッシュエイリアスの関係になり得るキャッシュラインに対して判定処理を行うために、仮想インデックス取得部51は、仮想インデックスVI(i)を選択し、選択した仮想インデックスVI(i)をデコーダ14へ出力する(ステップS313)。
第1比較部52は、タグ情報TAG(0)とタグ情報TAG(i)とを比較する(ステップS315)。比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していれば(S315:YES)、ステップS310以降の処理が行われ、一致していなけれ(S315:NO)、ステップS311以降の処理が行われる。
仮想アドレス変更部51はカウンタ値iが定数Nより大きいかを判定する(ステップS318)。
ステップS318における判定の結果、カウンタ値iが定数Nより大きければ(S318:YES)、アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る全てのキャッシュラインにおいてキャッシュエイリアスが検出されなかったので、仮想インデックス取得部51はヒットミス判定信号を第2比較部34に出力する。第2比較部34は、ヒットミス判定信号が入力されると、物理タグTAGとタグ情報TAG(0)とを比較する(ステップS319)。
比較の結果、タグ情報TAG(0)が物理タグに一致していなければ(S319:NO)、第2比較部34はキャッシュミスとしてミス信号をキャッシュフィル部54へ出力する(ステップS321)。そして、キャッシュフィル部54は、ミス信号が入力されると、メインメモリ12のデータをキャッシュメモリ11の仮想インデックスVI(0)に対応したキャッシュラインにフィルする(ステップS322)。
以下、本発明の第4の実施の形態について図面を参照しつつ説明する。但し、第4の実施の形態は第2の実施の形態のキャッシュメモリシステムにキャッシュエイリアス検出時にキャッシュエイリアスの関係にあったキャッシュラインを無効化する機能を付加したものである。なお、本実施の形態のキャッシュメモリは、ライトスルーキャッシュメモリとする。
本実施の形態のキャッシュメモリシステムのシステム構成について図8を参照しつつ説明する。図8はキャッシュメモリシステムのシステム構成図である。なお、第4の実施の形態において、第1から第3の実施の形態と同じ機能を有する構成には同じ符号を付し、その説明が適用できるため説明を省略する。
仮想インデックス取得部71は、不図示のマイクロプロセッサから入力される仮想アドレスVADに基づいてアクセス対象のキャッシュラインの仮想インデックスVI(0)及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの仮想インデックスVI(1),VI(2),・・・を取得する。そして、仮想インデックス取得部71は、取得した仮想インデックスVI(i)(i=0,1,2,・・・)をデコーダ14へ出力し、仮想インデックスVI(0)をキャッシュフィル部35へ出力する。但し、仮想インデックス取得部71は不図示のマイクロプロセッサから仮想アドレスVADが入力された時に仮想インデックスVI(0)と仮想インデックスVI(1)を順次デコーダ14へ出力し、第1比較部52からカウント信号が入力された時にその度に仮想インデックスVI(2),VI(3),・・・のうちの1つの未出力の仮想インデックスをデコーダ14に出力する。なお、本実施の形態のカウント信号には第3の実施の形態のカウント信号とは異なり、無効化に関する情報は含まれていない。
無効化部72は、第1比較部52から無効化信号が入力されると、アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインを無効化する。
図8のキャッシュメモリシステムの動作について図9を参照しつつ説明する。図9は図8のキャッシュメモリシステムの動作のフローチャートである。
仮想インデックス取得部71及び物理タグ取得部15に不図示のマイクロプロセッサから仮想アドレスVADが入力される(ステップS401)。物理タグ取得部15は仮想アドレスVADに基づいて物理タグTAGを取得する(ステップS402)。仮想インデックス取得部71は、デコーダ14へ出力する仮想インデックスとしてアクセス対象のキャッシュラインの仮想インデックスVI(0)を選択し、選択した仮想インデックスVI(0)をデコーダ14へ出力する(ステップS403)。
仮想インデックス取得部71は、デコーダ14へ出力する仮想インデックスとしてアクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る仮想インデックスVI(i)を選択し、選択した仮想インデックスVI(i)をデコーダ14へ出力する(ステップS406)。
第1比較部52は、タグ情報TAG(0)とタグ情報TAG(i)とを比較する(ステップS408)。
仮想インデックス取得部71は、カウント信号が入力されると、カウンタ値iを1カウントアップする(ステップS411)。仮想インデックス取得部71はカウントアップ後のカウンタ値iが定数Nより大きいかを判定する(ステップS412)。なお、定数Nは第1の実施の形態と同じようにして決められる。
第1比較部52は、タグ情報TAG(0)とタグ情報TAG(i)とを比較する(ステップS415)。比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していれば(S415:YES)、ステップS410以降の処理が行われ、一致していなけれ(S415:NO)、ステップS411以降の処理が行われる。
仮想インデックス取得部71は、カウント信号が入力されると、カウンタ値iを1カウントアップする(ステップS417)。仮想インデックス取得部71はカウントアップ後のカウンタ値iが定数Nより大きいかを判定する(ステップS418)。
第1比較部52は、タグ情報TAG(0)とタグ情報TAG(i)とを比較する(ステップS421)。比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していれば(S421:YES)、ステップS416以降の処理が行われ、一致していなけれ(S421:NO)、ステップS417以降の処理が行われる。
仮想アドレス変更部51はカウンタ値iが定数Nより大きいかを判定する(ステップS424)。
ステップS424における判定の結果、カウンタ値iが定数Nより大きければ(S424:YES)、アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る全てのキャッシュラインにおいてキャッシュエイリアスが検出されなかったので、仮想インデックス取得部71はヒットミス判定信号を第2比較部34に出力する。第2比較部34は、ヒットミス判定信号が入力されると、第2比較部34は物理タグTAGとアクセス対象のキャッシュラインのタグ情報TAG(0)とを比較することによってキャッシュヒットかキャッシュミスかの判定を行う(ステップS425)。この判定結果に応じてキャッシュフィルなどの処理が行われる。
本発明は上記の実施の形態に限られるものではなく、例えば、以下のようなものも含まれる。
(1)各実施の形態では、ダイレクトマップ型のキャッシュメモリを例に挙げて説明したが、これに限らず、本発明はキャッシュエイリアスが起こりうる各種キャッシュメモリに適用することができる。
11 キャッシュメモリ
11a タグアレイ
11b 選択回路
11c データアレイ
12 メインメモリ
13 仮想インデックス取得部
14 デコーダ
15 物理タグ取得部
16 比較部
17 キャッシュフィル部
Claims (8)
- 仮想インデックスにより識別される複数のキャッシュラインを有し、前記キャッシュラインにデータが格納されているメインメモリの物理ブロックを含む物理ページを示す物理タグに一致するタグ情報を記憶するタグアレイ及び当該物理ブロックのデータを記憶するデータアレイを有するキャッシュメモリにVIPT(Virtual Indexed Physical Tagged)方式でアクセスするキャッシュメモリシステムにおいて、
仮想アドレスに基づいてアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスを取得する仮想インデックス取得手段と、
前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得手段と、
前記仮想インデックス取得手段により取得される各々の前記仮想インデックスに基づいて前記タグアレイから出力される各前記仮想インデックスに対応するキャッシュラインのタグ情報と前記物理タグ取得手段により取得される前記物理タグとを比較し、前記物理タグに一致する前記タグ情報があればキャッシュヒットとする比較手段と、
を備えたことを特徴とするキャッシュメモリシステム。 - 前記比較手段による比較の結果、前記物理タグ情報に一致する前記タグ情報がなければ、前記メインメモリのデータを前記アクセス対象のキャッシュライン及び前記キャッシュエイリアスの関係になり得るキャッシュラインのうちデータが格納されていないキャッシュラインがあればその何れか1つにキャッシュフィルするキャッシュフィル手段
を更に備えたことを特徴とする請求項1記載のキャッシュメモリシステム。 - 仮想インデックスにより識別される複数のキャッシュラインを有し、前記キャッシュラインにデータが格納されているメインメモリの物理ブロックを含む物理ページを示す物理タグに一致するタグ情報を記憶するタグアレイ及び当該物理ブロックのデータを記憶するデータアレイを有するキャッシュメモリにVIPT(Virtual Indexed Physical Tagged)方式でアクセスするキャッシュメモリシステムにおいて、
仮想アドレスに基づいてアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスを取得する仮想インデックス取得手段と、
前記仮想インデックス取得手段により取得される前記アクセス対象のキャッシュラインの前記仮想インデックスに基づいて前記タグアレイから出力される前記タグ情報と前記仮想インデックス取得手段により取得される前記キャッシュエイリアスの関係になり得るキャッシュラインの各々の前記仮想インデックスに基づいて前記タグアレイから出力される前記タグ情報とを比較することによってキャッシュエイリアスを検出する比較手段と、
を備えたことを特徴とするキャッシュメモリシステム。 - 前記キャッシュメモリはライトスルーキャッシュであり、
前記比較手段によりキャッシュエイリアスが検出された場合には、前記アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインを無効化する無効化手段と、
前記メインメモリのデータを前記無効化手段により無効化される前記キャッシュラインの何れか1つにキャッシュフィルするキャッシュフィル手段と、
を更に備えたことを特徴とする請求項3記載のキャッシュメモリシステム。 - 前記キャッシュメモリはライトスルーキャッシュであり、
前記比較手段によりキャッシュエイリアスが検出された場合において、ライト操作であれば、前記アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインを無効化する無効化手段と、
前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得手段と、
前記アクセス対象のキャッシュラインの前記タグ情報と前記物理タグ取得手段により取得される前記物理タグとを比較し、一致すればキャッシュヒットとし、一致しなければキャッシュミスとする物理タグ比較手段と、
を更に備えたことを特徴とする請求項3記載のキャッシュメモリシステム。 - 前記キャッシュメモリはライトスルーキャッシュであり、
前記比較手段によりキャッシュエイリアスが検出された場合において、リード操作であれば、前記アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインの1つを除き無効化する無効化手段と、
前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得手段と、
前記無効化手段により無効化されなかった前記キャッシュラインの前記タグ情報と前記物理タグ取得手段により取得される前記物理タグとを比較し、一致すればキャッシュヒットとし、一致しなければキャッシュミスとする物理タグ比較手段と、
を更に備えたことを特徴とする請求項3記載のキャッシュメモリシステム。 - 仮想インデックスにより識別される複数のキャッシュラインを有し、前記キャッシュラインにデータが格納されているメインメモリの物理ブロックを含む物理ページを示す物理タグに一致するタグ情報を記憶するタグアレイ及び当該物理ブロックのデータを記憶するデータアレイを有するキャッシュメモリにVIPT(Virtual Indexed Physical Tagged)方式でアクセスするキャッシュメモリシステムにおいて行われるキャッシュエイリアス回避方法であって、
仮想アドレスに基づいてアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスを取得する仮想インデックス取得ステップと、
前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得ステップと、
前記仮想インデックス取得ステップにおいて取得された各々の前記仮想インデックスに基づいて前記タグアレイから出力される各前記仮想インデックスに対応するキャッシュラインのタグ情報と前記物理タグ取得ステップにおいて取得された前記物理タグとを比較し、前記物理タグに一致する前記タグ情報があればキャッシュヒットとし、前記物理タグに一致する前記タグ情報がなければキャッシュミスとする比較ステップと、
を有することを特徴とするキャッシュエイリアス回避方法。 - 仮想インデックスにより識別される複数のキャッシュラインを有し、前記キャッシュラインにデータが格納されているメインメモリの物理ブロックを含む物理ページを示す物理タグに一致するタグ情報を記憶するタグアレイ及び当該物理ブロックのデータを記憶するデータアレイを有するキャッシュメモリにVIPT(Virtual Indexed Physical Tagged)方式でアクセスするキャッシュメモリシステムにおいて行われるキャッシュエイリアス検出方法であって、
仮想アドレスに基づいてアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスを取得する仮想インデックス取得ステップと、
前記仮想インデックス取得ステップにおいて取得された前記キャッシュエイリアスの関係になり得るキャッシュラインの各々の前記仮想インデックスに基づいて前記タグアレイから出力される各タグ情報と前記仮想インデックス取得ステップにおいて取得された前記アクセス対象のキャッシュラインの前記仮想インデックスに基づいて前記タグアレイから出力される前記タグ情報とを比較することによってキャッシュエイリアスを検出する比較ステップと、
を有することを特徴とするキャッシュエイリアス検出方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006196822A JP4783229B2 (ja) | 2006-07-19 | 2006-07-19 | キャッシュメモリシステム |
US11/826,496 US7870325B2 (en) | 2006-07-19 | 2007-07-16 | Cache memory system |
GB0713897A GB2440263B (en) | 2006-07-19 | 2007-07-17 | Cache memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006196822A JP4783229B2 (ja) | 2006-07-19 | 2006-07-19 | キャッシュメモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008027040A JP2008027040A (ja) | 2008-02-07 |
JP4783229B2 true JP4783229B2 (ja) | 2011-09-28 |
Family
ID=38476462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006196822A Expired - Fee Related JP4783229B2 (ja) | 2006-07-19 | 2006-07-19 | キャッシュメモリシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US7870325B2 (ja) |
JP (1) | JP4783229B2 (ja) |
GB (1) | GB2440263B (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5329182B2 (ja) * | 2008-11-07 | 2013-10-30 | 理想科学工業株式会社 | 画像記録装置、及び画像記録装置の制御方法 |
US8543769B2 (en) * | 2009-07-27 | 2013-09-24 | International Business Machines Corporation | Fine grained cache allocation |
US8745618B2 (en) | 2009-08-25 | 2014-06-03 | International Business Machines Corporation | Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments |
US9110830B2 (en) | 2012-01-18 | 2015-08-18 | Qualcomm Incorporated | Determining cache hit/miss of aliased addresses in virtually-tagged cache(s), and related systems and methods |
US9678689B2 (en) | 2013-05-29 | 2017-06-13 | Microsoft Technology Licensing, Llc | Storage systems and aliased memory |
US9934152B1 (en) * | 2015-02-17 | 2018-04-03 | Marvell International Ltd. | Method and apparatus to use hardware alias detection and management in a virtually indexed physically tagged cache |
US9842051B1 (en) * | 2015-03-25 | 2017-12-12 | Marvell International Ltd. | Managing aliasing in a virtually indexed physically tagged cache |
US10089025B1 (en) | 2016-06-29 | 2018-10-02 | EMC IP Holding Company LLC | Bloom filters in a flash memory |
US10055351B1 (en) * | 2016-06-29 | 2018-08-21 | EMC IP Holding Company LLC | Low-overhead index for a flash cache |
US10146438B1 (en) | 2016-06-29 | 2018-12-04 | EMC IP Holding Company LLC | Additive library for data structures in a flash memory |
US10037164B1 (en) | 2016-06-29 | 2018-07-31 | EMC IP Holding Company LLC | Flash interface for processing datasets |
US10331561B1 (en) | 2016-06-29 | 2019-06-25 | Emc Corporation | Systems and methods for rebuilding a cache index |
TW202127263A (zh) * | 2019-11-25 | 2021-07-16 | 美商賽發馥股份有限公司 | 虛擬快取 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0206050A3 (en) | 1985-06-28 | 1990-03-14 | Hewlett-Packard Company | Virtually addressed cache memory with physical tags |
US5119290A (en) * | 1987-10-02 | 1992-06-02 | Sun Microsystems, Inc. | Alias address support |
GB2239724B (en) | 1990-01-05 | 1993-11-24 | Sun Microsystems Inc | Apparatus for maintaining consistency in a multi-processor computer system using virtual caching |
JPH06139146A (ja) | 1992-10-26 | 1994-05-20 | Nec Corp | キャッシュメモリ |
US5479627A (en) | 1993-09-08 | 1995-12-26 | Sun Microsystems, Inc. | Virtual address to physical address translation cache that supports multiple page sizes |
US6009503A (en) | 1994-04-22 | 1999-12-28 | International Business Machines Corporation | Cache memory indexing using virtual, primary and secondary color indexes |
US6058447A (en) * | 1997-09-26 | 2000-05-02 | Advanced Micro Devices, Inc. | Handshake circuit and operating method for self-resetting circuits |
US6253285B1 (en) | 1998-04-16 | 2001-06-26 | Compaq Computer Corporation | Method and apparatus for minimizing dcache index match aliasing using hashing in synonym/subset processing |
US6542991B1 (en) | 1999-05-11 | 2003-04-01 | Sun Microsystems, Inc. | Multiple-thread processor with single-thread interface shared among threads |
US6629207B1 (en) * | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method for loading instructions or data into a locked way of a cache memory |
US6725337B1 (en) * | 2001-05-16 | 2004-04-20 | Advanced Micro Devices, Inc. | Method and system for speculatively invalidating lines in a cache |
US8417915B2 (en) * | 2005-08-05 | 2013-04-09 | Arm Limited | Alias management within a virtually indexed and physically tagged cache memory |
-
2006
- 2006-07-19 JP JP2006196822A patent/JP4783229B2/ja not_active Expired - Fee Related
-
2007
- 2007-07-16 US US11/826,496 patent/US7870325B2/en active Active
- 2007-07-17 GB GB0713897A patent/GB2440263B/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20080022040A1 (en) | 2008-01-24 |
GB2440263A (en) | 2008-01-23 |
US7870325B2 (en) | 2011-01-11 |
GB2440263B (en) | 2011-07-20 |
GB0713897D0 (en) | 2007-08-29 |
JP2008027040A (ja) | 2008-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4783229B2 (ja) | キャッシュメモリシステム | |
US9086987B2 (en) | Detection of conflicts between transactions and page shootdowns | |
KR101570155B1 (ko) | 가상-태깅된 캐시(들)에서 엘리어싱된 어드레스들의 캐시 히트/미스의 결정 및 관련된 시스템들 및 방법들 | |
KR101057526B1 (ko) | 주소 변환 방법 및 장치 | |
US7949834B2 (en) | Method and apparatus for setting cache policies in a processor | |
JPH03142644A (ja) | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 | |
US9934152B1 (en) | Method and apparatus to use hardware alias detection and management in a virtually indexed physically tagged cache | |
JP2009512943A (ja) | 多階層の変換索引緩衝機構(TLBs)フィールドの更新 | |
US7472227B2 (en) | Invalidating multiple address cache entries | |
CN112540939A (zh) | 存储管理装置、存储管理方法、处理器和计算机系统 | |
US9086986B2 (en) | Detection of conflicts between transactions and page shootdowns | |
US6385696B1 (en) | Embedded cache with way size bigger than page size | |
JPWO2005029336A1 (ja) | キャッシュメモリおよびキャッシュメモリ制御方法 | |
US7636815B1 (en) | System and method for handling direct memory accesses | |
KR100321107B1 (ko) | 데이타 프로세싱 시스템 내의 캐쉬 메모리를 억세싱하기 위한 방법 및 시스템 | |
KR100278895B1 (ko) | 데이터 프로세서 | |
EP0486154B1 (en) | Method of operating a virtual memory system | |
EP0442474B1 (en) | Apparatus and method for controlling cache memory | |
JPH03235144A (ja) | キャッシュメモリ制御装置 | |
US8527736B1 (en) | Systems and methods for improving address translation speed | |
JP2014186579A (ja) | キャッシュメモリ、キャッシュメモリ制御装置、および、そのキャッシュメモリ制御方法 | |
US6915405B2 (en) | Emulated target associative memory system with a multi-digit incrementable validity counter | |
CN117331853B (zh) | 缓存处理方法、装置、电子设备及介质 | |
US6938145B2 (en) | Associative memory system with a multi-digit incrementable validity counter | |
EP0881581A1 (en) | System for selective and joint invalidation of entries of two, respectively address and data caches, caused by one or more address cache selective invalidations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090710 |
|
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: 20110628 |
|
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: 20110708 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140715 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4783229 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |