JPH09138779A - スヌープ処理方法 - Google Patents

スヌープ処理方法

Info

Publication number
JPH09138779A
JPH09138779A JP8201385A JP20138596A JPH09138779A JP H09138779 A JPH09138779 A JP H09138779A JP 8201385 A JP8201385 A JP 8201385A JP 20138596 A JP20138596 A JP 20138596A JP H09138779 A JPH09138779 A JP H09138779A
Authority
JP
Japan
Prior art keywords
cache
snoop
data
address
buffer queue
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
JP8201385A
Other languages
English (en)
Inventor
Mulla Dean
ディーン・ムーラ
Lacobovich Sorin
ソリン・ラコボヴィッチ
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH09138779A publication Critical patent/JPH09138779A/ja
Pending 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】メモリへの書込みバッファなどを使用する高速
プロセッサにおける、プロセッサ・スピードに与える影
響を小さくしたキャッシュ・スヌープ方法。 【構成・作用】書込みバッファなどのバッファ類を使用
するマルチプロセッサ・システムでは、キャッシュ・ス
ヌープをキャッシュ・メモリに対して行うだけだと、ま
だバッファ中に入っていて実際には完了していないアク
セスがあるとスヌープも待たされてしまう。そこで、ス
ヌープ・アドレスの比較をキャッシュ・タグだではな
く、バッファ中のアドレスとも行うようにした。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ・システ
ムに関し、詳細には、マルチプロセッサ(MP)システ
ム中の複数のプロセッサが共有するメモリを効率的に管
理するコンピュータ・システムの実現形態に関する。
【0002】
【従来の技術】MPでは、複数の中央演算処理装置がメ
モリ中のデータを共有する。MPシステムは、共有メモ
リ中のすべてのデータ間に「コヒーレンシ」を維持する
ことが望ましい。データは、メイン・メモリだけでな
く、高速キャッシュ・メモリを含め、いくつかの異なる
ロケーションに存在することができる。コヒーレンシと
は、各中央演算処理装置(CPU)が、共有メモリ中の
特定のアドレスに対応する最後に変更されたデータにア
クセスしなければならないという概念を指す。言い換え
ると、あるアドレスにある特定のデータが、このメモリ
・ロケーションで最後に変更されたデータである場合、
最後に変更されたこのデータを同定してこの特定のデー
タを要求するすべてのCPUがこのデータを使用できな
ければならない。
【0003】システム内でコヒーレンシを維持する方法
の一例は、メイン・メモリに対する読出し及び書込みを
監視することである。あるアドレスにあるデータのメモ
リ読出しまたはメモリ書込みが検出されると、このアド
レスはスヌープ・アドレスとして使用される。このスヌ
ープ・アドレスに合致するキャッシュ・メモリ中のアド
レスをサーチするために、マルチプロセッサ・システム
中のすべてのキャッシュ・メモリに向けてスヌープ要求
が開始される。合致が起こる毎にスヌープ・ヒットが発
生し、スヌープ・ヒットが発生したキャッシュ中のアド
レスにあるデータのコヒーレンシを維持するために必要
な是正措置がとられる。
【0004】キャッシュ・メモリを有する高性能マルチ
プロセッサ・システムの通常の動作では、通常、任意の
時点で、キャッシュ・データを求めるまだ保留中の複数
の要求がある。これらの要求を掌握し続け効率的に処理
するには、キャッシュ・サブシステム中のキャッシュ・
メモリに結合されたバッファ・キューが必要である。し
かし、キャッシュ・サブシステムがローカル・コードに
対して高い性能を維持できるようにし、同時に、スヌー
プ要求のための効率的なサポートを提供することは困難
である。キャッシュ・メモリ及びそれに関連する全ての
バッファ・キューの両方を効率的にスヌープする方法及
び装置が必要である。
【0005】
【概要】本発明は、新規なキャッシュ・サブシステム構
造においてキャッシュ・メモリ及びそれに関連するバッ
ファ・キューの両方をスヌープする効率的な方法及び装
置を提供する。
【0006】簡単に、かつ一般的な言葉で言えば、本発
明は、第1及び第2の中央演算処理装置と、メイン・メ
モリと、第1及び第2の中央演算処理装置とメイン・メ
モリに結合されたシステム・バスを含む。第2の中央演
算処理装置には、データ・ラインを記憶するキャッシュ
・メモリと、キャッシュ・データ・ラインのアドレス及
びキャッシュ・データ・ラインのステータスを示すキャ
ッシュ・タグを含む新規なキャッシュ構造が結合され
る。通常、プロセッサの高性能動作の下では、いつで
も、まだ処理されていないキャッシュ・データを求める
複数の要求が存在するので、このキャッシュ構造は更
に、キャッシュ・データ・ラインのアドレス及びキャッ
シュ・データ・ラインのステータスを記憶する少なくと
も1つのバッファ・キューを含む。このバッファ・キュ
ーは、いくつかの未処理のキャッシュ要求を掌握し続
け、それらを効率的に処理するのを助ける。
【0007】第1の中央演算処理装置がシステム・バス
を介してメイン・メモリにアクセスしたこと、たとえば
メイン・メモリに対する読出しまたは書込みに応答し
て、スヌープ要求を開始しスヌープ・アドレスを提供す
るバス制御装置がシステム・バスに結合される。スヌー
プ要求に応答して、キャッシュ・タグがサーチされる。
スヌープ・アドレスがキャッシュ・データ・ラインのア
ドレスに合致した場合、スヌープ・ヒット条件が発生
し、データ・コヒーレンシを維持するように、ライン・
ステータスに基づいて適切な処置がとられる。
【0008】スヌープ要求に応答して、スヌープ・アド
レスは、バッファ・キューに記憶されているアドレスと
も比較され、そのスヌープ・アドレスがバッファ・キュ
ーに記憶されているアドレスに合致する場合には肯定比
較結果を与え、それによってスヌープ・ヒット条件が成
立したことを示す。新規なキャッシュ構造のバッファ・
キューは更に、スヌープ・ヒット条件が成立したことを
示す肯定比較結果の記録を記憶するスヌープ・ヒット・
ビットを有する。同様に、好ましい実施例では、別のバ
ッファ・キューの別のアドレス・エントリがスヌープさ
れ、合致したアドレス・エントリ毎に、夫々のスヌープ
・ヒット・ビットがセットされる。本発明の教示によれ
ば、バッファ・キューにかかわる未処理のトランザクシ
ョンがまだある場合でも、バッファ・キューのスヌープ
・ヒット・ビットに比較結果が一旦記憶されれば第2の
キャッシュのスヌープ要求が満たされ、それによって、
本発明の新規なキャッシュ構造はローカル・コードに対
して高い性能を維持し、同時に、スヌープ要求を効率的
にサポートする。
【0009】本発明の他の態様及び利点は、一例を用い
て本発明の原理を説明する、下記の詳細な説明を図面と
共に検討すれば明らかになるだろう。
【0010】
【実施例】図1は、本発明の複数の好ましいキャッシュ
・サブシステム構造101を使用する多重処理(MP)
システム100の部分ブロック図である。各キャッシュ
構造は、メイン・メモリ103と、夫々第1または第2
の中央演算処理装置(CPU)105、106との間に
結合された高速メモリを備える。中央演算処理装置(C
PU)は命令をフェッチし実行するデータ処理装置の一
部である。キャッシュ構造101は、アクセス時間を短
縮するために、メイン・メモリの最近アクセスされた内
容を含むように継続的に更新される。プログラムがメモ
リ要求を行うと、CPUはまず、メイン・メモリにアク
セスせずにデータを取り出せるように、キャッシュ構造
中にデータがあるかどうかを検査する。
【0011】中央演算処理装置105、106は、メモ
リ空間内でデータ・ラインを共有する。本明細書では、
データ・ラインは、命令、処理済みデータ、未処理デー
タを含め、メモリにストアされている情報を一般的に指
す。図1に示した本発明の好ましい実施例では、各キャ
ッシュ構造101は夫々レベル1データ・キャッシュ1
07及びレベル2データ・キャッシュ109を含む。本
発明をデータ・キャッシュへ適用したものを以下で詳し
く論じる。しかし、別の実施例では、本発明が命令キャ
ッシュまたは命令キャッシュとデータ・キャッシュの組
合せに適切に適用され有益な結果が得られることを理解
されたい。
【0012】MPシステムは、メモリ中のすべてのデー
タ・ライン間に「コヒーレンシ」を維持するのが有利で
ある。データ・ラインはいくつかの異なる位置に存在す
る。すなわち、キャッシュ・データ・ラインは、夫々、
CPU105、106に夫々近接して結合されたキャッ
シュ構造101中に配置され、メイン・メモリ・データ
・ラインは、CPU105、106から離れて結合され
たメイン・メモリ103に配置される。コヒーレンシと
は、各中央演算処理装置(CPU)が、共有メモリ中の
特定のアドレスに対応する最後に変更されたデータにア
クセスしなければならないという概念を指す。言い換え
ると、あるアドレスにある特定のデータ・ラインが、あ
るメモリ・ロケーションで最後に変更されたデータ・ラ
インである場合、この最後に変更されたこのデータ・ラ
インが最後に変更されたものであるということが知ら
れ、この特定のデータ・ラインを要求するすべてのCP
Uがこのデータを使用できなければならない。MPシス
テムでコヒーレンシを維持するために、各キャッシュ構
造101に結合された夫々のバス制御装置/インタフェ
ース111が、メイン・メモリ103に対するアクセ
ス、たとえばメイン・メモリに対する読出しまたは書込
みがないかどうかシステム・バス112を監視する。た
とえば、第1のCPU105がメイン・メモリにアクセ
スしたこと、すなわちメモリ読出しとメモリ書込みのど
ちらかをバス制御装置が検出すると、これらのバス制御
装置は、第2のプロセッサ106に近接して結合された
キャッシュ構造を含め、夫々に近接して結合された夫々
のキャッシュ構造に対するスヌープ・サイクルを開始す
る。
【0013】スヌープ・サイクルのために実行されるプ
ロトコルは、主として、MPシステムで選択されたデー
タ・キャッシュのタイプに依存する。従来、データ・キ
ャッシュは、「ライトスルー」(WT)型と「ライトバ
ック」(WB)型のどちらかに分類される。いくつかの
実施例では、キャッシュは、データ・キャッシュへの入
力の論理状態つまりステータスに応じて、WT型キャッ
シュとWB型キャッシュのどちらかとして動作できるよ
うに設計される。
【0014】WT型データ・キャッシュでは、データ・
ラインは、中央演算処理装置による更新や変更など、キ
ャッシュ・データ・ラインが変更される毎にメイン・メ
モリに「素通しで書き込まれる」。従って、メイン・メ
モリには常に、最後に変更されたデータ・ラインが存在
する。その結果、WT型データ・キャッシュのコヒーレ
ンシを維持するためのプロトコルは、メモリ書込み時に
しかスヌープ・サイクルを開始しない。WTデータ・キ
ャッシュ構造からのメモリ読出しに対するバス制御装置
の処置は必要とされない。
【0015】WB型キャッシュ及びWT型キャッシュは
夫々異なる利点と欠点を有する。WB型データ・キャッ
シュでは、キャッシュ・データ・ラインが変更される毎
にただちにメイン・メモリにデータ・ラインが「素通し
で書き込まれる」ことはない。従って、本発明の好まし
い実施例では、ローカルCPUが有利には、MPシステ
ム中の他のメモリ・ロケーションに常に変更を知らせる
必要なしに、ローカルWB型データ・キャッシュを何回
も変更するように、WB型データ・キャッシュが使用さ
れる。ライトバック型キャッシュ及びライトスルー型キ
ャッシュを対象とする関連する教示は、1995年4月
4日に発行され本願出願人に譲渡された米国特許第5,
404,489号に記載されているので参照されたい。
図1の好ましい実施例は本発明の教示に従って具体的に
適用されたWB型データ・キャッシュを含むキャッシュ
構造101を示すものであるが、別の実施例ではWT型
データ・キャッシュが使用され本発明の教示当に従って
適切に適用され有益な結果がもたらされることを理解さ
れたい。
【0016】WB型データ・キャッシュでは、他の何ら
かのソースからデータ・ラインが要求されたとき、ある
いはプログラム制御に応答してデータ・ラインをメイン
・メモリにフラッシュしたり新しいデータ・ライン用の
スペースを設ける必要があるときに、このデータ・ライ
ンがWBデータ・キャッシュからメイン・メモリへ書き
込まれる。あるWB型データ・キャッシュが変更された
データを持っているとスヌープ・サイクル中に判定され
た場合、この特定のデータ・キャッシュは、要求元CP
Uにこの変更済みデータを提供する。スヌープ・サイク
ル中にWB型データ・キャッシュからメモリ書込みが行
われた場合には、コヒーレンシを維持するプロトコル
は、この書込みデータを受け取ったメモリ・ロケーショ
ン以外のすべてのメモリ・ロケーションにある当該デー
タ・ラインを無効化することである。
【0017】高性能システム動作時には一度に複数のキ
ャッシュ要求が処理されている。これらの要求を掌握し
続け効率的に処理するために、好ましい実施例では、キ
ャッシュ・サブシステム構造にいくつかのバッファ・キ
ューがある。マルチプロセッサ・キャッシュ・コヒーレ
ンシを効率的に維持するには、バッファ・キューを効率
的にスヌープすることが重要である。以下で詳しく論じ
るように、本発明の原理に従ってバッファ・キュー中の
スヌープ・ヒットを記録するようにバッファ・キューを
変更すれば、キャッシュ構造がローカル・コードに対し
て高い性能を維持し、同時にスヌープ要求が効率的にサ
ポートされる。
【0018】本発明よりも以前には、ブロッキング・キ
ャッシュを有するプロセッサ中のキャッシュ・データ・
ラインのマルチプロセッサ・スヌープの問題に対する本
願発明者らの研究には、例えば、スヌープを検査してい
る間はキャッシュ構造全体を停止するということが含ま
れていた。このような従来の研究では、スヌープがアク
セスしようとしているラインに対する未処理のアクセス
がある場合、そのスヌープは遅延され、完了することが
できなくなる。こられの従来の研究におけるそのような
構造では、キャッシュ構造が停止されている間、第1の
スヌープが完了するまで他のスヌープをバス上に送るこ
とができなくなるので、性能が低下しがちであった。
【0019】このような従来の研究に対して、本発明は
有利なことには、キャッシュ構造中のバッファ・キュー
全体にわたってスヌープ処理を分散し、スヌープ・ヒッ
ト・ビットをセットすることによって未処理のトランザ
クションにそれがスヌープされたものとマークを付ける
ことができるようにする。スヌープ・ヒット・ビットが
セットされたことに応答して、バッファによって参照さ
れるデータ・ラインの所有権を放棄することによってこ
のスヌープが完了する。未処理のトランザクションに関
するデータが戻されると、バス参照をもたらしたこのト
ランザクションが満足された直後にそのデータを含むラ
インが放棄される。
【0020】本発明によれば、スヌープを受け取ったと
きに、まだスヌープされていないメモリ・データを含む
キャッシュ内部のあらゆるバッファ・キューがスヌープ
される。例外は以下の通りである:システム・バス上に
発行されていないアクセスは、そのアドレスを着信スヌ
ープ・アドレスと比較する必要はない;以前のスヌープ
に応答してバス上へ送出されているデータは、そのアド
レスをスヌープ・アドレスと比較する必要がない。好ま
しい実施例では、他のすべてのキャッシュ・アドレスが
スヌープ・アドレスと比較される。もちろん、バッファ
・キューだけでなく、キャッシュ構造のレベル1データ
・キャッシュ107及びレベル2データ・キャッシュ1
09のキャッシュ・タグもサーチされ、スヌープ中のデ
ータ・ラインがそこに存在するかどうかが判定される。
【0021】好ましい実施例では、キャッシュ構造は、
変更ステータス、排他ステータス、共有ステータス、無
効ステータスをサポートする全MESIプロトコルのラ
イン・ステータスをサポートする。キャッシュ・データ
・ラインのステータスが排他的所有(排他ステータス)
である場合、所有側キャッシュ構造は、キャッシュ・デ
ータ・ラインのキャッシュされた唯一のコピーを保持す
る。このコピーは他のキャッシュ構造には通知せずにロ
ーカルに更新される。キャッシュ・データ・ラインのス
テータスが「共有」ステータスである場合、他のキャッ
シュ構造もこのキャッシュ・データ・ラインのコピーを
有することができ、キャッシュ・データ・ラインの更新
に関する通知を受けなければならない。「無効」ライン
・ステータスは、キャッシュ・エントリが有用なデータ
を含まないことを示す。「変更」ステータスは、キャッ
シュ・エントリにデータが書き込まれており、従って変
更されている、つまり「ダーティ」であることを示す。
【0022】任意のCPUは好適には、バス上にトラン
ザクションを発行した直後にキャッシュ・データ・ライ
ンの所有権を獲得することができ、あるいはそうする代
わりに、CPUはラインの所有権を獲得するにはそのデ
ータが戻ってくるのを待つ必要があるようにすることも
できる。以後の議論のために、好ましい実施例では、プ
ロセッサは、システム・バス上でメモリ要求を発行した
直後にキャッシュ・データ・ラインの所有権を獲得する
ことを理解する必要がある。
【0023】スヌープに関しては、好ましい実施例で
は、システム・バスが、他のプロセッサからのメモリ・
アクセス(読出しまたは書込み)がないかどうか監視さ
れる。キャッシュ・タグがサーチされ、タグがスヌープ
・アドレスに合致する場合、そのラインはキャッシュの
スタティック・ランダム・アクセス・メモリ(SRA
M)に存在する。キャッシュ中のラインのステータスが
変更ステータスではない場合、そのラインは無効化され
(あるいは、キャッシュは、キャッシュ間転送を実行し
てキャッシュ・データ・ラインを要求元プロセッサに提
供することもできる)、かくしてスヌープ動作は完了し
また完了したものと認められる。
【0024】好ましい一実施例では、スヌープの完了
は、フラッシュ中のラインがバス上に実際に出されるま
で遅延される。しかし、好ましい他の実施例のもっと良
好に動作する解決策は、このラインがメモリ中で正しい
データでまもなく更新されるとの通知を行って、スヌー
プをできるだけ早く完了することである。その場合、要
求元プロセッサは、メモリへのデータの書直しが行われ
るまで待機しなければならず、あるいはそうする代わり
に、そのデータに対するキャッシュ間転送をサポートし
てもよい。
【0025】本発明は、プロセッサが変更済みライン、
または排他ライン、または共有ライン上でキャッシュ間
転送を実行するかどうかにはかかわらずに、有益な結果
をもたらす。しかし、キャッシュ・データ・ラインが変
更ステータスである場合、そのキャッシュ・データ・ラ
インは好ましくは、スヌープが完了する前にメモリへフ
ラッシュし、あるいはキャッシュ間転送を介して他のキ
ャッシュへ転送される。この場合、ラインが存在し、か
つまもなくフラッシュされることを示すスヌープ応答が
行われる。
【0026】本発明が特にキャッシュ構造中のバッファ
・キューに適用されることを理解されたい。スヌープ要
求を受け取ると、レベル1データ・キャッシュ及びレベ
ル2データ・キャッシュのキャッシュ・タグだけでな
く、このようなバッファ・キューもスヌープされる。バ
ッファ・キューをスヌープすることは、データ・ライン
がデータ・キャッシュの外部へ移動され、このデータ・
ラインがこのプロセッサによって所有されていることを
示すものがもはやキャッシュ・タグには残っていない可
能性があるので、特に重要である。
【0027】更に、プロセッサのうちの一つがバス上に
要求を発行したが、まだその応答を受け取っていないと
いうことがある。このプロセッサは、バス上に要求を送
ったので、現在そのデータ・ラインを所有しているが、
それに関するデータは持っていない。しかし、スヌープ
を受け取ったとき正しく動作するためには、このプロセ
ッサが所有しているすべてのデータ・ラインをスヌープ
しなければならない。
【0028】本発明の方法及び装置は、このバッファ・
キュー・エントリに対するスヌープ比較が成功したかど
うかを記録するためにこのような内部バッファ・キュー
の各エントリ毎に割り当てられた少なくとも1ビット
(本明細書ではスヌープ・ヒット・ビットと呼ぶ)を含
む。本願発明者は、スヌープ・ヒットを記録するスヌー
プ・ヒット・ビットを有するバッファ・キューを含むキ
ャッシュ構造に関する他者による従来の教示は知らない
が、たとえば1994年12月29日にRoger E.Tepley
に対して発行された”Method and Apparatus for Achie
ving MultilevelInclusion in Multilevel Cache Hiera
rchies”と題する米国特許第5,369,753号で論
じられたように、データ・キャッシュのスヌープ・ヒッ
トだけは当業者によって良く理解されている。
【0029】本発明の図1に示したように、キャッシュ
構造101には、メモリ・リターン・バッファ・キュー
やレベル2(データ・キャッシュ)書込みバッファ・キ
ューなど、バス上で発行された未解決の要求を含むバッ
ファ・キュー123が含まれる。たとえば、仮想アドレ
ス・フラッシュ・キャッシュ命令(VAFC)を介して
キャッシュからラインがフラッシュされ、あるいはその
他の方法でラインがキャッシュ階層からフラッシュされ
る際には、そのラインはレベル2書込みバッファ・キュ
ー内に置かれる。キャッシュ・ラインがキャッシュの外
部へ移動中であるので、そのキャッシュ・ラインがプロ
セッサによって所有されていることを示すものはもはや
キャッシュ・タグ中には存在しないかもしれない。しか
し、このプロセッサは依然としてレベル2書込みバッフ
ァ・キュー中にこのキャッシュ・ラインを所有している
ので、レベル2書込みバッファ・キューに関連するアド
レスをスヌープする必要がある。
【0030】メモリ・リターン・バッファ・キュー(M
RQ)については、メモリから排他的であるように要求
されているライン(たとえば、プロセッサによって書き
込まれるべきライン)は、まだデータが得られない場合
でも、そのラインのアドレスがMRQにあれば、プロセ
ッサによって所有されているとみなされることを理解し
なければならない。その結果、まだデータが得られない
場合でも、各スヌープ・アドレスを使用してMRQがサ
ーチされる。その結果、各スヌープ・アドレスを使用し
てMRQがサーチされ、あるエントリのアドレスがスヌ
ープ・アドレスに合致した場合、そのエントリは、スヌ
ープ済みとしてタグが付けられ、対応するメモリ・フラ
ッシュ・バッファ(図1中には示していない)にデータ
を提供するためのトランザクション識別情報を獲得す
る。
【0031】図1に示したキャッシュ構造の好ましい実
施例には、ストア・バッファ・キューやレベル2未解決
アクセス要求バッファ・キューなどのキャッシュ内部バ
ッファ・キュー125も含まれる。レベル2キャッシュ
未処理アクセス要求バッファ・キューは、まだ解決され
ていない、レベル2データ・キャッシュに発行されたア
クセスを掌握し続ける。ストア・バッファ・キュー(S
TQ)は、アドレス、バイト・イネーブル書込み制御ビ
ット、データ、その他ストアのための関連する情報を保
持する。
【0032】更に、本発明の方法及び装置は、1つまた
は複数の比較器(図1のブロック図には図示せず)を含
む。これらの比較器を使用して、スヌープ・アドレスと
各バッファ・キュー中のアドレスを比較して夫々の比較
結果を与え、スヌープ・アドレスとキャッシュのバッフ
ァ・キューにストアされているアドレスがうまく合致し
た比較の結果に基づいて、キャッシュのバッファ・キュ
ーに割り当てられたスヌープ・ヒット・ビットをセット
する。好ましい実施例では、バッファ・キューのエント
リのスヌープ・ヒット・ビットが現在セットされている
場合、スヌープ・アドレスとバッファ・キューに当該エ
ントリについてストアされているアドレスとがまた合致
したからといって、スヌープ・ヒット・ビットが再びセ
ットされることはなく、また新しいトランザクション識
別情報が獲得されることもないことを理解しなけれなば
なない。
【0033】その後のステップでは、バッファ・キュー
中のスヌープ・ヒット・ビットがセットされている各エ
ントリをどうすべきかを解決してから、スヌープ・ヒッ
ト・ビットをクリアする。データを有し夫々のスヌープ
・ヒット・ビットがセットされたバッファ・キュー・エ
ントリでは、バッファ・キュー・エントリのMESIス
テータスが調べられ、適当な処置がとられる。具体的に
は、バッファ・キュー・エントリのMESIステータス
が変更ステータスである場合、バッファ・キュー・エン
トリはフラッシュされてシステム・バスに出力される。
バッファ・キュー・エントリのMESIステータスが排
他ステータスまたは共有ステータスである場合、バッフ
ァ・キュー・エントリは無効化される。
【0034】バッファ・キュー・エントリが、そのスヌ
ープ・ヒット・ビットはセットされているのだがデータ
がまだバッファ・キューに記憶されていないという特殊
なケースでは、制御論理機構が、ストアまたはロードを
求める要求の実行をデータが到着するまで遅延させる。
バッファ・キュー・エントリにデータが到着すると、ス
トアまたはロードを求める要求が満たされる。次いで、
スヌープ・ヒット時にスヌープ比較が成功したときにす
でにデータが完全に存在している前述のバッファ・キュ
ー・エントリの場合と全く同じように、バッファ・キュ
ー・エントリのステータスが調べられ、バッファ・キュ
ー・エントリの夫々のMESIステータスに応じて適当
な処置がとられる。データを受け取った後、バッファ・
キュー・エントリが変更ステータスになった場合は、バ
ッファ・キューはフラッシュされてシステム・バスに出
力される。データを受け取った後にバッファ・キュー・
エントリが排他ステータスまたは共有ステータスになっ
た場合、バッファ・キュー中のデータ・ライン・エント
リが無効化される。
【0035】単一のキャッシュ・データ・ラインへの複
数のスヌープ要求の順序付けは、要求元プロセッサが、
他のどのプロセッサが変更されたキャッシュ・データ・
ラインを持っていてこのキャッシュ・データ・ラインの
データをまもなくメモリへ送り返すか、を知らせること
によって処理される。各プロセッサ要求は鎖状にならべ
られ、要求元プロセッサは、バス上に要求を発行した直
後に要求中のキャッシュ・データ・ラインの所有権を与
えられる。各要求元プロセッサは、スヌープ処理を正し
く実行するうえで各要求毎に3つのこと、すなわちリタ
ーン・トランザクション用のトランザクション識別情報
(トランザクションID)と、キャッシュ・データ・ラ
インのMESIステータスと、要求元プロセッサがスヌ
ープのためにキャッシュ・データ・ラインを放棄しなけ
ればならないかどうか、を掌握し続けるだけでよいの
で、複数の要求元を追跡するための長い単一のキューは
必要とされない。
【0036】トランザクションIDは、データがどのプ
ロセッサから送られてくるか、あるいはコヒーレント入
出力によってデータがどの入出力(I/O)アダプタか
ら送られてくるのかを示すうえで有用である。要求元プ
ロセッサが要求を一旦発行すればこの要求元プロセッサ
がデータを受け取ることをシステムが保証するかぎり、
本発明は、要求元プロセッサの可視性レベルからの適切
なアクセス順序付けを保証するバスのないシステムで
も、スヌープを簡略化しまたより効率的なスヌープを行
ううえで有益である。
【0037】本発明は、新規なキャッシュ・サブシステ
ム構造においてキャッシュ・メモリとそれに関連するバ
ッファ・キューの両方をスヌープする効率的な方法及び
装置を提供する。本発明の特定の実施例を説明し例示し
たが、本発明は、このように説明し例示した部品の特定
の態様または構成に限るものではなく、本発明の範囲及
び趣旨から逸脱せずに様々な変更及び変更を加えること
ができる。本発明は、本願特許範囲内では、上で具体的
に説明し例示した以外の方法でも実施することができ
る。
【0038】以下に本発明の実施態様の例を列挙する。
【0039】〔実施態様1〕以下のステップ(a)ないし
(e)を設けたことを特徴とするスヌープ処理方法: (a)データ・ラインをストアするキャッシュ・メモリ
と、前記データ・ラインのアドレス及び前記データ・ラ
インのステータスを識別するキャッシュ・タグを提供す
る; (b)前記データ・キャッシュに結合され、前記データ・
ラインのアドレス及び前記データ・ラインのステータス
をストアし、それによって前記データ・ラインを参照す
る; (c)スヌープ・アドレスとバッファ・キューに記憶され
ているアドレスとを比較し、前記スヌープ・アドレスが
前記バッファ・キューにストアされているアドレスに合
致する場合には肯定比較結果を与え、それによってスヌ
ープ・ヒット条件が成立したことを示す; (d)少なくとも1つのスヌープ・ヒット・ビットを前記
バッファ・キューに割り当てる; (e)前記スヌープ・ヒット条件が成立したことを示す前
記肯定比較結果に応答して前記スヌープ・ヒット・ビッ
トをセットする。
【0040】〔実施態様2〕前記スヌープ・ヒット・ビ
ットがセットされたことに応答して、前記バッファ・キ
ューによって参照されるデータ・ラインの所有権を放棄
することを特徴とする実施態様1記載のスヌープ処理方
法。
【0041】〔実施態様3〕第1の中央演算装置と、第
2の中央演算処理装置と、メイン・メモリと、前記第1
の中央演算装置、前記第2の中央演算処理装置及び前記
メイン・メモリに結合されたシステム・バスと、前記シ
ステム・バスに結合され、前記第1の中央演算処理装置
が前記システム・バスを介して前記メイン・メモリにア
クセスしたことに応答してスヌープ要求を開始しスヌー
プ・アドレスを提供するバス制御装置と、前記第2の中
央演算処理装置に結合され、データ・ラインをストアす
るキャッシュ・メモリと、キャッシュ・データ・ライン
のアドレス及びステータスを識別するキャッシュ・タグ
と、キャッシュ・データ・ラインのアドレス及びステー
タスをストアするバッファ・キューを含むキャッシュ構
造と、前記バッファ・キューに結合され、スヌープ要求
に応答して、スヌープ・アドレスと前記バッファ・キュ
ーにストアされているアドレスを比較し、前記スヌープ
・アドレスが前記バッファ・キューに記憶されているア
ドレスに合致する場合には肯定比較結果を与え、それに
よってスヌープ・ヒット条件が成立したことを示す比較
器を設け、前記バッファ・キューは更に、前記スヌープ
・ヒット条件が成立したことを示す前記肯定比較結果の
記録をストアするスヌープ・ヒット・ビットを有するこ
とを特徴とするスヌープ処理装置。
【0042】〔実施態様4〕前記バッファ・キューが、
バス上で発行されたがまだ解決されていない未解決要求
を含むバッファ・キューを含むことを特徴とする実施態
様3記載のスヌープ処理装置。
【0043】〔実施態様5〕前記バッファ・キューがメ
モリ・リターン・バッファ・キューを含むことを特徴と
する実施態様4記載のスヌープ処理装置。
【0044】〔実施態様6〕前記バッファ・キューがキ
ャッシュ書込みバッファ・キューを含むことを特徴とす
る実施態様4記載のスヌープ処理装置。
【0045】〔実施態様7〕前記バッファ・キューがス
トア・バッファ・キューを含むことを特徴とする実施態
様3記載のスヌープ処理装置。
【0046】〔実施態様8〕前記バッファ・キューが未
解決アクセス要求バッファ・キューを含むことを特徴と
する実施態様3記載のスヌープ処理装置。
【図面の簡単な説明】
【図1】本発明の好ましいキャッシュを使用するマルチ
プロセッサ・システムの部分ブロック図。
【符号の説明】
100:多重処理システム 101:キャッシュ・サブシステム構造 103:メイン・メモリ 105、106:中央演算処理装置 107:レベル1データ・キャッシュ 109:レベル2データ・キャッシュ 111:バス制御装置/インタフェース 112:システム・バス 123:バッファ・キュー 125:キャッシュ内部バッファ・キュー

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】以下のステップ(a)ないし(e)を設けたこと
    を特徴とするスヌープ処理方法: (a)データ・ラインをストアするキャッシュ・メモリ
    と、前記データ・ラインのアドレス及び前記データ・ラ
    インのステータスを識別するキャッシュ・タグを提供す
    る; (b)前記データ・キャッシュに結合され、前記データ・
    ラインのアドレス及び前記データ・ラインのステータス
    をストアし、それによって前記データ・ラインを参照す
    る; (c)スヌープ・アドレスとバッファ・キューに記憶され
    ているアドレスとを比較し、前記スヌープ・アドレスが
    前記バッファ・キューにストアされているアドレスに合
    致する場合には肯定比較結果を与え、それによってスヌ
    ープ・ヒット条件が成立したことを示す; (d)少なくとも1つのスヌープ・ヒット・ビットを前記
    バッファ・キューに割り当てる; (e)前記スヌープ・ヒット条件が成立したことを示す前
    記肯定比較結果に応答して前記スヌープ・ヒット・ビッ
    トをセットする。
JP8201385A 1995-08-17 1996-07-31 スヌープ処理方法 Pending JPH09138779A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US516,421 1995-08-17
US08/516,421 US5652859A (en) 1995-08-17 1995-08-17 Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues

Publications (1)

Publication Number Publication Date
JPH09138779A true JPH09138779A (ja) 1997-05-27

Family

ID=24055510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8201385A Pending JPH09138779A (ja) 1995-08-17 1996-07-31 スヌープ処理方法

Country Status (2)

Country Link
US (1) US5652859A (ja)
JP (1) JPH09138779A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697899B1 (en) 1999-10-20 2004-02-24 Nec Corporation Bus control device allowing resources to be occupied for exclusive access
JP2009527866A (ja) * 2006-03-30 2009-07-30 インテル・コーポレーション アウトオブオーダープロセッサにおけるトランザクショナルメモリ
US8244985B2 (en) 2004-03-30 2012-08-14 Intel Corporation Store performance in strongly ordered microprocessor architecture

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5742791A (en) * 1996-02-14 1998-04-21 Advanced Micro Devices, Inc. Apparatus for detecting updates to instructions which are within an instruction processing pipeline of a microprocessor
US5911052A (en) * 1996-07-01 1999-06-08 Sun Microsystems, Inc. Split transaction snooping bus protocol
US5752265A (en) * 1996-06-13 1998-05-12 Compaq Computer Corporation Memory accessing in a multi-processor system using snooping
US6128711A (en) * 1996-11-12 2000-10-03 Compaq Computer Corporation Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes
US6035424A (en) * 1996-12-09 2000-03-07 International Business Machines Corporation Method and apparatus for tracking processing of a command
US6000011A (en) * 1996-12-09 1999-12-07 International Business Machines Corporation Multi-entry fully associative transition cache
US5764932A (en) * 1996-12-23 1998-06-09 Intel Corporation Method and apparatus for implementing a dual processing protocol between processors
US6147987A (en) * 1997-04-08 2000-11-14 3Com Corporation Supporting load sharing across multiple network access servers
US6011910A (en) * 1997-04-08 2000-01-04 3Com Corporation Supporting authentication across multiple network access servers
US5900017A (en) * 1997-05-14 1999-05-04 International Business Machines Corporation Snooping a variable number of cache addresses in a multiple processor system by a single snoop request
US6311256B2 (en) * 1997-06-30 2001-10-30 Emc Corporation Command insertion and reordering at the same storage controller
US6115795A (en) * 1997-08-06 2000-09-05 International Business Machines Corporation Method and apparatus for configurable multiple level cache with coherency in a multiprocessor system
US6081876A (en) * 1997-09-22 2000-06-27 Hewlett-Packard Company Memory error containment in network cache environment via restricted access
US6263404B1 (en) 1997-11-21 2001-07-17 International Business Machines Corporation Accessing data from a multiple entry fully associative cache buffer in a multithread data processing system
US6460119B1 (en) * 1997-12-29 2002-10-01 Intel Corporation Snoop blocking for cache coherency
US6253291B1 (en) * 1998-02-13 2001-06-26 Sun Microsystems, Inc. Method and apparatus for relaxing the FIFO ordering constraint for memory accesses in a multi-processor asynchronous cache system
US6138218A (en) * 1998-02-17 2000-10-24 International Business Machines Corporation Forward progress on retried snoop hits by altering the coherency state of a local cache
US6289419B1 (en) 1998-03-06 2001-09-11 Sharp Kabushiki Kaisha Consistency control device merging updated memory blocks
US6314491B1 (en) 1999-03-01 2001-11-06 International Business Machines Corporation Peer-to-peer cache moves in a multiprocessor data processing system
US6473837B1 (en) 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Snoop resynchronization mechanism to preserve read ordering
US6393536B1 (en) 1999-05-18 2002-05-21 Advanced Micro Devices, Inc. Load/store unit employing last-in-buffer indication for rapid load-hit-store
US6415360B1 (en) 1999-05-18 2002-07-02 Advanced Micro Devices, Inc. Minimizing self-modifying code checks for uncacheable memory types
US6266744B1 (en) 1999-05-18 2001-07-24 Advanced Micro Devices, Inc. Store to load forwarding using a dependency link file
US6473832B1 (en) 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Load/store unit having pre-cache and post-cache queues for low latency load memory operations
US6427193B1 (en) 1999-05-18 2002-07-30 Advanced Micro Devices, Inc. Deadlock avoidance using exponential backoff
US6484240B1 (en) * 1999-07-30 2002-11-19 Sun Microsystems, Inc. Mechanism for reordering transactions in computer systems with snoop-based cache consistency protocols
US6662280B1 (en) 1999-11-10 2003-12-09 Advanced Micro Devices, Inc. Store buffer which forwards data based on index and optional way match
US20030115402A1 (en) * 2001-11-16 2003-06-19 Fredrik Dahlgren Multiprocessor system
US6988172B2 (en) * 2002-04-29 2006-01-17 Ip-First, Llc Microprocessor, apparatus and method for selectively associating store buffer cache line status with response buffer cache line status
US7321964B2 (en) * 2003-07-08 2008-01-22 Advanced Micro Devices, Inc. Store-to-load forwarding buffer using indexed lookup
US7472229B2 (en) * 2004-08-12 2008-12-30 International Business Machines Corporation Bus controller initiated write-through mechanism
US7376817B2 (en) * 2005-08-10 2008-05-20 P.A. Semi, Inc. Partial load/store forward prediction
US8683143B2 (en) * 2005-12-30 2014-03-25 Intel Corporation Unbounded transactional memory systems
US8180967B2 (en) * 2006-03-30 2012-05-15 Intel Corporation Transactional memory virtualization
US7761444B2 (en) * 2006-10-05 2010-07-20 Hewlett-Packard Development Company, L.P. Identifying a sequence of blocks of data to retrieve based on a query
US7987322B2 (en) 2008-01-03 2011-07-26 Freescale Semiconductor, Inc. Snoop request management in a data processing system
US8296525B1 (en) * 2008-08-15 2012-10-23 Marvell International Ltd. Method and apparatus for data-less bus query
US8099560B2 (en) 2008-08-29 2012-01-17 Freescale Semiconductor, Inc. Synchronization mechanism for use with a snoop queue
US8131948B2 (en) * 2008-08-29 2012-03-06 Freescale Semiconductor, Inc. Snoop request arbitration in a data processing system
US8327082B2 (en) * 2008-08-29 2012-12-04 Freescale Semiconductor, Inc. Snoop request arbitration in a data processing system
US8131947B2 (en) 2008-08-29 2012-03-06 Freescale Semiconductor, Inc. Cache snoop limiting within a multiple master data processing system
US8200908B2 (en) 2009-02-06 2012-06-12 Freescale Semiconductor, Inc. Method for debugger initiated coherency transactions using a shared coherency manager
US8688910B2 (en) 2009-02-06 2014-04-01 Freescale Semiconductor, Inc. Debug control for snoop operations in a multiprocessor system and method thereof
US9128725B2 (en) 2012-05-04 2015-09-08 Apple Inc. Load-store dependency predictor content management
US9600289B2 (en) 2012-05-30 2017-03-21 Apple Inc. Load-store dependency predictor PC hashing
US9710268B2 (en) 2014-04-29 2017-07-18 Apple Inc. Reducing latency for pointer chasing loads
US10102129B2 (en) * 2015-12-21 2018-10-16 Intel Corporation Minimizing snoop traffic locally and across cores on a chip multi-core fabric
US10514925B1 (en) 2016-01-28 2019-12-24 Apple Inc. Load speculation recovery
US10437595B1 (en) 2016-03-15 2019-10-08 Apple Inc. Load/store dependency predictor optimization for replayed loads
JP7042709B2 (ja) * 2018-06-28 2022-03-28 ルネサスエレクトロニクス株式会社 半導体装置、制御システムおよび半導体装置の制御方法
US11544193B2 (en) * 2020-09-11 2023-01-03 Apple Inc. Scalable cache coherency protocol

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03219345A (ja) * 1990-01-25 1991-09-26 Toshiba Corp 多ポートキャッシュメモリ制御装置
US5263142A (en) * 1990-04-12 1993-11-16 Sun Microsystems, Inc. Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
EP0461926B1 (en) * 1990-06-15 1998-09-02 Compaq Computer Corporation Multilevel inclusion in multilevel cache hierarchies
ATE158882T1 (de) * 1990-06-15 1997-10-15 Compaq Computer Corp Vorrichtung zur echten lru-ersetzung
US5404483A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills
US5193170A (en) * 1990-10-26 1993-03-09 International Business Machines Corporation Methods and apparatus for maintaining cache integrity whenever a cpu write to rom operation is performed with rom mapped to ram
JPH04353947A (ja) * 1991-02-13 1992-12-08 Hewlett Packard Co <Hp> メモリページ特性タグ付けシステム
US5319768A (en) * 1991-05-01 1994-06-07 Sgs-Thomson Microelectronics, Inc. Control circuit for resetting a snoop valid bit in a dual port cache tag memory
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5335335A (en) * 1991-08-30 1994-08-02 Compaq Computer Corporation Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed
US5359723A (en) * 1991-12-16 1994-10-25 Intel Corporation Cache memory hierarchy having a large write through first level that allocates for CPU read misses only and a small write back second level that allocates for CPU write misses only
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
US5341487A (en) * 1991-12-20 1994-08-23 International Business Machines Corp. Personal computer having memory system with write-through cache and pipelined snoop cycles
US5386523A (en) * 1992-01-10 1995-01-31 Digital Equipment Corporation Addressing scheme for accessing a portion of a large memory space
US5325503A (en) * 1992-02-21 1994-06-28 Compaq Computer Corporation Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line
AU665368B2 (en) * 1992-02-27 1996-01-04 Samsung Electronics Co., Ltd. CPU having pipelined instruction unit and effective address calculation unit with retained virtual address capability
US5353415A (en) * 1992-10-02 1994-10-04 Compaq Computer Corporation Method and apparatus for concurrency of bus operations
US5528764A (en) * 1992-12-24 1996-06-18 Ncr Corporation Bus system with cache snooping signals having a turnaround time between agents driving the bus for keeping the bus from floating for an extended period
US5590310A (en) * 1993-01-14 1996-12-31 Integrated Device Technology, Inc. Method and structure for data integrity in a multiple level cache system
US5528134A (en) * 1995-03-08 1996-06-18 Allen-Bradley Company, Inc. AC power analyzer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697899B1 (en) 1999-10-20 2004-02-24 Nec Corporation Bus control device allowing resources to be occupied for exclusive access
US8244985B2 (en) 2004-03-30 2012-08-14 Intel Corporation Store performance in strongly ordered microprocessor architecture
JP2009527866A (ja) * 2006-03-30 2009-07-30 インテル・コーポレーション アウトオブオーダープロセッサにおけるトランザクショナルメモリ

Also Published As

Publication number Publication date
US5652859A (en) 1997-07-29

Similar Documents

Publication Publication Date Title
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US6519685B1 (en) Cache states for multiprocessor cache coherency protocols
JP3927556B2 (ja) マルチプロセッサ・データ処理システム、変換索引バッファ無効化インストラクション(tlbi)のハンドリングを行うための方法、およびプロセッサ
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US7305522B2 (en) Victim cache using direct intervention
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US7549025B2 (en) Efficient marking of shared cache lines
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US8301843B2 (en) Data cache block zero implementation
US5708792A (en) Method and apparatus for a coherent copy-back buffer in a multipressor computer system
US6374332B1 (en) Cache control system for performing multiple outstanding ownership requests
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
US5226146A (en) Duplicate tag store purge queue
JPH10333985A (ja) データ供給方法及びコンピュータ・システム
US6553442B1 (en) Bus master for SMP execution of global operations utilizing a single token with implied release
JPH10254773A (ja) アクセス方法、処理装置およびコンピュータ・システム
US5895484A (en) Method and system for speculatively accessing cache memory data within a multiprocessor data-processing system using a cache controller
US6105108A (en) Method and apparatus for releasing victim data buffers of computer systems by comparing a probe counter with a service counter
US5263144A (en) Method and apparatus for sharing data between processors in a computer system
US5987544A (en) System interface protocol with optional module cache
US6202126B1 (en) Victimization of clean data blocks
US8332592B2 (en) Graphics processor with snoop filter
US5675765A (en) Cache memory system with independently accessible subdivided cache tag arrays
EP1725938A1 (en) System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
US6480915B1 (en) Bus protocol and token manager for SMP execution of global operations utilizing a single token with implied release

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050902

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051202

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060301

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060711