JP2007529813A - PCI Express endpoint simulation circuit and downstream port for PCI Express switch - Google Patents

PCI Express endpoint simulation circuit and downstream port for PCI Express switch Download PDF

Info

Publication number
JP2007529813A
JP2007529813A JP2007503486A JP2007503486A JP2007529813A JP 2007529813 A JP2007529813 A JP 2007529813A JP 2007503486 A JP2007503486 A JP 2007503486A JP 2007503486 A JP2007503486 A JP 2007503486A JP 2007529813 A JP2007529813 A JP 2007529813A
Authority
JP
Japan
Prior art keywords
pci express
pci
endpoint
endpoint device
circuit
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.)
Pending
Application number
JP2007503486A
Other languages
Japanese (ja)
Inventor
デイヴィッド アール エヴォイ
ジェリー マイケル ローズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=34961636&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2007529813(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2007529813A publication Critical patent/JP2007529813A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Abstract

Single hardware subsystems that present two software views that appear to be two separate hardware subsystems attached in a hierarchy are implemented with PCI arrangements. In an embodiment, a hardware arrangement is configured to emulate two virtually separate hierarchical subsystems in a single hardware block. This emulation facilitates the coupling of devices to PCI Express communications links while addressing PCI-Express linking requirements for such devices.

Description

本発明は、一般的には処理型のアプリケーションのための通信に関し、更に詳細には、PCI Express型のリンクを用いる通信方法及び装置に関する。   The present invention relates generally to communication for processing-type applications, and more particularly to a communication method and apparatus using a PCI Express type link.

PCI(Peripheral Component Interconnect)は、高速な動作のために拡張スロットが密に配置された、マイクロプロセッサと接続された装置との間の相互接続システムである。PCIを用いることで、コンピュータが新たなPCIカードをサポートすることができ、一方でより古い規格であるISA(industry Standard Architecture)拡張カードをサポートし続けることができる。PCIは、マイクロプロセッサの設計に依存しないように設計され、マイクロプロセッサのクロック速度と同期されるように設計されている。PCIは、アドレスとデータ信号との両方を送信するために(マルチドロップバス(multi-drop bus)上の)アクティブパス(active path)を利用し、1つのクロックサイクルでアドレスを、次のサイクルでデータを送信する。PCIバスは、互いとの及び/又はシステムメモリへの高速アクセスを必要とするアダプタであって、ホストプロセッサの本来の完全なバス速度に近い速度で該ホストプロセッサによってアクセスされることができるアダプタを用いて配置されることができる。PCIバスを通した読み取り及び書き込み伝送は、最初のサイクルでアドレスで始まり、一定の数の後続するサイクルでデータ伝送のシーケンスが送られる、バースト伝送で実装される。該バーストの長さは、開始側と目標装置との間で取り決められ、いずれの長さのものであっても良い。PCI型のアーキテクチャは広く実施化されており、今日殆どのデスクトップ型コンピュータにインストールされている。   PCI (Peripheral Component Interconnect) is an interconnection system between a microprocessor and a connected device in which expansion slots are densely arranged for high-speed operation. By using PCI, a computer can support a new PCI card, while continuing to support an older standard ISA (Industry Standard Architecture) expansion card. PCI is designed to be independent of the design of the microprocessor and is designed to be synchronized with the clock speed of the microprocessor. PCI uses an active path (on a multi-drop bus) to transmit both address and data signals, and addresses in one clock cycle and in the next cycle Send data. PCI buses are adapters that require fast access to each other and / or to system memory and that can be accessed by the host processors at a speed close to the host processor's native full bus speed. Can be arranged using. Read and write transmissions over the PCI bus are implemented in burst transmissions, starting with an address in the first cycle and sending a sequence of data transmissions in a certain number of subsequent cycles. The length of the burst is negotiated between the initiating side and the target device, and may be of any length. PCI type architectures are widely implemented and are installed on most desktop computers today.

PCI Expressアーキテクチャは、一定の変更を伴いつつも、PCIアーキテクチャと類似性を示す。PCI Expressアーキテクチャは、PCIアーキテクチャのマルチドロップバスを、入出力(I/O)バス用のファンアウトを提供するスイッチに置き換えるスイッチを利用する。前記スイッチのファンアウト機能は、増設の高性能I/Oのための一連の接続を容易化する。前記スイッチは、同様にホストブリッジを含む構成要素内に実装され得る論理素子である。PCIスイッチは論理的に、例えば、1つのブリッジが付加的なPCI−PCIブリッジの群のダウンストリーム側を介してアップストリーム側へとプライベートのローカルバスに接続されたアップストリームブリッジである、PCI−PCIブリッジの集合として考えられる。   The PCI Express architecture shows similarities to the PCI architecture with certain changes. The PCI Express architecture utilizes a switch that replaces the PCI architecture multi-drop bus with a switch that provides fan-out for an input / output (I / O) bus. The fan-out function of the switch facilitates a series of connections for additional high performance I / O. The switch is a logic element that can be implemented in a component that also includes a host bridge. A PCI switch is logically a PCI-, for example, an upstream bridge in which one bridge is connected to a private local bus to the upstream side through the downstream side of a group of additional PCI-PCI bridges. It can be considered as a set of PCI bridges.

PCI Expressは、エンドポイント(endpoint)型の装置に用途が限られ、斯かる装置は一般に内部バス上に存在することが可能ではない。特に、PCI Expressは、エンドポイント装置(タイプ00hの設定空間ヘッダによって表される)が、PCI Expressスイッチの内部バス上の設定(configuration)ソフトウェアに対して、スイッチダウンストリームポートを表す仮想的なPCI−PCIブリッジのピアとして見えないことを必要とする。加えて、スイッチダウンストリームポートを表すPCI−PCIブリッジのみが内部バス上に現れ、タイプ0の構成空間ヘッダにより表されるエンドポイントは内部バス上に現れないことがあり得る。   PCI Express is limited to endpoint type devices, and such devices generally cannot reside on an internal bus. In particular, PCI Express is a virtual PCI where an endpoint device (represented by a configuration space header of type 00h) represents a switch downstream port with respect to configuration software on the internal bus of the PCI Express switch. -Need to be invisible as a PCI bridge peer. In addition, only PCI-PCI bridges representing switch downstream ports may appear on the internal bus, and endpoints represented by type 0 configuration space headers may not appear on the internal bus.

これらの及び他の制限が、PCI Express通信を用いる結合された装置の実装に課題を与えている。   These and other limitations pose challenges for the implementation of combined devices using PCI Express communications.

本発明の種々の態様は、相互接続型構造(例えばPCI構造)等を含む回路のような、種々のコンピュータ回路のためのテスト手法を含む。本発明は、幾つかの実装及び用途で例示され、その幾つかが以下に要約される。   Various aspects of the invention include testing techniques for various computer circuits, such as circuits including interconnected structures (eg, PCI structures) and the like. The present invention is illustrated in several implementations and applications, some of which are summarized below.

本発明の実施例によれば、エンドポイント装置が、PCI Express準拠のリンクを介してエンドポイント装置に結合されたスイッチのダウンストリームポートをエミュレートするように設定及び構成される。前記エンドポイント装置はPCI Expressスイッチのバスに結合され、前記エミュレーションは、エンドポイント装置がバス上に実装されることを制約するPCI Expressの実装と適合する。この手法により、一般に最小限の付加的な論理回路を伴い、典型的にPCI Expressにおいて実施される結合された装置を許容しない規則に反することなく、1以上の装置がPCI Expressのハブ内に存在することができる。加えて、本手法は、PCI Expressの要件に完全に適合しつつ、1以上の装置をPCI Expressのハブ内に実装することを容易化する。   In accordance with an embodiment of the present invention, an endpoint device is configured and configured to emulate a downstream port of a switch coupled to the endpoint device via a PCI Express compliant link. The endpoint device is coupled to a PCI Express switch bus, and the emulation is compatible with a PCI Express implementation that constrains the endpoint device from being implemented on the bus. This approach generally involves one or more devices in a PCI Express hub, with minimal additional logic and without violating the rules that typically do not allow combined devices implemented in PCI Express. can do. In addition, the present approach facilitates the implementation of one or more devices in a PCI Express hub while fully conforming to PCI Express requirements.

本発明の他の実施例によれば、PCI Express通信システムが、エンドポイント装置のPCI Expressに準拠したリンクへの直接の結合を容易化する。本システムは、中央プロセッサ装置と、ホストブリッジに通信可能に結合されたPCI Expressスイッチとを含む。前記PCI Expressスイッチは論理的に、アップストリームポート、バス、及び複数のダウンストリームポートを含み、前記アップストリームポートはホストブリッジに結合され、前記ダウンストリームポートは1以上のPCI Express型エンドポイント装置に結合される。前記PCI Expressエンドポイント装置及び該装置が結合されるダウンストリームポートは、仮想リンクを介して結合されたダウンストリームポート及びPCI Expressエンドポイント装置をエミュレートする単一の回路に含まれる。   According to another embodiment of the present invention, a PCI Express communication system facilitates direct coupling of endpoint devices to PCI Express compliant links. The system includes a central processor unit and a PCI Express switch communicatively coupled to a host bridge. The PCI Express switch logically includes an upstream port, a bus, and a plurality of downstream ports, the upstream port is coupled to a host bridge, and the downstream port is connected to one or more PCI Express type endpoint devices. Combined. The PCI Express endpoint device and the downstream port to which the device is coupled are included in a single circuit that emulates the downstream port and the PCI Express endpoint device coupled via a virtual link.

以上の本発明の要約は、本発明の各実施例又は全ての実装を記載することを意図したものではない。以上の本発明の要約は、本発明の説明された各実施例又は全ての実装を記載することを意図したものではない。以下の図及び詳細な説明が、これら実施例をより詳細に例示する。   The above summary of the present invention is not intended to describe each embodiment or every implementation of the present invention. The above summary of the present invention is not intended to describe each illustrated embodiment or every implementation of the present invention. The following figures and detailed description illustrate these embodiments in more detail.

本発明は、添付図面と関連する以下の本発明の種々の実施例の詳細な説明を考慮して、より完全に理解され得る。   The present invention may be more fully understood in view of the following detailed description of various embodiments of the invention in conjunction with the accompanying drawings.

本発明は種々の変形例及び代替の形態に適用可能であるが、本発明の詳細が例として図において示され以下に詳細に説明される。しかしながら、記載された実施例にのみ本発明を限定する意図ではないことは理解されるべきである。それどころか、添付される請求項によって定義される本発明の範囲内である全ての変更、同等例、代替例をカバーすることが意図される。   While the invention is applicable to various modifications and alternative forms, details of the invention are shown by way of example in the drawings and are described in detail below. It should be understood, however, that the intention is not to limit the invention to the embodiments described. On the contrary, it is intended to cover all modifications, equivalents, and alternatives falling within the scope of the invention as defined by the appended claims.

本発明は、電子通信を含む種々の回路及び手法に適用可能であり、特にエンドポイント型装置と通信バス(例えばPCI Expressハブ内の)との間の通信を含むものに適用可能であると考えられる。本発明は必ずしも斯かる用途に限定されるものではないが、本発明の種々の態様の理解は、斯かる環境における例を議論することにより最も良く得られる。   The present invention is applicable to various circuits and techniques including electronic communication, and is particularly applicable to those including communication between endpoint type devices and a communication bus (eg, in a PCI Express hub). It is done. While the invention is not necessarily limited to such applications, an understanding of the various aspects of the invention is best obtained by discussing examples in such an environment.

本発明の実施例によれば、結合されたPCI Expressエンドポイント装置が、PCI Expressリンクをシミュレートし、PCI Express準拠のリンクを介してエンドポイント装置に接続されたスイッチのダウンストリームポートをエミュレートする。前記PCI Expressリンクは、PCI Expressバスが通信するPCI型のリンク(例えばPCI−PCI Expressブリッジ)をエミュレートする。本手法を用いて、PCI Expressエンドポイント装置が、該エンドポイント装置とPCI Expressバスとの間のPCI Express準拠のリンクの存在をシミュレートしつつ、該PCI Expressバスに接続されることができる。加えて、本手法は、スイッチのダウンストリームポートを介して前記バスに接続されたPCI Expressエンドポイント装置と共に前記結合されたPCI Expressエンドポイント装置を実装することを容易化する。   According to embodiments of the present invention, a combined PCI Express endpoint device simulates a PCI Express link and emulates a downstream port of a switch connected to the endpoint device via a PCI Express compliant link. To do. The PCI Express link emulates a PCI-type link (for example, a PCI-PCI Express bridge) with which a PCI Express bus communicates. Using this approach, a PCI Express endpoint device can be connected to the PCI Express bus while simulating the presence of a PCI Express compliant link between the endpoint device and the PCI Express bus. In addition, the approach facilitates implementing the combined PCI Express endpoint device with a PCI Express endpoint device connected to the bus via a downstream port of a switch.

一実施例においては、前記結合されたPCI Expressエンドポイント装置は、PCI Express規格の要件を満たしつつ、PCI Expressハブの内部バスへの接続を容易化するレジスタを持つ。特に、PCI Express装置は、実質的に2つの別個の装置(ダウンストリームスイッチポート及びエンドポイント装置)に見えるようにレジスタを利用する結合されたエンドポイント装置であり、エンドポイント装置が内部バス上に現れることの一般的な禁止に関するPCI Express規定の要件に準拠することを容易化する。   In one embodiment, the combined PCI Express endpoint device has a register that facilitates connection to the internal bus of a PCI Express hub while meeting the requirements of the PCI Express standard. In particular, a PCI Express device is a combined endpoint device that utilizes registers so that it appears to be essentially two separate devices (downstream switch port and endpoint device), where the endpoint device is on an internal bus. Facilitates compliance with the requirements of PCI Express regulations regarding general prohibition of appearance.

ソフトウェアの観点からエミュレートするレジスタは、各仮想装置に対して一意的であるレジスタ、仮想装置間で共有されるレジスタ、読み取り専用で全てゼロであるレジスタ(機能的に実装されるものではなく、ソフトウェアの観点から存在するように見えるもの)、最小のリンクエミュレーションロジックを用いて、実際のリンクが存在しているかのように見せかける仮想装置間の仮想リンクを制御するレジスタ、のうち1以上のものである。機能的に実装されていないレジスタが、PCI規格の要件に対処しつつ、一般に装置とハブとの間の仮想リンクの単純さを損なわないような態様で、PCI Express装置の実装を容易化する。例えば、機能的でないレジスタが、PCI Express規格に準拠する仮想リンクをエミュレートするために実装される。幾つかの例においては、上述したレジスタの1以上が、上述のカテゴリの組み合わせを禁ずるフィールドを含む。斯かる例においては、単一のレジスタが、非機能的な読み取り専用のゼロフィールド/ビットと、機能的に利用されるフィールドとを含む。   The registers that emulate from a software perspective are: registers that are unique to each virtual device, registers that are shared among virtual devices, registers that are read-only and all zeros (not functionally implemented, One that appears to exist from a software perspective), one or more of the registers that control the virtual links between virtual devices that make the appearance of the actual link using minimal link emulation logic It is. Non-functionally implemented registers facilitate PCI Express device implementation in a manner that generally addresses the requirements of the PCI standard while not compromising the simplicity of the virtual link between the device and the hub. For example, non-functional registers are implemented to emulate a virtual link that conforms to the PCI Express standard. In some examples, one or more of the registers described above include fields that prohibit combinations of the above categories. In such an example, a single register includes a non-functional read-only zero field / bit and a functionally utilized field.

ここで図1を参照すると、図1は、本発明の他の実施例による、内部PCI ExpressバスとのPCI Expressエンドポイント装置の結合のために構成されたPCI Express装置100を示す。装置100は、バス132に結合されたアップストリームポート130を持つPCI Expressスイッチ(即ちスイッチの論理的な実装)と、複数のダウンストリームスイッチポート140、142、144、146及び148とを含む。前記スイッチのアップストリームポート130及びバス132は、例えば同様にホストブリッジを含む構成要素内に実装されても良い。結合されたPCI Expressエンドポイント装置120は、論理的な観点から、仮想リンク110によってPCI Expressエンドポイント装置121に結合されたスイッチ146のダウンストリームポートを含む。具体的には、結合されたPCI Expressエンドポイント装置120は、(仮想リンク110によって)階層的に連結された2つの別個のブロック(ダウンストリームポート146及びPCI Expressエンドポイント装置120)をシミュレートするように構成された単一のブロックである。例えば、結合されたPCI Expressエンドポイント装置120に類似する特性を持つ、他の結合されたPCI Expressエンドポイント装置122(仮想リンク112を介してPCI Expressエンドポイント装置123に結合されたダウンストリームポート148をシミュレートする)が示されている。   Referring now to FIG. 1, FIG. 1 illustrates a PCI Express device 100 configured for coupling of a PCI Express endpoint device with an internal PCI Express bus according to another embodiment of the present invention. Device 100 includes a PCI Express switch (ie, a logical implementation of the switch) having an upstream port 130 coupled to bus 132 and a plurality of downstream switch ports 140, 142, 144, 146 and 148. The upstream port 130 and bus 132 of the switch may be implemented in a component that also includes a host bridge, for example. The combined PCI Express endpoint device 120 includes, from a logical point of view, the downstream port of the switch 146 that is coupled to the PCI Express endpoint device 121 by a virtual link 110. Specifically, the combined PCI Express endpoint device 120 simulates two separate blocks (downstream port 146 and PCI Express endpoint device 120) that are hierarchically connected (by virtual link 110). It is a single block configured as follows. For example, another combined PCI Express endpoint device 122 (downstream port 148 coupled to the PCI Express endpoint device 123 via the virtual link 112) with characteristics similar to the combined PCI Express endpoint device 120. Is simulated).

ソフトウェアの観点から見ると、PCI Expressエンドポイント装置121は実質的に、専用のPCI Expressリンク(仮想リンク110)によって(内部バス132に接続された)ダウンストリームポート146に接続された外部ブロックとして見える。仮想リンク110は、専用のPCI Expressリンクとして見える一方、専用のPCI Expressリンクと異なる機能要件を持つ。例えば、該リンクは仮想的なものであるため仮想リンク110の両端の接続をシリアル化する必要はなく、エラー回復を提供する必要もなく、2つのチップ間を交差する物理論理レイヤ又は物理電気レイヤ機能の必要もない。内部の仮想リンク110及び112の利用は、PCI Expressリンクを管理及び制御するために通常必要とされる機能の多くの必要性を軽減する。   From a software perspective, the PCI Express endpoint device 121 is essentially viewed as an external block connected to the downstream port 146 (connected to the internal bus 132) by a dedicated PCI Express link (virtual link 110). . The virtual link 110 appears as a dedicated PCI Express link, but has different functional requirements than the dedicated PCI Express link. For example, since the link is virtual, there is no need to serialize the connections at both ends of the virtual link 110 and no need to provide error recovery, a physical logical layer or a physical electrical layer that crosses between two chips There is no need for functionality. The use of internal virtual links 110 and 112 alleviates the need for many of the functions normally required to manage and control PCI Express links.

一実施例においては、仮想リンク110は、専用のPCI Expressリンクを利用するPCI Express機能の実装のために一般に必要とされる論理回路を低減及び/又は除去する。例えば、専用のPCI Expressリンクに一般に必要とされるような、仮想リンク110により提供される両方の論理エンドポイント(ダウンストリームポート146及びPCI Expressエンドポイント装置121)のトランザクション層、データリンク層及び物理層に関連する機能は必要とされない。専用のPCI Expressリンクに関連して実装される上述の機能に関して、及び「PCI Express準拠の」アプリケーションに関しての更なる情報については、「PCI Express Base Specification Revision 1.0a」(2003年4月、PCI-SIG(PCI-special interest group)、Portland、Oregon)を参照されたい。該「PCI Express Base Specification」に準拠する手法が、「PCI Express準拠」と考慮される。   In one embodiment, the virtual link 110 reduces and / or eliminates logic circuitry that is typically required for implementation of PCI Express functionality that utilizes a dedicated PCI Express link. For example, the transaction layer, data link layer, and physical of both logical endpoints (downstream port 146 and PCI Express endpoint device 121) provided by the virtual link 110, as is typically required for dedicated PCI Express links. Layer related functions are not required. For more information on the above functions implemented in connection with a dedicated PCI Express link and for “PCI Express compliant” applications, see “PCI Express Base Specification Revision 1.0a” (April 2003, PCI- See SIG (PCI-special interest group), Portland, Oregon). A technique based on the “PCI Express Base Specification” is considered as “PCI Express compatible”.

他の実装においては、結合されたPCI Expressエンドポイント装置120は、ダウンストリームポート(146)用とエンドポイント(121)機能用のビットを共有する設定レジスタを含む。このようにしてビットを共有することは、実際の2つの別個のブロック間の専用PCI Expressリンクを利用しては利用不可能な効率性の度合いを容易化し、かくして斯かる専用のPCI Expressリンク構成により示されるものと比較して複雑性を低減させる。本手法を用いることにより、PCI Express通信用に実装されるソフトウェアドライバとの整合性を維持するために、比較的少ないレジスタビットのみが必要とされる。以下の図4A乃至6は、シミュレート用構成要素、リンク、及び他の目的のためのPCI Express構成100と共に実装され得るレジスタ及び他の構成要素を議論する。   In other implementations, the combined PCI Express endpoint device 120 includes configuration registers that share bits for the downstream port (146) and endpoint (121) functions. Sharing bits in this way facilitates a degree of efficiency that is not available using a dedicated PCI Express link between the actual two separate blocks, and thus such a dedicated PCI Express link configuration. Reduce complexity compared to that shown by. By using this technique, only a relatively small number of register bits are required to maintain consistency with the software driver implemented for PCI Express communication. FIGS. 4A-6 below discuss registers and other components that can be implemented with the PCI Express configuration 100 for simulating components, links, and other purposes.

図2は、本発明の他の実施例による、装置−PCI Expressの結合のために構成されたPCI Express構成200を示す。図2に示された実施例は、図1に示されたものと類似し、ここでは(各仮想リンクがバスを単一のPCIエンドポイント装置に結合するのではなく)複数のPCI装置が単一の仮想リンク210によってバスに結合されている。スイッチのアップストリームポート230は、PCI Expressバス232によってダウンストリームポート240、242、244及び246に結合され、ダウンストリームポート246は、結合されたPCI Expressエンドポイント構成220内に組み込まれる。   FIG. 2 illustrates a PCI Express configuration 200 configured for device-PCI Express combination, according to another embodiment of the present invention. The embodiment shown in FIG. 2 is similar to that shown in FIG. 1, where multiple PCI devices are used (rather than each virtual link coupling the bus to a single PCI endpoint device). One virtual link 210 couples to the bus. The switch upstream port 230 is coupled to the downstream ports 240, 242, 244 and 246 by the PCI Express bus 232, and the downstream port 246 is incorporated within the combined PCI Express endpoint configuration 220.

結合されたPCI Expressエンドポイント構成220は、仮想リンク210及び仮想(PCI)バス252により結合された別個の構成要素をシミュレートする回路ブロックを含む。具体的には、装置260、262及び264を含む複数のPCI装置が、仮想バス252によって、PCI Express−PCI(PCI Express to PCI)ブリッジ構成要素250に結合される。PCI Express−PCIブリッジ150は、仮想リンク210によって、ダウンストリームポート246に結合される。本手法を用いることにより、結合されたPCI Expressエンドポイント構成220が、(内部)PCI Expressバス232上に存在することができる。なぜなら、シミュレートされる構成要素及び仮想リンク(及びバス)が、PCI Expressの要件に準拠するからである。図1と共に以上に議論されたように、図示された前記シミュレートされた構成要素と類似した態様でPCI Expressバスに結合された別個の構成要素と共に必要とされる種々の構成要素は、比較的より複雑であり、従って結合されたPCI Expressエンドポイント構成220よりも多くのリソースを必要とする。これらの構成要素(例えばレジスタ)を単一のブロックへと組み合わせることにより、同じ装置を別個のブロックで実装することに比較して、より少ない構成要素が利用される。加えて、PCI Express構成200を制御するために、比較的単純な従来のソフトウェアモデルが実装されることができ、複数のPCI装置が利用される場合に特に有用である。   The combined PCI Express endpoint configuration 220 includes circuit blocks that simulate separate components coupled by a virtual link 210 and a virtual (PCI) bus 252. Specifically, a plurality of PCI devices including devices 260, 262, and 264 are coupled to a PCI Express-PCI (PCI Express to PCI) bridge component 250 by a virtual bus 252. The PCI Express-PCI bridge 150 is coupled to the downstream port 246 by a virtual link 210. By using this approach, a combined PCI Express endpoint configuration 220 can exist on the (internal) PCI Express bus 232. This is because the simulated components and virtual links (and buses) are compliant with PCI Express requirements. As discussed above in conjunction with FIG. 1, the various components required with separate components coupled to the PCI Express bus in a manner similar to the simulated components shown are relatively It is more complex and therefore requires more resources than the combined PCI Express endpoint configuration 220. By combining these components (eg, registers) into a single block, fewer components are utilized compared to implementing the same device in separate blocks. In addition, a relatively simple conventional software model can be implemented to control the PCI Express configuration 200, which is particularly useful when multiple PCI devices are utilized.

図3は、本発明の他の実施例による、装置−PCI Expressの結合のために構成されたPCI Express構成300を示す。本実施例においては、PCI Express−PCIブリッジ380よりも下位の階層において、PCI Expressハブ(仮想PCI Expressバス332を伴う)が配置される。具体的には、PCI Express−PCIブリッジ380は、PCIバス334によって、結合されたPCI装置372、374及び376、並びに結合された構成320に結合される。   FIG. 3 illustrates a PCI Express configuration 300 configured for device-PCI Express combination according to another embodiment of the present invention. In the present embodiment, a PCI Express hub (with a virtual PCI Express bus 332) is arranged in a lower hierarchy than the PCI Express-PCI bridge 380. Specifically, PCI Express-PCI bridge 380 is coupled to coupled PCI devices 372, 374 and 376 and coupled configuration 320 by PCI bus 334.

結合された構成320は、仮想リンク310及びPCI Expressバス332により結合された別個のブロックをシミュレートする機能を持つ単一のブロックである。具体的には、PCI−PCI Express(PCI to PCI Express)ブリッジ320が、仮想リンク310によって、スイッチのアップストリームポート330に結合される。アップストリームポート330は、PCI Expressバス332によってダウンストリームポート340、342及び344に結合される。これら構成要素のうち種々のものは、例えば図1における同様の構成要素に関連して議論されたものと類似する態様で実装されても良い。例えば、仮想リンク310は、仮想リンク110に類似した態様で実装されても良い。加えて、共有される設定レジスタが、図1のものと類似した態様で(及び図4A乃至6と関連して以下に説明されるように)実装されても良い。本手法を用いることにより、PCI Express準拠の方法が容易化され、PCI Express型ソフトウェアが正常に構成をエミュレートする。   The combined configuration 320 is a single block that has the ability to simulate separate blocks combined by the virtual link 310 and the PCI Express bus 332. Specifically, a PCI-PCI Express (PCI to PCI Express) bridge 320 is coupled to the upstream port 330 of the switch by a virtual link 310. Upstream port 330 is coupled to downstream ports 340, 342 and 344 by a PCI Express bus 332. Various of these components may be implemented in a manner similar to that discussed, for example, in connection with similar components in FIG. For example, the virtual link 310 may be implemented in a manner similar to the virtual link 110. In addition, the shared configuration register may be implemented in a manner similar to that of FIG. 1 (and as described below in connection with FIGS. 4A-6). By using this technique, a PCI Express-compliant method is facilitated, and the PCI Express type software normally emulates the configuration.

図4A乃至4Cは、本発明の他の実施例による、結合された装置420のソフトウェア及び実装の図を示す。結合された装置420は、仮想リンク410を介して結合されたダウンストリームポート446及びPCI Expressエンドポイント421を含む、シミュレートされたブロックを持つ。仮想リンク410は例えば、図1、2及び3にそれぞれ示された仮想リンク110、210及び310と関連して、これらリンクが接続するシミュレートされたブロックと共に実装されても良い。仮想リンク410は、ソフトウェアに対して実際のPCI Expressリンクであるように見え、対応してダウンストリームポート446及びPCI Expressエンドポイント421は別個のブロックであるように見える。仮想リンク410は、低電力モデルにおいて配置されることができ、設定レジスタの2つの完全なセットを持つように見え、ソフトウェアに対してあらゆる点で完全に機能的なリンクであるように見える。しかしながら、トランザクション層、データリンク層及び物理層を含む一般的なPCI Express構成要素は実装されない。これらの代わりに、設定の観点からこれらの機能の動作をエミュレートする小さな論理回路のブロックが実装される。   4A-4C illustrate a software and implementation diagram of a combined device 420 according to another embodiment of the present invention. The combined device 420 has a simulated block that includes a downstream port 446 and a PCI Express endpoint 421 coupled via a virtual link 410. Virtual link 410 may be implemented, for example, with simulated blocks to which these links connect in association with virtual links 110, 210, and 310 shown in FIGS. Virtual link 410 appears to the software as an actual PCI Express link, and correspondingly downstream port 446 and PCI Express endpoint 421 appear to be separate blocks. The virtual link 410 can be deployed in a low power model, appears to have two complete sets of configuration registers, and appears to be a fully functional link in all respects to software. However, the general PCI Express component including the transaction layer, data link layer, and physical layer is not implemented. Instead, a small block of logic is implemented that emulates the operation of these functions from a configuration perspective.

ソフトウェアの観点から、図4B及び4Cに示されるようなPCI Expressリンクのレイヤは、ソフトウェアが完全に機能的なリンクを認識するように見える程度にエミュレートされる。該エミュレートは、例えばエラーが起こらず全てのブロックが既に準備状態であることを仮定することにより単純化され得る。幾つかの場合においては、シミュレーションの複雑さを低減させるために、最小限の機能がサポートされる。例えば、スロット及び任意の電力管理がサポートされないままとされ、任意の拡張レジスタが利用不可能なままとされても良い。   From a software perspective, the layer of PCI Express link as shown in FIGS. 4B and 4C is emulated to the extent that the software appears to recognize a fully functional link. The emulation can be simplified, for example, by assuming that no errors occur and all blocks are already ready. In some cases, minimal functionality is supported to reduce simulation complexity. For example, the slot and any power management may be left unsupported and any extension registers may be left unavailable.

図4Bを参照すると、ダウンストリームポート設定レジスタ472及びPCI Expressエンドポイント装置設定レジスタ474を伴う、図4Aの結合された装置420のダウンストリームポート446及びPCI Expressエンドポイント装置410についてのソフトウェア図が示されている。ダウンストリームポート層は、アダプタ480、トランザクション層481、データリンク層482及び物理層483を含む。PCI Expressエンドポイント層は、物理層484、データリンク層485、トランザクション層486及びIP488(ビデオ装置、オーディオ装置又はディスクコントローラのような知的所有権のアプリケーションブロック)に結合されたアダプタ487を含む。アダプタ480及び487は、IPバスとパケットとの間で変換し、設定レジスタへのアクセスを提供し、割り込みのためのメッセージを生成する。   Referring to FIG. 4B, a software diagram for the downstream port 446 and PCI Express endpoint device 410 of the combined device 420 of FIG. 4A with the downstream port configuration register 472 and the PCI Express endpoint device configuration register 474 is shown. Has been. The downstream port layer includes an adapter 480, a transaction layer 481, a data link layer 482, and a physical layer 483. The PCI Express endpoint layer includes an adapter 487 coupled to the physical layer 484, data link layer 485, transaction layer 486, and IP 488 (an intellectual property application block such as a video device, audio device or disk controller). Adapters 480 and 487 convert between the IP bus and packets, provide access to configuration registers, and generate messages for interrupts.

図4Cは、アダプタ490及びIP498、並びにアダプタ490に結合された仮想リンク設定レジスタ476を伴う、結合された装置420の仮想リンク410のソフトウェア図を示す。仮想リンク設定レジスタ476は、トランザクションエミュレートレジスタ491、データリンクエミュレートレジスタ492、物理エミュレートレジスタ493、物理エミュレートレジスタ494、データリンクエミュレートレジスタ495、及びトランザクションエミュレートレジスタ496を含む。   FIG. 4C shows a software diagram of the virtual link 410 of the coupled device 420 with the adapter 490 and IP 498 and the virtual link configuration register 476 coupled to the adapter 490. The virtual link setting register 476 includes a transaction emulation register 491, a data link emulation register 492, a physical emulation register 493, a physical emulation register 494, a data link emulation register 495, and a transaction emulation register 496.

トランザクション層、データリンク層及び物理層のそれぞれは実装されない(例えばヌル(null)ブロックである)が、PCI Expressとの準拠のためシミュレートされる。データリンク層482及び485のエミュレートのため、リンクのディスエーブル状態がアサートされたことに応答して、アダプタ480及び487がそれぞれディスエーブルにされる(いずれの新たなサイクルを生成することを禁止される)。   Each of the transaction layer, data link layer, and physical layer is not implemented (eg, a null block), but is simulated for compliance with PCI Express. Due to the emulation of the data link layers 482 and 485, the adapters 480 and 487 are respectively disabled in response to the link disable state being asserted (inhibit any new cycles from being generated). )

物理層483及び484のエミュレートのため、PME_TO_Ackメッセージが生成され、ハブが全てのPME_TO_Ackを収集することを可能とすることを支援し、ソフトウェア図において表される階層において上方に該収集されたバージョンの返すことを完了する。該PME_TO_Ackメッセージを用いたエミュレートは、例えば該階層の最上位におけるプロセッサにより送信されたMPE_Turn_Offメッセージによって起動されるシャットダウン処理を含んでも良い。各エンドポイント装置は、スイッチオフの準備ができた場合に、PME_TO_Ackメッセージを生成することにより、PME_Turn_Offメッセージに応答する。これらのPME_TO_Ackメッセージは前記ハブにおいて収集され、該ハブは、該ハブの下位にある全ての装置がPME_TO_Ackメッセージを用いて応答した場合に、単一のPME_TO_Ackメッセージにより前記プロセッサ(又は他の上位の装置)に応答する。   For the emulation of the physical layers 483 and 484, a PME_TO_Ack message is generated to assist the hub in collecting all PME_TO_Ack, and the collected version up in the hierarchy represented in the software diagram Complete the return. The emulation using the PME_TO_Ack message may include, for example, a shutdown process activated by an MPE_Turn_Off message transmitted by a processor at the highest level of the hierarchy. Each endpoint device responds to the PME_Turn_Off message by generating a PME_TO_Ack message when ready to switch off. These PME_TO_Ack messages are collected at the hub, which, when all devices below the hub respond with a PME_TO_Ack message, causes the processor (or other higher level device) with a single PME_TO_Ack message. ).

一実施例においては、PCI Expressハブ(例えば図1で実装される場合バス132を含む)は、仮想ポートが応答せず該ポートへの依存性が除去されるという仮定により機能する。例えば、特定のポートが非機能的装置用のものである場合、該非機能的装置がスイッチオフされる準備ができることを待つ必要はない。なぜなら、該装置は常にスイッチオフされる準備ができているからである。本例においては、前記ハブは、前段で議論されたように、上位装置に対してPME_TO_Ackメッセージを生成する前に当該仮想ポートが応答することを待機しない。物理層は、任意である設定の概要において提示される定数の多くを持つ準備状態及び設定された状態へと電力を上げる。これに関し、一般的なPCI Express実装に関連するLI出口時間関数(物理層が低電力状態から回復するのに要する時間)は、一般に仮想装置のために利用されない。実際のトレーニング時間はゼロであるため、物理層はいずれの遅延もなく遷移する。ソフトウェアは自律的なアクティブ状態電力管理の観点を持たないため、アクティブ状態の状況は非実用的である。従って、アクティブ状態の状況は無視され、構成470の振舞には影響を与えない。PCI Expressの「D」状態(「L」ハードウェア状態を設定したソフトウェア状態)は、読み取り/書き込みレジスタとして実装され、要求される状態が即座に選択される(D0及びD3状態がサポートされる)。加えて、PCI Express型の要求「PM_Active_State_Request_L1」は一般に生成されない。   In one embodiment, a PCI Express hub (eg, including bus 132 when implemented in FIG. 1) works on the assumption that the virtual port does not respond and the dependency on the port is removed. For example, if a particular port is for a non-functional device, there is no need to wait for the non-functional device to be ready to be switched off. This is because the device is always ready to be switched off. In this example, the hub does not wait for the virtual port to respond before generating a PME_TO_Ack message for the host device, as discussed in the previous section. The physical layer powers up to a ready state and a configured state with many of the constants presented in the configuration overview, which is optional. In this regard, the LI exit time function (time required for the physical layer to recover from a low power state) associated with a typical PCI Express implementation is generally not utilized for virtual devices. Since the actual training time is zero, the physical layer transitions without any delay. Since the software does not have an autonomous active state power management perspective, the active state situation is impractical. Thus, the active state situation is ignored and does not affect the behavior of configuration 470. The PCI Express “D” state (software state with “L” hardware state set) is implemented as a read / write register and the required state is immediately selected (D0 and D3 states are supported). . In addition, the PCI Express type request “PM_Active_State_Request_L1” is generally not generated.

図5は、本発明の他の実施例による、(例えば図4に示された図に類似する)仮想リンク410の他のソフトウェア実装図を示す。アダプタ590及びIP598が仮想リンク設定レジスタ576と共に機能し、仮想リンク410が分離するダウンストリームポート446及びPCI Expressエンドポイント装置421をエミュレートする。アップリンク及びダウンリンクエミュレート状態機械592及び594が、トランザクション層、データリンク層及び物理層の機能をエミュレートするために設定ビットと相互作用する。幾つかの例において、アップリンク及びダウンリンクエミュレート状態機械592及び594は、全ての層について単一のエミュレーションブロックへと結合される。   FIG. 5 shows another software implementation diagram of virtual link 410 (eg, similar to the diagram shown in FIG. 4), according to another embodiment of the present invention. Adapter 590 and IP 598 work with virtual link setup register 576 to emulate downstream port 446 and PCI Express endpoint device 421 separated by virtual link 410. Uplink and downlink emulation state machines 592 and 594 interact with configuration bits to emulate transaction layer, data link layer and physical layer functions. In some examples, the uplink and downlink emulation state machines 592 and 594 are combined into a single emulation block for all layers.

以上の図に示され議論されたレジスタは、1以上の種々の構成を用いて実装される。本発明の一実施例においては、1以上の設定レジスタが組み合わせられる。例えば図4Bを参照すると、トランザクション層481用のレジスタとデータリンク層482用のレジスタとが組み合わせられる。シミュレーションの目的のため実装される非機能的レジスタ及びビットは設計によりゼロであり、実装されないレジスタは設計によりゼロを返す。   The registers shown and discussed in the above figures are implemented using one or more different configurations. In one embodiment of the present invention, one or more setting registers are combined. For example, referring to FIG. 4B, a register for the transaction layer 481 and a register for the data link layer 482 are combined. Non-functional registers and bits implemented for simulation purposes are zero by design, and registers that are not implemented return zero by design.

一実施例においては、レジスタ及び付随する回路は、選択が為されていない場合にはゼロ結果が生成される(即ち、定義されていない場合又は1が選択されていない場合)ように設定される。本手法は例えば、各多重通信回路において入力を0専用にすることにより、又はより単純には、レジスタを選択するために標準的な「AND」「OR」木を利用することにより実装されることができる。該「AND」「OR」木においては、1つのレジスタは、ANDゲートを介して選択された出力部を持つ。全てのレジスタ出力は「OR」をとられ、その結果が選択されたゲートである。どのゲートも選択されていな場合、全ての「OR」入力が0であり、実装されていないいずれのレジスタものゼロ結果を保証する。同様に、実装されたレジスタ中の全ての非実装ビットは「0」を返す。   In one embodiment, the registers and associated circuitry are set such that a zero result is generated if no selection is made (ie, if not defined or if 1 is not selected). . This technique can be implemented, for example, by dedicating the input to 0 in each multiplex communication circuit, or more simply by using standard “AND” or “OR” trees to select registers. Can do. In the “AND” and “OR” trees, one register has an output unit selected via an AND gate. All register outputs are “ORed” and the result is the selected gate. If no gate is selected, all “OR” inputs are 0, guaranteeing zero results for any unimplemented registers. Similarly, all non-implemented bits in the implemented register return “0”.

実装されるべきレジスタ(例えば共有レジスタ、スイッチポートレジスタ、又は装置レジスタ)は、1以上の種々の態様で選択される。例えば、幾つかのレジスタは、スイッチポート用の一意的なレジスタと、装置用の一意的なレジスタとを持つ。スイッチポートレジスタは、設定サイクルがタイプ0であり、宛先アドレスが前記スイッチポートの装置番号と合致する場合に選択される。装置レジスタは、設定サイクルがタイプ1であり、スイッチポートのプログラムされたバス範囲内にあり、装置の識別情報(ID)に合致する場合に選択される。タイプ1のサイクルからタイプ0のサイクルへは、PCI要件に合致する態様で遷移する。共有レジスタは、スイッチポート及び装置レジスタを含む上述の2つのメカニズムを用いて「OR」を実装することにより選択される。   The register to be implemented (eg, shared register, switch port register, or device register) is selected in one or more different ways. For example, some registers have a unique register for the switch port and a unique register for the device. The switch port register is selected when the set cycle is type 0 and the destination address matches the device number of the switch port. The device register is selected if the set cycle is type 1 and is within the programmed port range of the switch port and matches the device identification information (ID). Transition from a type 1 cycle to a type 0 cycle in a manner consistent with PCI requirements. Shared registers are selected by implementing “OR” using the two mechanisms described above, including switch ports and device registers.

以上に議論された手法に類似する手法を利用して実装されることができる共有レジスタの1つのタイプは、ベンダ(vendor)IDレジスタである。該レジスタは、スイッチポートレジスタ又は装置レジスタのいずれかが読み取られる場合に選択される。このことは、レジスタテーブルにおいてDスイッチ列及び装置列の両方にXを持つ単一のエントリによって示される。種々の他のタイプの共有レジスタが同様に実装されても良い。   One type of shared register that can be implemented using techniques similar to those discussed above is a vendor ID register. The register is selected when either the switch port register or the device register is read. This is indicated by a single entry with X in both the D switch column and the device column in the register table. Various other types of shared registers may be implemented as well.

図6は、本発明による他の実施例による、コマンドレジスタ構成600を示す。コマンドレジスタは、2つの別個の仮想レジスタ(別個の仮想レジスタを含む同様な態様で容易に実装される他のタイプのレジスタと共に)の例として利用される。PCI Expressについては、ビット15乃至11、9、7、及び5乃至2が読み取り専用ビットであり実装されない。それ故、これらのビットは常に全てゼロを返す。ビット10(割り込み許可)は、割り込みの伝搬をディスエーブル又はイネーブルにするために利用されることができる。いずれかのビットをディスエーブルにすることは、割り込みの伝搬をディスエーブルにする。これらのビット実装に関する更なる情報については、以上に議論したPCI Expressベース規定を参照されたい。   FIG. 6 illustrates a command register configuration 600 according to another embodiment according to the present invention. The command register is utilized as an example of two separate virtual registers (along with other types of registers that are easily implemented in a similar manner including separate virtual registers). For PCI Express, bits 15-11, 9, 7, and 5-2 are read-only bits and are not implemented. Therefore, these bits always return all zeros. Bit 10 (interrupt enable) can be used to disable or enable interrupt propagation. Disabling any bit disables interrupt propagation. For further information regarding these bit implementations, see the PCI Express base specification discussed above.

コマンドレジスタ610及び620のそれぞれについて、RO0(読み取り専用固定0出力)ビットがハードウェア中に(実装された利用されるビットと共に)実装されない。本例においては、48ビットが示され、10ビットのみが実装される。図上部のレジスタ610及び620は、同じ位置にある2つの別個のレジスタを表すレジスタを示す。割り込み禁止機能が実装される場合、PCI Express装置のコマンドレジスタ中のINT DISビットか、又はスイッチのダウンストリームポートのコマンドレジスタ中の同じビットが、INT信号をブロックするように設定される。一実施例においては、このことは以上に議論されたORゲートを利用し、2つのディスエーブル信号を組み合わせて、ディスエーブルビットのいずれか又は両方がアサートされた場合にINTがブロックされるようにすることにより実現される。ORゲートに続くANDゲートは、INT DISビットのいずれか又は両方が設定されている場合にINTをディスエーブルにする。バスマスタ許可は、両方のレジスタにおいてバスマスタ許可ビットの両方が設定されている場合、該装置のバスマスタをイネーブルにする(2つの入力NANDゲートが図示されている)。バス制御レジスタ620は、実装されるべき2つのビットを実装し、そのうち1つSERRがまた、他の2つの図示された制御レジスタ中の制御ビットを持つ。これらのビットのいずれか1つが、当該仮想的な階層中のどこでSERRがディスエーブルとされたかにかかわらず、信号システムのエラー出力をブロックすることができる。   For each of the command registers 610 and 620, the RO0 (Read Only Fixed 0 Output) bit is not implemented in hardware (along with the used bits implemented). In this example, 48 bits are shown and only 10 bits are implemented. Registers 610 and 620 at the top of the figure show registers that represent two separate registers in the same location. If the interrupt disable feature is implemented, either the INT DIS bit in the PCI Express device command register or the same bit in the switch downstream port command register is set to block the INT signal. In one embodiment, this utilizes the OR gate as discussed above, combining the two disable signals so that INT is blocked when either or both disable bits are asserted. It is realized by doing. The AND gate following the OR gate disables INT if either or both of the INT DIS bits are set. Bus master grant enables the device's bus master if both bus master grant bits are set in both registers (two input NAND gates are shown). Bus control register 620 implements two bits to be implemented, one of which SERR also has control bits in the other two illustrated control registers. Any one of these bits can block the error output of the signaling system regardless of where in the virtual hierarchy the SERR is disabled.

以下の表1は、本発明の他の実施例による、共有レジスタのセットを利用した手法を示す。表1に示された情報は、例えば以上に議論された図6に関連して実装されても良い。

Figure 2007529813
Figure 2007529813
Figure 2007529813
Figure 2007529813
Figure 2007529813
Table 1 below illustrates an approach using a set of shared registers according to another embodiment of the present invention. The information shown in Table 1 may be implemented, for example, in connection with FIG. 6 discussed above.
Figure 2007529813
Figure 2007529813
Figure 2007529813
Figure 2007529813
Figure 2007529813

本発明の実施例による、PCI Express内部バスに関連するエンドポイント装置を実装するための構成を示すブロック図である。FIG. 6 is a block diagram illustrating a configuration for implementing an endpoint device associated with a PCI Express internal bus, according to an embodiment of the present invention. 本発明の実施例による、PCI Express内部バスに関連するエンドポイント装置を実装するための構成を示すブロック図である。FIG. 6 is a block diagram illustrating a configuration for implementing an endpoint device associated with a PCI Express internal bus, according to an embodiment of the present invention. 本発明の実施例による、PCI Express内部バスに関連するエンドポイント装置を実装するための構成を示すブロック図である。FIG. 6 is a block diagram illustrating a configuration for implementing an endpoint device associated with a PCI Express internal bus, according to an embodiment of the present invention. 結合されたPCI Expressエンドポイント装置のソフトウェア図であり、本発明の実施例による、仮想リンクを介して結合された2つのブロックをシミュレートする単一の結合された装置のブロックレベルのソフトウェア図である。FIG. 3 is a software diagram of a combined PCI Express endpoint device, and is a block-level software diagram of a single combined device simulating two blocks combined via a virtual link, according to an embodiment of the present invention. is there. 結合されたPCI Expressエンドポイント装置のソフトウェア図であり、本発明の他の実施例による、図4(A)に示された装置についての種々のレイヤ及びレジスタの詳細なソフトウェア図である。FIG. 5 is a software diagram of a combined PCI Express endpoint device, and is a detailed software diagram of various layers and registers for the device shown in FIG. 4A, according to another embodiment of the present invention. 結合されたPCI Expressエンドポイント装置のソフトウェア図であり、本発明の他の実施例による、図4(A)に示された装置についての仮想リンク設定レジスタの実装図を示す。FIG. 6 is a software diagram of a combined PCI Express endpoint device and shows a virtual link configuration register implementation diagram for the device shown in FIG. 4A according to another embodiment of the present invention. 本発明の他の実施例による、図4(A)に示された装置についてのエミュレート状態機械を利用する仮想リンクの実装図を示す。FIG. 6 illustrates a virtual link implementation utilizing an emulated state machine for the apparatus shown in FIG. 4A according to another embodiment of the present invention. 本発明の他の実施例による、結合されたPCI Expressエンドポイント装置についてのレジスタ構成を示す。FIG. 6 illustrates a register configuration for a combined PCI Express endpoint device according to another embodiment of the present invention.

Claims (20)

PCI Express型データ通信を用いた利用のための結合されたエンドポイント装置であって、外部PCI Expressエンドポイント装置ブロック機能を実行するように設定及び構成されたPCI Expressエンドポイント回路と、PCI Expressバスと通信するように構成され且つダウンストリームポート機能を実行するように設定及び構成されたPCI Expressダウンストリームポート回路と、それぞれが前記PCI Expressエンドポイント回路及び前記PCI Expressダウンストリームポート回路によって実装されたPCI Expressエンドポイント装置とPCI Expressダウンストリームポートとの間のPCI Express準拠のリンクをシミュレートするように構成されたシミュレート回路と、を有する装置。   A PCI Express endpoint circuit configured and configured to perform an external PCI Express endpoint device block function, and a combined PCI Express bus for use with PCI Express data communication A PCI Express downstream port circuit configured to communicate with and configured to perform downstream port functions, each implemented by the PCI Express endpoint circuit and the PCI Express downstream port circuit Configured to simulate a PCI Express compliant link between a PCI Express endpoint device and a PCI Express downstream port And a simulated circuit. 前記シミュレート回路及び前記PCI Expressエンドポイント回路による利用のための情報を保存するように構成された併合された設定レジスタを更に有し、前記保存された情報は前記PCI Express準拠のリンクのシミュレーションを容易化する、請求項1に記載の装置。   And further comprising a merged configuration register configured to store information for use by the simulated circuit and the PCI Express endpoint circuit, wherein the stored information simulates the PCI Express compliant link. The apparatus of claim 1, which facilitates. 前記シミュレート回路は、前記PCI Expressエンドポイント回路を専用のPCI Expressリンクを持つ外部ブロックとしてシミュレートするためのソフトウェアで実装されたアプリケーションとインタフェース接続するように構成された、請求項1に記載の装置。   The simulated circuit of claim 1, wherein the simulated circuit is configured to interface with a software implemented application for simulating the PCI Express endpoint circuit as an external block with a dedicated PCI Express link. apparatus. PCI Express準拠の装置を特徴付けるレジスタをシミュレートするように設定された少なくとも1つの非機能的レジスタを更に有する、請求項1に記載の装置。   The device of claim 1, further comprising at least one non-functional register configured to simulate a register characterizing a PCI Express compliant device. 前記シミュレート回路は、前記少なくとも1つの非機能的レジスタが実装されるレジスタ機能の実装を必要とする、前記結合されたエンドポイント装置とPCI Express型通信リンクとの間のPCI Express型通信のため前記少なくとも1つの非機能的レジスタを実装するように構成された、請求項4に記載の装置。   The simulated circuit is for PCI Express type communication between the combined endpoint device and a PCI Express type communication link that requires implementation of a register function in which the at least one non-functional register is implemented. The apparatus of claim 4, configured to implement the at least one non-functional register. 前記少なくとも1つの非機能的レジスタは、読み取り専用で全てゼロである、請求項4に記載の装置。   The apparatus of claim 4, wherein the at least one non-functional register is read-only and all zeros. 前記非機能的レジスタは、ソフトウェアの観点から存在するように見えるようにシミュレートされる、請求項4に記載の装置。   The apparatus of claim 4, wherein the non-functional register is simulated to appear to exist from a software perspective. 前記少なくとも1つの非機能的レジスタは、前記PCI Expressエンドポイント回路が外部機能を実行する各外部PCI Expressエンドポイント装置に対して一意的である、請求項4に記載の装置。   5. The apparatus of claim 4, wherein the at least one non-functional register is unique for each external PCI Express endpoint device on which the PCI Express endpoint circuit performs an external function. 前記少なくとも1つの非機能的レジスタは、各シミュレートされたPCI Express準拠のリンクに対して一意的である、請求項4に記載の装置。   The apparatus of claim 4, wherein the at least one non-functional register is unique for each simulated PCI Express compliant link. 前記少なくとも1つの非機能的レジスタは、少なくとも2つのシミュレートされたPCI Express準拠のリンクの間で共有される、請求項4に記載の装置。   The apparatus of claim 4, wherein the at least one non-functional register is shared between at least two simulated PCI Express compliant links. 前記PCI Expressエンドポイント回路は、少なくとも2つのPCI ExpressエンドポイントブロックについてPCI Expressエンドポイント装置ブロック機能を実行するように設定及び構成され、前記シミュレート回路は、前記少なくとも2つのPCI Expressエンドポイントブロックの間の仮想リンクをシミュレートし制御するように構成された、請求項1に記載の装置。   The PCI Express endpoint circuit is configured and configured to perform a PCI Express endpoint device block function for at least two PCI Express endpoint blocks, and the simulated circuit includes the at least two PCI Express endpoint blocks. The apparatus of claim 1, configured to simulate and control a virtual link between. 前記PCI Expressダウンストリームポート回路は、PCI Expressハブと通信するように構成された、請求項1に記載の装置。   The apparatus of claim 1, wherein the PCI Express downstream port circuit is configured to communicate with a PCI Express hub. 前記PCI Expressダウンストリームポート回路は、パーソナルコンピュータ用、サーバ用、及びネットワーク用のうち少なくとも1つのPCI Express型リンクと通信するように構成された、請求項1に記載の装置。   The apparatus of claim 1, wherein the PCI Express downstream port circuit is configured to communicate with at least one PCI Express type link for a personal computer, a server, and a network. 前記シミュレート回路は更に、PCI Express−PCIブリッジと、前記PCI Expressエンドポイント回路によって実装される複数のPCI Expressエンドポイント装置ブロックに結合されたPCIバスとを含むものとして前記PCI Express準拠のリンクをシミュレートするように構成された、請求項1に記載の装置。   The simulated circuit further includes a PCI Express-PCI bridge and a PCI Express compliant link as including a PCI bus coupled to a plurality of PCI Express endpoint device blocks implemented by the PCI Express endpoint circuit. The apparatus of claim 1, configured to simulate. PCI Express型通信を用いた利用のための結合されたPCI Expressエンドポイント装置であって、前記装置は、PCI Express準拠を容易化しつつPCI Expressスイッチの内部バス上に見えるように構成され、前記装置は、PCI Expressスイッチのダウンストリームポートの機能を実行し、エンドポイント装置の機能を実行し、PCI Express準拠のリンクによって結合されたダウンストリームポートブロック及びエンドポイント装置ブロックをエミュレートするように設定及び構成されたハードウェアブロックを有し、ここで前記エミュレートされたダウンストリームポートブロックは前記ダウンストリームポート機能を実行し、前記エミュレートされたエンドポイント装置ブロックは前記エンドポイント装置機能を実行し、前記装置は更に、ダウンストリームポート、エンドポイント装置及びPCI Express準拠のリンク機能をエミュレート及び実行する際に前記ハードウェアブロックによって利用されるための情報を保存するように構成された併合された設定レジスタとを有する装置。   A combined PCI Express endpoint device for use with PCI Express communication, wherein the device is configured to be visible on an internal bus of a PCI Express switch while facilitating PCI Express compliance. Performs the functions of a PCI Express switch downstream port, performs the functions of an endpoint device, and is configured to emulate a downstream port block and an endpoint device block combined by a PCI Express compliant link A hardware block configured, wherein the emulated downstream port block performs the downstream port function, and the emulated endpoint device block is The endpoint device function is executed, and the device further stores information for use by the hardware block in emulating and executing a downstream port, the endpoint device and a PCI Express compliant link function. And a merged configuration register configured as described above. PCI Express型データ通信を用いた利用のための結合されたエンドポイント装置であって、外部PCI Expressエンドポイント装置ブロック機能を実行するための外部ブロック手段と、PCI Expressバスと通信しPCI Expressダウンストリームポート機能を実行するためのポート手段と、それぞれが前記外部ブロック手段及び前記ポート手段により実装されるPCI Expressエンドポイント装置とPCI Expressダウンストリームポートとの間のPCI Express準拠のリンクをシミュレートするためのシミュレート手段と、を有する装置。   A combined endpoint device for use using PCI Express type data communication, external block means for performing an external PCI Express endpoint device block function, and a PCI Express downstream communicating with a PCI Express bus Port means for performing a port function and for simulating a PCI Express compliant link between a PCI Express endpoint device and a PCI Express downstream port, each implemented by the external block means and the port means And simulating means. 中央プロセッサ装置と、前記中央プロセッサ装置とPCI Expressスイッチとの間で通信するように設定及び構成されたホストブリッジと、PCI Expressスイッチとを有するPCI Express通信システムであって、前記PCI Expressスイッチは、アップストリームポートと、バスと、複数のダウンストリームポートと、前記複数のダウンストリームポートの1つに結合されたPCI Expressエンドポイント装置とを有し、前記PCI Expressエンドポイント装置及び前記PCI Expressエンドポイント装置が結合される前記ダウンストリームポートは、仮想リンクを介して結合された前記ダウンストリームポート及び前記PCI Expressエンドポイント装置をエミュレートする単一の回路に含まれるシステム。   A PCI Express communication system comprising a central processor device, a host bridge configured and configured to communicate between the central processor device and a PCI Express switch, and a PCI Express switch, wherein the PCI Express switch includes: And a PCI Express endpoint device coupled to one of the plurality of downstream ports, wherein the PCI Express endpoint device and the PCI Express endpoint are coupled to the upstream port, the bus, the plurality of downstream ports, and the PCI Express endpoint device. The downstream port to which the device is coupled emulates the downstream port and the PCI Express endpoint device that are coupled via a virtual link System included in one circuit. 前記エミュレートされたダウンストリームポート及び前記PCI Expressエンドポイント装置の特性をシミュレートするために実装された複数のレジスタを更に有する、請求項17に記載のシステム。   The system of claim 17, further comprising a plurality of registers implemented to simulate characteristics of the emulated downstream port and the PCI Express endpoint device. 前記複数のレジスタの少なくとも1つが、PCI Express型機能をエミュレートするために実装された非機能的レジスタである、請求項18に記載のシステム。   The system of claim 18, wherein at least one of the plurality of registers is a non-functional register implemented to emulate a PCI Express type function. PCI−PCI Expressブリッジと、アップストリームポートと、複数のダウンストリームポートとを有するPCI Express通信システムであって、前記PCI−PCI Expressブリッジ、前記アップストリームポート及び前記ダウンストリームポートは、前記PCI−PCI Expressブリッジと前記アップストリームポートとの間の仮想リンクをエミュレートし、前記複数のダウンストリームポートを前記アップストリームポートに結合するPCI Expressバスをエミュレートする回路に含まれるシステム。   A PCI Express communication system having a PCI-PCI Express bridge, an upstream port, and a plurality of downstream ports, wherein the PCI-PCI Express bridge, the upstream port, and the downstream port are connected to the PCI-PCI. A system included in a circuit for emulating a PCI Express bus that emulates a virtual link between an Express bridge and the upstream port and couples the plurality of downstream ports to the upstream port.
JP2007503486A 2004-03-19 2005-03-21 PCI Express endpoint simulation circuit and downstream port for PCI Express switch Pending JP2007529813A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US55450504P 2004-03-19 2004-03-19
PCT/IB2005/050966 WO2005091154A1 (en) 2004-03-19 2005-03-21 Simulation circuit of pci express endpoint and downstream port for a pci express switch

Publications (1)

Publication Number Publication Date
JP2007529813A true JP2007529813A (en) 2007-10-25

Family

ID=34961636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007503486A Pending JP2007529813A (en) 2004-03-19 2005-03-21 PCI Express endpoint simulation circuit and downstream port for PCI Express switch

Country Status (8)

Country Link
US (1) US7983888B2 (en)
EP (1) EP1728168B1 (en)
JP (1) JP2007529813A (en)
KR (1) KR101035832B1 (en)
CN (1) CN100462953C (en)
AT (1) ATE433159T1 (en)
DE (1) DE602005014753D1 (en)
WO (1) WO2005091154A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041890B2 (en) 2006-04-19 2011-10-18 Hangzhou H3C Technologies Co., Ltd. Method for accessing target disk, system for expanding disk capacity and disk array
JP2012523054A (en) * 2009-04-08 2012-09-27 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング How to connect a slave card to the bus system

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7743197B2 (en) * 2006-05-11 2010-06-22 Emulex Design & Manufacturing Corporation System and method for virtualizing PCIe devices
US7529860B2 (en) * 2006-12-19 2009-05-05 International Business Machines Corporation System and method for configuring an endpoint based on specified valid combinations of functions
US7711888B2 (en) * 2006-12-31 2010-05-04 Texas Instruments Incorporated Systems and methods for improving data transfer between devices
US7660925B2 (en) * 2007-04-17 2010-02-09 International Business Machines Corporation Balancing PCI-express bandwidth
US8255707B2 (en) * 2008-03-06 2012-08-28 Fujitsu Limited System and method for providing a one-step testing architecture
US8200473B1 (en) * 2008-08-25 2012-06-12 Qlogic, Corporation Emulation of multiple MDIO manageable devices
US8291146B2 (en) * 2010-07-15 2012-10-16 Ati Technologies Ulc System and method for accessing resources of a PCI express compliant device
US9479489B2 (en) * 2013-03-05 2016-10-25 Comcast Cable Communications, Llc Systems and methods for providing services
US9311266B2 (en) 2013-06-14 2016-04-12 National Instruments Corporation Hidden base address register programming in peripheral component interconnect express buses
US9563591B2 (en) 2014-03-06 2017-02-07 International Business Machines Corporation Peripheral component interconnect express (PCIe) ping in a switch-based environment
US10452570B1 (en) 2014-08-27 2019-10-22 Amazon Technologies, Inc. Presenting physical devices to virtual computers through bus controllers emulated on PCI express endpoints
US9842075B1 (en) * 2014-09-12 2017-12-12 Amazon Technologies, Inc. Presenting multiple endpoints from an enhanced PCI express endpoint device
US9996484B1 (en) 2014-09-17 2018-06-12 Amazon Technologies, Inc. Hardware acceleration for software emulation of PCI express compliant devices
US10303644B2 (en) 2014-11-21 2019-05-28 International Business Machines Corporation Providing remote, reliant and high performance PCI express device in cloud computing environments
KR101782852B1 (en) * 2015-06-14 2017-10-23 아던트 시스템즈 아이엔씨 Initial enumeration of empty endpoint slots using endpoint emulation
CN105304116B (en) 2015-09-16 2018-07-20 江苏时代全芯存储科技有限公司 Memory body driving circuit
US10860520B2 (en) 2015-11-18 2020-12-08 Oracle International Corporation Integration of a virtualized input/output device in a computer system
US10509758B1 (en) * 2017-09-28 2019-12-17 Amazon Technologies, Inc. Emulated switch with hot-plugging
CN112799991B (en) * 2021-01-07 2022-12-20 牛芯半导体(深圳)有限公司 PCIE switching chip

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07226750A (en) * 1993-08-31 1995-08-22 Texas Instr Inc <Ti> Adaptor of local area network
JPH1196196A (en) * 1997-09-16 1999-04-09 Toshiba Corp Circuit converting method and circuit design assisting device
JP2000123063A (en) * 1998-10-19 2000-04-28 Nec Corp Software simulator system and storage medium for storing program
JP2001298466A (en) * 2000-03-07 2001-10-26 Sony Internatl Europ Gmbh Interface link layer device and network setting method
JP2001331346A (en) * 2000-03-13 2001-11-30 Toshiba Corp Simulator and its method
WO2003063461A1 (en) * 2002-01-25 2003-07-31 Koninklijke Philips Electronics N.V. Apparatus for wireless connectivity using software modem
JP2004038955A (en) * 2002-06-28 2004-02-05 Motorola Inc Computer system and communication method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279060B1 (en) * 1998-12-04 2001-08-21 In-System Design, Inc. Universal serial bus peripheral bridge simulates a device disconnect condition to a host when the device is in a not-ready condition to avoid wasting bus resources
US6141719A (en) * 1998-12-10 2000-10-31 Network Technologies, Inc. USB selector switch
EP1134638A3 (en) 2000-03-13 2002-08-14 Kabushiki Kaisha Toshiba Simulator and simulation method
CN1251445C (en) * 2002-05-14 2006-04-12 华为技术有限公司 PCI bus expansion method and detecting device for PCI card batch detection
US7065597B2 (en) * 2002-06-28 2006-06-20 Intel Corporation Method and apparatus for in-band signaling of runtime general purpose events
US7953074B2 (en) * 2003-01-21 2011-05-31 Emulex Design And Manufacturing Corporation Apparatus and method for port polarity initialization in a shared I/O device
US7320080B2 (en) * 2003-10-15 2008-01-15 Intel Corporation Power management over switching fabrics
US7657762B2 (en) * 2005-01-14 2010-02-02 Ati Technologies, Inc. Apparatus and methods for power management of a circuit module
US20060227768A1 (en) * 2005-04-07 2006-10-12 Dell Products L.P. System and method for communicating between a computer cluster and a remote user interface
TWI269174B (en) * 2005-07-05 2006-12-21 Istek Co Ltd Cross-platform driver-free driving method of peripheral device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07226750A (en) * 1993-08-31 1995-08-22 Texas Instr Inc <Ti> Adaptor of local area network
JPH1196196A (en) * 1997-09-16 1999-04-09 Toshiba Corp Circuit converting method and circuit design assisting device
JP2000123063A (en) * 1998-10-19 2000-04-28 Nec Corp Software simulator system and storage medium for storing program
JP2001298466A (en) * 2000-03-07 2001-10-26 Sony Internatl Europ Gmbh Interface link layer device and network setting method
JP2001331346A (en) * 2000-03-13 2001-11-30 Toshiba Corp Simulator and its method
WO2003063461A1 (en) * 2002-01-25 2003-07-31 Koninklijke Philips Electronics N.V. Apparatus for wireless connectivity using software modem
JP2005516484A (en) * 2002-01-25 2005-06-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Wireless connectivity device using software modem
JP2004038955A (en) * 2002-06-28 2004-02-05 Motorola Inc Computer system and communication method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041890B2 (en) 2006-04-19 2011-10-18 Hangzhou H3C Technologies Co., Ltd. Method for accessing target disk, system for expanding disk capacity and disk array
JP2012523054A (en) * 2009-04-08 2012-09-27 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング How to connect a slave card to the bus system

Also Published As

Publication number Publication date
US7983888B2 (en) 2011-07-19
KR20070003954A (en) 2007-01-05
CN100462953C (en) 2009-02-18
KR101035832B1 (en) 2011-05-20
ATE433159T1 (en) 2009-06-15
EP1728168A1 (en) 2006-12-06
EP1728168B1 (en) 2009-06-03
CN1934556A (en) 2007-03-21
DE602005014753D1 (en) 2009-07-16
US20080256284A1 (en) 2008-10-16
WO2005091154A1 (en) 2005-09-29

Similar Documents

Publication Publication Date Title
KR101035832B1 (en) Simulation circuit of pci express endpoint and downstream port for a pci express switch
US8812758B2 (en) Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports
US8316377B2 (en) Sharing legacy devices in a multi-host environment
US7412544B2 (en) Reconfigurable USB I/O device persona
US9311266B2 (en) Hidden base address register programming in peripheral component interconnect express buses
US10176137B2 (en) Selectively transparent bridge for peripheral component interconnect express bus system
US9703740B2 (en) Opaque bridge for peripheral component interconnect express bus systems
US7353315B2 (en) Bus controller with virtual bridge
US20090292854A1 (en) Use of bond option to alternate between pci configuration space
US20140372660A1 (en) Packet Routing Based on Packet Type in Peripheral Component Interconnect Express Bus Systems
CN117561505A (en) Systems, methods, apparatuses, and architectures for dynamically configuring device structures
CN110134561B (en) Method and device for outputting debugging information in software and hardware collaborative verification
CN103793263B (en) DMA transaction-level modeling method based on Power PC processor
JP2006343942A (en) Bus system design method and device
CN210983400U (en) System on chip and microcontroller
US7689728B2 (en) Method and apparatus for describing ACPI machine language in computer having multibridge PCI structure, and program thereof
US8949105B2 (en) Hardware interface board for connecting an emulator to a network
US9075639B1 (en) Systems and methods for handling interrupts during software design simulation
JP3504572B2 (en) Logic circuit emulator
WO2019124259A1 (en) Configuration management device, configuration management system, configuration management method, and configuration management program
Bandara et al. Enabling VirtIO Driver Support on FPGAs
Yang et al. PCIe device drivers in Linux: Design and implementation of a high-speed PCI Express bridge
Song System level assertion-based verification environment for PCI/PCI-X and PCI-express
CN114297982A (en) UVM-based SPI bus verification method and system
CN117743235A (en) I2C device access method and device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080318

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080425

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100720

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101018

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101025

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101111

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110809