JP2000250812A - メモリ・キャッシュ・システムおよびその管理方法 - Google Patents

メモリ・キャッシュ・システムおよびその管理方法

Info

Publication number
JP2000250812A
JP2000250812A JP2000046247A JP2000046247A JP2000250812A JP 2000250812 A JP2000250812 A JP 2000250812A JP 2000046247 A JP2000046247 A JP 2000046247A JP 2000046247 A JP2000046247 A JP 2000046247A JP 2000250812 A JP2000250812 A JP 2000250812A
Authority
JP
Japan
Prior art keywords
cache
data
level
low
specified data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000046247A
Other languages
English (en)
Other versions
JP3533355B2 (ja
Inventor
Lee Furiiaakusen Donald
ドナルド・リー・フリーアークセン
Michael Lippert Gary
ゲイリー・マイケル・リッパート
D Irish John
ジョン・ディー・アイリッシュ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000250812A publication Critical patent/JP2000250812A/ja
Application granted granted Critical
Publication of JP3533355B2 publication Critical patent/JP3533355B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Abstract

(57)【要約】 【課題】 マルチプロセッサ環境において、性能を改善
するように管理されたメモリ・キャッシュ・システムを
提供する。 【解決手段】 第1のプロセッサ24aは、第1のレベ
ル1キャッシュ28aを用いてデータにアクセスし、第
2のプロセッサ24aは、第2のレベル1キャッシュ2
8bを用いてデータにアクセスする。記憶制御回路22
は、第1と第2のレベル1キャッシュ26とレベル2キ
ャッシュとメイン・メモリ14との間に配置される。レ
ベル2キャッシュは、主記憶装置内のデータのコピーを
管理し、それらのレベル1キャッシュがデータのコピー
を有し、それらのコピーが変更されているか否かの指示
を、さらに管理する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュ性能を
改善するようなメモリ・キャッシュ・システムの管理に
関する。
【0002】
【従来の技術】データ処理システムにおいては、命令お
よび関連データが、処理のためにメモリから1つ以上の
プロセッサに転送され、プロセッサにより発生されたデ
ータが、記憶のために、メモリに戻される。したがっ
て、典型的な処理動作は、メモリからの頻繁かつ反復的
な読取りおよび書込みを含んでいる。その結果、メモリ
・アクセス遅延は、しばしばデータ処理システムの性能
における1次制限となる。したがって、好ましくは、メ
モリ・アクセス速度は、性能を最大にするために、最高
でなければならない。しかし、コストおよび他の抑制
は、メイン・メモリが、比較的長いアクセス時間の回路
を備えることを要求する。性能欠陥を克服するために、
メモリ・キャッシュが典型的に用いられる。
【0003】メモリ・キャッシュは、典型的に、比較的
小さいが高速のメモリのバンクを有している。メモリの
バンクは、メイン・メモリよりもより高速に、プロセッ
サによってアクセスすることができる。メイン・メモリ
のメモり位置は、キャッシュに複製される。プロセッサ
によってアクセスされる特定のメモり位置が、キャッシ
ュに複製されているとき−−キャッシュ“ヒット(hi
t)”として知られるイベント−−、プロセッサは、メイ
ン・メモリへのアクセスを待つ代わりに、キャッシュを
高速にアクセスすることができる。キャッシュは、キャ
ッシュにおけるヒットであるアクセスの割合を最大にす
ることを目的として管理される。
【0004】キャッシュは、典型的に、メイン・メモリ
において見出されるメモリ位置の比較的長いシーケンス
である“ライン(line)”に構成される。典型的に、プロ
ッセサによってアクセスされるメモリ位置がキャッシュ
に複製されていないとき−−キャッシュ“ミス(miss)”
として知られるイベント−−、ミスされたメモリ位置と
近接メモリ位置とを含む全ラインが、他のキャッシュま
たはメイン・メモリから、ミスされたメモリ位置を検索
する役割として、キャッシュにもたらされる−−キャッ
シュへの“ラインフィル(linefill)”として知られるイ
ベント−−。
【0005】典型的に、各キャッシュ・ラインは、メイ
ン・メモリの位置の複数のグループに関連する。各キャ
ッシュ・ラインは、メモリ位置の関連グループの複製を
格納し、およびどのグループのメモリ位置がラインに現
在格納されているかの指示を格納する。したがって、プ
ロセッサが、特定のメモリ位置へのアクセスを要求する
と、メモリ位置に対応するキャッシュ・ラインがアクセ
スされて、要求されたメモリ位置を含むメモリ位置のグ
ループを、キャッシュ・ラインが格納しているか否か
を、判別する。格納しているならば、要求されたメモリ
位置は、キャッシュにおいてアクセスされる。そうでな
ければ、要求されたメモリ位置を含むメモリ位置のグル
ープが、キャッシュにラインフィルされる。
【0006】典型的にn−ウェイ結合キャッシュには、
キャッシュのキャッシュ・ラインに対応するメモリ位置
のいくつかのグループのうちのnグループを一度に格納
する。メモリ位置のグループがキャッシュにラインフィ
ルされると、同一キャッシュ位置におけるメモリ内容を
置換する必要がある。置換されたキャッシュ・ラインの
内容が変更されたならば、ラインは、メイン・メモリ内
のメモリ位置の対応するグループにストアバックされな
ければならない−−キャッシュからの“キャストバック
(castback)”または“ライトバック(writeback)”とし
て知られるイベント−−。
【0007】高性能データ処理システムには、多くの場
合、2つ以上のキャッシュがある。これらキャッシュ
は、“レベル1(level 1)”すなわちL1キャッシュに
そのメモリ位置の複製を配置する最初の試みによって、
プロセッサは、メモリ位置をアクセスしようとするよう
に構成されている。しかしL1キャッシュにミスがある
と、“レベル2”すなわちL2キャッシュに所望のメモ
リ位置の複製を配置する試みがなされる。L2キャッシ
ュにミスがあれば、各下位レベル・キャッシュは、同じ
ようにシーケンシャルにチェックされる。キャッシュの
1つにヒットがあれば、所望のメモリ位置が、キャッシ
ュから得られ、典型的に、少なくともL1キャッシュの
適切な位置に、キャッシュ・ラインを完成する近接位置
と共に、アクセスされたメモリ位置が複製される−−い
くつかの場合には、アクセスを“キャッシュ使用禁止(c
ache-inhibited)”とすることができるが−−。この場
合、データは、検索後は、L1キャッシュには格納され
ない。全てのキャッシュにミスがあるならば、ミスされ
たメモリ位置は、キャッシュ・ラインを完成する近接メ
モリ位置と共に、メイン・メモリから検索され、アクセ
スがキャッシュ使用禁止でないならば、1つ以上のキャ
ッシュに満たされる。同様に、ラインがキャッシュから
キャストバックされるならば、ラインを、ハイレベル・
キャッシュ,メイン・メモリ,またはこれらの両方にも
書き込むことができる。
【0008】典型的に、命令およびデータのラインが、
バッファを用いて、キャッシュおよびプロセッサから、
他のキャッシュおよびプロセッサへ転送される。例え
ば、1つのアーキテクチャにおいて、2つのバッファ
が、レベル1キャッシュおよびレベル2キャッシュにそ
れぞれ接続されている。これらのバッファは、また、メ
イン・メモリ,ホスト・プロセッサ,おそらくシステム
・バスを経て他のプロセッサに接続される。バッファ
は、異なる転送速度を有する要素間のデータまたは命令
のスムースな遷移を可能にする。
【0009】マルチプロセッサ・システムでは、多くの
場合、1つ以上の下位レベル・キャッシュまたはメイン
・メモリが、複数のプロセッサによって共用される。こ
のような環境では、データがプロセッサによって変更さ
れると、他のプロセッサがデータをアクセスする前に、
共用キャッシュまたはメモリに変更が戻されて、プロセ
ッサが更新されなかったデータに対して動作を実行しな
いことに注意が払われなければならない。典型的に、こ
のような環境では、プロセッサがデータを変更し得る前
に、プロセッサはそのデータの所有権を要求しなければ
ならない。データの所有権が一旦プロセッサに許可され
ると、そのプロセッサはデータに対する排他的アクセス
を有し、他のプロセッサは、データが共用キャッシュま
たはメモリにライトバックされるまで、データをアクセ
スまたは変更することを阻止される。第1のプロセッサ
が、第2のプロセッサによって排他的に保持されたデー
タをアクセスしようとするならば、第1のプロセッサ
は、データの所有権を要求し、その結果、第2のプロセ
ッサは、共用キャッシュまたはメモリにデータをライト
バックさせられ、したがって、データは第1のプロセッ
サに送られる。
【0010】
【発明が解決しようとする課題】この典型的な構造は、
例えば、2つのプロセッサが同時に同一のデータを書き
込む場合のような特定の状況では、非効率につながる。
このような状況では、第1のプロセッサは、データの所
有権を得て、データを書き込む。次に、第2のプロセッ
サが、データを書き込むために所有権を要求して、第1
のプロセッサに、共用キャッシュまたはメモリにデータ
をライトバックさせて、データを第2のプロセッサに排
他状態で送ることができるようにする。次に、第1のプ
ロセッサが、データを書き込むために、所有権を要求し
て、第2のプロセッサに、共用キャッシュまたはメモリ
にデータをライトバックさせて、データを第1のプロセ
ッサに排他状態で送ることができるようにする。この交
換は、両方のプロセッサがデータを書き込もうとする限
り、繰り返され、このことは、共用キャッシュまたはメ
モリへの過剰な量のライトバックおよび性能の低下につ
ながる。
【0011】したがって、特にマルチプロセッサ環境に
おいて、性能を改善するように管理されたキャッシュの
必要性が存在している。
【0012】
【課題を解決するための手段】本発明の原理によれば、
メモリ・キャッシュ・システムは、第1と第2のプロセ
ッサを有するマルチプロセッサ環境で使用される。第1
のプロセッサは、第1のキャッシュと共用低レベル記憶
システムを用いてデータにアクセスし、第2のプロセッ
サは、第2のキャッシュと共用低レベル記憶システムを
用いてデータにアクセスする。記憶制御回路は、第1お
よび第2のキャッシュと共用低レベル記憶システムとの
間に配置される。第1と第2のプロセッサが、それぞれ
の第1または第2のキャッシュにないデータにアクセス
すると、このデータのために記憶制御回路へ要求が送ら
れる。第1と第2のプロセッサによる同一データへの繰
り返し書込みの効果改善するために、記憶制御回路が、
第1のキャッシュからデータの要求を受け取り、そのデ
ータが第2のプロセッサによって変更されかつ第2のキ
ャッシュに変更された形式で格納されると、記憶制御回
路は、第2のキャッシュに、共用低レベル記憶システム
にデータを戻すことなく、第1のキャッシュへ変更され
たデータを転送させる。
【0013】以下に述べる特定の実施の形態において、
共用低レベル記憶システムは、レベル1キャッシュであ
る第1または第2のキャッシュと比較して、低レベルな
すなわちレベル2キャッシュを含む。レベル2キャッシ
ュは、主記憶装置内のデータのコピーを管理し、それら
のレベル1キャッシュがデータのコピーを有している
か、およびそれらのコピーが変更されているか否かの指
示を、さらに管理する。レベル1キャッシュからのデー
タの要求が記憶制御回路によって受け取られると、この
要求はレベル2キャッシュに送られ、レベル2キャッシ
ュは、他のレベル1キャッシュがデータの変更されたコ
ピーを格納しているか否か判別する。格納しているなら
ば、レベル2キャッシュは、記憶制御回路に、データの
変更されたコピーを有するレベル1キャッシュへのポイ
ンタを戻す。
【0014】レベル2キャッシュは、待ち行列のデータ
を、最長時間未使用(least recently used)から最新使
用(most recently used)まで管理する。レベル1キャッ
シュからのデータの要求が、他のレベル1キャッシュへ
のポインタを戻すことによって、満たされると、レベル
2キャッシュは更新されて、レベル2キャッシュ内のそ
のデータのコピーを、最新使用として識別する。
【0015】各レベル1キャッシュは、レベル1キャッ
シュ内のデータが共用されまたは変更されているか否か
の指示を管理する。共用されたデータを書き込みする試
みがなされるならば、所有権の要求が、データを書き込
む前に、レベル2キャッシュに送られる。レベル2キャ
ッシュは、レベル2キャッシュ内のデータが共用され、
排他的,または変更されているか否かの指示を管理す
る。レベル2キャッシュ内のデータの所有権の要求が、
レベル1キャッシュによってなされるとき、レベル2キ
ャッシュ内のデータが共用と識別されるならば、レベル
2キャッシュは、レベル1キャッシュに所有権を許可す
る前に、システム・バスからデータの所有権を要求す
る。さらに、レベル1キャッシュにデータの所有権を許
可する役割として、変更目的の読取りに応答して、レベ
ル1キャッシュにデータを送る役割として、レベル2キ
ャッシュは、そのデータのコピーを有する全てのレベル
1キャッシュを指示して、データをフラッシュする。レ
ベル2キャッシュは、また、所有権がレベル1キャッシ
ュに許可され、またはデータが変更目的の読取りに応答
してレベル1キャッシュに送られるときは常に、データ
は、変更されたとしてマークされる。
【0016】レベル2キャッシュが、エージングによっ
て、または他の複合プロセッサへの所有権の消失によっ
てデータを除去すると、レベル2キャッシュは、データ
の未変更コピーを有するレベル1キャッシュを指示し
て、レベル1キャッシュからのデータをフラッシュし、
またはデータの変更されたコピーを有するレベル1キャ
ッシュを指示して、変更されたデータを主記憶装置にラ
イトバックし、およびレベル1キャッシュからのデータ
をフラッシュする。レベル2キャッシュが、他の複合プ
ロセッサからの要求を受け取って、データを読み取る
と、レベル2キャッシュは、データの変更されたコピー
を有するレベル1キャッシュを指示して、データを主記
憶装置とレベル2キャッシュにライトバックし、データ
に共用されたとしてマークする。
【0017】本発明を特徴づける上記および他の特徴と
利点は、請求の範囲に示され、また請求の範囲の他の部
分を構成する。しかし、本発明と、その使用を通して得
られる利点と目的をよりよく理解するには、図と、本発
明の代表的な実施の形態を述べた以下の説明を参照すべ
きである。
【0018】
【発明の実施の形態】図1に示すように、本発明の原理
を利用する典型的なコンピュータ・システムは、1つ以
上のシステム・プロセッサおよびキャッシュ・システム
12,主記憶装置14,入出力拡張ユニットにつながる
光ファイバ・ケーブルを接続するモジュールを含むロー
カル・バス・アタッチメント・カード16,記憶装置1
8’のための記憶コントローラ18,ワークステーショ
ン20’のためのワークステーション・コントローラ2
0を有するシステム処理ユニット10を備えている。
【0019】図2は、本発明の原理によるプロセッサお
よびキャッシュ・システム12を示す。以下に詳細に説
明する本発明の原理に従って、第1の複合プロセッサ3
2内で、記憶コントロール・ユニット22は、メモリ性
能を拡大させるようにプロセッサによって利用されるデ
ータを管理する。
【0020】コンピュータ・システムの各プロセッサ2
4は、L1キャッシュおよびコントロール回路28と対
話し、必要なデータを得て格納する。各L1キャッシュ
28は、比較的にわずかの、例えば512または102
4個のキャッシュ・ラインを格納する。各キャッシュ・
ラインは、主記憶装置14内の順次メモリ位置のグルー
プ、例えば128個の順次メモり位置のグループのコピ
ーを格納する。主記憶装置14内の各アドレスは、L1
キャッシュ28内のラインに固有に関連し、特定アドレ
スについてのL1キャッシュ28内の関連したライン
は、アドレスのビットのサブセットから判別できる。同
じ関連を通じて、L1キャッシュ28内の各キャッシュ
・ラインは、そのキャッシュ・ラインに格納され得る順
次アドレスのいくつかのグループに関連する。常に、L
1キャッシュ28内のキャッシュ・ラインは、そのキャ
ッシュ・ラインに関連した少数の、例えば2つのアドレ
ス範囲に対して、順次メモり位置のコピーを格納でき
る。
【0021】各L1キャッシュ28は、どの順次メモり
位置がそのL1キャッシュ28に格納されているかを識
別するディレクトリを有している。特に、L1キャッシ
ュ・ディレクトリは、L1キャッシュ28のラインに現
在ある、すなわち常駐している、主記憶装置14内のメ
モり位置のアドレス範囲の指示を格納する。上述のよう
に、主記憶装置14内の順次メモり位置の複数の異なる
グループを、L1キャッシュ28内の同じラインにマッ
プでき、したがって、L1キャッシュ・ディレクトリ
は、主記憶装置14内のメモり位置の複数の異なるグル
ープのいずれかが、L1キャッシュ28に常駐するかを
識別する。
【0022】L1キャッシュ28は、記憶コントロール
・ユニット22と対話し、データと命令を得て、コンピ
ュータ・プログラムを実行する。プロセッサ24a,2
4bが、各L1キャッシュおよびコントロール回路28
a,28bを介してメモり位置にそれぞれアクセスする
とき、L1キャッシュおよびコントロール回路が、要求
されたデータを格納していないならば、アクセス要求
は、記憶コントロール・ユニット22に送られる。以下
に述べる回路と機能を用いて、記憶コントロール・ユニ
ット22は、要求されたデータを得て、要求するL1キ
ャッシュおよびコントロール28a,28bに、データ
を送る。
【0023】本発明の原理を実施する記憶コントロール
・ユニット22は、キャッシュ,バッファおよび主記憶
装置を含む種々の記憶ユニットを用いて、プロセッサ2
4a,24bおよびL1キャッシュ28a,28bから
の/へのデータの入出力を制御する。記憶コントロール
・ユニット22は、プロセッサ24a,24bへの命令
の出力と入力をさらに管理する。
【0024】図2に示されるように、記憶コントロール
・ユニット22は、主記憶装置14とインターフェース
する。主記憶装置14は、1つ以上のDRAMチップの
ような相対的に大容量で、通常速度のメモリのバンクを
有している。主記憶装置14は、ページング・メモリ管
理スキームを実施し、特に、通常速度のメモリは、大容
量記憶(図1の18’参照)のバンクからスワップされ
たメモり位置のページを格納し、これらのメモり位置へ
のより速いアクセスを容易にする。
【0025】主記憶装置14の各記憶位置は、主記憶装
置14内の全てのメモり位置の中で、そのメモり位置を
一意的に識別するアドレスに関連している。メモり位置
にアクセスするには、アドレスが主記憶装置14に送ら
れ、それに応答して主記憶装置14は、識別されたメモ
り位置の内容を送る。そのようなアクセスの役割とし
て、アドレスおよびアクセスの種類を含む、アクセスの
記述がシステム・バス23に供給される。したがって、
他の複合プロセッサが主記憶装置14にアクセスする
と、記憶コントロール・ユニット22は、システム・バ
ス23を監視して、アクセスの種類を識別して、以下に
説明するように適切な処理を行う。
【0026】頻繁に用いられるメモり位置に高速アクセ
スを与えるために、記憶コントロール・ユニット22
は、レベル2すなわちL2キャッシュ26にさらにイン
ターフェースする。L2キャッシュ26は、L1キャッ
シュ28に類似している。L2キャッシュ26内の各ラ
インは、順次メモり・アドレスの多数のグループに関連
し、そのいくつかは関連するL2キャッシュ・ラインに
一度に格納できる。さらに、L2キャッシュ26は、L
2キャッシ・ディレクトリに関連する。L2キャッシ・
ディレクトリ内の各エントリは、L2キャッシュ26に
格納されたメモり位置のアドレス範囲を識別する。要求
されたアドレスがL2キャッシュ26内にあるか否かを
識別するには、アドレスからの選ばれたビットが用いら
れて、L2キャッシ・ディレクトリ内のエントリのうち
の一意的に関連する1つを選択し、そしてL2キャッシ
・ディレクトリ・エントリ内に格納されたアドレス範囲
は、要求されたアドレスと比較される。
【0027】大半のアクセスは、L1キャッシュ28に
送られる前に、記憶コントロール・ユニット22内でバ
ッファリングを受ける。特に、記憶コントロール・ユニ
ット22は、キャッシュ・バッファ30を含む。このバ
ッファは、また中間または遷移キャッシュとして知ら
れ、L1キャッシュ28からの/への、L2キャッシュ
26および/または主記憶装置14への/からのデータ
の送出を管理する。キャッシュ・バッファ30は、少数
の、例えば8個のデータ記憶のラインを含み、各ライン
は、L1キャッシュ28およびL2キャッシュ26内の
ラインと同じ量のデータを格納することができる。キャ
ッシュ・バッファ30内の8個のラインは、データがキ
ャッシュ28,26と主記憶装置14との間に転送され
るときに、L1キャッシュ28およびL2キャッシュ2
6に格納された、または主記憶装置14内のメモり位置
のグループに対応するラインを、バッファするために用
いられる。
【0028】キャッシュ・バッファ30内の各ライン
は、キャッシュ・バッファ・ラインの現在の使用と状
況、特にラインが使用されているか否かを、ラインが用
いられているならば、ラインが用いられているアクセス
の種類,アクセスをサービスする状況とアクセスのアド
レス,および他の情報を識別するデータを格納する。L
1キャッシュ28においてミスがあり、データをL2キ
ャッシュ26または主記憶装置14から得なければなら
ない場合には、キャッシュ・バッファ30内のラインは
ミスに割り当てられ、データがL2キャッシュ26また
はメイン・メモリから戻されると、データがキャッシュ
・バッファ30の割り当てられたラインに格納され、そ
してこのラインからL1キャッシュ28および/または
L2キャッシュ26に転送される。同様に、L1キャッ
シュ28またはL2キャッシュ26または他の状態への
ラインの検索が、ラインからL2キャッシュまたは主記
憶装置14へのキャストバックを要求し、キャッシュ・
バッファ30のラインはキャストバックに割り当てら
れ、データは、L1キャッシュ28またはL2キャッシ
ュ26からキャッシュ・バッファ30の割り当てられた
ラインにキャストバックされ、そしてこのラインからL
2キャッシュ26または主記憶装置14へ転送される。
【0029】特定のアクセスとキャストバックへのキャ
ッシュ・ラインの割当と、キャッシュ・バッファ30へ
のアクセスとキャストバックのためのデータを得て、キ
ャッシュ・バッファ30からデータを送出する処理は、
記憶コントロール・ユニット22に格納されたデータを
用いて、記憶コントロール・ユニット22内のロジック
によって管理される。自身のプロセッサとキャッシュ・
システム(図2に示さず)を有する、32’のような追
加的複合プロセッサを、主記憶装置14およびデータを
ロードし格納するためのシステム・バス23に接続でき
ることが分かる。
【0030】次に図3を参照して、L2キャッシュ26
の詳細を説明する。L2キャッシュ26は、記憶コント
ロール・ユニット22と通信するインターフェース論理
回路34と、キャッシュされたデータをそれぞれが格納
する複数のキャッシュ・ライン36とを含んでいる。ラ
イン36は、いくつかの制御領域と、キャッシュされた
データを格納する領域38とを含む。本発明の原理を実
施するのに必要な制御領域は、キャッシュ・ラインによ
って管理されるデータのコピーを有するL1キャッシュ
を識別するL1プレゼンス・ビット領域40、ラインの
状態(排他的,共用された,または変更された)を識別
する状態領域42、領域38のデータが対応する主記憶
装置14内のアドレスを識別するタグ領域44を含む。
以下に詳細に説明するように、記憶コントロール・ユニ
ット22から受け取ったコマンドとデータに応答し、ラ
イン36からのデータを保存しまたは検索する。L2キ
ャッシュ26は、また、ライン36の待ち行列を管理し
て、それらのラインを最長時間未使用(least recently
used)から最新使用(most recently used)に整列させる
ことによって、ライン36の置換を管理する。
【0031】次に図4を参照して、L1キャッシュの詳
細を説明する。L1キャッシュ28は、記憶コントロー
ル・ユニット22と通信するインターフェース論理回路
46と、キャッシュされたデータをそれぞれが格納する
複数のキャッシュ・ライン52とを含む。ライン52
は、いくつかの制御領域と、キャッシュされたデータを
格納する領域54とを含む。本発明の原理を実施するの
に必要な制御領域は、キャッシュ・ラインのデータが有
効か否か識別する有効領域56、領域54内のデータが
対応する主記憶装置14内のアドレスを識別するタグ領
域58、キャッシュ・ライン52内のデータのラインの
状態(共用または変更された)を識別する状態領域60
を含む。L1キャッシュ28は、記憶コントロール・ユ
ニット22から受け取ったコマンドおよびデータに応答
し、ライン52からのデータを保有しまたは検索する。
L1キャッシュ28は、また、ライン52の待ち行列を
管理して、それらのラインを最長時間未使用から最新使
用に整列させることによって、ライン52の置換を管理
する。
【0032】図5を参照して、関連するプロセッサから
の読取り動作の受け取りに応答して、L1キャッシュに
より、実行される動作を説明する。読取り動作(ステッ
プ100)に応答して、L1キャッシュは、キャッシュ
が、要求されたデータに対して有効なキャッシュ・ライ
ン(CL)を有するか否かを判別する(ステップ10
2)。有するならば、ステップ104で、配置されたC
Lがキャッシュ内の最新使用の位置に移動され、ステッ
プ106で、配置されたCLから所望のデータが読み取
られ、プロセッサに戻される。しかし、要求されたデー
タに対して有効CLがないならば、ステップ108(図
8に基づいて以下に詳述される)で、CLが、要求され
たデータを含むL1キャッシュに加えられ、ステップ1
06で、配置されたCLから所望のデータが読み取られ
て、プロセッサに戻される。
【0033】図6を参照して、関連するプロセッサから
の書込み動作の受け取りに応答して、L1キャッシュに
より実行される動作を説明する。最初のステップ110
で、要求されたデータに対してキャッシュ内にCLがあ
るか否かを、L1キャッシュが判別する。CLがあるな
らば、処理は、ステップ112に進み、このステップで
は、配置されたCLが、最新使用にされる。次に、ステ
ップ114で、配置されたCLを評価して、CLが“変
更された(modified)”とマークされたか否かを判別す
る。
【0034】上述したように、L1キャッシュ内の各C
Lは、“共用された(shared)”または“変更された”の
状態を有することができる。“共用された”状態は、L
1キャッシュのデータが、L2キャッシュまたはメイン
・メモリからキャッシュに読み込まれなかったので、変
更されなかったことを示し、および同様のデータの未変
更のコピーを格納している1つ以上の他のキャッシュが
存在することを示している。“変更された”状態は、L
1キャッシュのデータが、L2キャッシュまたはメイン
・メモリからキャッシュに読み込まれたので、変更され
たことを示している。明らかなように、L1キャッシュ
がデータの排他的所有権を要求して受け取ったならば、
L1キャッシュはCLを“変更された”状態にする。し
たがって、CLが“変更された”状態にあるとき、この
ことは、データのコピーを格納する他のキャッシュはな
いことをさらに示している。
【0035】したがって、ステップ114で、配置され
たCLが“変更された”をマークされていないことが判
別されると、配置されたCLのデータは未変更であり、
データのコピーを有する他のキャッシュが存在し得るこ
とを判別できる。したがって、配置されたCLに書き込
む前に、ステップ116で、所有権の要求が、L2キャ
ッシュ26に送られる。以下に示されるように、この所
有権の要求は、L2キャッシュにより受け取られるか、
または拒否される。ステップ118で、所有権への要求
が受け取られたか否かが判別され、受け取られなけれ
ば、ステップ116で要求が再試行される。ステップ1
18,116のこのループは、所有権が受け取られるま
で、繰り返す。その時点で、ステップ120において、
L1キャッシュは、配置されたCLが、要求に対して有
効データを有し続けるか否かを判別する。このステップ
は、L1キャッシュにおける他の要求の処理(以下に説
明する)が、所有権を得ようとする試みにおいてステッ
プ118,116のループが繰り返される間に発生し得
るという可能性の故に、実行される。
【0036】ステップ120で、配置されたL1キャッ
シュのCLが、要求に対する有効データを有し続けるな
らば、ステップ122で、配置されたL1キャッシュの
CLが“変更された”とマークされて、CLのデータが
変更され、およびステップ124で、プロセッサにより
書き込まれるデータが、L1キャッシュのCLに書き込
まれる。
【0037】ステップ120で、配置されたL1キャッ
シュのCLが、要求に対してもはや有効データを有さな
い、またはステップ110で、要求に対するデータを有
する有効なCLがキャッシュにないならば、処理はステ
ップ126に達する。ステップ126では、図8を参照
して以下に説明するように、新しいデータを有するL1
キャッシュにCLが加えられる。このステップの後、ス
テップ124で、要求に対するデータが、新しく加えら
れたCLに書き込まれる。
【0038】図7を参照して、共用ライトバック,フラ
ッシュ・ライトバックまたはフラッシュ・コマンドのL
1キャッシュにより実行される動作を、説明する。
【0039】以下に詳述するように、L1キャッシュ
は、次にようなときに共用ライトバックを受け取る。す
なわち同一の複合プロセッサ内のL2キャッシュが、他
の複合プロセッサが共用ライトバック・コマンドの対象
であるデータを受け取ろうとしていることを判別し、さ
らにデータの変更されたバージョンがL1キャッシュ内
にあることをさらに判別するときである。共用ライトバ
ック・コマンドに応答して、L1キャッシュ内の変更さ
れたデータが、L2キャッシュおよびメイン・メモリに
ライトバックされ、L1キャッシュ内の変更されたデー
タの状態は、“変更された”から“共用された”に変え
られる。
【0040】以下に詳述するように、L1キャッシュ
は、次のようなときに、フラッシュ・ライトバック・コ
マンドを受け取る。すなわち、同一の複合プロセッサ内
のL2キャッシュが、他の複合プロセッサがフラッシュ
・ライトバック・コマンドの対象であるデータを受け取
ろうとしていることを判別し、さらにデータの変更され
たバージョンがL1キャッシュ内にあることをさらに判
別するときである。フラッシュ・ライトバック・コマン
ドは、次のようなときに発生する。すなわち、L2キャ
ッシュが、エージングの故に、L2キャッシュ内の対応
データのためのキャッシュ・ラインを除去し、およびL
1キャッシュ内のL2キャッシュ・ラインのためのデー
タの変更されたバージョンがあるときである。フラッシ
ュ・ライトバック・コマンドは、また次のようなときに
発生する。すなわち、L2キャッシュが、遷移キャッシ
ュを命令して、1つのL1キャッシュから他のL1キャ
ッシュへ、変更されたデータを転送することができると
きである。フラッシュ・ライトバック・コマンドに応答
して、L1キャッシュ内の変更されたデータが、遷移キ
ャッシュにライトバックされ、L1キャッシュ内のデー
タが無効にされる。次に遷移キャッシュは、L2キャッ
シュおよびメイン・メモリにデータを転送し、または他
のL1キャッシュにデータを転送する。
【0041】最後に、以下から明らかなように、L1キ
ャッシュは、次のようなときに、フラッシュ・コマンド
を受け取る。すなわち、同一複合プロセッサのL2キャ
ッシュが、L1キャッシュ内のデータが変更されなかっ
たときに、L1キャッシュからデータを除去しなければ
ならないことを判別するときである。このことは、次の
ようなときに発生し得る。すなわち、同一の複合プロセ
ッサまたは他の複合プロセッサ内の他のプロセッサが、
データの所有権を得ようとするとき、あるいはL2キャ
ッシュが、エージングの故に、L2キャッシュ内の同一
データのためのキャッシュ・ラインを除去するときであ
る。フラッシュ・コマンドに応答して、L1キャッシュ
は、L1キャッシュ内のデータを無効にする。
【0042】したがって、フラッシュ・ライトバックま
たは共用ライトバックのL1キャッシュによって受け取
られると、データは、遷移キャッシュ・バッファを経
て、L2キャッシュまたはメイン・メモリ、あるいはこ
れらの両方に戻されなければならない。したがって、フ
ラッシュまたは共用ライトバック・コマンドを受け取っ
た後、第1のステップ130で、L1キャッシュは、デ
ータが書き込まれるべき遷移キャッシュ(transition c
ache:TC)・ライン番号を受け取る。次に、ステップ
132で、L1キャッシュは、フラッシュまたは共用ラ
イトバック・コマンドで識別されたデータを含むL1キ
ャッシュ内のCLを識別する。通常、識別されたデータ
のためのL1キャッシュ内にCLがある。しかし、同一
のエージング動作(図8参照)によってもたらされた一
定のレース状態では、データのためのCLは、そのデー
タのためのフラッシュまたは共用ライトバックが受け取
られるときに無効にされたかもしれない。(フラッシュ
または共用ライトバック・コマンドによって識別された
データのためのCLがなければ、フラッシュまたは共用
ライトバック・コマンドは、中止される。というのは、
エージング動作は、フラッシュ・ライトバック・コマン
ドと同じ目的を達成するからである。)
【0043】フラッシュまたは共用ライトバック・コマ
ンドのためのCLを識別した後、ステップ134で、C
L内のデータは、ステップ130で識別された遷移キャ
ッシュ・バッファに書き込まれる。この時点では、フラ
ッシュまたは共用ライトバック・コマンドに対して、種
々の動作が実行される。共用ライトバック・コマンドな
らば(ステップ136)、ステップ138で、識別され
たCLは“共用された”とマークされ、他のキャシュま
たは複合プロセッサが、データのコピーを有し、および
共用ライトバック・コマンドの処理がなされる。フラッ
シュ・ライトバック・コマンドならば(ステップ14
0)、ステップ142で、識別されたCLは無効とマー
クされ、L1キャッシュによって管理されたキュー内の
最長時間未使用(LRU:least-recently-used)位置に移動
され、その結果、CLは迅速に再使用され、コマンドの
処理がなされる。
【0044】フラッシュ・コマンドの受け取りに応じた
動作は、比較的簡単である。というのは、遷移キャッシ
ュ・バッファにデータをライトバックする必要がないか
らである。したがって、フラッシュ・コマンドに応答し
て、L1キャッシュは、フラッシュ・コマンドで識別さ
れたデータを含むL1キャッシュ内にCLを識別する。
正常な状態下では、識別されたデータのためのL1キャ
ッシュ内に、CLが存在し、あるいは存在しなくてもよ
い。すなわち、オプショナルなもはや存在しないキャス
トバック(no longer present castback)が実行されるな
らば(図8,図12,図15参照)、多くの環境下で、
L1キャッシュがもはや特定のデータを有さないとき
に、L2キャッシュが通知され、L1キャッシュに不必
要なフラッシュ・コマンドを送らない。しかし、もはや
存在しないキャストバックが実行されるところであって
も、同時エージング動作によってもたらされる一定のレ
ース状態では(図8参照)、データのためのCLは、フ
ラッシュ・コマンドが受け取られるときに、無効にされ
たかもしれない。(フラッシュ・コマンドによって識別
されたデータのためのCLがなければ、フラッシュ・コ
マンドが中止される。というのは、エージング動作は、
フラッシュ・コマンドと同じ目的を達成するからであ
る。)フラッシュ・コマンドで識別されたデータのため
のCLが、識別された後に、ステップ142で、識別さ
れたCLは、無効とマークされ、L1キャッシュによっ
て管理される待ち行列のLRU位置に移動され、その結
果、CLは迅速に再使用され、コマンドの処理がなされ
る。
【0045】図8を参照して、キャッシュ・ライン(C
L)を付加する役割として、L1キャッシュにより実行
される動作を、説明する。前述したことから、データを
読み取る要求(ステップ108)に対する応答の結果と
して、あるいはデータを書き込む要求(ステップ12
6)に対する応答の結果として、L1キャッシュに、C
Lを加えることができることが分かる。いずれの状況に
おいても、L2キャッシュまたはメイン・メモリから、
データが得られる。データの書込み要求(ステップ12
6)を満たすために、データが得られるならば、以下に
詳述するように、変更目的の読取り(a read_with_inten
t_to_modify)動作によってデータが得られる。
【0046】CLをL1キャッシュに加えることを開始
するためには、ステップ150で、L1キャッシュ内の
CLは、置換のために選ばれる。このことは、L1キャ
ッシュ内のどのCLが最長時間未使用(least recently
used)であるかを判別することができ、あるいはL1キ
ャッシュのCLの使用についての統計を含む、追加のよ
り複雑な動作を含むことができる。いずれにしても、置
換のために一旦CLが選ばれると、ステップ152で、
選ばれたCLは、評価されて、CLが有効とマークさ
れ、変更されているか否かを判別される。変更されてい
るならば、選ばれたCL内のデータは、変更されて、L
2キャッシュおよび/またはメイン・メモリにライトバ
ックされなければならない。したがって、この状況で
は、ステップ154で、エージング・キャストバック・
コマンドが、置換のために選ばれたCL内の古いデータ
のための遷移キャッシュ・バッファに送られる。遷移キ
ャッシュは、エージング・キャストバックに遷移キャッ
シュ・バッファ・ライン番号を割り当てることにより、
およびそのライン番号(ステップ156で、受け取られ
る)をL1キャッシュに戻すことにより、応答する。次
に、ステップ158で、置換のために選ばれたCLから
の古いデータが、L1キャッシュの識別されたライン番
号に書き込まれる。
【0047】ステップ152で、選ばれたCLが有効で
ある、あるいは有効であるが変更されたデータを含まな
いことが識別されるならば、選ばれたCL内のデータ
を、L2キャッシュまたはメイン・メモリにライトバッ
クする必要がない。選ばれたCLが無効ならば、新しい
データを格納するためにCLを準備する他のステップを
とる必要はない。しかし、CLが有効で、データが変更
されないならば、オプショナルなステップ160を実行
して、L1キャッシュがもはやデータのコピーを格納し
ていないことを、L2キャッシュに知らせる。これは、
もはや存在しないキャストバック・コマンドを遷移キャ
ッシュに送り、置換のために選ばれたCL内の古いデー
タを識別することによって行われる。以下に、より詳し
く明らかになるように、このステップはオプショナルで
あるが、実行されるならば、L2キャッシュが不必要な
フラッシュ・コマンドを避けることを可能にすることに
よって、ストリーム・ラインは後に処理される。
【0048】ステップ158またはオプショナルなステ
ップ160の後に、ステップ162で、CLをセットア
ップして、新しいデータを格納するステップがとられ
る。特に、CL内のタグがセットされて、新しいデータ
のアドレスを適切に識別し、他のフィールド変更または
管理変更が行われて、CLを新しいデータと関係づけ
る。
【0049】次にデータを得るために、ステップ164
で、読取りまたは変更目的の読取り(read_with_intent_
to_modify)要求が、遷移用に送られて、CLのための新
しいデータを得る。応答して、遷移キャッシュ・バッフ
ァは、要求にライン番号を割り当て、このライン番号を
L1キャッシュに戻す。このライン番号は、ステップ1
66で読み取られる。ステップ168で、新しいデータ
が、ステップ166で識別された遷移キャッシュ・ライ
ン番号に書き込まれると、L1キャッシュによって、受
け取られる。同時に、このデータの状態、すなわち共用
または変更を受け取る。以下に明らかなように、L2キ
ャッシュ,メイン・メモリ,または他のL1キャッシュ
から、データが遷移キャッシュに送られるとき、データ
は次のようなことを示す状態と共に送られる。すなわ
ち、データが変更されたか(すなわち、メイン・メモリ
のデータと同じでない)、または交互に共用されたか
(すなわち、メイン・メモリに格納されたデータと同じ
である)を示す。後者の場合、他のキャッシュにデータ
の他のコピーが存在し得る。
【0050】ステップ170で、新しく受け取ったデー
タが、選ばれたCLに格納される。次に、ステップ17
2で選択されたCLは、有効とマークされ、その結果、
CLは保留要求を満たすために用いることができる。最
後に、データの検索を開始した要求の種類に基づいて、
CLを共用状態または変更状態に適切にセットするため
のステップが実行される。特に新しいデータが検索され
て、L1キャッシュに接続されたプロセッサからの読取
り要求を満たし(ステップ174)、データは、共用と
マークされて戻される。次に、ステップ176で、選ば
れたCLは共用とマークされ、ステップ177で、選ば
れたCLはL1キャッシュにおいて、最新使用のCLと
され、CLを加える処理がなされる。あるいはまた、新
しいデータが、“変更された”とマークされて戻された
ならば(ステップ178)、データの検索を開始したア
クセスの種類とは関係なく、ステップ180で、CL
は、“変更された”とマークされ、ステップ177で、
L1キャッシュ内で最新使用されたCLとされ、処理が
なされる。最後に、新しいデータが検索されて、L1キ
ャッシュに接続されたプロセッサからの書込み要求を満
たし(ステップ182)、データが“共用された”とマ
ークされて戻されたならば、データの所有権を得るステ
ップを実行しなければならない。特にこの状況では、ス
テップ184で、所有権の要求がL2キャッシュに送ら
れる。ステップ186で、この要求が拒否されると、処
理はステップ184に戻り、要求が再びなされる。最終
的に、所有権の要求が受け取られ、処理はステップ18
6から180に進む。ステップ180では、選ばれたC
Lは、“変更された”とマークされ、CLのデータがプ
ロセッサによって書き込まれるということを反映し、ス
テップ177で、選ばれたCLは、L1キャッシュにお
いて最新使用されたCLとされ、処理が行われる。
【0051】図9を参照して、L1キャッシュから受け
取った読取りまたは変更目的の読取り要求に応答する役
割として、遷移キャッシュ・バッファによって実行され
る動作を説明する。前述したように、要求のいずれの種
類に対する初期応答として、ステップ190で、遷移キ
ャッシュ・ラインが要求に割り当てられ、ステップ19
2で、このキャッシュ・ラインは、L1キャッシュに戻
される。次に、ステップ194で、ステップ190で割
り当てられたライン番号と共に、読取りまたは変更目的
の読取り要求が、L2キャッシュに送られる。次にL2
キャッシュは、3つの方法のうちの1つで、ステップ1
96において応答する。
【0052】まず、読取りまたは変更目的の読取り要求
によって検索されたデータの変更バージョンを有する他
のL1キャッシュを識別することによって(ステップ1
98)、L2キャッシュは応答することができる。これ
が生じると、ステップ200で、フラッシュ・ライトバ
ック・コマンドが他のL1キャッシュに送られて、他の
L1キャッシュに、遷移キャッシュ・バッファへこのデ
ータをフラッシュバックさせる。次に、ステップ202
で、ステップ190で割り当てられた遷移キャッシュ・
バッファ・ライン番号は、他のL1キャッシュに送ら
れ、他のL1キャッシュは、要求L1キャッシュによっ
て監視される同一の遷移キャッシュ・バッファ・ライン
に戻される。ステップ204で、他のL1キャッシュの
データは、割り当てられた遷移キャッシュ・ラインに戻
され、ステップ206で、データは、遷移キャッシュ・
ラインに書き込まれるときに、要求L1キャッシュに転
送される。一例では、要求L1キャッシュは、他のL1
キャッシュから遷移キャッシュに書き込まれるとき、遷
移キャッシュへの書込み、およびデータの直接受け取り
を監視することができる。その結果、要求L1キャッシ
ュによって、データができるだけ迅速に得られる。デー
タが戻されると、データは“変更された”とマークさ
れ、データがL2キャッシュおよび/またはメイン・メ
モリのデータと同一でないことを示す。要求L1キャッ
シュは、次に、上述したデータに対して、適切な処理を
行う。
【0053】この機能は、時間のかなりの節約を与える
ことが分かる。その理由は、L2キャッシュまたはメイ
ン・メモリにライトバックされることなしに、データ
を、1つのL1キャッシュから他のL1キャッシュに直
接に転送できるからである。特に、同じデータを繰り返
しオーバーライトする2つのプロセッサが存在する場
合、この発明の特徴は、変更されたデータが、L1キャ
ッシュ間で直接に転送できることを可能にすることによ
って、キャッシュ・オーバーヘッドにかなりの節約を与
える。
【0054】(ステップ208で)要求L1キャッシュ
によって検索されるデータが、L2キャッシュにあり、
かつ、変更されているが他のL1キャッシュには存在し
ない(変更されたデータは、フラッシュされ、L1キャ
ッシュからエージングされているので)ならば、L2キ
ャッシュは、データを“変更された”とマークされたも
のとして、遷移キャッシュに戻すことによって、応答す
る。同様に、L1キャッシュが変更の目的でデータ読み
取っており、データが“排他的”とマークされてL2キ
ャッシュにあるならば、L2キャッシュは、データを
“排他的”とマークされて遷移キャッシュに戻すことに
よって、応答する。いずれの場合でも、ステップ206
で、データが遷移キャッシュ・ラインに書き込まれると
き、“変更された”とマークされて要求L1キャッシュ
にデータが再び転送される。特に、要求L1キャッシュ
は、要求L2キャッシュから遷移キャッシュに書き込ま
れるとき、遷移キャッシュへの書込み、およびデータの
直接受け取りを監視することができる。その結果、要求
L1キャッシュによって、データができるだけ迅速に得
られる。要求L1キャッシュは、前述したように、デー
タに対して適切な処理を行う。
【0055】要求L1キャッシュによって検索されたデ
ータがL2キャッシュ内にあり、かつ、変更されていな
いならば、あるいはデータがL2キャッシュになく、メ
イン・メモリからL2キャッシュにデータを転送しなけ
ればならないならば、ステップ210で、L2キャッシ
ュは、データを、“共用された”または“排他的”とマ
ークして遷移キャッシュ・バッファに戻す。データが
“共用された”とマークされて戻されるならば、ステッ
プ212で、データは“共用された”とマークされて、
L1キャッシュに戻される。データが“排他的”とマー
クされて戻され、L1キャッシュが変更目的でなくデー
タを読み取っているならば、ステップ212で、データ
は“共用された”とマークされてL1キャッシュに戻さ
れる。L1キャッシュは、適切に応答し、前述したよう
に所有権の要求を発生することができる。
【0056】図10を参照して、L2キャッシュから受
け取られるフラッシュ・ライトバックまたは共用ライト
バック・コマンドに応答する役割として、遷移キャッシ
ュによって実行される動作を説明する。前述しおよび以
下に詳述するように、これらのコマンドは次のようなと
きに、遷移キャッシュによって受け取られる。すなわ
ち、対応するL2キャッシュ・ラインのエージングによ
り、あるいは他の複合プロセッサによるそのデータのア
クセスおよび/または所有権の要求により、L1キャッ
シュ・データがフラッシュされなければならないこと
を、L2キャッシュが判別するときである。
【0057】後者の場合、以下に説明するように、L2
キャッシュが要求ライトバックの完了を待つ間に、L2
キャッシュは、他の複合プロセッサの読取りまたは所有
権の要求を、阻止/拒否する。次に、他の複合プロセッ
サは、読取りまたは所有権の要求の再試行を発行する。
【0058】遷移キャッシュ・ラインが、既に割り当て
られていないならば、ステップ222で、ラインが割り
当てられる。次にステップ224で、フラッシュ・ライ
トバック・コマンドまたは共用ライトバック・コマンド
は、変更されたデータを有するL1キャッシュに送ら
れ、ステップ226で、ステップ222で割り当てられ
た遷移キャッシュ・ラインは、L1キャッシュに送られ
る。その後、ステップ228で、L1キャッシュは、デ
ータを識別されたラインに送ることによって、応答す
る。
【0059】この時点では、L2キャッシュによって発
行されたライトバック・コマンドの種類に基づいて、異
なる処理が実行される。コマンドがフラッシュ・ライト
バックであったならば(ステップ230)、ステップ2
32で、L1キャッシュから受け取ったデータは、メイ
ン・メモリに直接送られ、ステップ234で、フラッシ
ュ・ライトバック確認が、L2キャッシュに送られる。
データが全複合プロセッサからフラッシュしなければな
らないことをL2キャッシュが既に判別しているので、
データは、L2キャッシュに格納されない。コマンドが
共用ライトバックであるならば(ステップ236)、ス
テップ238で、データがメイン・メモリに送られ、さ
らにステップ240で、共用ライトバック・コマンド
は、L2キャッシュに送られ、ステップ242で、デー
タはまたL2キャッシュ送られ、L2キャッシュに格納
される。
【0060】図11を参照して、L1キャッシュからの
エージング・キャストバックに応答して遷移キャッシュ
により実行される動作を説明する。前に説明したよう
に、エージング・キャストバックは、変更されたデータ
が、L1キャッシュからエージングされるときに発生す
る。他の複合プロセッサが、変更されたデータを必要と
していることの指示がないので、遷移キャッシュは、変
更されたデータをL2キャッシュのみに送る。したがっ
て、最初のステップ250で、遷移キャッシュ・ライン
は、コマンドに割り当てられ、ステップ252で、ライ
ン番号が、L1キャッシュに送られる。ステップ254
で、データがL1キャッシュから受け取られる。次に、
ステップ256で、エージング・キャストバック・コマ
ンドが、L2キャッシュに送られ、ステップ258で、
受け取られたデータは、L2キャッシュに送られる。
【0061】図12を参照して、L1キャッシュからの
もはや存在しないキャストバックに対応する役割とし
て、遷移キャッシュにより実行されるオプショナルな動
作を説明する。前述したことから分かるように、もはや
存在しないキャストバックは、キャストバックを発生さ
せるL1キャッシュが、識別されたデータのコピーをも
はや有さないことを、L2キャッシュに知らせる。デー
タ自体は、変更されておらず、L1キャッシュから戻さ
れない。したがって、もはや存在しないキャストバック
が受け取られた後(ステップ260)、ステップ262
で、同一のデータに対するもはや存在しないキャストバ
ックは、L2キャッシュに送られる。
【0062】図13を参照して、遷移キャッシュからの
読取りまたは変更目的の読取り要求に応答する役割とし
て、L2キャッシュにより実行される動作を、説明す
る。最初のステップ270で、動作のための遷移キャッ
シュ・ライン番号は、遷移キャッシュから受け取られ
る。次に、ステップ272で、L2キャッシュは、要求
されたデータのための有効CLを検索することによっ
て、要求されたデータがL2キャッシュにあるか否かを
判別する。L2キャッシュにデータのためのCLがあれ
ば、ステップ274で、識別されたCLは、最新使用と
される。次にステップ276では、CLが検索され、
“変更された”とマークされたか否かを判別する。マー
クされたならば、ステップ277で、L2キャッシュ
は、識別されたCLにセット・プレゼンス・ビットが存
在するか否かを判別することによって、変更されたデー
タを有するL1キャッシュが存在するか否かを判別す
る。
【0063】ステップ277で、セット・プレゼンス・
ビットが存在するならば、上述した情況が生じる。この
情況では、L1キャッシュは、他のL1キャッシュによ
って必要とされる変更されたデータを有している。この
情況では、ステップ278で、セット・プレゼンス・ビ
ットを有するL1キャッシュへのポインタは、遷移キャ
ッシュに送られ、遷移キャッシュに、現在データを有す
るL1キャッシュからの変更されたデータを、データを
必要とするL1キャッシュに転送させる。上述のことか
ら分かるように、L1キャッシュから同等のL1キャッ
シュへの直接のデータ転送は、特に2つのプロセッサが
同一のデータを繰り返しオーバーライトしているような
場合には、キャッシュされたデータを管理することに含
まれるオーバーヘッドをかなり低減することができる。
ステップ278の後に、ステップ280で、変更された
データを現在有するL1キャッシュのためのプレゼンス
・ビットはクリアされ、データを要求しているL1キャ
ッシュのためのプレゼンス・ビットは、セットされて、
変更されたデータが、要求L1キャッシュにあることを
反映する。その後、要求の処理が行われる。
【0064】ステップ276で、配置されたCLが“変
更された”とマークされないならば、あるいはステップ
277で、CLのどのプレゼンス・ビットもセットされ
ないならば、要求されたデータはL2キャッシュCLか
ら戻される。この場合、遷移キャッシュから受け取られ
た読取り要求の種類に基づいて、種々の処理が行われる
(ステップ282)。要求が読取りならば(ステップ2
84)、ステップ286で、要求L1キャッシュのため
のプレゼンス・ビットがセットされ、次にステップ28
8で、L2キャッシュCLのデータが、L2キャッシュ
CLの変更された、共用された、あるいは排他的な状態
と共に、ステップ270で識別された遷移キャッシュ・
ラインに送られる。要求が、変更目的の読取りであるな
らば(ステップ290)、ステップ292で、L2キャ
ッシュCLは、検査されて、データが“排他的”状態に
あるか否かを判別する。“排他的”状態ならば、ステッ
プ294で、CLは、“変更された”状態に変化する。
これは、他の複合プロセッサが、データのコピーを有さ
ないからである。ステップ292で、CLが“排他的”
状態にないならば、あるいはCLがステップ294で
“変更された”状態にセットされた後に、ステップ29
6で、対応するデータに対するフラッシュ・コマンド
が、配置されたL2CL内にセット・プレゼンス・ビッ
トを有する全てのL1キャッシュに送られるならば、
(これは、他のL1キャッシュのデータの全てのコピー
を排除するために行われ、その結果、要求CLによって
データを所有することができる)、ステップ298で、
L1キャッシュのための全てのセット・プレゼンス・ビ
ットがクリアされて、L1キャッシュがフラッシュされ
たことを示す。次に、処理は、ステップ286,288
に進み、要求L1キャッシュのためのプレゼンス・ビッ
トをセットし、およびL2キャッシュCLからのデータ
を、L2キャッシュCLの共用された,変更された,あ
るいは排他的状態と共に、遷移キャッシュに戻される。
【0065】ステップ272で、要求されたデータのた
めのCLがL2キャッシュにないならば、処理はステッ
プ300に進む。このステップでは、CLは、図16を
参照して以下に説明するように、新しいデータのための
L2キャッシュに加えられる。その後、処理はステップ
286,288に進み、要求L1キャッシュのための付
加されたCLにプレゼンス・ビットをセットし、付加さ
れたL2キャッシュCLからのデータを、付加されたL
2キャッシュCLの共用された,変更された,あるいは
排他的状態と共に、遷移キャッシュに戻される。
【0066】図14を参照して、L1キャッシュから受
け取った所有権の要求に対する応答の役割として、L2
キャッシュにより実行される動作を説明する。前述した
ように、L1キャッシュが書込要求を受け取り、L1キ
ャッシュに“共用された”とマークされた対応するデー
タを有するときに、所有権の要求が、L1キャッシュに
より発行される。所有権の要求に応答するためには、L
2キャッシュは、他のL1キャッシュはデータのコピー
を有さないことを保証しなければならず、および他の複
合プロセッサが、データのコピーを有さず、L2キャッ
シュにおいてデータに“変更された”をマークすること
を保証しなければならない。
【0067】したがって、所有権の要求に応答して、最
初のステップ310で、L2キャッシュは、所有権の要
求において識別されたデータのためのL2キャッシュに
CLを配置する。L1キャッシュにある全てのデータ
は、また、L2キャッシュにあり、したがって、所有権
の要求がL2キャッシュにより受け取られるとき、L2
キャッシュのデータのためのCLでなければならない。
【0068】L2キャッシュCLを識別した後、ステッ
プ312で、配置されたCLが評価され、それが“共用
された”とマークされるか否かを判別する。L2キャッ
シュCLが、“共用された”とマークされるならば、同
一のデータのコピーを有する他の複合プロセッサが存在
する。したがって、L2キャッシュCLが“共用され
た”とマークされるならば、ステップ314で、L2キ
ャッシュは、所有権の要求をシステム・バスに送って、
他の複合プロセッサに、データのそれらのコピーを解放
させることを試みる。この要求は、受け取るか、または
拒否することができる。たとえば、他の複合プロセッサ
がデータの変更されたコピーを有するので、要求が拒否
されるならば(ステップ316)、ステップ318で、
L2キャッシュは、L1キャッシュからの所有権の要求
を拒否し、所有権の要求の処理がなされる。L1キャッ
シュの処理の前述の説明から、L1キャッシュによる所
有権の要求が拒否されるとき、L1キャッシュは、所有
権の要求が受け取られるまで、所有権の要求を再試行す
ることが分かる。したがって、所有権の要求が拒否され
た後、L2キャッシュはその後に、繰り返し要求を受け
取り、図14の処理が再び開始する。前述したことか
ら、他の複合プロセッサが所有権の要求を拒否すると、
所有権の要求が再試行されるときに所有権の要求を受け
取るために、メイン・メモリに変更されたデータをライ
トバックするプロセスを開始することが分かる。
【0069】したがって、システム・バスに送られた所
有権の要求が、最終的に受け取られる(ステップ32
0)。この場合には、ステップ322で、所有権に対す
るL1キャッシュからの要求が、受け取られる。さら
に、ステップ312で、L2キャッシュのCLが“共用
された”とマークされないならば、処理はステップ32
2に直接進み、L1キャッシュからの所有権の要求は、
即座に受け取られる。所有権の要求を受け取った後は、
ステップ324で、フラッシュ・コマンドが所有権を要
求するL1キャッシュを除いた、L2キャッシュのCL
内にセット・プレゼンス・ビットを有する全てのL1キ
ャッシュに送られる。このステップは、他のキャッシュ
が、データのコピーを有さないことを保証する。次に、
ステップ326で、所有権を要求するL1キャッシュを
除いて、全てのL1キャッシュに対するプレゼンス・ビ
ットがクリアされる。最後に、ステップ328で、配置
されたL2キャッシュのCLが、“変更された”とマー
クされ、所有権を要求したL1キャッシュにおいて、C
Lに関連したデータが変更されることを示している。
【0070】図15を参照して、共用ライトバック,エ
ージング・キャストバックのオプショナルなもはや存在
しないキャストバック,およびフラッシュ・ライトバッ
ク・コマンドに応答する役割として、L2キャッシュに
より実行される動作を、説明する。データを読み取ろう
とする他の複合プロセッサの結果、L1キャッシュが、
メイン・メモリおよびL2キャッシュに、変更されたデ
ータをライトバックしたとき、共用ライトバック・コマ
ンドが、L2キャッシュによって受け取られる(ステッ
プ330)。したがって、共用ライトバック・コマンド
が受け取られると、ステップ332で、対応するL2キ
ャッシュのCLが識別され、“共用された”にセットさ
れて、他の複合プロセッサが、データのコピーを検索す
るであろうことを反映する。次に、ステップ334で、
共用ライトバックのための変更されたデータは、遷移キ
ャッシュからL2キャッシュによって受け取られ、識別
されたL2キャッシュのCLに格納される。
【0071】変更されたデータを有するL1キャッシュ
がそのデータを、エージング・アウトして、L2キャッ
シュに戻すとき、エージング・キャストバックが受け取
られる(ステップ336)。したがって、エージング・
ライトバック・コマンドが受け取られると、ステップ3
38で、対応するL2キャッシュのCLが識別されて、
キャストバック・コマンドを発生するL1キャッシュの
CL内のプレゼンス・ビットがクリアされて、コマンド
に対するデータがもはやL1キャッシュにないことを反
映する。次に、ステップ334で、エージング・キャス
トバックのための変更されたデータが、識別されたL2
キャッシュのCLに書き込まれる。
【0072】L1キャッシュの未変更のデータをエージ
ング・アウトするとき、オプショナルのもはや存在しな
いキャストバック・コマンドが、L2キャッシュによっ
て受け取られる(ステップ340)。したがって、もは
や存在しないキャストバック・コマンドが受け取られる
と、ステップ342で、対応するL2キャッシュCLが
識別されて、コマンドを発生しているL2キャッシュの
CL内のプレゼンス・ビットがクリアされて、コマンド
に対するデータがもはやL1キャッシュにないことを反
映する。
【0073】変更されたデータを有するL1キャッシュ
が、データをメイン・メモリに戻すと、フラッシュ・ラ
イトバック確認コマンドは、L2キャッシュによって受
け取られる(ステップ344)。このことは、他の複合
プロセッサが、そのデータへの書込を試みるとき、ある
いは、L2キャッシュがL2キャッシュからの関連する
CLをエージングしたときに、発生する。したがって、
フラッシュ・ライトバック確認コマンドが受け取られる
と、L2キャッシュは、関連データのためのCLを有す
ることができ、または有さないことができる。したがっ
て、第1のステップ346で、関連データのためのL2
キャッシュにCLがあるか否かが判別される。CLがな
いならば、さらなる処理は必要とされない。しかし、フ
ラッシュ・ライトバック確認によって識別されたデータ
のためのL2キャッシュ内にCLがないならば、ステッ
プ348で、このCLは、“無効”とマークされて、L
2キャッシュにより管理されるCLエントリの待ち行列
の最長時間未使用の位置に移動される。
【0074】図16を参照して、新しいデータのために
L2キャッシュにキャッシュ・ライン(CL)を加える
役割として、L2キャッシュにより実行される動作を説
明する。最初のステップ350で、L2キャッシュ内の
CLは、置換のために選ばれる。このことは、最長時間
未使用のCLを、あるいはより複雑な動作を選ぶことを
含んでいる。次に、ステップ352で、選ばれたCLは
評価されて、それが“変更された”とマークされている
か否かを判別する。マークされているならば、特別の処
理を実行して、変更されたデータをメイン・メモリに戻
す。したがって、ステップ354で、選ばれたCLが評
価されて、CL内にプレゼンス・ビットがセットされた
か否かを判別する。セットされていないならば、変更さ
れたデータは、L2キャッシュCLにあり、ステップ3
56で、データはL2キャッシュからメイン・メモリに
送られ、ステップ358で、CLがセットアップされ
て、新しいデータを管理する。これは、CLのタグをセ
ットして新しいデータのアドレスを識別することを含ん
でいる。
【0075】ステップ354で、選ばれたCLがセット
・プレゼンス・ビットを有するならば、セット・プレゼ
ンス・ビットによって識別されたL1キャッシュCL
は、変更されたデータを格納する。この場合、ステップ
360で、L2キャッシュCLは、セット・プレゼンス
・ビットを有するL1キャッシュにフラッシュ・ライト
バック・コマンドを送って、L1キャッシュに、変更さ
れたデータをフラッシュし、メイン・メモリに戻させ
る。フラッシュ・ライトバック・コマンドは、遷移キャ
ッシュを経て送られる。その結果、遷移キャッシュは、
前述したように、データの戻りを管理する。次に、処理
はステップ358に進んで、選ばれたCLをセットアッ
プし、新しいデータを受け取る。
【0076】ステップ352で、選ばれたCLが、“変
更された”とマークされていないならば、データの全て
のコピーを、全てのL1CLからフラッシュしなければ
ならない。したがって、この場合、ステップ362で、
古いデータに対するフラッシュ・コマンドが、セット・
プレゼンス・ビットを有する全てのL1キャッシュに送
られ、これらのL1キャッシュに、データをフラッシュ
させる。次に、処理はステップ358に進み、選ばれた
CLをセットアップして、新しいデータを受け取る。
【0077】ステップ358の後、選ばれたCLに格納
するために、新しいデータが得られる。第1のステップ
は、読取りまたは変更目的の読取り要求を、新しいデー
タのためのシステム・バスに送る。L2キャッシュが、
新しいCLをセットアップして遷移キャッシュからの読
取り要求に応答するならば、読取り要求が送られ、L2
キャッシュが新しいCLをセットアップして、変更目的
の読取り要求に対応するならば、変更目的の読取り要求
を送る。
【0078】この要求がシステム・バスに送られた後、
システム・バスおよびメイン・メモリからの応答に基づ
いて、種々の処理が行われる。読取りコマンドにデータ
が要求され、データが“共用された”とマークされて戻
されるならば(ステップ366)、ステップ368で、
選ばれたL2キャッシュCLは、“共用された”とマー
クされ、他の複合プロセッサがデータのコピーを有する
ことを指示し、ステップ370で、選ばれたL2キャッ
シュCLは、最新使用にされ、データをL2キャッシュ
に加える処理がなされる。あるいはまた、読取りコマン
ドにデータが要求され、データが“排他的”とマークさ
れて戻されるならば(ステップ372)、ステップ37
4で、選ばれたL2キャッシュCLは“排他的”とマー
クされて、他の複合プロセッサはデータのコピーを有さ
ないことを指示し、ステップ370で、選ばれたL2キ
ャッシュCLは最新使用にされ、L2キャッシュにデー
タを加える処理がなされる。
【0079】変更目的の読取り要求にデータが要求さ
れ、データが“排他的”とマークされて戻されるならば
(ステップ376)、ステップ378で、選ばれたL2
キャッシュCLは、“変更された”とマークされ、この
複合プロセッサではデータが変更されることを指示し、
ステップ370で、選ばれたL2キャッシュCLが最新
使用にされ、L2キャッシュにデータを加える処理がな
される。あるいはまた、読取り要求に応答してシステム
・バスから“再試行”が受け取られるならば(ステップ
380)、このことは、他の複合プロセッサがデータの
変更されたコピーを有し、この変更されたコピーをメイ
ン・メモリに戻す処理中にあることを示している。この
状況では、要求は再試行され、処理はステップ364に
戻り、要求を再試行する。
【0080】図17を参照して複合プロセッサから受け
取った所有権の要求に応答する役割として、L2キャッ
シュにより実行される動作を説明する。最初のステップ
390で、L2キャッシュは、L2キャッシュ内の要求
されたデータのためのCLを有するか否かを判別する。
有するならば、CLは、評価されて、いかにして所有権
を取り扱うかを判別しなければならない。この状況で
は、ステップ392で、CLは検査されて、“変更され
た”とマークされているか否かを判別する。マークされ
ているならば、この複合プロセッサには、メイン・メモ
リに戻されていないデータの変更されたコピーが存在す
る。変更されたデータがL2キャッシュにあるか否か、
あるいはL1キャッシュの1つからフラッシュされなけ
ればならないか否かが、問題となる。したがって、ステ
ップ394で、L2キャッシュCL内のプレゼンス・ビ
ットは、検査されて、全てクリアされたか否かを判別す
る。クリアされたならば、L2キャッシュは、変更され
たデータの最新コピーを有し、ステップ396で、選ば
れたL2キャッシュCL内のデータは、メイン・メモリ
に戻され、ステップ398で、選ばれたL2キャッシュ
CLは、“無効”とマークされ、L2キャッシュによっ
て管理されたCLの待ち行列の最長時間未使用の位置に
移動される。この時点では、所有権の要求は、ステップ
400で受け取ることができ、他の複合プロセッサは、
メイン・メモリからの変更データを読み取る。
【0081】ステップ390で、L2キャッシュが、識
別されたデータのためのCLを有さないとを判別するな
らば、L2キャッシュはすぐにステップ400に進み、
所有権の要求を受け取る。
【0082】ステップ392で、L2キャッシュは、デ
ータのためのCLを有するが、データは変更されていな
いと判別するならば、データは、この複合プロセッサか
ら簡単にフラッシュされなければならず、したがって、
ステップ402で、L2キャッシュは、データに対する
フラッシュ・コマンドを、セット・プレゼンス・ビット
を有する全てのL1キャッシュに送り、L2キャッシュ
はステップ398に進んで、CLに無効をマークし、次
にステップ400に進んで、所有権の要求を受け取る。
【0083】ステップ394で、L2キャッシュが、セ
ット・プレゼンス・ビットが存在すると判別するなら
ば、変更されたデータがL1キャッシュにあり、フラッ
シュされなければならない。この状況では、ステップ4
04で、所有権の要求は拒否されて、L1キャッシュが
データをメイン・メモリにフラッシュする時間を可能に
する。次に、ステップ406で、L2キャッシュは、フ
ラッシュ・ライトバック・コマンドをセット・プレゼン
ス・ビットを有するL1キャッシュに送り、L1キャッ
シュにデータをメイン・メモリにフラッシュバックさせ
る。他の複合プロセッサは、所有権の要求を繰り返し、
およびL1キャッシュがサクセスフルにデータをメイン
・メモリに戻したことを示すフラッシュ・ライトバック
確認が受け取られるまで、L2キャッシュがデータに対
するCLエントリを有し、同じパスに続いて、所有権の
要求を拒否することが分かる。一旦、L1キャッシュが
サクセスフルにデータをメイン・メモリに戻すと、L2
キャッシュは、そのCLエントリを無効にし(図15を
参照)、他の複合プロセッサからの所有権の次の要求が
受け取られる。
【0084】図18を参照して、他の複合プロセッサか
らの読取りまたは変更目的の読取り要求を、L2キャッ
シュが検索するとき、L2キャッシュによって実行され
る動作を説明する。L2キャッシュがシステム・バス上
に読取りまたは変更目的の読取りを検出すると、L2キ
ャッシュは、それがデータの変更バージョンであり、
“再試行”コマンドによるアクセスを阻止しなければな
らないか否かを判別し、および/または、L2キャッシ
ュがデータの未変更コピーを有し、データを“共用され
た”とマークして他の複合プロセッサに戻さなければな
らないか否かを判別する。これらの判別は、図18にお
いて実行される。
【0085】最初のステップ410で、L2キャッシュ
は、L2キャッシュ内の要求されたデータのためのCL
を有するか否かを判別する。有さなければ、さらなる処
理は不用である。しかし、要求されたデータに対してL
2キャッシュ内にCLがないならば、ステップ412
で、CLは評価され、“変更された”とマークされるか
否かを判別する。“変更された”とマークされるなら
ば、他の複合プロセッサからの要求を阻止しなければな
らず、ステップ414で、“再試行”指示がメイン・メ
モリに戻される時間を可能にする。
【0086】一旦、他の複合プロセッサからのアクセス
が、この複合プロセッサ内での変更されたデータの存在
の故に、阻止されたならば、ステップ416で、L2キ
ャッシュは、CL内のプレゼンス・ビットを評価して、
プレゼンス・ビットがセットされたか否かを判別するこ
とによって、変更されたデータがあるか否かを判別す
る。変更されたデータがあれば(ステップ418)、ア
クセスの種類に基づいて、種々の処理が行われる。アク
セスが読取りアクセスならば(ステップ420)、ステ
ップ422で、データに対する共用ライトバック・コマ
ンドが、セット・プレゼンス・ビットを有するL1キャ
ッシュに送られて、L1キャッシュのデータに、メイン
・メモリおよびL2キャッシュにライトバックさせ、
“共用された”とマークさせる。これが行われるまで、
読取り要求の再試行は、上述した、同一パスによる“再
試行”によって阻止される。一旦、L1キャッシュがメ
イン・メモリおよびL2キャッシュにデータをライトバ
ックし、L2キャッシュCLが“共用された”とマーク
されると(図15参照)、以下に示すように、アクセス
が可能となる。同様に、他の複合プロセッサからのアク
セスが、変更目的の読取りアクセスならば(ステップ4
24)、ステップ426で、データに対するフラッシュ
・ライトバック・コマンドが、セット・プレゼンス・ビ
ットを有するL1キャッシュに送られて、L1キャッシ
ュのデータをメイン・メモリにライトバックし、および
L2キャッシュCLを無効にする。これが行われるま
で、読取り要求の再試行は、上述した同一パスにより阻
止される。
【0087】ステップ416で、L2キャッシュが、セ
ット・プレゼンス・ビットがないと判別するならば、変
更されたデータの最新バージョンが、L2キャッシュC
Lに存在する。この場合、ステップ428で、変更され
たデータが、L2キャッシュCLからメイン・メモリに
送られて、読取り要求が再試行されるときに、使用可能
となる。次に、アクセスの種類に応答して(ステップ4
30)、種々のアクションが実行される。アクセスが読
取りアクセスであったならば(ステップ432)、L2
キャッシュCLは、“排他的”とマークされて、L2キ
ャッシュ・データは、メイン・メモリに対して変更され
ていないことを指示し、当分の間、L2キャッシュはデ
ータのコピーのみ有する。次に、他の複合プロセッサに
よって、アクセスが再試行されると、L2キャッシュC
Lは、以下に説明するように、“共用された”とマーク
される。アクセスが、変更目的の読取りであったならば
(ステップ436)、データはL2キャッシュからフラ
ッシュされなければならない。したがって、この状況で
は、ステップ438で、L2キャッシュCLは、“無
効”とマークされ、最長時間未使用とされる。
【0088】ステップ412で、L2キャッシュが、読
取りまたは変更目的の読取り要求に対する対象であるデ
ータに対するCLが、“変更された”とマークされない
ならば、要求の種類に基づいて(ステップ440)、種
々の処理が行われる。要求が変更目的の読取り要求なら
ば(ステップ442)、データは、この複合プロセッサ
から完全にフラッシュされなければならない。したがっ
て、ステップ444で、CLデータに対するフラッシュ
・コマンドがセット・プレゼンス・ビットを有するL1
キャッシュに送られ、処理はすぐにステップ438に進
む。このステップでは、L2キャッシュは“無効”とマ
ークされ、最長時間未使用とされる。要求が読取り要求
ならば(ステップ446)、アクセスは受け取られなけ
ればならないが、データは“共用された”に戻されなけ
ればならず、この複合プロセッサ内のデータは、“共用
された”とマークされて、他の複合プロセッサが、デー
タのコピーを有することを反映させなければならない。
したがって、ステップ448で、“共用された”指示
は、システムに送られるが、その結果、他の複合プロセ
ッサは、共用されたデータを受け取る。次に、ステップ
450で、配置されたL2キャッシュCLは、“共用さ
れた”とマークされて、他の複合プロセッサが、データ
のコピーを有することを反映させる。
【0089】前述の説明は、本発明の例示であり、した
がって、本発明は、その広い態様において、特定の細
部,代表的な装置および方法,図示かつ説明した例に限
定されるものではない。
【0090】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0091】(1)第1と第2のプロセッサによってメ
モリ・アクセスが生成されるマルチプロセッサ環境にお
いて使用されるメモリ・キャッシュ・システムであっ
て、共用低レベル記憶システムと、前記共用低レベル記
憶システムおよび前記第1のプロセッサへの接続のため
に構成された第1のキャッシュであって、前記共用低レ
ベル記憶システムに格納されるべきデータまたは前記共
用低レベル記憶システムからロードされるべきデータを
識別するメモリ・アクセス・コマンドを、前記第1のプ
ロセッサから受け取り、前記メモリ・アクセス・コマン
ドに応答して前記共用低レベル記憶システムからデータ
をロードし、および前記共用低レベル記憶システムにデ
ータを格納する第1のキャッシュと、前記共用低レベル
記憶システムおよび前記第2のプロセッサへの接続のた
めに構成された第2のキャッシュであって、前記共用低
レベル記憶システムに格納されるべきデータまたは前記
共用低レベル記憶システムからロードされるべきデータ
を識別するメモリ・アクセス・コマンドを、前記第2の
プロセッサから受け取り、前記メモリ・アクセス・コマ
ンドに応答して前記共用低レベル記憶システムからデー
タをロードし、および前記共用低レベル記憶システムに
データを格納する第2のキャッシュと、前記共用低レベ
ル記憶システムから前記キャッシュへのデータのロード
および前記キャッシュから前記共用低レベル記憶システ
ムへのデータの格納を管理するキャッシュ記憶制御回路
とを有し、前記第1のキャッシュから、前記第2のプロ
セッサによって変更され、変更された形式で前記第2の
キャッシュに格納されるデータの要求を受けると、前記
キャッシュ記憶制御回路は、前記第2のキャッシュに、
前記共用低レベル記憶システムへ前記データを戻すこと
なしに、前記データを前記第1のキャッシュへ転送さ
せ、それによって、第1と第2のプロセッサによる前記
同一データへの繰り返し書込みの効果が改善されるメモ
リ・キャッシュ・システム。
【0092】(2)前記共用低レベル記憶システムは、
低レベル・キャッシュと主記憶装置を備え、前記低レベ
ル・キャッシュは、主記憶装置内のデータのコピーを管
理し、前記第1と第2のキャッシュが、データのコピー
を格納するか否か、およびそれらのコピーが変更されて
いるか否かの指示をさらに管理する上記(1)記載のメ
モリ・キャッシュ・システム。
【0093】(3)前記キャッシュ記憶制御回路は、前
記第1または第2のキャッシュから指定されたデータの
要求を受け取ると、前記共用低レベル記憶システムに前
記要求を送り、前記低レベル・キャッシュは、前記第1
および第2のキャッシュのいずれかが、前記指定された
データの変更されたコピーを格納しているか否かを判別
し、格納しているならば、前記低レベル・キャッシュ
は、前記キャッシュ記憶制御回路に、前記指定されたデ
ータの変更されたコピーを有する前記第1と第2のキャ
ッシュへのポインタを戻すことによって、前記第1と第
2のキャッシュからの前記指定されたデータの要求に応
答し、前記キャッシュ記憶制御ユニットは、前記第2の
キャッシュからの指定されたデータの要求に応答して前
記第1のキャッシュへのポインタを受け取ると、前記第
1のキャッシュに、前記データを前記低レベル・キャッ
シュにまたは前記主記憶装置に書き込むことなしに、前
記指定されたデータを前記第2のキャッシュへ送出させ
る上記(2)記載のメモリ・キャッシュ・システム。
【0094】(4)前記低レベル・キャッシュは、待ち
行列内のデータを、最長時間未使用から最新使用に管理
し、指定されたデータの変更されたコピーを有するキャ
ッシュへのポインタを戻すと、前記待ち行列は、更新さ
れて、前記低レベル・キャッシュ内の前記指定されたデ
ータのコピーを、最新使用として識別する上記(3)記
載のメモリ・キャッシュ・システム。
【0095】(5)前記第1と第2のキャッシュは、前
記第1と第2のキャッシュに格納されたデータが、共用
されまたは変更されているか否かの指示を管理し、共用
されたデータを書き換える前に、前記第1と第2のキャ
ッシュは、前記低レベル・キャッシュに所有権の要求を
送る上記(2)記載のメモリ・キャッシュ・システム。
【0096】(6)前記低レベル・キャッシュは、前記
低レベル・キャッシュに格納されたデータが、共用さ
れ,排他的,または変更されているか否かの指示を管理
し、前記指定されたデータが共用されるならば、前記第
1または第2のキャッシュからの前記指定されたデータ
の所有権の要求を許可する前に、前記低レベル・キャッ
シュは、前記主記憶装置に接続されたシステム・バスか
らの前記指定されたデータの所有権を要求する上記
(5)記載のメモリ・キャッシュ・システム。
【0097】(7)前記低レベル・キャッシュは、前記
第1または第2のキャッシュからの、変更目的でデータ
を読み取る要求に応答する前に、前記主記憶装置に接続
されたシステム・バスからの前記指定されたデータの所
有権を要求する上記(6)記載のメモリ・キャッシュ・
システム。
【0098】(8)前記第1または第2のキャッシュか
らの指定されたデータの所有権の要求を許可する役割と
して、および前記指定されたデータを変更目的で読み取
る要求に応答して、第1または第2のキャッシュにデー
タを送る役割として、前記低レベル・キャッシュは、前
記指定されたデータの変更されていないコピーを有する
全ての他のキャッシュを指示して、前記指定されたデー
タをフラッシュする上記(6)記載のメモリ・キャッシ
ュ・システム。
【0099】(9)前記低レベル・キャッシュは、前記
指定されたデータの所有権の要求が、前記第1または第
2のキャッシュに許可されるときに、または前記指定さ
れたデータが、前記指定されたデータを変更目的で読み
取る要求に応答して、前記第1または第2のキャッシュ
に送られたときに、指定されたデータが変更されたとす
るマークを付す上記(6)記載のメモリ・キャッシュ・
システム。
【0100】(10)前記低レベル・キャッシュは、エ
ージングによる、または他の複合プロセッサに対する指
定されたデータの所有権の消失による、指定されたデー
タを除去する役割として、指定されたデータの変更され
ていないコピーを有するキャッシュを指示して、前記指
定されたデータの変更されていないコピーをフラッシュ
する上記(2)記載のメモリ・キャッシュ・システム。
【0101】(11)前記低レベル・キャッシュは、エ
ージングによる、または他の複合プロセッサに対する指
定されたデータの所有権の消失による、指定されたデー
タを除去する役割としてに、指定されたデータの変更さ
れたコピーを有する前記第1または第2のキャッシュを
指示して、前記指定されたデータの変更されたコピーを
主記憶装置に書込み、前記指定されたデータをフラッシ
ュする上記(2)記載のメモリ・キャッシュ・システ
ム。
【0102】(12)前記低レベル・キャッシュは、他
の複合プロセッサからの、指定されたデータを読み取る
要求に応答して、前記指定されたデータの変更されたコ
ピーを有するキャッシュを指示して、前記指定されたデ
ータの変更されたコピーを主記憶装置に、および前記低
レベル・キャッシュに書き込む上記(2)記載のメモリ
・キャッシュ・システム。
【0103】(13)共用低レベル記憶システムと第1
および第2のプロセッサの間にそれぞれ接続され、前記
共用低レベル記憶システムに格納されるべきデータまた
は前記共用低レベル記憶システムからロードされるべき
データを識別するメモリ・アクセス・コマンドを、前記
接続されたプロセッサから受け取る、第1および第2の
キャッシュを有するキャッシュ・システムを管理する方
法であって、前記メモリ・アクセス・コマンドに応答し
て前記共用低レベル記憶システムからデータをロード
し、および前記共用低レベル記憶システムにデータを格
納するステップと、前記第1のキャッシュから、前記第
2のプロセッサによって変更され、変更された形式で前
記第2のキャッシュに格納されるデータの要求を受ける
と、前記第2のキャッシュに、前記共用低レベル記憶シ
ステムへ前記データを戻すことなしに、前記データを前
記第1のキャッシュへ転送させるステップとを含み、そ
れによって、第1と第2のプロセッサによる前記同一デ
ータへの繰り返し書込みの効果を改善する方法。
【0104】(14)前記共用低レベル記憶システム
は、低レベル・キャッシュと主記憶装置を備え、前記低
レベル・キャッシュ内に、主記憶装置内のデータのコピ
ーと、第1または第2のキャッシュが、データのコピー
を格納するか否か、およびそれらのコピーが変更されて
いるか否かの指示とを管理するステップをさらに含む上
記(13)記載の方法。
【0105】(15)第1または第2のキャッシュか
ら、指定されたデータの要求を受け取ると、前記第1お
よび第2のキャッシュのいずれかが、前記指定されたデ
ータの変更されたコピーを格納しているか否かを判別す
ることによって、前記共用低レベル記憶システムにおい
て前記要求に応答する上記(14)記載の方法。
【0106】(16)前記低レベル・キャッシュは、待
ち行列内のデータを、最長時間未使用から最新使用に管
理し、前記第1または第2のキャッシュが、指定された
データの変更されたコピーを格納していることを判別す
ると、前記待ち行列は、更新されて、前記低レベル・キ
ャッシュ内の前記指定されたデータのコピーを、最新使
用として識別する上記(15)記載の方法。
【0107】(17)前記第1と第2のキャッシュは、
前記第1と第2のキャッシュに格納されたデータが、共
用されまたは変更されているか否かの指示を管理し、共
用されたデータを書き換える前に、前記低レベル・キャ
ッシュに所有権の要求を送るステップをさらに含む上記
(14)記載の方法。
【0108】(18)前記低レベル・キャッシュは、前
記低レベル・キャッシュに格納されたデータが、共用さ
れ,排他的,または変更されているか否かの指示を管理
し、前記指定されたデータが共用されるならば、前記第
1または第2のキャッシュからの前記指定されたデータ
の所有権の要求を許可する前に、前記主記憶装置に接続
されたシステム・バスからの前記指定されたデータの所
有権を要求するステップをさらに含む上記(17)記載
の方法。
【0109】(19)前記第1または第2のキャッシュ
からの、変更目的でデータを読み取る要求に応答する前
に、前記主記憶装置に接続されたシステム・バスからの
前記指定されたデータの所有権を要求するステップをさ
らに含む上記(18)記載の方法。
【0110】(20)前記第1または第2のキャッシュ
からの指定されたデータの所有権の要求を許可する役割
として、および前記指定されたデータを変更目的で読み
取る要求に応答して、第1または第2のキャッシュにデ
ータを送る役割として、前記指定されたデータの変更さ
れていないコピーを有する全ての他のキャッシュを指示
して、前記指定されたデータをフラッシュするステップ
をさらに含む上記(18)記載の方法。
【0111】(21)前記指定されたデータの所有権の
要求が、前記第1または第2のキャッシュに許可される
ときに、または前記指定されたデータが、前記指定され
たデータを変更目的で読み取る要求に応答して、前記第
1または第2のキャッシュに送られたときに、前記低レ
ベル・キャッシュ内の指定されたデータが変更されたと
するマークを付すステップをさらに含む上記(18)記
載の方法。
【0112】(22)エージングによる、または他の複
合プロセッサに対する指定されたデータの所有権の消失
による、前記低レベル・キャッシュからの、指定された
データを除去する役割として、指定されたデータの変更
されていないコピーを有するキャッシュを指示して、指
定されたデータの変更されていないコピーをフラッシュ
するステップをさらに含む上記(14)記載の方法。
【0113】(23)エージングによる、または他の複
合プロセッサに対する指定されたデータの所有権の消失
による、前記低レベル・キャッシュからの、指定された
データを除去する役割として、指定されたデータの変更
されたコピーを有するキャッシュを指示して、指定され
たデータの変更されたコピーを主記憶装置に書込み、指
定されたデータをフラッシュするステップをさらに含む
上記(14)記載の方法。
【0114】(24)他の複合プロセッサからの指定さ
れたデータを読み取る要求に応答して、前記指定された
データの変更されたコピーを有するキャッシュを指示し
て、指定されたデータの変更されたコピーを主記憶装置
に、および前記低レベル・キャッシュに書き込むステッ
プをさらに含む上記(14)記載の方法。
【図面の簡単な説明】
【図1】メイン・メモリをアクセスする本発明の原理を
実施する、プロセッサ,キャッシュ・システム,メイン
・メモリ,周辺装置を含むシステム処理ユニットのブロ
ック図である。
【図2】本発明の原理に従ってキャッシュ・システムと
共に用いられる複数のシングルおよびマルチスレッド・
プロセッサのブロック図である。
【図3】図2に示されたL2キャッシュの内容のブロッ
ク図である。
【図4】図2に示されたL1キャッシュの内容のブロッ
ク図である。
【図5】関連したプロセッサからの読取り動作の受け取
りに応答して、図2に示されたL1キャッシュによって
実行された動作のフローチャートである。
【図6】関連したプロセッサからの読取り動作の受け取
りに応答して、図2に示されたL1キャッシュによって
実行された動作のフローチャートである。
【図7】低レベル記憶ユニットから受け取った共用ライ
トバック,フラッシュ・ライトバックまたはフラッシュ
・コマンドの受け取りに応答して、図2に示されたL1
キャッシュによって実行された動作のフローチャートで
ある。
【図8】L1キャッシュにキャッシュ・ライン(CL)
を付加して、新しいデータを格納する役割として、図2
に示されたL1キャッシュによって実行された動作のフ
ローチャートである。
【図9】L1キャッシュから受け取った、読取りまたは
変更目的の読取り要求に応答する役割として、図2に示
された記憶制御ユニット内の遷移キャッシュ(キャッシ
ュ・バッファ)によって実行された動作のフローチャー
トである。
【図10】L2キャッシュから受け取った、フラッシュ
・ライトバックまたは共用ライトバック・コマンドに応
答する役割として、図2に示された記憶制御ユニット内
の遷移キャッシュ(キャッシュ・バッファ)によって実
行された動作のフローチャートである。
【図11】L1キャッシュのエージング・キャスト・バ
ックに応答する役割として、図2に示された記憶制御ユ
ニット内の遷移キャッシュ(キャッシュ・バッファ)に
よって実行された動作のフローチャートである。
【図12】L1キャッシュからのもう現在のキャストバ
ックではないものに応答する役割として、図2に示され
た記憶制御ユニット内の遷移キャッシュ(キャッシュ・
バッファ)によって実行し得るオプショナルな動作のフ
ローチャートである。
【図13】遷移キャッシュ(キャッシュ・バッファ)か
ら受け取った、読取りまたは変更目的の読取り要求に応
答する役割として、図2に示されたL2キャッシュによ
って実行された動作のフローチャートである。
【図14】L1キャッシュから受け取った所有権の要求
に応答する役割として、図2に示されたL2キャッシュ
によって実行された動作のフローチャートである。
【図15】遷移キャッシュ(キャッシュ・バッファ)か
ら受け取った、共用ライトバック,エージング・キャス
トバック,オプショナルなもう現在のキャストバックで
はないもの,フラッシュ・ライトバック・コマンドに応
答する役割として、図2に示されたL2キャッシュによ
って実行された動作のフローチャートである。
【図16】L2キャッシュにキャッシュ・ライン(C
L)を付加して、新しいデータを格納する役割として、
図2に示されたL2キャッシュによって実行された動作
のフローチャートである。
【図17】システムバスを介して他のL2キャッシュか
ら受け取った所有権の要求に応答する役割として、図2
に示されたL2キャッシュによって実行された動作のフ
ローチャートである。
【図18】システムバスで受け取った他のL2キャッシ
ュからの、読取りまたは変更目的の読取り要求に応答す
る役割として、図2に示されたL2キャッシュによって
実行された動作のフローチャートである。
【符号の説明】
10 システム処理ユニット 12 システム・プロセッサおよびキャッシュ・システ
ム 14 主記憶装置 16 ローカル・バス・アタッチメント・カード 18 記憶コントローラ 18’ 記憶装置 20 ワークステーション・コントローラ 20’ ワークステーション 22 記憶コントロール・ユニット 23 システム・バス 24a,24b プロセッサ 26 L2キャッシュ 28a,28b L1キャッシュおよびコントロール回
路 30 キャッシュ・バッファ 32,32’ 複合プロセッサ 34,46 インターフェース論理回路 36,52 ライン
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ドナルド・リー・フリーアークセン アメリカ合衆国 55901 ミネソタ州 ロ チェスター フォーティフォース コート エヌダブリュ 412 (72)発明者 ゲイリー・マイケル・リッパート アメリカ合衆国 55944 ミネソタ州 カ ッスン ボックス 61ビー ルーラル ル ート 2 (72)発明者 ジョン・ディー・アイリッシュ アメリカ合衆国 55901 ミネソタ州 ロ チェスター フォーティス ストリート エヌダブリュ 1119

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】第1と第2のプロセッサによってメモリ・
    アクセスが生成されるマルチプロセッサ環境において使
    用されるメモリ・キャッシュ・システムであって、 共用低レベル記憶システムと、 前記共用低レベル記憶システムおよび前記第1のプロセ
    ッサへの接続のために構成された第1のキャッシュであ
    って、前記共用低レベル記憶システムに格納されるべき
    データまたは前記共用低レベル記憶システムからロード
    されるべきデータを識別するメモリ・アクセス・コマン
    ドを、前記第1のプロセッサから受け取り、前記メモリ
    ・アクセス・コマンドに応答して前記共用低レベル記憶
    システムからデータをロードし、および前記共用低レベ
    ル記憶システムにデータを格納する第1のキャッシュ
    と、 前記共用低レベル記憶システムおよび前記第2のプロセ
    ッサへの接続のために構成された第2のキャッシュであ
    って、前記共用低レベル記憶システムに格納されるべき
    データまたは前記共用低レベル記憶システムからロード
    されるべきデータを識別するメモリ・アクセス・コマン
    ドを、前記第2のプロセッサから受け取り、前記メモリ
    ・アクセス・コマンドに応答して前記共用低レベル記憶
    システムからデータをロードし、および前記共用低レベ
    ル記憶システムにデータを格納する第2のキャッシュ
    と、 前記共用低レベル記憶システムから前記キャッシュへの
    データのロードおよび前記キャッシュから前記共用低レ
    ベル記憶システムへのデータの格納を管理するキャッシ
    ュ記憶制御回路とを有し、 前記第1のキャッシュから、前記第2のプロセッサによ
    って変更され、変更された形式で前記第2のキャッシュ
    に格納されるデータの要求を受けると、前記キャッシュ
    記憶制御回路は、前記第2のキャッシュに、前記共用低
    レベル記憶システムへ前記データを戻すことなしに、前
    記データを前記第1のキャッシュへ転送させ、 それによって、第1と第2のプロセッサによる前記同一
    データへの繰り返し書込みの効果が改善されるメモリ・
    キャッシュ・システム。
  2. 【請求項2】前記共用低レベル記憶システムは、低レベ
    ル・キャッシュと主記憶装置を備え、前記低レベル・キ
    ャッシュは、主記憶装置内のデータのコピーを管理し、
    前記第1と第2のキャッシュが、データのコピーを格納
    するか否か、およびそれらのコピーが変更されているか
    否かの指示をさらに管理する請求項1記載のメモリ・キ
    ャッシュ・システム。
  3. 【請求項3】前記キャッシュ記憶制御回路は、前記第1
    または第2のキャッシュから指定されたデータの要求を
    受け取ると、前記共用低レベル記憶システムに前記要求
    を送り、 前記低レベル・キャッシュは、前記第1および第2のキ
    ャッシュのいずれかが、前記指定されたデータの変更さ
    れたコピーを格納しているか否かを判別し、格納してい
    るならば、前記低レベル・キャッシュは、前記キャッシ
    ュ記憶制御回路に、前記指定されたデータの変更された
    コピーを有する前記第1と第2のキャッシュへのポイン
    タを戻すことによって、前記第1と第2のキャッシュか
    らの前記指定されたデータの要求に応答し、 前記キャッシュ記憶制御ユニットは、前記第2のキャッ
    シュからの指定されたデータの要求に応答して前記第1
    のキャッシュへのポインタを受け取ると、前記第1のキ
    ャッシュに、前記データを前記低レベル・キャッシュに
    または前記主記憶装置に書き込むことなしに、前記指定
    されたデータを前記第2のキャッシュへ送出させる請求
    項2記載のメモリ・キャッシュ・システム。
  4. 【請求項4】前記低レベル・キャッシュは、待ち行列内
    のデータを、最長時間未使用から最新使用に管理し、指
    定されたデータの変更されたコピーを有するキャッシュ
    へのポインタを戻すと、前記待ち行列は、更新されて、
    前記低レベル・キャッシュ内の前記指定されたデータの
    コピーを、最新使用として識別する請求項3記載のメモ
    リ・キャッシュ・システム。
  5. 【請求項5】前記第1と第2のキャッシュは、前記第1
    と第2のキャッシュに格納されたデータが、共用されま
    たは変更されているか否かの指示を管理し、共用された
    データを書き換える前に、前記第1と第2のキャッシュ
    は、前記低レベル・キャッシュに所有権の要求を送る請
    求項2記載のメモリ・キャッシュ・システム。
  6. 【請求項6】前記低レベル・キャッシュは、前記低レベ
    ル・キャッシュに格納されたデータが、共用され,排他
    的,または変更されているか否かの指示を管理し、前記
    指定されたデータが共用されるならば、前記第1または
    第2のキャッシュからの前記指定されたデータの所有権
    の要求を許可する前に、前記低レベル・キャッシュは、
    前記主記憶装置に接続されたシステム・バスからの前記
    指定されたデータの所有権を要求する請求項5記載のメ
    モリ・キャッシュ・システム。
  7. 【請求項7】前記低レベル・キャッシュは、前記第1ま
    たは第2のキャッシュからの、変更目的でデータを読み
    取る要求に応答する前に、前記主記憶装置に接続された
    システム・バスからの前記指定されたデータの所有権を
    要求する請求項6記載のメモリ・キャッシュ・システ
    ム。
  8. 【請求項8】前記第1または第2のキャッシュからの指
    定されたデータの所有権の要求を許可する役割として、
    および前記指定されたデータを変更目的で読み取る要求
    に応答して、第1または第2のキャッシュにデータを送
    る役割として、前記低レベル・キャッシュは、前記指定
    されたデータの変更されていないコピーを有する全ての
    他のキャッシュを指示して、前記指定されたデータをフ
    ラッシュする請求項6記載のメモリ・キャッシュ・シス
    テム。
  9. 【請求項9】前記低レベル・キャッシュは、前記指定さ
    れたデータの所有権の要求が、前記第1または第2のキ
    ャッシュに許可されるときに、または前記指定されたデ
    ータが、前記指定されたデータを変更目的で読み取る要
    求に応答して、前記第1または第2のキャッシュに送ら
    れたときに、指定されたデータが変更されたとするマー
    クを付す請求項6記載のメモリ・キャッシュ・システ
    ム。
  10. 【請求項10】前記低レベル・キャッシュは、エージン
    グによる、または他の複合プロセッサに対する指定され
    たデータの所有権の消失による、指定されたデータを除
    去する役割として、指定されたデータの変更されていな
    いコピーを有するキャッシュを指示して、前記指定され
    たデータの変更されていないコピーをフラッシュする請
    求項2記載のメモリ・キャッシュ・システム。
  11. 【請求項11】前記低レベル・キャッシュは、エージン
    グによる、または他の複合プロセッサに対する指定され
    たデータの所有権の消失による、指定されたデータを除
    去する役割としてに、指定されたデータの変更されたコ
    ピーを有する前記第1または第2のキャッシュを指示し
    て、前記指定されたデータの変更されたコピーを主記憶
    装置に書込み、前記指定されたデータをフラッシュする
    請求項2記載のメモリ・キャッシュ・システム。
  12. 【請求項12】前記低レベル・キャッシュは、他の複合
    プロセッサからの、指定されたデータを読み取る要求に
    応答して、前記指定されたデータの変更されたコピーを
    有するキャッシュを指示して、前記指定されたデータの
    変更されたコピーを主記憶装置に、および前記低レベル
    ・キャッシュに書き込む請求項2記載のメモリ・キャッ
    シュ・システム。
  13. 【請求項13】共用低レベル記憶システムと第1および
    第2のプロセッサの間にそれぞれ接続され、前記共用低
    レベル記憶システムに格納されるべきデータまたは前記
    共用低レベル記憶システムからロードされるべきデータ
    を識別するメモリ・アクセス・コマンドを、前記接続さ
    れたプロセッサから受け取る、第1および第2のキャッ
    シュを有するキャッシュ・システムを管理する方法であ
    って、 前記メモリ・アクセス・コマンドに応答して前記共用低
    レベル記憶システムからデータをロードし、および前記
    共用低レベル記憶システムにデータを格納するステップ
    と、 前記第1のキャッシュから、前記第2のプロセッサによ
    って変更され、変更された形式で前記第2のキャッシュ
    に格納されるデータの要求を受けると、前記第2のキャ
    ッシュに、前記共用低レベル記憶システムへ前記データ
    を戻すことなしに、前記データを前記第1のキャッシュ
    へ転送させるステップとを含み、 それによって、第1と第2のプロセッサによる前記同一
    データへの繰り返し書込みの効果を改善する方法。
  14. 【請求項14】前記共用低レベル記憶システムは、低レ
    ベル・キャッシュと主記憶装置を備え、前記低レベル・
    キャッシュ内に、主記憶装置内のデータのコピーと、第
    1または第2のキャッシュが、データのコピーを格納す
    るか否か、およびそれらのコピーが変更されているか否
    かの指示とを管理するステップをさらに含む請求項13
    記載の方法。
  15. 【請求項15】第1または第2のキャッシュから、指定
    されたデータの要求を受け取ると、前記第1および第2
    のキャッシュのいずれかが、前記指定されたデータの変
    更されたコピーを格納しているか否かを判別することに
    よって、前記共用低レベル記憶システムにおいて前記要
    求に応答する請求項14記載の方法。
  16. 【請求項16】前記低レベル・キャッシュは、待ち行列
    内のデータを、最長時間未使用から最新使用に管理し、
    前記第1または第2のキャッシュが、指定されたデータ
    の変更されたコピーを格納していることを判別すると、
    前記待ち行列は、更新されて、前記低レベル・キャッシ
    ュ内の前記指定されたデータのコピーを、最新使用とし
    て識別する請求項15記載の方法。
  17. 【請求項17】前記第1と第2のキャッシュは、前記第
    1と第2のキャッシュに格納されたデータが、共用され
    または変更されているか否かの指示を管理し、共用され
    たデータを書き換える前に、前記低レベル・キャッシュ
    に所有権の要求を送るステップをさらに含む請求項14
    記載の方法。
  18. 【請求項18】前記低レベル・キャッシュは、前記低レ
    ベル・キャッシュに格納されたデータが、共用され,排
    他的,または変更されているか否かの指示を管理し、前
    記指定されたデータが共用されるならば、前記第1また
    は第2のキャッシュからの前記指定されたデータの所有
    権の要求を許可する前に、前記主記憶装置に接続された
    システム・バスからの前記指定されたデータの所有権を
    要求するステップをさらに含む請求項17記載の方法。
  19. 【請求項19】前記第1または第2のキャッシュから
    の、変更目的でデータを読み取る要求に応答する前に、
    前記主記憶装置に接続されたシステム・バスからの前記
    指定されたデータの所有権を要求するステップをさらに
    含む請求項18記載の方法。
  20. 【請求項20】前記第1または第2のキャッシュからの
    指定されたデータの所有権の要求を許可する役割とし
    て、および前記指定されたデータを変更目的で読み取る
    要求に応答して、第1または第2のキャッシュにデータ
    を送る役割として、前記指定されたデータの変更されて
    いないコピーを有する全ての他のキャッシュを指示し
    て、前記指定されたデータをフラッシュするステップを
    さらに含む請求項18記載の方法。
  21. 【請求項21】前記指定されたデータの所有権の要求
    が、前記第1または第2のキャッシュに許可されるとき
    に、または前記指定されたデータが、前記指定されたデ
    ータを変更目的で読み取る要求に応答して、前記第1ま
    たは第2のキャッシュに送られたときに、前記低レベル
    ・キャッシュ内の指定されたデータが変更されたとする
    マークを付すステップをさらに含む請求項18記載の方
    法。
  22. 【請求項22】エージングによる、または他の複合プロ
    セッサに対する指定されたデータの所有権の消失によ
    る、前記低レベル・キャッシュからの、指定されたデー
    タを除去する役割として、指定されたデータの変更され
    ていないコピーを有するキャッシュを指示して、指定さ
    れたデータの変更されていないコピーをフラッシュする
    ステップをさらに含む請求項14記載の方法。
  23. 【請求項23】エージングによる、または他の複合プロ
    セッサに対する指定されたデータの所有権の消失によ
    る、前記低レベル・キャッシュからの、指定されたデー
    タを除去する役割として、指定されたデータの変更され
    たコピーを有するキャッシュを指示して、指定されたデ
    ータの変更されたコピーを主記憶装置に書込み、指定さ
    れたデータをフラッシュするステップをさらに含む請求
    項14記載の方法。
  24. 【請求項24】他の複合プロセッサからの指定されたデ
    ータを読み取る要求に応答して、前記指定されたデータ
    の変更されたコピーを有するキャッシュを指示して、指
    定されたデータの変更されたコピーを主記憶装置に、お
    よび前記低レベル・キャッシュに書き込むステップをさ
    らに含む請求項14記載の方法。
JP2000046247A 1999-03-01 2000-02-23 キャッシュ・メモリ・システム Expired - Fee Related JP3533355B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/259950 1999-03-01
US09/259,950 US6314491B1 (en) 1999-03-01 1999-03-01 Peer-to-peer cache moves in a multiprocessor data processing system

Publications (2)

Publication Number Publication Date
JP2000250812A true JP2000250812A (ja) 2000-09-14
JP3533355B2 JP3533355B2 (ja) 2004-05-31

Family

ID=22987147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000046247A Expired - Fee Related JP3533355B2 (ja) 1999-03-01 2000-02-23 キャッシュ・メモリ・システム

Country Status (4)

Country Link
US (1) US6314491B1 (ja)
JP (1) JP3533355B2 (ja)
KR (1) KR100318789B1 (ja)
CN (1) CN1142503C (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014503103A (ja) * 2011-12-23 2014-02-06 インテル・コーポレーション 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置
JP2015046184A (ja) * 2014-10-31 2015-03-12 インテル・コーポレーション 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置
US9727468B2 (en) 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US10047282B2 (en) 2014-03-18 2018-08-14 Apdn (B.V.I.) Inc. Encrypted optical markers for security applications
US10741034B2 (en) 2006-05-19 2020-08-11 Apdn (B.V.I.) Inc. Security system and method of marking an inventory item and/or person in the vicinity
JP2021502629A (ja) * 2017-11-10 2021-01-28 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 複数のプロセッサによる共有キャッシュ・ラインの同時変更

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162699B1 (en) 1999-04-02 2007-01-09 Massachusetts Institute Of Technology Mechanisms and artifacts to manage heterogeneous platform interfaces in a collaboration system
US6408348B1 (en) * 1999-08-20 2002-06-18 International Business Machines Corporation System, method, and program for managing I/O requests to a storage device
US6374332B1 (en) * 1999-09-30 2002-04-16 Unisys Corporation Cache control system for performing multiple outstanding ownership requests
US6629268B1 (en) * 2000-01-25 2003-09-30 International Business Machines Corporation Method and apparatus for servicing a processing system through a test port
US6681293B1 (en) * 2000-08-25 2004-01-20 Silicon Graphics, Inc. Method and cache-coherence system allowing purging of mid-level cache entries without purging lower-level cache entries
US6751705B1 (en) * 2000-08-25 2004-06-15 Silicon Graphics, Inc. Cache line converter
US6857049B1 (en) * 2000-08-30 2005-02-15 Unisys Corporation Method for managing flushes with the cache
US6631449B1 (en) 2000-10-05 2003-10-07 Veritas Operating Corporation Dynamic distributed data system and method
US7725748B1 (en) 2000-12-29 2010-05-25 Intel Corporation Low power subsystem for portable computers
US7188145B2 (en) 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
US7219122B1 (en) 2001-04-23 2007-05-15 Massachusetts Institute Of Technology Software service handoff mechanism with a performance reliability improvement mechanism (PRIM) for a collaborative client-server system
JP3661614B2 (ja) 2001-07-12 2005-06-15 日本電気株式会社 キャッシュメモリ制御方法及びマルチプロセッサシステム
JPWO2003048955A1 (ja) * 2001-12-03 2005-08-11 株式会社日立製作所 マルチプロセッサシステム
US7058829B2 (en) * 2002-08-14 2006-06-06 Intel Corporation Method and apparatus for a computing system having an active sleep mode CPU that uses the cache of a normal active mode CPU
US6965962B2 (en) * 2002-12-17 2005-11-15 Intel Corporation Method and system to overlap pointer load cache misses
US7406535B2 (en) * 2002-12-20 2008-07-29 Symantec Operating Corporation Role-based message addressing for a computer network
US7292585B1 (en) 2002-12-20 2007-11-06 Symantec Operating Corporation System and method for storing and utilizing routing information in a computer network
US7327741B1 (en) 2002-12-20 2008-02-05 Symantec Operating Corporation Detecting and breaking cycles in a computer network
US8370523B1 (en) 2002-12-20 2013-02-05 Symantec Operating Corporation Managing routing information for a computer network
US8275864B1 (en) 2002-12-20 2012-09-25 Symantec Operating Corporation Peer-to-peer network with recovery capability
US7653059B1 (en) 2002-12-20 2010-01-26 Symantec Operating Corporation Communication sessions for a computer network
US7404006B1 (en) 2002-12-20 2008-07-22 Symantec Operating Corporation Publishing a network address in a computer network
US7467194B1 (en) 2002-12-20 2008-12-16 Symantec Operating Corporation Re-mapping a location-independent address in a computer network
US8886705B1 (en) 2003-06-30 2014-11-11 Symantec Operating Corporation Goal-oriented storage management for a distributed data storage network
JP2005115603A (ja) * 2003-10-07 2005-04-28 Hitachi Ltd 記憶デバイス制御装置及びその制御方法
US7680950B1 (en) 2003-11-07 2010-03-16 Symantec Operating Corporation Efficient search for storage objects in a network
US8060619B1 (en) 2003-11-07 2011-11-15 Symantec Operating Corporation Direct connections to a plurality of storage object replicas in a computer network
US7555527B1 (en) 2003-11-07 2009-06-30 Symantec Operating Corporation Efficiently linking storage object replicas in a computer network
US7570600B1 (en) 2003-12-17 2009-08-04 Symantec Operating Corporation Overlay network with efficient routing and recovery
US7689778B2 (en) * 2004-11-30 2010-03-30 Intel Corporation Preventing system snoop and cross-snoop conflicts
US7386687B2 (en) * 2005-01-07 2008-06-10 Sony Computer Entertainment Inc. Methods and apparatus for managing a shared memory in a multi-processor system
US7496712B1 (en) 2005-06-17 2009-02-24 Sun Microsystems, Inc. Proximity communication-based off-chip cache memory architectures
US7562190B1 (en) * 2005-06-17 2009-07-14 Sun Microsystems, Inc. Cache protocol enhancements in a proximity communication-based off-chip cache memory architecture
US7444473B1 (en) 2005-06-17 2008-10-28 Sun Microsystems, Inc. Speculative memory accesses in a proximity communication-based off-chip cache memory architecture
US7941604B2 (en) * 2006-02-01 2011-05-10 Infineon Technologies Ag Distributed memory usage for a system having multiple integrated circuits each including processors
JP2007265271A (ja) 2006-03-29 2007-10-11 Nec Corp ストレージ装置、データ配置方法およびプログラム
US20070274230A1 (en) * 2006-05-23 2007-11-29 Werber Ryan A System and method for modifying router firmware
JP2008118184A (ja) * 2006-10-31 2008-05-22 Fujitsu Ltd 処理装置及び処理モジュール
US20080104333A1 (en) * 2006-10-31 2008-05-01 Veazey Judson E Tracking of higher-level cache contents in a lower-level cache
ITMI20070787A1 (it) * 2007-04-17 2008-10-18 St Microelectronics Srl Memoria non volatile
CN101546282B (zh) * 2008-03-28 2011-05-18 国际商业机器公司 用于在处理器中执行写拷贝的方法和设备
US20100057984A1 (en) * 2008-08-26 2010-03-04 Seagate Technology Llc Memory hierarchy containing only non-volatile cache
TW201015321A (en) * 2008-09-25 2010-04-16 Panasonic Corp Buffer memory device, memory system and data trnsfer method
US9672019B2 (en) 2008-11-24 2017-06-06 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads
US10621092B2 (en) * 2008-11-24 2020-04-14 Intel Corporation Merging level cache and data cache units having indicator bits related to speculative execution
US8380931B2 (en) * 2010-03-12 2013-02-19 Microsoft Corporation Memory cache data center
US9417855B2 (en) 2011-09-30 2016-08-16 Intel Corporation Instruction and logic to perform dynamic binary translation
KR101629411B1 (ko) 2015-02-03 2016-06-10 한국전자통신연구원 레벨0 캐시 제어 장치 및 방법
KR20170109133A (ko) * 2016-03-17 2017-09-28 에스케이하이닉스 주식회사 하이브리드 메모리 장치 및 그의 데이터 관리 방법
CN110710139A (zh) 2017-03-29 2020-01-17 芬基波尔有限责任公司 具有光置换器的无阻塞全网状数据中心网络
CN110731070A (zh) 2017-03-29 2020-01-24 芬基波尔有限责任公司 通过多个交替数据路径进行分组喷射的无阻塞的任意到任意数据中心网络
WO2018183553A1 (en) 2017-03-29 2018-10-04 Fungible, Inc. Non-blocking any-to-any data center network having multiplexed packet spraying within access node groups
WO2018191257A1 (en) 2017-04-10 2018-10-18 Fungible, Inc. Relay consistent memory management in a multiple processor system
WO2019014265A1 (en) 2017-07-10 2019-01-17 Fungible, Inc. DATA PROCESSING UNIT FOR CALCULATION NODES AND STORAGE NODES
US10725825B2 (en) 2017-07-10 2020-07-28 Fungible, Inc. Data processing unit for stream processing
US11178262B2 (en) 2017-09-29 2021-11-16 Fungible, Inc. Fabric control protocol for data center networks with packet spraying over multiple alternate data paths
WO2019068017A1 (en) 2017-09-29 2019-04-04 Fungible, Inc. RESILIENT NETWORK COMMUNICATION USING SELECTIVE PULVER FLOW SPRAY BY MULTIPATH PATH
US10841245B2 (en) 2017-11-21 2020-11-17 Fungible, Inc. Work unit stack data structures in multiple core processor system for stream data processing
WO2019152063A1 (en) 2018-02-02 2019-08-08 Fungible, Inc. Efficient work unit processing in a multicore system
US10929175B2 (en) 2018-11-21 2021-02-23 Fungible, Inc. Service chaining hardware accelerators within a data stream processing integrated circuit

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0389151A3 (en) 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US5307477A (en) 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5649154A (en) 1992-02-27 1997-07-15 Hewlett-Packard Company Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits
US5394555A (en) 1992-12-23 1995-02-28 Bull Hn Information Systems Inc. Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
US5590310A (en) 1993-01-14 1996-12-31 Integrated Device Technology, Inc. Method and structure for data integrity in a multiple level cache system
JP2541771B2 (ja) 1993-01-29 1996-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション 原子的メモリ参照方法及びシステム
US6311286B1 (en) * 1993-04-30 2001-10-30 Nec Corporation Symmetric multiprocessing system with unified environment and distributed system functions
US5535116A (en) 1993-05-18 1996-07-09 Stanford University Flat cache-only multi-processor architectures
US5604882A (en) 1993-08-27 1997-02-18 International Business Machines Corporation System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
US5510934A (en) 1993-12-15 1996-04-23 Silicon Graphics, Inc. Memory system including local and global caches for storing floating point and integer data
US5671391A (en) 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
US5680572A (en) 1994-02-28 1997-10-21 Intel Corporation Cache memory system having data and tag arrays and multi-purpose buffer assembly with multiple line buffers
US5644752A (en) 1994-06-29 1997-07-01 Exponential Technology, Inc. Combined store queue for a master-slave cache system
US5666514A (en) 1994-07-01 1997-09-09 Board Of Trustees Of The Leland Stanford Junior University Cache memory containing extra status bits to indicate memory regions where logging of data should occur
US5617557A (en) 1994-11-14 1997-04-01 Compaq Computer Corporation Using an address pin as a snoop invalidate signal during snoop cycles
US5584013A (en) 1994-12-09 1996-12-10 International Business Machines Corporation Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache
US5651137A (en) 1995-04-12 1997-07-22 Intel Corporation Scalable cache attributes for an input/output bus
US5713004A (en) * 1995-05-18 1998-01-27 Data General Corporation Cache control for use in a multiprocessor to prevent data from ping-ponging between caches
US5652859A (en) 1995-08-17 1997-07-29 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5815648A (en) * 1995-11-14 1998-09-29 Eccs, Inc. Apparatus and method for changing the cache mode dynamically in a storage array system
JP3269967B2 (ja) * 1996-04-24 2002-04-02 株式会社日立製作所 キャッシュコヒーレンシ制御方法、および、これを用いたマルチプロセッサシステム
JP3139392B2 (ja) * 1996-10-11 2001-02-26 日本電気株式会社 並列処理システム
US6128677A (en) * 1997-10-15 2000-10-03 Intel Corporation System and method for improved transfer of data between multiple processors and I/O bridges

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727468B2 (en) 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US10078592B2 (en) 2004-09-09 2018-09-18 Intel Corporation Resolving multi-core shared cache access conflicts
US10741034B2 (en) 2006-05-19 2020-08-11 Apdn (B.V.I.) Inc. Security system and method of marking an inventory item and/or person in the vicinity
JP2014503103A (ja) * 2011-12-23 2014-02-06 インテル・コーポレーション 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置
US10047282B2 (en) 2014-03-18 2018-08-14 Apdn (B.V.I.) Inc. Encrypted optical markers for security applications
JP2015046184A (ja) * 2014-10-31 2015-03-12 インテル・コーポレーション 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置
JP2021502629A (ja) * 2017-11-10 2021-01-28 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 複数のプロセッサによる共有キャッシュ・ラインの同時変更
JP7083446B2 (ja) 2017-11-10 2022-06-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のプロセッサによる共有キャッシュ・ラインの同時変更

Also Published As

Publication number Publication date
KR20000076752A (ko) 2000-12-26
US6314491B1 (en) 2001-11-06
JP3533355B2 (ja) 2004-05-31
CN1142503C (zh) 2004-03-17
CN1267023A (zh) 2000-09-20
KR100318789B1 (ko) 2001-12-29

Similar Documents

Publication Publication Date Title
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
US7827354B2 (en) Victim cache using direct intervention
US7698508B2 (en) System and method for reducing unnecessary cache operations
US7305523B2 (en) Cache memory direct intervention
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US7281092B2 (en) System and method of managing cache hierarchies with adaptive mechanisms
US7076613B2 (en) Cache line pre-load and pre-own based on cache coherence speculation
US6345342B1 (en) Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
EP0598535A1 (en) Pending write-back controller for a cache controller coupled to a packet switched memory bus
US20030009643A1 (en) Two-stage request protocol for accessing remote memory data in a NUMA data processing system
US20030009632A1 (en) Method and system for prefetching utilizing memory initiated prefetch write operations
US20030009639A1 (en) Non-uniform memory access (NUMA) data processing system that provides precise notification of remote deallocation of modified data
US20030009634A1 (en) Non-uniform memory access (NUMA) data processing system that provides notification of remote deallocation of shared data
US6321306B1 (en) High performance multiprocessor system with modified-unsolicited cache state
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
KR19980079662A (ko) Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법
US20020169935A1 (en) System of and method for memory arbitration using multiple queues
JP3262519B2 (ja) 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム
US6418514B1 (en) Removal of posted operations from cache operations queue
US6345339B1 (en) Pseudo precise I-cache inclusivity for vertical caches
US6247098B1 (en) Cache coherency protocol with selectively implemented tagged state
US6345340B1 (en) Cache coherency protocol with ambiguous state for posted operations
US6385702B1 (en) High performance multiprocessor system with exclusive-deallocate cache state
JP2002116954A (ja) キャッシュシステム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040302

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040308

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090312

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees