首页 / 专利库 / 电脑零配件 / 系统总线 / 数据总线 / PCI总线 / Method and device for offering accurate and complete communication between different bus architectures of information processing system

Method and device for offering accurate and complete communication between different bus architectures of information processing system

阅读:388发布:2023-03-15

专利汇可以提供Method and device for offering accurate and complete communication between different bus architectures of information processing system专利检索,专利查询,专利分析的服务。并且PURPOSE: To prevent the malfunction of a CPU local bus by converting the discontinuous data into the continuous ones when a logical network included in a host bridge decides that the data to be transmitted through the CPU local bus are identical to the discontinuous data.
CONSTITUTION: A PCI host bridge 20 functions as an interface between a system bus 16 and a main PCI bus 22. The bridge 20 checks via a detector 114 whether a string of data to be transmitted through the bus 16 are identical to a string of discontinuous data. Then the bridge 20 has a hardware logical mechanism 100 which includes a latch register 102, a multiplexer 106 and a byte enable generation device 132. If the detected data string is discontinuous, the mechanism 100 converts the data string into plural continuous data strings before it is transmitted via the bus 16. Thus, the accurate communication is attained.
COPYRIGHT: (C)1994,JPO,下面是Method and device for offering accurate and complete communication between different bus architectures of information processing system专利的具体信息内容。

【特許請求の範囲】
  • 【請求項1】中央演算処理装置と、 前記中央演算処理装置に接続されたシステム・バスと、 周辺装置をそれ自体に接続するための周辺バスと、 前記システム・バス上で送信すべきデータ列が非連続データ列かどうかを検出し、前記データ列が非連続データ列の場合、前記データを前記システム・バス上で送信する前に、前記データ列を複数の連続データ列に変換しておく論理ネットワークを有する、前記システム・バスを前記周辺バスに接続するためのホスト・ブリッジとを備えることを特徴とする情報処理システム。
  • 【請求項2】前記論理ネットワークが前記ホスト・ブリッジ内のハードウェアであることを特徴とする、請求項1に記載の情報処理システム。
  • 【請求項3】前記論理ネットワークが、前記データ列を送受信するシステム・バスに接続されたスレーブのビット・サイズに基づいて前記データ列用の複数のイネーブル信号を生成する、生成装置を含むことを特徴とする、
    請求項1に記載の情報処理システム。
  • 【請求項4】前記論理ネットワークが、書込み転送時に前記データ列を前記複数の連続データ列に変換するための第1の論理経路と、読取り転送時に前記データ列を前記複数の連続データ列に変換するための第2の論理経路とを含むことを特徴とする、請求項3に記載の情報処理システム。
  • 【請求項5】前記論理ネットワークが、前記第1の論理経路または前記第2の論理経路を選択するための少なくとも1つのマルチプレクサを含むことを特徴とする、請求項4に記載の情報処システム。
  • 【請求項6】前記イネーブル信号が、書込み転送時には前記第1の論理経路によって、かつ読取り転送時には前記第2の論理経路によって、前記複数の連続データ列を得るように処理されることを特徴とする、請求項5に記載の情報処理システム。
  • 【請求項7】前記周辺バスがPCIバスであることを特徴とする、請求項1に記載の情報処理システム。
  • 【請求項8】前記周辺バスが多重化バスであることを特徴とする、請求項1に記載の情報処理システム。
  • 【請求項9】前記周辺バスに接続された周辺装置が、前記システム・バス上で前記データ列の前記送信を開始することを特徴とする、請求項1に記載の情報処理システム。
  • 【請求項10】複数の前記連続データ列がそれぞれ、前記連続データ列と前記システム上のバス・サイクルが1
    対1で対応するように前記システム上で連続的に送信されることを特徴とする、請求項1に記載の情報処理システム。
  • 【請求項11】情報処理システムにおいて、周辺バスに接続された周辺装置とシステム・バスに接続された構成要素の間で非連続データを転送する方法であって、 中央演算処理装置を提供するステップと、 前記中央演算処理装置に接続されたシステム・バスを提供するステップと、 周辺装置をそれ自体に接続するための周辺バスを提供するステップと、 前記システム・バスを前記周辺バスに接続するステップと、 前記システム・バス上で送信すべきデータ列が非連続データ列かどうかを検出するステップと、 前記データが非連続データの場合、前記データ列を複数の連続データ列に変換するステップと、 前記システム・バス上で前記複数の前記連続データ列をそれぞれ送信するステップとを含むことを特徴とする方法。
  • 【請求項12】前記連続データ列を送信または受信するシステム・バスに接続されたスレーブのビット・サイズに基づいて前記連続データ列のそれぞれ用のイネーブル信号を生成する追加ステップを含むことを特徴とする、
    請求項11に記載の方法。
  • 【請求項13】前記周辺バスがPCIバスであることを特徴とする、請求項11に記載の情報処理システム。
  • 【請求項14】前記周辺バスが多重化バスであることを特徴とする、請求項11に記載の情報処理システム。
  • 【請求項15】情報処理システムにおいてシステム・バスを周辺バスに接続するためのホスト・ブリッジであって、 前記システム・バスから前記周辺バスに、あるいは前記周辺バスから前記システム・バスに転送すべきデータ列が非連続データ列かどうかを判定するための検出器と、 前記データ列を複数の連続データ列に変換し、システム・バスの連続サイクル中に前記システム・バス上で前記連続データ列を送信するための論理ネットワークと、 前記データ列の転送でのスレーブである前記情報処理システムの構成要素のビット・サイズに基づいて前記複数の連続データ列のそれぞれ用のイネーブル信号を得るための生成装置とを備えることを特徴とするホスト・ブリッジ。
  • 【請求項16】前記周辺バスがPCIバスであることを特徴とする、請求項14に記載のホスト・ブリッジ。
  • 【請求項17】前記周辺バスが多重化バスであることを特徴とする、請求項14に記載のホスト・ブリッジ。
  • 说明书全文

    【発明の詳細な説明】

    【0001】

    【産業上の利用分野】本発明は、全般的には情報処理システムに関し、具体的には、情報処理システム中の2つの異なるバス・アーキテクチャに接続された構成要素と周辺装置の間のデータ通信が、一方のバス・アーキテクチャに適合された装置または構成要素から異なるバス・
    アーキテクチャに適合された装置または構成要素へのものであるときに完全で正確なものになるようにする方法および装置に関する。

    【0002】

    【従来の技術】情報処理システムは通常、主要構成要素として中央演算処理装置(CPU)を有する。 中央演算処理装置は、システム中のすべての通信を方向付けし、
    情報処理システムによって実行されるすべてのコマンドの調和をはかる。 情報処理システムは通常、バスと呼ばれる物理接続装置のネットワークも有する。 このネットワークは、CPUを任意の数の周辺装置および構成要素に接続して、CPUが該周辺装置および構成要素と通信できるようにする。

    【0003】情報処理システムで使用される1つのタイプのバスはCPUローカル・バスである。 CPUローカル・バスはシステム・バスとも呼ばれ、CPUをシステム・メモリやメモリ制御装置など、情報処理システムの主要構成要素に直接接続するために特別に設計されている。 CPUローカル・バスは高性能バスである。 これは、該バスに接続されたCPUと他の構成要素の間のデータ転送を該バスが高速で実行し、複数のデータ転送を同時に処理できることを意味する。 情報処理システムで使用される他のタイプのバスは、周辺バスである。 周辺バスは、入出装置(I/O)やグラフィクス・パッケージなどの周辺装置を情報処理システムに接続するように設計されている。 周辺バスは通常、該バスをCPUローカル・バスに接続するホスト・ブリッジを介して、情報処理システムのCPUおよび残りの主要構成要素に接続されている。

    【0004】各タイプのバスは、それに接続された異なる装置および構成要素の間のデータ転送を行うためにそれ自体が使用する異なる1組の標準プロトコルまたは規則を有する。 これらのプロトコルはバスに組み込まれ、
    バスの「アーキテクチャ」と呼ばれる。 あるバス・アーキテクチャ・タイプを構成できる様々なプロトコルには、バスによって認識されるデータ列のビット長、異なる信号がローのときにイネーブルされるかそれともハイのときにイネーブルされるか、バス上のデータが1本の線上で多重化されるかそれとも複数の線上で並列に送信されるか、あるタイプのデータが受け入れられず情報処理システムに誤動作または「クラッシュ」を発生させるかどうかなどがある。

    【0005】CPUローカル・バスと周辺バスのバス・
    アーキテクチャは通常異なる。 アーキテクチャが異なると、周辺バスに接続された周辺装置と、CPUローカル・バスに接続されたシステムのCPUまたは他の構成要素との間でデータを転送しなければならないときに通信上の問題が発生する。 そのようなデータ転送には異なるバス・アーキテクチャが関与するので、第1のバス・アーキテクチャから転送されるデータが、第2のバス・アーキテクチャが使用可能または認識可能な形でないことがある。

    【0006】したがって、あるバス・アーキテクチャから他のバス・アーキテクチャに転送されるデータを「変換する」装置および方法が必要である。 2つの異なるバス・アーキテクチャの間で転送されるデータを変換するために使用されるハードウェアおよび論理機構は通常、
    2つの異なるバスを接続するためのブリッジに含まれる。 したがって、CPUローカル・バスと周辺バスを接続するホスト・ブリッジは、2つのバスの間での通信を変換し、2つのバスの間でデータが認識可能に転送されるようにする論理機構およびハードウェアを含まなければならない。

    【0007】CPUローカル・バスと周辺バスのバス・
    アーキテクチャの1つの違いは、それらのバス上で転送される非連続データの存在に対するそれぞれのバスの対応である。 非連続データは、イネーブルされていないデータのバイトによって分離された、イネーブルされたデータのバイトから構成されている。 イネーブルされていない、すなわち認識できないディスエーブルされたデータは無視すべきであり、特定のデータ転送時に転送してはならない。 これらの周辺バスに接続されたあるタイプの周辺バスおよび装置は、誤動作を発生させずに非連続データを送信することができる。 これに対し、CPUローカル・バス上で非連続データを送信すると、情報処理システムがクラッシュし、あるいは重大な誤動作を起こす可能性がある。

    【0008】周辺バス・アーキテクチャとCPUローカル・バス・アーキテクチャの他の違いは、CPUローカル・バスは異なるビット長のデータを認識可能に送信できるが、周辺バスはデータ転送に関して1つの標準ビット長に制限されることである。 したがって、CPUローカル・バスは様々なビット長のデータを送受信するように設計された構成要素と互換性がある。 たとえば、長さが8ビットのデータ列しか送受信しない構成要素は、C
    PUローカル・バスに接続されるとデータを送受信できるようになる。 同様に、16ビットまたは32ビットの構成要素も、CPUローカル・バスをデータ送信に使用することができる。 様々なビット長のデータ転送に適応するCPUローカル・バスの能力を動的バス・サイジングと呼ぶ。

    【0009】

    【発明が解決しようとする課題】これに対し、周辺バスは32ビットなどの標準ビット長のデータ列の送信に制限される。 したがって、特定の周辺バス上で送信されるデータの標準ビット長と異なるビット長のデータだけを転送して受け入れるCPUローカル・バスに接続された構成要素は、ある種のデータ変換の介入なしに、周辺バスに接続された周辺装置と通信することができない。

    【0010】したがって、本発明の目的は、CPUローカル・バス上で送信すべきデータが非連続データかどうかを判定し、そうである場合、CPUローカル・バスが誤動作を起こさないように前記非連続データを連続データで置換する方法および装置を提供することである。

    【0011】本発明の他の目的は、周辺バスに接続された装置と、該周辺バスのアーキテクチャでの標準データ・ビット長と異なるデータ・ビット長向けに設計されたCPUローカル・バスに接続された構成要素の間のデータ転送を変換する方法および装置を提供することである。

    【0012】本発明の他の目的は、CPUローカル・バスを周辺バスに接続するホスト・ブリッジを備えたハードウェアでこれらの方法および装置を提供することである。

    【0013】

    【課題を解決するための手段】本発明によれば、CPU
    ローカル・バス上で送信すべきデータが非連続データかどうかを判定し、そうである場合、CPUローカル・バスが誤動作を起こさないように前記非連続データを連続データで置換する、CPUローカル・バスを周辺バスに接続するホスト・ブリッジ内のハードウェア論理機構が提供される。 本発明のハードウェアはまた、アーキテクチャによって標準長のデータ列に制限された周辺バスと、動的バス・サイジングを可能にするCPUローカル・バスの間のデータ転送を変換する。

    【0014】メモリ制御装置28は、メモリ・サイクルがそれに向けられる間、そのメモリ・サイクルに応答する。 しかし、メモリ・サイクルがメモリ制御装置28に向けられない場合、情報はS(システム)バス16上に送られる。 PCIバス22は、PCIと呼ばれる新しいバス・アーキテクチャを備えている。 主PCIバス22
    は、高性能バスである。 すなわち、主PCIバス22
    は、比較的短時間に大量のデータ転送、すなわち毎秒最大120メガバイトのデータ転送を行う。 PCIバスがこのように高レベルの性能を達成するのは、1つには、
    これをSバス14などの他の高速バスに直接リンクすることができ、したがってCPU24または他のSバス装置14と主PCI装置18の間で高速データ転送が提供できるからである。 実際に、ある種のグラフィクス・パッケージなどいくつかの高集積度装置を操作するには、
    PCIバス22などの高性能バスを介してSバスなどのシステム・バスに直接リンクする必要がある。

    【0015】また、PCIバス・アーキテクチャは、接続された周辺装置を操作するのに「グルー・ロジック(付加的な論理回路)」を必要としない。 他のバス用のグルー・ロジックは通常、周辺装置とバスの中間に設置されたデコーダ、バッファ、ラッチなどの様々なハードウェア構成要素から構成される。

    【0016】主PCIバス22は33MHzの同期クロック信号に基づいて動作し、PCIバスを介して送信されるデータの文字列は長さ32ビットである。 PCIバス上の32ビット・データ列をダブル・ワード(DWO
    RD)と呼ぶ。 ダブルワードはそれぞれ8ビットのデータから成る4バイトずつに分割される。

    【0017】PCIバスによって搬送されるアドレス情報およびデータ情報は1つの信号に多重化される。 多重化によってアドレス線とデータ線を別々にする必要がなくなり、そのためPCI環境で必要とされる信号数は、
    他のバス・アーキテクチャよりも少なくなる。 PCIバス・アーキテクチャで必要とされる信号の数は45ないし47であるが、標準の非多重化バスでは通常この2倍必要である。 したがって、信号の数が減るので、PCI
    バスにリンクされた装置をサポートするのに必要なピンの数もそれに対応する量だけ少なくなる。 したがって、
    PCIアーキテクチャは、集積度の高いデスクトップ・
    コンピュータ・システムに特に適合している。

    【0018】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"(草案)等に記載されている。これらの文献はすべて、PCI Special Interest Groupから発行されたものである。

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

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

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

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

    【0023】標準バス・ブリッジ78は、標準(たとえばMC−AまたはISA)バス92に接続された入出力装置90と主PCIバス22の間のインタフェースとして働く。 MC−Aバージョンの標準バス・ブリッジ78
    のアーキテクチャは、IBMに譲渡された以下の関連諸出願の主題となっている。

    【0024】2次PCI装置94は、2次PCIバス9
    6を介してPCI2次ブリッジ80に接続されている。
    任意の数の識別されない2次PCI装置94を2次PC
    Iバス96に接続することができる。 PCI2次ブリッジ80は、2次PCIバス96に接続された任意の数のPCI装置94と主PCIバス22の間のインタフェースとして働く。

    【0025】コンピュータ・システム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次ブリッジを介して行わなければならない。

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

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

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

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

    【0030】フレーム信号(FRAME)は、PCIバスに接続されたPCI2次ブリッジまたは周辺装置によって使用され、該ブリッジまたは周辺装置が、そのバスに接続された他のPCI2次ブリッジまたは周辺装置に対する通信サイクルまたはアクセスを開始することを示す。 アクセスを開始する周辺装置またはPCI2次ブリッジをマスタと呼ぶ。 アクセス先の装置または構成要素をスレーブと呼ぶ。 PCIバス・アーキテクチャでは、
    多数の信号は、高電圧から低電圧にドライブされるとき、すなわち「ロー」にドライブされるとき、イネーブルされあるいは活動化される。 FRAMEはそれらの信号の1つである。 したがって、第2のクロックに示したようにマスタがFRAMEをローにドライブするとき、
    マスタは、アクセスを開始していることをスレーブに示す。

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

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

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

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

    【0035】バイト・イネーブル信号は、AD上でのデータ転送時にC/BE上に存在する。 バイト・イネーブル信号は、識別番号0ないし3を有する4つのビットに含まれる。 これら4つのビットがすべてローに活動化されるとき(2進値の0)は、AD上で転送中のデータの4つのバイトすなわち32個のビットがすべてイネーブルされ、転送時にそれらのバイトが書き込まれることを示す。 4つのビットのうちの1つがハイ(2進値1)であるとき、PCIバス上で転送中の4バイト・データのうちの1つのバイトがディスエーブルされる。

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

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

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

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

    【0040】アドレス・フェーズの後に、データ・フェーズが開始すると、マスタはデータがイネーブルされたかどうかを示すバイト・イネーブル信号をC/BE線上でアサートする。 4つのビットのうちの1つ以上がハイの場合、AD線上の対応するデータ・バイトはイネーブルされない。

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

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

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

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

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

    【0046】PCIに接続されたマスタが、CPUローカル・バスまたはシステム・バスに接続された構成要素または装置、たとえばDMA制御装置やシステム・メモリに向けたデータ転送を実行する必要があるとき、2ステップ手順を使用しなければならない。 第1のステップでは、PCIバスをCPUバスまたはシステム・バスに接続するホスト・ブリッジが、PCIバス上でのデータ転送のスレーブになる。 第2のステップでは、ホスト・
    ブリッジがCPUローカル・バスまたはシステム・バス上での読取りサイクルまたは書込みサイクルのマスタになり、データ転送のターゲットである装置または構成要素が、CPUローカル・バスまたはシステム・バス上でのこの特定のデータ・トランザクションのスレーブになる。

    【0047】たとえば、グラフィクス制御装置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上での読取りサイクルのマスタになってSバス16からPCIバス22
    へのデータ転送を完了する、同様な2ステップ手順で動作する。

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

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

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

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

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

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

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

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

    【0056】読取りサイクルまたは書込みサイクル中のPCIバス上のデータは非連続データである。 非連続データとは、32ビット・データ列内のデータのうちのイネーブルされた2つ以上のバイトが、イネーブルされていないデータのバイトによって分離されているものである。 バイト・イネーブル信号の4つのビットは、データがディスエーブルされているかどうか、したがって非連続データかどうかを示す。 表1には、4つのバイト・イネーブル・ビットの可能な各2進組合せと、各組合せが非連続データを示すかどうかを示す。

    【表1】

    【0057】CPUローカル・バス34とSバス16のアーキテクチャが単一のデータ転送内で非連続であるデータを転送するときは必ず、情報処理システムで誤動作が発生する。 したがって、ホスト・ブリッジ20は、データが非連続データかどうかを判定して、そうである場合は非連続データを連続データに変換しないかぎり、データをPCIバス22からSバス16上に送信することができない。 本発明を実施するハードウェアはこのタスクを実行する。

    【0058】下記で説明する本発明で非連続データを連続データに変換するための方法は、PCIバス22上での単一の非連続データ転送を、Sバス16上での2つ以上の連続データ転送に分離することによるものである。
    たとえば、主PCIバス22に接続されたマスタからの非連続データがバイト・イネーブル値0110を有し、
    マスタがこのデータを、Sバス16に接続されたスレーブに書込み中の場合、ホスト・ブリッジ20内に含まれる本発明のハードウェアは、それぞれバイト・イネーブル値1110および0111を含む2つの書込みサイクルをSバス16上で生成する。 これら2つの書込みサイクルのアドレスおよびデータは同じになる。 これによって、データのイネーブルされた第1および第4のバイトは転送され、データのディスエーブルされた第2および第3のバイトは転送されなくなる。

    【0059】本発明は同時に、CPUローカル・バスまたはシステム・バスに接続された8ビット装置または1
    6ビット装置と、32ビット長の文字列のデータしか転送しないPCIバスに接続された装置の間での通信の問題に対処し解決する。 本発明では、この場合も、PCI
    バス上の32ビット転送をCPUローカル・バスまたはシステム上の複数のデータ転送に分解することによってこの問題を解決する。

    【0060】たとえば、主PCIバス22に接続されたマスタからの書込みサイクルが、8ビット文字列のデータしか受け入れないSバス16に接続されたスレーブに向けられる場合、すべてのデータがイネーブルされていると仮定して、マスタからの32ビット・データ列をS
    バス16上での4つの書込みサイクルに分割しなければならない。 4つの転送それぞれのバイト・イネーブル信号は、データのバイトがスレーブに転送されるときに変更される。 Sバス16上での第1の書込みのバイト・イネーブル信号は、データの4つのバイトがすべてイネーブルされていることを示す0000になる。 しかし、スレーブが8ビット装置なので、データの最下位バイトだけがスレーブによって受信される。 したがって、データの最下位バイトはすでにスレーブに転送されているので、本発明によれば、ホスト・ブリッジ20中でバイト・イネーブル信号0001を有する第2の書込みサイクルが生成される。 連続書込みサイクルでデータの各バイトが転送されるにつれて、第3の書込みサイクルのバイト・イネーブル値は0011に、第4の書込みサイクルのバイト・イネーブル信号は0111に変わる。

    【0061】下記の表2に、スレーブのビット・サイズおよび特定のデータ転送のバイト・イネーブル信号に応じて、単一のデータ転送の後にCPUローカル・バスまたはシステム・バス上の追加バス転送が必要であるかどうかを示す。 この表は、次のデータ転送のバイト・イネーブル値も示す。

    【表2】

    下記で説明する本発明では、たとえばホスト・ブリッジ20などのホスト・ブリッジのハードウェア中でこの表を実施する。

    【0062】ここで図6を参照すると、ホスト・ブリッジ20内の本発明のバイト・イネーブル制御ハードウェア100の図が示されている。 ハードウェア100は、
    PCIバス22のC/BE線に接続された第1のラッチ・レジスタ102と、第2のラッチ・レジスタ104とを含む。 ラッチ・レジスタ104は5入力マルチプレクサ106に接続されている。 ラッチ・レジスタ104
    は、それを2入力マルチプレクサ110に接続するための出力線108を有する。

    【0063】ラッチ・レジスタ102および104はそれぞれ、4ビットのデータを保持し、1つのクロック信号の4ビット値をラッチして保持する能力を有する。 ラッチ・レジスタ102は、PCIバス22のC/BE線から、特定のデータ転送用の4ビットのバイト・イネーブル信号を受け取り、Sバス16上でその特定のデータ転送が完了するまでその信号をラッチしておく。

    【0064】ラッチ・レジスタ104はマルチプレクサ106から4ビットの出力信号を受け取り、マルチプレクサ106が他の出力信号を生成するまでこの値を保持する。 ラッチ・レジスタ104は、現在の4ビット値を線108上でのマルチプレクサ110の第2の入力に出力する。 ラッチ・レジスタ104からの出力をlatched
    byte valid(L_BV)と呼ぶ。

    【0065】マルチプレクサ106は、PCIバス22
    とSバス16の両方上のデータ・フェーズの状況に応じてその出力上でドライブすべきものとしてその内部選択論理機構が選択する1ないし5の番号の付いた5つの入力を有する。 これらの入力はそれぞれ4ビット値である。 マルチプレクサ106は、ホスト・ブリッジ20のハードウェアを介してこれらのバス上でのデータ転送の状況を受け取る。 マルチプレクサ106にその5つの入力をそれぞれ選択させる、PCIバス22およびSバス16上のデータ・フェーズの状況は以下のとおりである。

    【0066】第1の入力−ホスト・ブリッジ20が最初にPCIバス22上の読取りデータ転送に応答し、かつSバス16上でのデータ転送が完了しており、他のデータ転送を開始する準備ができているときに選択される。
    第1の入力は常に、2進値"1111"である。

    【0067】第2の入力−PCIバス22上で書込みデータ転送が開始するとき、Sバス16上で対応する書込みデータ転送を完了するのに必要なSバス16上での第1のバス・サイクルが開始する前に選択される。 第2の入力は、PCIバス22のC/BE線からの4ビットのバイト・イネーブル値である。

    【0068】第3の入力−Sバス16上で完了すべきデータ転送が、PCIバス22から開始された書込み動作であり、Sバス16上での転送のバス・サイクルが完了したばかりのときに選択される。

    【0069】第4の入力−Sバス16上で完了すべきデータ転送が読取り動作であり、Sバス16上での転送のバス・サイクルが完了したばかりのときに選択される。

    【0070】第5の入力−Sバス16上のどのバス・サイクルでも選択され、そのバス・サイクルが完了するまで維持される。 この入力は、ラッチ・レジスタ104の出力からフィードバックされる。

    【0071】マルチプレクサ110は、PCIバス22
    によって開始されたデータ転送が読取り動作かそれとも書込み動作かに応じて、その出力上でドライブすべきものとして選択する2つの入力を有する。 これらの入力はそれぞれ長さ4ビットである。 第1の入力はPCI読取りデータ転送時に選択され、第2の入力はPCI書込みデータ転送時に選択される。 マルチプレクサ110は、
    ホスト・ブリッジ20のハードウェアを介して、PCI
    バス22とSバス16の両方上でのデータ転送の状況を監視する。

    【0072】マルチプレクサ110の出力は、Sバス1
    6上の次のバス・サイクル中に転送すべきデータのバイト・イネーブルが非連続データであるかどうかを検出する、非連続データ検出器114に接続されている。 検出器114は、上述の表1の機能を提供するハードウェア論理機構の機能ブロックの組合せである。 したがって、
    検出器114は、次のバス・サイクル中に転送すべきデータが非連続データかどうかを判定し、データが実際に非連続データの場合に出力線116上で2進"1"を生成する。 検出器114の出力をNCと呼ぶ。

    【0073】マルチプレクサ110の出力の4つのビットはまた、それぞれ線118、120、および122上の3つの別々の信号に分割される。 2つの下位ビット、
    すなわち0および1の識別番号を有するビットは、線1
    24に接続された線118上で出力され、線124はさらにSバス16に接続されている。 識別番号2を有するマルチプレクサ110の出力のビットは線120上に出力され、第1の2入力ORゲート126への入力になる。 識別番号3を有するマルチプレクサ110の出力のビットは線122上に出力され、第2の2入力ORゲート128への入力になる。

    【0074】検出器114のNC出力も、ORゲート1
    26および128に入力される。 ORゲート126および128の出力は線124に接続されている。

    【0075】線124は、2つのORゲート126および128の出力を組み合わせる、Sバス16への4ビット信号PBEを送信する。 これらのビットは、マルチプレクサ110の出力に含まれ、0および1の番号が付いている。 この4ビット信号はSバス16上での現在のバス・サイクル用のバイト・イネーブル信号であり、常に連続データになる。

    【0076】検出器114からのNC出力は、第3の2
    入力ORゲート130にも入力される。 ORゲート13
    0への他方の入力は線134を介してバイト・イネーブル生成装置132に接続されている。 生成装置132からの線134上への出力をBSZと呼ぶ。 ORゲート1
    30は、ホスト・ブリッジ20内の他のハードウェアに接続されたBCと呼ばれる出力を有する。

    【0077】生成装置132は、上述の表2を生成する機能を提供する既知の論理ハードウェアの一機能ブロックである。 したがって、生成装置132は、PCIバス22によって開始された特定のデータ転送を完了するのにSバス16上で別のバス・サイクルが必要かどうかを判定し、その転送用のバイト・イネーブル信号を提供する。 生成装置132からの出力は、データ転送の出力先であるスレーブが8ビット装置かそれとも16ビット装置かに依存する。

    【0078】生成装置132は、BS8およびBS16
    と呼ばれる2つの入力線を介してSバス16に接続されている。 BSZ信号、BS8信号、およびBS16信号は、値0または1を有する単一ビット2進信号である。
    データ転送が向けられるSバス16に接続されたスレーブは、データ転送の完了に応答すると、それ自体が8ビット装置かそれとも16ビット装置かに応じて、それぞれBS8またはBS16上で2進信号を送信する。 8ビット装置でも16ビット装置でもない場合、BS8およびBS16の値は1である。 BS8またはBS16が値0を有する場合、スレーブはそれぞれ8ビット装置または16ビット装置であり、生成装置132は線134上でBSZの値として2進1を生成する。

    【0079】NC信号またはBSZ信号が値1を有する場合、ORゲート130はBC信号としてハイ値を生成する。 ハイBC信号は、現在のデータ転送を完了するのに少なくとももう1つのバス・サイクルが必要であることを、ホスト・ブリッジ20内の他のハードウェアに示す。

    【0080】生成装置132は、Sバス16上での現在のバス・サイクル用のバイト・イネーブル信号である、
    線124からの他の入力を有する。 生成装置132は、
    現在のバイト・イネーブル値に基づいて次のバス・サイクル用のバイト・イネーブル値を生成する。

    【0081】生成装置132は、線136上で出力されるNBEと呼ばれる第2の出力を有する。 NBEは4ビット値である。 NBEは次のバス・サイクル用のバイト・イネーブル信号の値を与えられ、あるいはスレーブが8ビット装置または16ビット装置であるので、PCI
    バス22によって開始されたデータ転送を完了するのにこれ以上Sバス16上でのバス・サイクルが必要とされない場合には、値"1111"を有する。

    【0082】NBE信号は、2入力排他ORゲート(X
    OR)138と2入力反転排他ORゲート(NXOR)
    140への一方の入力である。 XORゲート138とN
    XORゲート140への他方の入力は、線142を介してXORゲート138およびNXORゲート140に接続された、線124からのSバス16上での現在のバス・サイクル用のバイト・イネーブル信号の値である。

    【0083】XORゲート138の出力は、第4の2入力ORゲート144の一方の入力に接続されている。 N
    XORゲート140の出力は、2入力ANDゲート14
    6の一方の入力に接続されている。 ORゲート144とANDゲート146への他方の入力は、線148を介してフィードバックされるラッチ・レジスタ104の出力である。 ORゲート144の出力は、マルチプレクサ1
    06の第3の入力に接続されている。 ANDゲート14
    6の出力はマルチプレクサ106の第4の入力に接続されている。

    【0084】ラッチ・レジスタ104からの出力は、線148を介して第2の2入力NXORゲート150、4
    入力ANDゲート152、および比較機構154にも接続されている。 ANDゲート152の4つの入力は、ラッチ・レジスタ104からのL_BV信号の4つのビットである。 ANDゲート152の出力はホスト・ブリッジ20内の他のハードウェアに出力され、PCIバス2
    2によって開始された書込みサイクルがいつSバス16
    上で完了したかを示す。 この出力はW_DONEと呼ばれ、活動化されると2進1になる。

    【0085】NXORゲート150への他方の入力はラッチ・レジスタ102の出力である。 この場合も、この出力はPCIバス22上で開始されたデータ転送からのバイト・イネーブル信号の値である。 この値は、Sバス16上でデータ転送が完了するまで一定のままである。
    NXORゲートの出力は、マルチプレクサ110の第1
    の入力に接続されている。

    【0086】ラッチ・レジスタ102からの出力は比較機構154にも接続されている。 比較機構154はこの値を、線148を介して受け取ったL_BV値と比較する。 これら2つの値が等しいとき、比較機構154は、
    ホスト・ブリッジ20内の他のハードウェアに接続された出力上で2進1を生成する。 この出力はR_DONE
    と呼ばれ、PCIバス22によって開始された読取りデータ転送がいつSバス16上で完了したかを示す。

    【0087】ハードウェア100の動作は、PCIバス22(PCIマスタ)に接続されたマスタによって開始されたデータ転送が読取り転送かそれとも書込み転送かに応じて異なる。 読取り転送時の動作では、PCIマスタがPCIバス22上でSバス16をターゲットとする読取りサイクルを開始し、ホスト・ブリッジ20がスレーブとして応答する。 PCIマスタからのバイト・イネーブル信号がラッチ102内にラッチされ、比較機構1
    54およびNXORゲート150に入力される。

    【0088】Sバス16上での読取り転送がまだ開始していないので、マルチプレクサ106は4ビット2進値"1111"である第1の入力を出力する。 この値は次いで、ラッチ・レジスタ104内にラッチされ、線14
    8上でL_BV信号としてNXOR150に出力される。

    【0089】NXORゲート150は次いで、ラッチ・
    レジスタ102にラッチされたPCIバス22からのバイト・イネーブル信号とL_BVの値の反転排他OR組合せに基づいて4ビットの出力値を生成する。 現在の転送が読取り動作なので、マルチプレクサ110は、データ転送全体にわたってマルチプレクサ110自体の出力上でドライブすべきNXORゲート150からの出力を選択する。

    【0090】検出器114は次いで、マルチプレクサ1
    10からの出力が非連続かどうかを判定し、そうである場合は出力信号NCを値2進1にドライブすることによって該信号を線116上で活動化する。 NCが活動化されると、ORゲート126および128の出力はハイになり、線124上のPBE信号のビット番号2および3
    を論理1にする。 したがって、PBEは常に連続データになる。 上述のように、PBEのビット番号0および1
    の値は、マルチプレクサ110の出力のビット番号0および1にすぎない。

    【0091】PBE信号は次いで、線124上で現在のバス・サイクル用のバイト・イネーブル信号としてSバス16に送信される。 読取り転送の出力先であるSバス16に接続されたスレーブは、データ転送に肯定応答するとき、BS8線またはBS16線上で2進0を生成し、スレーブ自体がそれぞれ8ビット装置または16ビット装置であることを示すことができる。 生成装置13
    2は、BS8、BS16、およびPBE信号の値に基づいて、上述の表2に従って線136上でNBE信号を生成する。

    【0092】BS8またはBS16が2進0にイネーブルされ、データ転送を完了するのにSバス16上でもう1つのバス・サイクルが必要であると生成装置132が判定した場合、生成装置132は線134上でBSZ信号として2進ハイ信号を生成する。 これによって、OR
    ゲート130は、データ転送を完了するのにもう1つのバス・サイクルが必要であることをホスト・ブリッジ2
    0内の他のハードウェアに示すBCのハイ信号を生成する。 同様に、検出器114が線116でNCのハイ値を生成する場合、ORゲート130は、BCを、データ転送を完了するのにもう1つのバス・サイクルが必要であることを示す2進ハイ値にドライブする。

    【0093】NBE信号が生成されると、線142からのPBE信号と共にNXORゲート140に入力される。 NXORゲート140によって出力される4ビット2進値は、ラッチ・レジスタ104の出力のフィードバック信号と共にANDゲート146に入力される。 AN
    Dゲート146はこれら2つの信号に対して論理AND
    演算を実行し、マルチプレクサ106の第4の入力に接続された結果を出力する。 この転送が読取りデータ転送であり、Sバス16上でのデータ転送の第1のバス・サイクルが完了しているので、マルチプレクサ106は出力上でドライブすべき第4の入力を選択する。

    【0094】マルチプレクサ106からのこの新しい出力はラッチ・レジスタ104内にラッチされ、次のL_
    BV信号になる。 この新しいL_BV信号に対してプロセスが繰り返される。

    【0095】PCIバス22のC/BE線からのバイト・イネーブル信号によって示されるすべてのデータが転送されるまで、L_BVの新しい値のそれぞれについてこのプロセスが引き続き繰り返される。 これが行われるとき、L_BV値はPCIバス22からのバイト・イネーブル信号に等しくなる。 これらの信号は共に、常に比較機構154に入力され、それらの信号が等しいとき、
    比較機構154は、R_DONEをハイに活動化して、
    データ転送が完了したことをSバス16およびホスト・
    ブリッジ20に示す。 これが行われるとき、Sバス16
    に接続されたスレーブからすべてのデータが読み取られる。

    【0096】書込み転送時のバイト・イネーブル・ハードウェア100の動作は、いくつかの点で読取り転送時の動作とは異なる。 PCIバス22に接続されたマスタはまず、Sバス16をターゲットとする書込みサイクルを開始する。 PCIバス22からのバイト・イネーブル信号はマルチプレクサ106の第2の入力に入力される。 データ転送の第1のバス・サイクルがSバス16上で開始されておらず、かつこの動作が読取り動作なので、マルチプレクサ106は出力上でドライブすべき第2の入力上の信号を選択する。 したがって、ラッチ10
    4はPCIバス22からのバイト・イネーブル信号の値をラッチし、これらの信号はL_BVの値になる。

    【0097】この転送が書込み転送なので、マルチプレクサ110は出力上でドライブすべき第2の入力上の信号を選択する。 この信号はL_BVである。 L_BVは次いで、検出器114に出力され、線118、120、
    および122上に分割される。 検出器114ならびにO
    Rゲート126および128は、読取り動作に提供するのと同じ機能を提供する。 すなわち、Sバス16上でP
    BE信号を生成して、該信号が連続データになるようにする。 同様に、生成装置132、BS8、およびBS1
    6は、読取り転送の場合と同様に動作してNBE信号を生成し、ORゲート130はBC信号を生成する同じ機能を提供する。

    【0098】生成装置132がNBE信号を生成すると、該信号はPBE信号と共に、線136を介してXO
    Rゲート138に入力される。 XORゲート138はP
    BE信号およびNBE信号に対して排他OR演算を実行し、結果をORゲート144の入力に出力する。 ORゲート144は、フィードバック線148を介して、L_
    BV信号である入力信号も受け取る。 ORゲート144
    は、それに入力された2つの信号に対してOR演算を実行し、結果をマルチプレクサ106の第3の入力に出力する。

    【0099】現在のデータ転送が書込み動作であり、S
    バス16上でのデータ転送の第1のバス・サイクルが完了しているので、マルチプレクサ106は出力上で送信すべき第3の入力上の信号を選択する。 マルチプレクサ番号106の出力がラッチ・レジスタ104内にラッチされ、L_BVの新しい値になる。

    【0100】L_BVのこの新しい値は次いでマルチプレクサ110の第2の入力に入力され、プロセス全体が繰り返される。 プロセスは、L_BVの値が"1111"
    に等しい2進値をもつようになるまで繰り返される。 このようになると、すべてのデータがPCIバス22から、Sバス16に接続されたスレーブに転送されたことになる。

    【0101】L_BVが"1111"に等しくなると、A
    NDゲート152がW_DONEを活動化する。 これは、データ転送が完了したことをSバス16および該バス16に接続されたスレーブに示す。

    【0102】"0100"に等しいPCIバス22からのバイト・イネーブル信号が8ビット・スレーブに出力される書込み動作時のハードウェア100の動作の一例を以下に示す。

    【0103】バイト・イネーブル信号"0100"がマルチプレクサ106の第2の入力に送信される。 マルチプレクサ106は、これと同じ信号をラッチ・レジスタ1
    04に出力し、該レジスタ104は"0100"に等しいL_BV信号を出力する。 マルチプレクサ110はこの信号を入力して検出器114に出力する。

    【0104】検出器114は、L_BVが非連続データであると判定し、NCとして信号1を出力する。 NCが1に等しいので、ORゲート126および128は線1
    24上のPBEを"1100"に等しくする。 この信号はSバス16上で、第1のバス・サイクル用のバイト・イネーブル信号として送信される。

    【0105】書込みが出力されるスレーブはBS8上のロー信号で応答し、該信号によって生成装置132はN
    BE信号"1101"を生成する。 これは、第1のバス・
    サイクル中に、PBE信号のビット番号0に対応するデータだけが転送されたからである。 生成装置132はB
    SZもハイにする。 BSZとハイNC信号とによって、
    ORゲート130は、少なくとももう1つのバス・サイクルが転送を完了する必要があることを示すハイ信号をBC上で生成する。

    【0106】PBEおよびNBEはXORゲート138
    に入力される。 XORゲート138は排他OR演算を実行し、"0001"に等しい出力を生成する。 ORゲート144は次いで、XORゲートからの出力とラッチ10
    4からのフィードバック値を入力としてOR演算を実行する。 この演算の結果は"0101"である。 "0101"
    はマルチプレクサ106の第3の入力に送られ、マルチプレクサ106からラッチ・レジスタ104に出力される。 これで、この値がL_BV用の値になる。

    【0107】したがって、"0101"はマルチプレクサ110の第2の入力を介して検出器114に送られ、検出器114は再び、この値が非連続データであると判定して、NCを1に等しくする。 これによって、ORゲート126および128ならびに線118は、Sバス16
    上での第2のバス・サイクル用の"1101"に等しいP
    BEを線124上で生成する。 また、NC信号によって、ORゲート130は、BC信号をイネーブルして、
    データ転送を完了するのにさらにもう1つのバス・サイクルが必要であることをホスト・ブリッジ20に示す。
    第2のバス・サイクル中に、バイト・イネーブル信号P
    BEのビット番号2に対応するデータのバイトがスレーブに転送される。

    【0108】スレーブは再び、BS8上でロー信号で応答する。 したがって、生成装置132は表2に従って、
    BSZ信号を活動化せずに線136上でNBE信号"1
    111"を生成する。

    【0109】この値は、PBEの値と共にXORゲート138に入力される。 したがって、XORゲート138
    は出力"0010"を生成し、該出力はフィードバック線148を介して、L_BVの現在の値と共にORゲート144に入力される。 ORゲート144は、"0111"
    に等しい値をマルチプレクサ106の第3の入力に出力することによって応答する。 この値がL_BVの新しい値になる。

    【0110】検出器114は、L_BVの新しい値が連続データであると判断し、NCをイネーブルしない。 したがって、L_BVの値は単に、ORゲート126および128の影響を受けず、PBEの新しい値として線1
    24上に送られる。 次いで、PBEの現在の値、すなわち"0111"に等しいバイト・イネーブル信号によってデータ転送を完了する第3のバス・サイクルがSバス1
    6上で生成される。

    【0111】スレーブはBS8を活動化することによって応答する。 しかし、生成装置132はBSZ信号を活動化せず、再び線136上でNBE用の値"1111"を生成する。 XORゲート138およびORゲート144
    によって実行される論理演算の最終出力は現在"111
    1"であり、マルチプレクサ106の第3の入力に入力され、ラッチ・レジスタ104に出力される。したがって、L_BVの値は"1111"になり、これによってA
    NDゲート152は、データ転送を終了するW_DON
    Eのハイ信号を生成する。

    【0112】上述の例が読取りデータ転送であった場合、PBE用の同じバイト・イネーブル値がSバス16
    上でのバス・サイクルに使用される。 しかし、上述のように、これらの値は異なる方法で導かれる。 これは、ハードウェア100中の書込み「論理経路」ではなく読取り「論理経路」が使用されるからである。

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

    【0114】(1)中央演算処理装置と、前記中央演算処理装置に接続されたシステム・バスと、周辺装置をそれ自体に接続するための周辺バスと、前記システム・バス上で送信すべきデータ列が非連続データ列かどうかを検出し、前記データ列が非連続データ列の場合、前記データを前記システム・バス上で送信する前に、前記データ列を複数の連続データ列に変換しておく論理ネットワークを有する、前記システム・バスを前記周辺バスに接続するためのホスト・ブリッジとを備えることを特徴とする情報処理システム。 (2)前記論理ネットワークが前記ホスト・ブリッジ内のハードウェアであることを特徴とする、上記(1)に記載の情報処理システム。 (3)前記論理ネットワークが、前記データ列を送受信するシステム・バスに接続されたスレーブのビット・サイズに基づいて前記データ列用の複数のイネーブル信号を生成する、生成装置を含むことを特徴とする、上記(1)に記載の情報処理システム。 (4)前記論理ネットワークが、書込み転送時に前記データ列を前記複数の連続データ列に変換するための第1
    の論理経路と、読取り転送時に前記データ列を前記複数の連続データ列に変換するための第2の論理経路とを含むことを特徴とする、上記(3)に記載の情報処理システム。 (5)前記論理ネットワークが、前記第1の論理経路または前記第2の論理経路を選択するための少なくとも1
    つのマルチプレクサを含むことを特徴とする、上記(4)に記載の情報処システム。 (6)前記イネーブル信号が、書込み転送時には前記第1の論理経路によって、かつ読取り転送時には前記第2
    の論理経路によって、前記複数の連続データ列を得るように処理されることを特徴とする、上記(5)に記載の情報処理システム。 (7)前記周辺バスがPCIバスであることを特徴とする、上記(1)に記載の情報処理システム。 (8)前記周辺バスが多重化バスであることを特徴とする、上記(1)に記載の情報処理システム。 (9)前記周辺バスに接続された周辺装置が、前記システム・バス上で前記データ列の前記送信を開始することを特徴とする、上記(1)に記載の情報処理システム。 (10)複数の前記連続データ列がそれぞれ、前記連続データ列と前記システム上のバス・サイクルが1対1で対応するように前記システム上で連続的に送信されることを特徴とする、上記(1)に記載の情報処理システム。 (11)情報処理システムにおいて、周辺バスに接続された周辺装置とシステム・バスに接続された構成要素の間で非連続データを転送する方法であって、中央演算処理装置を提供するステップと、前記中央演算処理装置に接続されたシステム・バスを提供するステップと、周辺装置をそれ自体に接続するための周辺バスを提供するステップと、前記システム・バスを前記周辺バスに接続するステップと、前記システム・バス上で送信すべきデータ列が非連続データ列かどうかを検出するステップと、
    前記データが非連続データの場合、前記データ列を複数の連続データ列に変換するステップと、前記システム・
    バス上で前記複数の前記連続データ列をそれぞれ送信するステップとを含むことを特徴とする方法。 (12)前記連続データ列を送信または受信するシステム・バスに接続されたスレーブのビット・サイズに基づいて前記連続データ列のそれぞれ用のイネーブル信号を生成する追加ステップを含むことを特徴とする、上記(11)に記載の方法。 (13)前記周辺バスがPCIバスであることを特徴とする、上記(11)に記載の情報処理システム。 (14)前記周辺バスが多重化バスであることを特徴とする、上記(11)に記載の情報処理システム。 (15)情報処理システムにおいてシステム・バスを周辺バスに接続するためのホスト・ブリッジであって、前記システム・バスから前記周辺バスに、あるいは前記周辺バスから前記システム・バスに転送すべきデータ列が非連続データ列かどうかを判定するための検出器と、前記データ列を複数の連続データ列に変換し、システム・
    バスの連続サイクル中に前記システム・バス上で前記連続データ列を送信するための論理ネットワークと、前記データ列の転送でのスレーブである前記情報処理システムの構成要素のビット・サイズに基づいて前記複数の連続データ列のそれぞれ用のイネーブル信号を得るための生成装置とを備えることを特徴とするホスト・ブリッジ。 (16)前記周辺バスがPCIバスであることを特徴とする、上記(14)に記載のホスト・ブリッジ。 (17)前記周辺バスが多重化バスであることを特徴とする、上記(14)に記載のホスト・ブリッジ。

    【0115】

    【発明の効果】したがって、情報処理システム中の異なるバス・アーキテクチャの間で正確かつ完全な通信を提供する方法および装置が提供される。

    【図面の簡単な説明】

    【図1】複数のバスを含む情報処理システムの概略図である。

    【図2】複数のバスを含む情報処理システムの概略図である。

    【図3】複数のバスを含む情報処理システムの概略図である。

    【図4】PCIバス上での2つの連続書込みサイクルのタイミング図である。

    【図5】PCIバス上での2つの連続読取りサイクルのタイミング図である。

    【図6】ホスト・ブリッジ内のバイト・イネーブル制御ハードウェアの論理図である。

    【符号の説明】

    16 Sバス 20 PCIホスト・ブリッジ 22 PCIバス 34 CPUローカル・バス 40 DMA制御装置 72 グラフィクス制御装置 80 PCI2次ブリッジ 100 ハードウェア 102 ラッチ・レジスタ 106 マルチプレクサ 114 検出器 116 出力線 126 ORゲート 132 バイト・イネーブル生成装置 138 2入力排他ORゲート 140 2入力反転排他ORゲート

    高效检索全球专利

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

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

    申请试用

    分析报告

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

    申请试用

    QQ群二维码
    意见反馈