JP2007058349A - キャッシュシステム - Google Patents

キャッシュシステム Download PDF

Info

Publication number
JP2007058349A
JP2007058349A JP2005240364A JP2005240364A JP2007058349A JP 2007058349 A JP2007058349 A JP 2007058349A JP 2005240364 A JP2005240364 A JP 2005240364A JP 2005240364 A JP2005240364 A JP 2005240364A JP 2007058349 A JP2007058349 A JP 2007058349A
Authority
JP
Japan
Prior art keywords
cache
data
primary
primary cache
secondary cache
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
Application number
JP2005240364A
Other languages
English (en)
Other versions
JP5319049B2 (ja
Inventor
Akira Notomi
昭 納富
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005240364A priority Critical patent/JP5319049B2/ja
Priority to US11/258,949 priority patent/US7461212B2/en
Publication of JP2007058349A publication Critical patent/JP2007058349A/ja
Application granted granted Critical
Publication of JP5319049B2 publication Critical patent/JP5319049B2/ja
Active 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

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

【課題】 本発明は、実現が容易なノン・インクルーシブ方式のキャッシュシステムを提供することを目的とする。
【解決手段】 キャッシュシステムは、主記憶装置にアクセスするよう機能する処理装置と、処理装置に結合され主記憶装置よりも高速にアクセス可能な1次キャッシュと、1次キャッシュを介して処理装置に結合され主記憶装置よりも高速にアクセス可能な2次キャッシュを含み、1次キャッシュと2次キャッシュは、処理装置からのアクセスに応じて主記憶装置から第1のデータを読み出す際に1次キャッシュと2次キャッシュとの両方に第1のデータを登録し、処理装置からのアクセスに応じて2次キャッシュの第2のデータを無効化する必要が生じた際に1次キャッシュに存在する第2のデータを無効化することなく2次キャッシュの第2のデータを無効化する動作を実行するよう構成される。
【選択図】 図5

Description

本発明は一般にキャッシュシステムに関し、詳しくはキャッシュメモリが階層化されたキャッシュシステムに関する。
コンピュータシステムにおいては一般に、主記憶とは別に小容量で高速なキャッシュメモリが設けられる。主記憶に記憶される情報の一部をキャッシュにコピーしておくことで、この情報をアクセスする場合には主記憶からではなくキャッシュから読み出すことで、高速な情報の読み出しが可能となる。
キャシュは複数のキャッシュラインを含み、主記憶からキャシュへの情報のコピーはキャシュライン単位で実行される。主記憶のメモリ空間はキャッシュライン単位で分割され、分割されたメモリ領域を順番にキャッシュラインに割当てておく。キャッシュの容量は主記憶の容量よりも小さいので、主記憶のメモリ領域を繰り返して同一のキャッシュラインに割当てることになる。
メモリ空間上のあるアドレスに最初のアクセスが実行されると、そのアドレスの情報(データやプログラム)をキャシュ内の対応するキャッシュラインにコピーする。同一アドレスに対して次のアクセスを実行する場合にはキャシュから直接に情報を読み出す。
例えば、1つのキャッシュラインが32ビット長であるとすると、アドレスの最下位2ビットがアドレスオフセットとなり、それより上位に位置する所定数のビットがキャッシュのインデックスとなり、更にそれより上位に位置する残りのビットがキャッシュのタグとなる。
データをアクセスする場合には、アクセス先を示すアドレス中のインデックス部分を用いて、キャッシュ中の対応するインデックスのタグを読み出す。読み出したタグと、アドレス中のタグ部分のビットパターンが一致するか否かを判断する。一致しない場合にはキャッシュミスとなる。一致する場合には、当該インデックスに対応するキャッシュデータ(1キャッシュライン分の32ビットのデータ)がアクセスされる。例えば読み出しの動作の場合には、当該32ビットのデータのうちでアドレス中のオフセット部分が示すバイトを選択し、キャッシュからの読み出しデータとする。
各キャッシュラインに対して1つだけタグを設けたキャッシュの構成を、ダイレクトマッピング方式と呼ぶ。各キャッシュラインに対してN個のタグを設けたキャッシュの構成をNウェイセットアソシアティブと呼ぶ。ダイレクトマッピング方式は1ウェイセットアソシアティブとみなすことができる。
ライトスルー方式では、データをメモリに書き込む際に、キャッシュへの書き込みとともに主記憶にも書き込みを行う。この方式では、キャッシュの内容を置き換える必要が生じても、データの有効/無効を示す有効ビットを無効化するだけでよい。それに対してライトバック方式では、データをメモリに書き込む際に、キャッシュへの書き込みのみを行う。書き込んだデータはキャッシュメモリ上にしか存在しないので、キャッシュの内容を置き換える際には、キャッシュメモリの内容を主記憶にコピーする必要がある。
キャッシュミスが発生した場合に、主記憶にアクセスすることによるペナルティーを軽減するために、キャッシュメモリを多階層化したシステムが用いられる。例えば、1次キャッシュと主記憶との間に、主記憶よりは高速にアクセスできる2次キャッシュを設けることにより、1次キャッシュにおいてキャッシュミスが発生した場合に、主記憶にアクセスが必要になる頻度を低くして、キャッシュミス・ペナルティーを軽減することができる。
多階層キャッシュシステムの構成は、キャッシュ間のデータの包含関係という点から考えると、以下の3種類に大別できる。なおここでは2階層のキャッシュシステムを考え、演算器に近い方を1次キャッシュ、主記憶に近い方を2次キャッシュとする。一般的には、1次キャッシュは小容量・高速であり、2次キャッシュは大容量・低速である。
(1)インクルーシブ・キャッシュ
1次キャッシュの格納内容が全て常に2次キャッシュに格納されているキャッシュシステムを、インクルーシブ・キャッシュと呼ぶ。2次キャッシュの内容が1次キャッシュの内容を包含していることになる。最も単純な構成であり、キャッシュの動作を制御する論理を組み立て易いという利点がある。実効キャッシュ容量が総キャッシュ容量(2次キャッシュサイズ+1次キャッシュサイズ)よりも小さく、最大で2次キャッシュサイズに制限されるという欠点がある。
(2)イクスクルーシブ・キャッシュ
全てのキャッシュの格納内容が1次キャッシュ又は2次キャッシュの何れか一方にのみ格納されるキャッシュシステムを、イクスクルーシブ・キャッシュと呼ぶ。1次キャッシュの内容と2次キャッシュの内容とが排他的であることになる。実効キャッシュ容量が総キャッシュ容量に等しく、3つの方式の中で最もメモリ使用効率が良い。しかしながら、1次キャッシュの内容の置換を全て2次キャッシュに反映させなければならないなど、制御動作の上でのデメリットが多い。また1次キャッシュの内容の置換処理が頻発すると、演算器に対するデータ供給を阻害し、性能低下につながる可能性がある。
(3)ノン・インクルーシブ・キャッシュ(パーシャリ・インクルーシブ・キャッシュ)
基本的にはインクルーシブ・キャッシュであるが、包含関係を維持することを絶対条件とせず、1次キャッシュの内容が2次キャッシュに含まれない状態の存在を許すキャッシュシステムを、ノン・インクルーシブ・キャッシュ方式と呼ぶ。基本的にはイクスクルーシブ・キャッシュであるが、排他関係を維持することを絶対条件とせず、1次キャッシュの内容が2次キャッシュに含まれる状態の存在を許す構成であってもよい。実効キャッシュ容量はインクルーシブ・キャッシュとイクスクルーシブ・キャッシュとの中間となる。制御動作を実装する困難さも中間程度である。包含関係(又は排他関係)を維持するための処理が少なくてすむので、そのような処理に起因する1次キャッシュの性能低下が小さくなる。
組込み向けプロセッサの分野においても、多階層キャッシュシステムが一般化する傾向にある。組込み分野では、チップの面積コストは非常に高く、チップ内に実装したRAMをできるだけ有効に使うことが要求される。従って、インクルーシブよりもノン・インクルーシブが好ましく、更にノン・インクルーシブよりもイクスクルーシブが望ましい。しかしながら、一般に組込み分野でのチップの開発期間は非常に短いので、開発工程及び検証工程を多く必要とするイクスクルーシブ・キャッシュは望ましくない方式である。
従って特に組込み分野においては、ノン・インクルーシブのように、キャッシュ容量を比較的有効に使用することができ、且つ開発時間が比較的短い方式が望ましい。
ノン・インクルーシブの一例が、特許文献1に示されている。また、キャッシュの包含関係に関し、2次キャッシュから1次キャッシュへの無効化処理を削減する方式が、特許文献2に示される。
特許文献1に示される方式では、効果的にノン・インクルーシブを実現するために、1次キャッシュの格納内容が2次キャッシュに含まれるか否かを示す情報を、1次キャッシュのタグに追加する必要がある。これにより、制御動作が容易であるというノン・インクルーシブ方式の効果が増すが、1次キャッシュに追加の論理が必要となり、開発工数は増加する恐れがある。
米国特許第5,564,035号公報 特開平6−161887号公報 特許第2905118号公報 特開平5−324473号公報
本発明は、実現が容易なノン・インクルーシブ方式のキャッシュシステムを提供することを目的とする。
本発明によるキャッシュシステムは、主記憶装置にアクセスするよう機能する処理装置と、該処理装置に結合され該主記憶装置よりも高速にアクセス可能な1次キャッシュと、該1次キャッシュを介して該処理装置に結合され該主記憶装置よりも高速にアクセス可能な2次キャッシュを含み、該1次キャッシュと該2次キャッシュは、該処理装置からのアクセスに応じて該主記憶装置から第1のデータを読み出す際に該1次キャッシュと該2次キャッシュとの両方に該第1のデータを登録し、該処理装置からのアクセスに応じて該2次キャッシュの第2のデータを無効化する必要が生じた際に該1次キャッシュに存在する該第2のデータを無効化することなく該2次キャッシュの該第2のデータを無効化する動作を実行するよう構成されることを特徴とする。
また本発明の別の側面によれば、キャッシュシステムは、主記憶装置にアクセスするよう機能する処理装置と、該処理装置に結合され該主記憶装置よりも高速にアクセス可能な1次キャッシュと、該1次キャッシュを介して該処理装置に結合され該主記憶装置よりも高速にアクセス可能な2次キャッシュを含み、該1次キャッシュと該2次キャッシュは、該処理装置からのアクセスに応じて該2次キャッシュから該1次キャッシュに第1のデータを転送して該1次キャッシュに該第1のデータを登録する際に該2次キャッシュの該第1のデータを有効なまま残し、該処理装置からのアクセスに応じて該2次キャッシュの第2のデータを無効化する必要が生じた際に該1次キャッシュに存在する該第2のデータを無効化することなく該2次キャッシュの該第2のデータを無効化する動作を実行するよう構成されることを特徴とする。
本発明の少なくとも1つの実施例によれば、基本的にはインクルーシブ・キャッシュの動作を実行するが、2次キャッシュのデータの置き換え時に、1次キャッシュに対する当該データの無効化処理を省略することにより、包含関係が崩れることを容認する。このようにして1次キャッシュに対する無効化処理を省略することにより、キャッシュの制御動作の簡略化による性能向上が実現できる。また2次キャッシュのデータの置き換え時に1次キャッシュに対する当該データの無効化処理を省略するという制御は極めて単純であるので、キャッシュシステムの実装が容易であり短期間で開発することができる。
本発明では、以下の基本的な動作によりノン・インクルーシブ・キャッシュを実現する。(1)主記憶から格納情報(データ又はプログラム:以下データと呼ぶ)をフェッチして1次キャッシュに新規登録する際に、2次キャッシュにも当該データを登録する。
(2)2次キャッシュのデータを置き換える場合に、1次キャッシュに当該データが存在しても、当該データを1次キャッシュにおいて無効化しない。
上記(1)の動作はインクルーシブ・キャッシュにおける一般的な動作である。本発明のキャッシュシステムでは、主記憶からの新規データ登録時に、インクルーシブ・キャッシュの動作と同一の動作を実行することにより、基本的には1次キャッシュのデータが2次キャッシュに存在するという包含関係を作り出す。なお(1)の動作は、絶対的に必須なものではなく、例外があってもよい。また基本的にインクルーシブ・キャッシュと同様の包含関係を作り出すよう機能する他の動作があれば、その動作を実行するような構成であってもよい。
上記(2)の動作はインクルーシブ・キャッシュの包含関係を崩す動作である。従来のインクルーシブ・キャッシュにおいては、2次キャッシュのデータを置換する場合に、1次キャッシュに当該データが存在するのであれば、包含関係を維持するために当該データを1次キャッシュにおいても無効化(消去)する必要がある。それに対して本発明では、2次キャッシュからデータを追い出す場合に、1次キャッシュにおいて当該データを無効化する処理は実行しない。これにより、1次キャッシュと2次キャッシュとの間の包含関係が崩れることになる。
このように本発明では、基本的にはインクルーシブ・キャッシュの動作を実行するが、2次キャッシュのデータの置き換え時に、1次キャッシュに対する当該データの無効化処理を省略することにより、包含関係が崩れることを容認する。このようにして1次キャッシュに対する無効化処理を省略することにより、キャッシュの制御動作の簡略化による性能向上が実現できる。また2次キャッシュのデータの置き換え時に1次キャッシュに対する当該データの無効化処理を省略するという制御は極めて単純であるので、キャッシュシステムの実装が容易であり短期間で開発することができる。
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
図1は、本発明によるキャッシュシステムの第1の実施例の構成を示す図である。図1には、1つの1次キャッシュ及び1つの2次キャッシュが設けられた構成を例として示すが、キャッシュの階層の数及び各階層でのキャッシュの数は図に示す例に限定されるものではない。
図1のキャッシュシステムは、CPU10、主記憶装置11、アドレスバス12、データバス13、1次キャッシュ(L1)14、及び2次キャッシュ(L2)15を含む。1次キャッシュ14と2次キャッシュ15の各々は、タグレジスタ部分21、データレジスタ部分22、判定ユニット23、及びコントローラ24を含む。なお図示されるデータバス13の構成は、説明のために論理的なデータの流れを示すものであり、物理的な接続を示すものではない。
図2は、1次キャッシュ14又は2次キャッシュ15の動作を説明するための図である。例えば、1つのキャッシュラインが32ビット長であるとすると、アドレスの最下位2ビットがアドレスオフセットとなり、それより上位に位置する所定数のビットがキャッシュのインデックスとなり、更にそれより上位に位置する残りのビットがキャッシュのタグとなる。
データをアクセスする場合には、アドレスバス12から供給されるアクセス先を示すアドレス中のインデックス部分を用いて、タグレジスタ部分21の対応するインデックスのタグを読み出す。読み出したタグと、供給されたアドレス中のタグ部分のビットパターンが一致するか否かを、判定ユニット23の比較器23aで判断する。比較結果が一致を示し、且つタグレジスタ部分21の当該インデックスの有効ビットvalidが有効値“1”であれば、判定ユニット23のAND論理23bの出力がアサートされる。この判定ユニット23の出力により、キャッシュに対してアクセスがヒットしたかミスしたかを判定することができる。
判定ユニット23の判定結果に応じてコントローラ24がキャッシュの各部分を制御する。例えば読み出し動作においてアクセスがヒットした場合には、コントローラ24の制御により、データレジスタ部分22から当該インデックスに対応するデータ(1キャッシュライン分の32ビットのデータ)を、データバス13に読み出す。このデータから、読み出しアドレス中のオフセット部分が示すバイトをセレクタ25により選択し、キャッシュからの読み出しデータとする。なお判定ユニット23は、コントローラ24の一部であるように構成されてもよいことは当然である。
コントローラ24は、キャッシュ管理に関わる種々の制御動作を実行する。例えば、有効ビットの設定をしたり、タグの設定をしたり、有効ビットをチェックすることで利用可能なキャッシュラインを検索したり、例えばLRU(least recently used)アルゴリズム等に基づいて置換対象となるキャッシュラインを選択したり、データレジスタ部分22へのデータ書き込み動作を制御したりする。
図1を再び参照し、CPU10は、アドレスバス12にアクセス先のアドレスを送出して、メモリ空間に対する読み出し・書き込み動作を実行する。CPU10がメモリ空間上のあるアドレスにアクセスを実行すると、まず1次キャッシュ14に当該アドレスのデータが格納されているか否かが判断される。これは1次キャッシュ14のタグレジスタ部分21のタグ情報に基づいて、判定ユニット23及びコントローラ24が判断する。1次キャッシュ14に当該アドレスのデータが格納されていれば、読み出し動作の場合には、そのデータがデータレジスタ部分22からデータバス13を介してCPU10に供給される。書き込み動作の場合には、CPU10からデータバス13を介して供給される書き込みデータで、ヒットしたキャッシュのデータを書き換える。
1次キャッシュ14に当該アドレスのデータが格納されていない場合には、2次キャッシュ15に当該アドレスのデータが格納されているか否かが判断される。これは2次キャッシュ15のタグレジスタ部分21のタグ情報に基づいて、判定ユニット23及びコントローラ24が判断する。2次キャッシュ15に当該アドレスのデータが格納されていれば、読み出し動作の場合には、そのデータがデータレジスタ部分22からデータバス13を介してCPU10に供給される。更に当該データは、データバス13を介して1次キャッシュ14に供給され、1次キャッシュ14に登録される。即ち、データが1次キャッシュ14のデータレジスタ部分22に格納されるとともに、対応するタグが1次キャッシュ14のタグレジスタ部分21に格納され、更に対応有効ビットが有効にされる。書き込み動作の場合には、CPU10からデータバス13を介して供給される書き込みデータで、ヒットしたキャッシュのデータを書き換える。
1次キャッシュ14にも2次キャッシュ15にも当該アドレスのデータが格納されていない場合には、そのアドレスに格納されているデータを主記憶装置11からデータバス13を介して読み出し、キャシュ内の対応するキャッシュラインにコピーする。本発明においては、この際に基本的にインクルーシブ・キャッシュ方式と同一の動作を実行するので、主記憶装置11から読み出したデータを2次キャッシュ15及び1次キャッシュ14の両方に登録する。読み出し動作の場合、CPU10は、データバス13を介して供給されたデータを取り込む。書き込み動作の場合、CPU10は、キャッシュにコピーされたデータを書き換える。
データ書き込みの場合、ライトスルー方式では、データを書き込む際に、1次キャッシュ14及び/又は2次キャッシュ15への書き込みとともに主記憶装置11にも書き込みを行う。この方式では、キャッシュの内容を置き換える必要が生じても、データの有効/無効を示す有効ビットを無効化するだけでよい。それに対してライトバック方式では、データを書き込む際に、1次キャッシュ14及び/又は2次キャッシュ15への書き込みのみを行う。書き込んだデータはキャッシュメモリ上にしか存在しないので、キャッシュの内容を置き換える際には、キャッシュメモリの内容を主記憶装置11にコピーする必要がある。この場合、キャッシュの内容と主記憶装置11の内容とが一致しているか否かを示すために、タグレジスタ部分21に設定されるダーティービットと呼ばれる1ビットの情報が利用される。
図3は、メモリアクセスが、1次キャッシュをミスした後に2次キャッシュに対して実行される場合の処理を示すフローチャートである。ステップS1において、2次キャッシュ(L2)15のタグを検索する。ヒットした場合には、ステップS2において、2次キャッシュ15でヒットしたデータを1次キャッシュ14に登録する。即ち、データを1次キャッシュ14のデータレジスタ部分22に格納するとともに、対応するタグを1次キャッシュ14のタグレジスタ部分21に格納し、更に対応有効ビットを有効にする。
ステップS1において、タグ検索の結果ミスした場合には、ステップS3で2次キャッシュ15のリプレース処理(置き換え処理)が実行される。これについては後ほど説明する。リプレース処理の後、主記憶装置11をアクセスしてデータを読み出し、読み出したデータを2次キャッシュ15に登録するとともに1次キャッシュ14に登録する。
以上の処理は、前述のように、インクルーシブ・キャッシュ方式と同一の動作であり、主記憶装置11から読み出したデータを2次キャッシュ15及び1次キャッシュ14の両方に登録する。
図4は、図3のステップS3に示すリプレース処理の詳細を示すフローチャートである。ステップS1において、無効wayの有無を検索する。即ち、セットアソシアティブ方式の場合に、アクセス先のアドレスのインデックスに対応する各way(各セット)の有効ビットをチェックして、利用可能なキャッシュ領域が存在するか否かを判定する。利用可能なキャッシュ領域が存在する場合には、処理を終了する。
利用可能なキャッシュ領域が存在する場合には、ステップS2において、置き換える対象となるway(セット)を選択する。即ち置き換える対象となるキャッシュラインを選択する。これは任意のアルゴリズムにより選択すればよいが、例えばLRUルゴリズム等を用いてよい。ステップS3において、2次キャッシュ(L2)15の選択されたキャッシュラインの内容を主記憶装置11に転送する。これはライトバック方式の場合であり、ダーティービットがダーティー(不一致)を示す場合に実行される。ライトスルー方式の場合であれば、キャッシュラインの内容を主記憶装置11に転送する必要はない。ステップS3においては、2次キャッシュ15の選択されたキャッシュラインを無効化する。即ち、選択されたwayにおけるアクセス先アドレスのインデックスに対応する有効ビットに、無効を示す値を設定する。これにより選択されたキャッシュラインが利用可能となる。以上でリプレース処理を終了する。
本発明においては、図4のステップS3において、2次キャッシュ15の無効化のみを実行し、1次キャッシュ14における対応するデータの無効化は実行しない。即ち、2次キャッシュ15内のあるデータについては置き換えにより消去するが、1次キャッシュ14に当該データが存在する場合であっても、そのデータはそのまま1次キャッシュ14に格納し続ける。これにより1次キャッシュ14と2次キャッシュ15との包含関係が崩れることになる。
図5は、1次キャッシュ14と2次キャッシュ15との包含関係が崩れる様子を説明するための図である。タイミングT1は、初期状態であり、1次キャッシュ(L1)14及び2次キャッシュ(L2)15にはデータは格納されていない。ここでアドレスAに対するデータがCPUから要求されたとする。この要求に応じて、1次キャッシュ14及び2次キャッシュ15にアドレスAのデータが登録される。登録されたアドレスAのデータを、タイミングT2において“A”として示してある。
その後、アドレスBに対するデータがCPUから要求される。この要求に応じて、1次キャッシュ14及び2次キャッシュ15にアドレスBのデータが登録される。登録されたアドレスBのデータを、タイミングT3において“B”として示してある。
その後、アドレスCに対するデータがCPUから要求される。この際に、1次キャッシュ14においてはアドレスCのインデックスとアドレスBのインデックスは異なるが、2次キャッシュ15においてはアドレスCのインデックスとアドレスBのインデックスとが同一であるとする。このような状況は、例えば1次キャッシュ14と2次キャッシュ15とでインデックス方式が異なる場合に発生する。即ち、例えば1次キャッシュ14については物理アドレスに基づいたインデックスが使用され、2次キャッシュ15については論理アドレスに基づいたインデックスが使用されている場合がこれにあたる。また例えば、一方のインデックスがリニアに割当てられ、他方のインデックスがハッシュ方式により割当てられる場合等もこれに該当する。また例えば、1次キャッシュ14と2次キャッシュ15とで連想度(way数)が異なる場合にも上記の状況は発生し得る。
1次キャッシュ14においてはアドレスCのインデックスとアドレスBのインデックスは異なるので、アドレスBのデータを置き換えることなく、アドレスCのデータを登録することができる。それに対して、2次キャッシュ15においてはアドレスCのインデックスとアドレスBのインデックスとが同一であり、アドレスBのデータを置き換える形でアドレスCのデータを登録することになる。登録されたアドレスCのデータを、タイミングT4において“C”として示してある。なおこの説明では、簡単のためにダイレクトマップ方式であるかのようにしてアドレスBのデータの置き換えを説明したが、セットアソシアティブ方式の場合であっても、全てのwayが有効データで埋まっていると考えればアドレスBのデータの置き換えが発生し得る。
このようにして、タイミングT4においては、アドレスBのデータが1次キャッシュ14には存在するが、2次キャッシュ15には存在しない状態が生成される。即ち、1次キャッシュ14と2次キャッシュ15との包含関係が崩れて、ノン・インクルーシブ方式のキャッシュの構成となっている。しかもこの状態は、2次キャッシュ15のデータを置き換えたときに、1次キャッシュ14について対応するデータを置き換えるという動作を省略することにより達成される。即ち、従来のインクルーシブ方式で実行されていた動作を省略することにより、容易にノン・インクルーシブ方式を実現することが可能となる。
図6は、本発明によるキャッシュシステムの第2の実施例の構成を示す図である。図6はマルチコア構成のシステムを示し、図の構成例は、2つのCPU10A及び10B、2つの1次キャッシュ14A及び14B、1つの2次キャッシュ15、及び主記憶装置11を含む。
このように2次キャッシュを共有するマルチコア構成では、コア数が増加(2次キャッシュの配下にある1次キャッシュの数が増加)するにつれて、複数のコアからの要求が競合する頻度が増え、2次キャッシュにおけるキャッシュミスが増加する。2次キャッシュでの置き換え処理が1次キャッシュに影響しない本発明のキャッシュ制御方式は、このような2次キャッシュでの競合に起因するキャッシュミスに伴う1次キャッシュでの無効化を不用とし、制御処理の負担を削減することができる。
図7は、図6のようなマルチコア構成において、メモリアクセスが1次キャッシュ14Aをミスした後に2次キャッシュ15に対して実行される場合の処理を示すフローチャートである。
ステップS1において、2次キャッシュ(L2)15のタグを検索する。ヒットした場合には、ステップS2において、2次キャッシュ15でヒットしたデータを1次キャッシュ14Aに登録する。即ち、データを1次キャッシュ14Aのデータレジスタ部分に格納するとともに、対応するタグを1次キャッシュ14Aのタグレジスタ部分に格納し、更に対応有効ビットを有効にする。
ステップS1において、タグ検索の結果ミスした場合には、他の1次キャッシュ(L1)にアクセス対象のデータが存在するか否かを判断する。即ち図6の構成の場合、1次キャッシュ14Aでミスして2次キャッシュ15でもミスした場合、他の1次キャッシュ14Bのタグを検索してヒットするか否かを判断する。他の1次キャッシュ14Bにデータが存在する場合には、ステップS4において、他の1次キャッシュ(L1)14Bでヒットしたデータを1次キャッシュ(L1)14Aに登録する。
他の1次キャッシュ(L1)にもデータが存在しない場合には、ステップS5で無効ラインが存在するか否かが判断される。存在しない場合には、ステップS6でソフトウェアによりL2登録指示があるか否か判断する。
ステップS6でL2登録指示がないと判断された場合には、ステップS7で、主記憶装置11をアクセスしてデータを読み出し、読み出したデータを1次キャッシュ14Aにのみ登録する。2次キャッシュ15には登録しない。
ステップS5で無効ラインが存在すると判断された場合、ステップS8でリプレース処理を実行して、必要に応じて2次キャッシュ15の無効ラインのキャッシュデータを主記憶装置11に転送する。またステップS6でL2登録指示があると判断された場合も、ステップS8でリプレース処理を実行して、2次キャッシュ15において置き換え対象となるキャッシュラインを選択し、必要に応じて当該キャッシュラインのデータを主記憶装置11に転送するとともに、当該キャッシュラインを無効化する。その後、ステップS9で、主記憶装置11をアクセスしてデータを読み出し、読み出したデータを2次キャッシュ15に登録するとともに1次キャッシュ14Aに登録する。
上記の処理においては、2次キャッシュに無効なラインが存在せず、且つソフトウェアにより2次キャッシュへの非登録が指示されている場合、主記憶から1次キャッシュへのデータ登録は行うが、2次キャッシュへのデータ登録は実行しない。これは、本発明ではノン・インクルーシブ方式であるので、1次キャッシュへの登録時に必ずしも2次キャッシュに同一のデータを登録する必要はないからである。なおソフトウェアによる指示を実現するには、専用の制御レジスタを設けて2次キャッシュへの登録/非登録を指示するデータを設定したり、或いは命令セットを拡張して2次キャッシュへの登録/非登録を示すロード/ストア命令を追加したりすることが考えられる。
このようなソフトウェアによるL2登録指示制御は、第1の実施例の構成にも適用可能な制御方式である。本願発明では、2次キャッシュ15のデータ置き換え時に1次キャッシュ14の対応データの無効化をしないことが重要であり、主記憶装置11からの新規データ登録時に、1次キャッシュ14と2次キャッシュ15との両方に登録することは、基本的に実行される動作であるが、極論すれば絶対に必要な動作ではない。
なお本発明では、ライトスルー方式或いはライトバック方式の何れを採用してもよいが、ライトバック方式を採用した場合、包含関係が保障されないノン・インクルーシブ方式では、1次キャッシュ14のデータ置き換え時に、主記憶装置11へのデータ転送が必要になる場合がある。また本発明では、2次キャッシュからデータを転送してきて、1次キャッシュに新規登録する際に、2次キャッシュを無効化する必要はない。しかし2次キャッシュからデータを転送してきて、1次キャッシュに新規登録する際に、2次キャッシュを無効化する構成としてもよい。またマルチコア構成で、ある1次キャッシュから別の1次キャッシュにデータを転送して登録する際に、2次キャッシュにはデータを登録する必要はないが、2次キャッシュに当該データを登録する構成としてもよい。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
本発明によるキャッシュシステムの第1の実施例の構成を示す図である。 1次キャッシュ又は2次キャッシュの動作を説明するための図である。 メモリアクセスが1次キャッシュをミスした後に2次キャッシュに対して実行される場合の処理を示すフローチャートである。 図3のステップS3に示すリプレース処理の詳細を示すフローチャートである。 1次キャッシュと2次キャッシュとの包含関係が崩れる様子を説明するための図である。 本発明によるキャッシュシステムの第2の実施例の構成を示す図である。 図6のようなマルチコア構成において、メモリアクセスが1次キャッシュをミスした後に2次キャッシュに対して実行される場合の処理を示すフローチャートである。
符号の説明
10 CPU
11 主記憶装置
12 アドレスバス
13 データバス
14 1次キャッシュ(L1)
15 2次キャッシュ(L2)
21 タグレジスタ部分
22 データレジスタ部分
23 判定ユニット
24 コントローラ

Claims (8)

  1. 主記憶装置にアクセスするよう機能する処理装置と、
    該処理装置に結合され該主記憶装置よりも高速にアクセス可能な1次キャッシュと、
    該1次キャッシュを介して該処理装置に結合され該主記憶装置よりも高速にアクセス可能な2次キャッシュ
    を含み、該1次キャッシュと該2次キャッシュは、該処理装置からのアクセスに応じて該主記憶装置から第1のデータを読み出す際に該1次キャッシュと該2次キャッシュとの両方に該第1のデータを登録し、該処理装置からのアクセスに応じて該2次キャッシュの第2のデータを無効化する必要が生じた際に該1次キャッシュに存在する該第2のデータを無効化することなく該2次キャッシュの該第2のデータを無効化する動作を実行するよう構成されることを特徴とするキャッシュシステム。
  2. 該1次キャッシュと該2次キャッシュは、該処理装置からのアクセスに応じて該2次キャッシュから該1次キャッシュに第3のデータを転送して該1次キャッシュに該第3のデータを登録する際に、該2次キャッシュの該第3のデータを無効化する動作を実行するよう構成されることを特徴とする請求項1記載のキャッシュシステム。
  3. 該主記憶装置にアクセスするよう機能する別の処理装置と、
    該別の処理装置と該2次キャッシュとに結合される別の1次キャッシュ
    を更に含むことを特徴とする請求項1記載のキャッシュシステム。
  4. 該1次キャッシュに該別の1次キャッシュからデータを転送して登録する動作を実行するよう構成されることを特徴とする請求項3記載のキャッシュシステム。
  5. 主記憶装置にアクセスするよう機能する処理装置と、
    該処理装置に結合され該主記憶装置よりも高速にアクセス可能な1次キャッシュと、
    該1次キャッシュを介して該処理装置に結合され該主記憶装置よりも高速にアクセス可能な2次キャッシュ
    を含み、該1次キャッシュと該2次キャッシュは、該処理装置からのアクセスに応じて該2次キャッシュから該1次キャッシュに第1のデータを転送して該1次キャッシュに該第1のデータを登録する際に該2次キャッシュの該第1のデータを有効なまま残し、該処理装置からのアクセスに応じて該2次キャッシュの第2のデータを無効化する必要が生じた際に該1次キャッシュに存在する該第2のデータを無効化することなく該2次キャッシュの該第2のデータを無効化する動作を実行するよう構成されることを特徴とするキャッシュシステム。
  6. 該1次キャッシュと該2次キャッシュは、該処理装置からのアクセスに応じて該主記憶装置から第3のデータを読み出す際に、第1の動作モードでは該1次キャッシュと該2次キャッシュとの両方に該第3のデータを登録し、第2の動作モードでは該2次キャッシュに該第3のデータを登録することなく該1次キャッシュに該第3のデータを登録するよう構成されることを特徴とする請求項5記載のキャッシュシステム。
  7. 該主記憶装置にアクセスするよう機能する別の処理装置と、
    該別の処理装置と該2次キャッシュとに結合される別の1次キャッシュ
    を更に含むことを特徴とする請求項5記載のキャッシュシステム。
  8. 該1次キャッシュに該別の1次キャッシュからデータを転送して登録する動作を実行するよう構成されることを特徴とする請求項7記載のキャッシュシステム。
JP2005240364A 2005-08-22 2005-08-22 キャッシュシステム Active JP5319049B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005240364A JP5319049B2 (ja) 2005-08-22 2005-08-22 キャッシュシステム
US11/258,949 US7461212B2 (en) 2005-08-22 2005-10-27 Non-inclusive cache system with simple control operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005240364A JP5319049B2 (ja) 2005-08-22 2005-08-22 キャッシュシステム

Publications (2)

Publication Number Publication Date
JP2007058349A true JP2007058349A (ja) 2007-03-08
JP5319049B2 JP5319049B2 (ja) 2013-10-16

Family

ID=37768492

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005240364A Active JP5319049B2 (ja) 2005-08-22 2005-08-22 キャッシュシステム

Country Status (2)

Country Link
US (1) US7461212B2 (ja)
JP (1) JP5319049B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009252165A (ja) * 2008-04-10 2009-10-29 Toshiba Corp マルチプロセッサシステム
JP2013222434A (ja) * 2012-04-19 2013-10-28 Nec Corp キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090157946A1 (en) * 2007-12-12 2009-06-18 Siamak Arya Memory having improved read capability
CN103503356A (zh) * 2011-01-07 2014-01-08 联发科技股份有限公司 装置和优化混合自动请求重传缓冲的方法
US9792218B2 (en) * 2011-05-20 2017-10-17 Arris Enterprises Llc Data storage methods and apparatuses for reducing the number of writes to flash-based storage
US9477600B2 (en) * 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US10210087B1 (en) * 2015-03-31 2019-02-19 EMC IP Holding Company LLC Reducing index operations in a cache

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121442A (ja) * 1993-10-14 1995-05-12 Internatl Business Mach Corp <Ibm> データ処理システム及び制御方法
JPH0863393A (ja) * 1994-08-04 1996-03-08 Hewlett Packard Co <Hp> 多レベル・キャッシュ内のキャッシュ・ミス発生に伴う新しいワード・フラグメントの書き込み方法
JPH10214226A (ja) * 1996-10-28 1998-08-11 Internatl Business Mach Corp <Ibm> 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム
JPH10254772A (ja) * 1997-03-05 1998-09-25 Internatl Business Mach Corp <Ibm> キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3262182B2 (ja) 1992-05-25 2002-03-04 日本電気株式会社 キャッシュメモリ方式及びマイクロプロセッサ装置
JPH06161887A (ja) 1992-11-20 1994-06-10 Hitachi Ltd キャッシュ制御方式
US5564035A (en) * 1994-03-23 1996-10-08 Intel Corporation Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein
US5584013A (en) * 1994-12-09 1996-12-10 International Business Machines Corporation Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache
US6070233A (en) * 1996-01-26 2000-05-30 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in higher level cache
US6073212A (en) * 1997-09-30 2000-06-06 Sun Microsystems, Inc. Reducing bandwidth and areas needed for non-inclusive memory hierarchy by using dual tags
US7103720B1 (en) * 2003-10-29 2006-09-05 Nvidia Corporation Shader cache using a coherency protocol

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121442A (ja) * 1993-10-14 1995-05-12 Internatl Business Mach Corp <Ibm> データ処理システム及び制御方法
JPH0863393A (ja) * 1994-08-04 1996-03-08 Hewlett Packard Co <Hp> 多レベル・キャッシュ内のキャッシュ・ミス発生に伴う新しいワード・フラグメントの書き込み方法
JPH10214226A (ja) * 1996-10-28 1998-08-11 Internatl Business Mach Corp <Ibm> 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム
JPH10254772A (ja) * 1997-03-05 1998-09-25 Internatl Business Mach Corp <Ibm> キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009252165A (ja) * 2008-04-10 2009-10-29 Toshiba Corp マルチプロセッサシステム
JP2013222434A (ja) * 2012-04-19 2013-10-28 Nec Corp キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム
US9268700B2 (en) 2012-04-19 2016-02-23 Nec Corporation Cache control device, cache control method, and program thereof

Also Published As

Publication number Publication date
US7461212B2 (en) 2008-12-02
JP5319049B2 (ja) 2013-10-16
US20070043914A1 (en) 2007-02-22

Similar Documents

Publication Publication Date Title
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US8607024B2 (en) Virtual address cache memory, processor and multiprocessor
US8180981B2 (en) Cache coherent support for flash in a memory hierarchy
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
JP5300407B2 (ja) 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
TW591384B (en) Method and system for speculatively invalidating lines in a cache
TWI230862B (en) Translation lookaside buffer that caches memory type information
JP5526626B2 (ja) 演算処理装置およびアドレス変換方法
US8782348B2 (en) Microprocessor cache line evict array
JPWO2010035426A1 (ja) バッファメモリ装置、メモリシステム及びデータ転送方法
JP5319049B2 (ja) キャッシュシステム
GB2507759A (en) Hierarchical cache with a first level data cache which can access a second level instruction cache or a third level unified cache
JP2004326758A (ja) 局所的なキャッシュ・ブロック・フラッシュ命令
WO2013084314A1 (ja) 演算処理装置及び演算処理装置の制御方法
JP2007156821A (ja) キャッシュシステム及び共用2次キャッシュ
WO2013084315A1 (ja) 演算処理装置、及び、演算処理装置の制御方法
WO2005121970A1 (en) Title: system and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
JP5157424B2 (ja) キャッシュメモリシステム及びキャッシュメモリの制御方法
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
US8108621B2 (en) Data cache with modified bit array
US7543112B1 (en) Efficient on-chip instruction and data caching for chip multiprocessors
US8108624B2 (en) Data cache with modified bit array
JP5420182B2 (ja) キャッシュメモリシステム、データ処理装置および記憶装置
CN115098409A (zh) 进行阶层式高速缓存系统回存且无效的处理器以及方法
JPWO2013084315A1 (ja) 演算処理装置、及び、演算処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080704

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130711

R150 Certificate of patent or registration of utility model

Ref document number: 5319049

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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