JP4077060B2 - Pci−pci間のトランザクション通信方法及び装置 - Google Patents
Pci−pci間のトランザクション通信方法及び装置 Download PDFInfo
- Publication number
- JP4077060B2 JP4077060B2 JP35527897A JP35527897A JP4077060B2 JP 4077060 B2 JP4077060 B2 JP 4077060B2 JP 35527897 A JP35527897 A JP 35527897A JP 35527897 A JP35527897 A JP 35527897A JP 4077060 B2 JP4077060 B2 JP 4077060B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- transaction
- control signal
- initiator
- target
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4045—Coupling between buses using bus bridges where the bus bridge performs an extender function
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)
Description
【発明の属する技術分野】
本発明は、2系統のPCIバス同士をブリッジする装置および方法に関し、特にPCI−PCI間リピータ(中継器)に関するものである。
【0002】
【従来の技術】
パーソナル・コンピュータ(PC)の性能は、プロセッサの速度、メモリおよび入出力(I/O)サブシステムのような、多数の要因によって左右される。1992年の周辺要素相互接続(PCI:peripheral component interconnect)手法の導入により、I/Oサブシステムには高性能バスが与えられ、該バスを介して動作することとなった。
【0003】
元来、PCIバスは、業界標準アーキテクチャ(ISA:industry standard architecture)バスまたは拡張業界標準アーキテクチャ(EISA:extended industry standard architecture)のような既存の拡張バスに取って代わることを意図したものではなかった。しかしながら、コンピュータ業界からの圧力および競合するバスにより、CPIバスはバス拡張の目的に利用可能となった。このため、コンピュータ・システムは、マザーボード上にPCI装置を実装したり、アド・イン・ボード(add-in board)に対応することも可能となっている。
【0004】
PCIバスは、メザニン・バス(mezzanine bus)またはローカル・バスと呼ばれているが、その理由は、通常、PCIバスは非常に性能が高いプロセッサ・バスと性能が低いISAバスまたはEISAバスとの間に位置するからである。一方のコンピュータ・バスを他方のコンピュータ・バスに接続するロジックにおいて、一方のバス上のエージェント(agent)が他方のバス上のエージェントにアクセスできるようにするものは、ブリッジとして知られている。PCIの世界(vernacular)では、エージェントとは、コンピュータ・バス上で動作するいずれかのエンティティまたは装置のことである。エージェントは、バス・マスタまたはバス・スレーブのいずれかとなることができる。バス・マスタ即ちイニシエータ(initiator)はバス・トランザクションを開始し、バス・スレーブ即ちターゲット(target)は、バス・マスタによって開始されたバス・トランザクションに応答する。多くの場合、イニシエータは一方のバス上にあり、ターゲットは他方のバス上にある。
【0005】
ブリッジは、コンピュータ・システムのメモリ空間またはI/Oアドレス空間のいずれの位置にマップされているPCI装置にも直接プロセッサがアクセス可能な、レイテンシの低い経路を提供する。ブリッジの主要な機能は、一方のバスのアドレス空間を他方のバスのアドレス空間にマップすることである。PCIバスは、3種類の物理アドレス空間、即ち、メモリ空間、I/O空間、およびコンフィギュレーション空間を定義する。PCIバス上でのアドレス・デコーディングは分散される。即ち、PCIバスに結合されている各装置がアドレス・デコーディングを行う。PCIの仕様は、2つの形式のアドレス・デコーディング、即ち、肯定的(positive)デコーディングおよび減算的(subtractive)デコーディングを定義する。肯定的デコーディングは、各PCI装置が、当該装置が割り当てられているアドレス範囲(群)においてアクセスを探すので高速性に優れている。減算的デコーディング装置は、他に肯定的にデコードするエージェントがない全てのアクセスを受け入れるので、減算的デコーディングを実施可能な装置は、PCIバス上で1つのみである。
【0006】
各PCI転送は、アドレス・フェーズから開始され、この間にアドレス/データ・バス(AD[31:0])がアドレスを転送し、コマンド/バイト・イネーブル(C/BE_[3:0])バスがコマンド・コードを転送する。このフェーズに続いて1回以上のデータ・フェーズが行われ、この間に同じアドレス/データ・バスがデータを転送し、コマンド/バイト・イネーブル・バスはバイト・イネーブル信号を転送する。バースト・サイクルでは、単一のアドレス・フェーズに続いて多数のデータ・フェーズを行うことができる。PCIの用語では、要求元のPCI装置はイニシエータとして知られており、アドレス指定されたPCI装置はターゲットとして知られている。あらゆる転送は、フレーム(FRAME_)信号のアクティブ化から始まる。
【0007】
装置選択(DEVSEL#)信号がターゲットによって駆動されると、当該ターゲットがトランザクションに応答していることを示す。ある装置が開始アドレスを有する場合、その装置がアドレス/データ・ラインをデコードし、装置選択(DEVSEL#)信号をアサートする。DEVSEL#は、低速タイミング、中速タイミング、または高速タイミングで駆動することができる。低速タイミング・パラメータ内ではDEVSEL#をアサートするエージェントがない場合、減算的デコーディングを実行するエージェントは、DEVSEL#を要求しアサートする。"#"または"_"はアクティブ・ロー信号を意味する。PCIバス、特にPCIアドレシングについての更なる詳細は、オレゴン州ヒルスボローのPCI Special Interest Groupによって発行された、PCI Local Bus Specification, Production Version, Revision 2.1 (1995年6月1日)に示されている。この文献は、この言及により本願にも含まれるものとする。
【0008】
ターゲットは、アクティブのターゲット・レディ(TRDY_)信号によって、それが準備できていることを示す。ライト・アクセス中のアクティブなTRDY_は、ターゲットがアドレス/データ・バスからデータを取り込み可能であることを示す。リード・アクセス中のアクティブなTRDY_は、要求されたデータがアドレス/データ・バス上で入手可能であることを示す。
【0009】
加えて、イニシエータも、アクティブなイニシエータ・レディ(IRDY_)信号によって、準備ができていることを、PCIブリッジに示さなければならない。ライト・アクセス中のアクティブなIRDY_信号は、イニシエータがライト・データをアドレス/データ・バスに送ったことを示す。リード・アクセスでは、アクティブなIRDY_は、アドレス/データ・バスからデータを受け入れることを示す。イニシエータは、FRAME_信号を非アクティブ化することによって、転送を終了するかあるいは中断する。また、ターゲットも、停止(STOP_)信号のアクティブ化によって、転送を停止することができる。
【0010】
定義にあるように、PCIバスは10個の負荷(ロード)に制限されている。マザーボード上に組み込まれているPCI装置は、本質的に1つの負荷であり、PCIスロットは2つの負荷として見なされる。したがって、プロセッサ/PCIブリッジ、3つのPCIスロット、およびPCI/ISAブリッジを備えているコンピュータ・システムは、2つのマザーボード装置に制限される。多くの場合、2つのマザーボード装置では余りに少ないので、負荷の制限は10を超えることが望ましい。
【0011】
先に引用したPCI仕様に記載されている負荷の数を拡張する1つ方法は、多数のPCIバスを用いることである。多数のPCIバスを用いれば、1つのPCIバスに直接接続可能な装置よりも多数の装置に対応可能となる。多数のPCIバスを組織化するには、互いに対等とするか、あるいは階層的にする、という2種類の方法がある。対等なバスは、プロセッサ・バス上に多数のブリッジを必要とし、負荷配分(loading)に影響を与える可能性がある。階層的構造は、I/OパターンがPCI装置毎となる傾向がある場合に有利である。殆どのI/Oトラフィックがメモリに入り、そして出る場合、対等バスは一層効果的となる。しかしながら、いずれのバス構成にしても、ブリッジを起動時に構成し、アドレスが指定範囲に該当する場合にのみ、それらの一次バス上のアクセスに応答するようにしなければならない。更に、ブリッジはバスを2つの論理バスに分離することにより、構成の一層の複雑化を招いている。
【0012】
各ブリッジはコンフィギュレーション空間によってプログラム可能なアドレス・レジスタを含むので、これらのレジスタによって指定された範囲にアドレスが該当する場合にのみ、ブリッジはその一次バス上のアクセスに応答する。その他の場合、アクセスは減算的デコード・エージェントによって要求される。PCIの仕様では、1組のアドレス範囲応答レジスタのみがあればよいが、多数のバスが設けられた場合、アドレスの複雑性が高まるので、多数の組のレジスタが必要となる。通常、アドレス範囲応答レジスタは、二次バスによって要求されるメモリ空間の代わりに、一次バスによって使用されないアドレスに対応するようにプログラムされている。したがって、ブリッジの二次側は、アドレス応答範囲レジスタによって指定された範囲に該当するものを除いて、全てのメモリ・アクセスに応答する。二次バス上で開始された全てのトランザクションの内、プログラムされた範囲外のものは、一次バス上で応答される。アドレス・デコーディングが適正に行われるように、ブリッジのアドレス応答範囲レジスタを維持するのは、システム・ソフトウエアの役割である。
【0013】
【発明が解決しようとする課題】
アドレス範囲レジスタの構成は、装置のホット・プラグ(電源供給状態で周辺装置等を接続する)を行えるようにした場合、一層複雑となる。PCカードバス・カードのようなホット・プラグ可能な装置は、かかるホット・プラグ可能な装置の挿入または取り外しによってアドレス範囲が変化するので、問題を生じる。したがって、このレベルの複雑性をなくすと共に、十分な機能性および拡張性のために多数のPCI負荷を同時に得られるようにすることが望ましい。
【0014】
トランスペアレント(透過性)ブリッジ(transparent bridge)は、ブリッジをソフトウエアが見える(visible)ようにすることによって、コンフィギュレーションの問題の解決を図ってきた。しかしながら、かかるブリッジの性能は、多くの場合、必要性を満たしていない。最上位のPCIバス速度で一次バス上で実行されるサイクルは、適正なPCIタイミング規則に従う場合、二次バス上で完了するよりも3倍長い時間がかかる。したがって、透過性ブリッジの高性能化が望まれている。
【0015】
【課題を解決するための手段】
本発明のコンピュータ・システムは、ソフトウエアに大幅な変更を行う必要なく、PCIバス上の容量性負荷の数を増加させるPCIブリッジ即ちリピータを含む。このPCIリピータは、PCIバスの一次部分をPCIバスの二次的部分に接続する。これらの部分は1つの論理バスとして作用するが、負荷割り当ての目的のためには、電気的に別々のものとなる。アービタが、バスに対するアクセスを制御する。
【0016】
一次バス上で開始され二次バス上のターゲットを対象とするトランザクションを下流トランザクション(downstream transaction)とする。また、二次バス上で開始され一次バス上のターゲットを対象とするトランザクションを上流トランザクション(upstream transaction)とする。一次バス上で開始されたトランザクションは、二次バスに対して、エコーとして送られ、パスされ、反映される。二次バス上で開始されたトランザクションは、この逆となる。
【0017】
信号はPCIリピータを通じて駆動(clock)されるので、1つのクロック遅延が含まれる。本来の遅延のために、これらのバスの一方は他方の前にトランザクションを完了する。後に終了するバスがトランザクションを完了しつつある間に、先に終了するバスが別のトランザクションを開始するのを防ぐために、アービタがあらゆる未処理の許可を取り消し、後に終了するバスがトランザクションを完了するまで、いずれのバス上のいずれの装置にもバスを付与しない。この技法は、ターゲットがイニシエータと同じ速度でデータを移動させることができない、バースト・トランザクションには、特に効果的に作用する。
【0018】
上流トランザクションは、二次バス上にISAバス・ブリッジのような減算的デコード・エージェントがあるか否かを除いて、下流トランザクションと同様に処理される。1系統のバス上に位置することができる減算的デコード・エージェントは1つのみであるので、トランザクションは、一次バスへの上流およびISAバスへの下流の双方で、減算的にデコードすることはできない。第1の代替案では、トランザクションが二次バス上で開始された場合、PCI−ISA間ブリッジによるISAバスへのデコーディングをディスエーブルする。これによって、一次バスおよび二次バス上の装置間でのみ、対等トランザクションが行われる。第2の方法では、ISA減算的デコーディングをイネーブルする。トランザクションが二次バス上で開始した後、二次バス・クロックを停止し、一次バス上のターゲットがトランザクションを要求できるようにする。トランザクションが要求されない場合、二次バスのターゲットが肯定的に要求するため、あるいはPCI−ISA間バス・ブリッジが減算的に要求するために、トランザクションは二次バス上での実行を終了する。したがって、PCIリピータ上では、上流アドレス・デコーディングが不要となる。
【0019】
【発明の実施の形態】
図1には、本発明の好適実施例によるコンピュータ・システムCを示す。十分なプロセスおよび処理能力を得るために、コンピュータCは、カリフォルニア州サンタ・クララに所在するIntel Corporationから入手可能なPentium Pro(トレード・マーク) Processorのようなプロセッサ100を1つ以上備えている。Pentium Pro Processor100は、一次キャッシュおよび二次キャッシュを含む。勿論、他のタイプのプロセッサも使用可能であり、その場合も変更は最小で済む。プロセッサ100は、プロセッサ・バス102と呼ばれるPentium Pro ホスト・バスに接続されている。プロセッサ・バス102は、Pentium Pro の仕様書に概略的に規定されているような、ガンニング・トランシーバ・ロジック(GTL:gunning transceiver logic)を利用した、高性能バスである。
【0020】
プロセッサ100に加えて、プロセッサ・バス102は、Intel 82452GXのようなデータ経路ユニット(DP:data path)104、およびIntel 82453GXのようなメモリ・コントローラ(MC:memory controller)106に接続されている。これらは、全体として、メモリ・ユニット108のためのメモリ制御サブシステムを形成し、更に、Intel 82451KX(図示せず)のような、いくつかのメモリ・インターフェース素子に接続する。データ経路ユニット104、メモリ・コントローラ106、およびメモリ・インターフェース素子は、全体として、メモリ・ユニット108のためのメモリ制御サブシステムを形成する。メモリ・ユニット108は、72ピン拡張データ出力(EDO:extended data output)ダイナミック・ランダム・アクセス・メモリ(DRAM:dynamic random access memory)モジュールのような、メモリ・モジュールを受け入れるためのスロットをいくつか含んでいる。メモリ・コントローラ106は、アドレス、制御、およびタイミングをメモリ・ユニット108に与え、一方データ経路ユニット104は、プロセッサ・バス102の72ビット・データ部分をメモリ・ユニット108にインターフェースする。メモリ・コントローラ106およびデータ経路ユニット104は、プロセッサ100からのメモリ要求を受け取り、それをキュー(待ち行列)に並べ、要求された処理が完了した後に応答することができる。加えて、メモリ・コントローラ106は、フライ(fly)上で単一ビットおよび多ビットのエラー検出機能を含む、メモリ・エラー補正を行う。メモリ・コントローラ106は、4ギガバイトまでのDRAMを扱うことができる。このメモリ制御サブシステムは、x2非インターリーブ・コンフィギュレーションおよび4xインターリーブ・コンフィギュレーションを有するメモリ構成に対応する。
【0021】
メモリ・サブシステムに加えて、プロセッサ・バス102は、Intel 82454GXのような、1つ以上の周辺要素相互接続(PCI)ブリッジ110に接続する。PCIブリッジ110は、プロセッサ・バス102および一次PCIバス112間でバス・サイクルを渡すために必要なロジックおよび制御を提供する。ここでは、階層構造を示すが、本発明は対等構造(peer-to-peer configuration)においても等しく作用することを注記しておく。
【0022】
一次PCIバス112には、小型コンピュータ・システム・インターフェース(SCSI:small computer system interface)・コントローラ114aおよびビデオ・システム114bのような、1つ以上のPCI装置114が取り付けられている。SCSIコントローラ114aは、ハード・ディスク・ドライブ124に接続され、ビデオ・メモリを含むビデオ・システム114bは、モニタ126に接続されている。PCI装置114に加えて、本発明によるPCIリピータ即ちブリッジ116も、一次PCIバス112および二次PCIバス118間に接続されている。PCIリピータ116は、二次PCIバス118を一次PCIバス112から電気的に分離するが、双方のバスを1つの論理PCIバスとして見えるようにする。PCIリピータ116はこれをシステム・ソフトウエアには透過的に行うため、システム・ソフトウエアに大幅な複雑性を加えることなく、PCI負荷数を増加させる。
【0023】
二次PCIバス118には、1つ以上のPCI装置またはスロット120、およびPCI−ISA間ブリッジ122が接続されている。PCI−ISA間ブリッジ122は、二次PCIバス118および業界標準アーキテクチャ(ISA)バス128間でサイクルの受け渡しを行う。ISAバス128には、キーボード・コントローラ130、ROM134、および2つのシリアル・ポート、パラレル・ポート、フロッピ・ドライブに接続されたフロッピ・ディスク・コントローラ、および任意のIDEハード・ディスク・ドライブまたはCDROMドライブに接続するための統合ドライブ電子(IDE:integrated drive electronic)インターフェースに対応するマルチI/Oユニット136が取り付けられている。
【0024】
次に図2に移ると、PCIリピータ116のブロック図が示されている。リピータ116は、一次バス112に接続されている一次バス・ユニット200、および二次バス118に接続されている二次バス・ユニット202から成る。各バス・ユニットは、信号電圧レベルを3.3Vのような共通電圧に変換するための、選択可能な電圧変換器204を有する。例えば、一次PCIバス112およびPCIリピータ116が3.3Vで動作し、二次PCIバスが5Vで動作する場合、二次側の電圧変換器204は、出力信号を5Vに変換し、入力信号を5Vから3.3Vに変換する。電圧変換を容易にするために、一次側を+Vp電圧に接続し、二次側を+Vs電圧に接続し、電圧を選択する。これは、携帯用コンピュータやドッキング・ステーションのように、携帯用コンピュータは電力を保存するために3.3Vレベルで動作可能であるのに対して、ドッキング・ステーションが従来からの5Vで動作するというような用途に有用である。リピータ116は、携帯用コンピュータまたはドッキング・ステーションのいずれにも配置可能であり、接続可能なPCIバスをドッキング・ステーションに与えることができる。
【0025】
また、リピータ116には、各側にリード・プリフェッチ・バッファ(RPB:read prefetch buffer)208およびライト・ポスティング・バッファ(WPB:write posting buffer)210が含まれていると共に、一次PCIバス112および二次PCIバス118間のアクセスを調停するアービタ206が含まれている。リード・プリフェッチ・バッファ208は、好ましくは、2DWORD(デワード)の深さであるが、いずれの深さでも可能である。代替実施例では、外部アービタを有することも可能である。単一のクロック入力を用いて、一次バス・ユニット200および二次バス・ユニット202双方にタイミング信号を供給する。したがって、一次PCIバスおよび二次PCIバスは、同じ周波数で動作することが要求される。代替実施例では、第2のクロック入力および同期ロジックを含み、これらのバスを異なる周波数で動作させるものもあるが、PCIリピータ116は最も遅いバスと同じ速さで動作することになる。PCIリピータ116は、ゼロ電力消費状態にも対応する。
【0026】
一次バス・ユニット200は、一次PCIバス112から肯定的(ポジティブ)および減算的(サブトラクティブ)にトランザクションを要求するために、従来からの構成可能なアドレス・デコード・ロジックを内蔵する。二次バス・ユニット202は、以下で開示する理由のために、アドレス・デコーディングは行わない。
【0027】
PCIリピータ116は、データの格納および送出を行わない方がよいので、従来のブリッジとは異なる。通常、入来する信号は、PCIバス・クロックの立ち上がりエッジ上で駆動され、他方のバスを通じて受け渡しが行われる。しかしながら、PCI動作ルールに全く違反することなく、一方のバスから他方のバスへの信号のエコーおよび中継を制御するのはリピータの機能である。PCIリピータの機能性については、下流サイクルおよび上流サイクルに関して論ずることにする。単一データ・サイクルおよびバースト・データ・サイクルは各々のサブセットである。
【0028】
下流トランザクション即ち下流サイクルとは、一次PCIバス112上で開始され、二次PCIバス118または下位のバス上の装置を対象とするトランザクションのことを言う。PCIリピータ116は、PCIルールに準拠して、一次PCIバス112上の唯一の減算的デコード装置である。肯定的デコーディングではなく、減算的に下流トランザクションをデコードすることにより、BIOS(basic input output system)およびオペレーティング・システムのオーバーヘッドを解消する。PCIリピータ116は、通常、トランザクションが一次PCIバス112上で発生した場合、このトランザクションが二次バス118を対象とするものか否かには無関係に、トランザクション全体を二次PCIバス118にエコーする。PCIリピータ116は、1クロック遅れて一次PCIバス112に反映するので、PCIリピータ116は全ての下流トランザクションに対して2クロック追加することになる。即ち、サイクルの開始のために1クロック、そしてデータ・リターンのために1クロックである。したがって、二次バス上において中速のデコード・タイミングで肯定的に要求されるトランザクションは、一次バス上の装置には、減算的にデコードされたトランザクションとして現れる。
【0029】
下流トランザクションでは、一次PCIバス112上のイニシエータから二次PCIバス118上のターゲットにエコーされる信号は、FRAME_p, AD[31:0]p, C/BE[3:0]pおよびIRDY_pである。二次PCIバス118から一次PCIバス112上のイニシエータにエコーされる信号は、TRDY_s, STOP_sおよびDEVSEL_sである。上流トランザクションでは、二次PCIバス118上のイニシエータから一次PCIバス112上のターゲットにエコーされる信号は、FRAME_s, AD[31:0]s, C/BE[3:0]およびIRDY_sである。一次PCIバス112から二次PCIバス118上のイニシエータにエコーされる信号は、TRDY_p, STOP_pおよびDEVSEL_pである。
【0030】
次に図3を参照すると、一次PCIバス112上で開始され、二次PCIバス118を目標とする2つの単一DWORDトランザクションのタイミング図が示されている。最初のトランザクションは、中速のタイミングを用いて二次バス118上の装置によって肯定的に要求されたライト・トランザクションであり、2番目のトランザクションは、一次バス112および二次バス118上で減算的にデコードされるリード・トランザクションである。以下の図では、図2に示すように、小文字の"p"で終わる信号名は一次PCIバス112の信号を表し、小文字の"s"で終わる信号名は二次PCIバス118の信号を表す。信号名の後ろの下線は、当該信号がアクティブ・ローであることを示す。中断されたサイクルは、PCI仕様において定義されている、ターン・アラウンド・サイクル(turn-around cycle)を示す。
【0031】
一次PCIバス112上で開始されたトランザクションに応答して、PCIリピータ116は、FRAME_s, AD[31:0]_s, およびC/BE_[3:0]sを、1クロック遅れて(クロック2および8)、二次PCIバス118上でアサートする。IRDY_もクロック3および9上で、二次PCIバス118上にエコーされる。図示しないが、LOCK_およびIDSEL信号のような他のマスタ信号も、必要に応じて、二次PCIバス118上でエコーされる。
【0032】
PCIリピータ116は、クロック5および11上においてディアサートされたDEVSEL_pを感知し、したがって、二次PCIバス118に代わって、減算的デコード・タイミングを用いて、このサイクルを受け入れる。ライト・トランザクションでは、一旦DEVSEL_sがローにサンプルされると(クロック5)、PCIリピータ116はスレーブ信号(DEVSEL_s, TRDY_sおよびSTOP_s)の状態を、二次PCIバス118から一次PCIバス112(クロック6)にコピーする。PCIリピータ116が、アサートされてローとなっているDEVSEL_sおよびTRDY_sを検知した後(クロック5)、IRDY_sがディアサートされ、二次PCIバス118上でのトランザクションを完了する。一次PCIバス112上では、1クロック遅れてトランザクションが完了する(クロック6)。DEVSEL_sおよびTRDY_sを一次PCIバス112にエコーすることによって、発行側のマスタが当該サイクルを実行する最終的な役割を有することを確認する。
【0033】
リード・サイクルでは、一旦PCIリピータ116が、アサートされたDEVSEL_2を感知したなら(クロック13)、PCIリピータ116はスレーブ信号(DEVSEL_s, TRDY_s, STOP_s およびAD[31:0]s)の状態を二次PCIバス118から一次PCIバス112にコピーする。PCIリピータ116は、単一のデータ・フェーズから成るデータ転送のいずれも転記しない(post)ことが好ましい。これによって、PCIリピータ116の設計を簡略化すると共に、ターゲットがリトライ(再施行)するいずれの転送からもリピータ116が逆行できるようにする。PCIリピータ116によって発生するレイテンシは、ターゲットのレイテンシに加えて2クロックである。
【0034】
次に図4を参照すると、ターゲット切断ライト・トランザクション(target disconnect write transaction)およびそれに続くターゲット・リトライ・リード・トランザクション(target retry read transaction)が示されている。一次バス112上で開始されたライト・トランザクションに応答して、PCIリピータ116はFRAME_s, AS[31:0]s, およびC/BD_[3:0]sを、1クロック遅れて(クロック2および8)上で二次PCIバス118上でアサートする。IRDY_pのアサートは、クロック3および9上で、二次PCIバス118にもエコーされる。
【0035】
PCIリピータ116はDEVSEL_pがクロック5および11上でディアサートされたままであることを感知し、したがって、二次PCIバス118に代わって、減算的デコード・タイミングを用いてトランザクションを受け入れる。ライト・サイクルでは、一旦DEVSEL_sがサンプルされアサートされたなら(クロック5)、PCIリピータ116はスレーブ信号(DEVSEL_s, TRDY_s, およびSTOP_s)の状態を、二次PCIバス118から一次PCIバス112にコピーする(クロック6)。二次バス118上で切断されたライト・トランザクションは、一次PCIバス112上でも切断される。その理由は、STOP_p信号が一次側でTRDY_pと同時に駆動されるからである。一次PCIバス112上のデータを受け入れる前にDEVSEL_sおよびTRDY_sを待つことによって、開始側のマスタがこのトランザクションを実行する最終的な役割を有することを確認する。
【0036】
リード・トランザクションでは、一旦リピータ116がアサートされたDEVSEL_sを感知したなら(クロック13)、リピータ116はスレーブ信号(AD[31:0]s, DEVSEL_s, TRDY_sおよびSTOP_s)の状態を、二次PCIバス118から一次PCIバス112にコピーする(クロック14)。二次バス118上でリトライされるトランザクションは、一次バス112上でもリトライされる。何故なら、STOP_p信号が一次側で、ニゲートされたTRDY_pと同時に駆動されるからである。
【0037】
次に図5を参照すると、下流バースト・ライト・トランザクション(downstream burst write transaction)が示されている。PCIリピータ116を介したライト・バースト処理は、一旦転送がターゲットに受け入れられたなら、ゼロ待ち状態でバースト・データを受け入れることによって行われる。PCIリピータ116は、IRDY_pおよびFRAME_p双方がアサートされているので、クロック3においてバースト・シーケンスを感知する。このトランザクションはバースト・ライト・トランザクションであるので、リピータは、単一のDWORDトランザクションの場合に行うように、クロック3においてIRDY_sをアサートすることはない。代わりに、PCIリピータ116は、クロック6まで、即ち、リピータ116がクロック5において一次バス112上で減算的デコード・タイミングを用いて最初のデータ・トランザクションを受け入れた次のクロックまで、二次バス118上のIRDY_sのアサートを遅らせる。この遅延は、PCIリピータが、PCI仕様のタイミングに合うように、時間内に次のトランザクションのバイト・イネーブル(TRDY_pのアサートに続く最初のクロックである、クロック8において得られる)を有することを保証するために必要とされる。
【0038】
一次PCIバス112上で開始されたトランザクションに応答して、PCIリピータ116は、二次バス118上で、1クロック遅れて(クロック2)、FRAME_s, AD[31:0]sおよびC/BE[3:0]sをアサートする。要求/許可信号対(REQ_1/GNT1_)が、一次側のマスタのバス112に対するアクセスの要求/獲得に対応する。PCIリピータ116は、クロック5上でディアサートされたDEVSEL_pを感知するので、クロック5において一次バス上でDEVSEL_pをアサートすることによって、二次バス118に代わって、トランザクションを減算的にデコードする。二次バス118上では、ターゲット120が、中速のデコード・タイミングを用いてアドレスおよびコマンドをデコードし、クロック4においてDEVSEL_sおよびTRDY_sをアサートする。一方、PCIリピータ116は、DEVSEL_sおよびTRDY_sのアサートを感知し、1クロック遅れて一次バス上にTRDY_pをエコーし(クロック5)、後続のデータ・トランザクションを開始する。二次バス上には中速のデコード・タイミングを示してあるが、いずれのタイミングにも対応し、その場合、最初のデータ・トランザクションを長くするという効果が得られる。PCIリピータ116は、待ち状態ゼロでデータを受け入れる。ターゲット120が待ち状態ゼロでデータを受け入れることができない場合、PCIリピータはこのデータをライト・ポスティング・バッファ210にバッファする。二次側は、ターゲットの速度に制限されるレートでデータを送出する。
【0039】
イニシエータおよびターゲット間において速度差が生ずる可能性があるので、PCIリピータは、そのライト・ポスティング・バッファ210においてサイクルを終了できない結果となる可能性もある。PCIリピータ116がそのライト・ポスティング・バッファ210を空にする前にバス・マスタが他のトランザクションを開始した場合、PCIリピータ116は、そのライト・ポスティング・バッファ210を空にするまで、二次PCIバス118を放棄しないので、デッドロック状態が発生する可能性がある。したがって、好適実施例によれば、PCIリピータ116がビジーである間にいずれのイニシエータが一次バス112を得るのを防止するために、PCIリピータ116は、二次PCIバス118上のバースト・シーケンスを終了している間は、一次PCIバス112の許可を停止する必要性をPCIアービタ111に通知する。リピータは、そのライト・ポスティング・バッファ210が空になるまで、二次PCIバス118を放棄しないので、同時に他のイニシエータは二次バス118にアクセスすることはできない。サイドバンド信号許可禁止(NOMOGNTS_)は、強制的にアービタ111が要求を許可するのを停止させる。NOMOGNTS_信号がアサートされている間、アービタ111はあらゆる未処理の許可信号、例えば、(GNT1)をディアサートする。二次PCIバス118上でバースト・シーケンスが完了した場合(クロック10)、PCIリピータ116はNOMOGNTS_信号をディアサートする。NOMOGNTS_ 信号がディアサートされた後、PCIアービタ11は自由に許可信号を再び発行する。
【0040】
クロック6上で最初のデータが一次側のリピータ116によって受け入れられると、次のトランザクションに対するデータおよびバイト・イネーブルが使用可能となる。次に、PCIリピータ116は、IRDY_sをアサートし、ライト・データ転送の発生を許可する。その後、ライト転送は、図5のクロック9に示すようにPCIリピータ116がSTOP_pをアサートすることによって、イニシエータを終了即ち切断するまで、続けられる。本例におけるように、ライト・ポスティング・バッファがその限界に近づきつつある場合、STOP_p信号をアサートする。PCIリピータ116は追加のレイテンシをトランザクションに付加するが、実際のバースト・レートはPCIバスの限界に近づく。
【0041】
次に図6を参照すると、PCIバス112のような一次PCIバス上のマスタと、メモリ・リード・コマンドを用いる二次PCIバス118のような二次PCIバス上のターゲットとの間の、従来技術によって試行されたバースト・リード・トランザクションが示されている。破線は望ましくない状態を示し、これを本発明が解決する。
【0042】
一次PCIバス112上のマスタが、PCIリピータ116(即ち、従来技術のリピータ)を介して、1回以上、DWORDを読み込もうとした場合、PCIリピータ116は、単一のデータ・フェーズの後(クロック7)、トランザクションを終了する。何故なら、PCIリピータは、要求元マスタからの次のバイト・イネーブル・セットを有していないからである。続いて、マスタは他のトランザクションを実行し、残りのデータを読み取らなければならない。したがって、トランザクションは、多数の単一データ転送に分解される。
【0043】
また、図6は二次バス許可(SBGNT_)信号も示す。この信号は、アービタ111のようなアービタによって供給され、二次バス・アービタ206のような二次バス・アービタをイネーブルする。通常、SBGNT_信号はクロック2上でアサートされ、二次アービタにGNT2_のような許可信号を発行させる。したがって、一旦二次PCIバス118がトランザクションを完了したなら(クロック5)、GNT2_に対応する要求をアサートした二次バス装置は、二次PCIバスを所有することになる(クロック6)。
【0044】
クロック6において二次PCIバス上で開始する破線内のトランザクションによって示されるように、PCIリピータ116(および従来技術のリピータ)の本質的なレイテンシのために、二次PCIバス118上のトランザクションは、一次PCIバス112がエコーされたトランザクションを受け取る用意ができる前に、開始する可能性がある(クロック6)。
【0045】
この問題の発生を防止するために、本発明のPCIリピータ116は、PCIリピータ116がメモリ・リード・コマンドを検出すると直ぐに、NOMOGNTS_信号をアサートし(クロック3)、FRAME_pをアサートに保持し、一次PCIバス112上のマスタがリード・トランザクションをバーストしなければならないことを示す。NOMOGNTS_信号は、PCIリピータ116が一次PCIバス112上のマスタに切断を通知するまで(クロック6においてTRDY_pおよびSTOP_pをアサートする)、アサートのまま保持される。これによって、トランザクションが両バス上で完了するまで、アービタ111,206が許可信号をアサートするのを防止する。リピータ116が、マスタおよびターゲットが同一バス(即ち、一次PCIバス112)上にあることを検出した場合、代わりに、DEVSEL_pがアサートされた(図示せず)後直ちにNOMOGNTS_信号をディアサートし、アービタ111に通常通り許可のパイプライン処理を可能とする。このように、PCIリピータ116は、リード・トランザクションが多数の単一データ転送に分解されるような、プリフェッチ不可能な領域へのリード・トランザクションを処理する。
【0046】
次に図7を参照すると、メモリ・リード・ラインおよびメモリ・リード多重PCIコマンド(memory read multiple PCI command)に関する従来技術のPCIリピータの別の問題が示されている。メモリ・リード・ラインおよびメモリ・リード多重コマンドは、プリフェッチ可能なアドレス範囲内のデータにアクセスするために用いられる。図7は、一次PCIバス上のマスタがメモリ・リード・ラインまたはメモリ・リード多重コマンドを開始した場合を示す。従来技術のPCIリピータは、二次側でサイクルを開始し、ディアサートされたFRAME_pをサンプリングするまで、新しいデータを要求し続ける。一次PCIバスが一次PCIバス上のスレーブを目標とする別のサイクルを自由に開始できる間(クロック10)、ターゲットが転送に待ち状態を追加し二次PCIバスをビジーにし続けると、問題が発生する。この場合、従来技術のPCIリピータは、二次バス上のトランザクションがクロック12まで終了しないので、トランザクション全体を失うことになる。
【0047】
次に図8を参照すると、好適実施例によるアービタの介入で図6および図7の問題を解決する、下流バースト・リード・シーケンスが示されている。マスタが、一次PCIバス112上で、二次PCIバス118上のターゲットに対して、メモリ・リード・ラインまたはメモリ・リード多重コマンドを開始する。PCIリピータ116は、クロック2上で二次PCIバス118上でコマンドを開始する。PCIリピータ116は、要求元マスタのバイト・イネーブルには無関係に、バイト・イネーブルを全てゼロにセットし、全てのバイトを読み込み、一次バス112上のマスタに先だって読み取り(即ち、プリフェッチ)ができるようにする(これはバイト・イネーブルがパイプラインされていないためである)。クロック5上において、トランザクションが一次PCIバス112上で肯定的に要求されていないので、PCIリピータ116は、トランザクションが下流に向かっているものと判断し、NOMOGNTS_信号をアサートし、二次PCIバス118がその現トランザクションを終了するまで、一次PCIバス112上の現許可(GNT1_)およびあらゆる後続の許可を取り消すことを、PCIアービタ111に通知する。NOMOGNTS_信号は、二次PCIバス118上でリードが完了するクロック12上でディアサートされる。
【0048】
PCIリピータ116が一次PCIバス112上で最後のデータ・フェーズを検出すると直ぐに、二次PCIバス118上におけるリード・プリフェッチは終了する。最後のデータ・フェーズは、クロック8上におけるFRAME_pのディアサートおよびクロック9上におけるIRDY_pのディアサートによって知らされる。クロック9上において、PCIリピータ116は、その最後のデータ・フェーズが二次PCIバス118上で完了したことを、クロック9上においてFRAME_s信号がディアサートされたときに通知する。したがって、PCIリピータ116が未だ二次PCIバス118上のターゲットから次のDWORDを読み出している間に、一次PCIバス112上のマスタは読み出しを終了する。PCIプロトコルに違反しないように、クロック12において二次PCIバス118上で最後のデータ・フェーズが完了することができるまで、PCIリピータは二次PCIバス118上にC/BE[3:0]sおよびIRDY_s信号を保持する。PCIリピータ116が最後のデータ・フェーズを検出した後、二次PCIバス118のリード・トランザクションが終了するとき、リピータ116はAD[31:0]pおよびC/BE[3:0]pバスを有効状態に駆動する(クロック11からクロック12まで)。したがって、PCIリピータ116は、更にデータを要求することによって、要求元マスタに先だって停留しようとする。未使用データは、PCIリピータ116によって破棄される。
【0049】
上流トランザクションは、二次PCIバス118上で開始され、一次PCIバス112上の装置を目標とするトランザクションである。PCIリピータは、下流トランザクションを処理するのと同じように、上流トランザクションを処理するが、いくつかの例外がある。PCIリピータ116は、上流コンフィギュレーション・サイクルには応答しない。
【0050】
PCIリピータ116に直面する問題の1つに、どのサイクルが上流に向かい、どのサイクルが下流に向かうのかを、如何にして判定するかというものがある。二者択一的な2通りの解決策が可能である。第1の解決策では、PCI−ISA間ブリッジの減算的デコード・ロジックを、下流トランザクションの間のみイネーブルする。PCIリピータ116は、二次PCIバス118上で開始された全てのトランザクションを、一次PCIバス112にブロードキャスト通信する。トランザクションが二次PCIバス118上の装置によって肯定的に要求されていない場合、それはリピータ116によって減算的に要求されていることになる。したがって、トランザクションは上流に送られるが、二次PCIバス118上の装置およびISAバス128上の装置間の対等トランザクションは使用することができない。第2の解決策では、PCIリピータ116が二次PCIバス118の動作を停止し、トランザクションを一次PCIバス112にエコーする。ターゲットが一次PCIバス112上にある場合、ターゲットは肯定的にトランザクションを要求する。トランザクションが一次バスPCIエージェントによって肯定的に要求されない場合、PCIリピータ116はトランザクションを肯定的に要求し、それを二次PCIバス118上で実行する。ターゲットがISA装置である場合、PCI−ISA間ブリッジ122は、二次PCIバスからのトランザクションを減算的に要求する。この好適な解決策は、バスの階層を処理するという利点がある。
【0051】
図9ないし図12は、最初の解決策に対応する。図に示し以下に説明する原理は、メモリ・トランザクションおよびI/Oトランザクションに等しく適用される。ここで図9を参照すると、二次PCIバス118上で開始し、一次PCIバス112上で終了する2つの単一DWORDトランザクションが示されている。最初のトランザクションは、中速のデコード・タイミングを用いて一次PCIバス112上の装置によって肯定的に要求されるライト・トランザクションであり、2番目のトランザクションは、中速のデコード・タイミングを用いて要求されるリード・トランザクションである。最初の上流トランザクションは、二次PCIバス118上でクロック1上において開始する。クロック2上でトランザクションは上流の一次PCIバス112にエコーされる。PCIリピータ116は、クロック3上において、ディアサートされたFRAME_sを検知し、これは単一のデータ・フェーズ・トランザクションであると判定し、IRDY_pをアサートして、ライト・トランザクションを完了させる。トランザクションは、中速のデコード・タイミングを用いてクロック4上において一次PCIバス112上で肯定的にデコードされる。リピータ116がクロック5上においてアサートされたDEVSEL_pをサンプルすると直ぐに、残りのスレーブ信号(TRDY_pおよびSTOP_p)と共に、DEVSEL_pの状態をDEVSEL_sにコピーする。
【0052】
上流リード・トランザクションは次のように行われる。このトランザクションはクロック7上において二次PCIバス118上で開始し、クロック8上において一次PCIバス112にエコーされる。クロック10においてトランザクションは一次PCIバス112上で受け入れられ、クロック11上においてDEVSEL_sが二次PCIバス118にエコーされる。クロック12上において、ターゲットは一次PCIバス112上に要求されたデータを置き、TRDY_pをアサートしてトランザクションを終了する。クロック13上において、AD[31:0]pおよびTRDY_pが二次PCIバス118にエコーされる。
【0053】
次に図10を参照すると、ターゲット切断ライト・トランザクションおよびそれに続くターゲット・リトライ・リード・トランザクションが示されている。PCIリピータ116は単一のデータ・フェーズ・トランザクションを転記しないので、PCIリピータ116は、下流トランザクションを処理するのと同様に、上流ターゲット切断を処理し、リトライする。クロック4において、一次PCIバス112上のターゲットが切断を通知すると、これはクロック5上においてPCIリピータ116によって二次PCIバス118上のイニシエータにエコーされる。同様に、クロック12上において一次PCIバス112上のターゲットによってリトライが通知され、次いでクロック13上においてPCIリピータ116によって、二次PCIバス118上のイニシエータにエコーされる。
【0054】
次に図11および図12を参照すると、それぞれ、上流バースト・ライト・シーケンス(upstream burst write sequence)および上流リード・シーケンス(upstream read sequence)が示されている。上流バースト・トランザクションは、現トランザクションが完了する後まで、アービタ111はPCIバス112および118をいずれのエージェントにも許可してはならない点において、下流バースト・トランザクションと同様である。これを行うには、二次PCIバス118上で開始されたトランザクションが一次PCIバス112上のターゲットによって受け入れられたことをPCIリピータ116が判定すると直ちにNOMOGNTS_信号をアサートする。一次PCIバス112上のターゲットは、高速デコード・タイミングを用いて、クロック3に示すように、DEVSEL_pをアサートすることによって、そのトランザクションの受け入れを示す。クロック4〜11に示すように、NOMOGNTS_信号は、トランザクションが一次PCIバス112上で完了するまで、アサートされたままとなっている。これらの例では、一次PCIバス112上のターゲットが、最後のライト・サイクルを受け入れる前に、待ち状態を挿入しても(図11のクロック8,9および図12のクロック9)、NOMOGNTS_信号はアサートされたままであることがわかる。
【0055】
図13〜図15は、第2の解決策に対応する。図13は、一次PCIバス112上で肯定的に要求された上流の単一データ・フェーズ・ライト・トランザクションを示す。図14は、一次PCIバス112または二次PCIバス118上で肯定的に要求されず、ISAバス128上で減算的に要求された、上流単一データ・フェーズ・ライト・トランザクションを示す。これらの図に示す原理は、メモリ・トランザクションおよびI/Oトランザクションにも同様に適用される。図13において、トランザクションはクロック1上において二次PCIバス118上で開始され、クロック2上において一次PCIバス112にエコーされる。
【0056】
予期される一次バス・ターゲットに応答する十分な時間を確保するために、二次PCIバス118のクロック(CLK)は、クロック2の終端においてクロック・ディスエーブル(CLK_DIS)信号によって、2PCIクロック・サイクルの間停止される。この2クロック遅延によって、ISA−PCI間ブリッジ122がトランザクションを減算的に要求する前に、一次PCIバス112のターゲットまたは二次PCIバス118のターゲットのいずれかがトランザクションを要求できるようにする。一次バス・エージェントは、クロック3,4または5上においてDEVSEL_pをアサートすることによって、トランザクションを要求することができる。二次バス・エージェントは、クロック2,5または6上においてDEVSEL_sをアサートすることによって、トランザクションを要求することができる。クロック4の終端において、CLKは再び起動される。
【0057】
図13において、一次バス・ターゲットは、クロック5上においてDEVSEL_pをアサートすることによって、低速のデコード・タイミングを用いてトランザクションを要求する。クロック6上において、PCIリピータはDEVSEL_pのアサートを感知し、DEVSEL_pおよびTRDY_pを二次PCIバス118にエコーし、二次バス118上でトランザクションを終了する。即ち、ISA−PCI間ブリッジ122による減算的デコードは行われない。
【0058】
次に図14に移ると、クロック1上においてトランザクションが二次PCIバス118上で開始し、クロック2上において一次PCIバス112にエコーされ、一次バス・ユニット200の従来のデコード・ロジックは、アドレス範囲が一次PCIバス112上のターゲットに対応するか否かについて判定を行うことができる。図13に示すように、二次PCIバス・クロック(CLK)は再び2クロックの間停止される。しかしながら、今回は、トランザクションは一次PCIバス112上では要求されない。クロック6上において、PCIリピータ116はDEVSEL_pのニゲートされた状態を感知し、ターゲットが一次PCIバス112上にないと判定し、DEVSEL_pをアサートして、一次バス112からトランザクションを減算的に要求する。また、二次PCIバス118上でも、トランザクションは要求されていない。クロック7上において、PCIリピータ116は、DEVSEL_sが未だアサートされていないこと、および減算的デコード・タイミングによるDEVSEL_pがアサートされたことを感知し、これによって、ターゲットがISAバス128上にあると判定する。クロック7上において、ISA−PCI間ブリッジは、DEVSEL_sが未だアサートされていないことを感知し、DEVSEL_sをアサートして、トランザクションを減算的に要求する。クロック9上においてトランザクションは正常に完了する。このように、PCIリピータ116に何ら特殊な上流アドレス・デコーディング・ロジックを内蔵することを必要とせずに、トランザクションの目標は透過的に判定される。
【0059】
次に図15を参照すると、上流プリフェッチ可能バースト・リード・シーケンス(upstream prefetchable burst read sequence)が示されている。この第2の解決策では、上流バースト・トランザクションは、現トランザクションが終了した後まで、アービタ111はPCIバス112および118をいずれのエージェントにも許可してはならないという点において、下流バースト・トランザクションと同様である。トランザクションは、クロック1上において二次PCIバス上で開始され、クロック2上において一次PCIバス112にエコーされ、ターゲットが一次バス上にあるか否かについて判定が行われる。バイト・イネーブルC/BE[3:0]pはゼロに強制されるので、プリフェッチを行うことができる。クロック2上において、二次バス118上でイニシエータによってIRDY_sがアサートされ、クロック3上において一次PCIバス112にエコーされる。
【0060】
一次PCIバス112上の予測されるターゲットがトランザクションをデコードしている間、二次PCIバスのPCIクロック(CLK)は、PCIリピータ116によって2クロックの間停止される。クロック5において、二次PCIバス・クロックは再び起動される。一次PCIバス112上のターゲットは、クロック4上においてDEVSEL_pをアサートすることによって、トランザクションを受け入れ、PCIリピータ116は、クロック5上において、信号(DEVSEL_s)を二次バス上にエコーする。したがって、二次PCIバス118の減算的デコード・エージェントは、トランザクションが二次バス118上で肯定的に要求されたことを想定する。
【0061】
クロック5上において、PCIリピータ116はアサートされたFRAME_pおよびDEVSEL_pを感知し、それに応答してNOMOGNTS_をアサートし、現シーケンスが一次PCIバス112上で完了するまで、アービタ111がPCIバスを二次バス上のイニシエータに許可するのを禁止する。クロック9上において、PCIリピータ116はバースト・リード・シーケンスの完了を感知し、それに応答してNOMOGNTS_信号をディアサートする。
【0062】
一次PCIバス112上のターゲットによってバースト・シーケンスが要求されなかった場合、シーケンスは二次PCIバス118上のターゲットによって要求されたことになる。最初に二次バス上でトランザクションを実行する前に、一次バス上でデコードするために、トランザクションを上流に送ることによって、PCIリピータ116はPCI装置の固有のアドレス・デコーディング・ロジックを使用することができる。したがって、PCIリピータ116は、これらのトランザクションを処理するために、何ら特殊な下流または上流デコード・ロジックを必要としない。
【0063】
上述の本発明の開示および説明は、本発明の例示および説明のためのものであり、本発明の精神から逸脱することなく、例示した回路および構成ならびに動作方法の詳細のみならず、サイズ、形状、物質、構成要素、回路素子、配線接続および接点において種々の変更が可能である。
【図面の簡単な説明】
【図1】本発明の好適実施例によるコンピュータ・システムを示すブロック図である。
【図2】本発明の好適実施例によるPCIリピータを示すブロック図である。
【図3】下流単一データ・フェーズ・ライト・トランザクションおよびそれに続く下流単一データ・フェーズ・リード・トランザクションを示すタイミング図である。
【図4】ターゲット切断ライト・トランザクションおよびそれに続くターゲット・リトライ・リード・トランザクションを示すタイミング図である。
【図5】下流バースト・ライト・シーケンスを示すタイミング図である。
【図6】下流バースト・リード・シーケンスを示すタイミング図である。
【図7】アービタの介入のない下流バースト・リード・シーケンスを示すタイミング図である。
【図8】アービタの介入がある下流バースト・リード・シーケンスを示すタイミング図である。
【図9】上流単一データ・フェーズ・ライト・トランザクションおよびそれに続く上流単一データ・フェーズ・リード・トランザクションを示すタイミング図である。
【図10】上流ターゲット切断ライト・トランザクションおよびそれに続く上流リード・リトライ・トランザクションを示す図である。
【図11】上流バースト・ライト・シーケンスを示すタイミング図である。
【図12】上流バースト・リード・シーケンスを示すタイミング図である。
【図13】一次バス上で肯定的に要求された、上流単一フェーズ・ライト・トランザクションを示すタイミング図である。
【図14】一次バス上でエコーされ、二次バスによって減算的に要求された上流単一データ・フェーズ・ライト・トランザクションを示すタイミング図である。
【図15】一次バス上で要求された上流バースト・リード・シーケンスを示すタイミング図である。
Claims (9)
- 第1バスに接続されているイニシエータと第2バスに接続されているターゲットとの間でトランザクションを通信する方法において、
(a)バス・リピータが、前記第1バス上に提供されているイニシエータ制御信号を検出してトランザクションを開始するステップであって、前記イニシエータ制御信号がフレーム指示およびイニシエータ・レディ指示を含んでいる、トランザクション開始ステップと、
(b)前記バス・リピータが、前記第2バス上で前記トランザクションが完了するまで、前記第2バスに前記イニシエータ制御信号を中継する一方、前記トランザクションがバースト・ライト・トランザクションである場合、ターゲット・レディ指示が前記第1バスに中継されるまで、前記イニシエータ・レディ指示を前記第2バスに中継させないステップと、
(c)前記バス・リピータが、前記中継されたイニシエータ制御信号に応答して、前記第2バス上に提供されたターゲット制御信号を検出するステップであって、前記ターゲット制御信号がターゲット・レディ指示を含む、ステップと、
(d)前記バス・リピータが、前記トランザクションが前記第1バス上で完了するまで、前記ターゲット制御信号を前記第1バスに中継するステップと
からなることを特徴とする方法。 - 第1バスに接続されているイニシエータと第2バスに接続されているターゲットとの間でトランザクションを通信する方法において、
(a)前記バス・リピータが、前記第1バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するステップであって、前記イニシエータ制御信号がフレーム指示とイニシエータ・レディ指示とを含む、ステップと、
(b)前記バス・リピータが、前記トランザクションが前記第2バス上で完了するまで、前記イニシエータ制御信号を前記第2バスに中継するステップと、
(c)前記バス・リピータが、前記トランザクションがバースト・リード・トランザクションである場合、該トランザクションが前記第2バス上で完了するまで、前記イニシエータ・レディ指示を前記第2バス上で保持するステップと、
(d)前記バス・リピータが、前記中継されたイニシエータ指示に応答して前記第2バス上で与えられたターゲット制御信号を検出するステップであって、前記ターゲット制御信号がターゲット・レディ指示を含む、ステップと、
(e)前記バス・リピータが、前記トランザクションが前記第1バス上で完了するまで、前記ターゲット制御信号を前記第1バスに中継するステップと
からなることを特徴とする方法。 - 第1バスに接続されているイニシエータと第2バスに接続されているターゲットとの間でトランザクションを通信する方法であって、前記バスに対するアクセスが、バス・リピータのアービタによって与えられる許可指示によって示されるよう構成されている、方法において、
(a)前記バス・リピータが、前記第1バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するステップであって、前記イニシエータ制御信号がフレーム指示とイニシエータ・レディ指示とを含む、ステップと、
(b)前記バス・リピータが、前記トランザクションが前記第2バス上で完了するまで、前記イニシエータ制御信号を前記第2バスに中継し、かつ、前記トランザクションがバースト・ライト・トランザクションである場合、前記ターゲット・レディ指示が第1バスに中継されるまで、前記イニシエータ・レディ指示を中継させないステップと、
(c)前記バス・リピータが、前記中継されたイニシエータ制御信号に応答して、前記第2バス上に与えられるターゲット制御信号を検出するステップであって、前記ターゲット制御信号がターゲット・レディ指示と装置選択指示とを含む、ステップと、
(d)前記バス・リピータが、前記トランザクションが前記第1バス上で完了するまで、前記ターゲット制御信号を前記第1バスに中継するステップと、
(e)前記バス・リピータが、前記トランザクションが両バス上で完了するまで、前記アービタにいずれの許可指示も与えさせないステップと
からなることを特徴とする方法。 - 第1バスを第2バスに接続するバス・リピータであって、前記第1バスにはイニシエータが接続され、前記第2バスにはターゲットが接続されている、バス・リピータにおいて、
前記第1バスから前記第2バスへの信号を検出し中継する第1バス・ユニットと、
前記第2バスから前記第1バスへの信号を検出して中継する第2バス・ユニットと
からなり、
前記第1バス・ユニットは、前記第1バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するように動作し、前記イニシエータ制御信号はフレーム指示とイニシエータ・レディ指示とを含み、
前記第1バス・ユニットは、前記第2バス上で前記トランザクションが完了するまで、前記第2バスに前記イニシエータ制御信号を中継する一方、前記トランザクションがバースト・ライト・トランザクションである場合、ターゲット・レディ指示が前記第1バスに中継されるまで、前記イニシエータ・レディ指示を前記第2バスへ中継させないように動作し、
前記第2バス・ユニットは、前記中継されたイニシエータ制御信号に応答して、前記第2バス上に与えられたターゲット制御信号を検出するように動作し、前記ターゲット制御信号はターゲット・レディ指示を含み、
前記第2バス・ユニットは、前記トランザクションが前記第1バス上で完了するまで、前記ターゲット制御信号を前記第1バスに中継するように動作する
ことを特徴とするバス・リピータ。 - 第1バスを第2バスに接続するバス・リピータであって、前記第1バスにはイニシエータが接続され、前記第2バスにはターゲットが接続されている、バス・リピータにおいて、
前記第1バスから前記第2バスへの信号を検出し中継する第1バス・ユニットと、
前記第2バスから前記第1バスへの信号を検出して中継する第2バス・ユニットと
を含み、
前記第1バス・ユニットは、前記第1バス上に与えられたイニシエータ制御信号のアサートを検出してトランザクションを開始するように動作し、前記イニシエータ制御信号がフレーム指示とイニシエータ・レディ指示とを含み、
前記第1バス・ユニットは、前記トランザクションが前記第2バス上で完了するまで、前記イニシエータ制御信号を前記第2バスに中継し、一方、前記トランザクションがバースト・リード・トランザクションである場合、該トランザクションが前記第2バス上で完了するまで、前記イニシエータ・レディ指示を前記第2バス上で保持するように動作し、
前記第2バス・ユニットは、前記中継されたイニシエータ制御信号に応答して、前記第2バス上でターゲット制御信号を検出するように動作し、前記ターゲット制御信号がターゲット・レディ指示を含み、
前記第2バス・ユニットは、前記トランザクションが前記第1バス上で完了するまで、前記ターゲット制御信号を前記第1バスに中継するように動作する
ことを特徴とするバス・リピータ。 - 第1バスを第2バスに接続するバス・リピータであって、前記第1バスにはイニシエータが接続され、前記第2バスにはターゲットが接続されており、前記バスに対するアクセスが、アービタによって与えられる許可指示によって示される、バス・リピータにおいて、
前記第1バスから前記第2バスへの信号を検出し中継する第1バス・ユニットと、
前記第2バスから第1バスへの信号を検出し中継する第2バス・ユニットと
を備え、
前記第1バス・ユニットは、前記第1バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するように動作し、前記イニシエータ制御信号がフレーム指示とイニシエータ・レディ指示とを含み、
前記第1バス・ユニットは、前記トランザクションが前記第2バス上で完了するまで、前記イニシエータ制御信号を前記第2バスに中継するように動作し、
前記第1バス・ユニットは、前記トランザクションがバースト・ライト・トランザクションである場合、前記ターゲット・レディ指示が第1バスに中継されるまで、前記イニシエータ・レディ指示を中継させないように動作し、
前記第1バス・ユニットは、前記トランザクションが両バス上で完了するまで、前記アービタにあらゆる許可指示を与えさせないように動作し、
前記第2バス・ユニットは、前記中継されたイニシエータ制御信号に応答して前記第2バス上に与えられるターゲット制御信号を検出するように動作し、前記ターゲット制御信号がターゲット・レディ指示を含み、
前記第2バス・ユニットは、前記トランザクションが前記第1バス上で完了するまで、前記ターゲット制御信号を前記第1バスに中継するように動作する
ことを特徴とするバス・リピータ。 - コンピュータ・システムにおいて、
イニシエータが接続されている第1バスと、
ターゲットが接続されている第2バスと、
前記第1及び第2バスの一方に接続されているプロセッサと、
前記第1及び第2バスの一方に接続されているハード・ディスク・ドライブ・システムと、
前記第1バスを前記第2バスに接続するリピータあって、前記第1バスから前記第2バスへの信号を検出し中継する第1バス・ユニットと、前記第2バスから関第1バスへの信号を検出し中継する第2バス・ユニットとを含むリピータと
からなり、
前記第1バス・ユニットは前記第1バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するように動作し、前記イニシエータ制御信号はフレーム指示とイニシエータ・レディ指示とを含み、
前記第1バス・ユニットは、前記第2バス上で前記トランザクションが完了するまで、前記第2バスに前記イニシエータ制御信号を中継する一方、前記トランザクションがバースト・ライト・トランザクションである場合、ターゲット・レディ指示が前記第1バスに中継されるまで、前記イニシエータ・レディ指示を中継させないように動作し、
前記第2バス・ユニットは、前記中継されたイニシエータ制御信号に応答して、前記第2バス上に与えられたターゲット制御信号を検出するように動作し、前記ターゲット制御信号はターゲット・レディ指示を含み、
前記第2バス・ユニットは、前記トランザクションが前記第1バス上で完了するまで、前記ターゲット制御信号を前記第1バスに中継するように動作する
ことを特徴とするコンピュータ・システム。 - コンピュータ・システムにおいて、
イニシエータが接続されている第1バスと、
ターゲットが接続されている第2バスと、
前記第1及び第2バスの一方に接続されているプロセッサと、
前記第1及び第2バスの一方に接続されているハード・ディスク・ドライブ・システムと、
前記第1バスを前記第2バスに接続するリピータであって、前記第1バスから前記第2バスへの信号を検出し中継する第1バス・ユニットと、前記第2バスから前記第1バスへの信号を検出し中継する第2バス・ユニットを含むリピータと
からなり、
前記第1バス・ユニットは、前記第1バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するように動作可能であり、前記イニシエータ制御信号がフレーム指示とイニシエータ・レディ指示とを含み、
前記第1バス・ユニットは、前記トランザクションが前記第2バス上で完了するまで、前記イニシエータ制御信号を前記第2バスに中継し、前記トランザクションがバースト・リード・トランザクションである場合、該トランザクションが前記第2バス上で完了するまで、前記イニシエータ・レディ指示を前記第2バス上で保持するように動作し、
前記第2バス・ユニットは、前記中継されたイニシエータ制御信号に応答して、前記第2バス上に与えられたターゲット制御信号を検出するように動作し、前記ターゲット制御信号がターゲット・レディ指示を含み、
前記第2バス・ユニットは、前記トランザクションが前記第1バス上で完了するまで、前記ターゲット制御信号を前記第1バスに中継するように動作する
ことを特徴とするコンピュータ・システム。 - コンピュータ・システムにおいて、
イニシエータが接続されている第1バスと、
ターゲットが接続されている第2バスと、
前記第1及び第2バスの一方に接続されているプロセッサと、
前記第1及び第2バスの一方に接続されているハード・ディスク・ドライブ・システムと、
前記第1及び第2バスへのアクセスを許可するアービタと、
前記第1バスを前記第2バスに接続するリピータであって、前記第1バスから前記第2バスへの信号を検出し中継する第1バス・ユニットと、前記第2バスから第1バスへの信号を検出し中継する第2バス・ユニットとを含むリピータと
からなり、
前記第1バス・ユニットは、前記第1バス上に与えられたイニシエータ制御信号を検出してトランザクションを開始するように動作し、前記イニシエータ制御信号がフレーム指示とイニシエータ・レディ指示とを含み、
前記第1バス・ユニットは、前記トランザクションが前記第2バス上で完了するまで、前記イニシエータ制御信号を前記第2バスに中継するように動作し、
前記第1バス・ユニットは、前記トランザクションがバースト・ライト・トランザクションである場合、前記ターゲット・レディ指示が第1バスに中継されるまで、前記イニシエータ・レディ指示が中継されないように動作し、
前記第1バス・ユニットは、前記トランザクションが両バス上で完了するまで、前記アービタにあらゆる許可指示を与えさせないように動作し、
前記第2バス・ユニットは、前記中継されたイニシエータ制御信号に応答して前記第2バス上に与えられるターゲット制御信号を検出するように動作し、前記ターゲット制御信号がターゲット・レディ指示を含み、
前記第2バス・ユニットは、前記トランザクションが前記第1バス上で完了するまで、前記ターゲット制御信号を前記第1バスに中継するように動作する
ことを特徴とするコンピュータ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US774123 | 1996-12-23 | ||
US08/774,123 US5918026A (en) | 1996-12-23 | 1996-12-23 | PCI to PCI bridge for transparently completing transactions between agents on opposite sides of the bridge |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10198629A JPH10198629A (ja) | 1998-07-31 |
JP4077060B2 true JP4077060B2 (ja) | 2008-04-16 |
Family
ID=25100301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35527897A Expired - Fee Related JP4077060B2 (ja) | 1996-12-23 | 1997-12-24 | Pci−pci間のトランザクション通信方法及び装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5918026A (ja) |
JP (1) | JP4077060B2 (ja) |
SG (1) | SG65033A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3403284B2 (ja) * | 1995-12-14 | 2003-05-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理システム及びその制御方法 |
US6263389B1 (en) * | 1998-01-21 | 2001-07-17 | Micron Technology, Inc. | Apparatus for increasing the number of loads supported by a host bus |
US6128686A (en) * | 1998-06-15 | 2000-10-03 | Compaq Computer Corporation | Hiding peripheral memory transactions on a local bus within a peripheral controller from a host system bus |
US6266731B1 (en) | 1998-09-03 | 2001-07-24 | Compaq Computer Corporation | High speed peripheral interconnect apparatus, method and system |
US6816934B2 (en) * | 2000-12-22 | 2004-11-09 | Hewlett-Packard Development Company, L.P. | Computer system with registered peripheral component interconnect device for processing extended commands and attributes according to a registered peripheral component interconnect protocol |
US6275887B1 (en) * | 1999-03-17 | 2001-08-14 | Intel Corporation | Method and apparatus for terminating a bus transaction if the target is not ready |
US6529991B1 (en) * | 1999-05-12 | 2003-03-04 | International Business Machines Corporation | Ordering mechanism, ordering method and computer program product for implementing PCI peer to functions |
US6636927B1 (en) | 1999-09-24 | 2003-10-21 | Adaptec, Inc. | Bridge device for transferring data using master-specific prefetch sizes |
US6574695B1 (en) * | 2000-01-06 | 2003-06-03 | Sun Microsystems, Inc. | System and method for providing hot swap capability using existing circuits and drivers with minimal changes |
US6581130B1 (en) | 2000-04-04 | 2003-06-17 | Hewlett Packard Development Company, L.P. | Dynamic remapping of address registers for address translation between multiple busses |
US7103697B2 (en) * | 2003-01-08 | 2006-09-05 | Emulex Design & Manufacturing Corporation | Flow-through register |
US7174410B2 (en) * | 2003-04-17 | 2007-02-06 | International Business Machines Corporation | Method, apparatus and computer program product for write data transfer |
US7107384B1 (en) * | 2004-03-01 | 2006-09-12 | Pericom Semiconductor Corp. | Dynamic PCI-bus pre-fetch with separate counters for commands of commands of different data-transfer lengths |
US7151709B2 (en) * | 2004-08-16 | 2006-12-19 | Micron Technology, Inc. | Memory device and method having programmable address configurations |
US10931329B2 (en) * | 2016-12-29 | 2021-02-23 | Intel Corporation | High speed interconnect with channel extension |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522050A (en) * | 1993-05-28 | 1996-05-28 | International Business Machines Corporation | Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus |
US5708794A (en) * | 1993-08-10 | 1998-01-13 | Dell Usa, L.P. | Multi-purpose usage of transaction backoff and bus architecture supporting same |
US5664122A (en) * | 1993-11-12 | 1997-09-02 | Intel Corporation | Method and apparatus for sequencing buffers for fast transfer of data between buses |
US5625829A (en) * | 1994-03-25 | 1997-04-29 | Advanced Micro Devices, Inc. | Dockable computer system capable of symmetric multi-processing operations |
US5625824A (en) * | 1995-03-03 | 1997-04-29 | Compaq Computer Corporation | Circuit for selectively preventing a microprocessor from posting write cycles |
US5621900A (en) * | 1995-05-17 | 1997-04-15 | Intel Corporation | Method and apparatus for claiming bus access from a first bus to a second bus prior to the subtractive decode agent claiming the transaction without decoding the transaction |
US5734850A (en) * | 1995-07-05 | 1998-03-31 | National Semiconductor Corporation | Transparent bridge between of a computer system and a method of interfacing the buses to operate as a single logical bus |
US5632021A (en) * | 1995-10-25 | 1997-05-20 | Cisco Systems Inc. | Computer system with cascaded peripheral component interconnect (PCI) buses |
US5764933A (en) * | 1996-02-26 | 1998-06-09 | Vlsi Technology, Inc. | Deadlock prevention in a two bridge system by flushing write buffers in the first bridge |
US5761454A (en) * | 1996-08-27 | 1998-06-02 | Vlsi Technology, Inc. | Deadlock resolution methods and apparatus for interfacing concurrent and asynchronous buses |
-
1996
- 1996-12-23 US US08/774,123 patent/US5918026A/en not_active Expired - Lifetime
-
1997
- 1997-11-26 SG SG1997004139A patent/SG65033A1/en unknown
- 1997-12-24 JP JP35527897A patent/JP4077060B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
SG65033A1 (en) | 1999-05-25 |
US5918026A (en) | 1999-06-29 |
JPH10198629A (ja) | 1998-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5802324A (en) | Computer system with PCI repeater between primary bus and second bus | |
US5838932A (en) | Transparent PCI to PCI bridge with dynamic memory and I/O map programming | |
US5450551A (en) | System direct memory access (DMA) support logic for PCI based computer system | |
JP4077060B2 (ja) | Pci−pci間のトランザクション通信方法及び装置 | |
KR100742718B1 (ko) | 컴퓨터 시스템의 제1 및 제2버스사이에 연결된 투명브리지, 이를 포함하는 시스템 및 컴퓨터 시스템의 제1 및 제2 버스의 브리징 방법 | |
US6226700B1 (en) | Computer system with bridge logic that includes an internal modular expansion bus and a common master interface for internal master devices | |
US6581124B1 (en) | High performance internal bus for promoting design reuse in north bridge chips | |
US6356963B1 (en) | Long latency interrupt handling and input/output write posting | |
US5918072A (en) | System for controlling variable length PCI burst data using a dummy final data phase and adjusting the burst length during transaction | |
US5774681A (en) | Method and apparatus for controlling a response timing of a target ready signal on a PCI bridge | |
US5796968A (en) | Bus arbiter used in a computer system | |
JP2001075918A (ja) | 可変優先順位およびフェアネスを使用する、機能強化されたバス・アービタ | |
US5951667A (en) | Method and apparatus for connecting expansion buses to a peripheral component interconnect bus | |
WO1996035175A2 (en) | Deadlock avoidance in a split-bus computer system | |
JPH10116246A (ja) | バス上のアドレスの絶対的及び減算的デコード装置及び方法 | |
US6247087B1 (en) | Bus system for shadowing registers | |
EP1068573B1 (en) | Method and apparatus for arbitrating access to multiple buses in a data processing system | |
JPH0916406A (ja) | コンピュータシステム | |
US5964856A (en) | Mechanism for data strobe pre-driving during master changeover on a parallel bus | |
US5778235A (en) | Computer system and arbitrator utilizing a bus bridge that avoids livelock | |
JP2963426B2 (ja) | バスブリッジ装置及びトランザクションフォワード方法 | |
US5590316A (en) | Clock doubler and smooth transfer circuit | |
US5754825A (en) | Lower address line prediction and substitution | |
US6202117B1 (en) | Host adapter integrated circuit having autoaccess pause | |
US5794000A (en) | Method and apparatus for avoiding erroneous abort occurrences in PCI-bus systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041104 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041104 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070319 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070515 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070814 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070817 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071115 |
|
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: 20080117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080131 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110208 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130208 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |