JP2001109662A - キャッシュ装置及び制御方法 - Google Patents

キャッシュ装置及び制御方法

Info

Publication number
JP2001109662A
JP2001109662A JP28775799A JP28775799A JP2001109662A JP 2001109662 A JP2001109662 A JP 2001109662A JP 28775799 A JP28775799 A JP 28775799A JP 28775799 A JP28775799 A JP 28775799A JP 2001109662 A JP2001109662 A JP 2001109662A
Authority
JP
Japan
Prior art keywords
state
data block
cache
change
shared
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
JP28775799A
Other languages
English (en)
Other versions
JP3897218B2 (ja
Inventor
Akihiro Kurihara
章浩 栗原
Tsutomu Mori
強 森
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 JP28775799A priority Critical patent/JP3897218B2/ja
Priority to US09/667,223 priority patent/US6678800B1/en
Publication of JP2001109662A publication Critical patent/JP2001109662A/ja
Application granted granted Critical
Publication of JP3897218B2 publication Critical patent/JP3897218B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/0815Cache consistency protocols

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

(57)【要約】 【課題】キャッシュ上のデータブロックを管理する状態
を細分化して他系への状態変更の要求を減してキャッシ
ュへのアクセス性能を高める。 【解決手段】キャッシュコントローラ18は、データブ
ロックの状態を、無効I、共有S、排他系E、変更M、
共有変更Oに新たに書込可能Wを加えた6状態で表現す
る。キャッシュコントローラ18は、自系CPUから無
効I状態のデータブロックへのフェッチ要求に対し、他
系のキャッシュ装置から変更Mの状態にあるデータブロ
ックを取得した場合、取得したデータブロックの状態を
無効Iから書込可能Wに変更し、取得先のデータブロッ
クの状態を変更Mから無効Iに切替え、次の自系CPU
のストア要求で他系への状態変更通知を不要にする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチプロセッサ
システムでキャッシュメモリを管理するキャッシュ装置
及び制御方法に関し、特に、キャッシュデータの状態を
細かく制御することによってアクセス性能を高めるよう
にしたキャッシュ装置及び制御方法に関する。
【0002】
【従来の技術】近年のコンピュータシステムの高速化の
要求に伴い、マルチプロセッサシステムにおいては各C
PU(プロセッサ)にがキャッシュ装置を設けている。
CPU毎に設けたキャッシュ上のデータは、キャッシュ
間に亘ってそのデータの正しさ、即ちデータの共有と一
貫性を保つため、キャッシュコヒーレンスプロトコルと
呼ばれるキャシュ間のデータの整合性を保つ規則に従っ
て、キャッシュメモリ上でブロック毎に管理されてい
る。
【0003】従来の一般的なキャッシュプロトコルとし
ては、MESIの4状態を管理するMESIキャッシュ
プロトコルが知られている。
【0004】図9は従来のMESIキャッシュプロトコ
ルの状態遷移図であり、図9(A)がフェッチ要求(リ
ード要求)の場合のフェッチプロトコルであり、図9
(B)がストア要求(ライト要求)の場合のストアプロ
トコルである。この状態繊維の記号は次の内容を表わ
す。
【0005】M:変更(Modified) であり、複数のキャ
ッシュの1つにのみ有効データが保持されており、か
つ、データは変更されており、主記憶のそれと値が同じ
であることが保証されない。
【0006】E:排他(Exclusive) であり、複数のキャ
ッシュの1つにのみ有効データが保持されている。
【0007】S:共有(Shared)であり、複数のキャッシ
ュ上に同じデータが保持されている。
【0008】I:無効(Invalid)であり、キャッシュ上
のデータは無効である。
【0009】このような従来のMESIキャッシュプロ
トコルを用いたキュッシュ制御において、あるCPUが
キャッシュ装置にストアしたデータブロックを、他系の
CPUが参照するフェッチ要求を行った場合、主記憶M
Sへのデータブロックの書込みを必要とし、その分、ア
クセスに時間がかかる。
【0010】図10は、CPU100−1〜100−3
とキャッシュ装置102−1〜102−3で構成された
マルチプロセッサシステムであり、CPU102−2が
フェッチ要求とストア要求を同じデータブロックに対し
行った場合である。まず図10(A)(B)は、CPU
102−2のフェッチ処理である。
【0011】まず図10(A)でCPU100−2は自
系のキャッシュ装置102−2にフェッチ要求を行う
が、そのデータブロックの状態が無効Iなため、バスを
介してデータブロックを変更Mの状態で保持しているキ
ャッシュ装置102−1にフェッチ要求を行い、図10
(B)でデータブロックを取得してCPU100−2に
応答し、キャッシュ装置102−2のデータブロックの
状態を無効Iから共有Sに変更する。
【0012】ここでデータ取得先のキャッシュ装置10
2−1のデータブロックの状態は、変更Mから共有Sに
切替えられ、更に、フェッチ要求を受けたデータブロッ
クの主記憶MSライトが行われる。
【0013】図10(C)−(E)は、次にCPU10
0−2が同じデータブロックにストア要求を行った場合
である。図10(C)のように、CPU100−2が自
系のキャッシュ装置102−2にストア要求を行うと、
共有Sの状態で同じデータブロックを保持している他系
のキャッシュ装置100−1にブロック変更要求を行
い、図10(D)のように、データブロックの状態を共
有Sから無効Iに切替え、CPU100−2がキャッシ
ュ装置のデータブロックに新たなデータをストアするス
トア処理を行う。
【0014】このストア処理が済むと、図10(E)の
ように、キャッシュ装置102−2からストア完了がC
PU100−2に報告され、処理を終了する。
【0015】図11は、CPU102−2とCPU10
2−3が連続してフェッチ要求を同じデータブロックに
対し行った場合である。まず図11(A)(B)のCP
U102−2のフェッチ処理は、図10(A)(B)と
同じであり、キャッシュ装置102−1に対するフェッ
チ要求で主記憶MSライトを必要とする。
【0016】図11(C)(D)は、CPU100−3
のフェッチ処理であり、他系のキャッシュ装置102−
2へのフェッチ要求でデータブロックを取得し、CPU
100−3に図11(D)でフェッチ完了を通知する。
【0017】
【発明が解決しようとする課題】しかしながら、このよ
うな従来のMESIキャッシュプロトコルでは、図10
(B)及び図11(B)のように、他系のキャッシュ装
置にフェッチ要求を行ってデータブロックを取得した
際、他系のキャッシュ装置102−1で主記憶MSライ
トが発生する。
【0018】また図10(C)のように、自系と他系の
キャッシュ装置102−1,102−2に共有Sの状態
で保持されているデータブロックをCPU100−2が
ストアする場合、他系のキャッシュ装置100−1にブ
ロック変更要求(状態変更要求)を行ってデータブロッ
クの状態を共有Sから無効Iに切替える必要がある。
【0019】図12(A)は、従来のMESIキャッシ
ュプロトコルにおけるフェッチプロトコルの他の状態遷
移図であり、この場合にも、変更Mの状態にあるデータ
ブロックが他系からのフェッチ要求で無効Iに切替える
際に、主記憶MSライトが生ずる。
【0020】図12(B)は、従来のSEMIキャッシ
ュプロトコルにおけるフェッチプロトコルの他の状態遷
移図である。この場合は、変更Mの状態にあるデータブ
ロックが他系からのフェッチ要求で無効Iに切替えられ
ると、その後にフェッチ要求があっても共有Sに切替え
ないようにし、これによって他系のフェッチ要求で変更
Mから無効Iに切替えても主記憶MSライトを不要にし
ている。
【0021】この図10(A)又は図11(A)のME
SIキャッシュプロトコルのフェッチ処理の際に発生す
る主記憶MSライトを不要とするため、特開平6−12
4240(特願平4−275825)では、図13のよ
うに、MESIキャッシュプロトコルに、共有変更O
(Shared Modified )を加えた5状態を示す構成とする
ことにより、フェッチ処理の際の主記憶MSへの書き込
みを不要にしている。尚、共有変更の符号Oは、Owner
を表わす。
【0022】図14は、CPU100−1〜100−3
とキャッシュ装置102−1〜102−3で構成された
マルチプロセッサシステムであり、CPU102がフェ
ッチ要求とストア要求を同じデータブロックに対し行っ
た場合である。まず図14(A)(B)は、CPU10
2−2のフェッチ処理である。
【0023】図14(A)でCPU100−2は自系の
キャッシュ装置02−2にフェッチ要求を行うが、その
データブロックが無効I状態なため、バスを介してデー
タブロックを変更Mの状態で保持しているキャッシュ装
置102−1にフェッチ要求を行い、図14(B)でデ
ータブロックを取得してCPU100−2に応答し、キ
ャッシュ装置102−2のデータブロックの状態を無効
Iから共有Sに変更する。
【0024】このときデータ取得先のキャッシュ装置1
02−1のデータブロックの状態は変更Mから共有変更
Oに切替えられ、この場合、共有Sへの切替えとはなら
ないため、フェッチ要求を受けたデータブロックの主記
憶MSライトは不要となる。
【0025】図14(C)−(F)は、次にCPU10
0−2が同じデータブロックにストア要求を行った場合
である。図14(C)のように、CPU100−2が自
系のキャッシュ装置102−2にストア要求を行うと、
共有変更Oの状態で同じデータブロックを保持している
他系のキャッシュ装置100−1にブロック変更要求
(状態変更要求)を行う。
【0026】このため図14(D)のように、データブ
ロックの状態を共有変更Oから無効Iに切替え、CPU
100−2がキャッシュ装置のデータブロックに新たな
データをストアするストア処理を行う。このストア処理
が図むと図14(F)のように、キャッシュ装置102
−2からストア完了がCPU100−2に報告され、処
理を終了する。
【0027】図15は、CPU102−2とCPU10
2−3の順番に連続してフェッチ要求を同じデータブロ
ックに対し行った場合である。まず図15(A)(B)
のCPU102−2のフェッチ処理は図14(A)
(B)と同じであり、キャッシュ装置102−1に対す
るフェッチ要求で変更Mから共有変更Oに切替えるた
め、主記憶MSライトは必要としない。
【0028】図15(C)(D)は、続いて行われる他
系のCPU100−3のフェッチ処理であり、キャッシ
ュ装置102−2へのフェッチ要求でデータブロックを
取得し、CPU100−3に図15(D)でフェッチ完
了を通知する。
【0029】このように図13の5状態をとるSEMI
Oキャッシュプロトコルでは、新たに変更Mと共有Sの
中間に位置する共有変更Oを設け、共有に段階性をもた
せたことで、変更Mの状態にあるデータブロックに他系
のフェッチ要求があっても、主記憶MSライトは必要な
くなる。
【0030】この5状態のキャッシュプロトコルで、主
記憶MSライトが必要になるのは、変更M又は共有変更
Oの状態にあるブロックを、自系CPUのストア要求に
伴ないリプレースする場合のみとなる。
【0031】しかしながら、この5状態をとるキャッシ
ュプロトコルにあっても、図14(C)のように、自系
フェッチ処理に続いて他系ストア処理が行われた場合、
共有変更Oの状態にある他系に対し無効Iに切替えるた
めの状態変更要求が必要であり、この他系への状態変更
要求を行っている分、ストア処理に時間がかかり、自系
のフェッチ要求で取得したキャッシュ上のデータブロッ
クに自系でストア処理を行う頻度は高いため、装置全体
としてりアクセス性能に大きく影響する問題があった。
【0032】本発明は、キャッシュ上のデータブロック
を管理する状態を細分化して他系への状態変更の要求を
減してキャッシュへのアクセス性能を高めるようにした
キャッシュ装置及び制御方法を提供することを目的とす
る。
【0033】
【課題を解決するための手段】図1は本発明の原理説明
図である。
【0034】本発明のキャッシュ装置は、キャッシュメ
モリとキャッシュコントローラで構成される。キャッシ
ュメモリは、主記憶の一部のデータをキャッシュライン
のブロック単位に保持すると共にキャッシュラインに保
持したデータブロック状態を示す情報を保持する。
【0035】キャッシュコントローラは、データブロッ
クの状態を、例えば図1(B)のフェッチプロコトルの
ように、無効I(Invalid);共有S(Shared);排他系
E(Exclusive );変更M(Modified);共有変更O
(Shared Modified );書込可能W(Writable Modifie
d );の6状態で表現してキャッシュメモリを制御す
る。本発明で付加した書込可能Wは、フェッチ要求があ
った場合に段階的に共有性を持たせるための状態であ
る。
【0036】キャッシュ装置14−2のキャッシュコン
トローラは、書込可能Wの状態を生成する自系フェッチ
処理として、図1(A)ののように、自系のCPU
12−2から無効Iの状態にあるデータブロックへのフ
ェッチ要求に対し、キャッシュ装置14−2が他系のキ
ャッシュ装置14−1から変更Mの状態にあるデータブ
ロックを取得した場合、取得したデータブロックの状態
を無効Iから書込可能Wに変更し、同時にキャッシュ装
置14−1は、変更Mの状態にあるデータブロックに対
し他系のキャッシュ装置14−2からフェッチ要求を受
けた場合、このデータブロックの状態を変更Mから無効
Iに切替える。この条件によって本発明で追加した6番
目の書込可能Wの状態が生成される。
【0037】またキャッシュ装置14−2のキャッシュ
コントローラは、書込可能Wの状態を生成した後の自系
ストア処理として、図1(A)ののように、自系C
PU12−2からの書込可能Wの状態にあるデータブロ
ックへのストア要求に対し、このデータブロックにデー
タをストアした後に、他系への状態変更通知を一切必要
とすることなく、データブロックの状態を書込可能Wか
ら変更Mに切替える。
【0038】このような本発明のキャッシャ装置は、キ
ャッシュ上で管理するデータブロックの状態を細分化
し、これによって他系への状態変更要求を減らし、結果
としてキャッシュ装置へのアクセスを速くすることを意
図している。
【0039】ストアイン方式のキャッシュ装置を有する
マルチプロセッサシステムにおいて、あるCPUがスト
アを行ったデータブロックを他系のCPUがフェッチす
る場合、他系のCPUが同じデータブロックにストアを
行う確率が高いことが知られている。また、他系のCP
Uがそのデータブロックにストアを行わずにフェッチを
行う場合、共有の状態が続くことも知られている。
【0040】このことは、複数のCPUが同じデータブ
ロックを参照する場合、そのブロックが単なる参照域で
あればストアは発生せず、ストアを行うような制御域で
あれば、他系のCPUからもストアが行われる可能性が
あることからも推測可能である。
【0041】この性質を利用して本発明は、従来の5状
態に更に書込可能Wという状態を設けた6状態構成と
し、この書込可能Wのデータブロックは、他系と共有せ
ずに単独でストアできるようにする。
【0042】このため、CPUがフェッチ要求に次いで
ストア要求する場合、5状態のキャッシュプロトコルで
は、他系に状態変更要求を必要とするが、本発明の6状
態のキャッシュプロトコルでは、他系への状態通知を必
要とすることなくストア可能となる。
【0043】また6状態を表わすのに必要なビットは、
5状態と同様3ビットで行うことができる。また、スト
ア要求が無く、他系からフェッチ要求があった場合も、
要求回数を増やすことなく5状態のキャッシュプロトコ
ルと同様に対応できる。
【0044】キャッシュ装置14−2のキャッシュコン
トローラは、書込可能Wの状態を生成した後の自系フェ
ッチ処理として、2つの異なった処理のいずれかを行
う。
【0045】第1の自系フェッチ処理として、キャッシ
ュ装置14−2のキャッシュコントローラは、データブ
ロックが無効Iの状態にある他系のキャッシュ装置14
−3から書込可能Wの状態にあるデータブロックにフェ
ッチ要求を受けた場合、このデータブロックの状態を書
込可能Wから共有変更Oに切替える(オーナの移動な
し)。
【0046】またキャッシュ装置14−3のキャッシュ
コントローラは、自系のCPU12−3からの無効Iの
状態にあるデータブロックへのフェッチ要求に対し、他
系のキャッシュ装置14−2から書込可能Wの状態にあ
るデータブロックを取得した場合、取得したデータブロ
ックの状態を無効Iから共有Sに切替える。
【0047】この場合、キャッシュ装置14−2のキャ
ッシュコントローラ18は、共有変更Oの状態にあるデ
ータブロックに自系のCPU12−2又は他系のキャッ
シュ装置14−3からフェッチ要求を受けた場合は、共
有変更Oの状態を維持し、オーナは移動しない。
【0048】また第2の自系フェッチ処理として、キャ
ッシュ装置14−2のキャッシュコントローラは、デー
タブロックが無効Iの状態にある他系のキャッシュ装置
14−3から書込可能Wのデータブロックにフェッチ要
求を受けた場合、このデータブロックの状態を書込可能
Wから共有Sに切替える。
【0049】またキャッシュ装置14−3のキャッシュ
コントローラは、自系のCPU12−3からの無効Iの
状態にあるデータブロックへのフェッチ要求に対し、他
系のキャッシュ装置14−2から書込可能Wの状態にあ
るデータブロックを取得した場合、取得したデータブロ
ックの状態を無効Iから共有変更Oに切替える(オーナ
の移動)。
【0050】この場合、キャッシュ装置14−3のキャ
ッシュコントローラ18は、共有変更Oの状態にあるデ
ータブロックに自系のCPU12−3からフェッチ要求
を受けた場合は、共有変更Oの状態を維持し、共有変更
Oの状態にあるデータブロックに他系のキャッシュ装置
14−2からフェッチ要求を受けた場合は、データブロ
ックの状態を共有変更Oから共有Sに切替える(オーナ
の移動)。
【0051】更に、自系のプロセッサからの無効Iの状
態にあるデータブロックへのフェッチ要求に対し、他系
のキャッシュ装置から共有変更Oの状態にあるデータブ
ロックを取得した場合、取得したデータブロックの状態
を無効Iから共有変更Oに切替える。
【0052】この第1及び第2の自系フェッチ処理に対
応した共有変更Oのストア処理として、キャッシュ装置
14−3又は14−3のキャッシュコントローラ18
は、共有変更Oの状態にあるデータブロックに自系のC
PUからストア要求を受けた場合は、このデータブロッ
クにデータをストアした後に、データブロックの状態を
共有変更Oから変更Mに切替える。また共有変更Oの状
態にあるデータブロックに他系のキャッシュ装置からス
トア要求に基づく状態変更要求を受けた場合は、データ
ブロックの状態を共有変更Oから無効Iに切替える。
【0053】本発明は、プロセッサ毎に設けられ、相互
にバス接続されるキャッシュ装置を制御するキャッシュ
制御方法を提供する。
【0054】この制御方法は、キャッシュメモリに主記
憶の一部のデータをキャッシュラインのブロック単位に
保持すると共に前記キャッシュラインに保持したデータ
ブロック状態を示す情報を保持し、データブロックの状
態を、無効I(Invalid)、共有S(Shared)、排他系E
(Exclusive )、変更M(Modified)、共有変更O(Sh
ared Modified )の他系に、フェッチ要求があった場合
に段階的に共有性を持たせるために書込可能W(Writab
le Modified )の6状態で表現して前記キャッシュメモ
リを制御することを特徴とする。
【0055】また書込可能Wの状態の生成として、ある
キャッシュ装置が自系のCPUから無効Iの状態にある
データブロックへのフェッチ要求に対し、他系のキャッ
シュ装置から変更Mの状態にあるデータブロックを取得
した場合、要求元のキャッシュ装置は取得したデータブ
ロックの状態を無効Iから書込可能Wに切替え、取得先
の他系のキャッシュ装置はデータブロックの状態を変更
Mから無効Iに切替える。
【0056】また書込可能Wの状態を生成した後のスト
ア処理として、あるキャッシュ装置が自系のCPUから
書込可能Wの状態にあるデータブロックへのストア要求
を受けた場合、このデータブロックにデータをストアし
た後にデータブロックの状態を書込可能Wから変更Mに
切替える。
【0057】また書込可能Wの状態を生成した後の第1
のフェッチ処理として、あるキャッシュ装置が書込可能
Wの状態にあるデータブロックに、データブロックが無
効Iの状態にある他系のキャッシュ装置からフェッチ要
求を受けた場合、このデータブロックの状態を書込可能
Wから共有変更Oに切替え、他系のキャッシュ装置は取
得したデータブロックの状態を無効Iから共有Sに切替
える。
【0058】ここで、第1のフェッチ処理で生成された
共有変更Oの状態に対するフェッチ処理として、共有変
更Oの状態にあるデータブロックに自系のCPU又は他
系のキャッシュ装置からフェッチ要求を受けた場合は、
共有変更Oの状態を維持する。
【0059】また書込可能Wの状態を生成した後の第2
のフェッチ処理として、あるキャッシュ装置が書込可能
Wの状態にあるデータブロックに、データブロックが無
効Iの状態にある他系のキャッシュ装置からフェッチ要
求を受けた場合、このデータブロックの状態を書込可能
Wから共有Sに切替え、他系のキャッシュ装置は取得し
たデータブロックの状態を無効Iから共有変更Oに切替
える。
【0060】ここで第2のフェッチ処理で生成された共
有変更Oの状態に対するフェッチ処理として、共有変更
Oの状態にあるデータブロックに自系のCPUからフェ
ッチ要求を受けた場合は、共有変更Oの状態を維持し、
共有変更Oの状態にあるデータブロックに他系のキャッ
シュ装置からフェッチ要求を受けた場合は、データブロ
ックの状態を共有変更Oから共有Sに切替える。
【0061】第1及び第2のフェッチ処理に対応したス
トア処理としては、共有変更Oの状態にあるデータブロ
ックに自系のCPUからストア要求を受けた場合は、デ
ータブロックにデータをストアした後に、データブロッ
クの状態を共有変更Oから変更Mに切替える。また共有
変更Oの状態にあるデータブロックに他系のキャッシュ
装置からストア要求に基づく状態変更通知を受けた場合
は、データブロックの状態を共有変更Oから無効Iに切
替える。
【0062】
【発明の実施の形態】図2は、本発明のキャッシュ装置
及び制御方法が適用されるマルチプロセッサシステムの
ブロック図である。
【0063】図2において、マルチプロセッサシステム
は、複数のプロセッサモジュール10−1,10−2,
・・・10−nを持ち、プロセッサモジュール10−1
〜10−nのそれぞれには、CPU(プロセッサ)12
−1〜12−n及びキャッシュ装置14−1〜14−n
が設けられている。キャッシュ装置14−1〜14−n
はシステムバス15により相互に接続され、更にシステ
ムバス15により主記憶16と接続されている。
【0064】キャッシュ装置14−1〜14−nを接続
するシステムバス15としては、例えばスヌープバスを
使用する。スヌープバスは、キャッシュ装置14−1〜
14−nのいずれかでCPU12−1〜12−nからフ
ェッチまたはストアの処理要求があった際に、この処理
要求に該当するキャッシュラインに保持しているデータ
ブロックの状態をスヌープ制御線の状態信号により直ち
に取得できるバスである。
【0065】図3は本発明のキャッシュ装置10の機能
ブロック図である。キャッシュ装置10は、キャッシュ
コントローラ18とキャッシュメモリ20で構成され
る。キャッシュメモリ20は、複数のキャッシュライン
22単位にデータを保持しており、各キャッシュライン
22はタグ24とデータブロック30を含み、タグ24
は状態タグ26とアドレスタグ28を備える。
【0066】キャッシュメモリ20の状態タグ26につ
き、本発明にあっては、データブロックの状態を無効
I、共有S、排他E、変更M及び共有変更Oの他に、自
系のフェッチ要求があった場合に、段階的に共有性を持
たせるための書込可能Wの6状態で表現してキャッシュ
メモリ20を管理している。
【0067】キャッシュコントローラ18にはキャッシ
ュ制御管理部32、状態管理部34、プロセッサインタ
フェース36、バスインタフェース38が設けられる。
また状態管理部34にはフェッチプロトコル処理部40
とストアプロトコル処理部42が設けられる。
【0068】キャッシュ制御管理部32は、CPU12
からフェッチ要求を受けると、キャッシュメモリ20の
タグ24を参照し、要求アドレスとアドレス値の一致す
るアドレスタグ28を持ったキャッシュライン22を検
索する。アドレスの一致するキャッシュラインが存在し
ない場合にはキャッシュミスとなり、主記憶16もしく
は他のキャッシュ装置からデータブロックを取得してC
PU12に提供する。
【0069】キャッシュ制御管理部32は、要求アドレ
スに一致するアドレスのキャッシュラインが存在した場
合には、そのキャッシュラインの状態タグ26による無
効I、共有S、排他E、変更M、共有変更Oまたは書込
可能Wの状態に応じた処理を行う。
【0070】キャッシュ制御管理部32は、CPU12
からのストア要求に対し、キャッシュヒットであればキ
ャッシュメモリ20上の該当するキャッシュラインのデ
ータブロックを更新するストア処理を行い、ミスヒット
であればキャッシュメモリ20上に新たなキャッシュラ
インを確保してデータを書き込むストア処理を行う。こ
のとき他のキャッシュ装置に該当するデータブロックが
存在する場合には、最新のデータブロックを他のキャッ
シュ装置から取得した後にデータを書き込むストア処理
を行う。
【0071】このようなキャッシュ制御管理部32によ
るCPU12及びシステムバス15を経由した他のキャ
ッシュ装置からの処理要求に対し、状態管理部34が処
理要求を実行した後の該当するキャッシュライン上の状
態タグ26の状態遷移制御を行う。
【0072】状態管理部34によるキャッシュコヒーレ
ンスのための状態遷移制御として、本発明にあっては、
図13に示した従来のMESIOの5状態のキャッシュ
プロトコルに更に自系フェッチ要求があった場合に段階
的に共有性を持たせるための書込可能Wを加えたMES
IOWの6状態のキャッシュプロトコルを適用してい
る。
【0073】図4は、図3の状態管理部34で使用され
るMESIOWの6状態キャッシュプロトコルの状態遷
移の説明図である。即ち図4(A)がフェッチプロトコ
ル処理部40で処理するフェッチ要求に対するMESI
OWフェッチプロトコルの状態遷移である。また図4
(B)が図3のストアプロトコル処理部42によるME
SIOWストアプロトコルの状態遷移である。
【0074】尚、図の実線の矢印は、その状態で自系C
PUによるフェッチ要求又はストア要求があった場合の
遷移であり、破線の矢印は、他系のキャッシュ装置でフ
ェッチ要求又はストア要求が処理された場合の遷移であ
る。
【0075】このよう図14の本発明による6状態のキ
ャッシュプロトコルの特徴は、図13に示した5状態の
キャッシュプロトコルに段階的に共有性を持たせるため
の書込可能Wの状態を付加している。
【0076】そこで図4(A)の本発明による6状態の
フェッチプロトコルと図13(A)の5状態のフェッチ
プロトコルを対比して見ると、新たに書込可能Wが加わ
っている。この書込可能Wの状態への遷移は、自系CP
Uからのフェッチ要求に対し自分のキャッシュメモリの
データブロックが無効Iで他のキャッシュ装置に該当す
るデータブロックが変更Mの状態で存在しているとき、
他のキャッシュ装置から該当するデータブロックを取得
して自系CPUに提供する。このような自系フェッチ処
理が済んだ状態で(1)取得先のキャッシュ装置のデー
タブロックの状態を変更Mから無効Iに切り替え、
(2)取得したデータブロックの状態を無効Iから本発
明で新たに設けた書込可能Wに切り替える。
【0077】この書込可能Wを生成する遷移状態は、図
4(A)において無効Iから実線の矢印のように他系の
データブロックの状態が変更Mであることを条件に書込
可能Wの状態に遷移している部分である。また他系キャ
ッシュからフェッチ要求でデータを取得した後のデータ
ブロックの状態については、他系キャッシュのデータブ
ロックの状態がMから破線のように無効Iに遷移してい
る部分である。
【0078】ここで図4(A)の6状態のフェッチプロ
トコルを図13(A)の5状態のフェッチプロトコルと
対比して見ると、6状態のフェッチプロトコルにあって
は新たに書込可能Wの状態が付加されたことで、共有変
更Oへの遷移は、この追加した書込可能Wを経由して行
われることになる。
【0079】図4(A)のフェッチプロトコルに従って
キャッシュラインのデータブロックが書込可能Wとなっ
た場合には、図4(B)のストアプロトコルに従った自
系CPUからのストア要求に対し、他のキャッシュ装置
に対する状態変更要求を必要とすることなく、書込可能
W状態にあるキャッシュ装置のみでストア処理を完了す
ることができる。
【0080】図4(B)のストアプロトコルにあって
も、図13(B)に示した5状態のストアプロトコルに
新たに段階的に共有性を持たせるための書込可能Wが追
加されている。このため図4(A)の6状態のフェッチ
プロトコルに従ってキャッシュラインのデータブロック
が書込可能Wとなった後は、自系CPUのストア要求が
完了すると、そのキャッシュラインのデータブロックの
状態は書込可能Wから変更Mに遷移する。
【0081】また書込可能Wとなっているデータブロッ
クが他系のキャッシュ装置でのストア要求の対象となっ
た場合には、破線のように書込可能Wから無効Iに遷移
する。
【0082】更に無効Iの状態で他系のキャッシュ装置
からストア対象とするデータブロックを取得する際に、
他系のデータブロックの状態が書込可能Wまたは共有変
更Oの状態の場合には、他系キャッシュからデータブロ
ックを取得してストア処理を完了した状態で無効Iから
変更Mに遷移させる。これ以外の点は図13(B)の5
状態のストアプロトコルの状態遷移と同じである。
【0083】図5は、図2に示したマルチプロセッサシ
ステムの中の3つのプロセッサモジュールに設けている
CPU12−1,12−2,12−3及びそれぞれのキ
ャッシュ装置14−1,14−2.14−3の3台ずつ
を例にとって、本発明のSEMIOWの6状態キャッシ
ュプロトコルについて、自系フェッチ要求によって書込
可能Wへの状態遷移とその後の自系ストア処理による状
態遷移を示した説明図である。
【0084】図5(A)は、真ん中に位置するCPU1
2−2がキャッシュ装置14−2に対しフェッチ要求を
行ったときの該当データブロックの状態であり、キャッ
シュ装置14−1が変更M、キャッシュ装置14−2,
14−3がそれぞれ無効Iとなっている。
【0085】以下のキャッシュ処理の説明にあっては、
中央に位置するCPU12−2に着目しており、CPU
12−2からのフェッチ要求またはストア要求を自系フ
ェッチ要求または自系ストア要求とし、CPU12−1
またはCPU12−3からのフェッチ要求またはストア
要求は他系フェッチ要求または他系ストア要求と呼ぶ。
【0086】図5(A)は、CPU12−2による自系
CPUフェッチ要求であり、このフェッチ要求を受けた
キャッシュ装置14−2は該当するデータブロックの状
態が無効Iであることから、該当するキャッシュライン
を変更Mとして保持しているキャッシュ装置14−1に
対しフェッチ要求を行う。
【0087】続いて図5(B)のように、キャッシュ装
置14−2からフェッチ要求を受けたキャッシュ装置1
4−1は、該当するデータブロックを要求元に転送し、
これをCPU12−2に応答することでフェッチが完了
する。このフェッチ完了によって取得先のキャッシュ装
置14−1のデータブロックは変更Mから無効Iに切り
替えられ、データブロックを取得したキャッシュ装置1
4−2にあっては、無効Iから本発明で新たに追加した
書込可能Wに切り替える。
【0088】ここで図9(A)に示した従来の4状態の
フェッチプロトコルでは、キャッシュ装置14−1の状
態Mから遷移する際に主記憶MSの書込みを必要として
いるが、本発明の6状態キャッシュプロトコルにあって
は、図13の5状態キャッシュプロトコルと同様、変更
Mからの遷移について主記憶書込み即ちMSライトを必
要としない。
【0089】次に図5(C)のように、同じCPU12
−2がフェッチ要求に続いて同じデータブロックに対し
ストア要求を行ったとする。このときストア要求の対象
となったデータブロックの状態は書込可能Wとなってお
り、他のキャッシュ装置14−1,14−3にあっては
該当するデータブロックは共に無効Iとなっている。
【0090】このため、他のキャッシュ装置14−1,
14−3に対する状態変更通知を必要とすることなく、
キャッシュ装置14−2に単独でCPU12−2からの
データを書き込むストア処理を行い、図5(D)のスト
ア処理の完了により、キャッシュ装置14−2のストア
済みのデータブロックは書込可能Wから変更Mに切り替
えられる。
【0091】これに対し図14(C)〜(F)に示した
5状態のキャッシュプロトコルにおける自系フェッチ要
求後の自系ストア要求にあっては、自系及び他系の該当
するデータブロックの状態が共に共有Sとなっているた
めに、ストア要求に対し他のキャッシュ装置に対し状態
変更要求(ブロック変更要求)を行わなければならな
い。
【0092】この結果、本発明の6状態キャッシュプロ
トコルにあっては、自系フェッチに続く自系ストア処理
につき、データブロックが書込可能Wとなっているため
に他のキャッシュ装置に対する状態変更通知を必要とせ
ず、その分キャッシュのアクセスを高速にすることがで
きる。
【0093】図6は、図5と同様、3つのCPU12−
1〜12−3及びキャッシュ装置14−1〜14−3を
例にとって、書込可能Wに切り替わる自系フェッチ要求
に続き他系フェッチ要求が行われた場合のキャッシュ処
理の説明図である。
【0094】図6(A)(B)は、図5(A)(B)と
同じであり、CPU12−2のキャッシュ装置14−2
に対する自系のフェッチ要求に対し他のキャッシュ装置
14−1からデータブロックを取得して応答すること
で、取得先のキャッシュ装置14−1のデータブロック
は変更Mから無効Iに切り替わり、要求元のキャッシュ
装置14−2のデータブロックは無効Iから書込可能W
に切り替わっている。
【0095】次に図6(C)のように、他のCPU12
−3でキャッシュ装置14−3にフェッチ要求が行わ
れ、該当するデータブロックは無効Iであることから、
書込可能Wの状態でデータブロックを保持しているキャ
ッシュ装置14−2に対しフェッチ要求が行われる。
【0096】このフェッチ要求に対し、図6(D)のよ
うにキャッシュ装置14−2から要求元のキャッシュ装
置14−3に該当するデータブロックが送られ、CPU
12−3に提供されてフェッチを完了する。
【0097】このフェッチの完了で、データブロックの
転送元のキャッシュ装置14−2にあっては、書込可能
Wから共有変更Oに切り替える。またデータブロックを
取得した要求元のキャッシュ装置14−3にあっては、
無効Iから共有Sに遷移する。
【0098】この自系フェッチ後の他系フェッチによる
処理は、図15に示した従来の5状態のキャッシュプロ
トコルの場合と同じ手順であり、本発明で新たに書込可
能Wを加えた6状態としても、自系フェッチに続く他系
フェッチのキャッシュ処理の手順は増加せずに同じにで
きる。
【0099】図7は、図4(B)に示した本発明による
6状態キャッシュプロトコルにおけるフェッチプロトコ
ルの他の実施形態の状態遷移の説明図である。この6状
態のフェッチプロトコルの状態遷移にあっては、自系フ
ェッチに続いて他系フェッチが行われた場合の書込可能
Wの状態にあるキャッシュデータの遷移を、図4(A)
のフェッチプロトコルでは図6(D)のように共有変更
Oとしていたが、この実施形態にあっては共有Sとし、
フェッチ要求元に転送したデータブロックについて共有
変更Oとするようにしたことを特徴とする。
【0100】即ち図4(A)のフェッチプロトコルにあ
っては、自系フェッチ要求、他系フェッチ要求と続いた
場合、書込可能Wから共有変更Oに遷移させているが、
図7のフェッチプロトコルにあっては書込可能Wから共
有Sに遷移させ、逆に書込可能Wのキャッシュ装置から
データブロックを取得した要求元を無効Iから共有変更
Oに遷移させている。
【0101】図8は、図7のフェッチプロトコルに従っ
た自系フェッチに続いて他系フェッチを処理した場合の
キャッシュ処理の説明図である。図8(A)(B)の自
系フェッチ処理は図6(A)(B)と同じであり、図8
(C)(D)の他系フェッチ処理が図6(C)(D)と
異なる。
【0102】図6(D)では要求先のキャッシュ装置1
4−2の状態を書込可能Wから共有変更Oとし、要求元
のキャッシュ装置14−3の状態を無効Iから共有Sと
していたものを、図8(C)(D)では、逆に要求元の
キャッシュ装置14−2の書込可能Wを共有Sとし、要
求元のキャッシュ装置14−3の無効Iを共有変更Oと
している。
【0103】即ち図4(A)のフェッチプロトコルにあ
っては、図6(D)のように他系フェッチ要求が続く限
り、要求先となるキャッシュ装置14−2は共有変更O
の状態を継続することとなり、他系フェッチが続いても
共有変更Oとなっているキャッシュ装置は固定されるた
め、他系フェッチ要求に対し他のキャッシュ装置に対す
る状態変更要求が少なくできる。
【0104】これに対し図7のフェッチプロトコルにあ
っては、図8(D)のように他系フェッチ要求が続く場
合、要求元に次々と共有変更0が移動していくこととな
り、共有変更特定のキャッシュ装置に固定している場合
に比べストア要求を受ける機会が少ないため、共有状態
を長く続けたい場合に有効なプロトコルである。
【0105】もちろん、図4(A)のフェッチプロトコ
ルとするか図7のフェッチプロトコルにするかは必要に
応じて適宜に設定することができる。例えば図4(A)
のフェッチプロトコルと図7のフェッチプロトコルの両
方を備え、運用テストやシミュレーション等によりアク
セスの早い方のフェッチプロトコルを選択してダイナミ
ックに使用することもできる。
【0106】尚、本発明は、その目的と利点を損なわな
い適宜の変形を含む。また本発明は上記の実施形態に示
した数値による限定は受けない。
【0107】
【発明の効果】以上説明してきたように本発明によれ
ば、データブロックの状態を無効、共有、排他、変更、
共有変更に加えて、フェッチ要求があった場合に段階的
に共有性を持たせるための書込可能を加えた6状態で表
現してキャッシュ制御を行うようにしたため、自系フェ
ッチ要求で他のキャッシュ装置の変更状態にあるデータ
ブロックを取得して書込可能状態とした後に自系ストア
要求を受けた場合、他のキャッシュ装置に対する状態変
更要求を必要とすることなく、書込可能状態にあるキャ
ッシュ装置単独でストア処理を完了することができ、こ
れによってキャッシュアクセスを更に高速にすることが
できる。
【0108】また、新たに書込可能を加えた6状態とし
ていても、データブロックが書込可能に遷移する自系フ
ェッチ要求に続いて他のCPUからの他系フェッチ要求
があった場合にも、この他系フェッチ要求に対する動作
手順の回数を増やすことなく対応することができ、6状
態としたことによるアクセス性能の低下は起きない。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】本発明が適用されるマルチプロセッサシステム
のブロック図
【図3】本発明のキャッシュ装置の機能構成のブロック
【図4】本発明の6状態キャッシュプロトコルの状態遷
移の説明図
【図5】自系フェッチによる書込可能Wの状態の生成に
続いて自系ストアを行った場合の本発明のキャッシュ処
理の説明図
【図6】自系フェッチによる書込可能Wの状態の生成に
続いて他系フェッチを行った場合の本発明のキャッシュ
処理の説明図
【図7】本発明の6状態キャッシュプロトコルのフェッ
チ要求に対する他の状態遷移の説明図
【図8】自系フェッチによる書込可能Wの状態の生成に
続いて図7の状態遷移に従って自系ストアを行った場合
の本発明のキャッシュ処理の説明図
【図9】従来の4状態キャッシュプロトコルの状態遷移
の説明図
【図10】従来の4状態キャッシュプロトコルで自系フ
ェッチに続いて自系ストアを行った場合のキャッシュ処
理の説明図
【図11】従来の4状態キャッシュプロトコルで自系フ
ェッチに続いて他系フェッチを行った場合のキャッシュ
処理の説明図
【図12】従来の4状態キャッシュプロトコルにおける
フェッチ要求に対する他の状態遷移の説明図
【図13】従来の5状態キャッシュプロトコルの状態遷
移の説明図
【図14】従来の5状態キャッシュプロトコルで自系フ
ェッチに続いて自系ストアを行った場合のキャッシュ処
理の説明図
【図15】従来の5状態キャッシュプロトコルで自系フ
ェッチに続いて他系フェッチを行った場合のキャッシュ
処理の説明図
【符号の説明】
10,10−1〜10−n:プロセッサモジュール 12,12−1〜12−n:CPU(プロセッサ) 14,14−1〜14−n:キャッシュ装置 15:システムバス 16:主記憶装置(MS) 18:キャッシュコントローラ 20:キャッシュメモリ 22:キャッシュライン 24:タグ 26:状態 28:アドレス 30:データブロック 32:キャシュ制御管理部 34:状態管理部 36:プロセッサIF 38:バスIF 40:フェッチプロトコル処理部 42:ストアプロトコル処理部
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成12年9月25日(2000.9.2
5)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項9
【補正方法】変更
【補正内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0002
【補正方法】変更
【補正内容】
【0002】
【従来の技術】近年のコンピュータシステムの高速化の
要求に伴い、マルチプロセッサシステムにおいては各C
PU(プロセッサ)にキャッシュ装置を設けている。C
PU毎に設けたキャッシュ上のデータは、キャッシュ間
に亘ってそのデータの正しさ、即ちデータの共有と一貫
性を保つため、キャッシュコヒーレンスプロトコルと呼
ばれるキャシュ間のデータの整合性を保つ規則に従っ
て、キャッシュメモリ上でブロック毎に管理されてい
る。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0004
【補正方法】変更
【補正内容】
【0004】図9は従来のMESIキャッシュプロトコ
ルの状態遷移図であり、図9(A)がフェッチ要求(リ
ード要求)の場合のフェッチプロトコルであり、図9
(B)がストア要求(ライト要求)の場合のストアプロ
トコルである。この状態遷移の記号は次の内容を表わ
す。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正内容】
【0009】このような従来のMESIキャッシュプロ
トコルを用いたキュッシュ制御において、あるCPUが
キャッシュ装置にストアしたデータブロックに対して、
他系のCPUが参照するフェッチ要求を行った場合、主
記憶MSへのデータブロックの書込みを必要とし、その
分、アクセスに時間がかかる。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0010
【補正方法】変更
【補正内容】
【0010】図10は、CPU100−1〜100−3
とキャッシュ装置100−1〜102−3で構成された
マルチプロセッサシステムであり、CPU102−2が
フェッチ要求とストア要求を同じデータブロックに対し
行った場合である。まず図10(A)(B)は、CPU
100−2のフェッチ処理である。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0013
【補正方法】変更
【補正内容】
【0013】図10(C)−(E)は、次にCPU10
0−2が同じデータブロックにストア要求を行った場合
である。図10(C)のように、CPU100−2が自
系のキャッシュ装置102−2にストア要求を行うと、
共有Sの状態で同じデータブロックを保持している他系
のキャッシュ装置102−1にブロック変更要求を行
い、図10(D)のように、データブロックの状態を共
有Sから無効Iに切替え、CPU100−2がキャッシ
ュ装置のデータブロックに新たなデータをストアするス
トア処理を行う。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0015
【補正方法】変更
【補正内容】
【0015】図11は、CPU100−2とCPU10
−3が連続してフェッチ要求を同じデータブロックに
対し行った場合である。まず図11(A)(B)のCP
100−2のフェッチ処理は、図10(A)(B)と
同じであり、キャッシュ装置102−1に対するフェッ
チ要求で主記憶MSライトを必要とする。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0022
【補正方法】変更
【補正内容】
【0022】図14は、CPU100−1〜100−3
とキャッシュ装置102−1〜102−3で構成された
マルチプロセッサシステムであり、CPU100がフェ
ッチ要求とストア要求を同じデータブロックに対し行っ
た場合である。まず図14(A)(B)は、CPU10
−2のフェッチ処理である。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0026
【補正方法】変更
【補正内容】
【0026】このため図14(D)のように、データブ
ロックの状態を共有変更Oから無効Iに切替え、CPU
100−2がキャッシュ装置のデータブロックに新たな
データをストアするストア処理を行う。このストア処理
済むと図14(F)のように、キャッシュ装置102
−2からストア完了がCPU100−2に報告され、処
理を終了する。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0027
【補正方法】変更
【補正内容】
【0027】図15は、CPU100−2とCPU10
−3の順番に連続してフェッチ要求を同じデータブロ
ックに対し行った場合である。まず図15(A)(B)
のCPU100−2のフェッチ処理は図14(A)
(B)と同じであり、キャッシュ装置102−1に対す
るフェッチ要求で変更Mから共有変更Oに切替えるた
め、主記憶MSライトは必要としない。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0030
【補正方法】変更
【補正内容】
【0030】この5状態のキャッシュプロトコルで、主
記憶MSライトが必要になるのは、変更M又は共有変更
Oの状態にあるデータブロックを、自系CPUのストア
要求に伴ないリプレースする場合のみとなる。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0031
【補正方法】変更
【補正内容】
【0031】しかしながら、この5状態をとるキャッシ
ュプロトコルにあっても、図14(C)のように、自系
フェッチ処理に続いて他系ストア処理が行われた場合、
共有変更Oの状態にある他系に対し無効Iに切替えるた
めの状態変更要求が必要であり、この他系への状態変更
要求を行っている分、ストア処理に時間がかかり、自系
のフェッチ要求で取得したキャッシュ上のデータブロッ
クに自系でストア処理を行う頻度は高いため、装置全体
としてアクセス性能に大きく影響する問題があった。
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】0104
【補正方法】変更
【補正内容】
【0104】これに対し図7のフェッチプロトコルにあ
っては、図8(D)のように他系フェッチ要求が続く場
合、要求元に次々と共有変更0が移動していくこととな
り、共有変更の特定のキャッシュ装置に固定している場
合に比べストア要求を受ける機会が少ないため、共有状
態を長く続けたい場合に有効なプロトコルである。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】プロセッサ毎に設けられ、相互に接続され
    るキャッシュ装置に於いて、 前記主記憶の一部のデータをキャッシュラインのブロッ
    ク単位に保持すると共に前記キャッシュラインに保持し
    たデータブロック状態を示す情報を保持するキャッシュ
    メモリと、 前記データブロックの状態を、無効I(Invalid)、共有
    S(Shared)、排他E(Exclusive )、変更M(Modifi
    ed)、共有変更O(Shared Modified )の他に、フェッ
    チ要求があった場合に段階的に共有性を持たせるために
    書込可能W(Writable Modified )の6状態で表現して
    前記キャッシュメモリを制御するキャッシュコントロー
    ラと、を備えたことを特徴とするキャッシュ装置。
  2. 【請求項2】請求項1記載のキャッシュ装置に於いて、
    前記キャッシュコントローラは、 自系のプロセッサから無効Iの状態にあるデータブロッ
    クへのフェッチ要求に対し他系のキャッシュ装置から変
    更Mの状態にあるデータブロックを取得した場合、取得
    したデータブロックの状態を無効Iから書込可能Wに変
    更し、 変更Mの状態にあるデータブロックに対し他系のキャッ
    シュ装置からフェッチ要求を受けた場合は、該データブ
    ロックの状態を変更Mから無効Iに切替えることを特徴
    とするキャッシュ装置。
  3. 【請求項3】請求項2記載のキャッシュ装置に於いて、
    前記キャッシュコントローラは、自系のプロセッサから
    書込可能Wの状態にあるデータブロックへのストア要求
    に対し、該データブロックにデータをストアした後にデ
    ータブロックの状態を書込可能Wから変更Mに切替える
    ことを特徴とするキャッシュ装置。
  4. 【請求項4】請求項2記載のキャッシュ装置に於いて、
    前記キャッシュコントローラは、 データブロックが無効Iの状態にある他系のキャッシュ
    装置から書込可能Wの状態にあるデータブロックにフェ
    ッチ要求を受けた場合、該データブロックの状態を書込
    可能Wから共有変更Oに切替え、 自系のプロセッサからの無効Iの状態にあるデータブロ
    ックへのフェッチ要求に対し、他系のキャッシュ装置か
    ら書込可能Wの状態にあるデータブロックを取得した場
    合、取得したデータブロックの状態を無効Iから共有S
    に切替えることを特徴とするキャッシュ装置。
  5. 【請求項5】請求項4記載のキャッシュ装置に於いて、
    前記キャッシュコントローラは、共有変更Oの状態にあ
    るデータブロックに自系のプロセッサ又は他系のキャッ
    シュ装置からフェッチ要求を受けた場合、共有変更Oの
    状態を維持することを特徴とするキャッシュ装置。
  6. 【請求項6】請求項2記載のキャッシュ装置に於いて、
    前記キャッシュコントローラは、 データブロックが無効Iの状態にある他系のキャッシュ
    装置から書込可能Wのデータブロックにフェッチ要求を
    受けた場合、該データブロックの状態を書込可能Wから
    共有Sに切替え、 自系のプロセッサからの無効Iの状態にあるデータブロ
    ックへのフェッチ要求に対し、他系のキャッシュ装置か
    ら書込可能Wの状態にあるデータブロックを取得した場
    合、取得したデータブロックの状態を無効Iから共有変
    更Oに切替えることを特徴とするキャッシュ装置。
  7. 【請求項7】請求項6記載のキャッシュ装置に於いて、
    前記キャッシュコントローラは、 共有変更Oの状態にあるデータブロックに自系のプロセ
    ッサからフェッチ要求を受けた場合は、共有変更Oの状
    態を維持し、 共有変更Oの状態にあるデータブロックに他系のキャッ
    シュ装置からフェッチ要求を受けた場合は、データブロ
    ックの状態を共有変更Oから共有Sに切替え、 自系のプロセッサからの無効Iの状態にあるデータブロ
    ックへのフェッチ要求に対し、他系のキャッシュ装置か
    ら共有変更Oの状態にあるデータブロックを取得した場
    合、取得したデータブロックの状態を無効Iから共有変
    更Oに切替えることを特徴とするキャッシュ装置。
  8. 【請求項8】請求項5又は7記載のキャッシュ装置に於
    いて、前記キャッシュコントローラは、 共有変更Oの状態にあるデータブロックに自系のプロセ
    ッサからストア要求を受けた場合は、データブロックの
    状態を共有変更Oから変更Mに切替え、 共有変更Oの状態にあるデータブロックに他系のキャッ
    シュ装置からストア要求に基づく状態変更通知を受けた
    場合は、データブロックの状態を共有変更Oから無効I
    に切替えることを特徴とするキャッシュ装置。
  9. 【請求項9】プロセッサ毎に設けられ、相互にバス接続
    されるキャッシュ装置を制御するキャッシュ制御方法に
    於いて、 キャッシュメモリに主記憶の一部のデータをキャッシュ
    ラインのブロック単位に保持すると共に前記キャッシュ
    ラインに保持したデータブロック状態を示す情報を保持
    し、 前記データブロックの状態を、無効I(Invalid)、共有
    S(Shared)、排他系E(Exclusive )、変更M(Modi
    fied)、共有変更O(Shared Modified )の他系に、フ
    ェッチ要求があった場合に段階的に共有性を持たせるた
    めに書込可能W(Writable Modified )の6状態で表現
    して前記キャッシュメモリを制御することを特徴とする
    キャッシュ制御方法。
JP28775799A 1999-10-08 1999-10-08 キャッシュ装置及び制御方法 Expired - Fee Related JP3897218B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP28775799A JP3897218B2 (ja) 1999-10-08 1999-10-08 キャッシュ装置及び制御方法
US09/667,223 US6678800B1 (en) 1999-10-08 2000-09-21 Cache apparatus and control method having writable modified state

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28775799A JP3897218B2 (ja) 1999-10-08 1999-10-08 キャッシュ装置及び制御方法

Publications (2)

Publication Number Publication Date
JP2001109662A true JP2001109662A (ja) 2001-04-20
JP3897218B2 JP3897218B2 (ja) 2007-03-22

Family

ID=17721372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28775799A Expired - Fee Related JP3897218B2 (ja) 1999-10-08 1999-10-08 キャッシュ装置及び制御方法

Country Status (2)

Country Link
US (1) US6678800B1 (ja)
JP (1) JP3897218B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963953B2 (en) 2001-12-10 2005-11-08 Renesas Technology Corp. Cache device controlling a state of a corresponding cache memory according to a predetermined protocol
JP2006501568A (ja) * 2002-09-30 2006-01-12 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置
JP2007213304A (ja) * 2006-02-09 2007-08-23 Seiko Epson Corp キャッシュメモリシステム及びマルチプロセッサシステム
WO2007099614A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited システムコントローラおよびキャッシュ制御方法
WO2007099583A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited システムコントローラおよびキャッシュ制御方法
JP2017027402A (ja) * 2015-07-23 2017-02-02 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303605B2 (en) * 2016-07-20 2019-05-28 Intel Corporation Increasing invalid to modified protocol occurrences in a computing system
WO2018059655A1 (en) 2016-09-30 2018-04-05 Intel Corporation Method and apparatus for smart store operations with conditional ownership requests
US10133669B2 (en) 2016-11-15 2018-11-20 Intel Corporation Sequential data writes to increase invalid to modified protocol occurrences in a computing system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6334172B1 (en) * 1998-02-17 2001-12-25 International Business Machines Corporation Cache coherency protocol with tagged state for modified values
US6321306B1 (en) * 1999-11-09 2001-11-20 International Business Machines Corporation High performance multiprocessor system with modified-unsolicited cache state

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963953B2 (en) 2001-12-10 2005-11-08 Renesas Technology Corp. Cache device controlling a state of a corresponding cache memory according to a predetermined protocol
JP2006501568A (ja) * 2002-09-30 2006-01-12 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置
JP2007213304A (ja) * 2006-02-09 2007-08-23 Seiko Epson Corp キャッシュメモリシステム及びマルチプロセッサシステム
WO2007099614A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited システムコントローラおよびキャッシュ制御方法
WO2007099583A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited システムコントローラおよびキャッシュ制御方法
JPWO2007099614A1 (ja) * 2006-02-28 2009-07-16 富士通株式会社 システムコントローラおよびキャッシュ制御方法
US7979644B2 (en) 2006-02-28 2011-07-12 Fujitsu Limited System controller and cache control method
US8327081B2 (en) 2006-02-28 2012-12-04 Fujitsu Limited Information processing device and method for controlling the same
JP2017027402A (ja) * 2015-07-23 2017-02-02 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Also Published As

Publication number Publication date
JP3897218B2 (ja) 2007-03-22
US6678800B1 (en) 2004-01-13

Similar Documents

Publication Publication Date Title
US7814279B2 (en) Low-cost cache coherency for accelerators
US5623632A (en) System and method for improving multilevel cache performance in a multiprocessing system
US5434993A (en) Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
EP0735480B1 (en) Cache coherent computer system that minimizes invalidation and copyback operations
US5535361A (en) Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment
US20030126365A1 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
EP1035476A1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US8176261B2 (en) Information processing apparatus and data transfer method
JP4673585B2 (ja) メモリシステム制御装置およびメモリシステム制御方法
US20110320738A1 (en) Maintaining Cache Coherence In A Multi-Node, Symmetric Multiprocessing Computer
US20020188821A1 (en) Fast priority determination circuit with rotating priority
US20060053255A1 (en) Apparatus and method for retrieving data from a data storage system
US11119961B2 (en) I/O coherent request node for data processing network with improved handling of write operations
US20140297966A1 (en) Operation processing apparatus, information processing apparatus and method of controlling information processing apparatus
US6035376A (en) System and method for changing the states of directory-based caches and memories from read/write to read-only
EP4124963B1 (en) System, apparatus and methods for handling consistent memory transactions according to a cxl protocol
JP5408713B2 (ja) キャッシュメモリ制御システム及びキャッシュメモリの制御方法
JP2001109662A (ja) キャッシュ装置及び制御方法
JP3732397B2 (ja) キャッシュシステム
US20210397560A1 (en) Cache stashing system
JP2007241601A (ja) マルチプロセッサシステム
JPH05216794A (ja) 相互問い合わせ要求に優先権を与える方法及び装置
JP3570877B2 (ja) 情報処理装置
JPH09185547A (ja) マルチプロセッサの制御方法及びその装置
US8589636B2 (en) Cache memory device, processor, and processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061102

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: 20061121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061214

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110105

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110105

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120105

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130105

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130105

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140105

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees