(57)【特許請求の範囲】
【請求項１】
第１バスに接続されているイニシエータと第２バスに接続されているターゲットとの間でトランザクションを通信する方法において、
（ａ）バス・リピータが、前記第１バス上に提供されているイニシエータ制御信号を検出してトランザクションを開始するステップであって、前記イニシエータ制御信号がフレーム指示およびイニシエータ・レディ指示を含んでいる、トランザクション開始ステップと、
（ｂ）前記バス・リピータが、前記第２バス上で前記トランザクションが完了するまで、前記第２バスに前記イニシエータ制御信号を中継する一方、前記トランザクションがバースト・ライト・トランザクションである場合、ターゲット・レディ指示が前記第１バスに中継されるまで、前記イニシエータ・レディ指示を前記第２バスに中継させないステップと、
（ｃ）前記バス・リピータが、前記中継されたイニシエータ制御信号に応答して、前記第２バス上に提供されたターゲット制御信号を検出するステップであって、前記ターゲット制御信号がターゲット・レディ指示を含む、ステップと、
（ｄ）前記バス・リピータが、前記トランザクションが前記第１バス上で完了するまで、前記ターゲット制御信号を前記第１バスに中継するステップと
からなることを特徴とする方法。
【請求項２】
第１バスに接続されているイニシエータと第２バスに接続されているターゲットとの間でトランザクションを通信する方法において、
（ａ）前記バス・リピータが、前記第１バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するステップであって、前記イニシエータ制御信号がフレーム指示とイニシエータ・レディ指示とを含む、ステップと、
（ｂ）前記バス・リピータが、前記トランザクションが前記第２バス上で完了するまで、前記イニシエータ制御信号を前記第２バスに中継するステップと、
（ｃ）前記バス・リピータが、前記トランザクションがバースト・リード・トランザクションである場合、該トランザクションが前記第２バス上で完了するまで、前記イニシエータ・レディ指示を前記第２バス上で保持するステップと、
（ｄ）前記バス・リピータが、前記中継されたイニシエータ指示に応答して前記第２バス上で与えられたターゲット制御信号を検出するステップであって、前記ターゲット制御信号がターゲット・レディ指示を含む、ステップと、
（ｅ）前記バス・リピータが、前記トランザクションが前記第１バス上で完了するまで、前記ターゲット制御信号を前記第１バスに中継するステップと
からなることを特徴とする方法。
【請求項３】
第１バスに接続されているイニシエータと第２バスに接続されているターゲットとの間でトランザクションを通信する方法であって、前記バスに対するアクセスが、バス・リピータのアービタによって与えられる許可指示によって示されるよう構成されている、方法において、
（ａ）前記バス・リピータが、前記第１バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するステップであって、前記イニシエータ制御信号がフレーム指示とイニシエータ・レディ指示とを含む、ステップと、
（ｂ）前記バス・リピータが、前記トランザクションが前記第２バス上で完了するまで、前記イニシエータ制御信号を前記第２バスに中継し、かつ、前記トランザクションがバースト・ライト・トランザクションである場合、前記ターゲット・レディ指示が第１バスに中継されるまで、前記イニシエータ・レディ指示を中継させないステップと、
（ｃ）前記バス・リピータが、前記中継されたイニシエータ制御信号に応答して、前記第２バス上に与えられるターゲット制御信号を検出するステップであって、前記ターゲット制御信号がターゲット・レディ指示と装置選択指示とを含む、ステップと、
（ｄ）前記バス・リピータが、前記トランザクションが前記第１バス上で完了するまで、前記ターゲット制御信号を前記第１バスに中継するステップと、
（ｅ）前記バス・リピータが、前記トランザクションが両バス上で完了するまで、前記アービタにいずれの許可指示も与えさせないステップと
からなることを特徴とする方法。
【請求項４】
第１バスを第２バスに接続するバス・リピータであって、前記第１バスにはイニシエータが接続され、前記第２バスにはターゲットが接続されている、バス・リピータにおいて、
前記第１バスから前記第２バスへの信号を検出し中継する第１バス・ユニットと、
前記第２バスから前記第１バスへの信号を検出して中継する第２バス・ユニットと
からなり、
前記第１バス・ユニットは、前記第１バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するように動作し、前記イニシエータ制御信号はフレーム指示とイニシエータ・レディ指示とを含み、
前記第１バス・ユニットは、前記第２バス上で前記トランザクションが完了するまで、前記第２バスに前記イニシエータ制御信号を中継する一方、前記トランザクションがバースト・ライト・トランザクションである場合、ターゲット・レディ指示が前記第１バスに中継されるまで、前記イニシエータ・レディ指示を前記第２バスへ中継させないように動作し、
前記第２バス・ユニットは、前記中継されたイニシエータ制御信号に応答して、前記第２バス上に与えられたターゲット制御信号を検出するように動作し、前記ターゲット制御信号はターゲット・レディ指示を含み、
前記第２バス・ユニットは、前記トランザクションが前記第１バス上で完了するまで、前記ターゲット制御信号を前記第１バスに中継するように動作する
ことを特徴とするバス・リピータ。
【請求項５】
第１バスを第２バスに接続するバス・リピータであって、前記第１バスにはイニシエータが接続され、前記第２バスにはターゲットが接続されている、バス・リピータにおいて、
前記第１バスから前記第２バスへの信号を検出し中継する第１バス・ユニットと、
前記第２バスから前記第１バスへの信号を検出して中継する第２バス・ユニットと
を含み、
前記第１バス・ユニットは、前記第１バス上に与えられたイニシエータ制御信号のアサートを検出してトランザクションを開始するように動作し、前記イニシエータ制御信号がフレーム指示とイニシエータ・レディ指示とを含み、
前記第１バス・ユニットは、前記トランザクションが前記第２バス上で完了するまで、前記イニシエータ制御信号を前記第２バスに中継し、一方、前記トランザクションがバースト・リード・トランザクションである場合、該トランザクションが前記第２バス上で完了するまで、前記イニシエータ・レディ指示を前記第２バス上で保持するように動作し、
前記第２バス・ユニットは、前記中継されたイニシエータ制御信号に応答して、前記第２バス上でターゲット制御信号を検出するように動作し、前記ターゲット制御信号がターゲット・レディ指示を含み、
前記第２バス・ユニットは、前記トランザクションが前記第１バス上で完了するまで、前記ターゲット制御信号を前記第１バスに中継するように動作する
ことを特徴とするバス・リピータ。
【請求項６】
第１バスを第２バスに接続するバス・リピータであって、前記第１バスにはイニシエータが接続され、前記第２バスにはターゲットが接続されており、前記バスに対するアクセスが、アービタによって与えられる許可指示によって示される、バス・リピータにおいて、
前記第１バスから前記第２バスへの信号を検出し中継する第１バス・ユニットと、
前記第２バスから第１バスへの信号を検出し中継する第２バス・ユニットと
を備え、
前記第１バス・ユニットは、前記第１バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するように動作し、前記イニシエータ制御信号がフレーム指示とイニシエータ・レディ指示とを含み、
前記第１バス・ユニットは、前記トランザクションが前記第２バス上で完了するまで、前記イニシエータ制御信号を前記第２バスに中継するように動作し、
前記第１バス・ユニットは、前記トランザクションがバースト・ライト・トランザクションである場合、前記ターゲット・レディ指示が第１バスに中継されるまで、前記イニシエータ・レディ指示を中継させないように動作し、
前記第１バス・ユニットは、前記トランザクションが両バス上で完了するまで、前記アービタにあらゆる許可指示を与えさせないように動作し、
前記第２バス・ユニットは、前記中継されたイニシエータ制御信号に応答して前記第２バス上に与えられるターゲット制御信号を検出するように動作し、前記ターゲット制御信号がターゲット・レディ指示を含み、
前記第２バス・ユニットは、前記トランザクションが前記第１バス上で完了するまで、前記ターゲット制御信号を前記第１バスに中継するように動作する
ことを特徴とするバス・リピータ。
【請求項７】
コンピュータ・システムにおいて、
イニシエータが接続されている第１バスと、
ターゲットが接続されている第２バスと、
前記第１及び第２バスの一方に接続されているプロセッサと、
前記第１及び第２バスの一方に接続されているハード・ディスク・ドライブ・システムと、
前記第１バスを前記第２バスに接続するリピータあって、前記第１バスから前記第２バスへの信号を検出し中継する第１バス・ユニットと、前記第２バスから関第１バスへの信号を検出し中継する第２バス・ユニットとを含むリピータと
からなり、
前記第１バス・ユニットは前記第１バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するように動作し、前記イニシエータ制御信号はフレーム指示とイニシエータ・レディ指示とを含み、
前記第１バス・ユニットは、前記第２バス上で前記トランザクションが完了するまで、前記第２バスに前記イニシエータ制御信号を中継する一方、前記トランザクションがバースト・ライト・トランザクションである場合、ターゲット・レディ指示が前記第１バスに中継されるまで、前記イニシエータ・レディ指示を中継させないように動作し、
前記第２バス・ユニットは、前記中継されたイニシエータ制御信号に応答して、前記第２バス上に与えられたターゲット制御信号を検出するように動作し、前記ターゲット制御信号はターゲット・レディ指示を含み、
前記第２バス・ユニットは、前記トランザクションが前記第１バス上で完了するまで、前記ターゲット制御信号を前記第１バスに中継するように動作する
ことを特徴とするコンピュータ・システム。
【請求項８】
コンピュータ・システムにおいて、
イニシエータが接続されている第１バスと、
ターゲットが接続されている第２バスと、
前記第１及び第２バスの一方に接続されているプロセッサと、
前記第１及び第２バスの一方に接続されているハード・ディスク・ドライブ・システムと、
前記第１バスを前記第２バスに接続するリピータであって、前記第１バスから前記第２バスへの信号を検出し中継する第１バス・ユニットと、前記第２バスから前記第１バスへの信号を検出し中継する第２バス・ユニットを含むリピータと
からなり、
前記第１バス・ユニットは、前記第１バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するように動作可能であり、前記イニシエータ制御信号がフレーム指示とイニシエータ・レディ指示とを含み、
前記第１バス・ユニットは、前記トランザクションが前記第２バス上で完了するまで、前記イニシエータ制御信号を前記第２バスに中継し、前記トランザクションがバースト・リード・トランザクションである場合、該トランザクションが前記第２バス上で完了するまで、前記イニシエータ・レディ指示を前記第２バス上で保持するように動作し、
前記第２バス・ユニットは、前記中継されたイニシエータ制御信号に応答して、前記第２バス上に与えられたターゲット制御信号を検出するように動作し、前記ターゲット制御信号がターゲット・レディ指示を含み、
前記第２バス・ユニットは、前記トランザクションが前記第１バス上で完了するまで、前記ターゲット制御信号を前記第１バスに中継するように動作する
ことを特徴とするコンピュータ・システム。
【請求項９】
コンピュータ・システムにおいて、
イニシエータが接続されている第１バスと、
ターゲットが接続されている第２バスと、
前記第１及び第２バスの一方に接続されているプロセッサと、
前記第１及び第２バスの一方に接続されているハード・ディスク・ドライブ・システムと、
前記第１及び第２バスへのアクセスを許可するアービタと、
前記第１バスを前記第２バスに接続するリピータであって、前記第１バスから前記第２バスへの信号を検出し中継する第１バス・ユニットと、前記第２バスから第１バスへの信号を検出し中継する第２バス・ユニットとを含むリピータと
からなり、
前記第１バス・ユニットは、前記第１バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するように動作し、前記イニシエータ制御信号がフレーム指示とイニシエータ・レディ指示とを含み、
前記第１バス・ユニットは、前記トランザクションが前記第２バス上で完了するまで、前記イニシエータ制御信号を前記第２バスに中継するように動作し、
前記第１バス・ユニットは、前記トランザクションがバースト・ライト・トランザクションである場合、前記ターゲット・レディ指示が第１バスに中継されるまで、前記イニシエータ・レディ指示が中継されないように動作し、
前記第１バス・ユニットは、前記トランザクションが両バス上で完了するまで、前記アービタにあらゆる許可指示を与えさせないように動作し、
前記第２バス・ユニットは、前記中継されたイニシエータ制御信号に応答して前記第２バス上に与えられるターゲット制御信号を検出するように動作し、前記ターゲット制御信号がターゲット・レディ指示を含み、
前記第２バス・ユニットは、前記トランザクションが前記第１バス上で完了するまで、前記ターゲット制御信号を前記第１バスに中継するように動作する
ことを特徴とするコンピュータ・システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２系統のＰＣＩバス同士をブリッジする装置および方法に関し、特にＰＣＩ−ＰＣＩ間リピータ（中継器）に関するものである。
【０００２】
【従来の技術】
パーソナル・コンピュータ（ＰＣ）の性能は、プロセッサの速度、メモリおよび入出力（Ｉ／Ｏ）サブシステムのような、多数の要因によって左右される。１９９２年の周辺要素相互接続（ＰＣＩ：peripheral component interconnect）手法の導入により、Ｉ／Ｏサブシステムには高性能バスが与えられ、該バスを介して動作することとなった。
【０００３】
元来、ＰＣＩバスは、業界標準アーキテクチャ（ＩＳＡ：industry standard architecture）バスまたは拡張業界標準アーキテクチャ（ＥＩＳＡ：extended industry standard architecture）のような既存の拡張バスに取って代わることを意図したものではなかった。しかしながら、コンピュータ業界からの圧力および競合するバスにより、ＣＰＩバスはバス拡張の目的に利用可能となった。このため、コンピュータ・システムは、マザーボード上にＰＣＩ装置を実装したり、アド・イン・ボード(add-in board)に対応することも可能となっている。
【０００４】
ＰＣＩバスは、メザニン・バス(mezzanine bus)またはローカル・バスと呼ばれているが、その理由は、通常、ＰＣＩバスは非常に性能が高いプロセッサ・バスと性能が低いＩＳＡバスまたはＥＩＳＡバスとの間に位置するからである。一方のコンピュータ・バスを他方のコンピュータ・バスに接続するロジックにおいて、一方のバス上のエージェント(agent)が他方のバス上のエージェントにアクセスできるようにするものは、ブリッジとして知られている。ＰＣＩの世界(vernacular)では、エージェントとは、コンピュータ・バス上で動作するいずれかのエンティティまたは装置のことである。エージェントは、バス・マスタまたはバス・スレーブのいずれかとなることができる。バス・マスタ即ちイニシエータ(initiator)はバス・トランザクションを開始し、バス・スレーブ即ちターゲット(target)は、バス・マスタによって開始されたバス・トランザクションに応答する。多くの場合、イニシエータは一方のバス上にあり、ターゲットは他方のバス上にある。
【０００５】
ブリッジは、コンピュータ・システムのメモリ空間またはＩ／Ｏアドレス空間のいずれの位置にマップされているＰＣＩ装置にも直接プロセッサがアクセス可能な、レイテンシの低い経路を提供する。ブリッジの主要な機能は、一方のバスのアドレス空間を他方のバスのアドレス空間にマップすることである。ＰＣＩバスは、３種類の物理アドレス空間、即ち、メモリ空間、Ｉ／Ｏ空間、およびコンフィギュレーション空間を定義する。ＰＣＩバス上でのアドレス・デコーディングは分散される。即ち、ＰＣＩバスに結合されている各装置がアドレス・デコーディングを行う。ＰＣＩの仕様は、２つの形式のアドレス・デコーディング、即ち、肯定的(positive)デコーディングおよび減算的(subtractive)デコーディングを定義する。肯定的デコーディングは、各ＰＣＩ装置が、当該装置が割り当てられているアドレス範囲（群）においてアクセスを探すので高速性に優れている。減算的デコーディング装置は、他に肯定的にデコードするエージェントがない全てのアクセスを受け入れるので、減算的デコーディングを実施可能な装置は、ＰＣＩバス上で１つのみである。
【０００６】
各ＰＣＩ転送は、アドレス・フェーズから開始され、この間にアドレス／データ・バス(AD[31:0])がアドレスを転送し、コマンド／バイト・イネーブル(C/BE_[3:0])バスがコマンド・コードを転送する。このフェーズに続いて１回以上のデータ・フェーズが行われ、この間に同じアドレス／データ・バスがデータを転送し、コマンド／バイト・イネーブル・バスはバイト・イネーブル信号を転送する。バースト・サイクルでは、単一のアドレス・フェーズに続いて多数のデータ・フェーズを行うことができる。ＰＣＩの用語では、要求元のＰＣＩ装置はイニシエータとして知られており、アドレス指定されたＰＣＩ装置はターゲットとして知られている。あらゆる転送は、フレーム(FRAME_)信号のアクティブ化から始まる。
【０００７】
装置選択(DEVSEL#)信号がターゲットによって駆動されると、当該ターゲットがトランザクションに応答していることを示す。ある装置が開始アドレスを有する場合、その装置がアドレス／データ・ラインをデコードし、装置選択(DEVSEL#)信号をアサートする。DEVSEL#は、低速タイミング、中速タイミング、または高速タイミングで駆動することができる。低速タイミング・パラメータ内ではDEVSEL#をアサートするエージェントがない場合、減算的デコーディングを実行するエージェントは、DEVSEL#を要求しアサートする。"#"または"_"はアクティブ・ロー信号を意味する。ＰＣＩバス、特にＰＣＩアドレシングについての更なる詳細は、オレゴン州ヒルスボローのPCI Special Interest Groupによって発行された、PCI Local Bus Specification, Production Version, Revision 2.1 （１９９５年６月１日）に示されている。この文献は、この言及により本願にも含まれるものとする。
【０００８】
ターゲットは、アクティブのターゲット・レディ(TRDY_)信号によって、それが準備できていることを示す。ライト・アクセス中のアクティブなTRDY_は、ターゲットがアドレス／データ・バスからデータを取り込み可能であることを示す。リード・アクセス中のアクティブなTRDY_は、要求されたデータがアドレス／データ・バス上で入手可能であることを示す。
【０００９】
加えて、イニシエータも、アクティブなイニシエータ・レディ(IRDY_)信号によって、準備ができていることを、ＰＣＩブリッジに示さなければならない。ライト・アクセス中のアクティブなIRDY_信号は、イニシエータがライト・データをアドレス／データ・バスに送ったことを示す。リード・アクセスでは、アクティブなIRDY_は、アドレス／データ・バスからデータを受け入れることを示す。イニシエータは、FRAME_信号を非アクティブ化することによって、転送を終了するかあるいは中断する。また、ターゲットも、停止(STOP_)信号のアクティブ化によって、転送を停止することができる。
【００１０】
定義にあるように、ＰＣＩバスは１０個の負荷（ロード）に制限されている。マザーボード上に組み込まれているＰＣＩ装置は、本質的に１つの負荷であり、ＰＣＩスロットは２つの負荷として見なされる。したがって、プロセッサ／ＰＣＩブリッジ、３つのＰＣＩスロット、およびＰＣＩ／ＩＳＡブリッジを備えているコンピュータ・システムは、２つのマザーボード装置に制限される。多くの場合、２つのマザーボード装置では余りに少ないので、負荷の制限は１０を超えることが望ましい。
【００１１】
先に引用したＰＣＩ仕様に記載されている負荷の数を拡張する１つ方法は、多数のＰＣＩバスを用いることである。多数のＰＣＩバスを用いれば、１つのＰＣＩバスに直接接続可能な装置よりも多数の装置に対応可能となる。多数のＰＣＩバスを組織化するには、互いに対等とするか、あるいは階層的にする、という２種類の方法がある。対等なバスは、プロセッサ・バス上に多数のブリッジを必要とし、負荷配分(loading)に影響を与える可能性がある。階層的構造は、Ｉ／ＯパターンがＰＣＩ装置毎となる傾向がある場合に有利である。殆どのＩ／Ｏトラフィックがメモリに入り、そして出る場合、対等バスは一層効果的となる。しかしながら、いずれのバス構成にしても、ブリッジを起動時に構成し、アドレスが指定範囲に該当する場合にのみ、それらの一次バス上のアクセスに応答するようにしなければならない。更に、ブリッジはバスを２つの論理バスに分離することにより、構成の一層の複雑化を招いている。
【００１２】
各ブリッジはコンフィギュレーション空間によってプログラム可能なアドレス・レジスタを含むので、これらのレジスタによって指定された範囲にアドレスが該当する場合にのみ、ブリッジはその一次バス上のアクセスに応答する。その他の場合、アクセスは減算的デコード・エージェントによって要求される。ＰＣＩの仕様では、１組のアドレス範囲応答レジスタのみがあればよいが、多数のバスが設けられた場合、アドレスの複雑性が高まるので、多数の組のレジスタが必要となる。通常、アドレス範囲応答レジスタは、二次バスによって要求されるメモリ空間の代わりに、一次バスによって使用されないアドレスに対応するようにプログラムされている。したがって、ブリッジの二次側は、アドレス応答範囲レジスタによって指定された範囲に該当するものを除いて、全てのメモリ・アクセスに応答する。二次バス上で開始された全てのトランザクションの内、プログラムされた範囲外のものは、一次バス上で応答される。アドレス・デコーディングが適正に行われるように、ブリッジのアドレス応答範囲レジスタを維持するのは、システム・ソフトウエアの役割である。
【００１３】
【発明が解決しようとする課題】
アドレス範囲レジスタの構成は、装置のホット・プラグ（電源供給状態で周辺装置等を接続する）を行えるようにした場合、一層複雑となる。ＰＣカードバス・カードのようなホット・プラグ可能な装置は、かかるホット・プラグ可能な装置の挿入または取り外しによってアドレス範囲が変化するので、問題を生じる。したがって、このレベルの複雑性をなくすと共に、十分な機能性および拡張性のために多数のＰＣＩ負荷を同時に得られるようにすることが望ましい。
【００１４】
トランスペアレント（透過性）ブリッジ(transparent bridge)は、ブリッジをソフトウエアが見える(visible)ようにすることによって、コンフィギュレーションの問題の解決を図ってきた。しかしながら、かかるブリッジの性能は、多くの場合、必要性を満たしていない。最上位のＰＣＩバス速度で一次バス上で実行されるサイクルは、適正なＰＣＩタイミング規則に従う場合、二次バス上で完了するよりも３倍長い時間がかかる。したがって、透過性ブリッジの高性能化が望まれている。
【００１５】
【課題を解決するための手段】
本発明のコンピュータ・システムは、ソフトウエアに大幅な変更を行う必要なく、ＰＣＩバス上の容量性負荷の数を増加させるＰＣＩブリッジ即ちリピータを含む。このＰＣＩリピータは、ＰＣＩバスの一次部分をＰＣＩバスの二次的部分に接続する。これらの部分は１つの論理バスとして作用するが、負荷割り当ての目的のためには、電気的に別々のものとなる。アービタが、バスに対するアクセスを制御する。
【００１６】
一次バス上で開始され二次バス上のターゲットを対象とするトランザクションを下流トランザクション(downstream transaction)とする。また、二次バス上で開始され一次バス上のターゲットを対象とするトランザクションを上流トランザクション(upstream transaction)とする。一次バス上で開始されたトランザクションは、二次バスに対して、エコーとして送られ、パスされ、反映される。二次バス上で開始されたトランザクションは、この逆となる。
【００１７】
信号はＰＣＩリピータを通じて駆動(clock)されるので、１つのクロック遅延が含まれる。本来の遅延のために、これらのバスの一方は他方の前にトランザクションを完了する。後に終了するバスがトランザクションを完了しつつある間に、先に終了するバスが別のトランザクションを開始するのを防ぐために、アービタがあらゆる未処理の許可を取り消し、後に終了するバスがトランザクションを完了するまで、いずれのバス上のいずれの装置にもバスを付与しない。この技法は、ターゲットがイニシエータと同じ速度でデータを移動させることができない、バースト・トランザクションには、特に効果的に作用する。
【００１８】
上流トランザクションは、二次バス上にＩＳＡバス・ブリッジのような減算的デコード・エージェントがあるか否かを除いて、下流トランザクションと同様に処理される。１系統のバス上に位置することができる減算的デコード・エージェントは１つのみであるので、トランザクションは、一次バスへの上流およびＩＳＡバスへの下流の双方で、減算的にデコードすることはできない。第１の代替案では、トランザクションが二次バス上で開始された場合、ＰＣＩ−ＩＳＡ間ブリッジによるＩＳＡバスへのデコーディングをディスエーブルする。これによって、一次バスおよび二次バス上の装置間でのみ、対等トランザクションが行われる。第２の方法では、ＩＳＡ減算的デコーディングをイネーブルする。トランザクションが二次バス上で開始した後、二次バス・クロックを停止し、一次バス上のターゲットがトランザクションを要求できるようにする。トランザクションが要求されない場合、二次バスのターゲットが肯定的に要求するため、あるいはＰＣＩ−ＩＳＡ間バス・ブリッジが減算的に要求するために、トランザクションは二次バス上での実行を終了する。したがって、ＰＣＩリピータ上では、上流アドレス・デコーディングが不要となる。
【００１９】
【発明の実施の形態】
図１には、本発明の好適実施例によるコンピュータ・システムＣを示す。十分なプロセスおよび処理能力を得るために、コンピュータＣは、カリフォルニア州サンタ・クララに所在するIntel Corporationから入手可能なPentium Pro（トレード・マーク） Processorのようなプロセッサ１００を１つ以上備えている。Pentium Pro Processor１００は、一次キャッシュおよび二次キャッシュを含む。勿論、他のタイプのプロセッサも使用可能であり、その場合も変更は最小で済む。プロセッサ１００は、プロセッサ・バス１０２と呼ばれるPentium Pro ホスト・バスに接続されている。プロセッサ・バス１０２は、Pentium Pro の仕様書に概略的に規定されているような、ガンニング・トランシーバ・ロジック（ＧＴＬ：gunning transceiver logic）を利用した、高性能バスである。
【００２０】
プロセッサ１００に加えて、プロセッサ・バス１０２は、Intel 82452GXのようなデータ経路ユニット（ＤＰ：data path）１０４、およびIntel 82453GXのようなメモリ・コントローラ（ＭＣ：memory controller）１０６に接続されている。これらは、全体として、メモリ・ユニット１０８のためのメモリ制御サブシステムを形成し、更に、Intel 82451KX（図示せず）のような、いくつかのメモリ・インターフェース素子に接続する。データ経路ユニット１０４、メモリ・コントローラ１０６、およびメモリ・インターフェース素子は、全体として、メモリ・ユニット１０８のためのメモリ制御サブシステムを形成する。メモリ・ユニット１０８は、７２ピン拡張データ出力（ＥＤＯ：extended data output)ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ：dynamic random access memory）モジュールのような、メモリ・モジュールを受け入れるためのスロットをいくつか含んでいる。メモリ・コントローラ１０６は、アドレス、制御、およびタイミングをメモリ・ユニット１０８に与え、一方データ経路ユニット１０４は、プロセッサ・バス１０２の７２ビット・データ部分をメモリ・ユニット１０８にインターフェースする。メモリ・コントローラ１０６およびデータ経路ユニット１０４は、プロセッサ１００からのメモリ要求を受け取り、それをキュー（待ち行列）に並べ、要求された処理が完了した後に応答することができる。加えて、メモリ・コントローラ１０６は、フライ(fly)上で単一ビットおよび多ビットのエラー検出機能を含む、メモリ・エラー補正を行う。メモリ・コントローラ１０６は、４ギガバイトまでのＤＲＡＭを扱うことができる。このメモリ制御サブシステムは、ｘ２非インターリーブ・コンフィギュレーションおよび４ｘインターリーブ・コンフィギュレーションを有するメモリ構成に対応する。
【００２１】
メモリ・サブシステムに加えて、プロセッサ・バス１０２は、Intel 82454GXのような、１つ以上の周辺要素相互接続（ＰＣＩ）ブリッジ１１０に接続する。ＰＣＩブリッジ１１０は、プロセッサ・バス１０２および一次ＰＣＩバス１１２間でバス・サイクルを渡すために必要なロジックおよび制御を提供する。ここでは、階層構造を示すが、本発明は対等構造(peer-to-peer configuration)においても等しく作用することを注記しておく。
【００２２】
一次ＰＣＩバス１１２には、小型コンピュータ・システム・インターフェース（ＳＣＳＩ：small computer system interface）・コントローラ１１４ａおよびビデオ・システム１１４ｂのような、１つ以上のＰＣＩ装置１１４が取り付けられている。ＳＣＳＩコントローラ１１４ａは、ハード・ディスク・ドライブ１２４に接続され、ビデオ・メモリを含むビデオ・システム１１４ｂは、モニタ１２６に接続されている。ＰＣＩ装置１１４に加えて、本発明によるＰＣＩリピータ即ちブリッジ１１６も、一次ＰＣＩバス１１２および二次ＰＣＩバス１１８間に接続されている。ＰＣＩリピータ１１６は、二次ＰＣＩバス１１８を一次ＰＣＩバス１１２から電気的に分離するが、双方のバスを１つの論理ＰＣＩバスとして見えるようにする。ＰＣＩリピータ１１６はこれをシステム・ソフトウエアには透過的に行うため、システム・ソフトウエアに大幅な複雑性を加えることなく、ＰＣＩ負荷数を増加させる。
【００２３】
二次ＰＣＩバス１１８には、１つ以上のＰＣＩ装置またはスロット１２０、およびＰＣＩ−ＩＳＡ間ブリッジ１２２が接続されている。ＰＣＩ−ＩＳＡ間ブリッジ１２２は、二次ＰＣＩバス１１８および業界標準アーキテクチャ（ＩＳＡ）バス１２８間でサイクルの受け渡しを行う。ＩＳＡバス１２８には、キーボード・コントローラ１３０、ＲＯＭ１３４、および２つのシリアル・ポート、パラレル・ポート、フロッピ・ドライブに接続されたフロッピ・ディスク・コントローラ、および任意のＩＤＥハード・ディスク・ドライブまたはＣＤＲＯＭドライブに接続するための統合ドライブ電子（ＩＤＥ：integrated drive electronic）インターフェースに対応するマルチＩ／Ｏユニット１３６が取り付けられている。
【００２４】
次に図２に移ると、ＰＣＩリピータ１１６のブロック図が示されている。リピータ１１６は、一次バス１１２に接続されている一次バス・ユニット２００、および二次バス１１８に接続されている二次バス・ユニット２０２から成る。各バス・ユニットは、信号電圧レベルを３．３Ｖのような共通電圧に変換するための、選択可能な電圧変換器２０４を有する。例えば、一次ＰＣＩバス１１２およびＰＣＩリピータ１１６が３．３Ｖで動作し、二次ＰＣＩバスが５Ｖで動作する場合、二次側の電圧変換器２０４は、出力信号を５Ｖに変換し、入力信号を５Ｖから３．３Ｖに変換する。電圧変換を容易にするために、一次側を＋Ｖｐ電圧に接続し、二次側を＋Ｖｓ電圧に接続し、電圧を選択する。これは、携帯用コンピュータやドッキング・ステーションのように、携帯用コンピュータは電力を保存するために３．３Ｖレベルで動作可能であるのに対して、ドッキング・ステーションが従来からの５Ｖで動作するというような用途に有用である。リピータ１１６は、携帯用コンピュータまたはドッキング・ステーションのいずれにも配置可能であり、接続可能なＰＣＩバスをドッキング・ステーションに与えることができる。
【００２５】
また、リピータ１１６には、各側にリード・プリフェッチ・バッファ（ＲＰＢ：read prefetch buffer)２０８およびライト・ポスティング・バッファ（ＷＰＢ：write posting buffer）２１０が含まれていると共に、一次ＰＣＩバス１１２および二次ＰＣＩバス１１８間のアクセスを調停するアービタ２０６が含まれている。リード・プリフェッチ・バッファ２０８は、好ましくは、２DWORD（デワード）の深さであるが、いずれの深さでも可能である。代替実施例では、外部アービタを有することも可能である。単一のクロック入力を用いて、一次バス・ユニット２００および二次バス・ユニット２０２双方にタイミング信号を供給する。したがって、一次ＰＣＩバスおよび二次ＰＣＩバスは、同じ周波数で動作することが要求される。代替実施例では、第２のクロック入力および同期ロジックを含み、これらのバスを異なる周波数で動作させるものもあるが、ＰＣＩリピータ１１６は最も遅いバスと同じ速さで動作することになる。ＰＣＩリピータ１１６は、ゼロ電力消費状態にも対応する。
【００２６】
一次バス・ユニット２００は、一次ＰＣＩバス１１２から肯定的（ポジティブ）および減算的（サブトラクティブ）にトランザクションを要求するために、従来からの構成可能なアドレス・デコード・ロジックを内蔵する。二次バス・ユニット２０２は、以下で開示する理由のために、アドレス・デコーディングは行わない。
【００２７】
ＰＣＩリピータ１１６は、データの格納および送出を行わない方がよいので、従来のブリッジとは異なる。通常、入来する信号は、ＰＣＩバス・クロックの立ち上がりエッジ上で駆動され、他方のバスを通じて受け渡しが行われる。しかしながら、ＰＣＩ動作ルールに全く違反することなく、一方のバスから他方のバスへの信号のエコーおよび中継を制御するのはリピータの機能である。ＰＣＩリピータの機能性については、下流サイクルおよび上流サイクルに関して論ずることにする。単一データ・サイクルおよびバースト・データ・サイクルは各々のサブセットである。
【００２８】
下流トランザクション即ち下流サイクルとは、一次ＰＣＩバス１１２上で開始され、二次ＰＣＩバス１１８または下位のバス上の装置を対象とするトランザクションのことを言う。ＰＣＩリピータ１１６は、ＰＣＩルールに準拠して、一次ＰＣＩバス１１２上の唯一の減算的デコード装置である。肯定的デコーディングではなく、減算的に下流トランザクションをデコードすることにより、ＢＩＯＳ(basic input output system)およびオペレーティング・システムのオーバーヘッドを解消する。ＰＣＩリピータ１１６は、通常、トランザクションが一次ＰＣＩバス１１２上で発生した場合、このトランザクションが二次バス１１８を対象とするものか否かには無関係に、トランザクション全体を二次ＰＣＩバス１１８にエコーする。ＰＣＩリピータ１１６は、１クロック遅れて一次ＰＣＩバス１１２に反映するので、ＰＣＩリピータ１１６は全ての下流トランザクションに対して２クロック追加することになる。即ち、サイクルの開始のために１クロック、そしてデータ・リターンのために１クロックである。したがって、二次バス上において中速のデコード・タイミングで肯定的に要求されるトランザクションは、一次バス上の装置には、減算的にデコードされたトランザクションとして現れる。
【００２９】
下流トランザクションでは、一次ＰＣＩバス１１２上のイニシエータから二次ＰＣＩバス１１８上のターゲットにエコーされる信号は、FRAME_p, AD[31:0]p, C/BE[3:0]pおよびIRDY_pである。二次ＰＣＩバス１１８から一次ＰＣＩバス１１２上のイニシエータにエコーされる信号は、TRDY_s, STOP_sおよびDEVSEL_sである。上流トランザクションでは、二次ＰＣＩバス１１８上のイニシエータから一次ＰＣＩバス１１２上のターゲットにエコーされる信号は、FRAME_s, AD[31:0]s, C/BE[3:0]およびIRDY_sである。一次ＰＣＩバス１１２から二次ＰＣＩバス１１８上のイニシエータにエコーされる信号は、TRDY_p, STOP_pおよびDEVSEL_pである。
【００３０】
次に図３を参照すると、一次ＰＣＩバス１１２上で開始され、二次ＰＣＩバス１１８を目標とする２つの単一DWORDトランザクションのタイミング図が示されている。最初のトランザクションは、中速のタイミングを用いて二次バス１１８上の装置によって肯定的に要求されたライト・トランザクションであり、２番目のトランザクションは、一次バス１１２および二次バス１１８上で減算的にデコードされるリード・トランザクションである。以下の図では、図２に示すように、小文字の"p"で終わる信号名は一次ＰＣＩバス１１２の信号を表し、小文字の"s"で終わる信号名は二次ＰＣＩバス１１８の信号を表す。信号名の後ろの下線は、当該信号がアクティブ・ローであることを示す。中断されたサイクルは、ＰＣＩ仕様において定義されている、ターン・アラウンド・サイクル(turn-around cycle)を示す。
【００３１】
一次ＰＣＩバス１１２上で開始されたトランザクションに応答して、ＰＣＩリピータ１１６は、FRAME_s, AD[31:0]_s, およびC/BE_[3:0]sを、１クロック遅れて（クロック２および８）、二次ＰＣＩバス１１８上でアサートする。IRDY_もクロック３および９上で、二次ＰＣＩバス１１８上にエコーされる。図示しないが、LOCK_およびIDSEL信号のような他のマスタ信号も、必要に応じて、二次ＰＣＩバス１１８上でエコーされる。
【００３２】
ＰＣＩリピータ１１６は、クロック５および１１上においてディアサートされたDEVSEL_pを感知し、したがって、二次ＰＣＩバス１１８に代わって、減算的デコード・タイミングを用いて、このサイクルを受け入れる。ライト・トランザクションでは、一旦DEVSEL_sがローにサンプルされると（クロック５）、ＰＣＩリピータ１１６はスレーブ信号(DEVSEL_s, TRDY_sおよびSTOP_s)の状態を、二次ＰＣＩバス１１８から一次ＰＣＩバス１１２（クロック６）にコピーする。ＰＣＩリピータ１１６が、アサートされてローとなっているDEVSEL_sおよびTRDY_sを検知した後（クロック５）、IRDY_sがディアサートされ、二次ＰＣＩバス１１８上でのトランザクションを完了する。一次ＰＣＩバス１１２上では、１クロック遅れてトランザクションが完了する（クロック６）。DEVSEL_sおよびTRDY_sを一次ＰＣＩバス１１２にエコーすることによって、発行側のマスタが当該サイクルを実行する最終的な役割を有することを確認する。
【００３３】
リード・サイクルでは、一旦ＰＣＩリピータ１１６が、アサートされたDEVSEL_2を感知したなら（クロック１３）、ＰＣＩリピータ１１６はスレーブ信号(DEVSEL_s, TRDY_s, STOP_s およびAD[31:0]s)の状態を二次ＰＣＩバス１１８から一次ＰＣＩバス１１２にコピーする。ＰＣＩリピータ１１６は、単一のデータ・フェーズから成るデータ転送のいずれも転記しない(post)ことが好ましい。これによって、ＰＣＩリピータ１１６の設計を簡略化すると共に、ターゲットがリトライ（再施行）するいずれの転送からもリピータ１１６が逆行できるようにする。ＰＣＩリピータ１１６によって発生するレイテンシは、ターゲットのレイテンシに加えて２クロックである。
【００３４】
次に図４を参照すると、ターゲット切断ライト・トランザクション(target disconnect write transaction)およびそれに続くターゲット・リトライ・リード・トランザクション(target retry read transaction)が示されている。一次バス１１２上で開始されたライト・トランザクションに応答して、ＰＣＩリピータ１１６はFRAME_s, AS[31:0]s, およびC/BD_[3:0]sを、１クロック遅れて（クロック２および８）上で二次ＰＣＩバス１１８上でアサートする。IRDY_pのアサートは、クロック３および９上で、二次ＰＣＩバス１１８にもエコーされる。
【００３５】
ＰＣＩリピータ１１６はDEVSEL_pがクロック５および１１上でディアサートされたままであることを感知し、したがって、二次ＰＣＩバス１１８に代わって、減算的デコード・タイミングを用いてトランザクションを受け入れる。ライト・サイクルでは、一旦DEVSEL_sがサンプルされアサートされたなら（クロック５）、ＰＣＩリピータ１１６はスレーブ信号(DEVSEL_s, TRDY_s, およびSTOP_s）の状態を、二次ＰＣＩバス１１８から一次ＰＣＩバス１１２にコピーする（クロック６）。二次バス１１８上で切断されたライト・トランザクションは、一次ＰＣＩバス１１２上でも切断される。その理由は、STOP_p信号が一次側でTRDY_pと同時に駆動されるからである。一次ＰＣＩバス１１２上のデータを受け入れる前にDEVSEL_sおよびTRDY_sを待つことによって、開始側のマスタがこのトランザクションを実行する最終的な役割を有することを確認する。
【００３６】
リード・トランザクションでは、一旦リピータ１１６がアサートされたDEVSEL_sを感知したなら（クロック１３）、リピータ１１６はスレーブ信号(AD[31:0]s, DEVSEL_s, TRDY_sおよびSTOP_s)の状態を、二次ＰＣＩバス１１８から一次ＰＣＩバス１１２にコピーする（クロック１４）。二次バス１１８上でリトライされるトランザクションは、一次バス１１２上でもリトライされる。何故なら、STOP_p信号が一次側で、ニゲートされたTRDY_pと同時に駆動されるからである。
【００３７】
次に図５を参照すると、下流バースト・ライト・トランザクション(downstream burst write transaction)が示されている。ＰＣＩリピータ１１６を介したライト・バースト処理は、一旦転送がターゲットに受け入れられたなら、ゼロ待ち状態でバースト・データを受け入れることによって行われる。ＰＣＩリピータ１１６は、IRDY_pおよびFRAME_p双方がアサートされているので、クロック３においてバースト・シーケンスを感知する。このトランザクションはバースト・ライト・トランザクションであるので、リピータは、単一のDWORDトランザクションの場合に行うように、クロック３においてIRDY_sをアサートすることはない。代わりに、ＰＣＩリピータ１１６は、クロック６まで、即ち、リピータ１１６がクロック５において一次バス１１２上で減算的デコード・タイミングを用いて最初のデータ・トランザクションを受け入れた次のクロックまで、二次バス１１８上のIRDY_sのアサートを遅らせる。この遅延は、ＰＣＩリピータが、ＰＣＩ仕様のタイミングに合うように、時間内に次のトランザクションのバイト・イネーブル（TRDY_pのアサートに続く最初のクロックである、クロック８において得られる）を有することを保証するために必要とされる。
【００３８】
一次ＰＣＩバス１１２上で開始されたトランザクションに応答して、ＰＣＩリピータ１１６は、二次バス１１８上で、１クロック遅れて（クロック２）、FRAME_s, AD[31:0]sおよびC/BE[3:0]sをアサートする。要求／許可信号対(REQ_1/GNT1_)が、一次側のマスタのバス１１２に対するアクセスの要求／獲得に対応する。ＰＣＩリピータ１１６は、クロック５上でディアサートされたDEVSEL_pを感知するので、クロック５において一次バス上でDEVSEL_pをアサートすることによって、二次バス１１８に代わって、トランザクションを減算的にデコードする。二次バス１１８上では、ターゲット１２０が、中速のデコード・タイミングを用いてアドレスおよびコマンドをデコードし、クロック４においてDEVSEL_sおよびTRDY_sをアサートする。一方、ＰＣＩリピータ１１６は、DEVSEL_sおよびTRDY_sのアサートを感知し、１クロック遅れて一次バス上にTRDY_pをエコーし（クロック５）、後続のデータ・トランザクションを開始する。二次バス上には中速のデコード・タイミングを示してあるが、いずれのタイミングにも対応し、その場合、最初のデータ・トランザクションを長くするという効果が得られる。ＰＣＩリピータ１１６は、待ち状態ゼロでデータを受け入れる。ターゲット１２０が待ち状態ゼロでデータを受け入れることができない場合、ＰＣＩリピータはこのデータをライト・ポスティング・バッファ２１０にバッファする。二次側は、ターゲットの速度に制限されるレートでデータを送出する。
【００３９】
イニシエータおよびターゲット間において速度差が生ずる可能性があるので、ＰＣＩリピータは、そのライト・ポスティング・バッファ２１０においてサイクルを終了できない結果となる可能性もある。ＰＣＩリピータ１１６がそのライト・ポスティング・バッファ２１０を空にする前にバス・マスタが他のトランザクションを開始した場合、ＰＣＩリピータ１１６は、そのライト・ポスティング・バッファ２１０を空にするまで、二次ＰＣＩバス１１８を放棄しないので、デッドロック状態が発生する可能性がある。したがって、好適実施例によれば、ＰＣＩリピータ１１６がビジーである間にいずれのイニシエータが一次バス１１２を得るのを防止するために、ＰＣＩリピータ１１６は、二次ＰＣＩバス１１８上のバースト・シーケンスを終了している間は、一次ＰＣＩバス１１２の許可を停止する必要性をＰＣＩアービタ１１１に通知する。リピータは、そのライト・ポスティング・バッファ２１０が空になるまで、二次ＰＣＩバス１１８を放棄しないので、同時に他のイニシエータは二次バス１１８にアクセスすることはできない。サイドバンド信号許可禁止(NOMOGNTS_)は、強制的にアービタ１１１が要求を許可するのを停止させる。NOMOGNTS_信号がアサートされている間、アービタ１１１はあらゆる未処理の許可信号、例えば、(GNT1)をディアサートする。二次ＰＣＩバス１１８上でバースト・シーケンスが完了した場合（クロック１０）、ＰＣＩリピータ１１６はNOMOGNTS_信号をディアサートする。NOMOGNTS_ 信号がディアサートされた後、ＰＣＩアービタ１１は自由に許可信号を再び発行する。
【００４０】
クロック６上で最初のデータが一次側のリピータ１１６によって受け入れられると、次のトランザクションに対するデータおよびバイト・イネーブルが使用可能となる。次に、ＰＣＩリピータ１１６は、IRDY_sをアサートし、ライト・データ転送の発生を許可する。その後、ライト転送は、図５のクロック９に示すようにＰＣＩリピータ１１６がSTOP_pをアサートすることによって、イニシエータを終了即ち切断するまで、続けられる。本例におけるように、ライト・ポスティング・バッファがその限界に近づきつつある場合、STOP_p信号をアサートする。ＰＣＩリピータ１１６は追加のレイテンシをトランザクションに付加するが、実際のバースト・レートはＰＣＩバスの限界に近づく。
【００４１】
次に図６を参照すると、ＰＣＩバス１１２のような一次ＰＣＩバス上のマスタと、メモリ・リード・コマンドを用いる二次ＰＣＩバス１１８のような二次ＰＣＩバス上のターゲットとの間の、従来技術によって試行されたバースト・リード・トランザクションが示されている。破線は望ましくない状態を示し、これを本発明が解決する。
【００４２】
一次ＰＣＩバス１１２上のマスタが、ＰＣＩリピータ１１６（即ち、従来技術のリピータ）を介して、１回以上、DWORDを読み込もうとした場合、ＰＣＩリピータ１１６は、単一のデータ・フェーズの後（クロック７）、トランザクションを終了する。何故なら、ＰＣＩリピータは、要求元マスタからの次のバイト・イネーブル・セットを有していないからである。続いて、マスタは他のトランザクションを実行し、残りのデータを読み取らなければならない。したがって、トランザクションは、多数の単一データ転送に分解される。
【００４３】
また、図６は二次バス許可(SBGNT_)信号も示す。この信号は、アービタ１１１のようなアービタによって供給され、二次バス・アービタ２０６のような二次バス・アービタをイネーブルする。通常、SBGNT_信号はクロック２上でアサートされ、二次アービタにGNT2_のような許可信号を発行させる。したがって、一旦二次ＰＣＩバス１１８がトランザクションを完了したなら（クロック５）、GNT2_に対応する要求をアサートした二次バス装置は、二次ＰＣＩバスを所有することになる（クロック６）。
【００４４】
クロック６において二次ＰＣＩバス上で開始する破線内のトランザクションによって示されるように、ＰＣＩリピータ１１６（および従来技術のリピータ）の本質的なレイテンシのために、二次ＰＣＩバス１１８上のトランザクションは、一次ＰＣＩバス１１２がエコーされたトランザクションを受け取る用意ができる前に、開始する可能性がある（クロック６）。
【００４５】
この問題の発生を防止するために、本発明のＰＣＩリピータ１１６は、ＰＣＩリピータ１１６がメモリ・リード・コマンドを検出すると直ぐに、NOMOGNTS_信号をアサートし（クロック３）、FRAME_pをアサートに保持し、一次ＰＣＩバス１１２上のマスタがリード・トランザクションをバーストしなければならないことを示す。NOMOGNTS_信号は、ＰＣＩリピータ１１６が一次ＰＣＩバス１１２上のマスタに切断を通知するまで（クロック６においてTRDY_pおよびSTOP_pをアサートする）、アサートのまま保持される。これによって、トランザクションが両バス上で完了するまで、アービタ１１１，２０６が許可信号をアサートするのを防止する。リピータ１１６が、マスタおよびターゲットが同一バス（即ち、一次ＰＣＩバス１１２）上にあることを検出した場合、代わりに、DEVSEL_pがアサートされた（図示せず）後直ちにNOMOGNTS_信号をディアサートし、アービタ１１１に通常通り許可のパイプライン処理を可能とする。このように、ＰＣＩリピータ１１６は、リード・トランザクションが多数の単一データ転送に分解されるような、プリフェッチ不可能な領域へのリード・トランザクションを処理する。
【００４６】
次に図７を参照すると、メモリ・リード・ラインおよびメモリ・リード多重ＰＣＩコマンド(memory read multiple PCI command)に関する従来技術のＰＣＩリピータの別の問題が示されている。メモリ・リード・ラインおよびメモリ・リード多重コマンドは、プリフェッチ可能なアドレス範囲内のデータにアクセスするために用いられる。図７は、一次ＰＣＩバス上のマスタがメモリ・リード・ラインまたはメモリ・リード多重コマンドを開始した場合を示す。従来技術のＰＣＩリピータは、二次側でサイクルを開始し、ディアサートされたFRAME_pをサンプリングするまで、新しいデータを要求し続ける。一次ＰＣＩバスが一次ＰＣＩバス上のスレーブを目標とする別のサイクルを自由に開始できる間（クロック１０）、ターゲットが転送に待ち状態を追加し二次ＰＣＩバスをビジーにし続けると、問題が発生する。この場合、従来技術のＰＣＩリピータは、二次バス上のトランザクションがクロック１２まで終了しないので、トランザクション全体を失うことになる。
【００４７】
次に図８を参照すると、好適実施例によるアービタの介入で図６および図７の問題を解決する、下流バースト・リード・シーケンスが示されている。マスタが、一次ＰＣＩバス１１２上で、二次ＰＣＩバス１１８上のターゲットに対して、メモリ・リード・ラインまたはメモリ・リード多重コマンドを開始する。ＰＣＩリピータ１１６は、クロック２上で二次ＰＣＩバス１１８上でコマンドを開始する。ＰＣＩリピータ１１６は、要求元マスタのバイト・イネーブルには無関係に、バイト・イネーブルを全てゼロにセットし、全てのバイトを読み込み、一次バス１１２上のマスタに先だって読み取り（即ち、プリフェッチ）ができるようにする（これはバイト・イネーブルがパイプラインされていないためである）。クロック５上において、トランザクションが一次ＰＣＩバス１１２上で肯定的に要求されていないので、ＰＣＩリピータ１１６は、トランザクションが下流に向かっているものと判断し、NOMOGNTS_信号をアサートし、二次ＰＣＩバス１１８がその現トランザクションを終了するまで、一次ＰＣＩバス１１２上の現許可(GNT1_)およびあらゆる後続の許可を取り消すことを、ＰＣＩアービタ１１１に通知する。NOMOGNTS_信号は、二次ＰＣＩバス１１８上でリードが完了するクロック１２上でディアサートされる。
【００４８】
ＰＣＩリピータ１１６が一次ＰＣＩバス１１２上で最後のデータ・フェーズを検出すると直ぐに、二次ＰＣＩバス１１８上におけるリード・プリフェッチは終了する。最後のデータ・フェーズは、クロック８上におけるFRAME_pのディアサートおよびクロック９上におけるIRDY_pのディアサートによって知らされる。クロック９上において、ＰＣＩリピータ１１６は、その最後のデータ・フェーズが二次ＰＣＩバス１１８上で完了したことを、クロック９上においてFRAME_s信号がディアサートされたときに通知する。したがって、ＰＣＩリピータ１１６が未だ二次ＰＣＩバス１１８上のターゲットから次のDWORDを読み出している間に、一次ＰＣＩバス１１２上のマスタは読み出しを終了する。ＰＣＩプロトコルに違反しないように、クロック１２において二次ＰＣＩバス１１８上で最後のデータ・フェーズが完了することができるまで、ＰＣＩリピータは二次ＰＣＩバス１１８上にC/BE[3:0]sおよびIRDY_s信号を保持する。ＰＣＩリピータ１１６が最後のデータ・フェーズを検出した後、二次ＰＣＩバス１１８のリード・トランザクションが終了するとき、リピータ１１６はAD[31:0]pおよびC/BE[3:0]pバスを有効状態に駆動する（クロック１１からクロック１２まで）。したがって、ＰＣＩリピータ１１６は、更にデータを要求することによって、要求元マスタに先だって停留しようとする。未使用データは、ＰＣＩリピータ１１６によって破棄される。
【００４９】
上流トランザクションは、二次ＰＣＩバス１１８上で開始され、一次ＰＣＩバス１１２上の装置を目標とするトランザクションである。ＰＣＩリピータは、下流トランザクションを処理するのと同じように、上流トランザクションを処理するが、いくつかの例外がある。ＰＣＩリピータ１１６は、上流コンフィギュレーション・サイクルには応答しない。
【００５０】
ＰＣＩリピータ１１６に直面する問題の１つに、どのサイクルが上流に向かい、どのサイクルが下流に向かうのかを、如何にして判定するかというものがある。二者択一的な２通りの解決策が可能である。第１の解決策では、ＰＣＩ−ＩＳＡ間ブリッジの減算的デコード・ロジックを、下流トランザクションの間のみイネーブルする。ＰＣＩリピータ１１６は、二次ＰＣＩバス１１８上で開始された全てのトランザクションを、一次ＰＣＩバス１１２にブロードキャスト通信する。トランザクションが二次ＰＣＩバス１１８上の装置によって肯定的に要求されていない場合、それはリピータ１１６によって減算的に要求されていることになる。したがって、トランザクションは上流に送られるが、二次ＰＣＩバス１１８上の装置およびＩＳＡバス１２８上の装置間の対等トランザクションは使用することができない。第２の解決策では、ＰＣＩリピータ１１６が二次ＰＣＩバス１１８の動作を停止し、トランザクションを一次ＰＣＩバス１１２にエコーする。ターゲットが一次ＰＣＩバス１１２上にある場合、ターゲットは肯定的にトランザクションを要求する。トランザクションが一次バスＰＣＩエージェントによって肯定的に要求されない場合、ＰＣＩリピータ１１６はトランザクションを肯定的に要求し、それを二次ＰＣＩバス１１８上で実行する。ターゲットがＩＳＡ装置である場合、ＰＣＩ−ＩＳＡ間ブリッジ１２２は、二次ＰＣＩバスからのトランザクションを減算的に要求する。この好適な解決策は、バスの階層を処理するという利点がある。
【００５１】
図９ないし図１２は、最初の解決策に対応する。図に示し以下に説明する原理は、メモリ・トランザクションおよびＩ／Ｏトランザクションに等しく適用される。ここで図９を参照すると、二次ＰＣＩバス１１８上で開始し、一次ＰＣＩバス１１２上で終了する２つの単一DWORDトランザクションが示されている。最初のトランザクションは、中速のデコード・タイミングを用いて一次ＰＣＩバス１１２上の装置によって肯定的に要求されるライト・トランザクションであり、２番目のトランザクションは、中速のデコード・タイミングを用いて要求されるリード・トランザクションである。最初の上流トランザクションは、二次ＰＣＩバス１１８上でクロック１上において開始する。クロック２上でトランザクションは上流の一次ＰＣＩバス１１２にエコーされる。ＰＣＩリピータ１１６は、クロック３上において、ディアサートされたFRAME_sを検知し、これは単一のデータ・フェーズ・トランザクションであると判定し、IRDY_pをアサートして、ライト・トランザクションを完了させる。トランザクションは、中速のデコード・タイミングを用いてクロック４上において一次ＰＣＩバス１１２上で肯定的にデコードされる。リピータ１１６がクロック５上においてアサートされたDEVSEL_pをサンプルすると直ぐに、残りのスレーブ信号(TRDY_pおよびSTOP_p)と共に、DEVSEL_pの状態をDEVSEL_sにコピーする。
【００５２】
上流リード・トランザクションは次のように行われる。このトランザクションはクロック７上において二次ＰＣＩバス１１８上で開始し、クロック８上において一次ＰＣＩバス１１２にエコーされる。クロック１０においてトランザクションは一次ＰＣＩバス１１２上で受け入れられ、クロック１１上においてDEVSEL_sが二次ＰＣＩバス１１８にエコーされる。クロック１２上において、ターゲットは一次ＰＣＩバス１１２上に要求されたデータを置き、TRDY_pをアサートしてトランザクションを終了する。クロック１３上において、AD[31:0]pおよびTRDY_pが二次ＰＣＩバス１１８にエコーされる。
【００５３】
次に図１０を参照すると、ターゲット切断ライト・トランザクションおよびそれに続くターゲット・リトライ・リード・トランザクションが示されている。ＰＣＩリピータ１１６は単一のデータ・フェーズ・トランザクションを転記しないので、ＰＣＩリピータ１１６は、下流トランザクションを処理するのと同様に、上流ターゲット切断を処理し、リトライする。クロック４において、一次ＰＣＩバス１１２上のターゲットが切断を通知すると、これはクロック５上においてＰＣＩリピータ１１６によって二次ＰＣＩバス１１８上のイニシエータにエコーされる。同様に、クロック１２上において一次ＰＣＩバス１１２上のターゲットによってリトライが通知され、次いでクロック１３上においてＰＣＩリピータ１１６によって、二次ＰＣＩバス１１８上のイニシエータにエコーされる。
【００５４】
次に図１１および図１２を参照すると、それぞれ、上流バースト・ライト・シーケンス(upstream burst write sequence)および上流リード・シーケンス(upstream read sequence)が示されている。上流バースト・トランザクションは、現トランザクションが完了する後まで、アービタ１１１はＰＣＩバス１１２および１１８をいずれのエージェントにも許可してはならない点において、下流バースト・トランザクションと同様である。これを行うには、二次ＰＣＩバス１１８上で開始されたトランザクションが一次ＰＣＩバス１１２上のターゲットによって受け入れられたことをＰＣＩリピータ１１６が判定すると直ちにNOMOGNTS_信号をアサートする。一次ＰＣＩバス１１２上のターゲットは、高速デコード・タイミングを用いて、クロック３に示すように、DEVSEL_pをアサートすることによって、そのトランザクションの受け入れを示す。クロック４〜１１に示すように、NOMOGNTS_信号は、トランザクションが一次ＰＣＩバス１１２上で完了するまで、アサートされたままとなっている。これらの例では、一次ＰＣＩバス１１２上のターゲットが、最後のライト・サイクルを受け入れる前に、待ち状態を挿入しても（図１１のクロック８，９および図１２のクロック９）、NOMOGNTS_信号はアサートされたままであることがわかる。
【００５５】
図１３〜図１５は、第２の解決策に対応する。図１３は、一次ＰＣＩバス１１２上で肯定的に要求された上流の単一データ・フェーズ・ライト・トランザクションを示す。図１４は、一次ＰＣＩバス１１２または二次ＰＣＩバス１１８上で肯定的に要求されず、ＩＳＡバス１２８上で減算的に要求された、上流単一データ・フェーズ・ライト・トランザクションを示す。これらの図に示す原理は、メモリ・トランザクションおよびＩ／Ｏトランザクションにも同様に適用される。図１３において、トランザクションはクロック１上において二次ＰＣＩバス１１８上で開始され、クロック２上において一次ＰＣＩバス１１２にエコーされる。
【００５６】
予期される一次バス・ターゲットに応答する十分な時間を確保するために、二次ＰＣＩバス１１８のクロック(CLK)は、クロック２の終端においてクロック・ディスエーブル(CLK_DIS)信号によって、２ＰＣＩクロック・サイクルの間停止される。この２クロック遅延によって、ＩＳＡ−ＰＣＩ間ブリッジ１２２がトランザクションを減算的に要求する前に、一次ＰＣＩバス１１２のターゲットまたは二次ＰＣＩバス１１８のターゲットのいずれかがトランザクションを要求できるようにする。一次バス・エージェントは、クロック３，４または５上においてDEVSEL_pをアサートすることによって、トランザクションを要求することができる。二次バス・エージェントは、クロック２，５または６上においてDEVSEL_sをアサートすることによって、トランザクションを要求することができる。クロック４の終端において、CLKは再び起動される。
【００５７】
図１３において、一次バス・ターゲットは、クロック５上においてDEVSEL_pをアサートすることによって、低速のデコード・タイミングを用いてトランザクションを要求する。クロック６上において、ＰＣＩリピータはDEVSEL_pのアサートを感知し、DEVSEL_pおよびTRDY_pを二次ＰＣＩバス１１８にエコーし、二次バス１１８上でトランザクションを終了する。即ち、ＩＳＡ−ＰＣＩ間ブリッジ１２２による減算的デコードは行われない。
【００５８】
次に図１４に移ると、クロック１上においてトランザクションが二次ＰＣＩバス１１８上で開始し、クロック２上において一次ＰＣＩバス１１２にエコーされ、一次バス・ユニット２００の従来のデコード・ロジックは、アドレス範囲が一次ＰＣＩバス１１２上のターゲットに対応するか否かについて判定を行うことができる。図１３に示すように、二次ＰＣＩバス・クロック(CLK)は再び２クロックの間停止される。しかしながら、今回は、トランザクションは一次ＰＣＩバス１１２上では要求されない。クロック６上において、ＰＣＩリピータ１１６はDEVSEL_pのニゲートされた状態を感知し、ターゲットが一次ＰＣＩバス１１２上にないと判定し、DEVSEL_pをアサートして、一次バス１１２からトランザクションを減算的に要求する。また、二次ＰＣＩバス１１８上でも、トランザクションは要求されていない。クロック７上において、ＰＣＩリピータ１１６は、DEVSEL_sが未だアサートされていないこと、および減算的デコード・タイミングによるDEVSEL_pがアサートされたことを感知し、これによって、ターゲットがＩＳＡバス１２８上にあると判定する。クロック７上において、ＩＳＡ−ＰＣＩ間ブリッジは、DEVSEL_sが未だアサートされていないことを感知し、DEVSEL_sをアサートして、トランザクションを減算的に要求する。クロック９上においてトランザクションは正常に完了する。このように、ＰＣＩリピータ１１６に何ら特殊な上流アドレス・デコーディング・ロジックを内蔵することを必要とせずに、トランザクションの目標は透過的に判定される。
【００５９】
次に図１５を参照すると、上流プリフェッチ可能バースト・リード・シーケンス(upstream prefetchable burst read sequence)が示されている。この第２の解決策では、上流バースト・トランザクションは、現トランザクションが終了した後まで、アービタ１１１はＰＣＩバス１１２および１１８をいずれのエージェントにも許可してはならないという点において、下流バースト・トランザクションと同様である。トランザクションは、クロック１上において二次ＰＣＩバス上で開始され、クロック２上において一次ＰＣＩバス１１２にエコーされ、ターゲットが一次バス上にあるか否かについて判定が行われる。バイト・イネーブルC/BE[3:0]pはゼロに強制されるので、プリフェッチを行うことができる。クロック２上において、二次バス１１８上でイニシエータによってIRDY_sがアサートされ、クロック３上において一次ＰＣＩバス１１２にエコーされる。
【００６０】
一次ＰＣＩバス１１２上の予測されるターゲットがトランザクションをデコードしている間、二次ＰＣＩバスのＰＣＩクロック(CLK)は、ＰＣＩリピータ１１６によって２クロックの間停止される。クロック５において、二次ＰＣＩバス・クロックは再び起動される。一次ＰＣＩバス１１２上のターゲットは、クロック４上においてDEVSEL_pをアサートすることによって、トランザクションを受け入れ、ＰＣＩリピータ１１６は、クロック５上において、信号(DEVSEL_s)を二次バス上にエコーする。したがって、二次ＰＣＩバス１１８の減算的デコード・エージェントは、トランザクションが二次バス１１８上で肯定的に要求されたことを想定する。
【００６１】
クロック５上において、ＰＣＩリピータ１１６はアサートされたFRAME_pおよびDEVSEL_pを感知し、それに応答してNOMOGNTS_をアサートし、現シーケンスが一次ＰＣＩバス１１２上で完了するまで、アービタ１１１がＰＣＩバスを二次バス上のイニシエータに許可するのを禁止する。クロック９上において、ＰＣＩリピータ１１６はバースト・リード・シーケンスの完了を感知し、それに応答してNOMOGNTS_信号をディアサートする。
【００６２】
一次ＰＣＩバス１１２上のターゲットによってバースト・シーケンスが要求されなかった場合、シーケンスは二次ＰＣＩバス１１８上のターゲットによって要求されたことになる。最初に二次バス上でトランザクションを実行する前に、一次バス上でデコードするために、トランザクションを上流に送ることによって、ＰＣＩリピータ１１６はＰＣＩ装置の固有のアドレス・デコーディング・ロジックを使用することができる。したがって、ＰＣＩリピータ１１６は、これらのトランザクションを処理するために、何ら特殊な下流または上流デコード・ロジックを必要としない。
【００６３】
上述の本発明の開示および説明は、本発明の例示および説明のためのものであり、本発明の精神から逸脱することなく、例示した回路および構成ならびに動作方法の詳細のみならず、サイズ、形状、物質、構成要素、回路素子、配線接続および接点において種々の変更が可能である。
【図面の簡単な説明】
【図１】本発明の好適実施例によるコンピュータ・システムを示すブロック図である。
【図２】本発明の好適実施例によるＰＣＩリピータを示すブロック図である。
【図３】下流単一データ・フェーズ・ライト・トランザクションおよびそれに続く下流単一データ・フェーズ・リード・トランザクションを示すタイミング図である。
【図４】ターゲット切断ライト・トランザクションおよびそれに続くターゲット・リトライ・リード・トランザクションを示すタイミング図である。
【図５】下流バースト・ライト・シーケンスを示すタイミング図である。
【図６】下流バースト・リード・シーケンスを示すタイミング図である。
【図７】アービタの介入のない下流バースト・リード・シーケンスを示すタイミング図である。
【図８】アービタの介入がある下流バースト・リード・シーケンスを示すタイミング図である。
【図９】上流単一データ・フェーズ・ライト・トランザクションおよびそれに続く上流単一データ・フェーズ・リード・トランザクションを示すタイミング図である。
【図１０】上流ターゲット切断ライト・トランザクションおよびそれに続く上流リード・リトライ・トランザクションを示す図である。
【図１１】上流バースト・ライト・シーケンスを示すタイミング図である。
【図１２】上流バースト・リード・シーケンスを示すタイミング図である。
【図１３】一次バス上で肯定的に要求された、上流単一フェーズ・ライト・トランザクションを示すタイミング図である。
【図１４】一次バス上でエコーされ、二次バスによって減算的に要求された上流単一データ・フェーズ・ライト・トランザクションを示すタイミング図である。
【図１５】一次バス上で要求された上流バースト・リード・シーケンスを示すタイミング図である。
【図１】
0004077060.tif 000002
【図２】
0004077060.tif 000003
【図３】
0004077060.tif 000004
【図４】
0004077060.tif 000005
【図５】
0004077060.tif 000006
【図６】
0004077060.tif 000007
【図７】
0004077060.tif 000008
【図８】
0004077060.tif 000009
【図９】
0004077060.tif 000010
【図１０】
0004077060.tif 000011
【図１１】
0004077060.tif 000012
【図１２】
0004077060.tif 000013
【図１３】
0004077060.tif 000014
【図１４】
0004077060.tif 000015
【図１５】
0004077060.tif 000016