JP3696012B2 - 書込み動作順序付けバスブリッジ - Google Patents

書込み動作順序付けバスブリッジ Download PDF

Info

Publication number
JP3696012B2
JP3696012B2 JP33152699A JP33152699A JP3696012B2 JP 3696012 B2 JP3696012 B2 JP 3696012B2 JP 33152699 A JP33152699 A JP 33152699A JP 33152699 A JP33152699 A JP 33152699A JP 3696012 B2 JP3696012 B2 JP 3696012B2
Authority
JP
Japan
Prior art keywords
bus
write
cache
counter
read
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.)
Expired - Fee Related
Application number
JP33152699A
Other languages
English (en)
Other versions
JP2000235543A (ja
Inventor
デレク・エイ・シャーロック
トーマス・ブイ・スペンサー
フランシスコ・コレラ
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 JP2000235543A publication Critical patent/JP2000235543A/ja
Application granted granted Critical
Publication of JP3696012B2 publication Critical patent/JP3696012B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/306In system interconnect, e.g. between two buses

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)
  • Bus Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、一般に、コンピュータ・システムにおける入出力(I/O)装置制御の分野に係り、特に、バスブリッジの書込み要求記憶領域によって2つのコンピュータ・バス間のバスブリッジを通過する書込みデータに順序違反が生じる可能性のある場合にリード・リターン・データ(read return date)の適切な順序付けを行うバスブリッジに関する。
【0002】
【従来の技術】
コンピュータ・システムでは、入出力装置による直接メモリ・アクセス(DMA)読み出しが、メモリ・アクセス待ち時間をマスク(mask)できるようにある形式のプリフェッチ処理を使用することが望ましい。この結果、入出力バスをより効率的に使用することができる。しかしながら、DMA装置に供給されるプリフェッチされたデータが、プロセッサ、他の入出力装置又はバスブリッジによる最新のメモリ書込みを反映できるように、プリフェッチ処理はコヒーレント(coherent)であることが重要である。コヒーレントであるプリフェッチ・バッファは、中央処理装置(以下、CPUと称す)などの他の装置と共にシステムのコヒーレントなプロトコルに関係するキャッシュと見なすことができる。プリフェッチ・キャッシュがコヒーレントである限り、プリフェッチ・キャッシュへのDMAトラフィックの完了は、順序付け及びコヒーレントの点で、メモリに対する完了と同等である。
【0003】
【発明が解決しようとする課題】
CPUによる入出力装置への書込みは、プログラム式入出力(programmed I/O;以下、PIOと略す)としても知られ、接続された形又は書込み要求先入れ先出し記憶領域(posted write first in first out buffer;以下、書込み要求記憶領域FIFOバッファと略す)によって直接行われることがある。入出力バスを通じ入出力装置への直接接続を経由してPIOが行われる場合、プリフェッチ・キャッシュのコヒーレントは、キャッシュ・ヒット(cache hit)からのDMA読み出しデータがPIO書込みに対して適切に順序付けされていれば十分である。一方、書込み要求記憶領域FIFOバッファを使用する場合、PIO書込みは、入出力バスに書き込まれる前に転記型書込みFIFOで遅延される。この遅延により、読み書きの順序違反が生じることがある。
【0004】
この順序違反に対する脆弱性(vulnetability)は、下記の例によって説明される。CPUが2つの書込みA及びBをその書込み順序で実行すると想定する。書込みAは、入出力バスに接続された装置へのPIO書込みである。書込みBは、メモリ内のロケーションを修正する。書込みAは、書込み要求記憶領域FIFOバッファに転記されるため、入出力バスへの書込みが実行されるまでに少し遅延がある。しかし、書込みBは、すぐに有効になり、したがって、そのメモリ・ロケーションを読み出すどの入出力装置にも認識できる。したがって、書込みAがまだ書込み要求記憶領域FIFOバッファにある間に書込みAを書き込まれた入出力装置が書込みBを書き込まれたメモリ・ロケーションを読み出す必要がある場合、入出力装置には、書込みBの影響(すなわち、メモリ値の変化)が書込みAの影響よりも前に認識される。これにより、順序違反が起こる。
【0005】
本発明は上記事情に鑑みてなされたものであり、コンシュマ・エージェントによって開始されるDMA読み出しを、プロデューサ・エージェントによって開始されるPIOに対して順序付けするプロデューサ−コンシュマ順序付けシステムを提供することを目的とする。なお、この順序付けは、書込みが、異なるバス上の混合された(mixture)異なるターゲットへのものである場合にも保証される。
【0006】
【課題を解決するための手段】
本発明は、一般に、バスブリッジ内の書込み要求記憶領域 (write posting storage)の存在によって順序違反を引き起こす可能性のある場合に、2つのコンピュータ・バス間のインタフェースを提供し、一方のバスから支配された書込み動作を、他方のバスから支配された読み出し動作に対して適切に順序付けできるようにするバスブリッジを提供する。このバスブリッジは、バスブリッジが受け取る書込み要求記憶領域に待機させる書込み動作の回数をカウントする第1の機構を有する。さらに、バスブリッジは、第2のバス上で完了した書込み動作の回数をカウントする第2の機構を有する。また、バスブリッジの一部分として、コヒーレントなキャッシュの各キャッシュラインに保持されたデータがいつ送信されてきたか(age of data)(以下、データの送信時と称す)を測定する機構を有する。最後に、バスブリッジは、キャッシュ・データをフェッチする前に第1のバス上のバスブリッジが受け入れたすべての書込みが第2のバス上で完了するまで、キャッシュからの読み出し動作の完了を遅延させる機構を有する。これは、バスブリッジが受け取った書込み動作の回数と第2のバス上で完了した書込み動作の回数との間の差と、読み出すキャッシュラインに保持されたデータの送信時を比較することによって決定される。
【0007】
また、本発明は、バスブリッジによって結合された2つのバス間の読み出し動作に対して書込み動作を順序付ける方法を提供する。この方法は、次に段階により広義に要約する。バスブリッジに、第1のバスから受け取った書込み動作を待機させる書込み要求記憶領域を提供する。書込み要求記憶領域で受け取った書込み動作の回数と、第2のバス上で完了した書込み動作の回数との両方のカウントを維持する。コヒーレントなキャッシュの各キャッシュラインに保持されたデータの送信時を、キャッシュラインのデータをフェッチしてからバスブリッジが受け取った書込み動作の回数の単位で測定する。最後に、読み出されるキャッシュ・データをフェッチする前に第1のバス上のバスブリッジが受け取り、第2のバス上で完了していない書込みがあるとき、コヒーレントなキャッシュからの読み出し動作が完了から遅延される。
【0008】
本発明の利点は、キャッシュからの読み出し動作が、適切なプロデューサ−コンシュマ順序を維持するために必要な最低限の時間が遅延されることである。
【0009】
本発明の他の利点は、2バス構成及び方法に対して最低限の修正を加えるか修正を加えないかにかかわらず1対多のバスブリッジ構成に容易に拡張できること。
【0010】
【発明の実施の形態】
本発明の原理を、入出力バスブリッジへの簡単なプロセッサ・バスを有するコンピュータ・システムに関して説明する。この例は、バス及びトランザクション・タイプを指定するために明確な用語を使用できるために選択された。図1は、プロセッサ/メモリ・バスと入出力バスとの間の通信を容易にするバスブリッジの構成を示すブロック図である。コンピュータ・システム21は、CPUバス・インタフェース25及び入出力バス・インタフェース27を用いてバスブリッジ26によって接続されたCPU/メモリ・バス22(第1のバス)及び入出力バス24(第2のバス)を有する。少なくとも1つのCPU28が、CPU/メモリ・バス22を介してメモリ32と通信し、入出力バス24は入出力装置34と入出力装置34との通信に有用である。性能を高めるため、バスブリッジ26は、メモリ32にアクセスする際に入出力装置34〜34が被る待ち時間をマスクするプリフェッチ・キャッシュ36を有する。バスブリッジ26は、さらに、キャッシュ36をサポートし、プリフェッチしたデータのコヒーレンを保証する(すなわち、入出力装置34〜34に供給されるデータを、メモリ32への最新の書込みに反映させる)DMA制御ロジック38を有する。第1の手段である書込み要求記憶領域FIFOバッファ42は、入出力バス24に接続された入出力装置34へのCPU28からの書込み要求を受け取って待機する。
【0011】
ここで、コンピュータ・システム21の動作の説明に使用される用語を定義する。バスブリッジ26を介してメモリの読み出し又は書込みをする入出力装置34によって開始されるサイクルをすべてDMAと称す。また、バスブリッジ26を介して入出力装置34の読み出し又は書込みをするCPU28によって開始されるサイクルをすべてPIOと称す。図1のすべての矢印の方向は、バスブリッジ26を介したDMAトラフィック及びPIO書込みトラフィックの流れを示す。PIO読み出しトラフィックは、この種のトラフィックが本発明に関係ないため、図1には示していない。
【0012】
コンピュータ・システム21は、前記タイプのプロデューサ−コンシュマ順序違反の影響を受けやすい。具体的には、CPU28が、第1の入出力装置34へのPIO書込みと、第2のメモリ32への書込みとの2つの書込みを行う場合、書込まれる入出力装置34は、書込み要求記憶領域FIFOバッファ42による遅延のために、第1の書込みが有効になる前に第2の書込みによって変更されたメモリ32内のロケーションのDMA読み出しを実行することがある。
【0013】
いくつかの従来技術の解決法は、入出力装置34〜34(すなわち、コンシュマ)が、CPU28(すなわちプロデューサ)によって行われる書込みを、生成された順序と同じ順序で認識するために有効である。第1の従来技術の解決法は、DMA読み出しが完了したときに書込み要求記憶領域FIFOバッファ42を空にすることである。DMA読み出しを最初に受け取ってから書込み要求記憶領域FIFOバッファ42が空になるまでの間にすべてのPIO書込みにフロー制御を行う状態機械(state machine)を実現することによって、このプロセスを達成することができる。書込み要求記憶領域FIFOバッファ42が空になれば、DMA読み出しを完了することができる。
【0014】
DMA読み出し動作は、最初のDMA読み出し要求と入出力バス24上のDMA読み出しの完了との2つの別々のトランザクションに分かれることが多い。PIO書込みトランザクションにより分割(split)DMA読み出しの適切な順序付けを保証するために、順序付けシステムは、DMA読み出しの完了を遅延させる機能を必要とし、入出力バス24上で書込み要求記憶領域FIFOバッファ42からの少なくとも1つのPIO書込みが許可される。
【0015】
しかし、DMA読み出しを完了する前に書込み要求記憶領域FIFOバッファ42を使用することにより、動作上の問題が2つ生じる。第1の問題は、DMA読み出しがコンピュータ・システム21で頻繁に行われる場合、PIO書込みのフロー制御も頻繁に行われる。その結果、部分的又は全体的に書込み要求記憶領域FIFOバッファ42を使用する利点がなくなる。第2の問題は、順序違反が生じない場合でも、書込み要求記憶領域FIFOバッファ42が空でないときに、読み出しサイクルの完了が遅延されるため、DMA読み出し性能が低下する。すなわち、読み出すメモリ・ロケーションがCPU28によって修正されなかったとき、DMA読み出しを要求する入出力装置へのメモリ32へのPIO書込みが行われた後でメモリ32への書込みが行われる。
【0016】
第2の従来技術の解決法は、プリフェッチ・キャッシュ36からのすべてのDMA読み出しデータを、強制的に書込み要求記憶領域FIFOバッファ42に送信することである。この方法では、DMA読み出しデータは、DMA読み出しに先立つPIO書込みの後で、書込み要求記憶領域FIFOバッファ42に待機させられる。適切なプロデューサ−コンシュマ順序付けは保証されるが、いくつかの欠点が明らかになる。第1の問題は、PIO書込みが行われてからDMA読み出しデータが修正されたかに関係なく、PIO書込みが未処理のときには常に、DMA読み出しの完了が遅延される。第2の問題は、多くの場合、DMA読み出しデータによって使用領域(space)を消費するため、書込み要求記憶領域FIFOバッファ42は、容量が大きくなければならない。これにより、バスブリッジ26のコストが増大する。第3の問題は、ある環境では、PIO書込みエントリを妨げることなく書込み要求記憶領域FIFOバッファ42からDMA読み出しデータをフラッシュできることが望ましい。そのような環境では、入出力バス24を効率よく利用するためにプリフェッチされたデータが書込み要求記憶領域FIFOバッファ42を介してバースト(burst)しているが、入出力装置34がバーストを切断する。したがって、書込み要求記憶領域FIFOバッファ42からの不連続なDMA読み出しデータを選択的にフラッシュするために、複雑な制御ロジックが必要になる。しかしながら、この制御ロジックは、バスブリッジ26のコスト及び複雑さを高める。
【0017】
書込み要求記憶領域FIFOバッファ42を介してDMA読み出しデータを送る前記方法の他の方法は、書込み要求記憶領域FIFOバッファ42を介してDMA読み出しデータの各バーストのヘッドを示す信号トークンを送ることである。DMA読み出しデータは、キャッシュ36を介してアクセスされるが、状態機械は、読み出し要求と関連したトークンが書込み要求記憶領域FIFOバッファ42を通過するまで、DMA読み出し要求を一次中止状態に保持することになる。この方法は、書込み要求記憶領域FIFOバッファ42内の使用領域の浪費ほどではないが、前の方法と同じ欠点がある。
【0018】
図2は、本発明の一実施形態に係るDMA読み出しの完了時間をより選択的に遅延させる図1のバスブリッジを示す詳細なブロック図である。詳細には、DMA読み出しの完了は、少なくとも1つの未処理のPIO書込みがあり、かつ最も古い未処理のPIO書込みが行われてから、読み出されるキャッシュラインがメモリ32からフェッチされた場合にのみ遅延される。DMA読み出しの完了は、適切なプロデューサ−コンシュマ順序付けが維持されるために必要な最小時間だけ遅延されることが有利である。
【0019】
次に、図2を参照すると、コンピュータ・システム49は、図1に示したようなコンピュータ・システム21を含む構成要素を含むが、さらに、1)第2の手段であるプロデューサPIO書込みカウンタ(producer PIO write counter;以下、PPCと略す)54、2)第3の手段であるコンシュマPIO書込みカウンタ(consumer PIO write counter;以下、CPCと略す)56、3)第4の手段であるキャッシュライン・エージャ(cache line agers;以下、CLAと略す)58、及び4)第5の手段である順序付けロジック62の4つの追加の構成要素を有する修正されたプロデューサ−コンシュマ順序付けバスブリッジ50を備える。
【0020】
PPC54は、係数M(modulus M)を使って、入出力バス24に転送するためにバスブリッジ50によって受け入れられるPIO書込みの回数をカウントするカウンタである。CPC56は、同じ係数Mを使って、入出力バス24上で完了するPIO書込みの回数をカウントするカウンタである。入出力バス・インタフェース27は、入出力バス24上でPIO書込みが完了するときに線57上にインクリメント信号を生成する。CLAカウンタ58は、PPC54及びCPC56と同じビット数を使用するカウンタであるが、係数カウンタではない。代わりに、CLAカウンタ58は、ゼロにリセットされるまでそのまま最大値までカウントするように設計される。CLAをキャッシュ36に接続する破線の矢印で示したプリフェッチ・キャッシュ36の各キャッシュラインごとに1つのCLAカウンタ58がある。CLAカウンタ58は、PPC54と協力して(すなわち、バスブリッジ50によってPIO書込みを受け入れるたびに)増分するように同期される。したがって、CLAカウンタ58とPPC54とは、バスブリッジ50がPIO書込みを受け入れるときにインクリメント信号をアサートするCPUバス・インタフェース25により駆動される共通のインクリメント信号線59を共用する。CLAカウンタ58は、CPUバス・インタフェース25を介してCPU/メモリ・バス22によって駆動される第6の手段であるリセット信号線61とリセット選択信号線63とを通して、関連したキャッシュラインのCPU/メモリ・バス22を介してデータがフェッチされるたびにゼロにリセットされる。リセット選択信号線63は、リセット信号線61を介してゼロにリセットするために関連したキャッシュラインがフェッチ又はリフェッチ(re-fetch)されたCLAカウンタ58だけを選択するために使用される。
【0021】
要するに、CLAカウンタ58は、関連したキャッシュラインに保持されたデータの送信時を、経過したPIO書込み受入れの単位で測定する。順序付けロジック62は、所与のDMA読み出しがすぐに処理できるか又は入出力バス24上のさらに他のPIO書込みの完了を可能にするためにDMA読み出しを遅延させなければならないかを決定するために使用されるハードウェア・ロジックを有する。順序付けロジックは、この決定を行う際に個々の基準でPPC54、CPC56及びCLAカウンタ58の値を使用する。したがって、順序付けロジック62及びDMA制御ロジック38は、信号線65上で互いに双方向通信である。CLAカウンタ58及びPPC54は両方とも、バスブリッジ50のプロデューサ側(すなわち、CPU/メモリ・バス22上のPIOの受入れ)と関連付けられ、CPC56は、バスブリッジ50のコンシュマ側(すなわち、入出力バス24上のPIOの完了)と関連付けられる。一般に、プロデューサ(たとえば、CPU28及びCPU/メモリ・バス22)が、コンシュマ(たとえば、入出力装置34及び入出力バス24)と同じ場所に必ずしも配置される必要はない。さらに、プロデューサ及びコンシュマ・バスは、互いに対して同期していなくてもよい。
【0022】
適切な任意の時間に、未処理のPIO書込み(すなわち、入出力バス24上で完了されるのではなくバスブリッジ50によって受け取られた書込み)の回数は、((PPC−CPC)モジューロM(moduloM))によって示され、ここでPPC及びCPCは、それぞれのカウンタの値である。係数Mは、書込み要求記憶領域FIFOバッファ42内の利用可能な領域によって制限される未処理のPIO書込みの最も大きな可能性の数よりも少なくとも1だけ大きくなるように選択される。一般に、係数Mは、実施しやすくするために2の累乗まで端数が丸められる。
【0023】
CPU/メモリ・バス22、入出力バス24及びプリフェッチ・キャッシュ36がすべて1つのクロックを共用する場合、同期の必要はない。この場合、順序付けロジック62は、DMA読み出しの完了を遅延させるか又はDMA読み出しをすぐに完了させるかの決定に、PPC54、CPC56及びCLAカウンタ58の値を直接使用することができる。
【0024】
代替として、入出力バス24がプリフェッチ・キャッシュ36と非同期に動作する場合、CPC56の最新の値を順序付けロジック62に提供するための何らかの機構がなければならない。入出力バス24が遅延されたDMA読み出しを使用し、バスブリッジ50からの再試行応答を受け取る入出力バス24が、データが戻されるまでDMA読み出しを定期的に再試行し、各DMA読み出し要求は、DMA読み出し要求時にCPC56の値を有する領域(field)を伴わなければならない。CPC56のこの値は、DMA読み出しをいつ完了するかを決定する際に順序付けロジック62によって使用される。遅延された読み出しシステムでは、DMA読み出し要求は、一般に、クロック・ドメイン・クロスFIFO(clockdomain crossing FIFO)などの同期リソースを介してキャッシュに送出される。
【0025】
一方、入出力バス24は、分割DMA読み出しを使用することもできる。DMA読み出しは、DMA読み出し要求がDMA読み出し完了からの別々の入出力バス24トランザクションであり、完了トランザクションが、読み出し要求のターゲットのエージェントによって入出力バス24上で支配されるときに分割される。たとえば、DMA読み出し要求が入出力バス24により支配され、同時にDMA読み出しの完了が、バスブリッジ50によって支配されることになる。分割DMA読み出しシステムでは、入出力バス24は、CPC56の値が変化したときには、プリフェッチ・キャッシュ36への読み出し完了を含む順序付けロジック62に通知しなければならない。この通知は、クロック・ドメイン・クロスFIFOなどの同期リソースにより行われなければならない。
【0026】
図3は、本発明によりプロデューサ−コンシュマ順序付けを保証する図2のハードウェア構成要素におけるバスブリッジ50の動作を示すブロック図である。
【0027】
まず図2及び図3を参照すると、DMA読み出し動作は、入出力装置34が入出力バス24にDMA読み出し要求を出すことにより開始される。DMA読み出し要求は、入出力バス・インタフェース27を介してバスブリッジ50によって受け取られる。DMA制御ロジック38は、DMA読み出し要求のターゲットであるキャッシュラインと関連付けられたCLA選択線65aを介してCLAカウンタ58を選択し、その値を一般には順序付けロジック62、詳細にはコンパレータ68に提供する。CLAカウンタ58の値は、関連するキャッシュラインがフェッチされてからバスブリッジ50が受け入れたPIO書込みの回数を表す。CPC54及びPPC56カウンタの値は、係数M算術(arithmetic)を使用するPPCカウンタ54とCPC56との差を計算する減算器72への入力として供給される。((PPC―CPC)モジューロM)によって示される数は、現在未処理のPIO書込みの回数を表す。すなわち、バスブリッジ50が受け入れたが入出力バス24上で完了していないPIOの回数を表す。減算器72の出力は比較器68に供給され、そこで、CLAカウンタ58の値が、現在未処理のPIO書込みの回数よりも少ないかが判断される。(CLA<(PPC−CPC)モジューロM)の場合は、キャッシュ・データをフェッチしたときにバスブリッジ50によって既に受け取られた少なくとも1つのPIO書込みが、入出力バス24上で未完了である。これは、潜在的な順序違反である。
【0028】
順序違反が起きないことを保証するために、比較器68の出力に基づいた順序付けロジック62が、少なくとも1つのPIO書込みが入出力バス24上で完了するまで、DMA制御ロジック38への線65bがDMA読み出しの完了を遅延させることができるようにDMA読み出しに関する信号を送る。遅延されたDMA読み出しを使用している場合は、入出力バス24を解放(free up)してPIO書込みをさらに完了させるために再試行しなければならない。分割されたDMA読み出しを使用している場合は、少なくとも1つのPIO書込みが完了するまで、リード・リターンを遅延させなければならない。少なくとも1つのPIO書込みが入出力バス24上で完了した後、順序付けロジック62は、増分されたCPC56の値による演算を繰り返す。
【0029】
順序付けロジック62が、比較器68によって、キャッシュラインが取り出されてからバスブリッジ50によって受け取られたPIO書込みの回数(すなわち、CLAカウンタ58の値)が、現在未処理のPIO書込みの回数以上であることを決定したとき、DMA読み出しは、DMA読み出し許可線65b上の許可信号の送信により順序付けロジック62によって完了される。この場合、キャッシュラインに含まれるデータは、キャッシュラインがフェッチされるよりも前に行うことができた未完了のどのPIO書込みよりも前のものである。
【0030】
PIO書込み動作は、CPU28がCPU/メモリ・バス22にPIO書込み要求を出すことによって開始される。PIO書込み要求は、CPUバス・インタフェース25を介してバスブリッジ50によって受け取られる。バスブリッジ50が、PIO書込み要求を受け入れると、PPC54は、係数Mを使用して増分され、キャッシュ36内のすべてのキャッシュラインのCLAカウンタ58が、インクリメント信号線59により互いに協力して増分される。各CLAカウンタ58のロジックは、カウンタが係数Mを超えたかうかを判断するように設計される。係数Mを超えた場合、CLAカウンタ58は、係数Mと等しい値に制限される。CLAカウンタ58が値Mまでカウントしたとき、キャッシュラインのデータはとても古くなっているため、データがフェッチされたときに作動中であったPIO書込みはすべて入出力バス24上で完了しなければならない。値Mは、未処理のPIO書込みの最大回数よりも少なくとも1つだけ大きくなるように選択されるため、書込み要求記憶領域FIFOバッファ42の記憶域は、データをフェッチしたときに処理中であった任意のPIO書込みが引き続き処理中であるためには十分でない。書込み要求記憶領域FIFOバッファ42からのPIO書込みが、入出力バス24上で完了するとき、CPC56は、係数Mを使用してインクリメント信号線57を介して増分される。
【0031】
本発明により、各DMA読み出しは、読み出すキャッシュラインがフェッチされたときに処理中であったすべてのPIO書込みが入出力バス24上で完了した後で完了することができる。DMA読み出しの進行を抑制することができる1つの要素は、キャッシュ36の中央処理装置/メモリ・バス22側からのスヌープ(詮索)又はキャッシュ36メモリのセクションの最低使用頻度(LRU)キャッシュ36のパージである。たとえば、LRUの選択されたパージは、データが変更されていない場合でもキャッシュラインを繰返しリフェッチすることを必要とする。各リフェッチにより、キャッシュラインと関連付けられたCLAカウンタ58がゼロにリセットされる。同様に、中央処理装置28がメモリ32への書込みとPIO書込みとを交互に行うことによって、進行を阻止することができる。各メモリ32への書込みは、キャッシュラインをスヌープし、ゼロにリセットされるキャッシュラインと関連したCLAカウンタ58でキャッシュラインはリフェッチされる。したがって、DMA読み出しが完了する前に、すぐ前のPIO書込みが、入出力バス24上で完了しなければならない。
【0032】
本発明は、キャッシュ・メモリ・システムに一般に使用されるフォワード・プログレス・プロトコル(forward progress protocols)と互換性を持つ。まず、一般に、各DMA読み出しバーストの第1のキャッシュラインロック状態を適用することによって最低使用頻度を基準に選択されたパージが行われるため、リード・リターン値を提供するために各DMA読み出しバーストが使用されるまで、各DMA読み出しバーストはこのパージから考慮の対象とされない。
【0033】
第2に、スヌープ(詮索)の無効を検討する。スヌープのためにキャッシュラインをパージする代わりに、キャッシュライン、非コヒーレントスナップショット状態に移行させる。DMA読み出しのためにフェッチされたキャッシュラインが、前に説明したようなロック状態にあるときは、スヌープの無効化により、キャッシュラインがパージされることはない。その代わりに、キャッシュラインは、キャッシュ36のCPU/メモリ・バス22側からのスヌープに関与しなくなり、DMAリード・リターン用のデータを供給するために使用されない限りパージされない。しかしながら、データは、DMAリード・リターンが完了するとすぐにパージされる。
【0034】
非コヒーレント・スナップショット状態にあるキャッシュラインからのデータキャッシュ36のコヒーレント・プロトコルに含まれないため、そのデータは一般的な用途には適さない。しかし、読み出し要求のときにキャッシュ36がコヒーレントであったため、非コヒーレント・スナップショットの状態のデータを使用して、最初にデータフェッチされるようにしたDMA読み出しを完了することできる。
【0035】
本明細書において、本発明を、入出力バス24のブリッジへの単一のCPU/メモリ・バス22に適用されるように説明したが、本発明を1対多(one-to-many)のバスブリッジ環境にも適用できる。すなわち、バスブリッジ50を使用して、単一のCPU/メモリ・バス22にいくつかの入出力バス24を接続することができる。
【0036】
1対多のバスブリッジは、様々な構成で実現することができる。まず、各入出力バス24が、それ自体の独立したキャッシュ36を有する場合は、それぞれの入出力バス24ごとに簡単に本発明を複製(duplicate)することができる。すなわち、各入出力バス24は、前に説明したように個別に動作する1組のPPC54、CPC56及びCLAカウンタ58とそれに割り当てられた順序付けロジック62とを備える。
【0037】
代替として、すべての入出力バス24に1つのキャッシュ36を使用する場合は、1つのキャッシュラインにつき1つのCLAカウンタ58を使用するか、1つのキャッシュラインにつき複数のCLAカウンタ58を使用するか、2つの手法を用いることができる。
【0038】
最も簡単な構成は、各入出力バス24ごとに各キャッシュラインに1つのCLAカウンタ58を割り当てることである。各入出力バス24は、1組のPPC54及びCPC56カウンタと順序付けロジック62とを有する。キャッシュラインデータがフェッチされるとき、そのキャッシュラインと関連したすべてのCLAカウンタ58は、ゼロにリセットされる。PIO書込みがバスブリッジ50によって受け入れられるときは、その特定の入出力バス24のPPC54は、各キャッシュラインの宛先入出力バスに対応するCLAカウンタ58と共に増分する。DMA読み出しが完了するかを決定するとき、その検査は、ヒットしたキャッシュラインと関連した入出力バス24の固有のCLAカウンタ58と、特定の入出力バス24に関連したPPC54及びCPC56カウンタを使って適用される。
【0039】
最後に、1つのキャッシュ36が複数の入出力バス24に共用されている場合、各キャッシュラインは、1つの入出力バス24につき1つのCLAカウンタ58を使用せずに、1つのCLAカウンタ58を使用することができる。この構成では、キャッシュラインデータがフェッチされるとき、関連したCLAカウンタ58がゼロにリセットされ、キャッシュラインが、特定の入出力バス24に結合(bound)される。したがって、キャッシュラインはすべて、DMA読み出しのためのデータの最初のフェッチにより、キャッシュラインが、読み出し動作を開始した入出力バス24に結合されるように、いくつかの入出力バス24に結合される。CLAカウンタ58は、キャッシュラインが結合される入出力バス24を対象とするPIO書込みのためにのみ増分される。したがって、現在のPIO書込みが目的とする入出力バス24に結合されたCLAカウンタ58だけが増分されるように、インクリメント59線をフィルタリングする付加的なロジックが含まれる。ロック状態又は非コヒーレント・スナップショット状態でキャッシュラインをヒットする他の入出力バス24からのDMA読み出し要求は、キャッシュラインがその状態にある限り一時中止状態に留まる。キャッシュラインが、ロック状態か又は非コヒーレント・スナップショット状態でなくなると、DMA読み出しを開始した入出力バス24に再結合される。しかしながら、キャッシュラインが非コヒーレント・スナップショット状態でなくなると、すぐにパージされ、新しいデータが、メモリ32からフェッチされる。ロック状態又は非コヒーレント・スナップショット状態でキャッシュラインをヒットする他の入出力バス24からのDMA読み出し要求によって、キャッシュラインが再結合され、入出力バスがDMA読み出し要求を出す。
【0040】
結合するプロセスは、CLAカウンタ58をゼロにリセットし、後で説明するプロセスを使用してDMA読み出し完了を表示する段階を有する。結合するときに処理中のPIO書込みは、キャッシュラインデータの送信時よりも長く未処理になるように控えめに想定される。前記のように、ロックされた非コヒーレント・スナップショット状態の線は、進行を保証するために、解放されるまで再結合することができない。
【0041】
当業者には、本発明の原理から実質上逸脱することなしに好ましい実施形態に多くの変形及び変更を行うことができることが明らかである。たとえば、本発明は、プロセッサ/メモリ・バスと少なくとも1つの入出力バスとの間の通信を容易にするためにバスブリッジにおいて実施するように説明した。しかし、本発明は、ブリッジの一方の側から支配された書込み用の書込み要求記憶領域と、ブリッジの反対の側から支配された読み出しサイクルに応えるキャッシュやその他のコヒーレントなプリフェッチされたリソースとを、ある任意の構成に適用することができる。そのような変形と修正はすべて、併記の特許請求の範囲で説明するような本発明の範囲内に含まれるものである。
【0042】
【発明の効果】
以上の説明から明らかなように、本発明によれば、キャッシュからの読み出し動作が、適切なプロデューサ−コンシュマ順序を維持するために必要な最低限の時間を遅延することができ、2バス構成及び方法に対して最低限の修正を加えるか修正を加えないかにかかわらず1対多のバスブリッジ構成に容易に拡張することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るプロセッサ/メモリ・バスと入出力バスとの間の通信を容易にするバスブリッジの構成を示すブロック図である。
【図2】本発明の一実施形態に係るDMA読み出しの完了時間をより選択的に遅延させる図1のバスブリッジを示す詳細なブロック図である
【図3】本発明によりプロデューサ−コンシュマ順序付けを保証する図2のハードウェア構成要素におけるバスブリッジ50の動作を示すブロック図である。
【符号の説明】
22 CPU/メモリ・バス
24 入出力バス
36 キャッシュ
42 書込み/読み出しFIFO記憶領域
50 バスブリッジ
54 PPC
56 CPC
58 CLAカウンタ
62 順序付けロジック
61 リセット信号線
63 リセット選択信号線

Claims (13)

  1. バスブリッジ内のメモリ・コヒーレンシを有するキャッシュを介して、該第2のバスから支配され該第2のバス上で完了するように予定された読み出し動作に対して、第1のバスから支配され第2のバスに予定された書込み動作を順序付けするための書込み動作順序付けバスブリッジであって、
    前記第1のバスからの入出力装置への前記書込み動作を待機させるための第1の手段と、
    待機させるための前記第1の手段で受け取った前記書込み動作の回数をカウントする第2の手段と、
    該第2のバス上で完了した前記書込み動作の回数をカウントする第3の手段と、
    前記キャッシュ内のキャッシュラインに保持されたデータの、第1のバスからフェッチしてからの時間を、前記第1の手段において受け取った前記書込み動作の回数の単位でカウント回数として測定する第4の手段と、
    前記キャッシュから読み出されるべき前記データの前記カウント回数が、前記第1の手段に受け取られた前記書込み動作の回数と、前記第2のバス上で完了される前記書込み動作の回数との差よりも小さいときに、前記読み出し動作の完了を遅延させる第5の手段と
    を含んでなる、書込み動作順序付けバスブリッジ。
  2. 前記キャッシュ内の前記キャッシュラインに保持された前記カウント回数を、前記データが第1のバスからフェッチされるたびにゼロに設定する第6の手段をさらに有する、請求項1に記載の書込み動作順序付けバスブリッジ。
  3. カウントする前記第2の手段とカウントする前記第3の手段とが、カウントを生成する際に、係数Mをカウンタの最大値として使用するものである請求項1に記載の書込み動作順序付けバスブリッジ。
  4. 前記係数Mが、待機させるための前記第1の手段に待機させることができる書込み動作の最大回数よりも大きい、請求項3に記載の書込み動作順序付けバスブリッジ。
  5. バスブリッジ内のメモリ・コヒーレンシを有するキャッシュを介して、書込み動作が第1のバスから支配され第2のバスに予定され、読み出し動作が該第2のバスから支配され該第2のバス上で完了するように予定されている、前記バスブリッジによって結合された前記第1及び第2のバスの間の前記読み出し動作に対して前記書込み動作を順序付けするための書込み動作順序付け方法であって、
    (a)前記第1のバスからの入出力装置への前記書込み動作を待機させるための書込み要求蓄積バッファを提供するステップと、
    (b)前記書込み要求蓄積バッファで受け取った書込み動作の回数をカウントするステップと、
    (c)前記第2のバス上で完了した書込み動作の回数をカウントするステップと、
    (d)前記キャッシュ内のキャッシュラインに保持された前記データの、第1のバスからフェッチしてからの時間を、前記書込み要求蓄積バッファで受け取った書込み動作の回数単位でカウント回数として測定するステップと、
    (e)前記キャッシュから読み出されるべき前記データの前記カウント回数が、前記書込み要求蓄積バッファで受け取った前記書込み動作の回数と前記第2のバス上で完了した前記書込み動作の回数との間の差よりも小さいときに、前記読み出し動作の完了を遅延させるステップと
    を含んでなる書込み動作順序付け方法。
  6. 前記キャッシュ内の前記キャッシュラインに保持された前記カウント回数を、前記データを第1のバスからフェッチするたびにゼロに設定するステップをさらに有する、請求項5に記載の書込み動作順序付け方法。
  7. 係数Mを、ステップ(b)及び(c)でカウントするためのカウンタの最大値として使用されるものである、請求項5に記載の書込み動作順序付け方法。
  8. 前記係数Mが、前記書込み要求蓄積バッファに待機させることができる書込み動作の最大回数よりも大きい、請求項7に記載の書込み動作順序付け方法。
  9. バスブリッジ内のメモリ・コヒーレンシを有するキャッシュを介して、第1のバスから支配され第2のバスに予定された書込み動作を、該第2のバスから支配され該第2のバス上で完了するように予定された読み出し動作に対して順序付けするためのバスブリッジであって、
    前記第1のバスからの入出力装置への前記書込み動作を待機させるための書込み記憶領域と、
    該書込み記憶領域で受け取った書込み動作の回数をカウントするためのプロデューサ書込みカウンタと、
    前記第2のバス上で完了した書込み動作の回数をカウントするためのコンシューマ書込みカウンタと、
    前記キャッシュ内のキャッシュラインに保持されたデータの、第1のバスからフェッチしてからの時間を、前記書込み記憶領域で受け取った書込み動作の回数の単位でカウント回数として測定するためのキャッシュラインエージャカウンタと、
    前記キャッシュから読出すべきデータについての前記キャッシュラインエージャカウンタのカウント回数が、前記書込み記憶領域で受け取った書込み動作の前記回数と前記第2のバス上で完了した書込み動作の前記回数との差よりも小さいときに、前記読出し動作の完了を遅延させるための順序付けロジックと
    を含んでなるバスブリッジ。
  10. 前記第1のバスと、前記データがフェッチされるたびに前記キャッシュラインエージャカウンタをゼロにリセットするための前記キャッシュラインエージャカウンタとに通信するリセット信号線をさらに含む請求項9に記載のバスブリッジ。
  11. 前記プロデューサ書込みカウンタと前記コンシューマ書込みカウンタはカウントを生成する際に、係数Mをカウンタの最大値として使用する請求項9に記載のバスブリッジ。
  12. 前記係数Mは、前記書込み記憶領域に待機させることができる書込み動作の最大回数よりも大きい請求項11に記載のバスブリッジ。
  13. 前記キャッシュ内の前記キャッシュラインに保持されたデータについての前記キャッシュラインエージャカウンタのカウント回数は、前記係数Mに等しい最大値に制限される請求項11に記載のバスブリッジ。
JP33152699A 1998-11-24 1999-11-22 書込み動作順序付けバスブリッジ Expired - Fee Related JP3696012B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/198,833 US6157977A (en) 1998-11-24 1998-11-24 Bus bridge and method for ordering read and write operations in a write posting system
US09/198833 1998-11-24

Publications (2)

Publication Number Publication Date
JP2000235543A JP2000235543A (ja) 2000-08-29
JP3696012B2 true JP3696012B2 (ja) 2005-09-14

Family

ID=22735053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33152699A Expired - Fee Related JP3696012B2 (ja) 1998-11-24 1999-11-22 書込み動作順序付けバスブリッジ

Country Status (2)

Country Link
US (1) US6157977A (ja)
JP (1) JP3696012B2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3071752B2 (ja) * 1998-03-24 2000-07-31 三菱電機株式会社 ブリッジ方法、バスブリッジ及びマルチプロセッサシステム
US6366968B1 (en) * 1998-06-26 2002-04-02 Intel Corporation Physical write packets processing when posted write error queue is full, with posted write error queue storing physical write requests when posted write packet fails
US6321233B1 (en) * 1998-12-15 2001-11-20 Micron Technology, Inc. Apparatus for controlling pipelined memory access requests
US6292807B1 (en) * 1998-12-15 2001-09-18 Micron Technology, Inc. Method for controlling pipelined memory access requests
US6553430B1 (en) * 1999-09-17 2003-04-22 Advanced Micro Devices, Inc. Computer system implementing flush operation
US6397295B1 (en) * 1999-01-04 2002-05-28 Emc Corporation Cache mechanism for shared resources in a multibus data processing system
US6473837B1 (en) * 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Snoop resynchronization mechanism to preserve read ordering
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
US6434636B1 (en) * 1999-10-31 2002-08-13 Hewlett-Packard Company Method and apparatus for performing high bandwidth low latency programmed I/O writes by passing tokens
US6636906B1 (en) * 2000-04-28 2003-10-21 Hewlett-Packard Development Company, L.P. Apparatus and method for ensuring forward progress in coherent I/O systems
US6983388B2 (en) * 2000-10-25 2006-01-03 Agere Systems Inc. Method and apparatus for reducing leakage power in a cache memory by using a timer control signal that removes power to associated cache lines
US7237090B1 (en) * 2000-12-29 2007-06-26 Mips Technologies, Inc. Configurable out-of-order data transfer in a coprocessor interface
US7287147B1 (en) 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7168066B1 (en) 2001-04-30 2007-01-23 Mips Technologies, Inc. Tracing out-of order load data
US6976115B2 (en) * 2002-03-28 2005-12-13 Intel Corporation Peer-to-peer bus segment bridging
US20040003164A1 (en) * 2002-06-27 2004-01-01 Patrick Boily PCI bridge and data transfer methods
US7000060B2 (en) * 2002-09-27 2006-02-14 Hewlett-Packard Development Company, L.P. Method and apparatus for ordering interconnect transactions in a computer system
US7171531B2 (en) * 2004-01-14 2007-01-30 Hewlett-Packard Development Company, L.P. Process job flow analysis
JP2006293929A (ja) * 2005-04-14 2006-10-26 Matsushita Electric Ind Co Ltd データ伝送装置
JP5079342B2 (ja) 2007-01-22 2012-11-21 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
US10078613B1 (en) * 2014-03-05 2018-09-18 Mellanox Technologies, Ltd. Computing in parallel processing environments
US11409673B2 (en) * 2019-02-14 2022-08-09 Intel Corporation Triggered operations for collective communication
CN114661442B (zh) * 2021-05-08 2024-07-26 支付宝(杭州)信息技术有限公司 处理方法及装置、处理器、电子设备及存储介质
US20230267081A1 (en) * 2022-02-23 2023-08-24 Arm Limited Peripheral component handling of memory read requests

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613075A (en) * 1993-11-12 1997-03-18 Intel Corporation Method and apparatus for providing deterministic read access to main memory in a computer system
JPH09237223A (ja) * 1996-03-02 1997-09-09 Toshiba Corp バスブリッジを用いたコンピュータシステム
US5881253A (en) * 1996-12-31 1999-03-09 Compaq Computer Corporation Computer system using posted memory write buffers in a bridge to implement system management mode
US5870567A (en) * 1996-12-31 1999-02-09 Compaq Computer Corporation Delayed transaction protocol for computer system bus

Also Published As

Publication number Publication date
US6157977A (en) 2000-12-05
JP2000235543A (ja) 2000-08-29

Similar Documents

Publication Publication Date Title
JP3696012B2 (ja) 書込み動作順序付けバスブリッジ
JP3660679B2 (ja) 高度パイプライン式バス・アーキテクチャ
US7941584B2 (en) Data processing apparatus and method for performing hazard detection
EP0817077B1 (en) A multiprocessing system configured to perform prefetching operations and method therefor
US5572703A (en) Method and apparatus for snoop stretching using signals that convey snoop results
US5958019A (en) Multiprocessing system configured to perform synchronization operations
US5862316A (en) Multiprocessing system having coherency-related error logging capabilities
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
US6085263A (en) Method and apparatus for employing commit-signals and prefetching to maintain inter-reference ordering in a high-performance I/O processor
US5524235A (en) System for arbitrating access to memory with dynamic priority assignment
US20030145136A1 (en) Method and apparatus for implementing a relaxed ordering model in a computer system
US7398361B2 (en) Combined buffer for snoop, store merging, load miss, and writeback operations
US6018792A (en) Apparatus for performing a low latency memory read with concurrent snoop
US5659709A (en) Write-back and snoop write-back buffer to prevent deadlock and to enhance performance in an in-order protocol multiprocessing bus
KR100371844B1 (ko) 데이타처리시스템
US5797026A (en) Method and apparatus for self-snooping a bus during a boundary transaction
JP3629511B2 (ja) 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US6502168B1 (en) Cache having virtual cache controller queues
US5991855A (en) Low latency memory read with concurrent pipe lined snoops
US6493802B1 (en) Method and apparatus for performing speculative memory fills into a microprocessor
US8166226B2 (en) Apparatus and related method for maintaining read caching data of south bridge with north bridge
US6889343B2 (en) Method and apparatus for verifying consistency between a first address repeater and a second address repeater
US7421545B1 (en) Method and apparatus for multiple sequence access to single entry queue
US7035981B1 (en) Asynchronous input/output cache having reduced latency

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040427

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040506

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040730

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050330

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050519

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: 20050621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050628

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060425

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

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100708

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120708

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120708

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130708

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees