JPH10105463A - キャッシュシステム及びリプレース判定方法 - Google Patents

キャッシュシステム及びリプレース判定方法

Info

Publication number
JPH10105463A
JPH10105463A JP8256490A JP25649096A JPH10105463A JP H10105463 A JPH10105463 A JP H10105463A JP 8256490 A JP8256490 A JP 8256490A JP 25649096 A JP25649096 A JP 25649096A JP H10105463 A JPH10105463 A JP H10105463A
Authority
JP
Japan
Prior art keywords
cache
state
address
cache system
way
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
JP8256490A
Other languages
English (en)
Inventor
Seiji Seki
誠司 関
Mamoru Kurata
守 倉田
Hiroyuki Iida
博之 飯田
Yasuto Omiya
康人 近江谷
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 JP8256490A priority Critical patent/JPH10105463A/ja
Publication of JPH10105463A publication Critical patent/JPH10105463A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 N次及びN−1次キャッシュのステートの状
態を考慮し、N次キャッシュからリプレースするキャッ
シュラインを決めるため、最も不要なキャッシュライン
をリプレースすることによりキャッシュの効率的な使用
を実現する。 【解決手段】 MESIプロトコルにより制御されるN
次キャッシュシステムに包含されMESIプロトコルに
より制御されるN−1次キャッシュシステムからなる階
層構造のキャッシュシステムにおいて、N次及びN−1
次キャッシュのステートの状態によりリプレースするキ
ャッシュラインのウェイを決定するようにした。

Description

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

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 MESIプロトコルにより制御されるN
    次キャッシュシステムに包含されMESIプロトコルに
    より制御されるN−1次キャッシュシステムからなる階
    層構造のキャッシュシステムにおいて、上記N次キャッ
    シュシステム上のキャッシュラインのウェイのステート
    を調べる第一の調査手段、上記N次キャッシュシステム
    上のキャッシュラインの上記ウェイに格納されたデータ
    のアドレスの上記N−1次キャッシュシステムにおける
    上記アドレスのステートを調査する第二の調査手段、上
    記第一の調査手段及び第二の調査手段による調査結果に
    より上記N次キャッシュシステムにおけるキャッシュラ
    イン上のリプレースするウェイを判定する判定手段を備
    えたことを特徴とするキャッシュシステム。
  2. 【請求項2】 MESIプロトコルにより制御されるN
    次キャッシュシステムに包含されMESIプロトコルに
    より制御されるN−1次キャッシュシステムからなる階
    層構造のキャッシュシステムにおいて、上記N次キャッ
    シュシステム上でリプレース要求のあったキャッシュラ
    インのウェイの状態を示すステートがM又はE又はSの
    とき、そのウェイに格納されたデータのアドレスの上記
    N−1次キャッシュシステムにおける上記アドレスのス
    テートを調査するステップ、このステートの調査結果よ
    りステートがIのときは、そのアドレスの上記N次キャ
    ッシュシステム上の上記ウェイをリプレースすることを
    判定するステップからなることを特徴とするリプレース
    判定方法。
  3. 【請求項3】 MESIプロトコルにより制御されるN
    次キャッシュシステムに包含されMESIプロトコルに
    より制御されるN−1次キャッシュシステムからなる階
    層構造のキャッシュシステムにおいて、上記N次キャッ
    シュシステム上でリプレース要求のあったキャッシュラ
    インの各ウェイの中で使用されなかった期間が1番長い
    ウェイの状態を示すステートがM又はE又はSのとき、
    そのウェイに格納されたデータのアドレスの上記N−1
    次キャッシュシステムにおける上記アドレスのステート
    を調査するステップ、このステートの調査結果よりステ
    ートがIでないときは上記N次キャッシュシステム上で
    リプレース要求のあったキャッシュラインの各ウェイの
    中で使用されなかった期間が2番目に長いウェイの状態
    を示すステートを調査するステップ、以下順次使用され
    なかった期間の長いウェイの順に調査を行いそのウェイ
    の状態を示すステートがM又はE又はSでかつそのウェ
    イに格納されたデータのアドレスの上記N−1次キャッ
    シュシステムにおける上記アドレスのステートがIのと
    きは、そのアドレスの上記N次キャッシュシステム上の
    ウェイをリプレースすることを判定するステップからな
    ることを特徴とするリプレース判定方法。
  4. 【請求項4】 MESIプロトコルにより制御されるN
    次キャッシュシステムに包含されMESIプロトコルに
    より制御されるN−1次キャッシュシステムからなる階
    層構造のキャッシュシステムにおいて、上記N次キャッ
    シュシステム上でリプレース要求のあったキャッシュラ
    インのウェイのステートがMのとき、そのウェイに格納
    されたデータのアドレスの上記N−1次キャッシュシス
    テムにおける上記アドレスのステートを調査するステッ
    プ、この調査結果によりそのステートがE又はS又はI
    であるときは上記ウェイをリプレースすることを判定す
    るステップからなることを特徴とするリプレース判定方
    法。
  5. 【請求項5】 MESIプロトコルにより制御されるN
    次キャッシュシステムに包含されMESIプロトコルに
    より制御されるN−1次キャッシュシステムからなる階
    層構造のキャッシュシステムにおいて、上記N次キャッ
    シュシステム上のキャッシュラインのウェイのステート
    を調べる調査手段、この調査手段による調査結果により
    上記N次キャッシュシステムにおけるキャッシュライン
    上のリプレースするウェイを判定する判定手段を備えた
    ことを特徴とするキャッシュシステム。
  6. 【請求項6】 MESIプロトコルにより制御されるN
    次キャッシュシステムに包含されMESIプロトコルに
    より制御されるN−1次キャッシュシステムからなる階
    層構造のキャッシュシステムにおいて、上記N次キャッ
    シュシステム上でリプレース要求のあったキャッシュラ
    インのウェイのステートがE又はSのとき、そのウェイ
    をリプレースすることを判定するステップからなること
    を特徴とするリプレース判定方法。
  7. 【請求項7】 MESIプロトコルにより制御されるN
    次キャッシュシステムに包含されMESIプロトコルに
    より制御されるN−1次キャッシュシステムからなる階
    層構造のキャッシュシステムにおいて、予め設定した期
    間ごとに上記N次キャッシュシステムにおけるキャッシ
    ュライン上のリプレースするウェイを判定するステッ
    プ、そのウェイのアドレスに対するフラグをセットする
    ステップ、上記N次キャッシュシステム上でリプレース
    要求があったとき上記フラグをセットしたウェイをリプ
    レースすることを判定するステップからなることを特徴
    とするリプレース判定方法。
  8. 【請求項8】 MESIプロトコルにより制御されるN
    次キャッシュシステムに包含されMESIプロトコルに
    より制御されるN−1次キャッシュシステムからなる階
    層構造のキャッシュシステムにおいて、バスがアイドル
    状態又はバストラフィックが低負荷状態のときN−1次
    キャッシュシステムのステートの状態を調べるリクエス
    トの発行を可とするバス監視手段を備えたことを特徴と
    する請求項1記載のキャッシュシステム。
  9. 【請求項9】 上記バス監視手段は、上記N次及びN−
    1キャッシュシステムがスヌープ中でないときに上記第
    二の調査手段により上記N−1次キャッシュシステムに
    おける上記アドレスのステートの調査を可とすることを
    特徴とする請求項8記載のキャッシュシステム。
  10. 【請求項10】 上記バス監視手段は、バス上のトラン
    ザクション回数を計数するカウンタを備え、上記トラン
    ザクション回数が予め設定した基準値以下のときに上記
    第二の調査手段により上記N−1次キャッシュシステム
    における上記アドレスの調査を可とすることを特徴とす
    る請求項8記載のキャッシュシステム。
JP8256490A 1996-09-27 1996-09-27 キャッシュシステム及びリプレース判定方法 Pending JPH10105463A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8256490A JPH10105463A (ja) 1996-09-27 1996-09-27 キャッシュシステム及びリプレース判定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8256490A JPH10105463A (ja) 1996-09-27 1996-09-27 キャッシュシステム及びリプレース判定方法

Publications (1)

Publication Number Publication Date
JPH10105463A true JPH10105463A (ja) 1998-04-24

Family

ID=17293371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8256490A Pending JPH10105463A (ja) 1996-09-27 1996-09-27 キャッシュシステム及びリプレース判定方法

Country Status (1)

Country Link
JP (1) JPH10105463A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100445944C (zh) * 2004-12-21 2008-12-24 三菱电机株式会社 控制电路以及控制方法
JP2009524137A (ja) * 2006-01-19 2009-06-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 上位レベル・キャッシュのエビクション候補を識別するための巡回スヌープ
US7613910B2 (en) 2004-09-30 2009-11-03 Fujitsu Limited Information processing apparatus, method, and computer-readable recording medium for replacing an entry in a memory device
JP2018005395A (ja) * 2016-06-29 2018-01-11 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613910B2 (en) 2004-09-30 2009-11-03 Fujitsu Limited Information processing apparatus, method, and computer-readable recording medium for replacing an entry in a memory device
CN100445944C (zh) * 2004-12-21 2008-12-24 三菱电机株式会社 控制电路以及控制方法
JP2009524137A (ja) * 2006-01-19 2009-06-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 上位レベル・キャッシュのエビクション候補を識別するための巡回スヌープ
JP2018005395A (ja) * 2016-06-29 2018-01-11 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
US10423528B2 (en) 2016-06-29 2019-09-24 Fujitsu Limited Operation processing device, information processing apparatus, and control method for operation processing device

Similar Documents

Publication Publication Date Title
US5692149A (en) Block replacement method in cache only memory architecture multiprocessor
US5551005A (en) Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches
KR100885277B1 (ko) 캐시에서의 라인들을 추론적으로 무효화하는 방법 및 시스템
US7925840B2 (en) Data processing apparatus and method for managing snoop operations
KR100194253B1 (ko) 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
JP2010507160A (ja) データ処理装置の共有メモリへの書込みアクセス要求の処理
US20070156972A1 (en) Cache coherency control method, chipset, and multi-processor system
US20060059317A1 (en) Multiprocessing apparatus
JPH0561770A (ja) データ処理システムのコヒーレンス手段
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
WO2002073417A1 (en) State-based allocation and replacement for improved hit ratio in directory caches
JPH09223118A (ja) スヌープキャッシュメモリ制御システム
US10540283B2 (en) Coherence de-coupling buffer
US6145057A (en) Precise method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests
US6038642A (en) Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system
US5675765A (en) Cache memory system with independently accessible subdivided cache tag arrays
Al-Waisi et al. An overview of on-chip cache coherence protocols
JP2007156821A (ja) キャッシュシステム及び共用2次キャッシュ
US5761724A (en) Write-invalidate cache system for a split transaction bus based shared memory multiprocessor
US10628312B2 (en) Producer/consumer paced data transfer within a data processing system having a cache which implements different cache coherency protocols
US11372757B2 (en) Tracking repeated reads to guide dynamic selection of cache coherence protocols in processor-based devices
JPH11102320A (ja) キャッシュシステム
JPH10105463A (ja) キャッシュシステム及びリプレース判定方法
JPH03163640A (ja) マルチプロセッサシステムおよびそれに用いるキャッシュメモリ