JP2002055881A - キャッシュ一致制御の実現方法およびこれを用いたデータ処理装置 - Google Patents

キャッシュ一致制御の実現方法およびこれを用いたデータ処理装置

Info

Publication number
JP2002055881A
JP2002055881A JP2000245515A JP2000245515A JP2002055881A JP 2002055881 A JP2002055881 A JP 2002055881A JP 2000245515 A JP2000245515 A JP 2000245515A JP 2000245515 A JP2000245515 A JP 2000245515A JP 2002055881 A JP2002055881 A JP 2002055881A
Authority
JP
Japan
Prior art keywords
cache
state
memory
level
hierarchical
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.)
Pending
Application number
JP2000245515A
Other languages
English (en)
Inventor
Hideya Akashi
英也 明石
Yuji Tsushima
雄次 對馬
Keitaro Uehara
敬太郎 上原
Masaru Koyanagi
勝 小柳
Shiyouki Murakami
祥基 村上
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000245515A priority Critical patent/JP2002055881A/ja
Publication of JP2002055881A publication Critical patent/JP2002055881A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】上位階層キャッシュのキャッシュ状態遷移に制
約を加えることなくキャッシュ一致制御を行う包含型の
階層キャッシュシステムを実現する。また、下位階層キ
ャッシュのキャッシュデータ格納用メモリが非実装であ
った場合でも、下位階層キャッシュのキャッシュタグを
メモリアクセス権制御に使用可能とする。 【解決手段】下位階層キャッシュのキャッシュタグ部
に、上位階層キャッシュのキャッシュステートを無効、
共有、占有の3状態により追跡する上位階層キャッシュ
状態フィールドを設け、また、下位階層キャッシュのキ
ャッシュタグ部に、下位階層キャッシュのキャッシュス
テートを無効、共有、占有非更新、占有更新の4状態で
管理する下位階層キャッシュ状態フィールドを設ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、計算機システムに
おけるキャッシュメモリの一致制御処理に係わり、特に
並列計算機システムにおいて複数プロセッサのキャッシ
ュ間の一致制御を行う方法および装置に関する。
【0002】
【従来の技術】大規模集積回路の設計プロセス微細化に
よる周波数向上、方式改良による処理効率向上に伴っ
て、マイクロプロセッサ(CPU)の性能は年々向上し
ている。これに伴い、CPUに接続するメモリシステム
のアクセススループット向上およびアクセスレイテンシ
短縮の必要性が高まっている。
【0003】メモリシステムの性能を向上させる方法と
して、キャッシュメモリを用いる方式が一般化してい
る。キャッシュメモリは、主メモリと比較して小容量で
はあるが、アクセススループットが高く、アクセスレイ
テンシの短いメモリである。キャッシュメモリをCPU
と主メモリの間に配置し、主メモリの内容の一部をキャ
ッシュラインと呼ばれるブロック(例えば64B)単位
で一時的にキャッシュメモリに保持させる。
【0004】CPUのメモリアクセス処理時に、キャッ
シュメモリ内に保持されたデータについてはキャッシュ
メモリからデータを供給することで、主メモリからデー
タを供給する場合と比較して高スループット、低レイテ
ンシでデータ供給が可能となる。このようなキャッシュ
メモリは、一般に階層化することでコストパフォーマン
スの最適化が図られる。例えばCPU内部に小容量かつ
高速の一次キャッシュ(L1キャッシュ)、CPU外部
に大容量の二次キャッシュ(L2キャッシュ)を設ける
等の手法がとられる。
【0005】単一CPUで実現できない計算機性能を得
るために、複数のCPUをバスまたはネットワークで接
続したマルチプロセッサシステムが構成される。このよ
うなステムでは上記複数のCPUが共通の主メモリ(共
有メモリ)をアクセスして処理を進める。したがって、
あるCPUがメモリアクセスを発行すると、他の全CP
Uのキャッシュ上で最新ラインの存在等のチェックを行
い、全CPUのキャッシュの一貫性を保証しなければな
らない。この処理は、キャッシュ一致制御(スヌープ)
と呼ばれる。
【0006】階層キャッシュシステムでは、キャッシュ
一致制御のつどL1キャッシュ内およびL2キャッシュ
内にキャッシュ一致制御に対応するラインが保持されて
いるかどうか調査するのを避けるため、L1キャッシュ
は常にL2キャッシュ内に存在するラインのみを登録す
る包含方式を採用することが多い。包含方式によればL
2キャッシュ内に存在しないラインは、L1キャッシュ
内にも存在しないことが保証される。これにより、キャ
ッシュ一致制御時には、まずL2キャッシュが上記ライ
ンを保持するか否かを調査し、保持していない場合には
L1キャッシュの調査を省略できる。大部分のキャッシ
ュ一致制御でL1キャッシュの調査が省略できれば、C
PUのL1キャッシュ使用が妨害されず、処理性能が向
上する。
【0007】L1キャッシュ、L2キャッシュは一般に
公知の技術であるMESIプロトコルと呼ばれる4状態
のキャッシュ状態を用いて制御される。MESIプロト
コルでは、同一階層の複数キャッシュが共有メモリの同
一ラインを共有状態(S:Shared)でキャッシン
グ可能である。一方、最新状態(M:Modifie
d)または排他状態(E:Exclusive)のライ
ンは、同一階層のいずれか1つのキャッシュのみがキャ
ッシング可能であり、同一階層の他のキャッシュは上記
ラインをキャッシングできない(I:Invali
d)。
【0008】特開平11−232172(以下従来例
1)では、包含方式の階層キャッシュシステムにおい
て、MESIプロトコルを用いたL1キャッシュ、L2
キャッシュによるキャッシュ一致制御が開示されてい
る。この発明によれば、{L1キャッシュ状態、L2キ
ャッシュ状態}={E,E},{M,E}を禁止し、キ
ャッシュ状態遷移を容易化している。
【0009】また、特開平10−301850(以下従
来例2)では、L1キャッシュエントリ複数を同一L2
キャッシュエントリに登録させるセクタ化キャッシュに
おけるキャッシュ一致制御が開示されている。この従来
例2によれば、L2キャッシュエントリに、L2キャッ
シュ状態(MESI状態)およびL1キャッシュエント
リ毎の包含ビットを付加し、L2キャッシュ状態と包含
ビット値によってL1キャッシュの一致制御要否を判断
する。これにより、L2キャッシュ状態のみに基づきL
1キャッシュの一致制御を行う場合と比較し、不要な一
致制御を削減できる。また、この従来例2によれば{L
1キャッシュ状態,L2キャッシュ状態}={E,
E},{M,E}を禁止し、キャッシュ状態遷移を容易
化している。
【0010】
【発明が解決しようとする課題】前記従来例1または2
では、L2キャッシュエントリにL1キャッシュ状態を
保持し、かつ{L1キャッシュ状態,L2キャッシュ状
態}={E,E},{M,E}を許可しない構成となっ
ている。この制限により、キャッシュ状態遷移を容易化
しているが、以下の問題が生じる。
【0011】(1)CPUのメモリ読み出し(メモリリ
ード)の結果、L2キャッシュ状態をM状態としない限
り、L1キャッシュ状態はS状態となるように遷移させ
る。すなわち、メモリリード完了時点で{L1キャッシ
ュ状態,L2キャッシュ状態}={S,EまたはS}と
する。このため、CPUがメモリリード後にこのライン
に書き込みを行う場合、L1キャッシュ状態=Sのた
め、メモリ読み出しおよび他キャッシュ無効化(メモリ
リードインバリデート:メモリリードI)が必要とな
り、余計なアクセスがCPUから発行される。
【0012】(2)CPUのメモリリードIの結果、L
2キャッシュ状態は必ずM状態となるように遷移させ
る。すなわち、メモリリードI完了時点で{L1キャッ
シュ状態,L2キャッシュ状態}={EまたはM,M}
とする。この結果、プロセッサが上記ラインに書き込み
を行わなかった場合でもL2キャッシュの書き戻しが必
要となる。
【0013】また、L2キャッシュは一般に大容量であ
り、かつ主メモリと比較して高速性能が要求される。特
にキャッシュデータ格納用メモリは容量が大きいため、
キャッシュデータ格納用メモリを搭載しない廉価モデル
が構成される場合がある。このようなコンピュータで
は、L2キャッシュタグで主メモリのアクセス権をライ
ン単位で管理し、自CPUまたは自L2キャッシュタグ
がアクセス権を有する場合には、他CPUまたは他L2
キャッシュタグのキャッシュ一致制御を省いてメモリア
クセスを行う方式も考えられる。この場合、L2キャッ
シュタグはアクセス権を格納するアクセス権メモリとし
て使用される。
【0014】このような機能を提供する場合、L2キャ
ッシュのキャッシュデータ格納用メモリの搭載有無に応
じてL2キャッシュ動作とアクセス権メモリ動作を切り
替えることを可能にしておく必要があり、キャッシュデ
ータ格納用メモリが有る場合とない場合の両方の機能を
容易に提供可能とするために、L2キャッシュ動作とア
クセス権メモリ動作の状態遷移の大部分を共通化する必
要が生じる。
【0015】本発明の目的は、階層キャッシュシステム
において上位階層キャッシュのキャッシュ状態遷移に制
約を加えることなくキャッシュ一致制御を行う包含型の
階層キャッシュシステムを実現することにある。また、
本発明の他の目的は、下位階層キャッシュのキャッシュ
データ格納用メモリが非実装であった場合でも、下位階
層キャッシュのキャッシュタグをメモリアクセス権制御
に使用可能とすることにある。
【0016】
【課題を解決するための手段】上記目的を達成するた
め、本発明によるキャッシュ一致制御の実現方法は、少
なくとも1つの上位階層キャッシュと下位階層キャッシ
ュとを有し、上位階層キャッシュ内のラインが下位階層
キャッシュに包含される階層型キャッシュシステムにお
いて、下位階層キャッシュのキャッシュタグ部に上位階
層キャッシュのキャッシュステートを追跡する上位階層
キャッシュ状態フィールドを有するキャッシュ一致制御
方法であって、前記上位階層キャッシュ状態フィールド
は、少なくとも無効、共有、占有の3状態を区別し、前
記下位階層キャッシュのキャッシュタグ部は、下位階層
キャッシュのキャッシュステートを示す下位階層キャッ
シュ状態フィールドを有し、前記下位階層キャッシュ状
態フィールドは少なくとも無効、共有、占有非更新、占
有更新の4状態を区別する。
【0017】また、前記上位階層キャッシュへの読み出
し処理の結果、前記上位階層キャッシュのキャッシュ状
態を占有非更新、前記下位階層キャッシュのキャッシュ
状態を占有非更新または占有更新とし、前記下位階層キ
ャッシュの上位階層キャッシュ状態フィールドを占有と
することで、以後の前記上位階層キャッシュへの書き込
み処理時に、前記上位階層キャッシュに書き込みを行
い、上位階層キャッシュのキャッシュ状態を占有更新と
し、前記下位階層キャッシュへのアクセス等を行わずに
読み出し処理後の書き込み処理を実行可能とする。
【0018】また、前記上位階層キャッシュへの他キャ
ッシュ無効化付読み出し処理の結果、前記上位階層キャ
ッシュのキャッシュ状態を占有非更新または占有更新、
前記下位階層キャッシュのキャッシュ状態を占有非更新
とし、前記下位階層キャッシュの上位階層キャッシュ状
態フィールドを占有とすることで、以後前記上位階層キ
ャッシュにキャッシュした前記処理のデータに対して書
き込みを行わなかった場合に、下位階層キャッシュから
メモリへの書き戻しなしに下位階層キャッシュの上記エ
ントリを無効化可能とする。
【0019】さらに、前記下位階層キャッシュのキャッ
シュデータ格納用メモリが実装されない場合に、前記下
位階層キャッシュ状態フィールドを少なくとも無効、共
有、占有非更新の3状態の状態遷移に切り替えて、上記
下位階層キャッシュ状態フィールドを共有メモリのアク
セス権が上記下位階層キャッシュを有する制御回路に存
在することを示すフィールドとして使用すると共に、下
位階層キャッシュのキャッシュデータへの登録処理を削
除し、下位階層キャッシュのキャッシュヒット時のキャ
ッシュデータ読み出しをキャッシュ一致制御処理の伴わ
ないメモリ読み出しに変更し、下位階層キャッシュへの
書き戻しをメモリへの書き戻しに変更することで、下位
階層キャッシュのキャッシュデータ格納用メモリが実装
される場合には下位階層キャッシュとして、下位階層キ
ャッシュのキャッシュデータ格納用メモリが実装されな
い場合には下位階層キャッシュのキャッシュタグを用い
たアクセス権メモリとして動作可能とする。
【0020】また、本キャッシュ一致制御の実現方法
は、階層キャッシュシステムを持つデータ処理装置に適
用できる。
【0021】
【発明の実施の形態】(実施の形態例1)本発明の第1
の実施の形態を説明する。図1は、本実施の形態に係る
並列計算機の構成例である。図1の並列計算機は、N個
のノード100−1〜100−Nおよび共有メモリ11
0が相互結合網120で接続され、ノード100−1内
ではそれぞれにL1キャッシュ(160−1、160−
2)を有するCPU11(150−1),CPU12
(150−2)がCPUバス130を介してノード制御
回路140に接続された構成をとる。ノード制御回路1
40は、L2キャッシュ(L2タグ170、L2データ
180からなる)および相互結合網120にも接続され
る。ここで、本実施の形態では、ノード100−1〜1
00−Nは同一の構成を有するものとして説明する。
【0022】また、上記L2タグ170とL2データ1
80からなるL2キャッシュは、公知であるダイレクト
マップ方式、セットアソシアティブ等の方式が選択可能
である。本発明は上述のようないずれのL2キャッシュ
方式に対しても実施可能であるが、簡単のため以下では
ダイレクトマップ方式を例に説明する。
【0023】L2タグ170は、インデクス170aで
指示される各エントリ毎にL1状態170b(2ビッ
ト)、L2状態170c(2ビット)、タグ170d
(10ビット)を持つメモリである。本実施の形態にお
いてL2キャッシュは、64Bラインを64Kエントリ
格納可能、すなわち64B×64K=4MBの容量を持
つものとする。このときインデクスは16ビット(64
K分)、ライン内アドレスは6ビット(64B分)で表
される。また、メモリアドレス空間が4GB(32ビッ
ト)の場合、タグ170dは10ビット(32ビット−
16ビット−6ビット)となる。
【0024】メモリ上のあるラインは、そのメモリアド
レス(32ビット)がタグ部(10ビット)、インデク
ス部(16ビット)、ライン内アドレス(6ビット)に
分離され、このインデクス部に示されるL2キャッシュ
エントリに登録される。このため、あるメモリアドレス
がL2キャッシュに登録されているかどうかは、L2タ
グ170内の、メモリアドレスのインデクス部に対応す
るエントリのタグ170dに、メモリアドレスのタグ部
が登録されているかを調査すればよい。
【0025】本発明は、L1状態170bはI、S、O
(Owned=EまたはM)状態の3状態を持ち、L1
キャッシュ160−1、160−2内のI、S、Eまた
はMの3状態をL1状態170bのみで区別可能とする
点を特徴とする。また、L2状態170cは基本的には
MESIプロトコルを採用し、L2キャッシュ動作時に
は4状態、アクセス権メモリ動作時にはE、S、Iの3
状態のみを使用する点を特徴とする。
【0026】CPU11(150−1)、CPU12
(150−2)が各々持つL1キャッシュ160−1、
160−2も、一般的にはL2キャッシュと同様にL1
タグとL1データから構成されるが、そのことは公知で
あるので、ここではその詳細を省く。本発明では、L1
キャッシュ160−1、160−2の内容は、L2キャ
ッシュ170、180に包含される。このため、L1キ
ャッシュ160−1、160−2の合計の容量は、L2
キャッシュ容量以下であることが望ましい。
【0027】図1の並列計算機は、本発明の階層キャッ
シュ方式の説明を容易化するため一例としてあげたもの
であり、本発明は階層キャッシュ方式を持つあらゆるマ
ルチプロセッサシステムに適用可能である。また、本発
明は、L1キャッシュ、L2キャッシュ間のキャッシュ
一致制御について述べたものであり、L2キャッシュ間
のキャッシュ一貫性が保証されていればL2キャッシュ
間のキャッシュ一致保証の方式(スヌープ方式、ディレ
クトリ方式)に係わらず適用可能である。
【0028】図2に、CPU(ここではCPU11(1
50−1)として説明する)がメモリ読み出し処理また
はメモリ書き込み処理を行う結果、CPUバス130に
発行されるアクセスと、その処理およびキャッシュ状態
遷移を示す。
【0029】図2の第2列は、CPUがL1キャッシュ
ミス時にCPUバス130に発行するアクセスを示す。
アクセスの種類は以下のとおりである。
【0030】(1)リード要求 CPU11(150−1)は、メモリ読み出し時にL1
キャッシュミスが発生すると、リード要求をCPUバス
130に発行する。リード要求の結果、他プロセッサ内
の対象キャッシュラインをI、S状態のいずれかに遷移
させたうえで、L1キャッシュ160−1に上記ライン
を登録する。
【0031】(2)リードI要求 メモリ書き込み時にL1キャッシュミスが発生すると、
リードI要求(リード・アンド・インバリデート)をC
PUバス130に発行する。リードI要求の結果、他プ
ロセッサ内のキャッシュから上記ラインを抹消したうえ
で、L1キャッシュ160−1に上記ラインを登録す
る。その後L1キャッシュ160−1上で書き込みを行
ってL1キャッシュ状態をM状態とし、書き込みを完了
させる。
【0032】(3)ライトバック要求 あるラインをL1キャッシュ160−1に登録するため
に、L1キャッシュ160−1から他のラインを抹消す
る(リプレース)必要が生じる場合がある。このとき、
抹消するラインがM状態なら、CPU11(150−
1)はライトバック要求をCPUバス130に発行して
このデータをL2キャッシュに書き戻させる。
【0033】図2の第4列は、要求元CPU11(15
0−1)がCPUバス130に発行したアクセスに対す
る隣接CPU12(150−2)のL1キャッシュ16
0−2状態通知である。隣接CPU12(150−2)
は以下のいずれかの状態を通知する。
【0034】(1)LCLEAN 上記CPUは、対象ラインをM状態で保持しておらず、
アクセス処理の結果対象ラインを保持しない、あるい
は、I状態に遷移させたことを示す。
【0035】(2)LSHARE 上記CPUは、対象ラインをM状態で保持しておらず、
アクセス処理の結果対象ラインをS状態に遷移させたこ
とを示す。
【0036】(3)LMODIFIED 上記CPUは、対象ラインをM状態で保持しており、書
き戻しを行うことを示す。このとき、上記CPUは書き
戻し後対象ラインをI状態に遷移させる。
【0037】図2の第5列は、要求元CPU11(15
0−1)の発行したアクセス種類、アクセス対象ライン
のL2タグ170におけるL2状態、隣接CPU12
(150−2)のL1キャッシュ160−2状態通知に
応じてノード制御回路140が行う要求処理を示す。
【0038】(1)COHメモリリード 他ノードキャッシュの読み出し一致制御(後述)を行う
と共に、共有メモリから対象ラインを読み出し、使用す
る。ただし、他ノードキャッシュがM状態であった場合
には、このキャッシュデータを使用する。
【0039】(2)COHメモリリードI 他ノードキャッシュの書き込み一致制御(後述)を行う
と共に、共有メモリから対象ラインを読み出し、使用す
る。ただし、他ノードキャッシュがM状態であった場合
には、このキャッシュデータを使用する。
【0040】(3)NCOHメモリリード L2データ180がなく、L2タグ170をアクセス権
メモリとして使用する場合に発行される。自ノードにア
クセス権があるため、他ノードキャッシュのキャッシュ
一貫性は既に取れている。このため、他ノードキャッシ
ュの一致制御は行わず、共有メモリから対象ラインを読
み出し使用する。
【0041】(4)L2データリード L2データ180が存在し、L2キャッシュとして使用
する場合に発行される。
【0042】L2キャッシュ(L2データ180)から
対象ラインを読み出し使用する。本動作は、上記アクセ
スがL2キャッシュにヒットした場合に行われる。
【0043】(5)L2ライトバック L2データ180が存在し、L2キャッシュとして使用
する場合に、以下のいずれかの場合に発行される。
【0044】(a)要求元CPU11(150−1)が
L1キャッシュ160−1からM状態のラインをリプレ
ースする場合、このラインはL2キャッシュ170、1
80に書き込まれる。
【0045】(b)要求元CPU11(150−1)の
アクセス時に、隣接CPU12(150−2)がアクセ
ス対象ラインをL1キャッシュ160−2内にM状態で
保持していた場合に、隣接CPU12(150−2)は
L1キャッシュ160−2からL2キャッシュ170、
180にM状態のラインを書き戻す。要求元CPU11
(150−1)は、この書き戻しデータを受けて使用す
る。
【0046】(6)メモリライトバック L2データ180が存在せず、L2タグ170をアクセ
ス権メモリとして使用する場合に発行される。L2ライ
トバック(5)において、L1キャッシュ160−1、
160−2からL2キャッシュ170、180への書き
戻しに代えて、共有メモリ110にM状態のラインを書
き戻す。
【0047】図2の第6列は、COHメモリリードまた
はCOHメモリリードIに対する、他ノード100−2
〜100−Nのキャッシュ状態通知である。各ノード制
御回路140がアクセスを受けて行う(後述)キャッシ
ュ一致制御の結果を、相互結合網120がまとめて要求
元ノードのノード制御回路140に通知する。
【0048】(1)RCLEAN 他ノードは、対象ラインをM状態で保持しておらず、ア
クセス処理の結果対象ラインを保持しない、あるいは、
I状態に遷移させたことを示す。
【0049】(2)RSHARE 他ノードは、対象ラインをM状態で保持しておらず、ア
クセス処理の結果対象ラインをS状態に遷移させたノー
ドがあったことを示す。
【0050】(3)RMODIFIED あるノードが、対象ラインをM状態で保持しており、書
き戻しを行うことを示す。このとき、上記ノードは書き
戻し後対象ラインをI状態に遷移させる。
【0051】図3に、各ノード制御回路140が他ノー
ドからのアクセスを受けて行うキャッシュ一致制御処理
またはノード制御回路140がL2タグ170のエント
リをリプレースする結果、ノード制御回路140が行う
処理およびキャッシュ状態遷移を示す。
【0052】図3の第2列は、自ノード制御回路140
が受ける他ノードからのキャッシュ一致制御要求および
自ノードL2タグ170のリプレース時に自ノード制御
回路140が行うL2リプレースを示す。他ノードから
のキャッシュ一致制御要求は、COHメモリリードによ
る読み出しキャッシュ一致制御要求およびCOHメモリ
リードIによる書き込みキャッシュ一致制御要求の2種
類である。
【0053】図3の第5列は、自ノード制御回路140
が行うキャッシュ一致制御処理またはL2リプレース
が、自ノードL2タグ170のL2状態170c、L1
状態170bに応じてCPUバス130を介してL1キ
ャッシュ160−1、160−2のキャッシュ一致制御
を行うか、およびキャッシュ一致制御の結果を示す。
【0054】リード、リードIは、各々ノード制御回路
140がCPUバス130に対して読み出しキャッシュ
一致制御および書き込みキャッシュ一致制御を発行する
ことを示す。LCLEAN、LSHARE、LMODI
FIEDは、ノード制御回路140がアクセスを発行す
る点以外は図2の第4列と同様である。
【0055】図3の第6列は、他ノードからのキャッシ
ュ一致制御要求に対して自ノード制御回路140が通知
するキャッシュ状態通知を示す。RCLEAN、RSH
ARE、RMODIFIEDは図2の第6列と同様であ
る。
【0056】ノード制御回路140に、図2、図3に示
した処理およびキャッシュ状態遷移を実行させること
で、図1の並列計算機のキャッシュ一貫性が保たれる。
【0057】つぎに、図2、図3によりキャッシュ一貫
性が保たれることを、ノード1(100−1)のL2タ
グ170が{L1状態,L2状態}={I,I},ノー
ド2(100−2)のCPU21(図示略)のL1キャ
ッシュがM状態、L2タグ170が{L1状態,L2状
態}={O,E}のときに、CPU11(150−1)
が読み出し処理を行うケースを例として説明する。
【0058】(1)CPU11(150−1)の読み出
し処理は、L1キャッシュ160−1でミスしてCPU
バス130にリード要求として発行される。
【0059】(2)ノード制御回路140は、対象ライ
ンのL2状態170cが“I”であること、および、隣
接CPU12(150−2)のLCLEAN通知を確認
し、COHメモリリードを発行する(図2#1、#2の
いずれかに該当)。
【0060】(3)各ノードは、COHメモリリードを
受けてキャッシュ一致制御を行う。ノード2は、L2タ
グ170を読み出し{L1状態、L2状態}={O,
E}を得て、図3の#4、#5、#6に従い自ノードの
CPUバス130にリードスヌープ要求を発行する。
【0061】(4)ノード2のCPU21は、L1キャ
ッシュがM状態のため、LMODIFIEDをノード制
御回路140に通知し書き戻しを行う。
【0062】(5)ノード2のノード制御回路140は
以後図3の#6にしたがって処理を進める。まず、ノー
ド2のキャッシュ状態RMODIFIEDを相互結合網
120に通知する。
【0063】(6)ノード2のCPU21の書き戻し
は、L1キャッシュからメモリへのライトバックとして
メモリに書き戻される。このとき、ライトバックデータ
はノード1にも転送される。
【0064】(7)ノード2のノード制御回路140
は、L2タグ170の状態を{L1状態,L2状態}=
{I,I}とする。
【0065】(8)ノード1のノード制御回路140
は、相互結合網120からRMODIFIEDを受け
る。以後、ノード1のノード制御回路140は図2の#
1にしたがって処理を進める。
【0066】(9)ノード1のノード制御回路140
は、L2タグ170の状態を{L1状態,L2状態}=
{O,E}とする。また、CPUバス130に(6)の
データを転送し、CPU11(150−1)のL1キャ
ッシュ160−1にE状態として登録させる。
【0067】本例では、以上の動作により以下に示すキ
ャッシュ状態遷移が行われる。 (a)ノード1 L1キャッシュ=I状態→E状態 L2タグ=L1状態:I状態→O状態、L2状態:I状
態→E状態 (b)ノード2 L1キャッシュ=M状態→I状態 L2タグ=L1状態:O状態→I状態、L2状態:E状
態→I状態 他のケースについても同様にして、図2、図3からキャ
ッシュ状態遷移を決定できる。
【0068】L2データ180を実装しないシステムで
は、L2キャッシュの代わりにL2タグ170をアクセ
ス権メモリとして代用する。このとき、L2状態170
cはM状態を除いたI、S、E(=O)の3状態として
動作する。すなわち、図2、図3の<>内に示した状態
は存在せず、またL2状態170cをM状態に変更しな
い。また、L2データ180を使用するアクセスを行う
ノード制御回路140の処理は、以下に示すようにアク
セス権メモリとして使用するための処理に変更される。
【0069】(a)L2キャッシュヒット時のL2デー
タリード(図2の#3、#4、#5、#9) L2キャッシュヒットは、アクセス権のヒットとなる。
よって他ノードのキャッシュ一致制御は不要であるた
め、キャッシュ一致制御を行わずメモリリードのみを行
う。
【0070】(b)L2キャッシュへのライトバック
(図2の#6、#10、#11) L2キャッシュへのライトバックは、メモリへのライト
バックに変更する。
【0071】(c)L2キャッシュミス時のL2キャッ
シュへのメモリデータ登録 L2データ180は存在しないため、メモリデータ登録
は行わない。
【0072】上記(a)ないし(c)に関するノード制
御回路140の処理は、図2の〔〕内に示したものに変
更したものとなる。
【0073】本実施の形態では、L2タグ170に、
I、S、E、Mの4状態を持つL2状態170c、I、
S、Oの3状態を持つL1状態170bを付加すること
で、階層キャッシュシステムにおいて以下に示す事項を
実現できる。
【0074】(a)リード要求時、L2キャッシュまた
は他ノードのキャッシング状況次第でL1キャッシュ最
終状態をE状態に遷移できる(図2#1、#4、#
6)。リード要求に対してL1キャッシュをE状態にで
きれば、CPUが以後このラインに書き込みを行う場合
に、L1キャッシュへの書き込みおよび状態変更(E→
M)のみで書き込みを完了できる。
【0075】(b)リードI要求時、L2キャッシュが
メモリと同一データとなるケースでL2状態をE状態に
できる(図3#7、#8、#9)。すなわち、CPUが
メモリリードIを発行したときに、L2状態を必ずM状
態とする必要がなくなる。これにより、CPUが上記ラ
インに書き込みを行わない可能性がある場合にもメモリ
リードIを発行するケースにおいて、後にL2キャッシ
ュから不必要なメモリライトバックが発行されるのを防
ぐことができる。
【0076】(c)L2データ180が非実装の場合、
図2の〔 〕の部分の処理に変更することで、アクセス
権メモリ動作を実現できる。このため、これ以外の部分
についてL2キャッシュ動作およびアクセス権メモリ動
作の処理を共通化できる。
【0077】
【発明の効果】L2タグに、I、S、E、Mの4状態を
持つL2状態、I、S、Oの3状態を持つL1状態を付
加することで、階層キャッシュシステムにおいて以下に
示す事項を実現できる。
【0078】(1)リード要求時、L2キャッシュまた
は他ノードのキャッシング状況次第でL1キャッシュ最
終状態をE状態に遷移できる。リード要求に対してL1
キャッシュをE状態にできれば、CPUが以後このライ
ンに書き込みを行う場合に、L1キャッシュへの書き込
みおよび状態変更(E→M)のみで書き込みを完了でき
る。このため、CPUはCPUバスに本来不要なアクセ
スを発行しない。
【0079】(2)リードI要求時、L2キャッシュが
メモリと同一データとなるケースでL2状態をE状態に
できる。すなわち、CPUがメモリリードIを発行した
ときに、L2状態を必ずM状態とする必要がなくなる。
これにより、CPUが上記ラインに書き込みを行わない
可能性がある場合にもメモリリードIを発行するケース
において、後にL2キャッシュから不必要なメモリライ
トバックが発行されるのを防ぐことができる。
【0080】(3)L2データを付加しない場合、ノー
ド制御回路の処理およびキャッシュ状態遷移の一部を変
更すれば、アクセス権メモリ動作を実現できる。このた
め、これ以外の部分についてL2キャッシュ動作および
アクセス権メモリ動作の処理を共通化できる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るマルチプロセッサシ
ステムの構成例を示すブロック図。
【図2】本発明の実施の形態に係るメモリアクセスを行
う際のCPUおよびノード制御回路の動作および自ノー
ドキャッシュの状態遷移を示す説明図。
【図3】本発明の実施の形態に係る他ノードからキャッ
シュ一致要求を受けた際または自ノードL2タグをリプ
レースする際のCPUおよびノード制御回路の動作およ
び自ノードキャッシュの状態遷移を示す図。
【符号の説明】
100−1〜100−N…ノード、110…共有メモ
リ、120…相互結合網、130…CPUバス、140
…ノード制御回路、150−1〜150−2…CPU、
160−1〜160−2…L1キャッシュ、170…L
2タグ、170a…インデクス、170b…L1状態、
170c…L2状態、170d…タグ、180…L2デ
ータ
フロントページの続き (72)発明者 上原 敬太郎 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 小柳 勝 神奈川県秦野市堀山下1番地 株式会社日 立製作所エンタープライズサーバ事業部内 (72)発明者 村上 祥基 神奈川県秦野市堀山下1番地 株式会社日 立製作所エンタープライズサーバ事業部内 Fターム(参考) 5B005 JJ01 KK13 MM05 NN43 NN53 NN54 PP05 PP21 UU32 5B045 BB12 BB28 BB29 BB47 DD13

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】少なくとも1つの上位階層キャッシュと下
    位階層キャッシュとを有し、上位階層キャッシュ内のラ
    インが下位階層キャッシュに包含される階層型キャッシ
    ュシステムにおいて、下位階層キャッシュのキャッシュ
    タグ部に上位階層キャッシュのキャッシュステートを追
    跡する上位階層キャッシュ状態フィールドを有するキャ
    ッシュ一致制御方法であって、前記上位階層キャッシュ
    状態フィールドは、少なくとも無効、共有、占有の3状
    態を区別することを特徴とするキャッシュ一致制御の実
    現方法。
  2. 【請求項2】前記下位階層キャッシュのキャッシュタグ
    は、下位階層キャッシュのキャッシュステートを示す下
    位階層キャッシュ状態フィールドを有し、前記下位階層
    キャッシュ状態フィールドは少なくとも無効、共有、占
    有非更新、占有更新の4状態を区別することを特徴とす
    る請求項1記載のキャッシュ一致制御の実現方法。
  3. 【請求項3】前記上位階層キャッシュへの読み出し処理
    の結果、前記上位階層キャッシュのキャッシュ状態を占
    有非更新、前記下位階層キャッシュのキャッシュ状態を
    占有非更新または占有更新とし、前記下位階層キャッシ
    ュの上位階層キャッシュ状態フィールドを占有とするこ
    とで、以後の前記上位階層キャッシュへの書き込み処理
    時に、前記上位階層キャッシュに書き込みを行い、上位
    階層キャッシュのキャッシュ状態を占有更新とし、前記
    下位階層キャッシュへのアクセス等を行わずに読み出し
    処理後の書き込み処理を実行できることを特徴とする請
    求項2記載のキャッシュ一致制御の実現方法。
  4. 【請求項4】前記上位階層キャッシュへの他キャッシュ
    無効化付読み出し処理の結果、前記上位階層キャッシュ
    のキャッシュ状態を占有非更新または占有更新、前記下
    位階層キャッシュのキャッシュ状態を占有非更新とし、
    前記下位階層キャッシュの上位階層キャッシュ状態フィ
    ールドを占有とすることで、以後前記上位階層キャッシ
    ュにキャッシュした前記処理のデータに対して書き込み
    を行わなかった場合に下位階層キャッシュからメモリへ
    の書き戻しなしに下位階層キャッシュの上記エントリを
    無効化可能であることを特徴とする請求項2または3記
    載のキャッシュ一致制御の実現方法。
  5. 【請求項5】前記下位階層キャッシュのキャッシュデー
    タ格納用メモリが実装されない場合に、前記下位階層キ
    ャッシュ状態フィールドを少なくとも無効、共有、占有
    非更新の3状態の状態遷移に切り替えて、上記下位階層
    キャッシュ状態フィールドを共有メモリのアクセス権が
    上記下位階層キャッシュを有する制御回路に存在するこ
    とを示すフィールドとして使用すると共に、下位階層キ
    ャッシュのキャッシュデータへの登録処理を削除し、下
    位階層キャッシュのキャッシュヒット時のキャッシュデ
    ータ読み出しをキャッシュ一致制御処理の伴わないメモ
    リ読み出しに変更し、下位階層キャッシュへの書き戻し
    をメモリへの書き戻しに変更することで、下位階層キャ
    ッシュのキャッシュデータ格納用メモリが実装される場
    合には下位階層キャッシュとして、下位階層キャッシュ
    のキャッシュデータ格納用メモリが実装されない場合に
    は下位階層キャッシュのキャッシュタグを用いたアクセ
    ス権メモリとして動作可能であることを特徴とする請求
    項2ないし4のいずれかに記載のキャッシュ一致制御の
    実現方法。
  6. 【請求項6】前記請求項1ないし5のいずれかに記載の
    下位階層キャッシュを有することを特徴とするデータ処
    理装置。
  7. 【請求項7】プロセッサ内部またはプロセッサ外部にキ
    ャッシュメモリを持ち、プロセッサの命令処理装置に対
    して階層キャッシュシステムを提供するデータ処理装置
    において、前記階層キャッシュシステムは、請求項1な
    いし5のいずれかに記載のキャッシュ一致制御の実現方
    法を用いることを特徴とするデータ処理装置。
JP2000245515A 2000-08-08 2000-08-08 キャッシュ一致制御の実現方法およびこれを用いたデータ処理装置 Pending JP2002055881A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000245515A JP2002055881A (ja) 2000-08-08 2000-08-08 キャッシュ一致制御の実現方法およびこれを用いたデータ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000245515A JP2002055881A (ja) 2000-08-08 2000-08-08 キャッシュ一致制御の実現方法およびこれを用いたデータ処理装置

Publications (1)

Publication Number Publication Date
JP2002055881A true JP2002055881A (ja) 2002-02-20

Family

ID=18736022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000245515A Pending JP2002055881A (ja) 2000-08-08 2000-08-08 キャッシュ一致制御の実現方法およびこれを用いたデータ処理装置

Country Status (1)

Country Link
JP (1) JP2002055881A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007505407A (ja) * 2003-09-12 2007-03-08 インテル コーポレイション マルチインタフェースキャッシュにおけるジョイントコヒーレンシ状態のための方法及び装置
JP2007200292A (ja) * 2006-01-25 2007-08-09 Internatl Business Mach Corp <Ibm> エントリの時間経過によるキャッシュ・エントリの所有権喪失
US7428617B2 (en) 2004-07-29 2008-09-23 Fujitsu Limited Cache memory and method to maintain cache-coherence between cache memory units
JP2011081662A (ja) * 2009-10-08 2011-04-21 Fujitsu Ltd 演算処理装置及び制御方法
JP2012038236A (ja) * 2010-08-11 2012-02-23 Toshiba Corp マルチコアプロセッサシステムおよびマルチコアプロセッサ
JP2017037538A (ja) * 2015-08-12 2017-02-16 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007505407A (ja) * 2003-09-12 2007-03-08 インテル コーポレイション マルチインタフェースキャッシュにおけるジョイントコヒーレンシ状態のための方法及び装置
JP4660479B2 (ja) * 2003-09-12 2011-03-30 インテル コーポレイション マルチインタフェースキャッシュにおけるジョイントコヒーレンシ状態のための方法及び装置
US7428617B2 (en) 2004-07-29 2008-09-23 Fujitsu Limited Cache memory and method to maintain cache-coherence between cache memory units
JP2007200292A (ja) * 2006-01-25 2007-08-09 Internatl Business Mach Corp <Ibm> エントリの時間経過によるキャッシュ・エントリの所有権喪失
JP2011081662A (ja) * 2009-10-08 2011-04-21 Fujitsu Ltd 演算処理装置及び制御方法
JP2012038236A (ja) * 2010-08-11 2012-02-23 Toshiba Corp マルチコアプロセッサシステムおよびマルチコアプロセッサ
JP2017037538A (ja) * 2015-08-12 2017-02-16 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Similar Documents

Publication Publication Date Title
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US9792210B2 (en) Region probe filter for distributed memory system
US7698508B2 (en) System and method for reducing unnecessary cache operations
US7490202B2 (en) Data processing system and method for efficient L3 cache directory management
US7363462B2 (en) Performing virtual to global address translation in processing subsystem
US8234456B2 (en) Apparatus and method for controlling the exclusivity mode of a level-two cache
US6289420B1 (en) System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem
US7620776B2 (en) Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of modified memory blocks
US6438659B1 (en) Directory based cache coherency system supporting multiple instruction processor and input/output caches
US7395376B2 (en) Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks
JP5445581B2 (ja) コンピュータシステム、制御方法、記録媒体及び制御プログラム
JP2000010860A (ja) キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム
KR20030024895A (ko) 캐시 코히어런트 멀티-프로세서 시스템에서 순서화된입출력 트랜잭션을 파이프라이닝하기 위한 방법 및 장치
US6587922B2 (en) Multiprocessor system
TWI428754B (zh) 以主動式預取寬度執行加強式停懸狀態之系統及方法
US20140229678A1 (en) Method and apparatus for accelerated shared data migration
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
US11321233B2 (en) Multi-chip system and cache processing method
JP2002055881A (ja) キャッシュ一致制御の実現方法およびこれを用いたデータ処理装置
US6678800B1 (en) Cache apparatus and control method having writable modified state
JP3732397B2 (ja) キャッシュシステム
US10565111B2 (en) Processor
US9983994B2 (en) Arithmetic processing device and method for controlling arithmetic processing device
US10489292B2 (en) Ownership tracking updates across multiple simultaneous operations
CN115098409A (zh) 进行阶层式高速缓存系统回存且无效的处理器以及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051215

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080415

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080805