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

キャッシュシステム

Info

Publication number
JPH11102320A
JPH11102320A JP9262990A JP26299097A JPH11102320A JP H11102320 A JPH11102320 A JP H11102320A JP 9262990 A JP9262990 A JP 9262990A JP 26299097 A JP26299097 A JP 26299097A JP H11102320 A JPH11102320 A JP H11102320A
Authority
JP
Japan
Prior art keywords
cache
state
replacement
cache system
request
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
JP9262990A
Other languages
English (en)
Inventor
Seiichi Hiraoka
精一 平岡
Mamoru Kurata
守 倉田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP9262990A priority Critical patent/JPH11102320A/ja
Publication of JPH11102320A publication Critical patent/JPH11102320A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 N次キャッシュの任意のラインにおいて、予
め定義した条件を満たした場合にそのラインをN−1次
キャッシュからのキャッシュミスによるリプレース要求
よりも先行してリプレースする。 【解決手段】 調査したステート情報を保持する手段
と、先行してリプレースするための基準を保持する手段
と、保持したステート情報と先行リプレースするための
基準を比較する手段を具備し、N次キャッシュの任意の
ラインにおいて、予め定義した条件を満たした場合にそ
のラインをN−1次キャッシュからのキャッシュミスに
よるリプレース要求よりも先行してリプレースを行うよ
うに構成した。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明はマルチプロセッサ
システムにおけるキャッシュメモリ制御の改良に関する
ものである。
【0002】
【従来の技術】今日では、計算機システムにおける性能
向上を得るために、プロセッサを複数個備えて並列処理
を行なうマルチプロセッサシステムが使われるようにな
ってきている。マルチプロセッサシステムの中でも、複
数のプロセッサがメモリを共有し、この共有メモリによ
ってジョブのスケジューリングやデータの共有を行なう
共有メモリ型マルチプロセッサシステム(以下、単にマ
ルチプロセッサと言う)が、従来のマルチプログラミン
グにおけるプログラミング・モデルとの親和性の高さか
ら広く受け入れられている。
【0003】この型のマルチプロセッサでは、共有のメ
モリに対するアクセスがシステムのボトルネックになり
易い。通常、このボトルネックを解消するために、共有
メモリのコピーをプロセッサ毎にキャッシュメモリに置
き、共有メモリへのアクセスをキャッシュメモリへのア
クセスで代替して、実際の共有メモリへのアクセスを低
減する方法がとられる。この時、複数のプロセッサが同
一のデータブロックのコピーを各々のキャッシュメモリ
に置くため、全部のプロセッサが共有メモリを基準とし
て矛盾のないメモリ管理をしなければならない。これは
マルチプロセッサにおけるキャッシュのコンシステンシ
問題と呼ばれ、アーチボルト、バエル(Archibaid, Bae
r)他の論文「キャッシュ・コンシステンシ・プロトコ
ル:マルチプロセッサ・シミュレーションを使った評
価」(” Cache Consistency Protocols:Evaluation U
sing a Multipurocessor Simulation”,ACM Transacti
ons on Computer Systems. Vol4,No.4,Nov.1986.
Pages273−298)に各種の解決案が提案、記載されてい
る。
【0004】マルチプロセッサにおけるキャッシュのコ
ンシステンシ問題を解決、制御する方法の1つとして、
MESIプロトコルと呼ばれる方式がある。このプロトコル
では、「Pentiumアーキテクチャの徹底理解」(CQ出版
社インターフェース‘9311月号別冊付録,Pages20−2
1)に記載されているように以下に示す4つのステート
がキャッシュライン単位で設定される。データキャッシ
ュの各セットのタグエントリには、4つのステートを表
すために2ビットのステートビットを備えている。 M(Modified):変更状態を示す。Mステートのラインの
データは、そのキャッシュにのみ含まれ、メインメモリ
には含まれない。このステートのラインに対するリード
/ライトはメインメモリへのアクセスを発生させない。 E(Exclusive):排他状態を示す。Eステートのライ
ンのデータは、システム内でそのキャッシュおよびメイ
ンメモリにのみ含まれ、他のプロセッサのキャッシュに
は含まれない。このステートのラインに対するリード/
ライトは、メインメモリへのアクセスを発生させない。
Eステートのラインへライトを行なうと、そのラインは
Mステートに変更される。
【0005】S(Shared):共有状態を示す。Sステー
トのラインのデータは、そのキャッシュとメインメモリ
には必ず含まれているが、さらに他のプロッセッサのキ
ャッシュにも含まれている可能性がある。このステート
のラインからのリードは、メインメモリへのアクセスを
発生させない。一方、このステートのラインへのライト
は、キャッシュとメインメモリをともに更新する。Sス
テートのブロックへのライトによって、他のプロッセッ
サのキャッシュの対応するラインがインバリデートされ
ることがある。 I(Invalid):無効状態を示す。キャッシュ内のIス
テートのラインは、有効なデータが含まれていない。ラ
インが無効化されるとこのステートになる。このステー
トのラインに対してリード/ライトを行なうとキャッシ
ュミスになり、メインメモリへのアクセスが発生する。
Iステートのラインに対してリードを行なうときに、そ
のラインに対してキャッシュがイネーブルであれば、メ
インメモリからの1ライン分がそのラインに取り込まれ
る。
【0006】図17にMESIプロトコルを用いたマルチプロ
セッサシステムの一構成例を示す。100aおよび100bはプ
ロッセッサであり、それぞれMESIプロトコルを用いたキ
ャッシュ(以下単にキャッシュと言う)101a、101bを内
蔵している。また、102は主記憶であり、103はプロセッ
サ100a、100b、主記憶102をつなぐシステムバスであ
る。
【0007】このような構成によってシステムを実現
し、プロセッサが他のプロセッサや主記憶に対してリー
ド/ライト要求した際には、キャッシュのコンシステン
シを保つために、データ転送の他に各ャッシュのステー
トを遷移させる必要がある。
【0008】表1はプロセッサからリード/ライトの要
求があった際のキャッシュのステートの遷移例を示す。
表1から自明のように、MESIプロトコルを用いたプロセ
ッサシステムでは、要求内容、自プロセッサの現在のキ
ャッシュステート、他プロセッサの現在のキャッシュス
テートの状態によって、自プロセッサのキャッシュステ
ートおよび他プロセッサのキャッシュステートを変更し
なくてはならない場合がある。すなわち、各プロセッサ
は、システムバス上に単にリード/ライト要求の発行お
よびそれに伴うデータ転送以外に自キャッシュおよび他
キャッシュのステート変更をするための動作が必要であ
る。
【0009】
【表1】
【0010】図18 に任意のプロセッサがリード/ライ
ト要求を発行した際に、各プロセッサがキャッシュのス
テートを変更するために必要となる動作の一例を示す。
本例では、図17 によるマルチプロセッサのシステム構
成において、プロセッサ100aがリードまたはライト要求
を発行した際に自プロセッサ100aおよび他プロセッサ10
0bが行なう動作を示している。図18 内において、「該
当キャッシュのステートを調査し、他のプロセッサに結
果を知らせる」という手段は一般にスヌープ方式と呼ば
れ、この方式の実現方法としては、該キャッシュのライ
ンがSまたはEステートのときにはHIT#、該キャッ
シュのラインがMステートのときにはHITM#信号と呼ば
れる信号線を用いて知らせる例が「Pentiumファミリー
ユーザーズマニュアル 中巻 82496/82497キャッシュコ
ントローラと82491/82492キャッシュSRAMデータブ
ック」(インテルジャパン株式会社 資料番号:241429J
−003 Pages1−22,5−104,5−105)に記載されてい
る。
【0011】以上のように、MESIプロトコルを用い、図
17 に示すマルチプロセッサシステムの構成において、
各プロセッサ内のキャッシュのコンシステンシを保つた
めには、各キャッシュのステートは、表1に基づいて遷
移しなければならず、また図18 に基づいてプロセッサ
間の連絡をし、動作しなければならない。
【0012】図19 は階層構造化したマルチプロセッサ
の構成例である。図19 において、300a、300b、300cお
よび300dはプロセッサ、301a、301b、301cおよび301dは
それぞれのプロセッサに内蔵しているMESIプロトコルを
用いた1次キャッシュである。304a、304bはバスブリッ
ジであり、それぞれのバスブリッジは2次キャッシュ30
5aおよび305bを内蔵している。302は主記憶である。ま
た、303aはプロセッサ300a、300bおよびバスブリッジ30
4aをつなぐバスであり、303bはプロセッサ300c、300dお
よびバスブリッジ304bをつなぐバスである。さらに103
はバスブリッジ304a、304bおよび主記憶302をつなぐバ
スである。
【0013】このような構成の場合、1次キャッシュ中
の全てのデータを、2次キャッシュで常に保持している
多重レベル包含性を満たした方がよいことが「コンピュ
ータ・アーキテクチャ 設計・実現・評価の定量的アプ
ローチ」( David A.Patterson, John L. Hennessy
著 日経BP社 1992年12月25日 1版1刷,Page475)に記
述されている。また、主記憶が2次キャッシュを包含し
ていることは周知のことであり、1次キャッシュと2次
キャッシュの関係はそのまま一般的にN−1次キャッシ
ュとN次キャッシュの関係に置き換えられる。このよう
に、N−1次キャッシュ中の全てのデータを、N次キャ
ッシュで常に保持している多重レベル包含性を満たして
いる計算機の製品例としては、 三菱電機(株)”apric
ot FT8000”があることが「日経エレクトロニクス 1996
年6月17日号」( Page213−216)に記載されている。
【0014】表2は上記の包含関係を考慮し、N−1
次、N次キャッシュのMESIプロトコルを考えた場合、N
−1次キャッシュとN次キャッシュの取り得るステート
の関係を示している。表2に示す通り、N次キャッシュ
にあってN−1次キャッシュに存在しないキャッシュラ
インは許すが、N−1次キャッシュにあってN次キャッ
シュにない状態は許していない。
【0015】
【表2】
【0016】一方、N−1次、N次の各キャッシュにおい
てキャッシュミスが発生した時に、どのキャッシュライ
ンをリプレースするか決定しなければならない。通常キ
ャッシュラインのリプレースは、そのキャッシュの内部
の状態からリプレースする候補を決定する。キャッシュ
ラインのリプレースには以下の2つの手法があることが
「コンピュータの構成と設計 ハードウエアとソフトウ
エアのインターフェース」( David A.Patterson, Jo
hn L.Hennessy著 日経BP社 1996年4月19日初版1刷,
Page463)に記載されている。 ランダム(random)法:候補の中からランダムに対象を
選択する。 LRU(least recently used)法:最も長い期間にわ
たって使用されていなかったラインを選択する。
【0017】また、多階層のキャッシュシステムにおい
て的確なキャッシュラインのリプレースを行う手法とし
て、特願平8−256490がある。この手法は、MESI
制御方式によりN次キャッシュがN−1次キャッシュを
包含するキャッシュシステムにおいて、N次キャッシュ
のキャッシュラインのリプレースが必要になったとき、
N次キャッシュのキャッシュラインのステートを調査す
るとともに、専用回線を持たずにN−1次キャッシュの
キャッシュラインを調査し、N次キャッシュおよびN−
1次キャッシュにおいて効率的なキャッシュラインをリ
プレース対象として選択するものである。
【0018】キャッシュラインのリプレースとは、リプ
レース対象となるキャッシュブロックを無効化し、新し
いブロックをキャッシュに登録することである。この
際、包含関係を保つためにN−1次キャッシュに対して
も無効化要求がでる。リプレース対象のステートがMで
ある場合には、システムとしてのデータの正当性を保つ
ために無効化に先立ち該当するウエイに格納されている
データをN+1次キャッシュまたは主記憶に対して書き戻
す(ライトバック)事が必要である。
【0019】N次キャッシュのステートがMの場合、N
−1次キャッシュにもステートMのブロックが存在する
可能性があるので、N−1次キャッシュのスヌープ結果
を確認し、Mの場合はN−1次キャッシュのライトバッ
クデータをN次キャッシュからのライトバックデータと
してN+1次キャッシュまたは主記憶に対して書き戻す。
スヌープ結果がM以外の場合はN−1次キャッシュのラ
イトバックは発生しないので、スヌープ結果がわかった
時点で、N次キャッシュの内容をライトバックする。N
次キャッシュのステートがEまたはSの場合はN−1次
キャッシュにはMの状態は存在しないので、N−1次キ
ャッシュの状態を確認せずにN次キャッシュのステート
をIにすることで無効化が完了する。
【0020】
【発明が解決しようとする課題】従来のキャッシュシス
テムは以上述べたように構成されているので、リプレー
ス対象となるウエイのステートがMの場合、無効化に伴
うライトバックの処理に時間が必要であり、キャッシュ
ミスのペナルティを増加させてしまうという問題点があ
った。
【0021】この発明は、上記のような問題点を解消す
るためになされたもので、N次キャッシュの任意のライ
ンにおいて、予め定義した条件を満たした場合にそのラ
インをN−1次キャッシュからのキャッシュミスによる
リプレース要求よりも先行してリプレースすることを目
的とする。
【0022】
【課題を解決するための手段】この発明に係るキャッシ
ュシステムは、MESIプロトコルにより制御され、N
次キャッシュシステムとそれに包含されるN−1次キャ
ッシュシステムからなり、上記N次キャッシュシステム
上のキャッシュラインの各ウェイのステートを調べる第
一の調査手段と上記N次キャッシュシステム上のキャッ
シュラインの各ウェイに格納されたデータのアドレスの
上記N−1次キャッシュシステムにおけるステートを調
査する第二の調査手段とを有するキャツシュシステムに
おいて、調査したステート情報を保持する手段、先行リ
プレース基準を保持する手段、上記ステート情報と上記
リプレース基準とからリプレース対象を決定する手段を
備え、予め設定した条件に一致するキャッシュラインの
ウェイに格納されたデータをN−1次キャッシュシステ
ムからのキャッシュミスによるリプレース要求が発生す
る前に先行してリプレースするするものである。
【0023】また、上記リプレース基準は、N次キャッ
シュシステムの該当するキャッシュラインの全てのウェ
イがステートMのものである。
【0024】さらに、上記リプレース基準は、N次キャ
ッシュシステムの該当するキャッシュラインの全てのウ
ェイがステートMであり、かつN−1次キャッシュシス
テムの該当するキャッシュラインのウェイがステートI
のものである。
【0025】また、上記リプレース基準は、N次キャッ
シュシステムの該当するキャッシュラインの全てのウェ
イがステートMであり、かつN−1次キャッシュシステ
ムの該当するキャッシュラインのウェイがステートE又
はS又はIのものである。
【0026】さらにまた、上記リプレース基準は、N次
キャッシュシステムの該当するキャッシュラインの全て
のウェイがステートMであり、かつN−1次キャッシュ
システムの該当するキャッシュラインがステートM以外
の同一ステートのウェイを有するときはLRU制御に従
いいずれかのウェイを選択するものである。
【0027】また、上記リプレース基準は、N次キャッ
シュシステムの該当するキャッシュラインの全てのウェ
イがステートMであり、かつN−1次キャッシュシステ
ムの該当するキャッシュラインのウェイが条件を満たさ
ないときはLRU制御に従いいずれかのウェイを選択す
るものである。
【0028】さらに、上記リプレースは、キャッシュラ
インのウェイに格納されたデータを無効化するものであ
る。
【0029】また、上記リプレースは、キャッシュライ
ンのウェイに格納されたデータをライトバックするもの
である。
【0030】さらにまた、バスの状態を監視するバス監
視手段と先行してリプレースする要求を保持する先行リ
プレース要求保持手段を備え、バスがアイドル状態又は
バストラフィックが低負荷状態のとき先行リプレース要
求を発行するものである。
【0031】また、バス上に発行されているトランザク
ション数が予め設定した基準値以下のとき先行リプレー
ス要求を発行するものである。
【0032】さらに、N−1次キャッシュシステム及び
N次キャッシュシステムがスヌープ中でないとき先行リ
プレース要求を発行するものである。
【0033】
【発明の実施の形態】
実施の形態1.図1はこの発明の一実施の形態を示すキ
ャッシュシステムの構成図であり、図において1a、1bは
MESIプロトコルにより制御されるL1キャッシュシステ
ム、2はMESIプロトコルにより制御されL1キャッシュ
システム1a、1bと包含関係にある4ウエイセットアソシ
アティブ構造を持ったL2キャッシュシステム、3は主
記憶、4はL1キャッシュシステム1a、1bとL2キャッ
シュシステム2をつなぐレベル1のバス、5はL2キャッ
シュシステム2と主記憶3をつなぐレベル2のバスであ
る。レベル1のバス4、レベル2のバス5はバス上でスヌ
ープ形式によるキャッシュコヒーレンシ制御を行う。
【0034】図2はこの発明の実施例1におけるL2キャ
ッシュシステム2の内部の構造図であり、図において110
1 はL2キャッシュ、1102 はL2キャッシュにデータ
の読み書きやキャッシュラインの状態を示すステートの
変更を行ったりL2キャッシュ1101 のキャッシュライ
ンの空きやステートの状態を調べるL2キャッシュアク
セス手段、1103 は既存の命令を使ってL1キャッシュ
システム1a,1b のステートを調べるためのL1ステート
調査リクエスト発行手段でありこの命令によりL1キャ
ッシュシステム1aまたは1b のキャッシュラインのステ
ートがリードするためMのときステートがSに変わる。1
104 は最も長い期間にわたって使用されなかったキャッ
シュラインを示すLRU、1105 はLRU1104 の情報を
参照するためにアクセス制御するLRU参照手段、1106
はL2キャッシュ1101 のステートの状態やL1キャ
ッシュシステム1a,1b のステートを調べた結果からリプ
レース候補のキャッシュラインを判定するリプレース候
補判定手段、1107 はキャッシュラインのリプレース処
理を実行するリプレース処理手段である。
【0035】1108 はレベル1のバス上のリクエストに
対するスヌープの結果を示すHIT#信号、1109 はレ
ベル1のバス上のリクエストに対するスヌープの結果を
示すHITM#信号である。スヌープの結果はHIT#信号
がアサートされHITM#信号がアサートされなかった場
合、L1キャッシュシステム1a または1b のキャッシュ
ラインの少なくとも一方がSまたはEステートであるこ
とを示しこれをヒットと呼ぶ。HITM#信号がアサートさ
れHIT#信号がアサートされなかった場合は、L1キ
ャッシュシステム1a または1b のキャッシュラインの少
なくとも一方がMステートであることを示しこれをヒッ
トエムと呼ぶ。HIT#信号及びHITM#信号がともにア
サートされなかった場合は、L1キャッシュシステムの
キャッシュのラインがIステートであることすなわちス
ヌープの結果がミスであることを示す。HIT#信号及
びHITM#信号がともにアサートの場合は、スヌープ結果
の調査中であることを示す。1110はL2キャッシュ1101
のステートの状態やL1キャッシュシステム1a,1b の
ステートを調べた結果を保持するステート保持手段、11
11は保持したステート情報1110から先行リプレース対象
を決定する先行リプレース決定回路である。
【0036】次にこの発明の一実施例におけるキャッシ
ュミスに伴うリプレース動作を図3のフローチャートを
用いて説明する。L2キャッシュ1101の状態を示すステ
ートがEまたはSであり、L1キャッシュ1a、1bのステ
ートがIのキャッシュラインをリプレースするキャッシ
ュラインの候補とする手順について各ステップごとに説
明する。 S1: L2キャッシュ1101 にないアドレスのデータの格
納要求が起こる。 S2: L2キャッシュアクセス手段1102 において、指定
されたアドレスのセットに対してキャッシュラインに空
きがあるかすなわちIのキャッシュラインがあるか調べ
る。空きがなければLRU参照手段1105 にリプレース
候補要求信号を出力しS3に進み、空きがあればそこに格
納しS13に進む。 S3: LRU参照手段1105 において、LRU1104 を参
照してS4以降の処理を行うために選択されたウェイでな
いものの中で最も古くアクセスされたキャッシュライン
のアドレスがあればそのアドレスを選択して、L2キャ
ッシュアクセス手段1102 にアドレスを出力しS4に進
み、まだ選択されていないウェイがなければS11に進
む。 S4: LRU参照手段1105で選択されたアドレスが、ス
テート保持バッファ1110に登録されていた場合は、L1ス
テートの状況を既に調査してあり、リプレース対象とな
るステートの組み合わせではないのでS9に進む。保持バ
ッファに1110に登録されていない場合はS5に進む。
【0037】S5: L2キャッシュアクセス手段1102 に
おいて、S3で選択したアドレスのL2キャッシュ1101
のステートの状態を調べる。またL1ステート調査リクエ
スト発行手段1103 とリプレース候補判定手段1106 に対
して、上記ステートの状態の信号や上記アドレスを出力
する。 S6: L1ステート調査リクエスト発行手段1103 により、
レベル1のバスへL1ステート調査のリクエストを発行
し、リプレース候補判定手段1106 に対して発行したこ
とを知らせる信号を有意にして出力する。 S7: リプレース候補判定手段1106 において上記発行し
たことを知らせる信号が有意のとき、HIT#信号1108 及
びHITM#信号1109 から得られるスヌープ結果がミスであ
れば、L1キャッシュシステム1a,1b のステートはIで
ありS10に進む。スヌープ結果がミスでなければS8に進
む。 S8: L1キャッシュのステートをステート保持バッフ
ァに登録する。 S9: リプレース候補判定手段1106 からLRU参照手段
1105 に対して次のリプレース候補を探すために次候補
要求信号を出力しS3に進む。 S10: リプレース候補判定手段1106 からリプレース処
理手段1107 に選択したアドレスを出力する。 S11: LRU参照手段1105 によりLRU1104 を参照
し、最も古くアクセスされたキャッシュラインのアドレ
スをリプレース処理手段1107 に出力する。 S12: リプレース処理手段1107 において、入力したア
ドレスに対してリプレース処理を行う。 S13: 終了。
【0038】次にこの発明の一実施例における先行リプ
レース動作を図4のフローチャートを用いて説明する。
ステート保持手段に1110にすべてのウエイのステート情
報が集積され、L2キャッシュ1101のすべてのウエイの
ステートがMであった時に、LRU参照手段1105により
LRU1104を参照し、最後に使用した時刻の古いウエイ
から順にL1キャッシュのステータスをチェックし、最
初にL1キャッシュ1a、1bのステートがIであったL2
のウエイを先行リプレースする手順について説明する。 T1: ステート保持手段1110のすべてのウエイにステー
ト情報が集積されたことにより先行リプレース処理の起
動が起こる。 T2: L2キャッシュ1101のステートがすべてMであった
場合T3に進む。Mではないステートのウエイがあった場
合はT5に進む。
【0039】T3: ステート保持手段1105において、す
べてのウエイのL1ステートの内容を先行リプレース決定
回路1111に出力する。先行リプレース決定回路1111はス
テート保持手段1110から送られたL1キャッシュ1a、1b
のステートを調べ、ステートがIであったウエイを選択
し、T4に進む。すべてのステートがI以外であった場合
はT5に進む。 T4: 先行リプレース決定回路1111はリプレース処理手
順1107に対し、無効化要求を出力する。要求を受けたリ
プレース処理手順はL2キャッシュに対して該当ウエイ
に対する無効化要求を出力し、T5に進む。 T5: 終了。
【0040】次に、動作の説明にあたりL2キャッシュ
1101およびL1キャッシュ1a、1bの状態について述べ
る。アドレスAのデータがL2キャッシュ1101のウエイ
0にステートMで格納されており、かつL1キャッシュ1
aにステートMで格納されており、L1キャッシュ1bには
格納されてなくすなわちステートIになっている。また
アドレスAと同じセット値のアドレスBのデータがL2
キャッシュ1101のウエイ1にステートMで格納されてお
り、かつL1キャッシュ1aおよびL1キャッシュ1bにそ
れぞれステートSで格納されている。またアドレスAと
同じセット値のアドレスCのデータがそれぞれL2キャ
ッシュ1101のウエイ2にステートMで格納されており、
かつL1キャッシュ1aおよびL1キャッシュ1bには格納
されてなくすなわちステートIになっている。またアド
レスAと同じセット値のアドレスDのデータがL2キャ
ッシュ1101のウエイ3にステートMで格納されており、
かつL1キャッシュ1aにステートEで格納されており、
L1キャッシュ1bには格納されてなくすなわちステート
Iになっている。
【0041】上記の状態でステート保持手段1110に一つ
のラインのすべてのウエイのステート情報が集積され、
先行リプレース動作が起動された場合について説明す
る。ステート保持手段1110ですべてのウエイに情報が集
積されると、該当キャッシュラインのすべてのウエイの
L2キャッシュのステートを調べる。アドレスA、アド
レスB、アドレスC、アドレスDのL2キャッシュのス
テートはすべてがMであるので、先行リプレース決定回
路1111に対して先行リプレース動作を起動する。先行リ
プレース決定回路1111はステート保持手段1110に保持さ
れているアドレスA、アドレスB、アドレスC及びアド
レスDのL1キャッシュ1aおよびL1キャッシュ1bのス
テートを調べる。
【0042】L1キャッシュ1a、1bのステートはそれぞ
れM及びI、S及びS、I及びI、E及びIなので、先
行リプレース決定回路1111はL1キャッシュ1a、1bのス
テートが両方ともIであるアドレスCを先行リプレース
対象と決定し、リプレース処理手段1107に対して無効化
要求を出す。無効化要求を受けたリプレース処理手段11
07はL2アクセス手段1102に対してアドレスCに対する無
効化要求を出す。このリクエストがL2アクセス手段1102
により受け付けられると、先行リプレース決定手段1111
はステート保持手段1110に対し、保持してあるアドレス
A、アドレスB、アドレスC、アドレスDのキャッシュ
ラインのステート情報を消去する要求を出し、ステート
保持手段1110に保持してあるステート情報を削除する。
無効化要求を受けたL2アクセス手段1102はレベル1のバ
ス4に対してアドレスCに対する無効化要求を出す。L
1キャッシュ1aおよびL1キャッシュ1bにはデータが存
在するので、レベル1のバス4におけるL2キャッシュ
システム2からの無効化要求に対するL1キャッシュ1
a、1bに対するスヌープ結果はミスになる。レベル1の
バスにおけるスヌープ結果が判明した時点で 、L2キ
ャッシュ1101はデータを主記憶3に対して書き戻し、ス
テートをIに変更する。
【0043】このようにして、L2キャッシュのすべて
のウエイにMの状態でデータが登録されており、それに
該当するL1キャッシュのステートがIであるアドレス
に対してL2キャッシュのリプレース動作に先行してL
2キャッシュの内容を無効化することにより、キャッシ
ュミスのペナルティを減少させることができる。
【0044】実施の形態2.この発明の実施の形態2に
おけるキャッシュシステムの構成図およびL2キャッシ
ュシステムの内部の構成図は図1、図2で示したキャッシ
ュシステムの構成図及びL2キャッシュシステムの内部
の構成図と同様のものである。また、この発明の実施の
形態2におけるキャッシュシステムのリプレース動作は
図3に示した実施の形態1のリプレース動作と同様のも
のである。ただし、実施の形態2の先行リプレース手段
1111はL1キャッシュのステートがEまたはSまたはI
の場合に先行リプレースの対象として決定する。この実
施の形態2における先行リプレース動作を図5のフロー
チャートを用いて説明する。フローチャート図5は図4で
示した実施の形態1のフローチャートと同様であるが、
実施の形態1のステップT3において、先行リプレース決
定回路1111において先行リプレース動作を行うと決定す
る基準がM以外(EまたはSまたはI)とする点が実施
の形態1と異なっている。図5において、 T8: ステート保持手段1105において、すべてのウエイ
のL1ステートの内容を先行リプレース決定回路1111に出
力する。先行リプレース決定回路1111はステート保持手
段1110から送られたL1キャッシュ1a、1bのステートを
調べ、ステートがM以外であったウエイを選択し、T9に
進む。すべてのステートがMであった場合はT10に進む。
【0045】次に、動作の説明にあたりL2キャッシュ
1101およびL1キャッシュ1a、1bの状態について述べ
る。アドレスAのデータがL2キャッシュ1101のウエイ
0にステートMで格納されており、かつL1キャッシュ1
aにステートMで格納されており、L1キャッシュ1bには
格納されてなくすなわちステートIになっている。また
アドレスAと同じセット値のアドレスBのデータがL2
キャッシュ1101のウエイ1にステートMで格納されてお
り、かつL1キャッシュ1aには格納されてなくすなわち
ステートIになっており、L1キャッシュ1bにステート
Mで格納されている。さらにアドレスAと同じセット値
のアドレスCのデータがL2キャッシュ1101のウエイ2
にステートMで格納されており、かつL1キャッシュ1a
にステートEで格納されており、かつL1キャッシュ1b
には格納されてなくすなわちステートIになっている。
また、アドレスDのデータがそれぞれL2キャッシュ11
01のウエイ3にステートMで格納されており、かつL1
キャッシュ1aには格納されてなくすなわちステートIに
なっており、L1キャッシュ1bにステートMで格納され
ている。
【0046】上記の状態でステート保持手段1110にすべ
てのウエイのステート情報が集積され、先行リプレース
動作が起動された場合について説明する。ステート保持
手段1110ですべてのウエイに情報が集積されると、該当
キャッシュラインのすべてのウエイのL2キャッシュの
ステートを調べる。アドレスA、アドレスB、アドレス
C、アドレスDのL2キャッシュのステートはすべてが
Mであるので、先行リプレース決定回路1111に対して先
行リプレース動作を起動する。先行リプレース決定回路
1111ははステート保持手段1110に保持されているアドレ
スA、アドレスB、アドレスC及びアドレスDのL1キ
ャッシュ1aおよびL1キャッシュ1bのステートを調べ
る。L1キャッシュ1a、1bのステートはそれぞれM及び
I、I及びM、E及びI、I及びMなので、先行リプレ
ース決定回路1111はL1キャッシュ1a、1bのステートが
EであるアドレスCを先行リプレース対象と決定し、リ
プレース処理手段1107に対して無効化要求を出す。
【0047】無効化要求を受けたリプレース処理手段11
07はL2アクセス手段1102に対してアドレスCに対する無
効化要求を出す。このリクエストがL2アクセス手段1102
により受け付けられると、先行リプレース決定手段1111
はステート保持手段1110に対し、保持してあるアドレス
A、アドレスB、アドレスC、アドレスDのキャッシュ
ラインのステート情報を消去する要求を出し、ステート
保持手段1110に保持してあるステート情報を削除する。
無効化要求を受けたL2アクセス手段1102はレベル1のバ
ス4に対してアドレスCに対する無効化要求を出す。L
1キャッシュ1aおよびL1キャッシュ1bにはデータが存
在するので、レベル1のバス4におけるL2キャッシュ
システム2からの無効化要求に対するL1キャッシュ1
a、1bに対するスヌープ結果はヒットになる。レベル1
のバスにおけるスヌープ結果が判明した時点で 、L2
キャッシュ1101はデータを主記憶3に対して書き戻し、
ステートをIに変更する。また、無効化要求を受けたL
1キャッシュ1aもステートをIに変更する。
【0048】このようにして、L2キャッシュのすべて
のウエイにMの状態でデータが登録されており、それに
該当するL1キャッシュのステートがEまたはSまたは
Iであるアドレスに対してL2キャッシュのリプレース
動作に先行してL2キャッシュの内容を無効化すること
により、キャッシュミスのペナルティを減少させること
ができる。
【0049】実施の形態3.この発明の実施の形態3に
おけるキャッシュシステムの構成図およびL2キャッシ
ュシステムの内部の構成図は図1、図2で示したキャッシ
ュシステムの構成図及びL2キャッシュシステムの内部
の構成図と同様のものである。また、この発明の実施の
形態3におけるキャッシュシステムのリプレース動作は
図3に示した実施の形態1のリプレース動作と同様のも
のである。ただし、実施の形態2の先行リプレース手段
1111は先行リプレースとしてライトバック要求をリプレ
ース処理手段1107にたいして行う。この実施の形態3に
おける先行リプレース動作を図6のフローチャートを用
いて説明する。フローチャート図6は図4で示した実施の
形態1のフローチャートと同様であるが、図4のステッ
プT4において、先行リプレース決定回路1111がリプレー
ス処理手段1107に対して行う処理要求がライトバック要
求である点が実施の形態1と異なっている。図6におい
て、 T14:ステート保持手段1105はリプレース処理手順1107
に対し、ライトバック要求を出力する。要求を受けたリ
プレース処理手順はL2キャッシュに対して該当ウエイ
に対するライトバック要求を出力し、T15に進む。
【0050】次に、動作の説明にあたりL2キャッシュ
1101およびL1キャッシュ1a、1bの状態について述べ
る。アドレスAのデータがL2キャッシュ1101のウエイ
0にステートMで格納されており、かつL1キャッシュ1
aにステートMで格納されており、L1キャッシュ1bには
格納されてなくすなわちステートIになっている。また
アドレスAと同じセット値のアドレスBのデータがL2
キャッシュ1101のウエイ1にステートMで格納されてお
り、かつL1キャッシュ1aおよびL1キャッシュ1bにそ
れぞれステートSで格納されている。またアドレスAと
同じセット値のアドレスCのデータがそれぞれL2キャ
ッシュ1101のウエイ2にステートMで格納されており、
かつL1キャッシュ1aおよびL1キャッシュ1bには格納
されてなくすなわちステートIになっている。またアド
レスAと同じセット値のアドレスDのデータがL2キャ
ッシュ1101のウエイ3にステートMで格納されており、
かつL1キャッシュ1aにステートEで格納されており、
L1キャッシュ1bには格納されてなくすなわちステート
Iになっている。
【0051】上記の状態でステート保持手段1110にすべ
てのウエイのステート情報が集積され、先行リプレース
動作が起動された場合について説明する。ステート保持
手段1110ですべてのウエイに情報が集積されると、該当
キャッシュラインのすべてのウエイのL2キャッシュの
ステートを調べる。アドレスA、アドレスB、アドレス
C、アドレスDのL2キャッシュのステートはすべてが
Mであるので、先行リプレース決定回路1111に対して先
行リプレース動作を起動する。先行リプレース決定回路
1111ははステート保持手段1110に保持されているアドレ
スA、アドレスB、アドレスC及びアドレスDのL1キ
ャッシュ1aおよびL1キャッシュ1bのステートを調べ
る。
【0052】L1キャッシュ1a、1bのステートはそれぞ
れM及びI、S及びS、I及びI、E及びIなので、先
行リプレース決定回路1111はL1キャッシュ1a、1bのス
テートが両方ともIであるアドレスCを先行リプレース
対象と決定し、リプレース処理手段1107に対して無効化
要求を出す。無効化要求を受けたリプレース処理手段11
07はL2アクセス手段1102に対してアドレスCに対する無
効化要求を出す。このリクエストがL2アクセス手段1102
により受け付けられると、先行リプレース決定手段1111
はステート保持手段1110に対し、保持してあるアドレス
A、アドレスB、アドレスC、アドレスDのキャッシュ
ラインのステート情報を消去する要求を出し、ステート
保持手段1110に保持してあるステート情報を削除する。
無効化要求を受けたL2アクセス手段1102はレベル1のバ
ス4に対してアドレスCに対するライトバック要求を出
す。ライトバック要求を受けたリプレース処理手段1107
はL2アクセス手段1102に対してアドレスCに対するリー
ド要求を出す。
【0053】このリクエストがL2アクセス手段1102によ
り受け付けられると、先行リプレース決定手段1111はス
テート保持手段1110に対し、保持してあるアドレスA、
アドレスB、アドレスC、アドレスDのキャッシュライ
ンのステート情報を消去する要求を出し、ステート保持
手段1110に保持してあるステート情報を削除する。リー
ド要求を受けたL2アクセス手段1102はレベル1のバス4
に対してアドレスCに対するリード要求を出す。L1キ
ャッシュ1aおよびL1キャッシュ1bにはデータが存在し
ないので、レベル1のバス4におけるL2キャッシュシ
ステム2からのリード要求に対するL1キャッシュ1a、1
bに対するスヌープ結果はミスになる。レベル1のバス
におけるスヌープ結果が判明した時点で 、L2キャッ
シュ1101はデータを主記憶3に対して書き戻し、ステー
トをSに変更する。
【0054】このようにして、L2キャッシュのすべて
のウエイにMの状態でデータが登録されており、それに
該当するL1キャッシュのステートがIであるアドレス
に対してL2キャッシュのリプレース動作に先行してL
2キャッシュのステートをMからSすることにより、キ
ャッシュミス時のライトバックの必要性を事前になくし
ておくことになり、キャッシュミスのペナルティを減少
させることができる。
【0055】実施の形態4.この発明の実施の形態4に
おけるキャッシュシステムの構成図およびL2キャッシ
ュシステムの内部の構成図は図1、図2で示したキャッシ
ュシステムの構成図及びL2キャッシュシステムの内部
の構成図と同様のものである。また、この発明の実施の
形態4におけるキャッシュシステムのリプレース動作は
図3に示した実施の形態1のリプレース動作と同様のも
のである。ただし、実施の形態4の先行リプレース手段
1111は先行リプレースとしてライトバック要求をリプレ
ース処理手段1107にたいして行う。この実施の形態4に
おける先行リプレース動作を図7のフローチャートを用
いて説明する。フローチャート図7は図5で示した実施の
形態2のフローチャートと同様であるが、ステップT4に
おいて、先行リプレース決定回路1111がリプレース処理
手段1107に対して行う処理要求がライトバック要求であ
る点が実施の形態2と異なっている。図7において、 T19: ステート保持手段1105はリプレース処理手順1107
に対し、ライトバック要求を出力する。要求を受けたリ
プレース処理手順はL2キャッシュに対して該当ウエイ
に対するライトバック要求を出力し、T20に進む。
【0056】次に動作例の説明にあたりL2キャッシュ
1101およびL1キャッシュ1a、1bの状態について述べ
る。アドレスAのデータがL2キャッシュ1101のウエイ
0にステートMで格納されており、かつL1キャッシュ1
aにステートMで格納されており、L1キャッシュ1bには
格納されてなくすなわちステートIになっている。また
アドレスAと同じセット値のアドレスBのデータがL2
キャッシュ1101のウエイ1にステートMで格納されてお
り、かつL1キャッシュ1aには格納されてなくすなわち
ステートIになっており、L1キャッシュ1bにステート
Mで格納されている。さらにアドレスAと同じセット値
のアドレスCのデータがL2キャッシュ1101のウエイ2
にステートMで格納されており、かつL1キャッシュ1a
にステートEで格納されており、かつL1キャッシュ1b
には格納されてなくすなわちステートIになっている。
また、アドレスDのデータがそれぞれL2キャッシュ11
01のウエイ3にステートMで格納されており、かつL1
キャッシュ1aには格納されてなくすなわちステートIに
なっており、L1キャッシュ1bにステートMで格納され
ている。
【0057】上記の状態でステート保持手段1110にすべ
てのウエイのステート情報が集積され、先行リプレース
動作が起動された場合について説明する。ステート保持
手段1110ですべてのウエイに情報が集積されると、該当
キャッシュラインのすべてのウエイのL2キャッシュの
ステートを調べる。アドレスA、アドレスB、アドレス
C、アドレスDのL2キャッシュのステートはすべてが
Mであるので、先行リプレース決定回路1111に対して先
行リプレース動作を起動する。先行リプレース決定回路
1111ははステート保持手段1110に保持されているアドレ
スA、アドレスB、アドレスC及びアドレスDのL1キ
ャッシュ1aおよびL1キャッシュ1bのステートを調べ
る。
【0058】L1キャッシュ1a、1bのステートはそれぞ
れM及びI、I及びM、E及びI、I及びMなので、先
行リプレース決定回路1111はL1キャッシュ1a、1bのス
テートがEであるアドレスCを先行リプレース対象と決
定し、リプレース処理手段1107に対してライトバック要
求を出す。ライトバック要求を受けたリプレース処理手
段1107はL2アクセス手段1102に対してアドレスCに対す
るリード要求を出す。このリクエストがL2アクセス手段
1102により受け付けられると、先行リプレース決定手段
1111はステート保持手段1110に対し、保持してあるアド
レスA、アドレスB、アドレスC、アドレスDのキャッ
シュラインのステート情報を消去する要求を出し、ステ
ート保持手段1110に保持してあるステート情報を削除す
る。リード要求を受けたL2アクセス手段1102はレベル1
のバス4に対してアドレスCに対するリード要求を出
す。L1キャッシュ1aおよびL1キャッシュ1bにはデー
タが存在するので、レベル1のバス4におけるL2キャ
ッシュシステム2からのリード要求に対するL1キャッ
シュ1a、1bに対するスヌープ結果はヒットになる。レベ
ル1のバスにおけるスヌープ結果が判明した時点で 、
L2キャッシュ1101はデータを主記憶3に対して書き戻
し、ステートをSに変更する。リード要求を受けたL1
キャッシュ1aはステートをSに変更する。
【0059】このようにして、L2キャッシュのすべて
のウエイにMの状態でデータが登録されており、それに
該当するL1キャッシュのステートがEまたはSまたは
Iであるアドレスに対してL2キャッシュのリプレース
動作に先行してL2キャッシュのステートをMからSす
ることにより、キャッシュミスのペナルティを減少させ
ることができる。
【0060】実施の形態5.この発明の実施の形態5に
おけるキャッシュシステムの構成図およびL2キャッシ
ュシステムの内部の構成図は図1、図2で示したキャッシ
ュシステムの構成図及びL2キャッシュシステムの内部
の構成図と同様のものである。また、この発明の実施の
形態6におけるキャッシュシステムのリプレース動作は
図3に示した実施の形態1のリプレース動作と同様のも
のである。ただし、実施の形態5の先行リプレース手段
1111は先行リプレースとしての条件が成立し、かつ同一
状態のウエイが存在した場合、LRU1104を参照し、よ
り古くアクセスしたアドレスに対して無効化処理を行う
ものである。この実施の形態5における先行リプレース
動作を図8のフローチャートを用いて説明する。 P1: ステート保持手段1110のすべてのウエイにステー
ト情報が集積されたことにより先行リプレース処理の起
動が起こる。 P2: L2キャッシュ1101のステートがすべてMであった
場合T3に進む。Mではないステートのウエイがあった場
合はP7に進む。
【0061】P3: ステート保持手段1105において、す
べてのウエイのL1ステートの内容を先行リプレース決定
回路1111に出力する。先行リプレース決定回路1111はス
テート保持手段1110から送られたL1キャッシュ1a、1b
のステートを調べ、ステートがIであったウエイを選択
し、P4に進む。すべてのステートがI以外であった場合
はP6に進む。 P4: 先行リプレース決定回路1111はL1キャッシュ1
a、1bのステートがともにIであるウエイの数を調べ、
1つであった場合はP6に進む。ステートがともにIであ
るウエイの数が複数であった場合はP5に進む。 P5: 先行リプレース決定回路1111はLRU選択手段110
5においてLRU1104を参照して、 L1キャッシュ1a、
1bのステートがともにIであるウエイのうちより古くに
アクセスされたウエイを選択し、ステート保持手段1110
にそのウエイを出力し、P6に進む。 P6: 先行リプレース決定回路1111はリプレース処理手
順1107に対し、無効化要求を出力する。要求を受けたリ
プレース処理手順はL2キャッシュに対して該当ウエイ
に対する無効化要求を出力し、P7に進む。 P7: 終了。
【0062】次に動作例の説明にあたりL2キャッシュ
1101およびL1キャッシュ1a、1bの状態について述べ
る。アドレスAのデータがL2キャッシュ1101のウエイ
0にステートMで格納されており、かつL1キャッシュ1
aにステートMで格納されており、L1キャッシュ1bには
格納されてなくすなわちステートIになっている。また
アドレスAと同じセット値のアドレスBのデータがL2
キャッシュ1101のウエイ1にステートMで格納されてお
り、かつL1キャッシュ1aおよびL1キャッシュ1bにそ
れぞれステートSで格納されている。またアドレスAと
同じセット値のアドレスCのデータがそれぞれL2キャ
ッシュ1101のウエイ2にステートMで格納されており、
かつL1キャッシュ1a、1bには格納されてなくすなわち
ステートIになっている。またアドレスAと同じセット
値のアドレスDのデータがL2キャッシュ1101のウエイ
0にステートMで格納されており、かつL1キャッシュ1
a、1bには格納されてなくすなわちステートIになって
いる。また、L2キャッシュ1101において上記のそれぞ
れのアドレスはアドレスA、アドレスB、アドレスC、
アドレスDの順でアクセスされたのは古く、LRU1104
はアドレスA、アドレスB、アドレスC、アドレスDで
選択する。
【0063】上記の状態でステート保持手段1110にすべ
てのウエイのステート情報が集積され、先行リプレース
動作が起動された場合について説明する。ステート保持
手段1110ですべてのウエイに情報が集積されると、該当
キャッシュラインのすべてのウエイのL2キャッシュの
ステートを調べる。アドレスA、アドレスB、アドレス
C、アドレスDのL2キャッシュのステートはすべてが
Mであるので、先行リプレース決定回路1111に対して先
行リプレース動作を起動する。ステート保持手段1110で
すべてのウエイに情報が集積されると、該当キャッシュ
ラインのすべてのウエイのL2キャッシュのステートを
調べる。アドレスA、アドレスB、アドレスC、アドレ
スDのL2キャッシュのステートはすべてがMであるの
で、先行リプレース決定回路1111に対して先行リプレー
ス動作を起動する。先行リプレース決定回路1111ははス
テート保持手段1110に保持されているアドレスA、アド
レスB、アドレスC及びアドレスDのL1キャッシュ1a
およびL1キャッシュ1bのステートを調べる。
【0064】L1キャッシュ1a、1bのステートはそれぞ
れM及びI、S及びS、I及びI、I及びIなので、ウ
エイ2、3についてL1キャッシュ1a、1bの双方がステ
ートIであるウエイが存在する結果をえる。そこで、先
行リプレース決定回路1111はLRU参照手段1105により
LRU1104を調べ、より古くにアクセスされたアドレス
Cを先行リプレース対象と決定し、リプレース処理手段
1107に対して無効化要求を出す。無効化要求を受けたリ
プレース処理手段1107はL2アクセス手段1102に対してア
ドレスCに対する無効化要求を出す。このリクエストが
L2アクセス手段1102により受け付けられると、先行リプ
レース決定手段1111はステート保持手段1110に対し、保
持してあるアドレスA、アドレスB、アドレスC、アド
レスDのキャッシュラインのステート情報を消去する要
求を出し、ステート保持手段1110に保持してあるステー
ト情報を削除する。リード要求を受けたL2アクセス手段
1102はレベル1のバス4に対してアドレスCに対する無
効化要求を出す。L1キャッシュ1a、1bにはデータが存
在しないので、レベル1のバス4におけるL2キャッシ
ュシステム2からの無効化要求に対するL1キャッシュ1
a、1bのスヌープ結果はミスになる。L2キャッシュシ
ステム2はL1キャッシュからのスヌープ結果が判明し
た時点で 、L2キャッシュ1101はデータを主記憶3に対
して書き戻し、ステートをIに変更する。
【0065】このようにして、L2キャッシュのすべて
のウエイにMの状態でデータが登録されており、それに
該当するL1キャッシュのステートがIのウエイが複数
存在する場合にLRUの制御に従いL2キャッシュのリ
プレース動作に先行してL2キャッシュのステートをM
からIすることにより、キャッシュミスのペナルティを
減少させることができる。
【0066】実施の形態5は実施の形態1に対してP4、
P5の処理を追加することにより、先行リプレース条件を
満たすウエイが複数存在する場合にLRUの制御に従い
L2キャッシュのリプレース動作に先行してL2キャッ
シュのステートをMからIにすることにより、キャッシ
ュミスのペナルティを減少させることができるように構
成したが、実施の形態2、3及び4に対して図8のステ
ップP4、P5の処理を追加しても同様の効果が得られる。
【0067】実施の形態6.この発明の実施の形態6に
おけるキャッシュシステムの構成図およびL2キャッシ
ュシステムの内部の構成図は図1、図2で示したキャッシ
ュシステムの構成図及びL2キャッシュシステムの内部
の構成図と同様のものである。また、この発明の実施の
形態6におけるキャッシュシステムのリプレース動作は
図3に示した実施の形態1のリプレース動作と同様のも
のである。ただし、実施の形態6の先行リプレース手段
1111は先行リプレースとしての条件が成立しなかった場
合、LRU1104を参照し、最も古くアクセスしたアドレ
スに対して無効化処理を行うものである。この実施の形
態6における先行リプレース動作を図9のフローチャー
トを用いて説明する。 Q1: ステート保持手段1110のすべてのウエイにステー
ト情報が集積されたことにより先行リプレース処理の起
動が起こる。 Q2: L2キャッシュ1101のステートがすべてMであった
場合T3に進む。Mではないステートのウエイがあった場
合はQ6に進む。
【0068】Q3: ステート保持手段1105において、す
べてのウエイのL1ステートの内容を先行リプレース決定
回路1111に出力する。先行リプレース決定回路1111はス
テート保持手段1110から送られたL1キャッシュ1a、1b
のステートを調べ、ステートがIであったウエイを選択
し、Q5に進む。すべてのステートがI以外であった場合
はQ4に進む。 Q4: LRU選択手段1105においてLRU1104を参照し
て、最も古くアクセスされたウエイを選択し、ステート
保持手段1110にそのウエイを出力し、Q5に進む。 Q5: 先行リプレース決定回路1111はリプレース処理手
順1107に対し、無効化要求を出力する。要求を受けたリ
プレース処理手順はL2キャッシュに対して該当ウエイ
に対する無効化要求を出力し、Q6に進む。 Q6: 終了。
【0069】次に動作例の説明にあたりL2キャッシュ
1101およびL1キャッシュ1a、1bの状態について述べ
る。アドレスAのデータがL2キャッシュ1101のウエイ
0にステートMで格納されており、かつL1キャッシュ1
aにステートMで格納されており、L1キャッシュ1bには
格納されてなくすなわちステートIになっている。また
アドレスAと同じセット値のアドレスBのデータがL2
キャッシュ1101のウエイ1にステートMで格納されてお
り、かつL1キャッシュ1aおよびL1キャッシュ1bにそ
れぞれステートSで格納されている。またアドレスAと
同じセット値のアドレスCのデータがそれぞれL2キャ
ッシュ1101のウエイ2にステートMで格納されており、
かつL1キャッシュ1aにステートMで格納されており、
L1キャッシュ1bには格納されてなくすなわちステート
Iになっている。またアドレスAと同じセット値のアド
レスDのデータがL2キャッシュ1101のウエイ3にステ
ートMで格納されており、かつL1キャッシュ1aにステ
ートEで格納されており、L1キャッシュ1bには格納さ
れてなくすなわちステートIになっている。また、L2
キャッシュ1101において上記のそれぞれのアドレスはア
ドレスA、アドレスB、アドレスC、アドレスDの順で
アクセスされたのは古く、LRU1104はアドレスA、ア
ドレスB、アドレスC、アドレスDで選択する。
【0070】上記の状態でステート保持手段1110にすべ
てのウエイのステート情報が集積され、先行リプレース
動作が起動された場合について説明する。ステート保持
手段1110ですべてのウエイに情報が集積されると、該当
キャッシュラインのすべてのウエイのL2キャッシュの
ステートを調べる。アドレスA、アドレスB、アドレス
C、アドレスDのL2キャッシュのステートはすべてが
Mであるので、先行リプレース決定回路1111に対して先
行リプレース動作を起動する。ステート保持手段1110で
すべてのウエイに情報が集積されると、該当キャッシュ
ラインのすべてのウエイのL2キャッシュのステートを
調べる。アドレスA、アドレスB、アドレスC、アドレ
スDのL2キャッシュのステートはすべてがMであるの
で、先行リプレース決定回路1111に対して先行リプレー
ス動作を起動する。先行リプレース決定回路1111はステ
ート保持手段1110に保持されているアドレスA、アドレ
スB、アドレスC及びアドレスDのL1キャッシュ1aお
よびL1キャッシュ1bのステートを調べる。
【0071】L1キャッシュ1a、1bのステートはそれぞ
れM及びI、S及びS、M及びI、E及びIなので、す
べてのウエイについてL1キャッシュ1a、1bの双方がス
テートIであるウエイが存在しない結果をえる。そこ
で、先行リプレース決定回路1111はLRU参照手段1105
によりLRU1104を調べ、最も古くにアクセスされたア
ドレスAを先行リプレース対象と決定し、リプレース処
理手段1107に対して無効化要求を出す。ライトバック要
求を受けたリプレース処理手段1107はL2アクセス手段11
02に対してアドレスCに対するリード要求を出す。この
リクエストがL2アクセス手段1102により受け付けられる
と、先行リプレース決定手段1111はステート保持手段11
10に対し、保持してあるアドレスA、アドレスB、アド
レスC、アドレスDのキャッシュラインのステート情報
を消去する要求を出し、ステート保持手段1110に保持し
てあるステート情報を削除する。リード要求を受けたL2
アクセス手段1102はレベル1のバス4に対してアドレス
Cに対するリード要求を出す。L1キャッシュ1aにはス
テートMの状態でデータが存在するので、レベル1のバ
ス4におけるL2キャッシュシステム2からの無効化要求
に対するL1キャッシュ1aのスヌープ結果はヒットエム
になる。L2キャッシュシステム2はL1キャッシュか
らのライトバックデータを受け取る。データの受け取り
が完了した時点で 、L2キャッシュ1101はデータを主
記憶3に対して書き戻し、ステートをIに変更する。
【0072】このようにして、L2キャッシュのすべて
のウエイにMの状態でデータが登録されており、それに
該当するL1キャッシュのステートが先行リプレース条
件を満たさない場合にLRUの制御に従いL2キャッシ
ュのリプレース動作に先行してL2キャッシュのステー
トをMからIすることにより、キャッシュミスのペナル
ティを減少させることができる。
【0073】実施の形態6は実施の形態1に対してQ4の
処理を追加することにより、先行リプレース条件を満た
さない場合にLRUの制御に従いL2キャッシュのリプ
レース動作に先行してL2キャッシュのステートをMか
らIすることにより、キャッシュミスのペナルティを減
少させることができるように構成したが、実施の形態
2、3及び4に対して図9のステップQ4の処理を追加し
ても同様の効果が得られる。
【0074】実施の形態7.この発明の実施の形態7に
おけるキャッシュシステムの構成図は図1 で示した実施
の形態1のキャッシュシステムの構成図と同様のもので
ある。図10はこの発明の実施の形態7におけるL2キャ
ッシュシステム2の内部の構造図であり、図において110
1 はL2キャッシュ、1102 はL2キャッシュにデータ
の読み書きやキャッシュラインの状態を示すステートの
変更を行ったりL2キャッシュ1101 のキャッシュライ
ンの空きやステートの状態を調べるL2キャッシュアク
セス手段、1103 は既存の命令を使ってL1キャッシュ
システム1a,1bのステートを調べるためのL1ステート
調査リクエスト発行手段でありこの命令によりL1キャ
ッシュシステム1aまたは1b のキャッシュラインのステ
ートがMのときステートがSに変わる。1104 は最も長い
期間にわたって使用されなかったキャッシュラインを示
すLRU、1105 はLRU1104 の情報を参照するために
アクセス制御するLRU参照手段、1106 はL2キャッ
シュ1101 のステートの状態やL1キャッシュシステム
1a,1b のステートを調べた結果からリプレース候補のキ
ャッシュラインを判定するリプレース候補判定手段、11
07 はキャッシュラインのリプレース処理を実行するリ
プレース処理手段である。
【0075】1108 はレベル1のバス上のリクエストに
対するスヌープの結果を示すHIT#信号、1109 はレ
ベル1のバス上のリクエストに対するスヌープの結果を
示すHITM#信号である。スヌープの結果はHIT#信号
がアサートされHITM#信号がアサートされなかった場
合、L1キャッシュシステム1a または1b のキャッシュ
ラインの少なくとも一方がSまたはEステートであるこ
とを示しこれをヒットと呼ぶ。HITM#信号がアサートさ
れHIT#信号がアサートされなかった場合は、L1キ
ャッシュシステム1a または1b のキャッシュラインの少
なくとも一方がMステートであることを示しこれをヒッ
トエムと呼ぶ。HIT#信号及びHITM#信号がともにア
サートされなかった場合は、L1キャッシュシステムの
キャッシュのラインがIステートであることすなわちス
ヌープの結果がミスであることを示す。HIT#信号及
びHITM#信号がともにアサートの場合は、スヌープ結果
の調査中であることを示す。1110はL2キャッシュ1101
のステートの状態やL1キャッシュシステム1a,1b の
ステートを調べた結果を保持するステート保持手段、11
11保持したステート情報1110から先行リプレース対象を
決定する先行リプレース決定回路、1112はレベル1のバ
ス4の状態を監視するバス監視機構、1113は先行リプレ
ース要求を保持する先行リプレース要求保持手段、2001
はレベル1のバス4のトランザクション開始要求時にア
サートされるADS信号、2002はレベル1のバス4のトラン
ザクション終了時にアサートされるTF信号、2003は先行
リプレース決定回路1111が出力する先行リプレース要
求、2004は先行リプレース許可信号である。
【0076】図11はこの発明の実施の形態7におけるバ
ス監視手段の回路図例であり、図において2001はレベル
1のバス4のトランザクション開始要求時にアサートさ
れるADS信号、2002はレベル1のバス4のトランザクショ
ン終了時にアサートされるTF信号、2003は先行リプレー
ス決定回路1111が出力する先行リプレース要求手段、20
04は先行リプレース許可信号、2005はリクエストカウン
タ、2006はアキュムレータ、2007はセレクタ、2008は比
較器、2009はSRラッチ、2010はクロック同期SRラッ
チである。
【0077】次に動作について説明する。先行リプレー
ス要求2003は実施の形態1から5と同様の手順で先行リ
プレース決定回路1111により発行される。その先行リプ
レース要求2003は先行リプレース要求保持手段1113に格
納されるとともにバス監視手段に対して入力される。先
行リプレース要求保持手段1113は先行リプレース許可信
号2004が有意になるまでリプレース処理手段1107に対し
て要求を発行しない。
【0078】次に、バス監視手段1112における先行リプ
レース許可信号生成手順について説明する。トランザク
ションの開始要求時にADS信号2001が、終了時にTF信号2
002がアサートされる。2005 〜 2007 でアップダウンカ
ウンタを構成している。リクエストカウンタ 2005 はト
ランザクションリクエスト要求信号ADS 2001または ト
ランザクション終了信号TF 2002が有意となる場合に更
新される。リクエストカウンタ 2005 の初期値は 0 で
ある。アキュームレータ 2006 は ADS信号 2001 、TF信
号 2002 を選択条件とするセレクタ 2007 の出力とリク
エストカウンタ 2005 を加算する。セレクタ 2007 が
加算する値は、ADS 信号2001 がアサートされると1加
算し、TF信号 2002 がアサートされると1減算する。リ
クエストカウンタ値は 0 と 比較器 2008 で比較し、0
であれば比較器 2008 の出力を有意にする。
【0079】また 信号 2003 がアサートされると、S
Rラッチ 2009に一旦保持される。SRラッチ 2009 の
出力と比較器 2008 の出力が共に有意であるときクロッ
ク同期SRラッチ 2010 を通して先行リプレース要求保
持手段1113に対して先行リプレース許可信号2004 を出
力する。先行リプレース許可信号2004がアサートされる
とSRラッチ2009はリセットされる。
【0080】先行リプレース決定回路1111 で先行リプ
レース要求2003が出されるタイミングでトランザクショ
ンが多く発生しバスがアイドル状態でないとき、つまり
リクエストカウンタが次々にインクリメントされ、0で
ないときリプレース処理手順1107に対するリプレース要
求の発行は待たされる。
【0081】次にトランザクションが終了し、TF信号が
アサートされるとリクエストカウンタはデクリメントさ
れ、カウンタが0となると、先行リプレース許可信号20
04が優位になり、 リプレース処理手順1107に対するリ
プレース要求が出され、リプレース処理手順1107からリ
プレース要求を発行される。このようにバス監視手段を
具備することで、バスのトラヒックを分散させた先行リ
プレースを可能とできる。
【0082】実施の形態8.図10は実施の形態8におけ
るL2キャッシュシステムの内部構成図でもあり、実施
の形態7におけるL2キャッシュシステム同様にバス監
視手段1112 を具備する。
【0083】図12 に実施の形態8におけるバス監視手
段1112の構成例をしめす。 回路動作は実施の形態7に
ほぼ同じである。異なる点は比較器 2008 で比較する値
を固定的に決められたカウンタ基準値 2011 と比較し、
リクエストカウンタ値が基準値以下であれば比較器 200
8 の出力を有意にすることである。
【0084】先行リプレース決定回路1111 で先行リプ
レース要求2003が出されるタイミングでトランザクショ
ンが多く発生しバスがアイドル状態でないとき、つまり
リクエストカウンタが次々にインクリメントされ、カウ
ンタ基準値以上のトランザクションリクエストがあると
きリプレース処理手順1107に対するリプレース要求の発
行は待たされる。
【0085】次にトランザクションが終了し、TF信号が
アサートされるとリクエストカウンタはデクリメントさ
れ、カウンタが基準値以下になるととなると、先行リプ
レース許可信号2004が優位になり、 リプレース処理手
順1107に対するリプレース要求が出され、リプレース処
理手順1107からリプレース要求を発行される。このよう
にバス監視手段を具備することで、バスのトラヒック分
散させ先行リプレースを可能とできる。
【0086】実施の形態9.図13 は実施の形態9にお
けるL2キャッシュシステムの内部構成図である。L2
キャッシュシステムは実施の形態8と同様なバス監視手
段 1114を具備する。また加えてカウント基準値格納手
段 2020 を具備する。
【0087】図14はカウント基準値格納手段 2020 の構
成例である。入力にはカウンタ基準値格納レジスタラッ
チイネーブル信号 2022 ,カウンタ基準値設定信号 202
1 を入力とし、カウンタ基準値 2011 を出力する。カウ
ンタ基準値 2011 は、バス監視手段 1114 の 比較器 20
08 の入力となる。
【0088】次に動作について述べる。カウンタ基準値
設定信号 2021 にレベル1のバス4に発行されているト
ランザクション数がある数以上の時に先行リプレース要
求保持手段1113からリプレース処理手段1107に対するリ
プレース要求を待たせる数を設定する。カウンタ基準値
格納レジスタラッチイネーブル信号 2022 が有意となる
ときカウンタ基準値格納レジスタに取り込まれ、カウン
タ基準値は2011 に出力される。比較器 2008 では、リ
クエストカウンタ値とカウント基準値を比較しリクエス
トカウンタ値がカウント基準値より小さい場合に先行リ
プレース要求保持手段1113に対して先行リプレース許可
信号2004 を出力できて、先行リプレース動作によるリ
プレース要求が発行できる。
【0089】カウンタ基準格納レジスタを使用し任意に
カウント基準を変更できることにより動的に先行リプレ
ース動作によるリプレース要求の発行頻度を変化させる
ことができる。
【0090】実施の形態10.この発明の実施の形態1
1におけるキャッシュシステムの構成図は図1 で示した
実施の形態1のキャッシュシステムの構成図と同様のも
のである。図15 はこの発明の実施の形態11における
L2キャッシュシステム2の内部の構造図であり、図に
おいて1101 はL2キャッシュ、1102 はL2キャッシュ
にデータの読み書きやキャッシュラインの状態を示すス
テートの変更を行ったりL2キャッシュ1101 のキャッ
シュラインの空きやステートの状態を調べるL2キャッ
シュアクセス手段、1103 は既存の命令を使ってL1キ
ャッシュシステム1a,1bのステートを調べるためのL1
ステート調査リクエスト発行手段でありこの命令により
L1キャッシュシステム1aまたは1b のキャッシュライ
ンのステートがMのときステートがSに変わる。1104 は
最も長い期間にわたって使用されなかったキャッシュラ
インを示すLRU、1105 はLRU1104 の情報を参照す
るためにアクセス制御するLRU参照手段、1106 はL
2キャッシュ1101 のステートの状態やL1キャッシュ
システム1a,1b のステートを調べた結果からリプレース
候補のキャッシュラインを判定するリプレース候補判定
手段、1107 はキャッシュラインのリプレース処理を実
行するリプレース処理手段である。
【0091】1108 はレベル1のバス上のリクエストに
対するスヌープの結果を示すHIT#信号、1109 はレ
ベル1のバス上のリクエストに対するスヌープの結果を
示すHITM#信号である。スヌープの結果はHIT#信号
がアサートされHITM#信号がアサートされなかった場
合、L1キャッシュシステム1a または1b のキャッシュ
ラインの少なくとも一方がSまたはEステートであるこ
とを示しこれをヒットと呼ぶ。HITM#信号がアサートさ
れHIT#信号がアサートされなかった場合は、L1キ
ャッシュシステム1a または1b のキャッシュラインの少
なくとも一方がMステートであることを示しこれをヒッ
トエムと呼ぶ。HIT#信号及びHITM#信号がとも
にアサートされなかった場合は、L1キャッシュシステ
ムのキャッシュのラインがIステートであることすなわ
ちスヌープの結果がミスであることを示す。HIT#信
号及びHITM#信号がともにアサートの場合は、スヌープ
結果の調査中であることを示す。1110はL2キャッシュ
1101 のステートの状態やL1キャッシュシステム1a,1
b のステートを調べた結果を保持するステート保持手
段、1111保持したステート情報1110から先行リプレース
対象を決定する先行リプレース決定回路、1112はHIT
#信号1108 とHITM#信号1109 からレベル1のバス4上
でスヌープ中であるかを監視するバス監視機構、1113は
先行リプレース要求を保持する先行リプレース要求保持
手段、2003は先行リプレース決定回路1111が出力する先
行リプレース要求、2004は先行リプレース許可信号であ
る。
【0092】図16 は、実施の形態10におけるバス監
視手段1114 の内部の回路図であり、図において1115 、
1116 、1117 は入力信号を1サイクル遅らせて出力する
ディレイ素子である。HIT#信号1108 とHITM#信号1
109 を入力し、4サイクルの間にHIT#信号1108 とH
ITM#信号1109 がともに値1にアサートされるすなわち
スヌープ中であることがあると、インバータ回路1118
から値0の信号が出力される。HIT#信号1108 とHIT
M#信号1109 が4サイクルの間、ともに値1にアサート
されることがないすなわちスヌープ中でない場合、イン
バータ回路1118から値1の信号が出力される。 また
信号2003 がアサートされると、SRラッチ2009 に一旦
保持される。SRラッチ2009 の出力とインバータ回路1
118 の出力が共に有意であるときクロック同期SRラッ
チ2010 を通してL1ステート調査リクエスト発行手段
に信号2001 を出力する。L1ステート調査リクエスト
発行手段に信号2001 はSRラッチ2009でL2アクセス
手段によるL1ステート調査リクエスト要求状態の保持
をリセットする。
【0093】図1 のL1キャッシュシステム1a からレ
ベル1のバス4 にリクエストが発行されたとする。L1
キャッシュシステム1a,1b 及びL2キャッシュシステム
2 はレベル1のバス4 に発行されたリクエストに対する
アドレスについてステートの状態を調査しなければなら
ない。従ってレベル1のバス4 にはスヌープ中であるこ
とを示すために、HIT#信号1108 とHITM#信号1109
がともに値1にアサートされる。図15 のバス監視手段1
114 はスヌープ中であるため値0の信号を出力する。こ
のときL2キャッシュシステム2 において、先行リプレ
ース動作によるリプレース要求が生成され、先行リプレ
ース要求保持手段1113に登録されたとする。先行リプレ
ース要求保持手段1113はバス監視手段1112 から値0の
信号を入力しているため、リクエスト発行を行わない。
上記レベル1のバス4 に発行されたリクエストに対する
スヌープ結果が確定するとHIT#信号1108 とHITM#
信号1109 はスヌープ中でなくなりともに値1にアサー
トされなくなる。バス監視手段1112 はスヌープ中でな
いので値1の信号を出力する。先行リプレース要求保持
手段1113はバス監視手段1112 から値1の信号を入力
し、先行リプレース動作によるリプレース要求のリクエ
ストを発行可能となる。このようにバス監視手段を具備
することで、L1キャッシュシステム1 及びL2キャッ
シュシステム2 のアクセス制御する負荷を分散させ、先
行リプレースを可能とできる。
【0094】
【発明の効果】この発明は、以上述べたように構成され
ているので、以下に示すような効果を奏する。
【0095】N−1次キャッシュシステムからのキャッ
シュミスによるリプレース要求が発生する前に先行して
リプレースするように構成したので、キャッシュミス時
のリプレース処理時間を短縮することができる。
【0096】また、リプレース基準を全てのウェイがス
テートMとしたので、キャッシュミス時の無効化に伴う
ライトバックを無くすことができる。
【0097】さらに、リプレース基準を全てのウェイが
ステートMであり、かつN−1次キャッシュシステムの
該当するキャッシュラインのウェイがステートIとした
ので、N−1次キャッシュシステムでのライトバックを
無くすことができる。
【0098】また、リプレース基準を全てのウェイがス
テートMであり、かつN−1次キャッシュシステムの該
当するキャッシュラインのウェイがステートE又はS又
はIとしたので、N−1次キャッシュシステムでのライ
トバックを無くすことができる。
【0099】さらにまた、N−1次キャッシュシステム
のリプレース基準を満たすものが複数存在するときLR
U制御に従い選択するように構成したので、アクセス頻
度の高いウェイに影響を与えることなくN−1次キャッ
シュシステムでのライトバックを無くすことができる。
【0100】また、N−1次キャッシュシステムのリプ
レース基準を満たすものが存在しないときLRU制御に
従い選択するように構成したので、アクセス頻度の高い
ウェイに影響を与えることなくN−1次キャッシュシス
テムでのライトバックを無くすことができる。
【0101】さらに、リプレース動作として無効化処理
を行なうように構成したので、ライトバックを無くすこ
とができる。
【0102】また、リプレース動作としてライトバック
処理を行なうように構成したので、ライトバックを無く
すとともに、N−1次キャッシュのN次キャッシュに対
するリード操作のキャッシュミスの発生を抑止すること
ができる。
【0103】さらにまた、バスがアイドル状態又はバス
トラフィックが低負荷状態のとき先行リプレース要求を
発行するように構成したので、バストラフィックに与え
る影響を少なくして先行リプレース処理を行なうことが
できる。
【0104】また、バス上に発行されているトランザク
ション数が予め設定した基準値以下のとき先行リプレー
ス要求を発行するように構成したので、バス上の他のト
ランザクションに与える影響を少なくして先行リプレー
ス処理を行なうことができる。
【0105】さらに、N−1次キャッシュシステム及び
N次キャッシュシステムがスヌープ中でないとき先行リ
プレース要求を発行するように構成したので、他のプロ
セッサのスヌープ処理に影響を与えることなく先行リプ
レース処理を行なうことができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1のキャッシュシステ
ムを示す構成図である。
【図2】 この発明の実施の形態1のL2キャッシュシ
ステムを示す内部構造図である。
【図3】 この発明の実施の形態1のキャッシュミス時
のリプレース動作を示すフローチャートである。
【図4】 この発明の実施の形態1の先行リプレース動
作を示すフローチャートである。
【図5】 この発明の実施の形態2の先行リプレース動
作を示すフローチャートである。
【図6】 この発明の実施の形態3の先行リプレース動
作を示すフローチャートである。
【図7】 この発明の実施の形態4の先行リプレース動
作を示すフローチャートである。
【図8】 この発明の実施の形態5の先行リプレース動
作を示すフローチャートである。
【図9】 この発明の実施の形態6の先行リプレース動
作を示すフローチャートである。
【図10】 この発明の実施の形態7のL2キャッシュ
システムを示す内部構造図である。
【図11】 この発明の実施の形態7のバス監視手段を
示す回路図である。
【図12】 この発明の実施の形態8のバス監視手段を
示す回路図である。
【図13】 この発明の実施の形態9のL2キャッシュ
システムを示す内部構造図である。
【図14】 この発明の実施の形態9のカウント基準値
格納手段を示す構成図である。
【図15】 この発明の実施の形態10のL2キャッシ
ュシステムを示す内部構造図である。
【図16】 この発明の実施の形態10のバス監視手段
を示す回路図である。
【図17】 従来例のMESIプロトコルを用いたマル
チプロセッサシステムを示す構成図である。
【図18】 従来例のリプレース動作を示すブロック図
である。
【図19】 従来例の階層構造化したマルチプロセッサ
システムを示す構成図である。
【符号の説明】
1102 L2アクセス手段、1103 L1ステート調査リク
エスト発行手段、1105LRU参照手段、1106 リプレー
ス候補判定手段、1110 ステート保持手段、1112 バス
監視手段、1113 先行リプレース要求保持手段。
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成9年12月10日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0042
【補正方法】変更
【補正内容】
【0042】L1キャッシュ1a、1bのステートはそれぞ
れM及びI、S及びS、I及びI、E及びIなので、先
行リプレース決定回路1111はL1キャッシュ1a、1bのス
テートが両方ともIであるアドレスCを先行リプレース
対象と決定し、リプレース処理手段1107に対して無効化
要求を出す。無効化要求を受けたリプレース処理手段11
07はL2アクセス手段1102に対してアドレスCに対する無
効化要求を出す。このリクエストがL2アクセス手段1102
により受け付けられると、先行リプレース決定手段1111
はステート保持手段1110に対し、保持してあるアドレス
A、アドレスB、アドレスC、アドレスDのキャッシュ
ラインのステート情報を消去する要求を出し、ステート
保持手段1110に保持してあるステート情報を削除する。
無効化要求を受けたL2アクセス手段1102はレベル1のバ
ス4に対してアドレスCに対する無効化要求を出す。L
1キャッシュ1aおよびL1キャッシュ1bにはデータが存
しないので、レベル1のバス4におけるL2キャッシ
ュシステム2からの無効化要求に対するL1キャッシュ1
a、1bに対するスヌープ結果はミスになる。レベル1の
バスにおけるスヌープ結果が判明した時点で 、L2キ
ャッシュ1101はデータを主記憶3に対して書き戻し、ス
テートをIに変更する。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0060
【補正方法】変更
【補正内容】
【0060】実施の形態5.この発明の実施の形態5に
おけるキャッシュシステムの構成図およびL2キャッシ
ュシステムの内部の構成図は図1、図2で示したキャッシ
ュシステムの構成図及びL2キャッシュシステムの内部
の構成図と同様のものである。また、この発明の実施の
形態6におけるキャッシュシステムのリプレース動作は
図3に示した実施の形態1のリプレース動作と同様のも
のである。ただし、実施の形態5の先行リプレース手段
1111は先行リプレースとしての条件が成立し、かつ同一
状態のウエイが存在した場合、LRU1104を参照し、よ
り古くアクセスしたアドレスに対して無効化処理を行う
ものである。この実施の形態5における先行リプレース
動作を図8のフローチャートを用いて説明する。 P1: ステート保持手段1110のすべてのウエイにステー
ト情報が集積されたことにより先行リプレース処理の起
動が起こる。 P2: L2キャッシュ1101のステートがすべてMであった
場合P3に進む。Mではないステートのウエイがあった
場合はP7に進む。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0067
【補正方法】変更
【補正内容】
【0067】実施の形態6.この発明の実施の形態6に
おけるキャッシュシステムの構成図およびL2キャッシ
ュシステムの内部の構成図は図1、図2で示したキャッシ
ュシステムの構成図及びL2キャッシュシステムの内部
の構成図と同様のものである。また、この発明の実施の
形態6におけるキャッシュシステムのリプレース動作は
図3に示した実施の形態1のリプレース動作と同様のも
のである。ただし、実施の形態6の先行リプレース手段
1111は先行リプレースとしての条件が成立しなかった場
合、LRU1104を参照し、最も古くアクセスしたアドレ
スに対して無効化処理を行うものである。この実施の形
態6における先行リプレース動作を図9のフローチャー
トを用いて説明する。 Q1: ステート保持手段1110のすべてのウエイにステー
ト情報が集積されたことにより先行リプレース処理の起
動が起こる。 Q2: L2キャッシュ1101のステートがすべてMであった
場合Q3に進む。Mではないステートのウエイがあった
場合はQ6に進む。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0071
【補正方法】変更
【補正内容】
【0071】L1キャッシュ1a、1bのステートはそれぞ
れM及びI、S及びS、M及びI、E及びIなので、す
べてのウエイについてL1キャッシュ1a、1bの双方がス
テートIであるウエイが存在しない結果をえる。そこ
で、先行リプレース決定回路1111はLRU参照手段1105
によりLRU1104を調べ、最も古くにアクセスされたア
ドレスAを先行リプレース対象と決定し、リプレース処
理手段1107に対して無効化要求を出す。ライトバック要
求を受けたリプレース処理手段1107はL2アクセス手段11
02に対してアドレスAに対するリード要求を出す。この
リクエストがL2アクセス手段1102により受け付けられる
と、先行リプレース決定手段1111はステート保持手段11
10に対し、保持してあるアドレスA、アドレスB、アド
レスC、アドレスDのキャッシュラインのステート情報
を消去する要求を出し、ステート保持手段1110に保持し
てあるステート情報を削除する。リード要求を受けたL2
アクセス手段1102はレベル1のバス4に対してアドレス
に対するリード要求を出す。L1キャッシュ1aにはス
テートMの状態でデータが存在するので、レベル1のバ
ス4におけるL2キャッシュシステム2からの無効化要求
に対するL1キャッシュ1aのスヌープ結果はヒットエム
になる。L2キャッシュシステム2はL1キャッシュか
らのライトバックデータを受け取る。データの受け取り
が完了した時点で 、L2キャッシュ1101はデータを主
記憶3に対して書き戻し、ステートをIに変更する。

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 MESIプロトコルにより制御され、N
    次キャッシュシステムとそれに包含されるN−1次キャ
    ッシュシステムからなり、上記N次キャッシュシステム
    上のキャッシュラインの各ウェイのステートを調べる第
    一の調査手段と上記N次キャッシュシステム上のキャッ
    シュラインの各ウェイに格納されたデータのアドレスの
    上記N−1次キャッシュシステムにおけるステートを調
    査する第二の調査手段とを有するキャツシュシステムに
    おいて、調査したステート情報を保持する手段、先行リ
    プレース基準を保持する手段、上記ステート情報と上記
    リプレース基準とからリプレース対象を決定する手段を
    備え、予め設定した条件に一致するキャッシュラインの
    ウェイに格納されたデータをN−1次キャッシュシステ
    ムからのキャッシュミスによるリプレース要求が発生す
    る前に先行してリプレースすることを特徴とするキャッ
    シュシステム。
  2. 【請求項2】 上記先行リプレース基準は、N次キャッ
    シュシステムの該当するキャッシュラインの全てのウェ
    イがステートMであることを特徴とする請求項1記載の
    キャッシュシステム。
  3. 【請求項3】 上記先行リプレース基準は、N次キャッ
    シュシステムの該当するキャッシュラインの全てのウェ
    イがステートMであり、かつN−1次キャッシュシステ
    ムの該当するキャッシュラインのウェイがステートIで
    あることを特徴とする請求項1記載のキャッシュシステ
    ム。
  4. 【請求項4】 上記先行リプレース基準は、N次キャッ
    シュシステムの該当するキャッシュラインの全てのウェ
    イがステートMであり、かつN−1次キャッシュシステ
    ムの該当するキャッシュラインのウェイがステートE又
    はS又はIであることを特徴とする請求項1記載のキャ
    ッシュシステム。
  5. 【請求項5】 上記先行リプレース基準は、N次キャッ
    シュシステムの該当するキャッシュラインの全てのウェ
    イがステートMであり、かつN−1次キャッシュシステ
    ムの該当するキャッシュラインがステートM以外の同一
    ステートのウェイを有するときはLRU制御に従いいず
    れかのウェイを選択することを特徴とする請求項1〜請
    求項4のいずれかに記載のキャッシュシステム。
  6. 【請求項6】 上記先行リプレース基準は、N次キャッ
    シュシステムの該当するキャッシュラインの全てのウェ
    イがステートMであり、かつN−1次キャッシュシステ
    ムの該当するキャッシュラインのウェイが先行リプレー
    ス基準を満たさないときはLRU制御に従いいずれかの
    ウェイを選択することを特徴とする請求項1〜請求項4
    のいずれかに記載のキャッシュシステム。
  7. 【請求項7】 上記先行リプレースは、キャッシュライ
    ンのウェイに格納されたデータを無効化することである
    ことを特徴とする請求項1〜請求項6のいずれかに記載
    のキャッシュシステム。
  8. 【請求項8】 上記先行リプレースは、キャッシュライ
    ンのウェイに格納されたデータをライトバックすること
    であることを特徴とする請求項1〜請求項6のいずれか
    に記載のキャッシュシステム。
  9. 【請求項9】 バスの状態を監視するバス監視手段と先
    行してリプレースする要求を保持する先行リプレース要
    求保持手段を備え、バスがアイドル状態又はバストラフ
    ィックが低負荷状態のとき先行リプレース要求を発行す
    ることを特徴とする請求項1〜請求項8のいずれかに記
    載のキャッシュシステム。
  10. 【請求項10】 バス上に発行されているトランザクシ
    ョン数が予め設定した基準値以下のとき先行リプレース
    要求を発行することを特徴とする請求項1〜請求項8の
    いずれかに記載のキャッシュシステム。
  11. 【請求項11】 N−1次キャッシュシステム及びN次
    キャッシュシステムがスヌープ中でないとき先行リプレ
    ース要求を発行することを特徴とする請求項1〜請求項
    8のいずれかに記載のキャッシュシステム。
JP9262990A 1997-09-29 1997-09-29 キャッシュシステム Pending JPH11102320A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9262990A JPH11102320A (ja) 1997-09-29 1997-09-29 キャッシュシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9262990A JPH11102320A (ja) 1997-09-29 1997-09-29 キャッシュシステム

Publications (1)

Publication Number Publication Date
JPH11102320A true JPH11102320A (ja) 1999-04-13

Family

ID=17383375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9262990A Pending JPH11102320A (ja) 1997-09-29 1997-09-29 キャッシュシステム

Country Status (1)

Country Link
JP (1) JPH11102320A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772297B2 (en) 2000-10-02 2004-08-03 Fujitsu Limited Cache controlling device and processor
JP2007505407A (ja) * 2003-09-12 2007-03-08 インテル コーポレイション マルチインタフェースキャッシュにおけるジョイントコヒーレンシ状態のための方法及び装置
EP2028595A1 (en) 2007-08-24 2009-02-25 NEC Electronics Corporation Hierarchical cache memory system
JP2009116398A (ja) * 2007-11-01 2009-05-28 Nec Computertechno Ltd ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法
JP2009524137A (ja) * 2006-01-19 2009-06-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 上位レベル・キャッシュのエビクション候補を識別するための巡回スヌープ
JP2011065574A (ja) * 2009-09-18 2011-03-31 Fujitsu Ltd キャッシュメモリ制御装置およびキャッシュメモリ制御方法
WO2012127631A1 (ja) * 2011-03-22 2012-09-27 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
US8499125B2 (en) 2006-08-18 2013-07-30 Fujitsu Limited Control device for snoop tag

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772297B2 (en) 2000-10-02 2004-08-03 Fujitsu Limited Cache controlling device and processor
JP2007505407A (ja) * 2003-09-12 2007-03-08 インテル コーポレイション マルチインタフェースキャッシュにおけるジョイントコヒーレンシ状態のための方法及び装置
JP2009524137A (ja) * 2006-01-19 2009-06-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 上位レベル・キャッシュのエビクション候補を識別するための巡回スヌープ
US8499125B2 (en) 2006-08-18 2013-07-30 Fujitsu Limited Control device for snoop tag
EP2028595A1 (en) 2007-08-24 2009-02-25 NEC Electronics Corporation Hierarchical cache memory system
JP2009053820A (ja) * 2007-08-24 2009-03-12 Nec Electronics Corp 階層型キャッシュメモリシステム
JP2009116398A (ja) * 2007-11-01 2009-05-28 Nec Computertechno Ltd ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法
JP2011065574A (ja) * 2009-09-18 2011-03-31 Fujitsu Ltd キャッシュメモリ制御装置およびキャッシュメモリ制御方法
WO2012127631A1 (ja) * 2011-03-22 2012-09-27 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
JP5527477B2 (ja) * 2011-03-22 2014-06-18 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法

Similar Documents

Publication Publication Date Title
JP3269967B2 (ja) キャッシュコヒーレンシ制御方法、および、これを用いたマルチプロセッサシステム
US6631447B1 (en) Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed
US5706464A (en) Method and system for achieving atomic memory references in a multilevel cache data processing system
US5671391A (en) Coherent copyback protocol for multi-level cache memory systems
JP3533355B2 (ja) キャッシュ・メモリ・システム
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US7549025B2 (en) Efficient marking of shared cache lines
US5692149A (en) Block replacement method in cache only memory architecture multiprocessor
US7003635B2 (en) Generalized active inheritance consistency mechanism having linked writes
JP2010507160A (ja) データ処理装置の共有メモリへの書込みアクセス要求の処理
JP3661764B2 (ja) 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム
JPH07253928A (ja) 2重化キャッシュ・スヌープ機構
JPH08185359A (ja) メモリサブシステム
US6751705B1 (en) Cache line converter
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
JP2003316753A (ja) マルチプロセッサ装置
US5822756A (en) Microprocessor cache memory way prediction based on the way of a previous memory read
US10540283B2 (en) Coherence de-coupling buffer
US5713004A (en) Cache control for use in a multiprocessor to prevent data from ping-ponging between caches
US5675765A (en) Cache memory system with independently accessible subdivided cache tag arrays
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
Al-Waisi et al. An overview of on-chip cache coherence protocols
US5761724A (en) Write-invalidate cache system for a split transaction bus based shared memory multiprocessor
JPH11102320A (ja) キャッシュシステム
US6973541B1 (en) System and method for initializing memory within a data processing system