JP3013631B2 - キャッシュメモリ同期方法 - Google Patents

キャッシュメモリ同期方法

Info

Publication number
JP3013631B2
JP3013631B2 JP4282373A JP28237392A JP3013631B2 JP 3013631 B2 JP3013631 B2 JP 3013631B2 JP 4282373 A JP4282373 A JP 4282373A JP 28237392 A JP28237392 A JP 28237392A JP 3013631 B2 JP3013631 B2 JP 3013631B2
Authority
JP
Japan
Prior art keywords
block
state
cache memory
processor
processors
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 - Lifetime
Application number
JP4282373A
Other languages
English (en)
Other versions
JPH06110785A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP4282373A priority Critical patent/JP3013631B2/ja
Publication of JPH06110785A publication Critical patent/JPH06110785A/ja
Application granted granted Critical
Publication of JP3013631B2 publication Critical patent/JP3013631B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はメモリ共有方式のマルチ
プロセッサシステムに於けるキャッシュメモリ同期方法
に関する。
【0002】
【従来の技術】従来、図2に示すように、それぞれが固
有のキャッシュメモリC1〜Cnを有するプロセッサP
1〜Pnと、各プロセッサP1〜Pnによって共有され
る主記憶装置MとをバスBに接続したマルチプロセッサ
システムに於いては、キャッシュメモリC1〜Cnと主
記憶装置Mとの一致性を保証するため、例えば次のよう
にしている(キャッシュメモリの一致性について,浦城
恒雄,情報処理,Vo132,No1,P64〜P7
3)。
【0003】図3は従来方法を説明するための状態遷移
図であり、キャッシュメモリC1〜Cnの各ブロックの
状態遷移を示している。尚、同図に於いて実線の矢印は
プロセッサ動作を、破線の矢印はバス検出動作を示して
いる。
【0004】キャッシュメモリC1〜Cnの各ブロック
の状態は無効状態S0’,共有状態S1’,排他一致状
態S2’,排他不一致状態S3’の4つで表される。
【0005】無効状態S0’のブロックはその内容が主
記憶装置Mの内容とは一致しておらず、新しいブロック
を主記憶装置MからキャッシュメモリにC1〜Cn転送
する際、置き換えの対象となる。
【0006】共有状態S1’のブロックはその内容が主
記憶装置Mの内容と一致している。
【0007】排他一致状態S2’のブロックは1度だけ
その内容が更新されているが、主記憶装置Mの内容とは
一致している。
【0008】排他不一致状態S3’のブロックは2度以
上そのブロックが更新されており、主記憶装置Mの内容
とは一致していない。
【0009】プロセッサP1はライト時、ライト対象と
なるブロックがキャッシュメモリC1に存在し、その状
態が共有状態S1’の場合はキャッシュメモリC1に対
してライト動作を実行し、上記ブロックの状態を排他一
致S2’に遷移させると共に、バスBを介して主記憶装
置Mに対してもライト動作を行ない、キャッシュメモリ
C1の内容と主記憶装置Mの内容とを一致させる。同時
に、プロセッサP1はバスBに無効化要求を出力する。
【0010】バスB上に出力された無効化要求を検出し
た他のプロセッサP2〜Pnの内、自プロセッサのキャ
ッシュメモリC2〜Cnに上記ブロックが存在するプロ
セッサPjは、キャッシュメモリCj上の上記ブロック
の状態を無効状態S0’とする。
【0011】また、プロセッサP1はライト時、ライト
対象となるブロックがキャッシュメモリC1に存在し、
その状態が排他一致状態S2’或いは排他不一致状態S
3’の場合は、キャッシュメモリC1に対してのみライ
ト動作を行ない、上記ブロックの状態を排他不一致状態
S3’にすると共に、無効化要求をバスBに出力する。
この無効化要求を検出した他のプロセッサP2〜Pnは
前述したと同様の動作を行なう。
【0012】次に、ライトミスとなった場合の動作を説
明する。
【0013】プロセッサP1はライト時、キャッシュメ
モリC1にライト対象とするブロックが存在しない場
合、上記ブロックのリードを要求する変更リード要求
(ライト動作に対してキャッシュミスした時に発生する
変更意図をもったブロックリード要求)をバスBに出力
する。
【0014】バスB上に出力された変更リード要求を検
出した他のプロセッサP2〜Pnの内、上記ブロックが
自プロセッサのキャッシュメモリに存在するプロセッサ
Pjは、キャッシュメモリCj中に存在する上記ブロッ
クの状態に応じて以下の処理を行なう。
【0015】共有状態S1’の場合は、プロセッサPj
はキャッシュメモリCj中に存在する上記ブロックの状
態を無効状態S0’にする。
【0016】排他一致状態S2’の場合は、プロセッサ
PjはキャッシュメモリCj中に存在する上記ブロック
の状態を無効状態S0’にする。
【0017】排他不一致状態S3’の場合は、プロセッ
サPjはバス動作(変更リード要求によって要求された
ブロックを主記憶装置MからキャッシュメモリC1に転
送する動作)を中断させ、自プロセッサPjのキャッシ
ュメモリCj上に存在する上記ブロックを主記憶装置M
にライトバックした後、バス動作を再開させ、更に、上
記ブロックの状態を無効状態S0’にする。
【0018】また、変更リード要求をバスBに出力した
プロセッサP1は主記憶装置MからキャッシュメモリC
1へ変更リード要求によって要求したブロックが送られ
てくると、キャッシュメモリC1に対してライト動作を
行ない、上記ブロックの状態を排他不一致状態S3’と
する。
【0019】次にリードミスとなった場合の動作を説明
する。
【0020】プロセッサP1はリード時、キャッシュメ
モリC1にリード対象とするブロックが存在しない場
合、上記ブロックのリードを要求するリード要求(リー
ド動作に対してキャッシュミスした時に発生するブロッ
クリード要求)をバスBに出力する。
【0021】バスBに出力されたリード要求を検出した
他のプロセッサP2〜Pnの内、自プロセッサのキャッ
シュメモリに上記ブロックが存在するプロセッサPj
は、キャッシュメモリCj中に存在する上記ブロックの
状態に応じて以下の処理を行なう。
【0022】共有状態S1’の場合は、プロセッサPj
はキャッシュメモリCj中に存在する上記ブロックの状
態を共有状態S1’のままとする。
【0023】排他一致状態S2’の場合は、プロセッサ
PjはキャッシュメモリCj中に存在する上記ブロック
の状態を共有状態S1’にする。
【0024】排他不一致状態S3’の場合は、プロセッ
サPjはバス動作(リード要求によって要求されたブロ
ックをキャッシュメモリC1に転送する動作)を中断さ
せ、自プロセッサPj対応のキャッシュメモリCj上の
上記ブロックを主記憶装置Mにライトバックした後、バ
ス動作を再開させ、更に、上記ブロックの状態を共有状
態S1’にする。
【0025】
【発明が解決しようとする課題】上述したように、従来
方法に於いては、或るプロセッサが共有状態のブロック
に対してライト動作を行なった場合、他のプロセッサは
上記ブロックの状態を全て無効状態にする。従って、キ
ャッシュメモリの実装容量に対する有効なメモリの割合
が低くなり、キャッシュメモリのヒット率が低下すると
いう問題点があった。
【0026】本発明の目的は主記憶装置を共有したマル
チプロセッサシステムに於けるキャッシュメモリのヒッ
ト率を向上させることができるキャッシュメモリ同期
を提供することにある。
【0027】
【課題を解決するための手段】本発明は上記目的を達成
するため、複数のプロセッサと、前記複数のプロセッサ
のキャッシュメモリと、前記複数のプロセッサによっ
て共有される主記憶装置とを備えたマルチプロセッサシ
ステムに於いて、特定プロセッサが出力したブロックの
無効化要求に応答して他のプロセッサは自プロセッサ対
応のキャッシュメモリ中の前記ブロックの状態を一時無
効状態にし、前記複数のプロセッサ毎のキャッシュメモ
リは、それぞれ自キャッシュメモリ中の一時無効状態に
なっているブロックと同じブロックに対する他のキャッ
シュメモリ対応のプロセッサが出力したリード要求に応
答して前記主記憶装置からリード要求の要求元に転送さ
れるブロックを取り込み、前記ブロックの状態を共有状
態にし、前記複数のプロセッサは、それぞれ自プロセッ
サ対応のキャッシュメモリ中のブロックの状態を一時無
効状態にした後、一定時間連続して前記ブロックの状態
が一時無効状態に保たれている場合、前記ブロックの状
態を無効状態にする。
【0028】
【作用】或るプロセッサが或るブロックの無効化要求を
出力すると、他のプロセッサは自プロセッサ対応のキャ
ッシュメモリ中の上記ブロックの状態を一時無効状態に
する。
【0029】自キャッシュメモリ中の一時無効状態にな
っているブロックと同一のブロックに対するリード要求
が他キャッシュメモリ対応のプロセッサから出力され、
主記憶装置から上記ブロックが読み出されると、それを
自キャッシュメモリに取り込み、上記ブロックの状態を
共有状態にする。
【0030】また、各プロセッサは自プロセッサ対応の
キャッシュメモリ中のブロックの状態を一時無効状態に
した後、一定時間連続してそのブロックの状態が一時無
効状態に保たれている場合、そのブロックの状態を無効
状態にする。
【0031】
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。
【0032】図1は図2に示したマルチプロセッサシス
テムに於けるキャッシュメモリC1〜Cnのブロックの
状態遷移を示す状態遷移図である。
【0033】本実施例に於いては、キャッシュメモリC
1〜Cnのブロックの状態を無効状態S0,共有状態S
1,排他一致状態S2,排他不一致状態S3,一時無効
状態S4の5つの状態で表す。
【0034】無効状態S0,共有状態S1,排他一致状
態S2,排他不一致状態S3のブロックはそれぞれ図3
に示した従来方法の無効状態S0’,共有状態S1’,
排他一致状態S2’,排他不一致状態S3’のブロック
と同様の状態である。
【0035】また、一時無効状態S4のブロックはその
内容が主記憶装置の内容とは一致していないが、新しい
ブロックを主記憶装置から転送する際、置き換えの対象
とならないブロックである。
【0036】プロセッサP1はライト時、ライト対象と
するブロックが自プロセッサP1のキャッシュメモリC
1中に存在し、且つその状態が共有状態S1の場合はキ
ャッシュメモリC1に対してライト動作を実行し、上記
ブロックの状態を排他一致状態S2に遷移させると共
に、バスBを介して主記憶装置Mに対してもライト動作
を行ない、キャッシュメモリC1の内容と主記憶装置M
の内容とを一致させる。同時に、プロセッサP1はバス
Bに無効化要求を出力する。
【0037】バスB上に出力された無効化要求を検出し
た他のプロセッサP2〜Pnの内、自プロセッサのキャ
ッシュメモリC2〜Cnに上記ブロックが存在するプロ
セッサPjは、そのブロックの状態を一時無効状態S4
にする。
【0038】また、プロセッサP1はライト時、ライト
対象となるブロックがキャッシュメモリC1上に存在
し、その状態が排他一致状態S2,排他不一致状態S3
の場合は、キャッシュメモリC1に対してのみライト動
作を行ない、上記ブロックの状態を排他不一致状態S3
にすると共に、無効化要求をバスBに出力する。この無
効化要求を検出した他のプロセッサP2〜Pnは前述し
たと同様の動作を行なう。
【0039】次に、ライトミスとなった場合の動作を説
明する。
【0040】プロセッサP1はライト時、キャッシュメ
モリC1にライト対象とするブロックが存在しない場
合、上記ブロックのリードを要求する変更リード要求を
バスBに出力する。
【0041】バスB上に出力された変更リード要求を検
出した他のプロセッサP2〜Pnの内、上記ブロックが
自プロセッサのキャッシュメモリに存在するプロセッサ
Pjは、キャッシュメモリCj中に存在する上記ブロッ
クの状態に応じて以下の処理を行なう。
【0042】共有状態S1の場合は、プロセッサPjは
キャッシュメモリCj中の上記ブロックの状態を一時無
効状態S4にする。
【0043】排他一致状態S2の場合は、プロセッサP
jはキャッシュメモリCj中の上記ブロックの状態を一
時無効状態S4にする。
【0044】排他不一致状態S3の場合は、プロセッサ
Pjは主記憶装置MからキャッシュメモリC1へ上記変
更リード要求によって要求されたブロックを転送するた
めのバス動作を中断させ、キャッシュメモリCj中の上
記ブロックの内容を主記憶装置Mにライトバックした
後、バス動作を再開させ、上記ブロックの状態を一時無
効状態S4とする。
【0045】また、変更リード要求をバスBに出力した
プロセッサP1は、主記憶装置Mからキャッシュメモリ
C1にブロックが転送されてくると、キャッシュメモリ
C1に対してライト動作を行ない、上記ブロックの状態
を排他不一致状態S3とする。
【0046】次にリードミスとなった場合の動作を説明
する。
【0047】プロセッサP1はリード時、キャッシュメ
モリC1にリード対象とするブロックが存在しない場
合、上記ブロックのリードを要求するリード要求をバス
Bに出力する。
【0048】バスBに出力されたリード要求を検出した
他のプロセッサP2〜Pnの内、自プロセッサのキャッ
シュメモリに上記ブロックが存在するプロセッサPj
は、キャッシュメモリCj中に存在する上記ブロックの
状態に応じて以下の処理を行なう。
【0049】共有状態S1の場合は、プロセッサPjは
キャッシュメモリCj中に存在する上記ブロックの状態
を共有状態S1のままとする。
【0050】排他一致状態S2の場合は、プロセッサP
jはキャッシュメモリCj中に存在する上記ブロックの
状態を共有状態S1にする。
【0051】排他不一致状態S3の場合は、プロセッサ
Pjは主記憶装置MからキャッシュメモリC1へ上記リ
ード要求によって要求されたブロックを転送するための
バス動作を中断させ、自プロセッサPj対応のキャッシ
ュメモリCj上の上記ブロックを主記憶装置Mにライト
バックした後、バス動作を再開させ、更に、上記ブロッ
クの状態を共有状態S1にする。
【0052】一時無効状態S4の場合は、バスB上を転
送される上記ブロックの内容がキャッシュメモリCjに
コピーバックされた後、上記ブロックの状態を共有状態
S1にする。
【0053】最後にキャッシュメモリのブロックの無効
化動作について説明する。
【0054】プロセッサPjはキャッシュメモリCj中
のあるブロックの状態を一時無効状態S4にすると、タ
イマを始動する。そして、タイマによる計測時間が予め
定められた時間Tとなることにより、上記ブロックの状
態を無効状態S0にする。
【0055】
【発明の効果】以上説明したように、本発明は、無効化
が要求されたブロックの状態を一時無効状態にし、一時
無効状態にしてから一定時間が経過する前に他キャッシ
ュメモリに対応するプロセッサが上記ブロックに対する
リード要求を出力した場合、主記憶装置から読み出され
る上記ブロックを自キャッシュメモリに取り込み、上記
ブロックの状態を共有状態にするようにしたものである
ので、キャッシュメモリのヒット率を向上させることが
できる効果がある。
【0056】また、本発明は、ブロックの状態を一時無
効状態にした後、一定時間連続してそのブロックの状態
が一時無効状態に保たれている場合、そのブロックの状
態を、新たなブロックを主記憶装置からキャッシュメモ
リに転送する際、置き換えの対象となる無効状態にする
ものであるので、置き換えの対象とならない一時無効状
態のブロックによってキャッシュメモリの利用効率が低
下することを防止できる効果がある。
【図面の簡単な説明】
【図1】本発明の実施例の状態遷移図である。
【図2】本発明を適用するシステムのブロック図であ
る。
【図3】従来の技術を説明するための状態遷移図であ
る。
【符号の説明】
P1〜Pn…プロセッサ C1〜Cn…キャッシュメモリ B…バス M…主記憶装置 S0,S0’…無効状態 S1,S1’…共有状態 S2,S2’…排他一致状態 S3,S3’…排他不一致状態 S4…一時無効状態
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−67242(JP,A) 濱口一正、柴山茂樹,”蘇生型マルチ キャッシュ・コンシステンシ・プロトコ ルの提案とその評価”,情報処理学会研 究報告,社団法人情報処理学会,1990年 7月18日,第90巻,第60号,(90−AR C−83),P.115−120 (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 - 12/12

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサと、前記複数のプロセ
    ッサのキャッシュメモリと、前記複数のプロセッサに
    よって共有される主記憶装置とを備えたマルチプロセッ
    サシステムに於いて、 特定プロセッサが出力したブロックの無効化要求に応答
    して他のプロセッサは自プロセッサ対応のキャッシュメ
    モリ中の前記ブロックの状態を一時無効状態にし、 前記複数のプロセッサ毎のキャッシュメモリは、それぞ
    自キャッシュメモリ中の一時無効状態になっているブ
    ロックと同じブロックに対する他のキャッシュメモリ対
    応のプロセッサが出力したリード要求に応答して前記主
    記憶装置からリード要求の要求元に転送されるブロック
    を取り込み、前記ブロックの状態を共有状態にし、 前記複数のプロセッサは、それぞれ自プロセッサ対応の
    キャッシュメモリ中のブロックの状態を一時無効状態に
    した後、一定時間連続して前記ブロックの状態が一時無
    効状態に保たれている場合、前記ブロックの状態を無効
    状態にすることを特徴とするキャッシュメモリ同期
  2. 【請求項2】 前記一時無効状態のブロックは新たなブ
    ロックを前記主記憶装置から前記キャッシュメモリへ転
    送する際、置き換えの対象とならないことを特徴とする
    請求項1記載のキャッシュメモリ同期方法
  3. 【請求項3】 前記無効状態のブロックは新たなブロッ
    クを前記主記憶装置から前記キャッシュメモリへ転送す
    る際、置き換えの対象となることを特徴とする請求項1
    記載のキャッシュメモリ同期方法
JP4282373A 1992-09-28 1992-09-28 キャッシュメモリ同期方法 Expired - Lifetime JP3013631B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4282373A JP3013631B2 (ja) 1992-09-28 1992-09-28 キャッシュメモリ同期方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4282373A JP3013631B2 (ja) 1992-09-28 1992-09-28 キャッシュメモリ同期方法

Publications (2)

Publication Number Publication Date
JPH06110785A JPH06110785A (ja) 1994-04-22
JP3013631B2 true JP3013631B2 (ja) 2000-02-28

Family

ID=17651562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4282373A Expired - Lifetime JP3013631B2 (ja) 1992-09-28 1992-09-28 キャッシュメモリ同期方法

Country Status (1)

Country Link
JP (1) JP3013631B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263407B1 (en) 1998-02-17 2001-07-17 International Business Machines Corporation Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode
US6415358B1 (en) 1998-02-17 2002-07-02 International Business Machines Corporation Cache coherency protocol having an imprecise hovering (H) state for instructions and data
US6272603B1 (en) 1998-02-17 2001-08-07 International Business Machines Corporation Cache coherency protocol having hovering (H), recent (R), and tagged (T) states
US6292872B1 (en) 1998-02-17 2001-09-18 International Business Machines Corporation Cache coherency protocol having hovering (H) and recent (R) states
US6725337B1 (en) * 2001-05-16 2004-04-20 Advanced Micro Devices, Inc. Method and system for speculatively invalidating lines in a cache
US9727468B2 (en) * 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
濱口一正、柴山茂樹,"蘇生型マルチキャッシュ・コンシステンシ・プロトコルの提案とその評価",情報処理学会研究報告,社団法人情報処理学会,1990年7月18日,第90巻,第60号,(90−ARC−83),P.115−120

Also Published As

Publication number Publication date
JPH06110785A (ja) 1994-04-22

Similar Documents

Publication Publication Date Title
JP5153172B2 (ja) アクセラレータ用低コストのキャッシュ一貫性を維持する方法及びシステム
JP3289661B2 (ja) キャッシュメモリシステム
US6418515B1 (en) Cache flush unit
EP0301354A2 (en) Cache consistency protocol for multiprocessor system
US20060236039A1 (en) Method and apparatus for synchronizing shared data between components in a group
JPH1078918A (ja) チェックポイント処理加速装置および同装置を適用した計算機システム
US7089362B2 (en) Cache memory eviction policy for combining write transactions
JPH10154100A (ja) 情報処理システム及び装置及びその制御方法
US8209490B2 (en) Protocol for maintaining cache coherency in a CMP
US5611070A (en) Methods and apparatus for performing a write/load cache protocol
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US5590310A (en) Method and structure for data integrity in a multiple level cache system
US7325102B1 (en) Mechanism and method for cache snoop filtering
JPH01269142A (ja) 計算機システム
JP3013631B2 (ja) キャッシュメモリ同期方法
JPH0532776B2 (ja)
JP3083786B2 (ja) メモリ更新履歴保存装置およびメモリ更新履歴保存方法
JP3187446B2 (ja) キャッシュメモリ制御装置
TW526424B (en) Symmetric multiprocessor address bus protocol with intra-cache line access information
US20040030950A1 (en) Apparatus for imprecisely tracking cache line inclusivity of a higher level cache
JPH0744459A (ja) キャッシュ制御方法およびキャッシュ制御装置
JP3081635B2 (ja) キャッシュメモリの無効化処理装置および無効化制御方法
JP2707958B2 (ja) キャッシュ一致処理制御装置
US6862665B2 (en) Method, system, and apparatus for space efficient cache coherency
JPH03172943A (ja) キャッシュメモリ制御方式