JPH10504665A - バスブリッジにおけるトランザクション順序を維持し、遅延応答をサポートする方法及びそのための装置 - Google Patents

バスブリッジにおけるトランザクション順序を維持し、遅延応答をサポートする方法及びそのための装置

Info

Publication number
JPH10504665A
JPH10504665A JP7530364A JP53036495A JPH10504665A JP H10504665 A JPH10504665 A JP H10504665A JP 7530364 A JP7530364 A JP 7530364A JP 53036495 A JP53036495 A JP 53036495A JP H10504665 A JPH10504665 A JP H10504665A
Authority
JP
Japan
Prior art keywords
bus
request
response
queue
inbound
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
JP7530364A
Other languages
English (en)
Other versions
JP3275051B2 (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JPH10504665A publication Critical patent/JPH10504665A/ja
Application granted granted Critical
Publication of JP3275051B2 publication Critical patent/JP3275051B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 2本のバス間のバスブリッジ(400)が、2種類の要求キュー、すなわち外向き要求キュー(420)と内向き要求キュー(430)を有する。第1のバス(401)に出される第2のバス(402)をターゲットとする要求は外向き要求キュー(420)に入れられる。要求を遅延することができる場合、ブリッジ(400)内のデコード回路(415)が要求送出エージェントに遅延応答を出して、その要求は後で処理されるということを指示する。バス制御回路(425)は、外向き要求キュー(420)から要求を取り出し、第2のバス(402)上で実行する。バス制御回路(425)は、この実行に応答して宛先エージェントからの応答を受け取ると、その応答を直ちに、または内向き要求キュー(430)を通してから、要求送出エージェントに戻す。上記2つのキュー(420,430)には、2本のバス(401,402)間でデータを転送するためのデータバッファ(520,530)が設けられている。要求は、上記と反対の向き、すなわち第2のバス(402)上に出されて第1のバス(401)上で実行される場合でも、上記と同様に扱われる。

Description

【発明の詳細な説明】 バスブリッジにおけるトランザクション順序を維持 し、遅延応答をサポートする方法及びそのための装置 発明の背景 発明の分野 本発明は、コンピュータシステムにおけるデータ転送に関するものである。よ り詳しくは、本発明は、トランザクション順序を維持し、遅延応答をサポートし つつ複数のバス間で情報を転送するバスブリッジに関する。 背景情報 最近のコンピュータシステムは、一般に、システムバスを介して相互接続され たマイクロプロセッサ、記憶装置、表示装置等、多数のエージェントを含む。シ ステムバスは、これらのエージェント間でアドレス、データ及び制御信号を転送 するよう動作する。最近の一部のコンピュータシステムには、種々のエージェン トが1本以上のバスに接続された多重バス方式を採用したものもある。ふつうは 、各エージェントは1本のバスに接続されている。 多重バスシステムでは、しばしば、バスブリッジを用いてバスを接続すること によって、1本のバスに接続されたエージェントが他のバスに接続されたバスに アクセスできるようにしてある。ブリッジの機能には、通常、2本のバス間にお けるコマンドの転送が含まれる。バスブリッジによって転送されるコマンドはデ ータを伴うことが多い(たとえば読出しコマンドや書込みコマンド)。 複数のエージェントを有するコンピュータシステムで頻繁に持ち上がる一つの 問題は、トランザクション順序を保存することが必要なことである。トランザク ション順序に関するサポートとは、一つのエージェントがメモリの記憶場所Aに 書き込んで、続いてメモリの記憶場所Bに書き込むと、別のエージェントは、記 憶場所Bの新しいデータと記憶場所Aの旧(すなわち古い)データを読み出すこ とができないということを意味する。多くのソフトウェアアルゴリズムは、情報 の生産者−消費者関係を必要とし、そのためにこの関係のサポートに依存して正 しい機能性の確保が図られる。たとえば、多数のプロセッサからなるシステムに おいて、プロセッサP1を情報の生産者、P2を情報の消費者と仮定する。P1 は、記憶場所1に対して書込み動作W1を実行した後、記憶場所2に対して書込 み動作W2を実行する。記憶場所2には、記憶場所1のデータが有効であるとい うことを知らせるフラグ変数が書き込まれる。プロセッサP2は、フラグが有効 になるまで記憶場所2で連続的に読出し動作R2を行う。フラグが有効であるこ とが検知されると、P2は記憶場所1に対する読出し動作R1を行って、データ を読み出す。このアルゴリズムがマイクロプロセッサシステムで首尾よく実行さ れるためには、プロセッサP1によってW1及びW2が書き込まれる順序が、プ ロセッサP2にとってR1及びR2が更新される順序と同じでなければならない 。 多重バスシステムにおけるバスブリッジは、トランザクション順序の問題を解 決しなければならない。上記の例では、プロセッサP1及びP2を1本のバスに 接続する一方、記憶場所1と2を第2のバスに接続し、バスブリッジでこれら2 本のバス間のアクセスをサポートすることが可能である。その場合、バスブリッ ジは、トランザクション順序が必ず保たれるようにしなければならない。すなわ ち、エージェントによってW1及びW2が書き込まれる順序がバスブリッジによ って維持されなければならない。 トランザクション順序を維持する一つの方法を図1に示す。図示のバスブリッ ジ100は、2本のバス、すなわち第1のシステムバス102と第2のシステム バス104とをインタフェースとして接続する。システムバス102にはエージ ェント130が接続され、システムバス104にはエージェント140が接続さ れている。このシステムにおいては、バスブリッジ100は、システムバス10 4上のエージェントをターゲットとするシステムバス102上に出された要求が 書き込まれる第1のキューを有する。また、バスブリッジ100は、システムバ ス102上のエージェントをターゲットとするシステムバス104上に出された 要求が書き込まれる第2のキューも有する。ブリッジ100には、一時記憶装置 120が設けられる場合もある。 ブリッジ100は、バス102と104との間でコマンドを転送する。たとえ ば、エージェント130がエージェント140をターゲットとする要求を出すも のと仮定する。この場合、その要求はブリッジ100によって受け取られ、キュ ー110に入れられる。あるいは、エージェント140がエージェント130を ターゲットとする要求を出す場合は、その要求はキュー115に入れられる。 バス間で転送されるデータは一時記憶装置120に記憶される。たとえば、キ ュー110に入れられた読出し要求はシステムバス104上で実行される。ター ゲットエージェントが応答すると、読み出されたデータは一時記憶装置120に 入れられる。要求送出エージェントは、一時記憶バッファ120でその要求を満 たすデータを検索するよう通知される。 図示の従来技術のシステムでは、キュー110及び115は、どちらも待ち状 態の要求が入っており、それらの要求を適切なバスヘ転送する。エージェント1 30またはエージェント140によって書込み要求が出されると、ブリッジ10 0は、書込み要求を伴うキューがフラッシュされる(すなわち書込みトランザク ションがターゲットバス上で実行される)まで読出しトランザクションが反対側 のキューに全く入らないようにすることによって、トランザクション順序を強制 する。たとえば、キュー115に書込み動作が入っているならば、ブリッジ10 0はキュー115がフラッシュされるまで、何らかの読出し動作がキュー110 に入れられるのを阻止する。 この従来技術の方法は、トランザクション順序の問題を効果的に解消するが、 一方のキューがフラッシュされている間、他方のキューの使用は阻まれるので、 それほど効率的ではない。上に述べたように、一方のキューに書込み動作が入っ ている間、トランザクションは他方のキューには入らない。 従って、トランザクション順序の問題を効果的かつ効率的に解消するようなシ ステムが得られるならば、益するところは小さくないであろう。本発明はこのよ うな問題を解消するためになされたものである。 さらに、第1のバス上のエージェントが第2のバス上のエージェントをターゲ ットとする要求を出すと、その要求を出したエージェントは第2のバス上のエー ジェントからの応答が来るまで待つことになる。この待ち期間の間、要求を出し たエージェントは、他のトランザクションが第1のバス上に出されるのを妨げる 場合がある。しかしながら、他のトランザクションが第1のバス上に出すことが できないと、その待ち期間中他のエージェントは第1のバスを利用できないので 、システム性能が低くなる。従って、要求を出したエージェントが第1のバス上 にトランザクションが出されるのを妨げることなく応答を待つようサポートする ブリッジが得られるならば、これも有益であろう。本発明は、このような問題を 解消するためになされたものである。 発明の概要 本発明は、バスブリッジにおいてトランザクション順序を維持し、遅延応答を サポートする方法及びそのための装置にある。本発明のバスブリッジは、2本の 別個のバス間をインタフェース接続するための2つのインタフェースからなる。 バスブリッジ内には2つのキュー、すなわち外向き要求キュー及び内向き要求キ ューが入っている。第1のバス上に発生する第2のバス上の宛先をターゲットと する要求(「外向き要求」と称する)は、第1のバスに対すインタフェースによ って受け取られた後、デコーディング回路に入力される。デコーディング回路は 、その要求を遅延することができる場合、遅延応答を出す。この遅延応答は、第 1のバス上の要求送出エージェントに戻されることによって、その要求が後で処 理されるということを該要求送出エージェントに知らせる。この遅延応答に応答 して、該要求送出エージェントは、第1のバスの制御権を解除し、他のエージェ ントが第1のバスを使用できるようにする。 その後、デコーディング回路は外向き要求を外向き要求キューに入れる。外向 き要求が外向き要求キューの一番上に来ると、その要求は第2のバス上で実行さ れる。バスブリッジは、外向き要求の実行に応答して第2のバス上の宛先エージ ェントから応答を受け取り、この応答が第1のバス上に要求を出したエージェン トに遅延応答として戻される。 外向き要求キュー及び内向き要求キューのどちらのエントリも、ブリッジに内 蔵されたデータバッファを示すポインタが入っている。データバッファには、要 求の特定のコマンドに応じて第1のバスと第2のバスの間で転送しなければなら ないデータが書き込まれる。さらに、第1のバス上の装置をターゲットとする要 求(「内向き要求」と称する)が、第2のバス上に出される場合もある。これら の内向き要求は、内向き要求キューに入れられ、この内向きキューから取り出さ れたとき第1のバス上で実行される。 図面の簡単な説明 以下、本発明を添付図面に示す実施形態によって説明するが、これらの実施形 態は本発明に対して限定的な意味を有するものではなく、図中同じ参照符号は同 様の構成要素・部分を示す。 図1は、コンピュータシステムのバスブリッジ従来技術における実装例を示す ブロック図である。 図2は、本発明の一例のマルチプロセッサ・コンピュータシステムを示す概略 ブロック図である。 図3は、本発明の一実施形態における2つのバストランザクションのタイミン グチャートである。 図4は、本発明の一実施形態のバスブリッジを示すブロック図である。 図5は、本発明の一実施形態におけるキューとデータバッファとの間の結合例 を示す図である。 図6は、本発明の一実施形態の外向きキュー内のスロットの内容を示す図であ る。 図8a及び8bは、本発明の一実施形態においてバス上に出された要求の処理の流 れを説明するためのフローチャートである。 詳細な説明 以下の本発明の詳細な説明においては、本発明の完全な理解を図るために、多 くの具体的な詳細事項を記載する。しかしながら、当業者ならば、本発明がこれ らの具体的な詳細事項の記載がなくとも実施可能なことは理解できよう。その他 の場合においては、本発明の特徴が不明確になるのをさけるため、周知の方法、 手順、構成要素・部分、及び回路についての詳細な説明は省略した。 以下の詳細な説明のある部分は、アルゴリズム及びコンピュータメモリ内にお けるデータビットに対する操作の記号表現によって記載する。これらのアルゴリ ズム的説明及び表現は、データ処理技術の当業者がその業務の内容を当技術分野 の他の当業者に最も効果的に伝達するために使用する手段である。本願において 、また一般的に、アルゴリズムは所期の結果に至る一貫したステップのシーケン ス であると考えられる。ステップは、物理量の物理操作を必要とするステップであ る。必ずとは限らないが、通常これらの物理量は、記憶、転送、結合、比較、及 びその他の操作を行うことができる電気信号または磁気信号の形を取る。場合に よっては、主として共通の使用という理由から、これらの信号をビット、値、要 素(元)、記号、文字、項、数、等々と称すると好都合であることが実証されて いる。 しかしながら、これらの用語及びこれらと類似の用語は、適切な物理量と対応 しており、それらの物理量に付される便宜上のラベルでしかないということを銘 記すべきである。以下の説明から明らかであると別途明記しない限り、本発明の 全体を通して、「処理する」、「計算する」、「算術演算する」、「判断する」 あるいは「表示する」等などの用語を用いた説明は、コンピュータシステムのレ ジスタ及びメモリ内の物理(電子的)量として表されるデータを操作し、コンピ ュータシステムのメモリまたはレジスタあるいはこの種の他の情報記憶装置、転 送装置または表示装置内の物理量として同様に表される他のデータに変換するコ ンピュータシステムまたは同様の電子計算装置の動作及びプロセスを指すもので ある。 図2は、本発明の一例のマルチプロセッサ・コンピュータシステムの概略ブロ ック図である。このコンピュータシステムは、一般に、1つまたは2つ以上のプ ロセッサ202、203、204及び205間で情報を伝達するためのプロセッ サ−メモリバスまたは他の通信手段201を具備する。プロセッサ−メモリバス 201は、アドレスバス、データバス及び制御バスを含む。プロセッサ202乃 至205は、データ及び命令を一時オンチップ記憶するための一般にレベル1( L1)キャッシュメモリと呼ばれる小さく、非常に高速の内部キャッシュメモリ を具備することも可能である。さらに、たとえばプロセッサ205のようなプロ セッサには、そのプロセッサで使用するデータ及び命令を一時記憶するためのよ り大きく、低速のレベル2(L2)キャッシュメモリ206を接続することもで きる。一態様の場合、本発明はプロセッサ202乃至205としてIntel( 登録商標)アーキテクチャのマイクロプロセッサを用いる。しかしながら、本発 明では、任意の種類のマイクロプロセッサアーキテクチャ、あるいは数多くの ディジタル信号プロセッサの中の任意のものを使用することができる。 プロセッサ202、203、または204はプロセッサ205と類似した、あ るいはこれと同じプロセッサのようなパラレルプロセッサであってもよい。ある いは、プロセッサ202、203、あるいは204はディジタル信号プロセッサ のようなコプロセッサであってもよい。さらに、プロセッサ202乃至205は 、異なる種類のプロセッサを含んでもよい。 プロセッサ−メモリバス201は、メモリ及び入出力サブシステムへのシステ ムアクセス手段になっている。プロセッサ−メモリバス201には、プロセッサ 202乃至205用の情報及び命令を記憶するためのランダムアクセスメモリ( RAM)または他の動的記憶装置221(一般に主メモリと称する)へのアクセ スを制御するメモリコントローラ222が接続されている。磁気ディスク及びデ ィスクドライブのような情報及び命令を記憶するための大容量記憶装置225、 及びブラウン管(CRT)、液晶表示装置(LCD)等のようなコンピュータユ ーザに情報を表示するための表示装置223をプロセッサ−メモリバス201に 接続することもできる。 入出力(I/O)ブリッジ224をプロセッサ−メモリバス201及びシステ ムI/Oバス231に接続して、プロセッサ−メモリバス201またはI/Oバ ス231上の装置が互いに他方のバス上の装置との間でデータにアクセスし、あ るいはデータを転送するための通信経路またはゲートウェイ手段とすることも可 能である。必須の要件としては、ブリッジ224は、システムI/Oバス231 とプロセッサ−メモリバス201との間のインタフェースである。 さらに、プロセッサ−メモリバス201には、ブリッジ240を介してI/O バス242を接続することができる。システムI/Oバス231に接続された装 置232乃至236のような他の周辺装置にもI/Oバスを接続することができ る。 本発明の一実施形態においては、I/Oバス246がブリッジ245を介して システムI/Oバス231に接続されている。システムI/Oバス231に接続 された装置232乃至236のような他の周辺装置にも、I/Oバスを接続する ことができる。一態様においては、I/Oバス246はシステムI/Oバス23 1(たとえばPCI)とは異なる規格(たとえばEISA)で動作する。 I/Oバス231は、コンピュータシステム内の周辺装置間で情報を伝達する 。システムバス231に接続できる装置としては、ブラウン管、液晶表示装置等 の表示装置232、コンピュータシステム内の他の装置(たとえばプロセッサ2 02)に情報及びコマンド選択信号を伝達するためのアルファニューメリックキ ー及びその他のキーを含むアルファニューメリック入力装置233、及びカーソ ルの移動を制御するためのカーソル制御装置234がある。さらに、コンピュー タ画像のビジュアル表現を得るためのプロッタやプリンタのようなハードコピー 装置235や、情報及び命令を記憶するための磁気ディスク及びディスクドライ ブのような大容量記憶装置236もシステムバス231に接続することができる 。 一部の実装例においては、情報を表示するための表示装置を設ける必要がない 場合もある。本発明の一部の実装例では、さらに他のプロセッサや他の構成要素 ・部分を含むこともある。さらに、本発明の一部の実装例は、必ずしも上記構成 要素・部分の全部が必要なわけではなく、全部を含んでいることもない。たとえ ば、プロセッサ202乃至204、表示装置223、I/Oバス242または大 容量記憶装置225は、プロセッサ−メモリバスに接続しなくともよい。その上 、システムI/Oバス231に接続されているものとして図示してある周辺装置 の一部はプロセッサ−メモリバス201に接続することも可能である。 本発明においては、バストランザクションはコンピュータシステムのプロセッ サバス(たとえば図2のプロセッサ−メモリバス201)上でパイプライン方式 により実行される。すなわち、複数のバストランザクションが、各トランザクシ ョンが完全には終了しない状態のまま、同時に待ち状態を取り得る。従って、要 求を出したエージェントがバス上にアドレスをドライブすることによってバスト ランザクションを開始するとき、そのバストランザクションは現在待ち状態の多 くのバストランザクションの1つでしかないことがある。バストランザクション はパイプライン処理されるが、本発明におけるバストランザクションは、一つず つ完全に終了する必要はなく、本発明は、遅延応答を実行するようになっている 。従って、本発明では、要求に対する終了応答が要求の順番通りでないことが許 容される。このような順不同応答に関するバス規格の例としては、「コンピュー タ システムにおけるバストランザクションを実行する方法及びそのための装置(Me thod and Apparatus for Performing Bus Transactions in a Computer System )」という名称の米国特許出願第07/ 号(1993年6月30日出願)に記載され たものがある。 本発明は、本質的にバストランザクションを独立じた2つのトランザクション に分割することによって、遅延トランザクションに対応するものである。その第 1のトランザクションは、要求側エージェントによるデータ(または終了信号) の要求及び応答側エージェントによる応答を伴う。要求は、たとえばアドレスバ スを介してのアドレス及び最初のトークンの送信である。応答は、応答側エージ ェントが応答可能状態ならば、要求データ(または終了信号)の送信である。こ の場合、バストランザクションは終了する。しかしながら、応答側エージェント が要求(すなわちデータまたは終了信号)を供給することが可能な状態でなけれ ば、応答は、たとえば2番目のトークンの送信を含む。この場合、2番目のトラ ンザクションは、応答側エージェントによる要求側エージェントへの要求データ (または終了信号)を伴う2番目のトークンの送信よりなり、これによって要求 側エージェントがはじめに要求したデータを受け取ってトランザクションを終了 するようになっている。 応答側エージェントが、バストランザクションを終了することが可能な状態で なければ、応答側エージェントはその適切な応答時刻にバスを介して遅延応答を 送信する。要求側エージェントはその遅延応答を受け取る。応答側エージェント が遅延バストランザクションを終了できる状態になると、応答側エージェントは 、バスの所有権を得るためのアービトレーションを行う。そして、バスの所有権 を得ると、応答側エージェントはバスを介して2番目のトークンを伴う遅延応答 を送信する。要求側エージェントは、バスを監視し、2番目の遅延応答の一部と して受け取る。本発明においては、要求側エージェントは2番目のトークンをラ ッチする。その後、要求側エージェントは、応答側エージェントから送られた2 番目のトークンが最初のトークンと一致するかどうか確かめる。要求側エージェ ントが応答側エージェントからの2番目のトークンが最初のトークン(要求側エ ージェントが生成した)と一致しないことを検知すると、バス上のデータ(また は 終了信号)は無視され、要求側エージェントはバスを監視し続ける。要求側エー ジェントが応答側エージェントから送られた2番目のトークンが確かに最初のト ークンと一致することを検知した場合は、バス上のデータ(または終了信号)は はじめに要求側エージェントによって要求されたデータであり、要求側エージェ ントはそのデータをデータバス上にラッチする。 本発明の一実施形態においては、バスアクティビティは、階層的に動作、トラ ンザクション、及びフェーズに編成される。動作は、自然に整列された記憶場所 での読出しのようなソフトウェアにとってアトミックと思われるバスプロシージ ャである。動作を実行するには、通常1つのトランザクションが必要であるが、 要求と応答が異なるトランザクションである遅延応答の場合のように、複数のト ランザクションが必要なこともある。トランザクションは、データバス上におけ る応答起動データ転送を通じての要求バスアービトレーションからの単一要求に 関連するバスアクティビティの集合である。本発明においては、トランザクショ ンは、データバス上における応答で起動されたデータ転送を通じての要求バスア ービトレーションからの単一要求に関連するバスアクティビティの集合である。 トランザクションは、最大6つの異なるフェーズを含む。しかしながら、一部 のフェーズは、トランザクション及び応答のタイプに基づいて任意選択である。 フェーズは、特定の信号群を用いて特定タイプの情報を伝達する。それらの6つ のフェーズとは下記の通りである: アービトレーションフェーズ 要求フェーズ エラーフェーズ スヌープフェーズ 応答フェーズ データ転送フェーズ 一態様においては、データ転送フェーズは任意であり、トランザクションがデ ータを転送中に使用される。データ転送フェーズは、要求の開始時にデータが利 用可能な場合、要求で起動される(たとえば書込みトランザクションの場合)。 データフェーズは、トランザクション応答の生成時にデータが利用可能な場合、 応答で起動される(たとえば読出しトランザクション)。トランザクションは、 要求起動データ転送及び応答起動データ転送の両方を含むことが可能である。 異なるトランザクションからの異なるフェーズは互いにオーバーラップするこ とができ、これによってバスのパイプライン方式化とバス性能の向上が達成され る。図3は、2つのトランザクションにおいて要求/応答フェーズがオーバーラ ップしている例を示す。図3において、各トランザクションはアービトレーショ ンフェーズで開始され、このフェーズでは要求側エージェントがバスオーナにな る。2番目のフェーズは、要求フェーズであり、このフェーズではバスオーナが バス上に要求及びアドレス情報をドライブする。要求フェーズの後、新しいトラ ンザクションは先入れ先出し(FIFO)キュー、すなわち同順キューに入る。 要求側エージェントを含めて、すべてのバスエージェントは、同じ同順キューを 維持し、それらのキューに新しい要求を付加する。図3において、たとえば、要 求1はCLK3でドライブされ、CLK4で認識され、CLK5で始まる同順キ ューに入る。トランザクションの3番目のフェーズは、要求フェーズから3クロ ック後のエラーフェーズである。エラーフェーズは、要求によってトリガーされ たエラーがあれば、それを指示する。トランザクションの4番目のフェーズは、 要求フェーズから4クロック後のスヌープフェーズである。スヌープフェーズは 、トランザクションでアクセスされたキャッシュラインが有効であるか、あるい はいずれかのエージェントのキャッシュで修正されている(ダーティ)かどうか を指示する。また、スヌープフェーズは、トランザクションが同順で終了するの か、順不同終了が可能で、遅延される場合があるかどうかも指示する。 トランザクションは、FIFO順に同順キューを通して進行する。まず、同順 キューの一番上のトランザクションは、応答フェーズに入る。応答フェーズは、 そのトランザクションが失敗したか、成功したか、応答が即時応答か遅延応答か 、そしてそのトランザクションがデータフェーズを含んでいるかどうかを指示す る。 トランザクションが応答起動データフェーズを含んでいる場合は、トランザク ションは応答フェーズと共にデータ転送フェーズに入り、トランザクションその 応答フェーズ及び(省略可能な)応答起動データ転送フェーズの終了時に同順キ ューから取り除かれる。図3に示すように、トランザクション1はCLK5で開始さ れる同順キューから取り除かれる。 上に述べたバスの分割トランザクション性のため、所与の時点において複数の トランザクションが待ち状態になり得るということがわかる。すなわち、複数の 要求が出されて、それに対する応答が全く戻されていない状態があり得る。本発 明の一実施形態においては、バス上の各エージェントは、最大8つのトランザク ションを待ち状態にすることができる。 図4は、本発明の一実施形態のバスブリッジを示すブロック図である。一態様 においては、図4のバスブリッジ400は図2のブリッジ224または240か らなる。本発明の一実施形態においては、I/Oバズ402は周知のPCI規格 に基づいて動作する。しかしながら、I/Oバス402は、周知のEISA、I SA、あるいはVESA規格など、様々な規格の中の任意の規格に従って動作す ることができるということに留意すべきである。 以下の説明においては、バスブリッジ400は及びI/Oバスに接続されてい るものとして説明を進める。しかしながら、当業者ならば、以下に説明する種々 の例並びに実施形態は、プロセッサバス及びI/Oバスに限らず、任意の2本の バスを相互接続する場合についても同様に適用可能であるということは理解でき よう。 バスブリッジ400は、プロセッサバス401に接続されたプロセッサバスイ ンタフェース410を有する。プロセッサバス401はたとえば図2のバス20 1であってもよい。プロセッサバスインタフェース410は、外向き要求デコー ダ415、I/Oバス主制御装置425、及び内向き要求キュー430にも接続 されている。バスインタフェース410は、BRJまたはI/Oバス402上の エージェントをターゲットとするプロセッサバス401から要求を受け取る。 バスインタフェース410は、アービトレーション装置411、同順キュー4 14、及びコンフィギュレーションレジスタ412を含む。アービトレーション 装置411は、プロセッサバス401へのアクセス権に関するバスブリッジ40 0のアービトレーションを制御する。プロセッサバス401へのアクセス権に関 するアービトレーションは、従来の様々な方式の中の任意のやり方で行うことが できる。コンフィギュレーションレジスタ412は、コンピュータシステム内の ブリッジ400の動作のためのコンフィギュレーション値を供給する。これらの 値には、たとえば書込みポスティングがイネーブルかディスエーブルか、遅延応 答がイネーブルかディスエーブルか等が含まれる。書込みポスティング及び遅延 応答のイネーブル/ディスエーブルについては、以下にさらに詳しく説明する。 同順キュー414は、プロセッサバス上で現在待ち状態のトランザクションの リストを監視するためにブリッジ400によって使用される。上に述べたように 、プロセッサバス上のトランザクションは、要求フェーズの後同順キュー414 に入り、応答フェーズの後(あるいはデータ転送フェーズがある場合は、その後 )に除去される。 本発明の一実施形態においては、バスインタフェース410は、アドレスマッ ピング論理回路413も有する。プロセッサバス401とI/Oバス402が異 なる規格を使用している場合は、要求に付随するアドレスを変換することが必要 な場合がある。すなわち、I/Oバス402からの要求が、プロセッサバス40 1上に乗せるための正しいフォーマットになっていないアドレスをターゲットに している場合である。アドレスマッピング論理回路413はこのような場合の変 換を行う。変換は2本のバスの規格に基づくものであり、通常の仕方で行われる 。 要求は、それを出すエージェントによってプロセッサバス410上に送り出さ れる。要求を出すエージェントは、要求を生成したエージェントでも、あるいは 単に要求をプロセッサバス401に転送するだけの他のインタフェースまたはブ リッジであってもよい。要求がどこから出るかに関わらず、バスインタフェース 410は、要求を受け取るとすぐ、その要求を外向き要求デコーダ415に転送 する。外向き要求デコーダ410は、以下にさらに詳しく説明するように、要求 が遅延されるかどうかを確認する。この確認を行った後、外向き要求デコーダ4 15は、要求が遅延されるかどうかを示す信号をバスインタフェース410に出 す。要求が遅延される場合は、バスインタフェース410は要求をプロセッサバ ス401に出したエージェントに応答を戻す。この応答は、要求が遅延されると いうことを指示する。しかしながら、要求が遅延されない場合は、バスインタフ ェース410は、要求の処理が終了するまで、プロセッサバス401を機能停止 にする。ここで、「機能停止」とは、これが解除されるまで、バス上を介してト ランザクションが全く伝達されないということを意味する。一態様においては、 バスの機能停止は、バスを機能停止にすべきであるということを示す信号をすべ てのエージェントに送信することによって行われる。 本発明の一実施形態においては、プロセッサバス401はパイプライン型バス である。従って、要求が遅延されないならば、必ずしもバス全体を機能停止にす る必要はない。一態様においては、要求が遅延されないとき、ブリッジ400は バスの応答フェーズを機能停止にする。応答フェーズを機能停止にすることによ って、現行の要求が待ち状態になっている間に、他のトランザクションについて パイプラインバスの他のフェーズを続行することができる。たとえば、他のエー ジェントがバス上に要求を出すことができ、一部の結果信号(たとえばエラー信 号)を出すことができるが、この場合、ブリッジ400が応答フェーズに対する 機能停止を解除するまで応答は全く出されない。 一態様においては、バスインタフェース410は、外向き要求キュー420が いっぱいの場合、プロセッサバス401を完全に機能停止にする。すなわち、外 向き要求キュー420に残っているスロットがないと、バスインタフェース41 0はプロセッサバス401上に信号を出してパイプラインを完全に機能停止にす る。バスを完全に機能停止にすることによって外向き要求キュー420のスロッ トが使用可能になるまで、どのフェーズでもそれ以上要求をプロセッサバス40 1上に出すことはできなくなる。 この態様においては、バスインタフェース410は、外向き要求キュー420 の全てのスロットがいっぱいになると、プロセッサバス401を機能停止にする 。しかしながら、一部の場合には、パイプライン型バスの性質のため、外向き要 求キュー420の最後の使用可能スロットに前回の要求が入れられると、それと 同時に次の要求をバス上に乗せることができるようになっている。従って、その 次の要求もブリッジ400をターゲットにしている場合は、外向き要求キュー中 に使用可能なスロットがないので、問題が生じる。この問題を解決するために、 バスインタフェース410は、外向き要求キュー420にスロットが1つしか残 っていない場合、プロセッサバス401を機能停止にする。 もう一つの態様においては、バスインタフェース410は、外向き要求キュー 420がいっぱいの場合、プロセッサバス401を機能停止にするのではなく、 リトライ応答を出す。従って、ブリッジ400をターゲットとしないトランザク ションはプロセッサバス401を介して進行するが、ブリッジ400をターゲッ トとするトランザクションはリトライしなければならない。 バスインタフェース410は、プロセッサバス401から外向き要求デコーダ 415に要求を転送するほか、I/Oバス402上のターゲットエージェントか らプロセッサバス401上の要求送出エージェントへ応答を戻す。さらに、プロ セッサバス上のエージェントをターゲットとしてI/Oバス402上に出された 要求は、バスインタフェース410によってプロセッサバス401上に乗せられ る。 プロセッサバスインタフェース410は、以下にさらに詳しく説明するように 、I/Oバス402上のエージェントをターゲットにした要求に対する応答をI /Oバス主制御装置425または内向き要求キュー430を介して受け取る。さ らに、I/Oバス402上に出された要求も内向き要求キュー430を介してバ スインタフェース410へ転送される。バスインタフェース410は、要求が遅 延されたかどうかを知らせる外向き要求待デコーダ415からの信号に基づいて 、応答がI/Oバス主制御装置425または内向き要求キュー430のどちらか ら戻されるかを確認する。要求が遅延されない場合は、応答はI/Oバス主制御 装置425を経由してバスインタフェース410に戻される。そして、バスイン タフェース410は、プロセッサバス401上でその応答を実行し、応答フェー ズの機能停止を解除する。しかしながら、要求が遅延される場合、あるいは要求 がI/Oバス402上に出された要求の場合は、バスインタフェース410は内 向き要求キュー430を介して応答(または要求)を受け取る。 内向き要求キュー430は、I/Oバス402からプロセッサバス401へ要 求及び遅延応答を転送する。一態様においては、トランザクションが内向き要求 キュー430の一番上にあるとき、キュー430はプロセッサバスインタフェー ス410にそのことを知らせる信号を送る。プロセッサバスインタフェース41 0は、この信号を受け取ると、プロセッサバス401へのアクセス権のためのア ービトレーションを開始する。プロセッサバス401に対するアクセス権が得ら れると、バスインタフェース410は、内向き要求キュー430からトランザク ションを受け取り、プロセッサバス401上で実行する。 一実施形態においては、プロセッサバスインタフェース410は、プロセッサ バス401上の高優先権エージェントである。従って、内向き要求キュー430 でトランザクションが待ち状態になっているとき、バスインタフェース410は プロセッサバス401に迅速にアクセスして、待ち状態のトランザクションをそ のバス上で実行することができる。一態様においては、バスインタフェース41 0がプロセッサ401に対するアクセス権を得ると、内向き要求キュー中の待ち 状態のトランザクションは全て該キューから取り除かれ、バス上で実行される。 ここで、場合によっては、バスインタフェース410は、プロセッサバス401 の所有権を放棄する前には、内向き要求キュー430で待ち状態のトランザクシ ョンの全部を首尾よく取り出して、プロセッサバス401上で実行することがで きない場合もあるということに留意すべきである。すなわち、キューでコマンド を移動させる際に遅延時間が生じる場合がある。たとえば、キューに4つのトラ ンザクションが入っている場合、最初の3つは首尾よくプロセッサバス401上 で実行されるかもしれない。しかしながら、4番目のトランザクションが、十分 迅速にキューの一番上まで移動せず、そのためにバスインタフェース410にキ ュー中には待ち状態のトランザクションはないと誤解させる結果になるかもしれ ない。 本発明のもう一つの実施形態においては、内向き要求キュー430で待ち状態 の全てのトランザクションを実行する代わりに、バスインタフェース410はプ ロセッサバス401へのアクセス権を得るためのアービトレーションを行い、プ ロセッサバス401上で内向き要求キュー430からの1つのトランザクション を実行する。そして、キューに待ち状態のトランザクションが残っていれば、バ スインタフェース410は再度プロセッサバス401へのアクセス権を求めてア ービトレーションを行う。 外向き要求デコーダ415は、プロセッサバス401上の要求が遅延になるか どうかを確認する。外向き要求デコーダ415は、バスインタフェース410、 外向き要求キュー420、及び内向きキュー割当て装置435に接続されている 。 要求を遅延させるために、外向き要求デコーダは内向き要求キュー430で使用 可能なスロットがあるかどうか確認する。内向き要求キュー430中のスロット が使用可能でない場合は、バスインタフェース410に遅延応答を出すと、以下 にさらに詳しく説明するように、デッドロック状態が起こり得る。 外向き要求デコーダ415は、内向きキュー割当て装置435にアクセスして 内向き要求キュー430中のスロットが使用可能かどうかを確認する。内向きキ ュー割当て装置435は、以下にさらに詳しく説明するように、内向き要求キュ ースロットを動的に割り当てる。内向きキュー割当て装置435が外向き要求デ コーダ415に内向き要求キュー430のスロットが使用可能であることを知ら せると、デコーダ415はそのスロットを予約し、割当て装置435にそのこと を知らせる。デコーダ415は、内向き要求キュー430中のスロットを予約す ることによって、I/Oバス402から応答が戻ったとき、確実にその応答を入 れるためのスロットが内向き要求キュー中にあるようにする。 要求が遅延されたかどうかに関わらず、デコーダ415はその要求を外向き要 求キュー420に入れる。デコーダ415は、外向き要求キュー中の外向き要求 が遅延された場合、その要求にタグを付ける。ここで、外向き要求キュー420 に入れらた要求が遅延されなくても、次の要求は遅延されるかもしれないという ことに留意すべきである。すなわち、特定の要求に対する遅延応答に対して内向 き要求キュー内のスロットが使用可能ではなくても、次の要求がデコーダ415 に到達する時点までには、内向き要求キュー430中のスロットが空いている場 合がある。従って、デコーダ415は、後続の要求に対して遅延応答を出すこと ができる。 外向き要求Kキュー420は、デコーダ415から要求を受け取り、それらの 要求をI/Oバス主制御装置425に転送する。本発明の一実施形態においては 、内向き要求キュー420は通常の方式で動作する先入れ先出し(FIFO)バ ッファである。従って、外向き要求キュー420に入れられた要求は、先入れ先 出し方式でI/Oバス主制御装置によってキューから取り出される。FIFOキ ューを維持することによって、ブリッジ400はトランザクション順序を維持す る。すなわち、外向き要求キュー420に入れられた要求は、後のいずれかの要 求が 取り出される前にキュー420から取り出され、I/Oバス402上で実行され る。 当業者ならば、遅延要求を用いることによって、読出し要求が、内向き要求キ ュー430で待ち状態のそれまでの要求が満たされる前にプロセッサバス401 上に応答を受け取ることもできるということは理解できよう。たとえば、外向き 要求キュー420中に2つの遅延読出し要求があって、外向き要求キュー420 には遅延要求が最大2つしか入れることができないとすると、ブリッジ400に 入る次の3番目の読出し要求は遅延されない。この場合、これらの最初の2つの 読出し要求は、I/Oバス402上で実行され、内向き要求キュー430に入れ られる。その後、3番目の要求がI/Oバス402上で実行され、その応答は直 ちにバスインタフェース410に戻され、プロセッサバス401上で実行される 。このように、3番目の読出し要求は、前の2つの読出し要求が満たされるより 前に満たされる。 上記の例から、やはりトランザクション順序は維持されるということが明らか である。トランザクションは、ブリッジ400が受け取った順にI/Oバス40 2上で実行される。しかしながら、上に述べたように、応答はプロセッサバス4 01では同順にはならない。 一実施形態においては、外向き要求キュー420は複数のスロットを有する。 一態様においては、外向き要求キュー420はそのようなスロットを4つ有する 。一例のスロットを図6にさらに詳細に示す。図示例の外向き要求キュースロッ ト423は、5つの部分からなる。すなわち、タグ610、コマンド部615、 アドレス部620、データポインタ625、及びトークン部628の5つの部分 である。 一実施形態においては、タグ610は1ビット、コマンド部615は4ビット 、アドレス部620は32ビット、データポインタ625は2ビット、トークン 部628は8ビットである。しかしながら、これらの値を変えることが可能なこ とは当業者ならば理解できよう。たとえば、4つのデータバッファを有するブリ ッジの場合、データポインタ625は2ビットだけでよいが、6つのデータバッ ファを有するブリッジの場合は、データポインタ625は少なくとも3ビットに な る。 タグ610は、スロット423に記憶された要求が遅延されるかどうかを指示 する。タグ610は、上に述べたように、スロット423に記憶された要求が遅 延される場合、デコーダ415によってセットされる。コマンド部515には、 要求送出エージェントによってプロセッサバス401上に出された実際のコマン ドが書き込まれる。一実施形態においては、外向き要求キュー420中のコマン ドは、プロセッサバス401に出されるものと同じである。すなわち、バスイン タフェース410によってもデコーダ415によっても、変換は全く行われない 。 また、スロット423はアドレス部620を有する。アドレス部620には、 コマンド部615のターゲットであるI/Oバス402上のターゲットエージェ ント(またはI/Oバス402上のターゲットエージェント中の記憶場所)のア ドレスが書き込まれる。要求がプロセッサバス401からI/Oバス402への データ転送を必要とする場合は、データポインタ625は転送されるデータが入 ったデータバッファを示すポインタになる。一実装例においては、データポイン タ625は、この特定スロットに付随するデータバッファのアドレスが書き込ま れる。 データバッファを外向き要求キュー420とどのように組み合わせて使用する かについて、以下、図5を参照しつつさらに詳しく説明する。ここで、プロセッ サバス401に出される要求は、全くデータを伴わない場合もあるということに 留意すべきである。たとえば、はじめの要求はI/Oバス402上のエージェン トに対する特殊なコマンド、あるいはI/Oバス402上の多くのエージェント に一斉送信されるコマンドのこともある。そのような場合は、データポインタ6 25はデータバッファを全く指示しない。 図4に戻って、I/Oバス主制御装置425は、外向き要求キュー420から 1つずつ要求を受け取る。キュー420から要求を受け取った後、I/Oバス主 制御装置425は、その要求をI/Oバスインタフェース450に転送する。I /Oバス主制御装置425は、この要求に対してI/Oバスインタフェース45 0から応答を受け取るまで、外向き要求キュー420から後続の要求を取り出さ ない。 I/Oバスインタフェース450から応答を受け取ると同時に、I/Oバス主 制御装置425はバスインタフェース410にその応答を戻す。これは、直接あ るいは内向き要求キュー430を介して行われる。I/Oバス主制御装置425 が応答をバスインタフェース410に直接戻すかどうかは、要求がデコーダ41 5によって遅延されるかどうかによって決まる。要求が遅延される場合は、I/ Oバス主制御装置425は応答を遅延ジェネレータに転送する。しかしながら、 要求が遅延されない場合は、I/Oバス主制御装置425は応答を直接バスイン タフェース410に戻す。ここで、要求が遅延されない場合、上に述べたように 、バスインタフェース410がその遅延されない要求に応答してプロセッサバス 401の応答フェーズを機能停止にしているので、I/Oバス主制御装置425 は、応答をバスインタフェース410に直接戻すということに留意すべきである 。応答を直接戻すことによって、プロセッサバス401は最小限の時間だけ機能 停止される。 また、I/Oバス主制御装置425によって転送される応答は「リトライ」応 答の場合もあるということにも留意すべきである。すなわち、I/Oバス402 上のターゲットエージェントは、要求を終了することができない場合、リトライ 応答をバスインタフェース450に出し、その応答がI/Oバス主制御装置42 5に戻される。このリトライ応答は、バスインタフェース410を介してプロセ ッサバス425上の要求送出エージェントに戻され、そのエージェントに後で要 求をリトライしなければならないということを指示する。 I/Oバスインタフェース450は、I/Oバス主制御装置425、I/Oバ スターゲット制御装置445、及びI/Oバス402に接続されている。I/O バスインタフェース450は、I/Oバス主制御装置425及びI/Oバス40 2の両方から要求を受け取る。I/Oバス主制御装置425から受け取る要求は 、上に述べたように、プロセッサバス401上に出される要求である。バスイン タフェース450は、そのような要求を受け取ると同時に、その要求に伴うコマ ンドをI/Oバス402上の実行する。本発明の一実施形態においては、プロセ ッサバス401とI/Oバス402は異なるプロトコルを使用する。従って、プ ロセッサバス401上に出されるコマンドは、I/Oバス402上で実行される 前 にまず変換しなければならない。一態様においては、I/Oバスインタフェース 450中のコマンドデコーダ452がこの変換を行う。この変換は、当業者が理 解し得る種々の技術的方法の中の任意の方法で行うことができる。 また、I/Oバスインタフェース450は、アービトレーション装置451を 有する。アービトレーション装置451は、I/Oバス402へのアクセス権を 得るためのバスブリッジ400のアービトレーションを制御する。I/Oバス4 02に対するアクセス権を得るためのアービトレーションは従来の様々な方式の 中の任意の方式で行うことができる。 さらに、本発明の一実施形態においては、I/Oバスインタフェース450は アドレスマッピング論理路453をも有する。プロセッサバス401及びI/O バス402が異なる規格を使用するシステムの場合、要求に伴うアドレスを変換 することが必要な場合がある。すなわち、プロセッサバス401からの要求が、 I/Oバス402上に乗せるための正しいフォーマットでないアドレスをターゲ ットにする場合がある。アドレスマッピング論理回路453がこの変換を行う。 この変換は2本のバスの規格に基づき、通常の方式で行われる。 I/Oバス402上で変換を実行した後、I/Oバスインタフェース450は ターゲットエージェントからの応答を待つ。この応答を受け取ると同時に、バス インタフェース450はその応答をバス主制御装置425に戻す。I/Oバス主 制御装置425によるこの応答の処理については、上に説明した。 また、I/Oバスインタフェース450は、I/Oバス402からも要求を受 け取る。これらの要求は、I/Oバス402上のエージェントから出され、プロ セッサバス401上のエージェントをターゲットとする。一態様においては、バ スインタフェース450は、I/Oバス402から受け取ったコマンドを変換し てからプロセッサバス401へ転送する。これらの要求は、その後バスインタフ ェース450によってI/Oバスターゲット制御装置445へ転送される。これ らの要求がバスターゲット制御装置445によってどのように処理されるかを以 下にさらに詳しく説明する。 遅延応答ジェネレータ440は、I/Oバス主制御装置425から遅延応答を 受け取る。その後、遅延ジェネレータ440はそれらの遅延応答を内向き要求キ ュー430に転送する。図4には、遅延ジェネレータ440及びI/Oバスター ゲット制御装置445から入力を受け取るマルチプレクサ442も示されている 。マルチプレクサ442の出力は、内向き要求キュー430に入力される。マル チプレクサ442は、内向き要求キュー430が複数のソースから入力を供給さ れるということを示している。当業者には明らかなように、本発明においては、 マルチプレクサの代わりに他の周知の装置を使用てきるということに留意すべき である。 I/Oバスターゲット制御装置445は、バスインタフェース450、内向き 要求キュー430、及び内向きキュー割当て装置435に接続されている。I/ Oバスターゲット制御装置445は、I/Oバス402上に出された要求をバス インタフェース450から受け取る。そのような要求を受け取ると同時に、I/ Oバスターゲット制御装置445は内向きキュー割当て装置445にアクセスし て、内向き要求キュー430中のスロットが使用可能であるかどうかを確認する 。内向き要求キュー430中のスロットが使用可能であれば、I/Oバスターゲ ット制御装置445は要求を内向き要求キュー430に転送する。しかしながら 、スロットが使用可能でなければ、I/Oバスターゲット制御装置445は、要 求を終了することができず、リトライしなければならないということを指示する 応答をバスインタフェース450を介して要求送出エージェントに送る。 内向き要求キュー430に入れられる要求は、プロセッサバス401上で首尾 よく終了することもあれば、しないこともある。本発明の一実施形態においては 、プロセッサバス401上でにおける内向き要求キュー430の実行の結果、可 能な2つの応答のうちの一方の応答が生じる。その第1の応答は、プロセッサバ ス401上のターゲットエージェントから戻される正常終了応答である。この場 合、終了信号は(他の付随データがあればそれらのデータと共に)I/Oバス4 20上に要求を出したエージェントに戻される。もう一つの可能な応答はリトラ イ応答である。この場合は、プロセッサバス401上のターゲットエージェント は、要求に対して、要求を処理できる状態ではないので、リトライしなければな らないということを指示する応答を出す。このリトライ応答は、I/Oバス40 2上の要求送出エージェントに戻されることによって、そのエージェントに後で その 要求を再度トライすべきであるということを知らせる。 内向き要求キュー430は、図示のように、複数のスロット433よりなる。 一実施形態においては、内向き要求キュー430はこのようなスロットを4つ有 する。図7に、スロット433の一例を示す。スロット433は3つの部分、す なわちコマンド部730、アドレス部735、及びデータポインタ740を有す る。一実装例においては、コマンド部730、アドレス部755、及びデータポ インタ740は、図6の外向き要求キュースロット423の同様の部分と同じビ ット数を有する。 図7に戻って、コマンド部730はプロセッサバス401上で実行しなければ ならないコマンドが書き込まれる。I/Oバス402上に出される要求の場合は 、コマンド部730には要求送出エージェントによって実行されるコマンド(バ スインタフェース450によって変換された形の)が書き込まれる。遅延された プロセッサバス401上に出される要求の場合は、コマンド部730には、最初 の遅延要求に対して遅延応答を指示するコマンドが書き込まれる。 アドレス部735には、プロセッサバス401上のターゲットエージェントの アドレス(またはプロセッサバス401上のターゲットエージェント内の記憶場 所)が書き込まれる。個々で、遅延応答の場合はアドレス部735に書き込まれ たアドレスは送出エージェントからのトークンに置換できるということに留意す べきである。データポインタ740には、上記コマンドに付随するデータがある 場合に、そのようなデータが書き込まれるデータバッファを示すポインタが書き 込まれる。データポインタ740の使い方は、図6のデータポインタ625につ いて説明した使い方と同様である。 ここで、I/Oバス402からプロセッサバス401へのトランザクションは 、データバッファに入れることができるよりも多いデータを伴う場合があるとい うことに留意すべきである。そのような場合は、トランザクションはデータバッ ファのサイズに応じて分割され、内向き要求キュー内の複数のスロットに入れら れる。一態様においては、I/Oバスターゲット制御装置445は、トランザク ションに必要なスロット数を決定し、またそれだけの数のスロットが使用可能か どうか確認しなければならない。もう一つの態様においては、I/Oバスターゲ ッ ト制御装置445はトランザクションを分割し、それらのトランザクションの部 分を、内向き要求キュー430にそのキューのスロットが使用可能になるのに応 じて入れる。 図4に戻って、内向きキュー割当て装置435は、図示のように、デコーダ4 15、内向き要求キュー430、及びI/Oバスターゲット制御装置445に接 続されている。内向きキュー割当て装置435は、内向き要求キュースロット4 30を遅延応答と、I/Oバス402上に出されるトランザクションとに割り当 てる役割を有する。割当て装置435は、内向き要求キュー430中のスロット 数を常時カウントし、それらのスロットを動的に割り当てる。このように、内向 きキュー割当て装置435は、内向き要求キュー430を監視して、要求(また は応答)が内向き要求キュー430から取り出されたとき、その使用可能なスロ ットのカウント値を更新する。一態様においては、内向きキュー割当て装置43 5は、スロットにコマンドが与えられた場合に、そのスロットが遅延応答または 要求のどちらによって使用されたか(すなわち、コマンドが要求であるか、応答 であるか)を知らされる。さらに、遅延応答のためにデコーダ415が使用可能 な要求キュースロットの数は、システム動作時に割当て装置435によって変更 することができる。 割当て装置435は、まず遅延応答に対して内向き要求キュースロットの半分 を割り当てる。すなわち、デコーダ415が割当て装置435に対して内向き要 求キュースロットを要求すると、割当て装置435はデコーダ415にスロット の中の2つについてアクセスを許可する(内向き要求キュー430が4スロット からなる場合)。これによって、I/Oバス402上に出されるトランザクショ ンが途絶するのを防ぐことができる。割当て装置435が遅延応答に対してデコ ーダ415にスロットを割り当てる場合、割当て装置435は、本質的に、I/ Oバス402上に出される何らかのトランザクション、またはプロセッサバス4 01上に出される何らかのトランザクションがそのスロットを使用することを禁 止する。従って、遅延応答ジェネレータ440が要求の応答を内向き要求キュー 430に入れようとするとき、遅延応答は必ず内向き要求キュー中にスロットを 確保することができる。 同様に、I/Oバスターゲット制御装置445が内向きキュー割当て装置43 5に対してキュースロットを要求すると、割当て装置435はバスターゲット制 御装置445にスロットの半分に対してだけアクセスを許可する。バスターゲッ ト制御装置445による以後のスロット要求は、バスターゲット制御装置445 が要求を入れたスロットの1つが空くまで拒否される(そして対応するトランザ クションがリトライされる)。 本発明の一実施形態においては、内向きキュー割当て装置435は内向き要求 キュー430のスロットを動的に割り当てる。これによって、割当て装置435 は、I/Oバス402上に高トラフィックの要求が出された場合、I/Oバスタ ーゲット制御装置445にスロットを追加割当てすることができる。すなわち、 デコーダ415に2つのトランザクションを遅延させるのではなく、内向きキュ ー割当て装置435は、デコーダ415が1つのトランザクションだけ遅延でき るようにし、I/Oバスターゲット制御装置445が内向き要求キュー430の スロットの中の3つにアクセスできるようにする。これは、内向き要求キューを 遅延応答用に不必要に予約することなくシステム性能を向上させるということに 注目すべきである。 内向き要求キュー430がいっぱいの時は、I/Oバス402上に出されるト ランザクションは全てリトライされる。さらに、プロセッサバス401上に出さ れる全ての要求が遅延されることはない。内向き要求キュー430中のスロット が使用可能になると、そのキューで待ち状態のトランザクションの1つをプロセ ッサバス410上で実行させることによって、内向きキュー割当て装置435は デコーダ415またはI/Oバスターゲット制御装置445のどちらかに割り当 てる。本発明の一実施形態においては、割当て装置435は新しく解放されたス ロットの所有権に関する優先権をデコーダ415に与える。従って、プロセッサ バス401とI/Oバス402上に同時に出されたトランザクションの場合(す なわち、デコーダ415とI/Oバスターゲット制御装置445が同時に内向き 要求キュー430のスロットを要求する場合)、割当て装置435はデコーダ4 15にスロットを与える。この実施形態においては、デコーダ415に現在内向 き要求キュー430のスロットを要求しているトランザクションががない場合、 割当て装置435はI/Oバスターゲット制御装置445にスロットの所有権を 持たせる。 本発明の一実施形態においては、プロセッサバス401は500メガバイト/ 秒のバンド幅を持つのに対して、I/Oバス402のバンド幅は125メガバイ ト/秒であるということに留意すべきである。そのために、両方のバスに接続さ れた多くのエージェントがトランザクションを出しているとき、バスインタフェ ース410には、バスインタフェース450に要求が達するよりもはるかに高速 で要求が到達する。このような状況においては、デコーダ415がトランザクシ ョンに割当て装置435に対して内向き要求キュースロットを要求させることが より起こり易い。しかしながら、I/Oバス402上のエージェントによってプ ロセッサバス401上のエージェントよりも多くの要求が出される状況が起こり 得る。そのような状況においては、I/Oバスターゲット制御装置445がトラ ンザクションに割当て装置435に対して内向き要求キュースロットを要求させ ることがより起こり易い。 本発明の一実施形態においては、ブリッジ400はI/Oバス402をターゲ ットにした読出し要求の場合にのみ遅延応答を出す。ブリッジ400により受け 取られた書込み要求は、リトライされるか(使用可能な外向き要求キュースロッ トがない場合)、ポスティングされるか、あるいはI/Oバス402上で試みら れる。「ポスティングされる」とは、コマンドが外向き要求キューに入り、要求 送出エージェントが要求がI/Oバス402上で試みられるという応答を受け取 ることを意味する。要求は、ポスティングされない場合も、I/Oバス402上 で試みられ得る。すなわち、プロセッサバス401の応答フェーズは、要求が外 向き要求キュー420の一番上から取り出され、I/Oバス402上で試みられ 、応答が要求送出エージェントに戻されるまで、機能停止にされる。 本発明の一実施形態においては、書込みポスティングはイネーブルにすること もできれば、ディスエーブルにすることもできる。書込みポスティングがイネー ブルであると、ブリッジ400は書込み要求を外向き要求キュー420にポステ ィングする(外向き要求キュー420中のスロットが使用可能と仮定した場合) 。書込みポスティングがイネーブルでない場合は、ブリッジ400は、プロセッ サ バス401の応答フェーズを機能停止にして、要求をI/Oバス402上で試み る(要求が外向き要求キュー420の一番上にあるとき)。 一態様においては、書込みポスティングがイネーブルかどうかは、ブリッジ4 00のコンフィギュレーションレジスタ412に記憶された1ビットコンフィギ ュレーション値で示される。一態様においては、書込みポスティングは、該1ビ ットコンフィギュレーション値が”1”の時イネーブルになり、”0”の時ディ スエーブルになる。書込みポスティングは、レジスタ412に記憶されたこのコ ンフィギュレーション値を変えることによって、システム動作時に変更すること ができる。 バスブリッジは、デッドロック状況の可能性への対処がなされなければならな い。デッドロック状況としては、主に次の2つの状況が起こり得る:(1)ブリ ッジ自体の内部で起こるデッドロック、及び(2)2つのブリッジ間で起こるデ ッドロック状況。この最初のデッドロック状況においては、外向き及び内向き要 求キューが共にいっぱいで、外向き要求キューの一番上にある要求が遅延される 場合に、潜在的なデッドロック状況が起こる。外向き要求キューがいっぱいのと きは、プロセッサバス401上のどのトランザクションもそれらのトランザクシ ョンを記憶することができないブリッジをターゲットにすることができないので 、プロセッサバスは機能停止にされる。プロセッサバス401は機能停止なので 、内向き要求キューは要求をプロセッサバス401に転送することができない。 さらに、外向き要求キューの一番上にある要求に対する遅延応答は、内向き要求 キューがいっぱいなので、内向き要求キューに入れることができない。その結果 、内向き要求キューの一番上にある要求も、外向き要求キューの一番上の要求も 実行できず、システムはデッドロックになる。 上記の第2の状況においては、2つのブリッジが同じバスに接続されているシ ステムでデッドロック状況が乗じる。たとえば、ブリッジAは、遅延読出し応答 を遅延応答に変換しなければならない。この遅延応答は、内向き要求キューを必 要とする。しかしながら、ブリッジAの内向き要求キューはいっぱいであり、ブ リッジBの一番上にポスティングされた書込みがある一方、ブリッジBの外向き 要求キューもいっぱいで、一番上には、内向き要求キュースロットを待つ遅延応 答がある。ブリッジBの内向き要求キューがいっぱいで一番上にあるポスティン グされた書込みがブリッジAに向けられている場合は、どのキューも前進できず 、システムはデッドロックになる。 プロセッサバス401上における前方への進行を維持することによって、どち らのデッドロック状況も回避できるということがわかる。このような前方への進 行は、要求が外向き要求キューに入れられたとき、内向き要求キュー中に遅延応 答スロットを予約することによって確保することができる。この予約スロットは 、上に述べたように、遅延要求に対する応答のために用いられる。 図5は、本発明の一実施形態におけるデータバッファの一例及びこれに対応す る要求キューを示している。外向きデータバッファ520には外向きデータ(す なわちプロセッサバス401からI/Oバス401へ転送されるデータ)が書き 込まれ、内向きデータバッファ530には、内向きデータ(すなわちI/Oバス 402からプロセッサバス401へ転送されるデータ)が書き込まれる。図示例 においては、外向きデータバッファ520は外向き要求キュー420に対応し、 内向きデータバッファ530は内向き要求キュー430に対応する。しかしなが ら、当業者ならば、内向き要求キュー430の特定のスロットは、外向きデータ バッファ520の1つに対応させることもできる(たとえば、I/Oバス402 上に出される読出し要求において、プロセッサバス401上のターゲットエージ ェントからデータを読み出す場合)ということは理解できよう。同様に、外向き 要求キュー420の特定のスロットは、内向きデータバッファ530の1つに対 応させることもできる(たとえば、プロセッサバス401上のエージェントから のI/Oバス402上のエージェントをターゲットにした遅延読出し要求の場合 )。一態様においては、データバッファの数はキュー420及び430のスロッ ト数に等しい。 図5に示すデータバッファは、キュースロットと一対一で対応する。すなわち 、各キュースロットに対して1つのデータバッファがある。当業者ならば、これ らの数が変更可能なことは理解できよう。スクリーン、データバッファ数は本発 明の範囲内において増減可能である。 上に図6及び7を参照して説明したように、データバッファにはキュー420 及び430中のコマンドに対応するデータが書き込まれる。データを伴うキュー 420または430のどちらかにおけるコマンド(たとえば書込みコマンド、あ るいは読出しコマンドに対する応答)は、このデータが書き込まれたデータを指 示するデータポインタを有する。一態様においては、データポインタはキュー中 の特定スロットに対応するデータバッファのアドレスである。内向き要求キュー 420中のスロットに対するする正しいデータバッファを指示するデータポイン タ部に入るアドレスは、外向き要求デコーダ415によって決定される。一態様 においては、各データバッファは、常にキュー中の同じスロットに対応する。同 様に、内向き要求キュー430中のスロットに対する正しいデータバッファを指 示する正しい標識は、要求が出された場所によって、遅延応答ジェネレータ44 0またはI/Oバスターゲット制御装置445により決定される。もう一つの態 様においては、正しいデータバッファは、要求がキュー420または430に入 れられたとき次に使用可能なバッファに基づいて動的に割り当てられる(上記の ようにデコーダ415、応答ジェネレータ440、またはターゲット制御装置4 45によって)。 本発明の一実施形態においては、各データバッファは32バイトのデータを記 憶することができる。一態様においては、各データバッファのサイズはコンピュ ータシステムのキャッシュラインのサイズと同じである。しかしながら、データ バッファのサイズは変更することができるということは当業者ならば理解できよ う。さらに各データバッファのサイズは互いに異なってもよい。 他の実施形態においては、一組のデータバッファがあって、両方のキュー42 0及び430によって共用される。この実施形態においては、内向き要求キュー 430と外向き要求キュー420+にバッファを適切に割り当てるためにもう一 つの論理回路が必要である。 図8a及び8bは、本発明の一実施形態においてプロセッサバス上に出される 要求に対する処理ステップの流れを示すフローチャートである。要求送出エージ ェントは、まずI/Oバス上のエージェントを目標とするコマンドを出す(ステ ップ805)。バスブリッジのプロセッサバスインタフェースはそのコマンドを 受け取って、直ちに外向き要求デコーダ転送し、外向き要求デコーダは、内向き 要求キューで遅延スロットが使用可能かどうかを直ちに確認する(ステップ81 0)。遅延スロットが使用可能でない場合は、デコーダは要求が遅延されていな いことを知らせる信号をバスインタフェースへ送る(ステップ815)。この信 号に応答して、バスインタフェースは、プロセッサバスの応答フェーズを機能停 止させるための信号をプロセッサバス上に出す(ステップ820)。 ステップ810に戻って、遅延スロットが使用可能であることをデコーダが確 認した場合は、内向きキュー割当て装置がそのスロットをデコーダに割り当てる (ステップ825)。これに応答して、デコーダは要求が遅延されたということ を示す信号をバスインタフェースに出す(ステップ830)。 ステップ810で遅延スロットが使用可能であるか否かに関わらず、デコーダ は要求を外向き要求キューに入れる(ステップ835)。要求が外向き要求キュ ーの一番上に来ると、I/Oバス主制御装置がその要求をキューから取り出し、 I/Oバスインタフェースに転送する(ステップ840)。バスインタフェース はI/Oバス上でコマンドを実行し、ターゲットエージェントからの応答を待つ (ステップ845)。その後、この応答はI/Oバス主制御装置へ戻される。 I/Oバス主制御装置は、次に、最初の要求が遅延されたかどうかを確認する (ステップ850)。その最初の要求が遅延されていなければ、I/Oバス主制 御装置は応答を直接プロセッサバスインタフェースに戻す(ステップ855)。 しかしながら、最初の要求が遅延された場合は、I/Oバス主制御装置は、遅 延応答ジェネレータを介して内向き要求キューに応答を転送する(ステップ86 0)。内向き要求キューがそれまで空いていた場合は、内向き要求キューは、待 ち状態のトランザクションが入っていることを示す信号をプロセッサバスインタ フェースへ出す(ステップ865)。 要求が遅延されたか否かに関わらず、プロセッサバスインタフェースは応答を 受け取る(ステップ870)。この応答は、内向き要求キューからの場合もあれ ば(遅延応答要求の場合)、直接I/Oバス主制御装置から供給される場合もあ る(最初の要求の応答フェーズにおいて)。応答を受け取ると同時、あるいは待 ち状態のトランザクションが入っているということを示す内向き要求キューから の信号を受け取ると同時に、プロセッサバスインタフェースはプロセッサバスへ のアクセス権を求めてアービトレーションを行う。プロセッサバスインタフェー スは、プロセッサバスの所有権を得ると同時に、プロセッサバス上の要求送出エ ージェントに応答を転送する。 本発明のもう一つの実施形態においては、遅延応答はイネーブルでもディスエ ーブルでも任意に選択することができる。該もう一つの実施形態においては、外 向き要求キューに入れられる読出し要求は遅延されない。プロセッサバスの応答 フェーズは、上に述べたように、読出し要求に対する応答が受け取られるまで機 能停止にされる。一態様においては、遅延応答がイネーブルかどうかは、ブリッ ジ400のコンフィギュレーションレジスタ412に記憶される1ビットコンフ ィギュレーション値によって指示される。従って、遅延応答は、この1ビットコ ンフィギュレーション値をセットまたはクリアすることによって、システム動作 時にイネーブルにすることも、ディスエーブルにすることもできる。 当業者ならば、 以上の説明に基づいて、本発明の変更態様並びに修正態様を 多数想到することができるので、上記に記載した特定の実施形態は、例示説明を 目的とするものであって、本発明を限定するためのものではない。従って、特定 実施形態の詳細について言及する場合、それは本発明にとって不可欠であると考 えられる特徴のみを記載した特許請求の範囲を限定することを意図したものでは ない。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AP(KE,MW,SD,SZ,UG), AM,AT,AT,AU,BB,BG,BR,BY,C A,CH,CN,CZ,CZ,DE,DE,DK,DK ,EE,ES,FI,FI,GB,GE,HU,IS, JP,KE,KG,KP,KR,KZ,LK,LR,L T,LU,LV,MD,MG,MN,MW,MX,NO ,NZ,PL,PT,RO,RU,SD,SE,SG, SI,SK,SK,TJ,TM,TT,UA,UZ,V N (72)発明者 メレディス,スーザン・エス アメリカ合衆国 97123 オレゴン州・ヒ ルズボロー・サウスイースト 21エス テ ィ コート・748 【要約の続き】 上記と同様に扱われる。

Claims (1)

  1. 【特許請求の範囲】 1.第1のバスに接続された第1のエージェント及び第2のバスに接続された第 2のエージェントを有するコンピュータシステム用のバスブリッジにおいて: (a)該第1のバスに接続された、該第1のバスからデータを受け取り、該第 1のバス上にデータを乗せるための第1のバスインタフェースと; (b)該第2のバスに接続された、該第2のバスからデータを受け取り、該第 2のバス上にデータを乗せるための第2のバスインタフェースと; (c)該第1のバスインタフェース及び該第2のバスインタフェースに接続さ れた内向き要求キュー及び外向き要求キューと; (d)該内向き要求キュー及び該外向き要求キューに接続された、該外向き要 求キューに要求を入れるため、及び該内向き要求キューに基づいて遅延応答コマ ンドを該第1のバスインタフェースに出すためのデコード回路と; を具備したバスブリッジ。 2.上記内向き要求キュー及び上記外向き要求キューに接続されたすくなくとも 1つのデータバッファをさらに具備した請求項1記載のバスブリッジ。 3.外向き要求に遅延応答が与えられるかどうかを確認するための内向きキュー 割当て装置をさらに具備した請求項1記載のバスブリッジ。 4.上記内向き要求キューが複数の内向きスロットを有し、上記内向きキュー割 当て装置が、該複数の内向きスロットの数、現在情報を保持する上記内向き要求 キュー中の内向きスロット数、及び現在遅延応答スロットとラベルされている該 内向き要求キュー中の内向きスロット数に基づいて、外向き要求が遅延応答スロ ットを与えられるかどうかを確認する請求項3記載のバスブリッジ。 5.上記第1のバスインタフェース及び上記第2のバスインタフェースに接続さ れた、外向き要求が遅延されたかどうかを確認し、その要求情報を該第2のバス インタフェースに転送し、該要求情報に応答して生成された応答情報を該第2の バスインタフェースから受け取るバス制御回路をさらに具備し、該バス制御回路 が、 該外向きスロットが遅延されていない場合に該応答情報を該第1のバスインタ フェースに戻し、 該外向きスロットが遅延された場合に該応答情報を内向き要求キューへ転送す る、 請求項1記載のバスブリッジ。 6.上記バス制御回路から応答情報を受け取り、該応答情報を内向き要求キュー に転送するための遅延応答ジェネレータをさらに具備した請求項5記載のバスブ リッジ。 7.上記第2のバスインタフェースから内向き要求を受け取り、該要求を内向き 要求キューに転送するためのバスターゲット回路をさらに具備した請求項1記載 のバスブリッジ。 8.上記外向き要求キューが、上記第1のバスに接続されたエージェントによっ て出された要求に対応する情報を各々保持する複数の外向きスロットを有する請 求項1記載のバスブリッジ。 9.上記内向き要求キューが、上記第1のバスまたは上記第2のバスに接続され たエージェントによって出された要求に対応する情報を各々保持する複数の内向 きスロットを有する請求項1記載のバスブリッジ。 10. 上記複数の内向きスロットのすくなくとも1つが遅延応答スロットであ る請求項9記載のバスブリッジ。 11. (a)上記第1のバスが第1のコマンドプロトコルを有し; (b)上記第2のバスが第2のコマンドプロトコルを有し; (c)上記第2のバスインタフェースが、該第1のコマンドプロトコルと該 第2のコマンドプロトコルとの間でコマンドを変換する; 請求項1記載のバスブリッジ。 12.上記複数の外向きスロットの各スロットが、タグ部、コマンド部、アドレ ス部、及びデータバッファを指示するデータポインタ部よりなる請求項8記載の バスブリッジ。 13.上記複数の内向きスロットの各スロットが、コマンド部、アドレス部、及 びデータバッファを指示するデータポインタ部よりなる請求項9記載のバスブリ ッジ。 14.上記デコード回路が、上記複数の内向きスロットの内向き各スロットに情 報が入っているかどうかに基づいて、遅延応答コマンドをCPUバスインタフェ ースに出すべきかどうかを決定し、該デコード回路が、内向きスロットに情報が 入っていない場合に遅延応答コマンドをCPUバスインタフェースに出す請求項 9記載のバスブリッジ。 15.上記バス制御回路が、上記タグ部の書込み内容に基づいて、要求が遅延さ れたかどうかを確認する請求項12記載のバスブリッジ。 16.第1のバスと第2のバスとの間でコマンドを転送する方法において: (a)該第1のバス上のソースエージェントからの第1の外向き要求を外向き 要求キューに転送するステップと; (b)該第1の外向き要求が遅延されるかどうかを確認するステップと; (c)該ソースエージェントに対して遅延応答を出し、該第1の外向き要求が 遅延されるとき内向き要求キューのスロットを予約するステップと; (d)該外向き要求キューからの該第1の外向き要求を該第2のバス上のター ゲットエージェントに転送するステップと; (e)該第1の外向き要求が遅延されない場合、該ターゲットエージェントか らの応答情報を該ソースエージェントに戻し、該第1のがキューKが遅延される 場合に該ターゲットエージェントからの該応答情報を該内向き要求キューに入れ るステップと; を具備した方法。 17.上記ステップ(d)が、上記外向き要求キューから上記第1の外向き要求 を取り出し、該第1の外向き要求を第2のバスインタフェースへ転送するステッ プよりなる請求項16記載の方法。 18.上記ステップ(c)が: 該内向き要求キュー中のスロット数を確認するステップと; 現在使用中でない該内向き要求キュー中のスロット数を確認するステップと; 現在遅延応答スロットとラベルされている該内向き要求キュー中のスロット数 を確認するステップと; 使用されていない内向きスロットがあり、かつ遅延応答スロットとラベルされ た内向きスロットが所定数より少ない場合に、遅延応答を出すステップと; を具備した請求項16記載の方法。 19.上記ステップ(d)が、第1のコマンドプロトコルを第2のコマンドプロ トコルに変換するステップよりなる請求項16記載の方法。 20.上記外向き要求キューからの第2の外向き要求を上記第2のバス上の第2 のターゲットエージェントに転送し、該第2の外向き要求に対する応答情報を、 上記第1の外向き要求に対する応答情報が上記内向き要求キューに転送される前 に、上記ソースエージェントに転送するステップをさらに具備した請求項16記 載の方法。 21.上記ステップ(e)が、上記ターゲットエージェントが応答データを戻す 場合に該応答データをデータバッファに入れるステップで、上記内向き要求キュ ーに該データバッファの記憶場所を指示する標識が入っているステップよりなる 請求項16記載の方法。 22.上記ステップ(c)が、上記内向き要求キュー中の遅延応答スロットが使 用可能かどうかを確認し、該内向き要求キュー中の遅延応答スロットが使用可能 な場合に遅延応答を出すステップよりなる請求項16記載の方法。 23.(a) 第1のバス及び第2のバスに接続されたバスブリッジを具備し; (b) 該第1のバスが、これに接続された第1のエージェントと該バスブリ ッジとの間でデータを転送するためのものであり; (c) 該第2のバスが、これに接続された第2のエージェントと該バスブリ ッジとの間でデータを転送するためのものであり; (d) 該バスブリッジが、 該第1のバスに接続されていて、該第1のバスからデータを受け取り 、該第1のバスにデータを乗せる第1のバスインタフェースと、 該第2のバスに接続されていて、該第2のバスからデータを受け取り 、該第2のバスにデータを乗せる第2のバスインタフェースと、 該第1のバスインタフェース及び該打2バスインタフェースに接続さ れた内向き要求キュー及び外向き要求キューと、 該内向き要求キュー及び該外向き要求キューに接続されていて、要求 を該外向き要求キューに入れるため、及び該内向き要求キューからの入力に応答 して遅延応答コマンドを該第1のバスインタフェースに出すためのデコード回路 と、 を具備したコンピュータシステム。 24.上記バスブリッジが、外向き要求キューが遅延応答を与えられるかどうか を確認するための内向きキュー割当て装置をさらに具備した請求項23記載のコ ンピュータシステム。 25.上記内向き要求キューが複数の内向きスロットを有し、上記内向きキュー 割当て装置が、該複数の内向きスロットの数、現在情報を保持する上記内向き要 求キュー中の内向きスロット数、及び現在遅延応答スロットとラベルされている 該内向き要求キュー中の内向きスロット数に基づいて、外向き要求が遅延応答ス ロットを与えられるかどうかを確認する請求項24記載のコンピュータシステム 。 26.上記バスブリッジが、上記第1のバスインタフェース及び上記第2のバス インタフェースに接続された、外向き要求が遅延されたかどうかを確認し、その 要求情報を該第2のバスインタフェースに転送し、該要求情報に応答して生成さ れた応答情報を該第2のバスインタフェースから受け取るバス制御回路をさらに 具備し、該バス制御回路が、 該外向きスロットが遅延されていない場合に該応答情報を該第1のバスインタ フェースに戻し、 該外向きスロットが遅延された場合に該応答情報を内向き要求キューへ転送す る、 請求項23記載のコンピュータシステム。 27.上記バスブリッジが、上記第2のバスインタフェースから内向き要求を受 け取り、該要求を内向き要求キューに転送するためのバスターゲット回路をさら に具備した請求項23記載のコンピュータシステム。 28.上記外向き要求キューが、上記第1のバスに接続されたエージェントによ って出された要求に対応する情報を各々保持する複数の外向きスロットを有する 請求項23記載のコンピュータシステム。 29.上記複数の外向きスロットの各スロットが、タグ部、コマンド部、アドレ ス部、及びすくなくとも1つのデータバッファを指示するデータポインタ部より なる請求項28記載の コンピュータシステム。 30.上記内向き要求キューが、上記第1のバスまたは上記第2のバスに接続さ れたエージェントによって出された要求に対応する情報を各々保持する複数の内 向きスロットを有する請求項23記載のコンピュータシステム。 31.上記複数の内向きスロットの各スロットが、コマンド部、アドレス部、及 びデータバッファを指示するすくなくとも1つのデータポインタ部よりなる請求 項30記載のコンピュータシステム。 32.上記デコード回路が、上記複数の内向きスロットの内向き各スロットに情 報が入っているかどうかに基づいて、遅延応答コマンドをCPUバスインタフェ ースに出すべきかどうかを決定し、該デコード回路が、内向きスロットに情報が 入っていない場合に遅延応答コマンドをCPUバスインタフェースに出す請求項 30記載のコンピュータシステム。 33.第1のバスと第2のバスとの間でデータを転送するための装置において: (a)該第1のバス上のソースエージェントからの第1の外向き要求を外向き 要求キューに転送するための手段と; (b)該第1の外向き要求が遅延されるかどうかを確認するための手段と; (c)該ソースエージェントに対して遅延応答を出し、該第1の外向き要求が 遅延されるとき内向き要求キューのスロットを予約するための手段と; (d)該外向き要求キューからの該第1の外向き要求を該第2のバス上のター ゲットエージェントに転送するための手段と; (e)該第1の外向き要求が遅延されない場合、該ターゲットエージェントか らの応答情報を該ソースエージェントに戻し、該第1のがキューKが遅延される 場合に該ターゲットエージェントからの該応答情報を該内向き要求キューに入れ るための手段と; を具備した装置。 34.上記転送のための手段が、上記外向き要求キューから上記第1の外向き要 求を取り出し、該第1の外向き要求を第2のバスインタフェースへ転送する手段 よりなる請求項33記載の装置。 35.上記遅延応答を出すための手段が: 該内向き要求キュー中のスロット数を確認するための手段と; 現在使用中でない該内向き要求キュー中のスロット数を確認するための手段と ; 現在遅延応答スロットとラベルされている該内向き要求キュー中のスロット数 を確認するための手段と; 使用されていない内向きスロットがあり、かつ遅延応答スロットとラベルされ た内向きSLTが所定数より少ない場合に、遅延応答を出すための手段と; よりなる請求項33記載の装置。 36.該外向き要求キューからの該第1の外向き要求を該第2のバス上のターゲ ットエージェントに転送する手段が、該第1の外向き要求を第1のコマンドプロ トコルから第2のコマンドプロトコルに変換するための手段よりなる請求項33 記載の装置。 37.上記外向き要求キューからの第2の外向き要求を上記第2のバス上の第2 のターゲットエージェントに転送し、該第2の外向き要求に対する応答情報を、 上記第1の外向き要求に対する応答情報が上記内向き要求キューに転送される前 に、上記ソースエージェントに転送するための手段をさらに具備した請求項33 記載の装置。 38.上記ターゲットエージェントからの応答情報を上記ソースエージェントに 戻すための上記手段が、上記ターゲットエージェントが応答データを戻す場合に 該応答データをデータバッファに入れるための手段で、上記内向き要求キューに 該データバッファの記憶場所を指示する標識が入っている手段よりなる請求項3 3記載の装置。 39.遅延応答を出すための上記手段が、上記内向き要求キュー中の遅延応答ス ロットが使用可能かどうかを確認し、該内向き要求キュー中の遅延応答スロット が使用可能な場合に遅延応答を出すための手段よりなる請求項33記載の装置。
JP53036495A 1994-05-20 1995-05-16 バスブリッジにおけるトランザクション順序を維持し、遅延応答をサポートする方法及びそのための装置 Expired - Lifetime JP3275051B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US247,026 1988-09-20
US08/247,026 US5535340A (en) 1994-05-20 1994-05-20 Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
US08/247,026 1994-05-20
PCT/US1995/006089 WO1995032474A1 (en) 1994-05-20 1995-05-16 Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge

Publications (2)

Publication Number Publication Date
JPH10504665A true JPH10504665A (ja) 1998-05-06
JP3275051B2 JP3275051B2 (ja) 2002-04-15

Family

ID=22933236

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53036495A Expired - Lifetime JP3275051B2 (ja) 1994-05-20 1995-05-16 バスブリッジにおけるトランザクション順序を維持し、遅延応答をサポートする方法及びそのための装置

Country Status (8)

Country Link
US (1) US5535340A (ja)
EP (1) EP0760135B1 (ja)
JP (1) JP3275051B2 (ja)
AU (1) AU2589895A (ja)
CA (1) CA2186598C (ja)
DE (1) DE69519926T2 (ja)
TW (1) TW279943B (ja)
WO (1) WO1995032474A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277160A (ja) * 2009-05-26 2010-12-09 Fujitsu Semiconductor Ltd バス制御システムおよび半導体集積回路

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615343A (en) 1993-06-30 1997-03-25 Intel Corporation Method and apparatus for performing deferred transactions
US6212589B1 (en) * 1995-01-27 2001-04-03 Intel Corporation System resource arbitration mechanism for a host bridge
US5832241A (en) * 1995-02-23 1998-11-03 Intel Corporation Data consistency across a bus transactions that impose ordering constraints
US5640520A (en) * 1995-05-01 1997-06-17 Intel Corporation Mechanism for supporting out-of-order service of bus requests with in-order only requesters devices
JPH08314854A (ja) * 1995-05-17 1996-11-29 Hitachi Ltd データ転送システムおよびこれに関連する装置
US5778434A (en) 1995-06-07 1998-07-07 Seiko Epson Corporation System and method for processing multiple requests and out of order returns
US6104876A (en) * 1995-06-07 2000-08-15 Cirrus Logic, Inc. PCI bus master retry fixup
US5812799A (en) * 1995-06-07 1998-09-22 Microunity Systems Engineering, Inc. Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing
US5682512A (en) * 1995-06-30 1997-10-28 Intel Corporation Use of deferred bus access for address translation in a shared memory clustered computer system
US5761444A (en) * 1995-09-05 1998-06-02 Intel Corporation Method and apparatus for dynamically deferring transactions
US5696910A (en) * 1995-09-26 1997-12-09 Intel Corporation Method and apparatus for tracking transactions in a pipelined bus
US6108735A (en) * 1995-09-29 2000-08-22 Intel Corporation Method and apparatus for responding to unclaimed bus transactions
US5859988A (en) * 1995-09-29 1999-01-12 Intel Corporation Triple-port bus bridge
US5771359A (en) * 1995-10-13 1998-06-23 Compaq Computer Corporation Bridge having a data buffer for each bus master
US5632021A (en) * 1995-10-25 1997-05-20 Cisco Systems Inc. Computer system with cascaded peripheral component interconnect (PCI) buses
US5682509A (en) * 1995-12-13 1997-10-28 Ast Research, Inc. Bus interface to a RAID architecture
US5850530A (en) * 1995-12-18 1998-12-15 International Business Machines Corporation Method and apparatus for improving bus efficiency by enabling arbitration based upon availability of completion data
US5764929A (en) * 1995-12-18 1998-06-09 International Business Machines Corporation Method and apparatus for improving bus bandwidth by reducing redundant access attempts
US5712986A (en) * 1995-12-19 1998-01-27 Ncr Corporation Asynchronous PCI-to-PCI Bridge
US5911052A (en) * 1996-07-01 1999-06-08 Sun Microsystems, Inc. Split transaction snooping bus protocol
US6179489B1 (en) 1997-04-04 2001-01-30 Texas Instruments Incorporated Devices, methods, systems and software products for coordination of computer main microprocessor and second microprocessor coupled thereto
US5987590A (en) * 1996-04-02 1999-11-16 Texas Instruments Incorporated PC circuits, systems and methods
US5802055A (en) * 1996-04-22 1998-09-01 Apple Computer, Inc. Method and apparatus for dynamic buffer allocation in a bus bridge for pipelined reads
US6026460A (en) * 1996-05-10 2000-02-15 Intel Corporation Method and apparatus for sequencing system bus grants and disabling a posting buffer in a bus bridge to improve bus efficiency
US5850557A (en) 1996-05-10 1998-12-15 Intel Corporation Method and apparatus for reducing bus bridge thrashing by temporarily masking agent requests to allow conflicting requests to be completed
US6052513A (en) * 1996-06-05 2000-04-18 Compaq Computer Corporation Multi-threaded bus master
US6075929A (en) * 1996-06-05 2000-06-13 Compaq Computer Corporation Prefetching data in response to a read transaction for which the requesting device relinquishes control of the data bus while awaiting data requested in the transaction
US6035362A (en) * 1996-06-05 2000-03-07 Goodrum; Alan L. Storing data associated with one request while continuing to store data associated with a previous request from the same device
US6108741A (en) * 1996-06-05 2000-08-22 Maclaren; John M. Ordering transactions
US5903906A (en) * 1996-06-05 1999-05-11 Compaq Computer Corporation Receiving a write request that allows less than one cache line of data to be written and issuing a subsequent write request that requires at least one cache line of data to be written
US5987539A (en) * 1996-06-05 1999-11-16 Compaq Computer Corporation Method and apparatus for flushing a bridge device read buffer
US5872939A (en) * 1996-06-05 1999-02-16 Compaq Computer Corporation Bus arbitration
US6021480A (en) * 1996-06-05 2000-02-01 Compaq Computer Corporation Aligning a memory read request with a cache line boundary when the request is for data beginning at a location in the middle of the cache line
US5872941A (en) * 1996-06-05 1999-02-16 Compaq Computer Corp. Providing data from a bridge to a requesting device while the bridge is receiving the data
US6055590A (en) * 1996-06-05 2000-04-25 Compaq Computer Corporation Bridge circuit comprising independent transaction buffers with control logic adapted to store overflow data in second buffer when transaction size exceeds the first buffer size
US6092141A (en) * 1996-09-26 2000-07-18 Vlsi Technology, Inc. Selective data read-ahead in bus-to-bus bridge architecture
US6055598A (en) * 1996-09-26 2000-04-25 Vlsi Technology, Inc. Arrangement and method for allowing sequence-independent command responses across a computer bus bridge
US5953538A (en) * 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US5905876A (en) * 1996-12-16 1999-05-18 Intel Corporation Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system
KR100243271B1 (ko) * 1996-12-20 2000-02-01 윤종용 광 디스크 데이타 재생 시스템의 명령 대기 장치 및 방법
US5870567A (en) * 1996-12-31 1999-02-09 Compaq Computer Corporation Delayed transaction protocol for computer system bus
US6138192A (en) * 1996-12-31 2000-10-24 Compaq Computer Corporation Delivering a request to write or read data before delivering an earlier write request
US6105119A (en) * 1997-04-04 2000-08-15 Texas Instruments Incorporated Data transfer circuitry, DSP wrapper circuitry and improved processor devices, methods and systems
US5909559A (en) * 1997-04-04 1999-06-01 Texas Instruments Incorporated Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width
US6249363B1 (en) * 1997-07-23 2001-06-19 Hitachi, Ltd. Optical communication method, optical linking device and optical communication system
US6442632B1 (en) 1997-09-05 2002-08-27 Intel Corporation System resource arbitration mechanism for a host bridge
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
US5987555A (en) * 1997-12-22 1999-11-16 Compaq Computer Corporation Dynamic delayed transaction discard counter in a bus bridge of a computer system
US6195722B1 (en) * 1998-01-26 2001-02-27 Intel Corporation Method and apparatus for deferring transactions on a host bus having a third party agent
US6073198A (en) * 1998-03-31 2000-06-06 Micron Electronics, Inc. System for peer-to-peer mastering over a computer bus
US6163815A (en) * 1998-05-27 2000-12-19 International Business Machines Corporation Dynamic disablement of a transaction ordering in response to an error
US6434639B1 (en) 1998-11-13 2002-08-13 Intel Corporation System for combining requests associated with one or more memory locations that are collectively associated with a single cache line to furnish a single memory operation
US6202112B1 (en) * 1998-12-03 2001-03-13 Intel Corporation Arbitration methods to avoid deadlock and livelock when performing transactions across a bridge
US6381667B1 (en) * 1999-07-13 2002-04-30 Micron Technology, Inc. Method for supporting multiple delayed read transactions between computer buses
US6385686B1 (en) * 1999-07-13 2002-05-07 Micron Technology, Inc. Apparatus for supporting multiple delayed read transactions between computer buses
US6801971B1 (en) * 1999-09-10 2004-10-05 Agere Systems Inc. Method and system for shared bus access
US6473834B1 (en) * 1999-12-22 2002-10-29 Unisys Method and apparatus for prevent stalling of cache reads during return of multiple data words
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
US6691200B1 (en) 2001-05-01 2004-02-10 Pericom Semiconductor Corp. Multi-port PCI-to-PCI bridge with combined address FIFOs but separate data FIFOs for concurrent transactions
US6832279B1 (en) * 2001-05-17 2004-12-14 Cisco Systems, Inc. Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node
US20020199032A1 (en) * 2001-06-12 2002-12-26 Verano Deferred response component manager
US6877060B2 (en) * 2001-08-20 2005-04-05 Intel Corporation Dynamic delayed transaction buffer configuration based on bus frequency
US6766386B2 (en) * 2001-08-28 2004-07-20 Broadcom Corporation Method and interface for improved efficiency in performing bus-to-bus read data transfers
US7080187B2 (en) * 2001-12-20 2006-07-18 Intel Corporation Bug segment decoder
US6801972B2 (en) * 2002-02-15 2004-10-05 Lsi Logic Corporation Interface shutdown mode for a data bus slave
US6725306B2 (en) * 2002-02-27 2004-04-20 Lsi Logic Corporation DEBUG mode for a data bus
US7174401B2 (en) * 2002-02-28 2007-02-06 Lsi Logic Corporation Look ahead split release for a data bus
US6877048B2 (en) * 2002-03-12 2005-04-05 International Business Machines Corporation Dynamic memory allocation between inbound and outbound buffers in a protocol handler
US6948019B2 (en) * 2002-04-30 2005-09-20 Lsi Logic Corporation Apparatus for arbitrating non-queued split master devices on a data bus
WO2006045216A1 (en) * 2004-10-28 2006-05-04 Magima Digital Information Co., Ltd. An arbitrator and its arbitration method
US7693145B2 (en) * 2005-02-28 2010-04-06 Hewlett-Packard Development Company, L.P. Method and apparatus for direct reception of inbound data
US20060193318A1 (en) * 2005-02-28 2006-08-31 Sriram Narasimhan Method and apparatus for processing inbound and outbound quanta of data
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US20080270658A1 (en) * 2007-04-27 2008-10-30 Matsushita Electric Industrial Co., Ltd. Processor system, bus controlling method, and semiconductor device
US8489792B2 (en) * 2010-03-12 2013-07-16 Lsi Corporation Transaction performance monitoring in a processor bus bridge
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US8949500B2 (en) 2011-08-08 2015-02-03 Lsi Corporation Non-blocking processor bus bridge for network processors or the like
EP2309396A3 (en) * 2009-06-21 2011-12-21 Ablaze Wireless, Inc. Hardware assisted inter-processor communication
US10877669B1 (en) * 2011-06-30 2020-12-29 Amazon Technologies, Inc. System and method for providing a committed throughput level in a data store
US8490107B2 (en) 2011-08-08 2013-07-16 Arm Limited Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels
US9229896B2 (en) * 2012-12-21 2016-01-05 Apple Inc. Systems and methods for maintaining an order of read and write transactions in a computing system
US11074007B2 (en) 2018-08-08 2021-07-27 Micron Technology, Inc. Optimize information requests to a memory system
US10969994B2 (en) * 2018-08-08 2021-04-06 Micron Technology, Inc. Throttle response signals from a memory system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5124981A (en) * 1990-03-09 1992-06-23 International Business Machines Corporation Access control method for dqdb network
US5327570A (en) * 1991-07-22 1994-07-05 International Business Machines Corporation Multiprocessor system having local write cache within each data processor node
US5369748A (en) * 1991-08-23 1994-11-29 Nexgen Microsystems Bus arbitration in a dual-bus architecture where one bus has relatively high latency
US5333276A (en) * 1991-12-27 1994-07-26 Intel Corporation Method and apparatus for priority selection of commands

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277160A (ja) * 2009-05-26 2010-12-09 Fujitsu Semiconductor Ltd バス制御システムおよび半導体集積回路

Also Published As

Publication number Publication date
JP3275051B2 (ja) 2002-04-15
AU2589895A (en) 1995-12-18
DE69519926D1 (de) 2001-02-22
EP0760135A1 (en) 1997-03-05
EP0760135A4 (en) 1997-09-24
DE69519926T2 (de) 2001-08-02
CA2186598C (en) 2002-07-30
WO1995032474A1 (en) 1995-11-30
CA2186598A1 (en) 1995-11-30
US5535340A (en) 1996-07-09
TW279943B (ja) 1996-07-01
EP0760135B1 (en) 2001-01-17

Similar Documents

Publication Publication Date Title
JPH10504665A (ja) バスブリッジにおけるトランザクション順序を維持し、遅延応答をサポートする方法及びそのための装置
KR100253753B1 (ko) 지연 트랜잭션을 실행하기 위한 장치 및 방법
US6330630B1 (en) Computer system having improved data transfer across a bus bridge
US5870567A (en) Delayed transaction protocol for computer system bus
US5802055A (en) Method and apparatus for dynamic buffer allocation in a bus bridge for pipelined reads
US6425021B1 (en) System for transferring data packets of different context utilizing single interface and concurrently processing data packets of different contexts
US6629179B1 (en) Message signaled interrupt generating device and method
EP0760136B1 (en) Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US6170030B1 (en) Method and apparatus for restreaming data that has been queued in a bus bridging device
US5919254A (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system
US5765196A (en) System and method for servicing copyback requests in a multiprocessor system with a shared memory
US6205506B1 (en) Bus interface unit having multipurpose transaction buffer
US8601191B2 (en) Bus system and deadlock avoidance circuit thereof
US5941960A (en) Host initiated PCI burst writes utilizing posted write buffers
US5944805A (en) System and method for transmitting data upon an address portion of a computer system bus during periods of maximum utilization of a data portion of the bus
EP1288785B1 (en) Method and interface for improved efficiency in performing bus-to-bus read data transfers
JPH10320282A (ja) 仮想キャッシュ・コントロール方法及び装置
EP1421503B1 (en) Mechanism for preserving producer-consumer ordering across an unordered interface
US6714994B1 (en) Host bridge translating non-coherent packets from non-coherent link to coherent packets on conherent link and vice versa
US7752355B2 (en) Asynchronous packet based dual port link list header and data credit management structure
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
JP2004318628A (ja) 演算処理装置
US20040103249A1 (en) Memory access over a shared bus
US7529857B2 (en) Data processing apparatus and data transfer control method
US7284075B2 (en) Inbound packet placement in host memory

Legal Events

Date Code Title Description
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

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

Free format text: PAYMENT UNTIL: 20090208

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090208

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100208

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100208

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110208

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120208

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120208

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130208

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20140208

Year of fee payment: 12

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term