首页 / 专利库 / 电信 / 并行总线 / PCI总线 / Inter-bus bridge used for plural bus information processing systems to optimize transfer of data between system bus and peripheral bus

Inter-bus bridge used for plural bus information processing systems to optimize transfer of data between system bus and peripheral bus

阅读:831发布:2023-03-08

专利汇可以提供Inter-bus bridge used for plural bus information processing systems to optimize transfer of data between system bus and peripheral bus专利检索,专利查询,专利分析的服务。并且PURPOSE: To maximize the data transfer efficiency between a CPU local bus and a PCI bus or its analogue by optimizing the transmitting rate against a buffer via a logical network included in a host bridge based on a fact whether the data are discontinuous between a system bus and its peripheral one.
CONSTITUTION: A PCI host bridge 20 functions as an interface between a system bus (S bus) 16 and a main PCI bus 22. A FIFO buffer logical mechanism 102 temporarily stores the data which are transmitted between both buses 16 and 22. The mechanism 102, an S bus interface logical mechanism 104 and a PCI bus interface logical mechanism 106 optimize the transmitting speed based on a fact whether the transmitted data are discontinuous. In other words, the mechanism 100 converts the transfer of data between both buses 16 and 22 and also optimizes this data transfer speed. Thus, the buses 16 and 22 can be connected to each other and the data transfer efficiency can be maximized.
COPYRIGHT: (C)1994,JPO,下面是Inter-bus bridge used for plural bus information processing systems to optimize transfer of data between system bus and peripheral bus专利的具体信息内容。

【特許請求の範囲】
  • 【請求項1】中央演算処理装置と、 前記中央演算処理装置に接続されたシステム・バスと、 それ自体に周辺装置を接続するための周辺バスと、 前記システム・バスを前記周辺バスに接続するためのホスト・ブリッジとを備え、 前記ホスト・ブリッジが、前記システム・バスと前記周辺バスの間で送信されるデータを一時的に記憶するためのバッファを含み、 前記ホスト・ブリッジがさらに、前記データが非連続データかどうかに基づいて前記バッファとの間で前記データが送信される速度を最適化する論理ネットワークを含むことを特徴とする、情報処理システム。
  • 【請求項2】前記論理ネットワークがまた、前記システム・バスを介して前記データがそこに書き込まれあるいはそこから読み取られるアドレスに応じて、前記バッファとの間で前記データが送信される速度を最適化することを特徴とする、請求項1に記載の情報処理システム。
  • 【請求項3】前記システム・バスを介して前記データがそこに書き込まれあるいはそこから読み取られる前記アドレスを提供するための増分論理機構を含むことを特徴とする、請求項1に記載の情報処理システム。
  • 【請求項4】前記増分論理機構が、前記アドレスを1アドレスだけ増分する第1の加算機構と、前記システム・
    バスを介して前記データが書き込まれあるいは読み取られる直後に前記アドレスを2アドレスだけ増分する第2
    の加算機構とを含むことを特徴とする、請求項3に記載の情報処理システム。
  • 【請求項5】前記増分論理機構が、前記システム・バスを介して前記データが書き込まれあるいは読み取られた直後にバースト・データ転送内のアドレスをスキップすべきかどうかに応じて、前記第1の加算機構または第2
    の加算機構の前記増分されたアドレスを出力するマルチプレクサを含むことを特徴とする、請求項4に記載の情報処理システム。
  • 【請求項6】前記周辺バスがPCIバスであることを特徴とする、請求項1に記載の情報処理システム。
  • 【請求項7】前記周辺バスが多重化バスであることを特徴とする、請求項1に記載の情報処理システム。
  • 【請求項8】中央演算処理装置と、 前記中央演算処理装置に接続されたシステム・バスと、 それ自体に周辺装置を接続するためのPCIバスと、 前記システム・バスを前記周辺バスに接続するためのホスト・ブリッジとを備え、 前記ホスト・ブリッジが、前記システム・バスと前記P
    CIバスの間で送信されるデータを一時的に記憶するためのバッファを含み、 前記ホスト・ブリッジがさらに、前記バッファとの間で前記PCIバスおよび前記システム・バスを介して前記データが送信される速度を最適化する論理ネットワークを含むことを特徴とする、情報処理システム。
  • 【請求項9】前記論理ネットワークが、前記バッファ内の記憶空間がいつ前記データを含まなくなるかを感知するためのペーシング論理機構を含むことを特徴とする、
    請求項8に記載の情報処理システム。
  • 【請求項10】前記ペーシング論理機構が、前記記憶空間が空のとき、マスタ周辺装置へのイネーブル信号を活動化することを特徴とする、請求項9に記載の情報処理システム。
  • 【請求項11】前記マスタ周辺装置が、前記マスタが前記イネーブル信号を受信したとき、前記データ列を前記記憶空間に書き込むことを特徴とする、請求項10に記載の情報処理システム。
  • 【請求項12】前記ペーシング論理機構が、前記記憶空間が前記データで一杯のとき、前記イネーブル信号を非活動化することを特徴とする、請求項10に記載の情報処理システム。
  • 【請求項13】前記ペーシング論理機構が、前記記憶空間がいつ前記データで一杯になるかを感知するためのものでもあることを特徴とする、請求項9に記載の情報処理システム。
  • 【請求項14】前記ペーシング論理機構が、前記記憶空間が前記データで一杯のとき、マスタ周辺装置へのイネーブル信号を活動化することを特徴とする、請求項13
    に記載の情報処理システム。
  • 【請求項15】前記マスタ周辺装置が、前記イネーブル信号を受信したとき、前記記憶空間内の前記データを読み取ることを特徴とする、請求項14に記載の情報処理システム。
  • 【請求項16】中央演算処理装置と、 前記中央演算処理装置に接続されたシステム・バスと、 それ自体に周辺装置を接続するための周辺バスと、 前記システム・バスを前記周辺バスに接続するためのホスト・ブリッジとを備え、 前記ホスト・ブリッジが、前記システム・バスと前記周辺バスの間で送信されるデータを一時的に記憶するためのバッファを含み、 前記ホスト・ブリッジがさらに、前記周辺バスに接続されたマスタ周辺装置が、前記システム・バスに接続されたスレーブに向けられた読取りバースト転送を開始する際に、前記システムを介した前記データの前記バッファへの事前取込みを行うための論理機構を含むことを特徴とする、情報処理システム。
  • 【請求項17】前記論理機構が、前記マスタ周辺装置がいつ前記読取りバースト転送を開始するかを感知するためのセンサを含むことを特徴とする、請求項16に記載の情報処理システム。
  • 【請求項18】前記読取りバースト転送がいつ完了したかを判定し、前記読取りバースト転送時に読み取られなかったデータを前記バッファからクリアするための信号を始動するための検出器を含むことを特徴とする、請求項16に記載の情報処理システム。
  • 【請求項19】前記周辺バスがPCIバスであることを特徴とする、請求項16に記載の情報処理システム。
  • 【請求項20】前記周辺バスが多重化バスであることを特徴とする、請求項16に記載の情報処理システム。
  • 说明书全文

    【発明の詳細な説明】

    【0001】

    【産業上の利用分野】本発明は全般的には、複数バス・
    コンピュータ環境でバスを相互接続するためのブリッジに関し、具体的には、相互接続されたバスの異なるデータ管理プロトコルの動作を同期させ、それによってバス間のデータ転送効率を最適化するための、バッファに組み込まれたブリッジに関する。

    【0002】コンピュータ・システムまたは情報処理システムは通常、複数のバスを含み、システム中の各バスには、それを介してローカルで相互に通信する装置が接続されている。 たとえば、典型的なコンピュータ・システムは、中央演算処理装置(CPU)と接続され、かつCPUが、接続された他の装置と直接通信するために使用する、システム・バスまたはCPUローカル・バスを含む。 システムは、1つまたは複数の周辺バスを含むこともできる。 周辺バスは入出装置(I/O)やグラフィクス・パッケージなどの周辺装置をコンピュータ・システムに接続する。

    【0003】一般に、システム・バスおよび周辺バスは、それぞれ異なる1組の標準プロトコルまたは規則を使用して、それに接続された異なる装置および構成要素の間でデータ転送を行う。 このようなプロトコルはバスに組み込まれ、バスの「アーキテクチャ」と呼ばれる。
    したがって、周辺バスに接続された周辺装置とシステム・バスに接続されたCPUまたは他のシステム構成要素との間でデータを転送しなければならないときに通信の問題が発生する。 そのようなデータ転送には異なるバス・アーキテクチャが関与するので、第1のバス・アーキテクチャから転送されるデータが、受信側の第2のバス・アーキテクチャが使用または認識できる形でないことがある。

    【0004】したがって、1つのバス・アーキテクチャから他のバス・アーキテクチャに転送されるデータを「変換する」ための機構が必要である。 この変換機構は通常、2つの異なるバスを接続するためのバス間ブリッジ(インタフェース)のハードウェアに含まれる。 システム・バスを周辺バスに接続するバス間ブリッジを通常、ホスト・ブリッジと呼ぶ。 したがって、システム・
    バスを周辺バスに接続するホスト・ブリッジは、2つのバスの間の通信を変換し、2つのバスの間でデータが認識可能に転送されるようにする、論理機構およびハードウェアをすべて含む。

    【0005】異なるバス上の装置間でのシステム規模の通信を可能にするために、バス間ブリッジは、一方のバスの通信プロトコルを他のバスの通信プロトコルに整合させるように設計されている。 既知のバス間ブリッジには、すべて1992年1月2日に出願され、IBMに譲渡された関連特許出願である、米国特許出願第07/8
    15992号、第07/816184号、出願第07/
    816204号、第07/816203号、第07/8
    16691号、第07/816693号、第07/81
    6116号、第07/816698号に開示されたものがある。 これらの出願は、システム中の異なるバスに接続された装置のシステム規模の通信を可能にする機構を記載している。

    【0006】しかし、そのような通信は(X86型アーキテクチャ・バスなどの)システム・バスの矛盾するプロトコルを、PCI(Peripheral Component Interconn
    ect)バス・アーキテクチャや同様のアーキテクチャを使用する周辺バスと同期させようとすることに特有の問題を解決しない。 そのような矛盾の一例は、順次(シーケンシャル)バースト転送と呼ばれる特殊データ転送を行うためにPCIバスとシステム・バスによって異なる方式が使用されることである。

    【0007】順次バースト転送とは、アドレス・フェーズで1つのアドレスが提供され、その後にいくつかのデータ・フェーズが発生する、データ転送である。 第1のデータ・フェーズ中に、アドレス・フェーズで提供されたアドレスにまたはそのアドレスからデータが転送される。 その後のデータ・フェーズ中に、アドレス・フェーズで提供されたアドレスに順次続くそれぞれのアドレスでデータ転送が行われる(以下、順次バースト転送を単にバースト転送と呼ぶものとする)。

    【0008】PCIバースト・プロトコルは、どのアドレス境界からでも無制限の数のデータ列のバースト転送を可能にする(もちろん、バーストを開始した装置がP
    CI調停ガイドラインによってバスの放棄を強制されることはないと仮定する)。 これに対し、システム・バス・バースト・プロトコルでは、バースト転送の開始アドレスがあるアドレス境界に制限され、単一のバースト転送で一定数のデータ・フェーズしか可能にならない。 したがって、システム・バス・アーキテクチャでは、4ダブルワード(DWORD)または16バイトのデータのバーストしか可能にならない。

    【0009】システム・バス・アーキテクチャでのこれらの制限と、後述の他の制限のために、システム・バスとPCIバスを接続するホスト・ブリッジは、2つの異なるバスの間でのデータ転送を変換する必要がある。 しかし、PCIバスをシステム・バスに接続するホスト・
    ブリッジは、2つの異なるアーキテクチャの間でデータを変換しなければならないだけでなく、この変換をできるだけ効率的に行わなければならない。

    【0010】

    【発明が解決しようとする課題】したがって、本発明の目的は、マルチバス・コンピュータ・システムでCPU
    システム・バスと、PCIバス・アーキテクチャまたはPCIバス・アーキテクチャに類似するある種のプロトコルを有するバス・アーキテクチャを使用するバスを相互接続し、同時に、相互接続されたバスの間のデータ転送効率を最大限にするためのブリッジを提供することである。

    【0011】

    【課題を解決するための手段】本発明によれば、システム・バスを、PCIバス・アーキテクチャを使用する周辺バスまたはPCIに類似のバス・アーキテクチャを使用する周辺バスに接続する、ホスト・ブリッジ内のハードウェア論理機構が提供される。 本発明のハードウェアは、バス間でデータ転送が行われる速度を最適化し、同時に、2つのバスの異なるアーキテクチャの間でデータ転送を変換する。

    【0012】S(システム)バス16、ベースシステム・メモリ・バス36、およびCPUローカル・バス34
    は32ビット・バスである。

    【0013】メモリ制御装置28は、メモリ・サイクルがそれに向けられる間、そのメモリ・サイクルに応答する。 しかし、メモリ・サイクルがメモリ制御装置28に向けられない場合、情報はSバス16上に送られる。

    【0014】PCIバス22は、比較的短時間に大量のデータ転送(毎秒最大120メガバイト)のデータ転送を行うことができる。 PCIバスがこのように高レベルの性能を達成するのは、1つには、PCIバスが、CP
    Uを接続できるシステム・バスなどの他の高速バスに直接リンクすることができ、したがってPCIバスに接続された装置とシステム・バスに接続された装置の間で高速データ転送が提供できるからである。 実際には、ある種のグラフィクス・パッケージ制御装置などいくつかの高集積度装置を操作するには、PCIバスなどの高性能バスを介してシステム・バスに直接リンクする必要がある。 また、PCIバス・アーキテクチャは、それに接続された周辺装置を操作するのに「グルー・ロジック」を必要としない。 他のバス用のグルー・ロジックは通常、
    周辺装置とバスの中間に設置されたデコーダ、バッファ、ラッチなどの様々なハードウェア構成要素から構成される。

    【0015】主PCIバスは33MHzの同期クロック信号に基づいて動作し、PCIバスを介して送信されるデータの列は長さ32ビットである。 PCIバス上の3
    2ビット・データ列をダブル・ワード(DWORD)と呼ぶ。 ダブルワードはそれぞれ8ビットのデータから成る4バイトずつに分割される。 PCIバスによって搬送されるアドレス情報およびデータ情報は1つの信号に多重化される。 多重化によってアドレス線とデータ線を別々にする必要がなくなり、そのためPCI環境で必要とされる信号数は、他のバス・アーキテクチャよりも少なくなる。 PCIバス・アーキテクチャで必要とされる信号の数は45ないし47であるが、非多重化バスでは通常この2倍必要である。 したがって、信号の数が減るので、PCIバスにリンクされた装置をサポートするのに必要な接続ピンの数もそれに対応する数だけ少なくなる。 したがって、PCIアーキテクチャは、集積度の高いデスクトップ・コンピュータ・システムに特に適合している。

    【0016】PCIバス・アーキテクチャの構造および動作の詳細な説明は、例えば1922年6月22日発行の"Peripheral Component Interconnect (PCI) Revisio
    n 1.0 Specification"と、1992年11月1日発行の"Preliminary PCI System Design Guide"revision 0.
    6と、1992年11月6日発行の"Peripheral Compone
    nt Interconnect (PCI) Add-in Board/Connector Adden
    dum"(草案)および1993年4月30日発行の"Perip
    heral Component Interconnect (PCI) Revision2.0 Spe
    cification"等に記載されている。これらの文献はすべて、PCI SpecialInterest Groupから発行されたものである。

    【0017】システム10中の主PCI装置18は主P
    CIバス22を介して相互に通信する。 主PCI装置はそれ自体がシステム・バス上に常駐するシステム・バス装置であるPCIホスト・ブリッジ20によって、CP
    U、キャッシュおよびメモリ複合体12、ならびにSバス16上に常駐する他のシステム・バス装置14と通信する。 PCIホスト・ブリッジ20はこのとき、S(システム)バス16と主PCIバス22の間のインタフェースとして働き、これら2本のバスとこれらのバス上に接続された周辺装置の間の有効な通信手段を提供する。

    【0018】PCIホスト・ブリッジ20は、CPU
    (プロセッサ)24または他のシステム・バス装置16
    が、主PCI装置18またはそれに接続された装置に直接アクセスできるようにするための低待ち時間相互接続機構である。 PCIホスト・ブリッジ20は、主PCI
    装置またはそれに接続された装置がベースシステム・メモリ32に迅速かつ直接にアクセスできるようにする高性能経路も提供する。 さらに、PCIホスト・ブリッジ20は、Sバス16と主PCIバス22の間でデータを転送できるように、これらのバスの間のインタフェースを提供するのに必要なすべてのハードウェアを提供する。

    【0019】情報処理システム10の代替構成では、S
    バス16がなく、したがってホスト・ブリッジ20が主PCIバス22をCPUローカル・バス34に直接接続している。 この構成では、どのSバス装置14もCPU
    ローカル・バス34に接続することができる。 Sバス1
    6とCPUローカル・バス34は同じアーキテクチャを使用して動作するので、下記で説明するように、本発明によって実行される変換機能は、この代替構成では好ましい実施例のものと同じである。

    【0020】主PCIバス22は、PCI互換性のある様々な装置をサポートすることができる。 図3に示すように、これらの装置にはグラフィクス制御装置72、シリアルSCSI(小型コンピュータ・システム・インタフェース)制御装置74、PCMCIA制御装置76、
    標準の入出力バス(たとえば、ISAまたはMICRO
    CHANNEL("MC−A"))ブリッジ78(本明細書では拡張ブリッジとも呼ぶ)、およびPCI2次ブリッジ80が含まれる。 ただし、図3に示す主PCIバス22に接続された装置は、PCIバス・アーキテクチャを、したがってここに開示する例示的構成を実施するシステムの一例にすぎず、いかなる点でも本発明を制限するものではない。

    【0021】グラフィクス制御装置72は通常、該制御装置72がビデオ・フレームをバッファできるようにするVRAM82の形のメモリ機能を備えており、PCI
    バス・アーキテクチャによってサポートされた既知のどんなグラフィクス・パッケージをも制御することができる。 SCSI74は、SCSIバス86に接続されたS
    CSI装置84と主PCIバス22との間のインタフェースとして働き、PCIバス・アーキテクチャによってサポートされるどんなSCSI装置をも制御することができる。 PCMCIA制御装置76は、カード・スロット88に接続され、該スロット88を制御する。

    【0022】標準バス・ブリッジ78は、標準(たとえばMC−AまたはISA)バス92に接続された入出力装置90と主PCIバス22の間のインタフェースとして働く。 2次PCI装置94は、2次PCIバス96を介してPCI2次ブリッジ80に接続されている。 任意の数の識別されない2次PCI装置94を2次PCIバス96に接続することができる。 PCI2次ブリッジ8
    0は、2次PCIバス96に接続された任意の数のPC
    I装置94と主PCIバス22の間のインタフェースとして働く。

    【0023】コンピュータ・システム10全体に他のP
    CIバスが存在しなくても、PCIバス・アーキテクチャと互換性のある任意の数の周辺装置を主PCIバス2
    2上に配置することができる。 すなわち、PCIバス9
    6の他に、同数の別々のPCI2次ブリッジ80を介して主PCIバス22に接続された任意の数の2次PCI
    バスによって、任意の数のPCI周辺装置を主PCIバス22に接続することができる。 各2次PCIバスには、PCI2次ブリッジを介して任意の数の追加PCI
    バスを接続することもでき、これらの「3次」PCIバスには、さらに別のPCIバスを様々な組合せで接続することができる。 同様に、各PCIバスには、任意の数のPCI装置を接続することができる。 2つのPCIバスの間の各接続は、ブリッジ80と同じPCI2次ブリッジを介して行わなければならない。

    【0024】さらに、PCIホスト・ブリッジ20と同じ複数のブリッジをSバス16によって駆動することができる。 次いで、これらのホスト・ブリッジそれぞれに、任意の数のPCIバス、ブリッジおよび装置をシステム10の設計者が希望する配列で接続することができる。 したがって、システム10のPCIバス・アーキテクチャから成る部分を、様々な対等組合せおよび階層組合せで配列された複数のバスとPCI周辺装置(以下では、一般的にPCIネットワークと呼ぶ)から構成することができる。

    【0025】本発明のPCIホスト・ブリッジ20は、
    CPUローカル・バスとPCIバスを相互接続して、相互接続されたバス間のデータ転送効率を最大限にするための機構を提供する。 これら2つのバスの通信プロトコルが異なるため、下記でさらに説明するように、効果的なバス間インタフェースを提供する論理機構が提供される。

    【0026】図4は、主PCIバス22に接続された周辺装置への2つの連続する書込みサイクル中にPCIバス22上に発生する様々なPCIバス信号のタイミング図である。 この周辺装置は、グラフィクス制御装置72
    でも、標準バス・ブリッジ78でも、PCIバスから駆動できる他の周辺装置でもよい。 同様に、図4に示した書込みサイクルは典型的なPCIバス書込みサイクルであり、主PCIバス22に特有のものではない。 これらの書込みサイクルは、2次PCIバス96上の書込みサイクルでも、PCIネットワーク中の他のPCIバス上での書込みサイクルでもよい。

    【0027】クロック信号(CLOCK)は、PCIネットワーク上でのすべての通信用のタイミングを提供する。 CLOCKはあらゆるPCI装置およびすべてのP
    CI2次ブリッジへの入力である。 CLOCKは同期式である。 すなわち、PCIアーキテクチャ中のすべての通信信号が、少なくとも1クロックの持続時間を有し、
    どのコマンドまたはデータ転送も少なくとも1クロックの期間にわたって実行される。 図4中の信号は、縦の破線によって個々の「クロック」または「フェーズ」に分けられている。 各破線は、1クロック持続時間の始めとその直前のクロック持続時間の終りを表す。 各線上の信号は、クロック信号の立上りエッジ上でサンプルされ、
    あるいはクロック信号の立上りエッジ上で有効な意味を有する。

    【0028】フレーム信号(FRAME)は、PCIバスに接続されたPCI2次ブリッジまたは周辺装置によって使用され、該ブリッジまたは周辺装置が、そのバスに接続された他のPCI2次ブリッジまたは周辺装置に対する通信サイクルまたはアクセスを開始することを示す。 アクセスを開始する周辺装置またはPCI2次ブリッジをマスタと呼ぶ。 アクセス先の装置または構成要素をスレーブまたはターゲットと呼ぶ。 FRAMEは負で活動状態となる信号である。 したがって、第2のクロックに示したようにマスタがFRAMEをローにドライブするとき、マスタは、アクセスを開始していることをスレーブに示す。

    【0029】イニシエータ準備完了信号(IRDY)
    も、負で活動状態の信号であり、マスタがデータ転送の開始の準備ができていることを示す。 したがって、マスタは、読取りサイクル中にデータを受け入れ、あるいは書込みサイクル中にスレーブにデータを転送する準備ができたとき、IRDYをローにドライブする。

    【0030】ターゲット準備完了信号(TRDY)は、
    ローに活動化され、スレーブがデータ転送の開始の準備ができたことを示す。 したがって、スレーブは、読取りサイクル中にマスタからデータを受け入れ、あるいは書込みサイクル中にマスタにデータを転送する準備ができたとき、TRDYをローにドライブする。

    【0031】アドレス/データ信号(A/D)は、データ転送のターゲットのレジスタのアドレスと、転送すべきデータとを1本の線上で多重化して送る。 アドレス情報は、アドレス・フェーズ中に、マスタがFRAMEをアサートする際に、マスタによってA/D上でドライブされる。 アクセスが書込みサイクルかそれとも読取りサイクルかに応じて、データ・フェーズ中に、マスタまたはスレーブがデータを提供し、該データは次いで、アドレス・フェーズの後にA/D上でドライブされる。 アドレス・フェーズは1クロックの持続時間を有し、データ・フェーズは少なくとも1クロックであるが、データ転送がPCIマスタによるIRDYのアサートまたはスレーブによるTRDYのアサートによって遅延される場合は、1クロックより多くなることがある。

    【0032】コマンド/バイト・イネーブル信号(C/
    BE)は、1本の線上で多重化されたPCIバス・コマンドとバイト・イネーブル信号を提供する。 バス・コマンドは、マスタがFRAMEをアサートする際およびアドレス・フェーズ中にマスタによってA/D上でアサートされる。 バス・コマンドは、マスタがどちらのタイプのアクセスを開始しているかに応じて、読取りコマンドでも書込みコマンドでもよい。

    【0033】バイト・イネーブル(Byte Enable)信号は、A/D上でのデータ転送時にC/BE上に存在する。 バイト・イネーブル信号は4ビットから構成される。 これら4つのビットがすべてローに活動化されるとき、A/D上で転送中のデータの4つのバイト、すなわち32個のビットがすべてイネーブルされることを示す。 イネーブルされたデータは、正常かつ認識可能なデータである。 4つのビットのうちの1つがハイであるとき、PCIバス上で転送中の4バイト・データのうちの1つのバイトがイネーブルされず、これは、データの特定のバイトが認識不能であり、データ列を受信または送信する装置または構成要素によって無視されるべきであることを意味する。

    【0034】図4に示した簡単な書込み動作時の様々なPCIバス信号の機能は以下のとおりである。

    【0035】第2のクロック中に、マスタはFRAME
    をローにドライブする。 これは、マスタがスレーブへのアクセスを開始することを意味する。 IRDYおよびT
    RDYは、第2のクロック中にターンアラウンド・サイクルにある。

    【0036】この時点で、マスタは、A/D線上でのアクセスのターゲットであるスレーブ中のレジスタのアドレスを提供する。 同時に、マスタによってC/BE線上で書込みコマンドが生成される。

    【0037】第3のクロックに移ると、FRAMEが非アサートされる。 これは、アクセスを完了する準備ができたことを意味する。 マスタはこのとき、IRDY線の制御を得ており、該線をローにドライブして、データをスレーブに転送する準備ができていることを示す。 スレーブもTRDY線の制御を得ており、該線をローに活動化して、アドレス情報をスレーブ自体内のレジスタのアドレスとして既に復号し、そのレジスタでデータを受け入れる準備ができたことを示す。 したがって、第3のクロックで、データはA/D線上でマスタから、スレーブの復号されたレジスタへ転送される。

    【0038】データが転送されるとき、C/BE線は、
    そのバイト・イネーブル信号をアサートして、データがイネーブルされているかどうかを示す。 4つのバイトのうちの1つ以上がハイの場合、A/D線上の対応するデータ・バイトはイネーブルされない。

    【0039】第5のクロック中は、別の書込みクロックが開始されているので、タイミング図が繰り返される。
    この第2の書込みサイクルは同じマスタでも異なるマスタでも開始することができる。 同様に、書込みサイクルのターゲットは、同じスレーブでもまったく異なるスレーブでもよい。

    【0040】PCIバスに接続された様々な装置の間の競合の危険をなくすために、第2の書込みサイクルが開始される前に、各線はターンアラウンド・サイクルを通過しておく。 ターンアラウンド・サイクルおよび競合の詳細な説明については、本発明と同時に出願されIBM
    に譲渡された"METHOD AND APPARATUS FOR PROVIDINGBAC
    K-TO-BACK DATA TRANSFERS IN AN INFORMATION HANDLIN
    G SYSTEM HAVING A MULTIPLEXED BUS"と題する、関連出願を参照されたい。

    【0041】ここで、図5を特に参照すると、ある読取りサイクルと別の読取りサイクルの始めのタイミング図が示されている。 第2のクロックで、マスタはFRAM
    Eをローにアサートする。 FRAMEは、第2のクロックで1クロック信号だけローのままになる。 というのは、これが単一データ・フェーズ転送だからである。 マスタによってA/D上にアドレス情報も供給され、読取りコマンドが第2のクロックでC/BE線上に与えられる。

    【0042】第3のクロック・シーケンスで、A/D線はターンアラウンド・サイクルに入らなければならない。 なぜなら、スレーブが、マスタが読取りを要求したデータを提供するために、第4のクロック信号中にA/
    D線の制御を得る必要があるからである。 このターンアラウンド・サイクルは、A/D線に対するマスタとスレーブの間の競合をなくすために必要である。 マスタは、
    第3のクロックでIRDYをローにアサートし、要求されたデータを読み取る準備ができたことを示す。 第3のクロック信号で、マスタはC/BE線上でバイト・イネーブル信号もアサートする。

    【0043】第4のクロック信号で、スレーブはA/D
    線上でデータを提供し、TRDYをアサートする。 バイト・イネーブル信号は依然として、C/BE線上でアサートされている。 第4のクロックでIRDY信号がローなので、読み取るべきデータがスレーブからマスタに転送される。

    【0044】PCIバスに接続されたマスタが、CPU
    ローカル・バスまたはシステム・バスに接続された構成要素または装置にデータ転送を実行する必要があるときは、2ステップ手順を使用しなければならない。 (システム・バスたとえばSバス16、CPUローカル・バスは共にX86型バス・アーキテクチャに準拠しており、
    したがって以下ではCPUローカル・バス・アーキテクチャと呼ぶ)。 第1のステップでは、PCIバスをCP
    Uローカル・バスに接続するホスト・ブリッジが、PC
    Iバス上でのデータ転送のスレーブになる。 第2のステップでは、ホスト・ブリッジがCPUローカル・バス上での読取りサイクルまたは書込みサイクルのマスタになり、データ転送のターゲットである装置または構成要素は、この特定のデータ・トランザクションのスレーブになる。

    【0045】たとえば、グラフィクス制御装置72がD
    MA制御装置40を書込みサイクルのターゲットにする場合、PCIホスト・ブリッジ20が主PCIバス22
    上での書込みサイクルのスレーブになる。 次いで、書込みサイクル中に書き込むべきデータがホスト・ブリッジ20に転送される。 次いで、ホスト・ブリッジ20が、
    DMA制御装置40を書込みサイクルのスレーブまたはターゲットとして、Sバス16上での書込みサイクルのマスタになる。 次いで、Sバス16上での書込みサイクル中に、データが再び、ホスト・ブリッジ20からDM
    A制御装置40に転送される。 読取りサイクルは、ホスト・ブリッジ20がPCIバス22上でのスレーブになり、次いでマスタになってSバス16からPCIバス2
    2へのデータ転送を完了する、同様な2ステップ手順で動作する。

    【0046】さらに、Sバス16上のマスタは、PCI
    バス22上の装置へのデータ転送を開始する場合、まずホスト・ブリッジ20をスレーブとして使用しなければならない。 次いで、ホスト・ブリッジ20がPCIバス22上でのデータ転送のマスタになる。

    【0047】PCIネットワーク中のPCI2次ブリッジ80より下のPCIバスに接続された装置と、CPU
    ローカル・バス34またはSバス16に接続された構成要素の間のデータ転送では、ネットワークを相互に接続するPCI2次ブリッジとの間で連続データ転送を実行することによって、PCIネットワークを介するデータ転送を完了しなければならない。 PCI2次ブリッジ8
    0が転送すべきデータをもつと、特定の転送が書込みサイクルである場合、上述の2ステップ手順を使用して、
    PCI2次ブリッジ80をPCIバス22上のマスタとして使用し、かつホスト・ブリッジ20をPCIバス2
    2上でのスレーブおよびSバス16上でのマスタとしてデータ転送を完了する。

    【0048】Sバス16とPCIバス22の間のデータ転送は、それらのバスが異なるバス・アーキテクチャを有するため、2ステップで完了しなければならない。 C
    PUローカル・バス・アーキテクチャでは、PCIバス・アーキテクチャと異なり、データおよびアドレス情報は多重化されず、別々の線上で送信される。 これらの線上のデータおよびアドレス情報の列は長さ32ビット(4バイト)である。

    【0049】CPUローカル・バス・アーキテクチャは、PCIバス・アーキテクチャのバイト・イネーブル信号と同じ機能を実行するバイト・イネーブル線をもつ。 したがって、CPUローカル・バス・アーキテクチャのバイト・イネーブル信号は長さ4ビットであり、データ線上のデータの特定のバイトがイネーブルされているかそれともイネーブルされていない(ディスエーブルされている)かを示す。

    【0050】CPUローカル・バス34およびSバス1
    6は、PCIバス22からのCLOCK信号をタイミング信号として使用する。 CPUローカル・バス34およびSバス16上の各タイミング信号の持続時間をバス・
    サイクルと呼ぶ。

    【0051】PCIバス・アーキテクチャと異なり、C
    PUローカル・バス34のデータおよびアドレス情報は別々の線上で送信される。 したがって、データ転送のターゲットであるスレーブがアドレス線上で送信されたアドレスに応答すると、データ転送をCPUローカル・バス上で1バス・サイクルで完了することができる。 いくつかの32ビット・データ列のバースト転送時に、スレーブが第1の転送に肯定応答すると、その後のデータ転送をそれぞれ単一のバス・サイクルで完了することができる。 バイト・イネーブル線はデータ転送時に、CPU
    ローカル・バス上でバイト・イネーブル信号を生成する。

    【0052】図4を参照すると、第2ないし第5のクロックに示した書込みサイクルの最終ターゲットが、Sバス16に接続された構成要素である場合、ホスト・ブリッジ20が、PCI書込みサイクルが向けられるスレーブとなる。 したがって、ホスト・ブリッジ20は、第2
    のクロックで送信されたアドレスに応答して、第3のクロックで送信されたデータをその1つの内部レジスタで受信する。

    【0053】次いでホスト・ブリッジ20は、Sバス1
    6の制御を得ると、マスタとして働き、Sバス16上で書込みサイクルを生成する。 ホスト・ブリッジ20は第1のバス・サイクル中に、PCI書込みサイクル中に受信した同じアドレス情報およびバイト・イネーブル信号をSバス16上のそれぞれの線上に転送する。 適当なスレーブがアドレス情報に応答し、この応答の後の次のバス・サイクル中にデータが転送される。

    【0054】図6を参照すると、部分的にPCIホスト・ブリッジ20を形成し、PCIバス22とSバス16
    の間のバス間インタフェース機構を提供する、論理機構100のブロック図が示されている。 論理機構100は(i)先入れ先出し(FIFO)バッファ論理機構10
    2、(ii)Sバス16とFIFOバッファ論理機構10
    2とのインタフェースをとるためのSバス・インタフェース論理機構104、(iii)主PCIバス22とFI
    FOバッファ論理機構102とのインタフェースをとるためのPCIバス・インタフェース論理機構106を備えている。

    【0055】FIFOバッファ論理機構102は、16
    バイト(4DWORD)データ列を記憶できる先入れ先出しバッファ(FIFO)(図示せず)を含む。 FIF
    OはデータのSバスからの読取り−事前取出し(プリフェッチ)を行うことができ、データのPCIバス22からSバス16への書込み−遅延書込み(ポステッド・ライト)を行うことができる。 FIFOは、読取りバースト転送がデータを連続アドレスから読み取ると予期することによってデータの読取り−事前取出しを行い、したがってデータの読取りを求める転送要求を特定のマスタが開始する前にそれらのアドレスからのデータの「事前取出し」を行っておく。 書込み−遅延書込みは、FIF
    OがPCIマスタからの書込みバースト転送時に連続アドレスからのデータを受け入れ、したがってホスト・ブリッジが、マスタからのデータを、Sバス16に接続されたスレーブに転送する前に該データを「遅延書込み」
    するときに行われる。 FIFOはたとえば、ダブル・ワード(DWORD)インタリーブ構造またはピンポン構造で実施することができる。 FIFOの動作と読取り−
    事前取出しおよび書込み−遅延書込みの詳細は、IBM
    に譲渡された上述の関連特許出願に記載されている。

    【0056】Sバス/インタフェース論理機構104
    は、PCIバス・インタフェース論理機構106からの要求に応答して、データのSバス16からFIFO10
    2への読取りまたは読取り−事前取込みを行う。 インタフェース論理機構104はまた、FIFOまたはPCI
    バス・インタフェース論理機構106によって提供される状況情報に応答して、FIFOのデータをSバス16
    上に書き込む。

    【0057】PCIバス・インタフェース論理機構10
    6は、Sバス16をターゲットとするPCIバス・サイクルに応答する。 読取りサイクルの場合、PCIバス・
    インタフェース論理機構106はSバス論理機構104
    に、Sバス16からのデータの読取りまたは読取り−事前取出しを行うように要求し、FIFOによって提供される状況情報に基づいて、要求されたデータをFIFO
    から出力する。 書込みサイクルの場合、PCIバス・インタフェース論理機構106はFIFOからの状況信号に基づいて、データのFIFOへの書込みまたは書込み−遅延書込みを行えるようにする。

    【0058】データが、PCIバス22に接続された装置からFIFOに入力されるとき、PCIインタフェース論理機構106は、すでにFIFOにある他の有効なデータ列に新しいデータが上書きされないようにFIF
    Oの状況を監視しなければならない。 FIFOの4つのDWORDがすべて、すでにデータで一杯の場合、それ以上データを入力することはできない。

    【0059】PCIバス22から開始された遅延書込み−書込みバースト転送または読取り−事前取出しバースト転送時に、それぞれ遅延書込み中または取出し中のデータでFIFOが一杯になったときは、バースト転送を終了しなければならない。 そうしないと、FIFO中の有効なデータが上書きされる。 バースト転送を終了するために使用できる1つの方法は、単に、データをFIF
    Oに提供する装置またはデータをFIFOから読み取る装置にPCIバス22へのアクセスを強制的に放棄させることである。 これによって、装置が実際上ホスト・ブリッジ20から切断され、データ転送が終了する。

    【0060】しかし、装置は、PCIバス22へのアクセスを放棄すると、PCIバス・アーキテクチャ調停ガイドラインのために、PCIバス22上での5クロックの最小期間中はPCIバス22へのアクセスを回復することができない。 さらに、装置は不定期間中、PCIバス22の制御を回復することができない。 したがって、
    PCIバス22に接続された装置からの、Sバス16をターゲットとするバースト転送の長さが数データ・フェーズである場合、装置がホスト・ブリッジ20から強制的に数回切断された後に初めて、転送を完了することができる。 転送を完了するのに必要な期間は不定であり、
    間違いなく長い。

    【0061】今まで知られていない、FIFOでデータが上書きされないようにするために使用できる他の方法は、FIFOが一杯になったときにTRDY信号をPC
    Iバス22上で非アサートし、同時に、データ転送を開始する、PCIバス22に接続された装置(「PCIマスタ」)がPCIバス22へのアクセスを維持できるようにすることである。 FIFO中の記憶空間が利用可能になると、TRDYが再アサートされ、バースト転送を完了することができる。 この方式によって発信側装置のPCIバス22へのアクセスが終了する問題が解消される。 したがって、PCIバス22からSバス16へのバースト転送は、上記で論じた切断方式よりもはるかに効率的に実行することができる。 さらに、FIFOで空間が利用可能になるとただちにデータがFIFOに転送されるので、データ転送を完了するのに必要な時間が最適化される。 この方式は、下記で説明する本発明のペーシング論理機構によって提供される。

    【0062】ここで図7乃至図8を参照すると、ペーシング論理機構110の図が示されている。 ペーシング論理機構110は、PCIホスト・ブリッジ20内のハードウェア論理機構であり、PCIバス・インタフェース論理機構106の一部を構成する。 ペーシング論理機構106の一次目的は、PCIバス22からFIFOへのデータ入力のペースを最適な方法で制御できるようにP
    CIバス22上でTRDY信号を非アサートしかつアサートすることである。

    【0063】上述のように、FIFOは16バイトまたは4DWORDデータを一時的に記憶することができる。 (一般に本明細書では、FIFO内のDWORDの記憶空間を「DWORDのFIFO」と呼ぶものとする)。 FIFO内の各DWORDには、32ビットPC
    Iアドレス信号のビット番号2および3の4つの2進値のうちの1つが割り当てられる。 ビット番号2および3
    は、FIFO中のDWORDを選択するのに必要なPC
    Iアドレスの最小有効アドレス・ビットである(ビット番号0および1は、PCIアーキテクチャによってPC
    Iメモリ・アドレス用に使用されない)。 FIFOの4
    つの連続DWORDに割り当てられるビット番号2および3の2進値はそれぞれ、00、01、10、および1
    1、または10進の0、1、2、および3である。 現在のPCIデータ・フェーズ用のビット番号2および3の値は、PCI_A [2]および[3]と呼ばれる線上でペーシング論理機構110に入力される。

    【0064】PCI_A線は2つの4入力マルチプレクサ1
    12および114に入力される。 マルチプレクサ112
    および114の各入力は、PCI_A線上の信号の4つの可能な値のうちの1つに対応し、したがってFIFOの4
    つのDWORDのうちの1つにも対応する。 マルチプレクサ112および114は、PCI_A線上の現在の値に対応する入力を選択し、現在の信号をその入力から出力する。

    【0065】マルチプレクサ114への入力は、FIF
    O中のデータの4つのDWORDに対応する4つのPC
    Iバイト・イネーブル信号である。 特定のDWORD内にデータがない場合、そのDWORD用のバイト・イネーブル信号は、DWORD中のバイトがどれも、イネーブルされたデータを含まないことを示す1111になる。 FIFOの4つのDWORD用のバイト・イネーブル信号は、ホスト・ブリッジ20のハードウェア内のラッチ・レジスタ(図示せず)に記憶され、latched byte
    valid信号と呼ばれる。 latched byte valid信号をマルチプレクサ114の入力に送信する線は、DW0_B
    V、DW1_BV、DW2_BV、DW3_BVと呼ばれ、それぞれFIFOのDWORD 0、DWORD
    1、DWORD 2、DWORD 3に対応する。

    【0066】各latched byte valid信号は、4つの4入力ANDゲート116のバンク中の対応するANDゲートと、4つの4入力NORゲート118のバンク中の対応するNORゲートに入力される。 たとえば、DW0_
    BV信号はバンク116のAND0およびバンク118
    のNOR0に入力される。 バンク116および118のANDゲートおよびNORゲートはそれぞれ、各4ビットlatched byte valid信号に対する論理演算を実行する。

    【0067】バンク116の4つのANDゲートのそれぞれからの出力は、マルチプレクサ112の対応する4
    つの入力のうちの1つに入力され、該入力が対応するF
    IFOのDWORDが空(Empty)かどうかを示す。 たとえば、AND0の出力は、FIFOのDWORD0に対応するマルチプレクサ112の入力に接続されている。

    【0068】バンク118の4つのNORゲートのそれぞれの出力は、該出力が対応するFIFOのDWORD
    が、イネーブルされたデータで一杯(Full)かどうかを示す。 たとえば、NOR0の出力が2進ハイのときは、
    FIFOのDWORD0が一杯であることを示す。 これらの信号は、ホスト・ブリッジ20を構成する残りのハードウェアに出力される。

    【0069】マルチプレクサ112の出力は、2入力A
    NDゲート(AND4)の一方の入力に接続されている。 AND4の他方の入力は信号W_CYCに接続されている。 この信号は、PCIバス22からの現在のデータ転送が書込み動作である場合は常に2進ハイすなわち1であり、読取りデータ転送時は常にローである。

    【0070】マルチプレクサ114の出力は、2入力比較機構120の一方の入力に接続されている。 PCIバス22のC/BE線からのバイト・イネーブル信号は、
    比較機構120の他方の入力に接続されている。 比較機構120は、FIFOの特定のDWORDのlatched by
    te valid信号であるマルチプレクサ114の出力を現在の読取り転送のバイト・イネーブル信号と比較する。 このバイト・イネーブル信号は、読取り転送を生成したP
    CIマスタによって生成される。 マルチプレクサ114
    からの信号がバイト・イネーブル信号以下の場合、比較機構120は出力線122上で2進ハイ信号を生成する。

    【0071】出力線122は2入力ANDゲート(AN
    D5)の一方の入力に接続されている。 AND5の他方の入力は、R_CYCと呼ばれる信号に接続されている。 R_CYCは読取りデータ転送時には常に2進ハイであり、書込みデータ転送時には常にローである。

    【0072】AND4およびAND5の出力はそれぞれ2入力ORゲート(OR4)の一方の入力に接続されている。 OR4の出力は2入力ANDゲート(AND6)
    の一方の入力に接続されている。 AND6の他方の入力は、FIFO ready論理ブロック124からの信号FIFO
    _AVLBLを受信する。 FIFO ready論理ブロック12
    4は、PCIマスタによって開始された現在のデータ転送用にFIFOが利用可能になるとFIFO_AVLB
    L用のハイ信号を生成する。

    【0073】AND6の出力は複数入力NANDゲート126に接続されている。 NANDゲート126への他の入力は、PCIバス22上でのTRDY信号のアサートまたは非アサートに影響を及ぼすことができるホスト・ブリッジ20内の他の信号に接続されている。 この信号は、PCI host bridge 20 target abortでも、ホスト・ブリッジ20が他のデータ転送が行われることを望んでいないことを意味するPCI host bridge 20 target di
    sconnectでもよい。

    【0074】NANDゲート126の出力はTRDY信号であり、PCIバス22のTRDY線に接続されている。 AND6の出力を含むNANDゲートへのすべての入力が2進ハイのとき、NAND126の出力はローになる。 したがって、TRDYはローで活動化され、現在のPCIデータ・フェーズ中にデータをFIFOに書き込み、あるいはFIFOから読み取れることを、データ転送を開始したPCIバス22上の装置に通知する。

    【0075】バンク116中の4つのANDゲートの出力もすべて、4入力ANDゲート(AND7)に入力され、ホスト・ブリッジ20を構成する残りのハードウェアに出力される。 上述のように、これら4つの信号はそれぞれ、ハイのとき、FIFOの特定のDWORDがまったく空であることを、ブリッジ20のハードウェアに示す。 AND7の出力をFIFO_EMPTYと呼ぶ。
    AND7の出力はFIFOready論理ブロック124に入力される。

    【0076】ここで図9を参照すると、FIFO ready論理ブロック124の図が示されている。 AND6からのF
    IFO_EMPTY信号は2入力ANDゲート128の一方の入力に接続されている。 ANDゲート128の他方の入力は信号S_DATAである。 S_DATAはホスト・ブリッジ20内の既知のハードウェアによって生成される。 S_DATAは、2進ハイのとき、PCIバス22に接続されたマスタによって開始されたデータ転送が、Sバス16に接続された装置または構成要素に出力され、かつホスト・ブリッジ20がデータ転送を実行できる状態であることを示す。

    【0077】インバータ130は、ANDゲート128
    に並列にS_DATAに接続されている。 ANDゲート128およびインバータ130の出力は、制御信号として3入力マルチプレクサ132に接続されている。 マルチプレクサ132は、ANDゲート128およびインバータ130からの制御信号の値に応じて、3つの入力のうちの1つを出力上で送信することを選択する。 AND
    ゲート128からの出力がハイで、インバータ130からの出力がローのとき、マルチプレクサ132は、2進ハイ値に接続された第1の入力を出力する。 ANDゲート128からの出力にかかわらずS_DATAがローのときはいつでも、マルチプレクサ132は、2進ロー値に接続された第2の入力を出力する。 インバータ130
    とゲート128の両方からの出力が共にローのとき、マルチプレクサ132は、ラッチ134の出力に接続された第3の入力を出力する。

    【0078】ラッチ134の入力はマルチプレクサ13
    2の出力に接続されている。 したがって、マルチプレクサ132の出力からの信号は、ラッチ134を介してマルチプレクサ132の第3の入力にフィードバックされる。 マルチプレクサ132の出力は、ペーシング論理機構110のAND6の一方の入力に接続されたFIFO
    _AVLBL信号でもある。

    【0079】ペーシング論理機構110は、PCIマスタによって開始されたバースト転送が書込み動作か、それとも読取り動作かに応じて異なる動作をする。 書込みバースト転送時の動作では、PCIマスタは、PCIバス22のA/D線上のある範囲内のアドレスをドライブすることによって、Sバス16をターゲットとする書込みバースト転送を開始する。 ホスト・ブリッジ20は、
    S_DATAをハイ信号にドライブすることによってこのアドレスに応答する。 この時点で、FIFOが空であると仮定すると、すべてのlatched byte valid信号の値は論理1である。 したがって、バンク116中の各AN
    Dゲートの出力がハイになり、それによってAND7の出力FIFO_EMPTYがハイにドライブされる。

    【0080】S_DATAとFIFO_EMPTYが共にハイのとき、インバータ130およびゲート128の出力はそれぞれローおよびハイである。 これによって、
    マルチプレクサ132の出力上でハイ信号がFIFO_
    AVLBLとしてドライブされる。 このハイ信号はまた、1つのPCIクロック信号の持続時間中、ラッチ1
    34中にラッチされる。

    【0081】この例の目的のために、バースト転送の第1のアドレスのビット番号2および3は、2進値"00"
    を有するが、上記で論じた他の3つの可能な値のうちのどれでももつことができると仮定する。 これによって、
    マルチプレクサ112は、AND0からの出力を出力上で送信することを選択する。 この出力は、上述のように、DW0_BVが、すべてが2進1の値を有するので、2進ハイ値になる。

    【0082】マルチプレクサ112からのハイ出力は、
    W_CYCのハイ値と共にAND4に入力される。 したがって、AND4がハイ出力を生成し、それによってO
    R4がハイ出力を生成する。 FIFO_AVLBLがハイであり、OR4からの出力がハイなので、AND6からの出力はハイになる。

    【0083】AND6からの出力がハイになったときにNAND126に入力される他のTRDY条件がハイの場合、NANDゲート126はTRDYをローで活動化する。 これによって、データがマスタからFIFOのD
    WORD0に書き込まれる。

    【0084】この転送が順次バースト転送であり、データのFIFOへの書込み−遅延書込みが行われているので、第2のデータ・サイクル用のアドレスのビット番号2および3が、下記で論じるホスト・ブリッジ20内の他のハードウェアによって"01"に増分され、そのサイクル中にFIFOのDWORD1を使用してデータが受信される。 したがって、マルチプレクサ112は、AN
    D1の出力をそれ自体の出力として送信することを選択する。 DWORD1が空なので、DW1_BVはすべて1から構成される。 したがって、AND1およびマルチプレクサ112の出力は共にハイ値である。 このため、
    AND4とOR4は共に出力上でハイ値を生成する。

    【0085】第2のデータ・サイクル用のAND0は現在、ロー出力を有する。 なぜなら、DW0_BVは、F
    IFOのDWORD0内にデータが存在することを示す0を少なくとも1つ有する4桁の2進値から構成されるからである。 したがって、FIFOはもはや完全に空とは言えないので、AND7からのFIFO_EMPTY
    信号はローになる。

    【0086】FIFO_EMPTYは、バースト転送全体にわたってハイ値のままであるS_DATAと共にA
    NDゲート128に入力される。 しかし、FIFO_E
    MPTYが現在ローなので、ANDゲート128は出力上でロー値を生成する。 したがって、ANDゲート12
    8およびインバータ130からマルチプレクサ132に入力される2進制御値は共にローである。 これによって、マルチプレクサ132は、ラッチ134からのフィードバック入力を出力上でFIFO_AVLBLとして生成することを選択する。 FIFO_AVLBLは2進ハイである。

    【0087】FIFO_AVLBLと、OR4からの出力が共にハイなので、AND6の出力はハイである。 これによって、NAND126がTRDYをローで活動化し、第2のデータ・フェーズ中にマスタからFIFOのDWORD1にデータが書き込まれる。

    【0088】FIFOの各DWORDがデータを含むまでアドレスのビット番号2および3を増分することによってプロセスが繰り返される。 Sバス16に接続されたスレーブ(「スレーブ」または「Sバス・スレーブ」)
    が転送を完了できるようになった場合、データはDWO
    RD0から順にFIFO外に転送される。 PCIマスタがFIFOのDWORDへの新しいデータの書込み−遅延書込みを試みる前に該DWORDが空になった場合、
    TRDYはロー値のままであり、それによって、新しいデータをFIFOに入力できるようになる。 したがって、すでに有効なデータを含んでいるDWORDへのデータの書込み−遅延書込みをマスタが試みるまで、データは連続的にFIFOに入力される。

    【0089】Sバス16が一度に16バイトのデータしかバースト転送できず、次いで停止しなければならないので、この条件はおそらく、複数データ・フェーズ・バースト転送内に何度も発生する。 したがって、Sバス1
    6に接続されたスレーブは、PCIバス上のマスタがF
    IFOにデータを埋め込むよりもゆっくりFIFOを空にすることができる。

    【0090】すでに有効なデータを含んでいるDWOR
    D、たとえばDWORD0への書込み−遅延書込みをマスタが試みるとき、バンク116からの出力、具体的にはAND0がローになる。 マルチプレクサ112は、このロー入力を出力上でドライブすることを選択する。 これによって、最終的にNANDゲート126にロー値が入力されることになる。 このため、TRDYがハイに非アサートされ、マスタが現在のPCIクロック信号中にデータ転送を完了することが妨げられる。

    【0091】DWORD0内のデータが、Sバス16に接続されたスレーブに出力されるまで、その後のPCI
    クロックではTRDYが連続的に非アサートされる。 該出力が行われると、DW0_BVの値は再び、すべて論理1になる。 したがって、AND1はマルチプレクサ1
    12、AND4、OR4、およびAND6を介してNA
    ND126に至るハイ信号を生成し、それによってNA
    ND6にTRDYをローで活動化させる。 これによって、データをDWORD0に書き込むことができる。 したがって、ペーシング論理機構110は、FIFOでD
    WORDが利用可能になるとただちにTRDYを活動化することによって、データのPCIバス22からFIF
    Oへの書込み−遅延書込みを最適化する。

    【0092】TRDYのこれらのアサートおよび必要な非アサートは、PCIマスタがFRAMEを非アサートすることによってバースト転送が完了したことを通知するまで、バースト転送の全体にわたって継続する。 該通知が行われると、PCIブリッジ20内のハードウェアによってS_DATAがローにドライブされる。 S_D
    ATAがローになると、マルチプレクサ132がFIF
    O_AVLBLをローにドライブし、それによってAN
    D6の出力がローになり、TRDYがハイに非アサートされる。

    【0093】PCIバス22に接続されマスタによって開始され、Sバス16に接続されたスレーブをターゲットとする読取りバースト転送時に、ホスト・ブリッジ2
    0はデータのスレーブからFIFOへの読取り−事前取込みを行う。 PCIマスタが特定のアドレスから読み取ろうとしているデータが、そのアドレスのビット番号2
    および3に対応するFIFOのDWORD中に存在するとき、TRDYがアサートされる。 ペーシング論理機構110も、PCIバス22から開始された読取りバースト転送のためにTRDYをアサートするこの機能を提供する。

    【0094】

    【0095】マルチプレクサ114は、現在のPCIデータ・フェーズが出力されるアドレスのビット番号2および3に応じて、それらのビット番号に対応するFIF
    Oの特定のDWORD用のlatched byte valid信号を出力する。 たとえば、読取りバースト転送の最初のデータ転送が、"00"に等しいビット番号2および3を有するアドレスに出力される場合、マルチプレクサ114はD
    W0_BVを出力上でドライブすることを選択する。

    【0096】マルチプレクサ114の出力は比較機構1
    20に入力され、該機構120で現在のPCIデータ・
    サイクルのバイト・イネーブル信号と比較される。 比較機構120は、マルチプレクサ114からの出力をバイト・イネーブル信号以下と判定した場合、AND5に入力されるハイ信号を出力する。 この条件が発生するとき、マスタがスレーブから読み取りたいデータがFIF
    OのDWORD0に存在しており、したがってTRDY
    をアサートすべきである。

    【0097】したがって、比較機構120からのハイ信号はAND5、OR4、およびAND6を介して、TR
    DYをアサートするNAND126に送られ、PCIマスタによってDWORD0からデータが読み取られる。

    【0098】DW0_BVがバイト・イネーブル信号より大きい場合、必要なデータはDWORD0に存在していない。 したがって、比較機構120からの出力はローであり、TRDYはアサートされない。 しかし、マスタが求めるデータがSバス16からDWORD0に入力されると、比較機構120の出力はハイになり、TRDY
    をローにアサートできるようになる。

    【0099】このプロセスは、バースト転送が完了するまで、上記で論じたようにアドレス値のビット番号2および3を増分することによって繰り返される。 転送が完了すると、ブリッジ20がS_DATAをローにアサートし、それによってTRDYがローに非アサートされる。

    【0100】ここで図10を参照すると、Sバス16インタフェース論理機構104の読取り−事前取出し論理機構150の図が示されている。 読取り−事前取出し論理機構150は、PCIマスタからのバス・コマンドに基づいて、Sバス16に接続されたスレーブからFIF
    Oへのデータの読取り−事前取出しをいつ行うべきかを予測する。 したがって、読取り−事前取出し論理機構1
    50は、PCIマスタによってバースト読取り転送が開始されたときだけ、データをただちに「取り出し」、F
    IFOの使用と、読取りバースト転送を完了するのに必要な時間とを最適化する。

    【0101】読取り事前取出し論理機構150は、PC
    Iバス22のC/BE線のビット番号3、2、および0
    に3つの入力が接続された3入力ANDゲート152を含む。 ビット番号0の値は、ANDゲート152に入力される前に反転される。 したがって、PCIバス22のC/BE線のビット番号2とビット番号3の両方上のハイ2進値と、ビット番号0上のロー2進値によって、A
    NDゲート152の出力がハイになる。

    【0102】コマンド・サイクル中のこれら3つのビットのこの2進組合せは、読取りデータ転送を開始するマスタがバースト読取りデータ転送を開始しており、したがって、全体的なデータ転送の速度を最適化するためにデータのFIFOへの読取り−事前取込みを行うべきであることを示す。 このビット値組合せによって示される特定のPCIバス・コマンドは"Memeory Read Long"および"Memory Read Multiple"である。

    【0103】ANDゲート152の出力は、3入力マルチプレクサ154の第1の入力に接続されている。 マルチプレクサ154の第2の入力は2進ロー値に接続されている。 マルチプレクサ154の第3の入力は、ラッチ156を介してそれ自体の出力に接続されており、フィードバックされる。

    【0104】マルチプレクサ154は、ホスト・ブリッジ20のハードウェアを介して制御信号として受信する様々なPCIバス信号の状況に基づいて、1つの入力を出力上でドライブすることを選択する。 PCIコマンドおよびアドレス・フェーズ中に、マルチプレクサ154
    は第1の入力(ANDゲート152からの出力)を出力上でドライブすることを選択する。 PCIバス22上でのデータ・フェーズ中に、マルチプレクサ154は、第3の入力を出力上でドライブすることを選択する。 PC
    Iマスタによって開始された読取りバースト転送が完了し、要求されたすべてのデータがマスタによって読み取られたことを示すと、マルチプレクサ154は第2の入力の2進ロー値を出力上でドライブすることを選択する。

    【0105】マルチプレクサ154の出力は、ラッチ1
    56に接続されているだけでなく、ANDゲート158
    の一方の入力にも接続されている。 ANDゲート158
    の他方の入力は、信号LB_HITに接続されている。
    該信号はブリッジ20のハードウェアによって生成される。 ホスト・ブリッジ20が、PCIマスタによって生成されたデータ転送用のアドレスを復号し、該アドレスのターゲットを、Sバス16に接続されたスレーブと判定すると、LB_HITがハイになる。

    【0106】ANDゲート158の出力は信号READ
    _PFTCHであり、ホスト・ブリッジ20の他のハードウェアに接続されている。 READ_PFTCHは、
    2進ハイのとき、PCIバス22に接続されたマスタによって読み取るべきFIFO内にデータを事前に取り込んでおくべきであることを、ホスト・ブリッジ20の他のハードウェアに示す。

    【0107】ANDゲート158からの出力はラッチ1
    60にも入力され、反転されてANDゲート162に入力される。 ラッチ160の出力は、ANDゲート162
    の他方の入力に接続されている。

    【0108】ラッチ156および160は、それらに入力された値を1PCIクロック信号持続時間中保持し、
    次いで次のクロック信号中に出力する。 したがって、A
    NDゲート158の出力が数クロック持続時間中ハイであり、次いであるクロック信号でローになり、あるクロック信号期間中ローのままであるとき、ラッチ160
    は、ANDゲート158の出力がローのとき、同時にハイ信号を1クロック持続時間中保持する。 したがって、
    1クロック信号持続時間中、ANDゲート162の出力はハイで「パルス」し、次いで再びローになる。

    【0109】ANDゲート162の出力は、制御信号として3入力マルチプレクサ164に接続されている。 マルチプレクサ164は他の制御入力信号BUSYを有する。 該信号はSバス16インタフェース論理機構104
    によって生成される。 BUSYは、ハイのとき、PCI
    マスタによって開始された読取りバースト転送に応答して依然としてSバス16上でデータの事前取出しが行われていることを示す。

    【0110】BUSYがハイであり、ANDゲート16
    2がハイでパルスしているとき、マルチプレクサ164
    は2進ハイ信号に接続された第1の入力を出力する。 B
    USYだけがハイのとき、マルチプレクサ164は、ラッチ166を介してフィードバック信号としてマルチプレクサ164の出力に接続された第3の入力を出力上でドライブすることを選択する。 BUSYがローのとき、
    マルチプレクサ164は、2進ローに接続された第2の入力を出力する。

    【0111】マルチプレクサ164の出力は、ANDゲート168の一方の入力に接続されている。 ANDゲート168の他方の入力は、Sバス16インタフェース論理機構104によって生成される信号の反転2進値LA
    ST_RDYである。 LAST_RDYは、Sバス16
    に接続されたスレーブからFIFOへの最後のデータ列の事前取込みが行われるまで、常に2進ハイ値である。
    スレーブから事前に取り出される最後のデータ列は、R
    EAD_PFTCHがローになるときにインタフェース論理機構104によって決定される。

    【0112】ANDゲート168の出力はラッチ170
    に接続されている。 ラッチ170の出力は信号CLEA
    R_FIFOである。 CLEAR_FIFOは、ハイのとき、FIFOのDWORDをクリアし、byte valid信号をすべて2進1に設定するようFIFO論理機構10
    2に通知する。 したがって、FIFOは空になり、次のデータ転送のための準備を完了する。

    【0113】動作時に、PCIマスタはPCIバス22
    のC/BE線上でMemory Read LongコマンドまたはMemo
    ry Read Multipleコマンドをアサートすることによって、PCIコマンド/アドレス・フェーズ中に読取りバースト転送を開始する。 マスタは同じコマンド/アドレス・フェーズ中に、Sバス16に接続されたスレーブに読取り転送が出力されることを示すメモリ・アドレスをPCIバス22のA/D線上で送信する。

    【0114】ただちに、PCIバス22のC/BE線のビット番号0、2、および3がANDゲート152に入力される。 これらのビット番号はそれぞれ、Memory Rea
    d Long PCIバス・コマンドまたはMemory Read Multiple
    PCIバス・コマンドを示す2進値0、1、および1を有する。 これらのコマンドは、現在の読取りデータ転送がバースト転送であることを示す。 C/BE線のビット番号0のロー値は、ANDゲート152に入力される前に反転される。 したがって、結果として得られるANDゲート152の出力は、マルチプレクサ154の第1の入力に入力される2進ハイ値である。

    【0115】現在のPCIフェーズがアドレス・フェーズなので、マルチプレクサ154は、第1の入力上のA
    NDゲート152からのハイ信号を出力上でドライブすることを選択する。 アドレス・フェーズの後のPCIデータ・フェーズ中に、マルチプレクサ154は第3のフィードバック入力を出力上でドライブすることを選択する。 該入力は、ラッチ156のために、常にハイ値になる。

    【0116】ホスト・ブリッジ20は、PCIマスタによってアサートされたアドレスを復号すると、データ転送のターゲットを、Sバス16に接続されたスレーブと判定する。 したがって、ホスト・ブリッジ20のハードウェアはLB_HITをハイ信号にドライブする。

    【0117】マルチプレクサ154からのハイ値と、L
    B_HITはANDゲート158に入力され、それによってANDゲート158は信号READ_PFTCH用のハイ出力を生成する。 READ_PFTCHは、ハイになると、FIFOバッファ論理機構102およびSバス16インタフェース論理機構104に、データのスレーブからFIFOへの事前取込みを開始するよう通知する。

    【0118】PCIマスタが、FRAME信号をハイ値にアサートすることによって、必要とするすべてのデータを(FIFOを介して)スレーブから読み取ったことを示すまで、READ_PFTCHはハイのままである。 該読取りが行われると、マルチプレクサ154は2
    進ハイ値である第2の入力を出力上でドライブすることを選択する。 したがって、ANDゲート158は、Sバス16インタフェース論理機構104にデータのFIF
    Oへの事前取込みを停止するよう通知するREAD_P
    FTCH用のロー信号を生成する。

    【0119】PCIマスタがFRAME信号をハイにアサートすることによってデータ転送を停止するとき、マスタによって必要とされず、かつ読み取られないデータがすでにFIFOに取り込まれている可能性がある。 残余データをFIFOからクリアし、あるいは空にしておかないかぎり、Sバス16とPCIバス22の間の別のデータ転送を開始することはできない。 読取り事前取出し論理機構150の残りの論理機構はこの機能を実行する。

    【0120】ANDゲート158が最初にREAD_P
    FTCH用のロー値を生成するクロック信号中に、該ロー値は反転され、ANDゲート162に入力される。 このクロック信号中には同時に、ラッチ160が、前のクロック信号から保持していたハイ2進値を出力する。 したがって、READ_PFTCHがローになる1クロック信号持続時間中、ANDゲート162はハイ出力をパルスする。

    【0121】ANDゲート162からのパルスされたこの出力は、BUSY信号と共に、制御信号としてマルチプレクサ164に入力される。 BUSYはまた、このクロック信号中ハイになる。 なぜなら、Sバス16が、データのスレーブからの最後の事前取出しを完了する途中だからである。 したがって、マルチプレクサ164は、
    第1の入力に接続されたハイ信号を出力上でドライブする。

    【0122】Sバス16が現在のデータ転送の結果として読取り事前取出し論理機構150によって開始された読取り事前取出しを完了する途中であるかぎり、BUS
    Yはハイのままである。 このため、マルチプレクサ16
    4はフィードバック入力を選択する。 該入力は、ラッチ166のためにハイ信号である。

    【0123】このハイ信号は、LAST_RDYと共にANDゲート168に入力される。 LAST_RDYがローになり、FIFOへの最後の読取り事前取込みが完了したことを通知すると、AND168はハイ信号をラッチ170に出力する。 ラッチ信号170はこのハイ信号を出力上でCLEAR_FIFO信号として保持する。 CLEAR_FIFOによって、FIFOバッファ論理機構は、未使用の事前に取り込まれたデータをFI
    FOから除去し、すべてのlatched byte valid信号をすべて2進1に戻す。

    【0124】したがって、読取り事前取出し論理機構1
    50は認識可能に、またはPCIバス22に接続されたマスタによって読取りデータ転送が開始されたときだけ、Sバス16上での読取り事前取出しを開始する。 読取り事前取出し論理機構150はまた、データ転送をF
    IFOを介してできるだけ迅速に完了できるように、F
    IFOを最適な方法でクリアする。

    【0125】Sバス16とPCIバス22の間での通信を完全に最適化し変換するために、ホスト・ブリッジ2
    0、および具体的にはSバス16インタフェース論理機構104は、読取り事前取出し論理機構150の他に、
    バースト転送に関するそれぞれのバス・アーキテクチャの間の2つの違いに適応するためのハードウェアを含まなければならない。 上記で論じたこれらの違いの1つは、PCIバス・アーキテクチャはどのアドレスからでもデータを順次バースト転送できるが、CPUローカル・バス/システム・バス・アーキテクチャはあるアドレス上の順次バースト転送しか開始できないことである。

    【0126】CPUローカル・バス・アーキテクチャとPCIバス・アーキテクチャの間の他の違いは、CPU
    ローカル・バスまたはシステム・バスは非連続データをバースト転送することができないが、PCIバスはこの機能を有することである。 それぞれのバイト・イネーブル信号によってイネーブルされたデータの2つ以上のバイトが、イネーブルされていないデータのバイトによって分離されるとき、非連続データが発生する。 バースト転送時の非連続データは、転送中のデータ列のどれか用のバイト・イネーブル信号のどれかまたはすべてが、データがイネーブルされていないことを示すときに発生する。 たとえば、4つのデータ列のバースト転送は、該列のどれかのバイト・イネーブル信号のどれかが2進ハイ値(値1)を有する場合は非連続データである。 上述のように、バースト転送内の非連続データは、CPUローカル・バス34およびSバス16のバス・アーキテクチャ内では可能でない。

    【0127】ここで図11乃至図12を参照すると、システム・バス・インタフェース論理機構104のバースト論理機構200の図が示されている。 バースト論理機構200は、PCIバス22とSバス16の間での非連続データを含むバースト転送の速度を最適化する。 バースト論理機構200は、Sバス16をターゲットとする非連続データのバースト転送を検出し、該バースト転送を、非連続データを転送するのに必要な任意の数の単一データ転送に変換し、残りの連続データをバースト転送することによって、この最適化を実行する。 したがって、本発明は、非連続データを含むバースト転送時に転送されるすべてのデータを評価し、データをできるだけ効率的に転送する、単一転送とバースト転送の最適組合せを判定する。 バースト論理機構200はまた、PCI
    マスタによって開始されるどのバースト転送でも、Sバス16のアーキテクチャの制限内の正しいアドレス境界上で開始するようにし、同時に、Sバス16上のすべてのバースト転送の速度を最適化する。

    【0128】バースト論理機構200は、3入力マルチプレクサ202の第1の入力でPCI_AD[X:2]
    と呼ばれる入力信号を受信する。 PCI_AD[X:
    2]は、Sバス16をターゲットとするバースト転送を開始するためにPCIマスタがPCIアドレス・フェーズ中にPCIバス22上で送信するPCIアドレス信号の最下位ビットから構成される。 PCI_AD[X:
    2]を構成するPCIアドレス信号のビット番号はビット番号Xないし2である(2はアドレス信号の最下位ビットである)。 ビット番号Xはシステム設計者によって選択されるビット番号であり、設計者が任意の1回のP
    CI/システム・バス・データ転送でPCIバス22上でバースト転送できるようにするPCIデータ・フェーズの数に基づく。 設計者は、任意のあるPCIマスタがPCIバスにアクセスできるようにする時間の長さに基づいて、あるいは他のシステム・アーキテクチャ設計上の理由で、この最大値を設定する。

    【0129】バースト論理機構200が、最初のPCI
    アドレス信号中のビット番号Xより上位のビット番号が修正されるように、後述のようにこのアドレスを増分した場合、PCIバス22上でのデータ・フェーズの最大数を超えている。 この条件が発生すると、PCIインタフェース論理機構106はターゲット切断を開始し、それによって最大数のデータ・フェーズを超えるPCIデータ転送の後のバス・サイクル中のどのデータ転送も不許可になる。 したがって、マスタはホスト・ブリッジ2
    0から切断される。 これによって、他のPCIマスタがPCIバス22にアクセスできるようになる。

    【0130】マルチプレクサ202の第2の入力は、2
    入力マルチプレクサ204の出力に接続されている。 マルチプレクサ202の第3の入力は、ラッチ206を介してフィードバック入力としてマルチプレクサ202の出力に接続されている。

    【0131】マルチプレクサ202用の制御信号は、ホスト・ブリッジ20内の他のハードウェア論理機構によって提供される。 マルチプレクサ202は、Sバス16
    をターゲットとする転送を開始するPCIアドレス・フェーズ中に第1の入力を出力上でドライブすることを選択する。 マルチプレクサ202の第2の入力は、Sバス16上でのデータ・フェーズが完了した後に出力上でドライブされ、次のシステム・バス・データ転送用のアドレスを生成しなければならない。 マルチプレクサ202
    の第3の入力は、システム・バス・データ・フェーズ中またはSバス16上でのデータ・フェーズの完了時に選択され、Sバス16上での次のデータ・フェーズは、完了したデータ・フェーズと同じアドレスをターゲットとする。 この後者の条件は、単一のDWORD内の非連続データを、Sバス16上で転送し、またはSバス16の動的バス・サイジング機能に適応させる予定のときに発生する。 これらの問題と、該問題を解決するために使用される本発明のハードウェアは共に、IBMに譲渡された"METHOD AND APPARATUS FOR PROVIDING ACCURATEAND
    COMPLETE COMMUNICATION BETWEEN DIFFERENT BUS ARCHI
    TECTURE IN AN INFORMATION HANDLING SYSTEM"と題する関連特許出願で開示されている。

    【0132】マルチプレクサ202の出力は、ラッチ2
    06を通過した後に、Sバス16上での現在のデータ・
    フェーズ用のアドレスのビット番号Xないし2を備える。 この信号をSBUS_AD[X:2]と呼ぶ。 SB
    US_AD[X:2]はシステム・バス・インタフェース論理機構104に出力される。 Sバス・インタフェース論理機構104は、SBUS_AD[X:2]をPC
    I_ADの残りのビット番号と組み合わせて、Sバス1
    6上での現在のデータ・フェーズのために、この組合わされたアドレス値をSバス16のアドレス線上で出力する。

    【0133】SBUS_AD(SBUS_AD[2:
    3])のビット番号2および3はバースト・サイズ論理ブロック208に入力される。 バースト・サイズ論理ブロック208への他の入力は、ペーシング論理機構11
    0からのDWORD FULL信号およびEMPTY信号、事前取出し論理機構150からのREAD_PFT
    CH信号、およびFIFO_FLUSH信号を含む。 F
    IFO_FLUSHは、FIFO中のデータをSバス1
    6上のスレーブに書き込むべきであることをPCIバス・インタフェース論理機構が示したときに、FIFOバッファ論理機構102によって生成される。

    【0134】バースト・サイズ論理ブロック208は、
    受信する入力の値に基づいて出力BSIZEを生成する。 BSIZEは、Sバス16上でSBUS_AD
    [2:3]の現在値から順にバースト転送すべきデータ・フェーズの数を示す。 BSIZEはシステム・バス・
    インタフェース論理機構104に出力され、該論理機構104は、BSIZEによって示されたデータ・フェーズの数をバースト・モードで転送する。

    【0135】バースト・サイズ論理ブロック208は、
    バースト・データ転送が書込み動作(表1)か、それとも読取り事前取出し動作(表2)かに基づいて、以下の表1および表2に記載したBSIZE用の値を生成する論理の組合せである。

    【表1】

    【表2】

    【0136】表が示すように、Sバス16のアーキテクチャは、SBUS_AD[2:3]が値"00"または"
    10"をもつことで終了するアドレスで始まるバースト転送しか許可しない。さらに、この値が"10"に等しい場合は2つのバースト転送しか許可されない。

    【0137】また、表1が示すように、FIFO内のデータの特定のDWORDをSバス16上でバースト転送するには、該DWORDのDWORD FULL信号がハイであり、DWORD内のデータのバイトがすべてイネーブルされていることを示していなければならない。
    これによって、Sバス16上で非連続データがバースト転送されないことが保証される。

    【0138】SBUS_AD[X:2]は2つの加算機構210および212にもそれぞれ入力される。 加算機構210はSBUS_AD[X:2]の値を1だけ増分して、この新しい値をマルチプレクサ204の第1の入力に出力する。 加算機構212はSBUS_AD[X:
    2]の値を2だけ増分し、この新しい値をマルチプレクサ204の第2の入力に出力する。

    【0139】アドレス増分論理ブロック214は、制御信号をマルチプレクサ204に提供する。 アドレス増分論理ブロック214は、ペーシング論理機構110からのDWORD EMPTY信号、SBUS_AD[3:
    2]、およびFIFO_FLUSHを入力として受信し、これらの入力に基づいてマルチプレクサ204用の制御信号を生成する。 アドレス増分論理ブロック214
    によって出力される制御信号は、以下の表3に記載したように、該論理ブロック214への入力に基づいてロー値またはハイ値になる。

    【表3】

    【0140】アドレス増分論理ブロック214は、表3
    を生成する機能を提供する。 アドレス増分論理ブロック214の目的は、あるアドレスに書き込むべきイネーブルされたデータがないことをマスタが示すときに、PC
    Iマスタによって開始されたバースト転送内でそのアドレスをスキップすることである。 アドレス増分論理ブロックからの出力がローのとき、マルチプレクサ204は加算機構210からの出力を出力上でドライブすることを選択する。 これは、Sバス16上での次のデータ転送のアドレスが単に、1DWORDアドレスだけ増分される通常状態を示す。 アドレス増分論理ブロックからの出力がハイのとき、マルチプレクサ204は加算機構21
    2からの出力を出力上でドライブすることを選択する。
    これによって、アドレス値は2DWORDアドレスだけ増分される。 これは、Sバス16上で書き込むべきFI
    FO中のデータの次のDWORD全体がイネーブルされておらず、FIFO中のこのDWORDが対応するアドレスを特定の書込みバースト転送でスキップすべきであることを示すときに行われる。 したがって、そのアドレスにデータは書き込まれない。

    【0141】Sバス16に接続されたスレーブへの書込みバースト転送時の動作では、PCIマスタによって提供された第1のPCIアドレスのビット番号Xないし2
    がマルチプレクサ202の第1の入力に入力される。 このフェーズがPCIバースト転送の始めを通知する第1
    のPCIアドレス・フェーズなので、マルチプレクサ2
    02はこのアドレス値を出力上でドライブする。 ラッチ206はこの値をラッチし、第1のSBUS_AD
    [X:2]値用に出力する。

    【0142】SBUS_AD[2:3]はバースト・サイズ論理ブロック208に入力される。 バースト・サイズ論理ブロック208は、FIFO_FLUSH用のハイ信号を受信するまで出力を生成しない。 バースト・サイズ論理ブロック208がこのハイ信号を受信するとき、FIFOにはPCIマスタからの書込み−遅延書込みデータが埋め込まれている。

    【0143】バースト・サイズ論理機構208は、FI
    FO_FLUSH信号を受信すると、4つのDWORD
    FULL信号に基づいて、FIFOの各DWORDが連続データを含むかどうかを評価し、SBUS_AD
    [3:2]信号も評価する。 バースト・サイズ論理機構は、これらの評価に基づいて、BSIZE用の信号を生成する。

    【0144】たとえば、ビット番号2および3が値"0
    0"を有し、FIFO_FLUSHがハイであり、FI
    FO全体が一杯である場合、値4を有するBSIZEが生成される。 したがって、システム・バス・インタフェース論理機構104はFIFO内のデータの4つのDW
    ORDをスレーブにバースト書込み転送する。 これは、
    Sバス16の最大バス機能であり、したがってバースト・サイズ論理ブロック208に入力される信号の最も速い組合せである。 マスタによって開始された書込み転送が4DWORDのデータより長い場合、FIFOで空間が利用可能になると、引き続きマスタからの書込み−遅延書込みデータがFIFOに埋め込まれる。 FIFO中のあらゆるDWORDが同時に空になり、あるいはPC
    Iバス・トランザクションが完了するまで、FIFO_
    FLUSHはアサートされ続ける。

    【0145】したがって、バースト・サイズ論理ブロック208は、Sバス16上でのバーストの後のSBUS
    _ADのビット番号2および3の増分値に基づいて次のBSIZE信号を生成する。 Sバス16上での4回のデータ・フェーズのバーストの後に、この値が再び"00"
    になり、それによって再び、Sバス16上での最適バースト転送が可能になる。 これは、バースト転送が完了してFIFO_FLUSHがもはや生成されなくなるまで継続する。

    【0146】これに対し、バースト書込み転送は、SB
    US_AD[2:3]が値"01"を有するアドレスから開始する。 この状況では、Sバス16上での制限のために、バースト・サイズ論理ブロック208はPCIバス22からのバースト転送を、Sバス16上での単一のバス転送と多数のバースト転送に分割する。 これによって、前の例より遅いデータ転送が作成される。 しかし、
    論理ブロック208は、Sバス16の最大バースト機能を使用してできるだけ速く転送を実行する。

    【0147】FIFO_FLUSHが受信されると、すべてのDW FULL信号がハイであると仮定して、B
    SIZEが1になるため値"01"で終わるアドレスにデータ転送が1回行われる。 上記で論じたように、この転送の後に加算機構210によってアドレスが1だけ増分され、したがってSBUS_ADのビット番号2および3の次の値は"10"になる。 したがって、BSIZEが2になり、Sバス16上で2つのDWORDのバースト転送が発生する。 前の2回のDWORDバースト転送のためにアドレスはさらに2回増分される。 したがって、
    SBUS_AD[2:3]の新しい値は"00"になる。
    これでバースト・サイズ論理ブロック208は、PCI
    マスタによってデータ転送が完了するまで、前の例で論じたようにBSIZEの最大値を許可することになる。

    【0148】バースト・サイズ論理ブロック208は、
    システム・バス・スレーブへのバースト書込み動作の場合と実質的に同じように、システム・バス・スレーブからの読取り事前取出しのために動作する。 違いは、DW
    ORD FULL信号の代わりにDWORD EMPT
    Y信号が、FIFO_FLUSHの代わりにREAD_
    PFTCHが、表1の代わりに表2が使用されることである。

    【0149】まとめとして、本発明の構成に関して以下の事項を開示する。

    【0150】(1)中央演算処理装置と、前記中央演算処理装置に接続されたシステム・バスと、それ自体に周辺装置を接続するための周辺バスと、前記システム・バスを前記周辺バスに接続するためのホスト・ブリッジとを備え、前記ホスト・ブリッジが、前記システム・バスと前記周辺バスの間で送信されるデータを一時的に記憶するためのバッファを含み、前記ホスト・ブリッジがさらに、前記データが非連続データかどうかに基づいて前記バッファとの間で前記データが送信される速度を最適化する論理ネットワークを含むことを特徴とする、情報処理システム。 (2)前記論理ネットワークがまた、前記システム・バスを介して前記データがそこに書き込まれあるいはそこから読み取られるアドレスに応じて、前記バッファとの間で前記データが送信される速度を最適化することを特徴とする、上記(1)に記載の情報処理システム。 (3)前記システム・バスを介して前記データがそこに書き込まれあるいはそこから読み取られる前記アドレスを提供するための増分論理機構を含むことを特徴とする、上記(1)に記載の情報処理システム。 (4)前記増分論理機構が、前記アドレスを1アドレスだけ増分する第1の加算機構と、前記システム・バスを介して前記データが書き込まれあるいは読み取られる直後に前記アドレスを2アドレスだけ増分する第2の加算機構とを含むことを特徴とする、上記(3)に記載の情報処理システム。 (5)前記増分論理機構が、前記システム・バスを介して前記データが書き込まれあるいは読み取られた直後にバースト・データ転送内のアドレスをスキップすべきかどうかに応じて、前記第1の加算機構または第2の加算機構の前記増分されたアドレスを出力するマルチプレクサを含むことを特徴とする、上記(4)に記載の情報処理システム。 (6)前記周辺バスがPCIバスであることを特徴とする、上記(1)に記載の情報処理システム。 (7)前記周辺バスが多重化バスであることを特徴とする、上記(1)に記載の情報処理システム。 (8)中央演算処理装置と、前記中央演算処理装置に接続されたシステム・バスと、それ自体に周辺装置を接続するためのPCIバスと、前記システム・バスを前記周辺バスに接続するためのホスト・ブリッジとを備え、前記ホスト・ブリッジが、前記システム・バスと前記PC
    Iバスの間で送信されるデータを一時的に記憶するためのバッファを含み、前記ホスト・ブリッジがさらに、前記バッファとの間で前記PCIバスおよび前記システム・バスを介して前記データが送信される速度を最適化する論理ネットワークを含むことを特徴とする、情報処理システム。 (9)前記論理ネットワークが、前記バッファ内の記憶空間がいつ前記データを含まなくなるかを感知するためのペーシング論理機構を含むことを特徴とする、上記(8)に記載の情報処理システム。 (10)前記ペーシング論理機構が、前記記憶空間が空のとき、マスタ周辺装置へのイネーブル信号を活動化することを特徴とする、上記(9)に記載の情報処理システム。 (11)前記マスタ周辺装置が、前記マスタが前記イネーブル信号を受信したとき、前記データ列を前記記憶空間に書き込むことを特徴とする、上記(10)に記載の情報処理システム。 (12)前記ペーシング論理機構が、前記記憶空間が前記データで一杯のとき、前記イネーブル信号を非活動化することを特徴とする、上記(10)に記載の情報処理システム。 (13)前記ペーシング論理機構が、前記記憶空間がいつ前記データで一杯になるかを感知するためのものでもあることを特徴とする、上記(9)に記載の情報処理システム。 (14)前記ペーシング論理機構が、前記記憶空間が前記データで一杯のとき、マスタ周辺装置へのイネーブル信号を活動化することを特徴とする、上記(13)に記載の情報処理システム。 (15)前記マスタ周辺装置が、前記イネーブル信号を受信したとき、前記記憶空間内の前記データを読み取ることを特徴とする、上記(14)に記載の情報処理システム。 (16)中央演算処理装置と、前記中央演算処理装置に接続されたシステム・バスと、それ自体に周辺装置を接続するための周辺バスと、前記システム・バスを前記周辺バスに接続するためのホスト・ブリッジとを備え、前記ホスト・ブリッジが、前記システム・バスと前記周辺バスの間で送信されるデータを一時的に記憶するためのバッファを含み、前記ホスト・ブリッジがさらに、前記周辺バスに接続されたマスタ周辺装置が、前記システム・バスに接続されたスレーブに向けられた読取りバースト転送を開始する際に、前記システムを介した前記データの前記バッファへの事前取込みを行うための論理機構を含むことを特徴とする、情報処理システム。 (17)前記論理機構が、前記マスタ周辺装置がいつ前記読取りバースト転送を開始するかを感知するためのセンサを含むことを特徴とする、上記(16)に記載の情報処理システム。 (18)前記読取りバースト転送がいつ完了したかを判定し、前記読取りバースト転送時に読み取られなかったデータを前記バッファからクリアするための信号を始動するための検出器を含むことを特徴とする、上記(1
    6)に記載の情報処理システム。 (19)前記周辺バスがPCIバスであることを特徴とする、上記(16)に記載の情報処理システム。 (20)前記周辺バスが多重化バスであることを特徴とする、上記(16)に記載の情報処理システム。

    【0151】

    【発明の効果】したがって、システム・バスと周辺バスの間のデータ転送を最適化する複数バス情報処理システム用のバス間ブリッジの好ましい実施例について説明した。

    【図面の簡単な説明】

    【図1】情報処理システムのブロック図である。

    【図2】情報処理システムのブロック図である。

    【図3】情報処理システムのブロック図である。

    【図4】書込み動作時に図1、2、および3のシステムの周辺バスによって送られる様々な信号のタイミング図である。

    【図5】読取り動作時の図4の信号のタイミング図である。

    【図6】図1、2、および3のシステムのホスト・ブリッジのインタフェース・ハードウェアのブロック図である。

    【図7】図6のインタフェース・ハードウェアのペーシング論理機構の論理図である。

    【図8】図6のインタフェース・ハードウェアのペーシング論理機構の論理図である。

    【図9】図7乃至図8のペーシング論理機構のFIFO rea
    dy論理ブロックの論理図である。

    【図10】図6のインタフェース・ハードウェアの読取り事前取出し論理機構の論理図である。

    【図11】図6のインタフェース・ハードウェアのバースト論理機構の論理図である。

    【図12】図6のインタフェース・ハードウェアのバースト論理機構の論理図である。

    【符号の説明】

    10 システム 12 キャッシュおよびメモリ複合体 14 システム・バス装置 16 Sバス 18 主PCI装置 20 PCIホスト・ブリッジ 22 主PCIバス 32 ベースシステム・メモリ 34 CPUローカル・バス 100 論理機構 102 先入れ先出しバック・ツー・バック論理機構 104 Sバス・インタフェース論理機構 110 ペーシング論理機構 112 4入力マルチプレクサ 116 4入力ANDゲート 118 4入力NORゲート 120 2入力比較機構 126 NANDゲート 130 インバータ 134 ラッチ

    ───────────────────────────────────────────────────── フロントページの続き (72)発明者 アシュ・コーリ アメリカ合衆国33445 フロリダ州デルレ イ・ビーチ スプリング・ハーバー・ドラ イブ 1510 アパートメント オー (72)発明者 グレゴリー・ノーマン・サントス アメリカ合衆国33486 フロリダ州ボカ・ ラトン ナインス・テラス・サウス・ウェ スト1098

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈