JP4783229B2 - キャッシュメモリシステム - Google Patents

キャッシュメモリシステム Download PDF

Info

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
Application number
JP2006196822A
Other languages
English (en)
Other versions
JP2008027040A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2006196822A priority Critical patent/JP4783229B2/ja
Priority to US11/826,496 priority patent/US7870325B2/en
Priority to GB0713897A priority patent/GB2440263B/en
Publication of JP2008027040A publication Critical patent/JP2008027040A/ja
Application granted granted Critical
Publication of JP4783229B2 publication Critical patent/JP4783229B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address 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
    • 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
    • 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
    • G06F12/0864Addressing 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(Virtual Indexed Physical Tagged)方式でメモリアクセスする技術に関する。
現在、ダイレクトマップキャッシュにアクセスする方式として、VIPT方式がある。
VIPT方式は、仮想アドレスの仮想インデックスに基づいてキャッシュメモリのキャッシュラインにアクセスし、アクセスしたキャッシュラインのタグ情報(キャッシュラインのデータが格納されていたメインメモリの物理ページを示す情報、つまり、当該物理ページの物理タグに一致する情報)をタグアレイから読み出す。また、仮想アドレスの上位ビットをアドレス変換して物理アドレスの物理タグを得る。そして、タグアレイから読み出したタグ情報とアドレス変換により得られた物理タグとを比較して、キャッシュヒットかキャッシュミスかの判定を行う。
ところで、キャッシュメモリのキャッシュサイズがメインメモリの物理ページより大きい場合、いわゆるキャッシュエイリアス問題が発生する。以下、このキャッシュエイリアス問題について説明する。
図10はダイレクトマップ型のキャッシュメモリにおいて物理ブロックがマッピングされるキャッシュラインを説明するための図である。但し、キャッシュサイズが物理ページの2ページ分であるとする。
この場合、例えば、メインメモリの図10に示すラインblk1にある物理ページpage1〜pagemの物理ブロックがマッピングされる可能性があるキャッシュメモリのキャッシュラインはキャッシュラインline1−1,line2−1である。また、ラインblknにある物理ページpage1〜pagemの物理ブロックがマッピングされる可能性があるキャッシュメモリのキャッシュラインはキャッシュラインline1−n,line2−nである。
ある物理ブロックがマッピングされる可能性のある複数のキャッシュラインにおいて、当該複数のキャッシュラインのある一のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインは、当該複数のキャッシュラインの当該ある一のキャッシュラインを除くキャッシュラインである。例えば、キャッシュラインline1−1とキャッシュエイリアスの関係になり得るキャッシュラインはキャッシュラインline2−1であり、キャッシュラインline2−1とキャッシュエイリアスの関係になり得るキャッシュラインはキャッシュラインline1−1である。
図11はVIPT方式を説明するための図である。但し、物理ページの1ページサイズが4Kバイト、キャッシュメモリのメモリサイズが8Kバイト、キャッシュラインの1ラインサイズ及び物理ページの1物理ブロックサイズが16バイト、及び仮想アドレスが32ビットとする。
キャッシュサイズは物理ページの2ページ分であるので、例えば、1つの物理アドレスPAと2つの仮想アドレスVA,VA’とが対応する。
1ラインサイズが16バイトであるので、キャッシュライン内のワードを識別するためのオフセットは3〜0ビット桁の4ビットとなる。また、キャッシュメモリのメモリサイズが8Kバイトで1ラインサイズが16バイトであるので、キャッシュメモリ内のキャッシュラインを識別するための仮想インデックスVI,VI’は12〜4ビット桁の9ビットとなる。
仮想アドレスVA,VA’の31〜12ビット桁の20ビットの仮想タグが物理アドレスPAの31〜12ビット桁の20ビットに変換され、物理アドレスPAの31〜13ビット桁の19ビットがメインメモリの物理ページを識別するための物理タグTAGである。なお、物理アドレスPAの12ビット桁は仮想アドレスVA,VA’に対して同じ値をとる。
例えば、入力される仮想アドレスが仮想アドレスVAの場合、物理タグTAGと仮想アドレスVAの仮想インデックスVIに対応するキャッシュラインのタグアレイに格納されているタグ情報とが比較され、一致していればキャッシュヒット、一致していなければキャッシュミスと判断される。
図12はキャッシュエイリアスの問題を説明するための図である。
例えば、一のプロセスが仮想アドレスVAでメモリアクセスし、他のプロセスが仮想アドレスVA’でメモリアクセスしたとする。この場合、図12(a)に示すように、キャッシュメモリの仮想インデックスVI,VI’に対応するタグアレイ及びデータアレイのキャッシュラインのエントリには、仮想アドレスVA,VA’に対応した物理アドレスPAが含まれる物理ページP0を示すタグ情報及び仮想アドレスVA,VA’に対応した物理アドレスPAが含まれる物理ページP0の物理ブロックのデータD1が夫々格納される。このように、2つのキャッシュラインに同じ物理ページの同じ物理ブロックのデータが格納される。
この状態において、一のプロセスが仮想アドレスVAでデータD2をメインメモリに書き込むとすると、図12(b)に示すように、キャッシュメモリのタグアレイ及びデータアレイの仮想インデックスVIに対応するキャッシュラインのエントリには、物理ページP0を示すタグ情報及びデータD2が夫々格納され、メインメモリにもデータD2が書き込まれる。しかしながら、仮想インデックスVI’に対応するキャッシュラインのデータアレイには古いデータD1が格納されたままである。
このように、仮想インデックスVI,VI’に対応する各キャッシュラインには同じ物理ページの同じ物理ブロックのデータが格納されるにもかかわらず、仮想インデックスVI,VI’に対応する各キャッシュラインのデータは互いに異なり、キャッシュエイリアス問題が発生する。
このキャッシュエイリアス問題に対処する技術として、例えば、次のようなものがある。
アクセスするキャッシュラインの仮想アドレスの仮想タグをアドレス変換して物理タグを得る。物理タグをアクセスするキャッシュラインのタグ情報と比較するとともに、当該アクセスするキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインのタグ情報とも比較する。そして、物理タグがアクセスするキャッシュラインのタグ情報と一致するとともに、キャッシュエイリアスの関係になり得るキャッシュラインのタグ情報とも一致する場合にキャッシュエイリアスを検出し、キャッシュメモリ全体をフラッシュする(例えば、特許文献1参照。)。
特開平6−139146号公報
しかしながら、上記の技術では、仮想アドレスから物理アドレスへのアドレス変換が完了するまでキャッシュエイリアスの検出を行う処理を開始することができず、メモリアクセスの速度が低下するという問題がある。また、キャッシュエイリアスが検出されるとキャッシュメモリ全体をフラッシュするので、メインメモリにアクセスする回数が多くなってしまい、メモリアクセスの平均時間が長くなるという問題がある。
そこで、本発明は、同じ物理ページの同じ物理ブロックのデータがキャッシュメモリの2以上のキャッシュラインに格納されないようにしてキャッシュエイリアスの検出を行う必要がないキャッシュメモリシステム及びキャッシュエイリアス回避方法を提供することを目的とする。また、本発明は、仮想アドレスだけを使用してキャッシュエイリアスを検出することを可能にして上記問題を回避するキャッシュメモリシステム及びキャッシュエイリアス検出方法を提供することを目的とする。
上記目的を達成するために本発明のキャッシュメモリシステムは、仮想インデックスにより識別される複数のキャッシュラインを有し、前記キャッシュラインにデータが格納されているメインメモリの物理ブロックを含む物理ページを示す物理タグに一致するタグ情報を記憶するタグアレイ及び当該物理ブロックのデータを記憶するデータアレイを有するキャッシュメモリにVIPT(Virtual Indexed Physical Tagged)方式でアクセスするキャッシュメモリシステムにおいて、仮想アドレスに基づいてアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスを取得する仮想インデックス取得手段と、前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得手段と、前記仮想インデックス取得手段により取得される各々の前記仮想インデックスに基づいて前記タグアレイから出力される各前記仮想インデックスに対応するキャッシュラインのタグ情報と前記物理タグ取得手段により取得される前記物理タグとを比較し、前記物理タグに一致する前記タグ情報があればキャッシュヒットとする比較手段と、を備える。
本発明のキャッシュエイリアス回避方法は、仮想インデックスにより識別される複数のキャッシュラインを有し、前記キャッシュラインにデータが格納されているメインメモリの物理ブロックを含む物理ページを示す物理タグに一致するタグ情報を記憶するタグアレイ及び当該物理ブロックのデータを記憶するデータアレイを有するキャッシュメモリにVIPT(Virtual Indexed Physical Tagged)方式でアクセスするキャッシュメモリシステムにおいて行われるキャッシュエイリアス回避方法であって、仮想アドレスに基づいてアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスを取得する仮想インデックス取得ステップと、前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得ステップと、前記仮想インデックス取得ステップにおいて取得された各々の前記仮想インデックスに基づいて前記タグアレイから出力される各前記仮想インデックスに対応するキャッシュラインのタグ情報と前記物理タグ取得ステップにおいて取得された前記物理タグとを比較し、前記物理タグに一致する前記タグ情報があればキャッシュヒットとし、前記物理タグに一致する前記タグ情報がなければキャッシュミスとする比較ステップと、を有する。
上記キャッシュメモリシステム及びキャッシュエイリアス回避方法の夫々によれば、キャッシュヒットかキャッシュミスかの判定を、アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの全てについて行う。このため、ある物理ページのある物理ブロックのデータが2つ以上のキャッシュラインに格納されることがなく、キャッシュエイリアス問題を回避することができる。
上記のキャッシュメモリシステムにおいて、前記比較手段による比較の結果、前記物理タグ情報に一致する前記タグ情報がなければ、前記メインメモリのデータを前記アクセス対象のキャッシュライン及び前記キャッシュエイリアスの関係になり得るキャッシュラインのうちデータが格納されていないキャッシュラインがあればその何れか1つにキャッシュフィルするキャッシュフィル手段を更に備えるようにしてもよい。
これによれば、キャッシュミスの場合に、アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインのうちデータが格納されていないキャッシュラインがあればその何れか1つにメインメモリのデータをフィルする。このため、キャッシュメモリに格納されている他の物理ページの物理ブロックのデータが上書きされる回数が減って、メモリアクセスの平均時間を短縮することが可能になる。
本発明のキャッシュメモリシステムは、仮想インデックスにより識別される複数のキャッシュラインを有し、前記キャッシュラインにデータが格納されているメインメモリの物理ブロックを含む物理ページを示す物理タグに一致するタグ情報を記憶するタグアレイ及び当該物理ブロックのデータを記憶するデータアレイを有するキャッシュメモリにVIPT(Virtual Indexed Physical Tagged)方式でアクセスするキャッシュメモリシステムにおいて、仮想アドレスに基づいてアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスを取得する仮想インデックス取得手段と、前記仮想インデックス取得手段により取得される前記アクセス対象のキャッシュラインの前記仮想インデックスに基づいて前記タグアレイから出力される前記タグ情報と前記仮想インデックス取得手段により取得される前記キャッシュエイリアスの関係になり得るキャッシュラインの各々の前記仮想インデックスに基づいて前記タグアレイから出力される前記タグ情報とを比較することによってキャッシュエイリアスを検出する比較手段と、を備える。
本発明のキャッシュエイリアス検出方法は、仮想インデックスにより識別される複数のキャッシュラインを有し、前記キャッシュラインにデータが格納されているメインメモリの物理ブロックを含む物理ページを示す物理タグに一致するタグ情報を記憶するタグアレイ及び当該物理ブロックのデータを記憶するデータアレイを有するキャッシュメモリにVIPT(Virtual Indexed Physical Tagged)方式でアクセスするキャッシュメモリシステムにおいて行われるキャッシュエイリアス検出方法であって、仮想アドレスに基づいてアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスを取得する仮想インデックス取得ステップと、前記仮想インデックス取得ステップにおいて取得された前記キャッシュエイリアスの関係になり得るキャッシュラインの各々の前記仮想インデックスに基づいて前記タグアレイから出力される各タグ情報と前記仮想インデックス取得ステップにおいて取得された前記アクセス対象のキャッシュラインの前記仮想インデックスに基づいて前記タグアレイから出力される前記タグ情報とを比較することによってキャッシュエイリアスを検出する比較ステップと、を有する。
上記キャッシュメモリシステム及びキャッシュエイリアス検出方法の夫々によれば、仮想アドレスをアドレス変換することなく得られるアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの仮想インデックスを取得する。そして、取得したキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスに基づいてタグアレイから出力されるタグ情報と取得したアクセス対象のキャッシュラインの仮想インデックスに基づいてタグアレイから出力されるタグ情報とを比較することによってキャッシュエイリアスの検出を行う。このため、仮想アドレスから物理アドレスへのアドレス変換の完了を待たずに、キャッシュエイリアスの検出を開始することができ、メモリアクセスの低下を抑えながらキャッシュエイリアスの検出が可能になる。
上記のキャッシュメモリシステムにおいて、前記キャッシュメモリはライトスルーキャッシュであり、前記比較手段によりキャッシュエイリアスが検出された場合には、前記アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインを無効化する無効化手段と、前記メインメモリのデータを前記無効化手段により無効化される前記キャッシュラインの何れか1つにキャッシュフィルするキャッシュフィル手段と、を更に備えるようにしてもよい。
これによれば、キャッシュエイリアスが検出された場合には、アクセス対象のキャッシュラインと当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインとを無効化して、無効化された何れか1つのキャッシュラインにメインメモリのデータをフィルする。このため、以降のキャッシュエイリアスを回避することができる。
上記のキャッシュメモリシステムにおいて、前記キャッシュメモリはライトスルーキャッシュであり、前記比較手段によりキャッシュエイリアスが検出された場合において、ライト操作であれば、前記アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインを無効化する無効化手段と、前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得手段と、前記アクセス対象のキャッシュラインの前記タグ情報と前記物理タグ取得手段により取得される前記物理タグとを比較し、一致すればキャッシュヒットとし、一致しなければキャッシュミスとする物理タグ比較手段と、を更に備えるようにしてもよい。
これによれば、キャッシュエイリアスが検出された場合には、アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインを無効化して、アクセス対象のキャッシュラインにおいてキャッシュヒットかキャッシュミスかの判定を行う。このため、以降のキャッシュエイリアスを回避することができる。
上記のキャッシュメモリシステムにおいて、前記キャッシュメモリはライトスルーキャッシュであり、前記比較手段によりキャッシュエイリアスが検出された場合において、リード操作であれば、前記アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインの1つを除き無効化する無効化手段と、前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得手段と、前記無効化手段により無効化されなかった前記キャッシュラインの前記タグ情報と前記物理タグ取得手段により取得される前記物理タグとを比較し、一致すればキャッシュヒットとし、一致しなければキャッシュミスとする物理タグ比較手段と、を更に備えるようにしてもよい。
これによれば、キャッシュエイリアスが検出された場合には、アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインの1つを除き無効化して、無効化されなかったキャッシュラインにおいてキャッシュヒットかキャッシュミスかの判定を行う。このため、以降のキャッシュエイリアスを回避することができる。
≪第1の実施の形態≫
以下、本発明の第1の実施の形態について図面を参照しつつ説明する。なお、本実施の形態及び後述する実施の形態ではダイレクトマップ型のキャッシュにVIPT方式でアクセスし、キャッシュメモリのキャッシュサイズがメインメモリの物理ページのページサイズより大きい場合について説明する。
<構成>
本実施の形態のキャッシュメモリシステムのシステム構成について図1を参照しつつ説明する。図1はキャッシュメモリシステムのシステム構成図である。
キャッシュメモリシステム1は、キャッシュメモリ11、メインメモリ12、仮想インデックス取得部13、デコーダ14、物理タグ取得部15、比較部16及びキャッシュフィル部17を備える。
キャッシュメモリ11はタグアレイ11a、選択回路11b及びデータアレイ11cを有する。キャッシュメモリ11では、デコードされた仮想アドレスに対応したキャッシュラインがアクセスされ、デコーダ11a及びデータアレイ11cからデータが取り出される。
データアレイ11cの各々のキャッシュラインのエントリには、対応するキャッシュラインと例えば図10を参照して説明した関係にある物理ブロックの何れかの物理ブロックのデータが格納される。
タグアレイ11aの各キャッシュラインのエントリには、対応するデータアレイ11cのエントリのデータが格納されていた物理ブロックを含む物理ページを識別するためのタグ情報(当該物理ページの物理タグに一致する情報)が格納される。
選択回路11bは、比較部16からのヒット信号に応じてデコードされた仮想インデックスに対応したデータアレイ11cのキャッシュラインから取り出されたデータData1を不図示のマイクロプロセッサへ出力する。
メインメモリ12は、複数の物理ページからなり、各物理ページは複数の物理ブロックからなる。ある物理ページのある物理ブロックがマッピングされる可能性がある複数のキャッシュメモリ11のキャッシュラインは予め決まっている。
仮想インデックス取得部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に出力する。
また、仮想インデックス取得部13は、比較部16から不一致信号が入力された時にアクセス対象のキャッシュラインの仮想インデックスVI(0)及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る全てのキャッシュラインの仮想インデックスVI(1),VI(2),・・・をデコーダ14に出力していればキャッシュミスとしてミス信号をキャッシュフィル部17へ出力する。
デコーダ14は、仮想インデックス取得部13から入力される仮想インデックスVI(i)(i=0,1,2,・・・)をデコードする。このデコードされた仮想インデックスによりキャッシュメモリ11のキャッシュラインにアクセスされる。これにより、タグアレイ11aから仮想インデックスVI(i)に対応したタグ情報TAG(i)が取り出され、取り出されたタグ情報TAG(i)が比較部16へ出力される。
物理タグ取得部15は、仮想アドレスVADの仮想タグをアドレス変換して物理タグTAGを取得し、物理タグTAGを比較部16へ出力する。
比較部16は、物理タグ取得部15から入力される物理タグTAGとキャッシュメモリ11のタグアレイ11aから入力されるタグ情報TAG(i)とを比較する。比較部16は、物理タグTAGとタグ情報TAG(i)とが一致しなければ不一致信号を仮想インデックス取得部13へ出力し、一致すればキャッシュヒットとしてヒット信号を選択回路11bへ出力する。
キャッシュフィル部17は仮想インデックス取得部13からミス信号が入力されると、物理タグ取得部15から入力される物理TAGと仮想インデックス取得部13から入力される仮想インデックスVI(0)とに基づいてメインメモリ12にアクセスしてデータData2を取り出す。そして、キャッシュフィル部17は、仮想インデックスVI(0)に対応したキャッシュラインのタグアレイ11a及びデータアレイ11cのエントリの夫々に物理TAG及びデータData2を格納する(フィル)。
(仮想インデックス取得部の構成)
図1の仮想インデックス取得部の構成について図2を参照しつつ説明する。図2は図1の仮想インデックス取得部の構成図の一例である。
ただし、物理ページの1ページサイズが4Kバイト、キャッシュメモリのメモリサイズが8Kバイト、キャッシュラインの1ラインサイズ及び物理ページの1物理ブロックサイズが16バイト、及び仮想アドレスが32ビットとする。
キャッシュサイズが物理ページの2ページ分であるので、アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの数は1つである。
また、図11の場合と同じく、仮想アドレスVADの12〜4ビット桁の9ビットが仮想インデックスである。仮想アドレスVADの仮想インデックスVI(0)に対応するキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの仮想インデックスVI(1)は、仮想インデックスVI(0)の最上位ビットを反転して得られるビット列である。
仮想インデックス取得部13は、仮想アドレス分離部13a、反転器13b、選択器13c及びカウンタ13dを有する。
仮想アドレス分離部13aは、仮想アドレスVAD[31:0]の11〜4ビット桁の仮想アドレスVAD[11:4]をデコーダ14に出力し、その12ビット桁の仮想アドレスVAD[12]を反転器13b及び選択器13cに出力する。
反転器13bは、仮想アドレス分離部13aから入力される仮想アドレスVAD[12]の値を反転し、反転した反転仮想アドレス/VAD[12]を選択器13cに出力する。例えば、仮想アドレスVAD[12]の値が1であれば反転仮想アドレス/VAD[12]の値は0となる。
選択器13cは、仮想アドレス取得部13に仮想アドレスVAD[12]の入力時において仮想アドレス分離部13aからの入力である仮想アドレスVAD[12]を選択してデコーダ14に出力する。これにより、デコーダ14には仮想アドレスVAD[31:0]の仮想インデックスVI(0)(VAD[12:4])が入力されることになる。
選択器13cは、カウンタ13dからの切り替え信号が入力されると、反転器13bからの入力である反転仮想アドレス/VAD[12]を選択してデコーダ14に出力する。これにより、デコーダ14には仮想インデックスVI(0)に対応するキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインに対応した仮想インデックスVI(1)が入力されることになる。
カウンタ13dは、仮想アドレスVAD[31:0]の入力時に0にリセットされ、不一致信号の数をカウントする。カウンタ13dは、キャッシュエイリアスの関係になり得るキャッシュラインの数が1つであるので、不一致信号が入力されてカウントアップされたカウンタ値が1であれば選択器13cへ切り替え信号を出力し、当該カウンタ値が1を超えていればキャッシュミスとしてミス信号をキャッシュフィル部17へ出力する。
なお、キャッシュサイズが物理ページの4ページ分である場合には、仮想インデックスの上位2ビットのビット値の組み合わせで得られる仮想インデックスのうちアクセス対象のキャッシュラインの仮想インデックスを除く各仮想インデックスがアクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの仮想インデックスである。この場合には、反転器の数を2つ用意し、カウンタ値が3以下であれば出力の切り替えを行う。但し、アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの仮想インデックスの数は3つである。
このように、キャッシュエイリアスの関係になり得るキャッシュラインの仮想インデックスは、キャッシュサイズと物理ページのページサイズとで決まるアクセス対象の仮想インデックスの上位何ビットのビット値を切り替えていくことにより得られる。
<動作>
図1のキャッシュメモリシステムの動作について図3を参照しつつ説明する。図3は図1のキャッシュメモリシステムの動作のフローチャートである。
仮想インデックス取得部13及び物理タグ取得部15に不図示のマイクロプロセッサから仮想アドレスVADが入力される(ステップS101)。物理タグ取得部15は仮想アドレスVADに基づいて物理タグTAGを取得する(ステップS102)。仮想インデックス取得部13は、カウンタ値iを0にセットする(ステップS103)。
仮想インデックス取得部13は、デコーダ14へ出力する仮想インデックスとして仮想インデックスVI(i)を選択し、選択した仮想インデックスVI(i)をデコーダ14へ出力する(ステップS104)。
仮想インデックスVI(i)はデコーダ14によってデコードされ、仮想インデックスVI(i)に対応したキャッシュラインがアクセスされる。これにより、タグアレイ11aから仮想インデックスVI(i)に対応したタグ情報TAG(i)が取り出され、取り出されたタグ情報TAG(i)が比較部16へ出力される(ステップS105)。
比較部16は、タグ情報TAG(i)と物理タグTAGとを比較する(ステップS106)。
比較の結果、タグ情報TAG(i)が物理タグTAGと一致していれば(S106:YES)、比較部16はキャッシュヒットとしてヒット信号を選択回路11bへ出力する。これにより、選択回路11bは仮想インデックスVI(i)に対応したキャッシュラインのデータを不図示のマイクロプロセッサへ出力する(ステップS107)。
比較の結果、タグ情報TAG(i)が物理タグTAGと一致していなければ(S106:NO)、比較部16は仮想インデックス取得部13に不一致信号を出力し、仮想インデックス取得部13はカウンタ値iを1カウントアップする(ステップS108)。
仮想インデックス取得部13はカウントアップ後のカウンタ値iが定数Nより大きいかを判定する(ステップS109)。但し、定数Nは物理ページのページサイズとキャッシュメモリのキャッシュサイズとで決まり、例えば、キャッシュサイズが物理ページの2ページ分であれば定数Nは1であり、キャッシュサイズが物理ページの4ページ分であれば定数Nは3である。
カウンタ値iが定数Nより大きくなければ(S109:NO)、キャッシュヒットかキャッシュミスかの判定対象となっていないキャッシュエイリアスの関係になり得るキャッシュラインに対して判定処理を行うために、ステップS104以降の処理が行われる。
カウンタ値iが定数Nより大きければ(S109:YES)、アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの全てのタグ情報TAG(i)(i=0,1,・・・,N)が物理タグTAGと一致しなかったので、仮想インデックス取得部13はキャッシュミスとしてミス信号をキャッシュフィル部17へ出力する(ステップS110)。
キャッシュフィル部17はメインメモリ12のデータをキャッシュメモリ11の仮想インデックスVI(0)に対応したキャッシュラインにフィルする(ステップS111)。
≪第2の実施の形態≫
以下、本発明の第2の実施の形態について図面を参照しつつ説明する。但し、第1の実施の形態は同じ物理ページの同じ物理ブロックがキャッシュメモリの2つ以上のキャッシュラインに同時に格納されないようにしてキャッシュエイリアスを回避するものであるのに対して、第2の実施の形態は同じ物理ページの同じ物理ブロックのデータがキャッシュメモリの2つ以上のキャッシュラインに格納されて生じるキャッシュエイリアスを検出するものである。
<構成>
本実施の形態のキャッシュメモリシステムのシステム構成について図4を参照しつつ説明する。図4はキャッシュメモリシステムのシステム構成図である。なお、第2の実施の形態において、第1の実施の形態と同じ機能を有する構成には同じ符号を付し、その説明が適用できるため説明を省略する。
キャッシュシステム1aは、キャッシュメモリ31、メインメモリ12、仮想インデックス取得部32、デコーダ14、物理タグ取得部15、第1比較部33、第2比較部34及びキャッシュフィル部35を備える。
キャッシュメモリ31はタグアレイ31a、選択回路11b、データアレイ11cを有する。キャッシュメモリ31では、デコードされた仮想アドレスに対応したキャッシュラインがアクセスされ、デコーダ31a及びデータアレイ31cからデータが取り出される。
タグアレイ31aから出力されるアクセス対象のキャッシュラインのタグ情報TAG(0)は第1比較部33及び第2比較部34へ出力される。また、タグアレイ31aから出力されるアクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインのタグ情報TAG(i)(i=1,2,・・・)は第1比較部33へ出力される。
仮想インデックス取得部32は、不図示のマイクロプロセッサから入力される仮想アドレスVADに基づいてアクセス対象のキャッシュラインの仮想インデックスVI(0)及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの仮想インデックスVI(1),VI(2),・・・を取得する。そして、仮想インデックス取得部32は、取得した仮想インデックスVI(i)(i=0,1,2,・・・)をデコーダ14へ出力し、仮想インデックスVI(0)をキャッシュフィル部35へ出力する。但し、仮想インデックス取得部32は不図示のマイクロプロセッサから仮想アドレスVADが入力された時に仮想インデックスVI(0)と仮想インデックスVI(1)を順次デコーダ14へ出力し、第1比較部33から不一致信号が入力された時にその度に仮想インデックスVI(2),VI(3),・・・のうちの1つの未出力の仮想インデックスをデコーダ14に出力する。
また、仮想インデックス取得部32は、第1比較部33から不一致信号が入力された時にアクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る全てのキャッシュラインの仮想インデックスVI(1),VI(2),・・・をデコーダ14に出力していればヒットミス判定信号を第2比較部34に出力する。
第1比較部33は、アクセス対象のキャッシュラインのタグ情報TAG(0)と、当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインのタグ情報TAG(i)(i=1,2,・・・)とを比較する。第1比較部33は、タグ情報TAG(0)とタグ情報TAG(i)とが一致していればキャッシュエイリアスを検出したとして不図示のマイクロプロセッサにエイリアス検出信号を出力し、一致していなければ不一致信号を仮想インデックス取得部32へ出力する。
第2比較部34は、仮想インデックス取得部32からヒットミス判定信号が入力されると、物理タグ取得部15から入力される物理タグTAGとタグアレイ31aから入力されるタグ情報TAG(0)とを比較する。そして、第2比較部34は、物理タグTAGとタグ情報TAG(0)とが一致していなければキャッシュミスとしてミス信号をキャッシュフィル部35へ出力し、一致していればキャッシュヒットとしてヒット信号を選択回路11bへヒット信号を出力する。
キャッシュフィル部35は、第2比較部34からミス信号が入力されると、キャッシュフィル部17と同じ処理を行って、仮想インデックスVI(0)に対応したキャッシュラインにデータを格納する(フィル)。
<動作>
図4のキャッシュメモリシステムの動作について図5を参照しつつ説明する。図5は図4のキャッシュメモリシステムの動作のフローチャートである。
仮想インデックス取得部32及び物理タグ取得部15に不図示のマイクロプロセッサから仮想アドレスVADが入力される(ステップS201)。物理タグ取得部15は仮想アドレスVADに基づいて物理タグTAGを取得する(ステップS202)。仮想インデックス取得部32は、デコーダ14へ出力する仮想インデックスとしてアクセス対象のキャッシュラインの仮想インデックスVI(0)を選択し、選択した仮想インデックスVI(0)をデコーダ14へ出力する(ステップS203)。
仮想インデックスVI(0)はデコーダ14によってデコードされ、仮想インデックスVI(0)に対応したキャッシュラインがアクセスされる。これにより、タグアレイ31aから仮想インデックスVI(0)に対応したタグ情報TAG(0)が取り出され、タグ情報TAG(0)が第1比較部33及び第2比較部34へ出力される(ステップS204)。
仮想インデックス取得部32は、カウンタ値iを1にセットする(ステップS205)。
仮想インデックス取得部32は、デコーダ14へ出力する仮想インデックスとしてアクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの仮想インデックスVI(i)を選択し、選択した仮想インデックスVI(i)をデコーダ14へ出力する(ステップS206)。
仮想インデックスVI(i)はデコーダ14によってデコードされ、仮想インデックスVI(i)に対応したキャッシュラインがアクセスされる。これにより、タグアレイ31aから仮想インデックスVI(i)に対応したタグ情報TAG(i)が取り出され、タグ情報TAG(i)が第1比較部33へ出力される(ステップS207)。
第1比較部33は、タグ情報TAG(0)とタグ情報TAG(i)とを比較する(ステップS208)。
比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していれば(S208:YES)、第1比較部33はキャッシュエイリアスを検出したとしてエイリアス検出信号を不図示のマイクロプロセッサに出力する(ステップS209)。
比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していなければ(S208:NO)、第1比較部33は仮想インデックス取得部32に不一致信号を出力し、仮想インデックス取得部32はカウンタ値iを1カウントアップする(ステップS210)。
仮想インデックス取得部32はカウントアップ後のカウンタ値iが定数Nより大きいかを判定する(ステップS211)。なお、定数Nは第1の実施の形態と同じようにして決められる。
カウンタ値iが定数Nより大きくなければ(S211:NO)、キャッシュエイリアスの判定対象となっていないキャッシュエイリアスの関係になり得るキャッシュラインに対して判定処理を行うために、ステップS206以降の処理が行われる。
カウンタ値iが定数Nより大きければ(S211:YES)、アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る全てのキャッシュラインにおいてキャッシュエイリアスが検出されなかったので、仮想インデックス取得部32は第2比較部34へヒットミス判定信号を出力する。第2比較部34はヒットミス判定信号が入力されると、物理タグTAGとタグ情報TAG(0)とを比較する(ステップS212)。
比較の結果、タグ情報TAG(0)が物理タグTAGに一致していれば(S212:YES)、第2比較部34はキャッシュヒットとしてヒット信号を選択回路11bへ出力する。これにより、選択回路11bは仮想インデックスVI(0)に対応したキャッシュラインのデータを不図示のマイクロプロセッサへ出力する(ステップS213)。なお、仮想インデックスVI(0)に対応したデータをマイクロプロセッサに出力するために、再度、仮想インデックスVI(0)をデコードし、デコードされた仮想インデックスを基にキャッシュメモリ31にアクセスする動作が行われる。
比較の結果、タグ情報TAG(0)が物理タグに一致していなければ(S212:NO)、第2比較部34はキャッシュミスとしてミス信号をキャッシュフィル部35へ出力する(ステップS214)。そして、キャッシュフィル部35はメインメモリ12のデータをキャッシュメモリ11の仮想インデックスVI(0)に対応したキャッシュラインにフィルする(ステップS215)。
≪第3の実施の形態≫
以下、本発明の第3の実施の形態について図面を参照しつつ説明する。但し、第3の実施の形態は第2の実施の形態のキャッシュメモリシステムにキャッシュエイリアス検出時にキャッシュエイリアスの関係にあったキャッシュラインを無効化する機能を付加したものである。なお、本実施の形態のキャッシュメモリは、ライトスルーキャッシュメモリとする。
<構成>
本実施の形態のキャッシュメモリシステムのシステム構成について図6を参照しつつ説明する。図6はキャッシュメモリシステムのシステム構成図である。なお、第3の実施の形態において、第1及び第2の実施の形態と同じ機能を有する構成には同じ符号を付し、その説明が適用できるため説明を省略する。
キャッシュシステム1bは、キャッシュメモリ31、メインメモリ12、仮想インデックス取得部51、デコーダ14、物理タグ取得部15、第1比較部52、第2比較部34、無効化部53及びキャッシュフィル部54を備える。
仮想インデックス取得部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に出力する。
また、仮想インデックス取得部51は、第1比較部52からカウント信号が入力された時にアクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る全てのキャッシュラインの仮想インデックスVI(1),VI(2),・・・をデコーダ14に出力していればヒットミス判定信号を第2比較部34に出力し、又は、第2フィル開始信号をキャッシュフィル部54に出力する。なお、仮想インデックス取得部51は第1比較部52から入力されたカウント信号に無効化したことを示す情報が一度も含まれていなければヒットミス判定信号を出力し、一度でも含まれていれば代2フィル開始信号を出力する。
第1比較部52は、アクセス対象のキャッシュラインのタグ情報TAG(0)と、当該アクセス対象のキャッシュラインとエイリアスの関係になり得るキャッシュラインのタグ情報TAG(i)(i=1,2,・・・)とを比較する。第1比較部52はタグ情報TAG(0)とタグ情報TAG(i)とが一致していれば無効化部53に無効化信号を出力する。また、第1比較部52は、タグ情報TAG(0)とタグ情報TAG(i)とが一致していれば無効化した情報を含むカウント信号を、タグ情報TAG(0)とタグ情報TAG(i)とが一致していなければ無効化した情報を含まないカウント信号を仮想インデックス取得部51に出力する。
無効化部53は、第1比較部52から無効化信号が入力されると、アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインを無効化し、第1フィル開始信号をキャッシュフィル部54に出力する。但し、無効化は無効化するキャッシュラインのタグ情報を当該キャッシュラインが無効であることを示す予め決められた値(メインメモリの何れの物理ページの物理タグとも一致しない値)を格納することにより行われる。
キャッシュフィル部54は、ミス信号が入力されると、又は、第1フィル開始信号及び第2フィル開始信号の双方が入力されると、キャッシュフィル部17と同じ処理を行って、仮想インデックスVI(0)に対応したキャッシュラインにデータを格納する(フィル)。
<動作>
図6のキャッシュメモリシステムの動作について図7を参照しつつ説明する。図7は図6のキャッシュメモリシステムの動作のフローチャートである。
仮想インデックス取得部51及び物理タグ取得部15に不図示のマイクロプロセッサから仮想アドレスVADが入力される(ステップS301)。物理タグ取得部15は仮想アドレスVADに基づいて物理タグTAGを取得する(ステップS302)。仮想インデックス取得部51は、デコーダ14へ出力する仮想インデックスとしてアクセス対象のキャッシュラインの仮想インデックスVI(0)を選択し、選択した仮想インデックスVI(0)をデコーダ14へ出力する(ステップS303)。
仮想インデックスVI(0)はデコーダ14によってデコードされ、仮想インデックスVI(0)に対応したキャッシュラインがアクセスされる。これにより、タグアレイ31aから仮想インデックスVI(0)に対応したタグ情報TAG(0)が取り出され、タグ情報TAG(0)が第1比較部52及び第2比較部34へ出力される(ステップS304)。
仮想インデックス取得部51は、カウンタ値iを1にセットする(ステップS305)。
仮想インデックス取得部51は、デコーダ14へ出力する仮想インデックスとしてアクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る仮想インデックスVI(i)を選択し、選択した仮想インデックスVI(i)をデコーダ14へ出力する(ステップS306)。
仮想インデックスVI(i)はデコーダ14によってデコードされ、仮想インデックスVI(i)に対応したキャッシュラインがアクセスされる。これにより、タグアレイ31aから仮想インデックスVI(i)に対応したタグ情報TAG(i)が取り出され、タグ情報TAG(i)が第1比較部52へ出力される(ステップS307)。
第1比較部52は、タグ情報TAG(0)とタグ情報TAG(i)とを比較する(ステップS308)。
ステップS308における比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していれば(S308:YES)、第1比較部52はキャッシュエイリアスを検出したとして無効化信号を無効化部53に出力するとともに、カウント信号を仮想インデックス取得部51に出力する。無効化部53は、仮想インデックスVI(0)に対応したキャッシュラインを無効化し、第1フィル開始信号をキャッシュフィル部54に出力する(ステップS309)。無効化部53は、仮想インデックスVI(i)に対応したキャッシュラインを無効化する(ステップS310)。
仮想インデックス取得部51は、カウント信号が入力されると、カウンタ値iを1カウントアップする(ステップS311)。仮想インデックス取得部51はカウントアップ後のカウンタ値iが定数Nより大きいかを判定する(ステップS312)。なお、定数Nは第1の実施の形態と同じようにして決められる。
ステップS312における判定の結果、カウンタ値iが定数Nより大きくなければ(S312:NO)、キャッシュエイリアスの判定対象となっていないキャッシュエイリアスの関係になり得るキャッシュラインに対して判定処理を行うために、仮想インデックス取得部51は、仮想インデックスVI(i)を選択し、選択した仮想インデックスVI(i)をデコーダ14へ出力する(ステップS313)。
仮想インデックスVI(i)はデコーダ14によってデコードされ、仮想インデックスVI(i)に対応したキャッシュラインがアクセスされる。これにより、タグアレイ31aから仮想インデックスVI(i)に対応したタグ情報TAG(i)が取り出され、タグ情報TAG(i)が第1比較部52へ出力される(ステップS314)。
第1比較部52は、タグ情報TAG(0)とタグ情報TAG(i)とを比較する(ステップS315)。比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していれば(S315:YES)、ステップS310以降の処理が行われ、一致していなけれ(S315:NO)、ステップS311以降の処理が行われる。
ステップS312における判定の結果、カウンタ値iが定数Nより大きければ(S312:NO)、仮想インデックス取得部51はキャッシュフィル部54へ第2フィル開始信号を出力する。キャッシュフィル部54は、第1フィル開始信号及び第2フィル開始信号の双方が入力されると、メインメモリ12のデータをキャッシュメモリ11の仮想インデックスVI(0)に対応したキャッシュラインにフィルする(ステップS316)。
ステップS308における比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していなければ(S308:NO)、第1比較部52はカウント信号を仮想アドレス取得部51へ出力し、仮想アドレス取得部51はカウンタ値iを1カウントアップする(ステップS317)。
仮想アドレス変更部51はカウンタ値iが定数Nより大きいかを判定する(ステップS318)。
ステップS318における判定の結果、カウンタ値が定数Nより大きくなければ(S318:NO)、キャッシュエイリアスの判定対象となっていないキャッシュエイリアスの関係になり得るキャッシュラインに対して判定処理を行うために、ステップS306以降の処理が行われる。
ステップS318における判定の結果、カウンタ値iが定数Nより大きければ(S318:YES)、アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る全てのキャッシュラインにおいてキャッシュエイリアスが検出されなかったので、仮想インデックス取得部51はヒットミス判定信号を第2比較部34に出力する。第2比較部34は、ヒットミス判定信号が入力されると、物理タグTAGとタグ情報TAG(0)とを比較する(ステップS319)。
比較の結果、タグ情報TAG(0)が物理タグTAGに一致していれば(S319:YES)、第2比較部34はキャッシュヒットとしてヒット信号を選択回路11bへ出力する。これにより、選択回路11bは仮想インデックスVI(0)に対応したキャッシュラインのデータを不図示のマイクロプロセッサへ出力する(ステップS320)。
比較の結果、タグ情報TAG(0)が物理タグに一致していなければ(S319:NO)、第2比較部34はキャッシュミスとしてミス信号をキャッシュフィル部54へ出力する(ステップS321)。そして、キャッシュフィル部54は、ミス信号が入力されると、メインメモリ12のデータをキャッシュメモリ11の仮想インデックスVI(0)に対応したキャッシュラインにフィルする(ステップS322)。
≪第4の実施の形態≫
以下、本発明の第4の実施の形態について図面を参照しつつ説明する。但し、第4の実施の形態は第2の実施の形態のキャッシュメモリシステムにキャッシュエイリアス検出時にキャッシュエイリアスの関係にあったキャッシュラインを無効化する機能を付加したものである。なお、本実施の形態のキャッシュメモリは、ライトスルーキャッシュメモリとする。
<構成>
本実施の形態のキャッシュメモリシステムのシステム構成について図8を参照しつつ説明する。図8はキャッシュメモリシステムのシステム構成図である。なお、第4の実施の形態において、第1から第3の実施の形態と同じ機能を有する構成には同じ符号を付し、その説明が適用できるため説明を省略する。
キャッシュシステム1cは、キャッシュメモリ31、メインメモリ12、仮想インデックス取得部71、デコーダ14、物理タグ取得部15、第1比較部52、第2比較部34、無効化部72及びキャッシュフィル部35を備える。
仮想インデックス取得部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の実施の形態のカウント信号とは異なり、無効化に関する情報は含まれていない。
また、仮想インデックス取得部71は、第1比較部52からカウント信号が入力された時にアクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る全てのキャッシュラインの仮想インデックスVI(1),VI(2),・・・をデコーダ14に出力していればヒットミス判定信号を第2比較部34に出力する。
無効化部72は、第1比較部52から無効化信号が入力されると、アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインを無効化する。
<動作>
図8のキャッシュメモリシステムの動作について図9を参照しつつ説明する。図9は図8のキャッシュメモリシステムの動作のフローチャートである。
仮想インデックス取得部71及び物理タグ取得部15に不図示のマイクロプロセッサから仮想アドレスVADが入力される(ステップS401)。物理タグ取得部15は仮想アドレスVADに基づいて物理タグTAGを取得する(ステップS402)。仮想インデックス取得部71は、デコーダ14へ出力する仮想インデックスとしてアクセス対象のキャッシュラインの仮想インデックスVI(0)を選択し、選択した仮想インデックスVI(0)をデコーダ14へ出力する(ステップS403)。
仮想インデックスVI(0)はデコーダ14によってデコードされ、仮想インデックスVI(0)に対応したキャッシュラインがアクセスされる。これにより、タグアレイ31aから仮想インデックスVI(0)に対応したタグ情報TAG(0)が取り出され、タグ情報TAG(0)が第1比較部52及び第2比較部34へ出力される(ステップS404)。
仮想インデックス取得部71は、カウンタ値iを1にセットする(ステップS405)。
仮想インデックス取得部71は、デコーダ14へ出力する仮想インデックスとしてアクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る仮想インデックスVI(i)を選択し、選択した仮想インデックスVI(i)をデコーダ14へ出力する(ステップS406)。
仮想インデックスVI(i)はデコーダ14によってデコードされ、仮想インデックスVI(i)に対応したキャッシュラインがアクセスされる。これにより、タグアレイ31aから仮想インデックスVI(i)に対応したタグ情報TAG(i)が取り出され、タグ情報TAG(i)が第1比較部52へ出力される(ステップS407)。
第1比較部52は、タグ情報TAG(0)とタグ情報TAG(i)とを比較する(ステップS408)。
ステップS408における比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していれば(S408:YES)、第1比較部52はキャッシュエイリアスを検出したとして無効化信号を無効化部72に出力するとともに、カウント信号を仮想インデックス取得部71に出力する。無効化部72は、ライト操作かリード操作かを判定する(ステップS409)。
ステップS409における判定の結果、ライト操作であれば(S409:ライト)、無効化部72は、仮想インデックスVI(i)に対応したキャッシュラインを無効化する(ステップS410)。
仮想インデックス取得部71は、カウント信号が入力されると、カウンタ値iを1カウントアップする(ステップS411)。仮想インデックス取得部71はカウントアップ後のカウンタ値iが定数Nより大きいかを判定する(ステップS412)。なお、定数Nは第1の実施の形態と同じようにして決められる。
ステップS412における判定の結果、カウンタ値iが定数Nより大きくなければ(S412:NO)、キャッシュエイリアスの判定対象となっていないキャッシュエイリアスの関係になり得るキャッシュラインに対して判定処理を行うために、仮想インデックス取得部71は、仮想インデックスVI(i)を選択し、選択した仮想インデックスVI(i)をデコーダ14へ出力する(ステップS413)。
仮想インデックスVI(i)はデコーダ14によってデコードされ、仮想インデックスVI(i)に対応したキャッシュラインがアクセスされる。これにより、タグアレイ31aから仮想インデックスVI(i)に対応したタグ情報TAG(i)が取り出され、タグ情報TAG(i)が第1比較部52へ出力される(ステップS414)。
第1比較部52は、タグ情報TAG(0)とタグ情報TAG(i)とを比較する(ステップS415)。比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していれば(S415:YES)、ステップS410以降の処理が行われ、一致していなけれ(S415:NO)、ステップS411以降の処理が行われる。
ステップS412における判定の結果、カウンタ値iが定数Nより大きければ(S412:YES)、仮想インデックス取得部71はヒットミス判定信号を第2比較部34に出力し、第2比較部34は物理タグTAGとアクセス対象のキャッシュラインのタグ情報TAG(0)とを比較することによってキャッシュヒットかキャッシュミスかの判定を行う(ステップS425)。この判定結果に応じてキャッシュフィルなどの処理が行われる。
ステップS409における判定の結果、リード操作であれば(S409:リード)、無効化部72は、仮想インデックスVI(i)に対応したキャッシュラインを無効化する(ステップS416)。
仮想インデックス取得部71は、カウント信号が入力されると、カウンタ値iを1カウントアップする(ステップS417)。仮想インデックス取得部71はカウントアップ後のカウンタ値iが定数Nより大きいかを判定する(ステップS418)。
ステップS418における判定の結果、カウンタ値iが定数Nより大きくなければ(S418:NO)、キャッシュエイリアスの判定対象となっていないキャッシュエイリアスの関係になり得るキャッシュラインに対して判定処理を行うために、仮想インデックス取得部71は、仮想インデックスVI(i)を選択し、選択した仮想インデックスVI(i)をデコーダ14へ出力する(ステップS419)。
仮想インデックスVI(i)はデコーダ14によってデコードされ、仮想インデックスVI(i)に対応したキャッシュラインがアクセスされる。これにより、タグアレイ31aから仮想インデックスVI(i)に対応したタグ情報TAG(i)が取り出され、タグ情報TAG(i)が第1比較部52へ出力される(ステップS420)。
第1比較部52は、タグ情報TAG(0)とタグ情報TAG(i)とを比較する(ステップS421)。比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していれば(S421:YES)、ステップS416以降の処理が行われ、一致していなけれ(S421:NO)、ステップS417以降の処理が行われる。
ステップS418における判定の結果、カウンタ値iが定数Nより大きければ(S418:YES)、仮想インデックス取得部71はヒットミス判定信号を第2比較部34に出力し、第2比較部34は物理タグTAGとアクセス対象のキャッシュラインのタグ情報TAG(0)とを比較することによってキャッシュヒットかキャッシュミスかの判定を行う(ステップS422)。この判定結果に応じてキャッシュフィルなどの処理が行われる。
ステップS408における比較の結果、タグ情報TAG(i)がタグ情報TAG(0)と一致していなければ(S408:NO)、第1比較部52はカウント信号を仮想アドレス取得部71へ出力し、仮想アドレス取得部71はカウンタ値iを1カウントアップする(ステップS423)。
仮想アドレス変更部51はカウンタ値iが定数Nより大きいかを判定する(ステップS424)。
ステップS424における判定の結果、カウンタ値が定数Nより大きくなければ(S424:NO)、キャッシュエイリアスの判定対象となっていないキャッシュエイリアスの関係になり得るキャッシュラインに対して判定処理を行うために、ステップS406以降の処理が行われる。
ステップS424における判定の結果、カウンタ値iが定数Nより大きければ(S424:YES)、アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得る全てのキャッシュラインにおいてキャッシュエイリアスが検出されなかったので、仮想インデックス取得部71はヒットミス判定信号を第2比較部34に出力する。第2比較部34は、ヒットミス判定信号が入力されると、第2比較部34は物理タグTAGとアクセス対象のキャッシュラインのタグ情報TAG(0)とを比較することによってキャッシュヒットかキャッシュミスかの判定を行う(ステップS425)。この判定結果に応じてキャッシュフィルなどの処理が行われる。
≪補足≫
本発明は上記の実施の形態に限られるものではなく、例えば、以下のようなものも含まれる。
(1)各実施の形態では、ダイレクトマップ型のキャッシュメモリを例に挙げて説明したが、これに限らず、本発明はキャッシュエイリアスが起こりうる各種キャッシュメモリに適用することができる。
(2)第1の実施の形態では、アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインのタグ情報TAG(i)の全てが物理タグTAGと一致しなかった場合に、キャッシュミスとしてアクセス対象のキャッシュラインにメインメモリ12のデータをフィルする場合を説明した。しかしながら、本発明はこれに限られるものではなく、例えば、アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの何れか1つにメインメモリ12のデータをフィルするようにしてもよい。
(3)第1の実施の形態では、アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインのタグ情報TAG(i)の全てが物理タグTAGと一致しなかった場合に、キャッシュミスとしてアクセス対象のキャッシュラインにメインメモリ12のデータをフィルする場合を説明した。しかしながら、本発明はこれに限られるものではなく、例えば、アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインのうちデータが格納されていない何れか1つのキャッシュラインにメインメモリ12のデータをフィルするようにしてもよい。
(4)第3の実施の形態では、キャッシュエイリアスが検出された場合にはアクセス対象のキャッシュラインにメインメモリのデータをフィルする場合を説明した。しかしながら、本発明はこれに限られるものではなく、例えば、アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったため無効化された何れか1つのキャッシュラインにメインメモリ12のデータをフィルするようにしてもよい。
(5)第4の実施の形態では、キャッシュエイリアスが検出され、リード操作である場合には、アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインを無効化する場合を説明した。しかしながら、本発明はこれに限られるものではなく、例えば、アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインのうち何れか1つを除いて無効化し、無効化されなかったキャッシュラインによりキャッシュヒットかキャッシュミスかの判定を行うようにしてもよい。
(6)各実施の形態のキャッシュエイリアス回避方法及びキャッシュエイリアス検出方法などの処理全体をハードウェア又はソフトウェアにより構成してもよく、その一部をハードウェアで構成し、残りの部分をソフトウェアで構成してもよい。
本発明は、キャッシュエイリアスの検出や回避を行うキャッシュメモリシステムに利用することができる。
第1の実施の形態のキャッシュメモリシステムのシステム構成図。 図1の仮想インデックス取得部の構成図。 図1のキャッシュメモリシステムの動作のフローチャート。 第2の実施の形態のキャッシュメモリシステムのシステム構成図。 図4のキャッシュメモリシステムの動作のフローチャート。 第3の実施の形態のキャッシュメモリシステムのシステム構成図。 図6のキャッシュメモリシステムの動作のフローチャート。 第4の実施の形態のキャッシュメモリシステムのシステム構成図。 図8のキャッシュメモリシステムの動作のフローチャート。 ダイレクトマップ型のキャッシュメモリにおいて物理ブロックがマッピングされるキャッシュラインを説明するための図。 VIPT方式を説明するための図。 キャッシュエイリアスの問題を説明するための図。
符号の説明
1 キャッシュメモリシステム
11 キャッシュメモリ
11a タグアレイ
11b 選択回路
11c データアレイ
12 メインメモリ
13 仮想インデックス取得部
14 デコーダ
15 物理タグ取得部
16 比較部
17 キャッシュフィル部

Claims (8)

  1. 仮想インデックスにより識別される複数のキャッシュラインを有し、前記キャッシュラインにデータが格納されているメインメモリの物理ブロックを含む物理ページを示す物理タグに一致するタグ情報を記憶するタグアレイ及び当該物理ブロックのデータを記憶するデータアレイを有するキャッシュメモリにVIPT(Virtual Indexed Physical Tagged)方式でアクセスするキャッシュメモリシステムにおいて、
    仮想アドレスに基づいてアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスを取得する仮想インデックス取得手段と、
    前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得手段と、
    前記仮想インデックス取得手段により取得される各々の前記仮想インデックスに基づいて前記タグアレイから出力される各前記仮想インデックスに対応するキャッシュラインのタグ情報と前記物理タグ取得手段により取得される前記物理タグとを比較し、前記物理タグに一致する前記タグ情報があればキャッシュヒットとする比較手段と、
    を備えたことを特徴とするキャッシュメモリシステム。
  2. 前記比較手段による比較の結果、前記物理タグ情報に一致する前記タグ情報がなければ、前記メインメモリのデータを前記アクセス対象のキャッシュライン及び前記キャッシュエイリアスの関係になり得るキャッシュラインのうちデータが格納されていないキャッシュラインがあればその何れか1つにキャッシュフィルするキャッシュフィル手段
    を更に備えたことを特徴とする請求項1記載のキャッシュメモリシステム。
  3. 仮想インデックスにより識別される複数のキャッシュラインを有し、前記キャッシュラインにデータが格納されているメインメモリの物理ブロックを含む物理ページを示す物理タグに一致するタグ情報を記憶するタグアレイ及び当該物理ブロックのデータを記憶するデータアレイを有するキャッシュメモリにVIPT(Virtual Indexed Physical Tagged)方式でアクセスするキャッシュメモリシステムにおいて、
    仮想アドレスに基づいてアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスを取得する仮想インデックス取得手段と、
    前記仮想インデックス取得手段により取得される前記アクセス対象のキャッシュラインの前記仮想インデックスに基づいて前記タグアレイから出力される前記タグ情報と前記仮想インデックス取得手段により取得される前記キャッシュエイリアスの関係になり得るキャッシュラインの各々の前記仮想インデックスに基づいて前記タグアレイから出力される前記タグ情報とを比較することによってキャッシュエイリアスを検出する比較手段と、
    を備えたことを特徴とするキャッシュメモリシステム。
  4. 前記キャッシュメモリはライトスルーキャッシュであり、
    前記比較手段によりキャッシュエイリアスが検出された場合には、前記アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインを無効化する無効化手段と、
    前記メインメモリのデータを前記無効化手段により無効化される前記キャッシュラインの何れか1つにキャッシュフィルするキャッシュフィル手段と、
    を更に備えたことを特徴とする請求項3記載のキャッシュメモリシステム。
  5. 前記キャッシュメモリはライトスルーキャッシュであり、
    前記比較手段によりキャッシュエイリアスが検出された場合において、ライト操作であれば、前記アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインを無効化する無効化手段と、
    前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得手段と、
    前記アクセス対象のキャッシュラインの前記タグ情報と前記物理タグ取得手段により取得される前記物理タグとを比較し、一致すればキャッシュヒットとし、一致しなければキャッシュミスとする物理タグ比較手段と、
    を更に備えたことを特徴とする請求項3記載のキャッシュメモリシステム。
  6. 前記キャッシュメモリはライトスルーキャッシュであり、
    前記比較手段によりキャッシュエイリアスが検出された場合において、リード操作であれば、前記アクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係にあったキャッシュラインの1つを除き無効化する無効化手段と、
    前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得手段と、
    前記無効化手段により無効化されなかった前記キャッシュラインの前記タグ情報と前記物理タグ取得手段により取得される前記物理タグとを比較し、一致すればキャッシュヒットとし、一致しなければキャッシュミスとする物理タグ比較手段と、
    を更に備えたことを特徴とする請求項3記載のキャッシュメモリシステム。
  7. 仮想インデックスにより識別される複数のキャッシュラインを有し、前記キャッシュラインにデータが格納されているメインメモリの物理ブロックを含む物理ページを示す物理タグに一致するタグ情報を記憶するタグアレイ及び当該物理ブロックのデータを記憶するデータアレイを有するキャッシュメモリにVIPT(Virtual Indexed Physical Tagged)方式でアクセスするキャッシュメモリシステムにおいて行われるキャッシュエイリアス回避方法であって、
    仮想アドレスに基づいてアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスを取得する仮想インデックス取得ステップと、
    前記仮想アドレスの少なくとも一部を変換して物理ページの物理タグを取得する物理タグ取得ステップと、
    前記仮想インデックス取得ステップにおいて取得された各々の前記仮想インデックスに基づいて前記タグアレイから出力される各前記仮想インデックスに対応するキャッシュラインのタグ情報と前記物理タグ取得ステップにおいて取得された前記物理タグとを比較し、前記物理タグに一致する前記タグ情報があればキャッシュヒットとし、前記物理タグに一致する前記タグ情報がなければキャッシュミスとする比較ステップと、
    を有することを特徴とするキャッシュエイリアス回避方法。
  8. 仮想インデックスにより識別される複数のキャッシュラインを有し、前記キャッシュラインにデータが格納されているメインメモリの物理ブロックを含む物理ページを示す物理タグに一致するタグ情報を記憶するタグアレイ及び当該物理ブロックのデータを記憶するデータアレイを有するキャッシュメモリにVIPT(Virtual Indexed Physical Tagged)方式でアクセスするキャッシュメモリシステムにおいて行われるキャッシュエイリアス検出方法であって、
    仮想アドレスに基づいてアクセス対象のキャッシュライン及び当該アクセス対象のキャッシュラインとキャッシュエイリアスの関係になり得るキャッシュラインの各々の仮想インデックスを取得する仮想インデックス取得ステップと、
    前記仮想インデックス取得ステップにおいて取得された前記キャッシュエイリアスの関係になり得るキャッシュラインの各々の前記仮想インデックスに基づいて前記タグアレイから出力される各タグ情報と前記仮想インデックス取得ステップにおいて取得された前記アクセス対象のキャッシュラインの前記仮想インデックスに基づいて前記タグアレイから出力される前記タグ情報とを比較することによってキャッシュエイリアスを検出する比較ステップと、
    を有することを特徴とするキャッシュエイリアス検出方法。
JP2006196822A 2006-07-19 2006-07-19 キャッシュメモリシステム Expired - Fee Related JP4783229B2 (ja)

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)

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

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

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