JPH06110785A - キャッシュメモリ同期方式 - Google Patents

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

Info

Publication number
JPH06110785A
JPH06110785A JP4282373A JP28237392A JPH06110785A JP H06110785 A JPH06110785 A JP H06110785A JP 4282373 A JP4282373 A JP 4282373A JP 28237392 A JP28237392 A JP 28237392A JP H06110785 A JPH06110785 A JP H06110785A
Authority
JP
Japan
Prior art keywords
block
state
cache memory
processor
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
JP4282373A
Other languages
English (en)
Other versions
JP3013631B2 (ja
Inventor
Shinji Ago
真治 吾郷
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)

Abstract

(57)【要約】 【目的】 各プロセッサがキャッシュメモリを有し、主
記憶装置を共有するマルチプロセッサシステムに於い
て、キャッシュメモリのヒット率を向上させる。 【構成】 或るプロセッサが或るブロックの無効化要求
を出力すると、他のプロセッサは自プロセッサ対応のキ
ャッシュメモリ中の上記ブロックの状態を一時無効状態
S4にする。自キャッシュメモリ中の一時無効状態S4
にあるブロックと同じブロックに対するリード要求が他
のキャッシュメモリ対応のプロセッサから出力され、上
記ブロックが主記憶装置から出力されると、そのブロッ
クを自キャッシュメモリに取り込み、その状態を共有状
態S1にする。また、各プロセッサは自プロセッサ対応
のキャッシュメモリ中のブロックを一時無効状態S4に
した後、一定時間Tが経過することによりそのブロック
の状態を無効状態S0にする。

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…一時無効状態

Claims (3)

    【特許請求の範囲】
  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 true JPH06110785A (ja) 1994-04-22
JP3013631B2 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)

Cited By (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
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
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
JP2004529435A (ja) * 2001-05-16 2004-09-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュ中のラインを投機的に無効にする方法とシステム
JP2008512772A (ja) * 2004-09-09 2008-04-24 インテル コーポレイション キャッシュ競合の解決

Cited By (7)

* 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
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
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
JP2004529435A (ja) * 2001-05-16 2004-09-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュ中のラインを投機的に無効にする方法とシステム
JP2008512772A (ja) * 2004-09-09 2008-04-24 インテル コーポレイション キャッシュ競合の解決
US10078592B2 (en) 2004-09-09 2018-09-18 Intel Corporation Resolving multi-core shared cache access conflicts

Also Published As

Publication number Publication date
JP3013631B2 (ja) 2000-02-28

Similar Documents

Publication Publication Date Title
US5659710A (en) Cache coherency method and system employing serially encoded snoop responses
US6199144B1 (en) Method and apparatus for transferring data in a computer system
CN101178692B (zh) 用于提供事务处理存储器的高速缓冲存储器系统和方法
US5249284A (en) Method and system for maintaining data coherency between main and cache memories
US7003635B2 (en) Generalized active inheritance consistency mechanism having linked writes
JPH0247756A (ja) 多重プロセツサ・システム用書込み共用キヤツシユ回路
JPS58212694A (ja) メモリシステム
JP2012181860A (ja) アクセラレータ用低コストのキャッシュ一貫性を維持するシステム
JPH06243035A (ja) コンピュータ・システムのためのクラスタ・アーキテクチャにおける一般化共用記憶
JPH037978B2 (ja)
US6898676B2 (en) Computer system supporting both dirty-shared and non-dirty-shared data processing entities
US7051163B2 (en) Directory structure permitting efficient write-backs in a shared memory computer system
US20060236039A1 (en) Method and apparatus for synchronizing shared data between components in a group
JPH01269142A (ja) 計算機システム
EP0470739A1 (en) Method for managing a cache memory system
JPS60124754A (ja) バッファ記憶制御装置
US20020129210A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
JP2001222466A (ja) マルチプロセッサ・システムと共有メモリ制御システム及び方法並びに記録媒体
JPH06110785A (ja) キャッシュメモリ同期方式
US6021466A (en) Transferring data between caches in a multiple processor environment
JPH03163640A (ja) マルチプロセッサシステムおよびそれに用いるキャッシュメモリ
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system
JPH0532776B2 (ja)
JP3081635B2 (ja) キャッシュメモリの無効化処理装置および無効化制御方法
JPH0744459A (ja) キャッシュ制御方法およびキャッシュ制御装置