JP2011113163A - Inter-end point communication control device and method in io access communication system - Google Patents
Inter-end point communication control device and method in io access communication system Download PDFInfo
- Publication number
- JP2011113163A JP2011113163A JP2009267147A JP2009267147A JP2011113163A JP 2011113163 A JP2011113163 A JP 2011113163A JP 2009267147 A JP2009267147 A JP 2009267147A JP 2009267147 A JP2009267147 A JP 2009267147A JP 2011113163 A JP2011113163 A JP 2011113163A
- Authority
- JP
- Japan
- Prior art keywords
- endpoint
- transfer
- inter
- communication
- control
- 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.)
- Withdrawn
Links
- 238000004891 communication Methods 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012546 transfer Methods 0.000 claims abstract description 112
- 238000012545 processing Methods 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 47
- 230000005540 biological transmission Effects 0.000 claims description 23
- 238000013507 mapping Methods 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
Description
本発明はPCIエクスプレス(PCI Express)という高速シリアルインタフェースを採用した通信システムに係り、特にIOアクセス通信制御を行う装置および方法に関する。 The present invention relates to a communication system employing a high-speed serial interface called PCI Express, and more particularly to an apparatus and method for performing IO access communication control.
近年、PCI Express(以下、適宜「PCIe」と記す。)が普及し、PCIeスロットを搭載したパーソナルコンピュータも市販されている。このようなPCIeシステムの一般的な構成を図9に示す(たとえば特許文献1を参照)。PCIeシステムの構成要素は、周知のように、ルートコンプレックス、PCIeスイッチ、PCIeブリッジ、IOデバイスであるエンドポイント(EP:End Point)などである。 In recent years, PCI Express (hereinafter referred to as “PCIe” as appropriate) has become widespread, and personal computers equipped with a PCIe slot are also commercially available. A general configuration of such a PCIe system is shown in FIG. 9 (see, for example, Patent Document 1). As is well known, the components of the PCIe system are a root complex, a PCIe switch, a PCIe bridge, an IO device end point (EP), and the like.
上述した既存のPCIeシステムにおいて、各デバイス(EP)に対するIOアクセスはCPUが各EPのデバイスドライバを起動してアクセスすることが必要である。PCI Expressでは、PCIeリンク上でエラー情報をやり取りする規定が定まっているだけであるために、PCIeスイッチやPCIeブリッジの先に接続される各デバイス(EP)は、PCIeリンク上にどのようなデバイス(EP)がつながっているかを直接知ることができない。このためにIOアクセスをデバイス同士がやり取りするためには、CPU上のOS(Operating System)が各デバイスに通信先の宛先を教えるプロセスが必要となる。 In the existing PCIe system described above, the IO access to each device (EP) requires the CPU to access the device driver of each EP. Since PCI Express only defines the rules for exchanging error information on the PCIe link, each device (EP) connected to the end of the PCIe switch or PCIe bridge is what kind of device on the PCIe link. (EP) can't know directly if connected. For this reason, in order for devices to exchange IO access, an OS (Operating System) on the CPU requires a process of teaching each device the destination of the communication destination.
このように、既存のPCIeシステムでは、各EP側で宛先EPのアドレス情報等を知り得る手段がないためにEP側で自律的に他のEPに対してIOアクセスすることができない。このためにEP間のIOアクセス通信では常にCPUが介在することとなりCPUの負荷が大きくなる。 Thus, in the existing PCIe system, since there is no means by which each EP side can know the address information of the destination EP, it is impossible for the EP side to autonomously make IO access to other EPs. For this reason, CPU access is always involved in IO access communication between EPs, increasing the load on the CPU.
そこで、本発明の目的は、エンドポイント側で自律的に他のエンドポイントに対してIOアクセスすることができる通信システム、エンドポイント間通信制御装置および方法を提供することにある。 Accordingly, an object of the present invention is to provide a communication system, an inter-endpoint communication control apparatus, and a method capable of performing IO access to other end points autonomously on the end point side.
本発明によるエンドポイント間通信制御装置は、高速シリアルインタフェースを用いた通信システムにおけるエンドポイントの通信制御を行う装置であって、下位のエンドポイントと通信するための第1ポートと、上位の通信機器と通信するための第2ポートと、前記通信システムの汎用制御部との間で、少なくともIOアクセスの対象となるエンドポイントを相互に対応付ける制御情報の同期処理を行う制御手段と、前記制御情報を参照して、前記第1ポートから受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して前記第2ポートを通して送出する第1転送手段と、前記制御情報を参照して、前記第2ポートから受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して前記第1ポートを通して送出する第2転送手段と、を有することを特徴とする。 An inter-endpoint communication control apparatus according to the present invention is an apparatus for performing end point communication control in a communication system using a high-speed serial interface, and includes a first port for communicating with a lower end point, and an upper communication apparatus. Between the second port for communicating with the general-purpose control unit of the communication system, a control means for performing synchronization processing of control information for associating at least endpoints to be IO accessed, and the control information Referring to the control information, the first transfer means executes processing for transferring the data received from the first port to the transfer destination endpoint and sends it through the second port; , Executing processing for transferring data received from the second port to a transfer destination endpoint, the first port A second transfer means for sending through, and having a.
本発明による通信システムは、上述したエンドポイント間通信制御装置の第1ポートに下位のエンドポイントが接続され、第2ポートに通信システムのスイッチが接続され、当該スイッチに汎用制御部がルートコンプレックスを介して接続されていることを特徴とする。 In the communication system according to the present invention, a lower-order endpoint is connected to the first port of the inter-endpoint communication control apparatus described above, a switch of the communication system is connected to the second port, and a general-purpose control unit has a route complex connected to the switch. It is characterized by being connected via.
本発明によるエンドポイント間通信制御方法は、汎用制御部から複数のエンドポイントまで複数の通信機器が階層的に接続された高速シリアルインタフェースを用いた通信システムにおけるエンドポイント間の通信制御方法であって、制御手段が前記汎用制御部との間で少なくともIOアクセスの対象となるエンドポイントを相互に対応付ける制御情報の同期処理を実行し、前記汎用制御部から転送開始要求を送信元として受信すると、第1転送手段が前記制御情報を参照して下位のエンドポイントから受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して上位の通信機器へ送信し、前記汎用制御部から転送開始要求を転送先として受信すると、第2転送手段が前記上位の通信機器から受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して当該転送先のエンドポイントへ送信する、を有することを特徴とする。 An inter-endpoint communication control method according to the present invention is a communication control method between end points in a communication system using a high-speed serial interface in which a plurality of communication devices are hierarchically connected from a general-purpose control unit to a plurality of end points. When the control means executes a synchronization process of control information for associating at least an endpoint that is an IO access target with the general-purpose control unit, and receives a transfer start request from the general-purpose control unit as a transmission source, One transfer means executes processing for transferring data received from a lower-order endpoint with reference to the control information to a transfer-destination endpoint, and transmits the data to a higher-order communication device. When the transfer start request is received as the transfer destination, the second transfer means transfers the data received from the host communication device. Transmitting executes processing for transferring the endpoint to endpoint of the destination, and having a.
本発明によるプログラムは、汎用制御部から複数のエンドポイントまで複数の通信機器が階層的に接続された高速シリアルインタフェースを用いた通信システムにおけるエンドポイント間の通信制御装置としてプログラム制御プロセッサを機能させるためのプログラムであって、前記汎用制御部との間で少なくともIOアクセスの対象となるエンドポイントを相互に対応付ける制御情報の同期処理を実行し、前記汎用制御部から転送開始要求を送信元として受信すると、第1転送手段が前記制御情報を参照して下位のエンドポイントから受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して上位の通信機器へ送信し、前記汎用制御部から転送開始要求を転送先として受信すると、第2転送手段が前記上位の通信機器から受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して当該転送先のエンドポイントへ送信する、ように前記プログラム制御プロセッサを機能させることを特徴とする。 A program according to the present invention causes a program control processor to function as a communication control apparatus between endpoints in a communication system using a high-speed serial interface in which a plurality of communication devices are hierarchically connected from a general-purpose control unit to a plurality of endpoints. And executing a synchronization process of control information for associating at least an endpoint that is an IO access target with the general-purpose control unit, and receiving a transfer start request from the general-purpose control unit as a transmission source. The first transfer means executes processing for transferring the data received from the lower-order endpoint with reference to the control information to the transfer-destination endpoint, and transmits the data to the higher-order communication device. When the transfer start request is received from the transfer unit as the transfer destination, the second transfer means sends the upper communication device Wherein the running process for transfer to the destination endpoint with respect et received data transmitted to the endpoint of the transfer destination, the functioning of the said program-controlled processor such.
本発明によれば、エンドポイント側で自律的に他のエンドポイントに対するIOアクセスが可能となる。 According to the present invention, IO access to other endpoints can be autonomously performed on the endpoint side.
以下、本発明を実施するための形態について図面を参照して詳細に説明する。なお、本発明は、以下に述べる実施形態により限定されるものではない。 Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings. In addition, this invention is not limited by embodiment described below.
1.EP間通信制御装置
本発明の第1実施形態によるEP間通信制御装置は、PCIeスイッチ等の上位機器とエンドポイントEPとの間に接続され、各EPに対応するデバイスドライバが装備されているものとする。また、本実施形態におけるエンドポイントEPにはPCI-SIG策定のSR-IOV(Single Root I/O Virtualization)機能が設けられているものとする。なお、後述するように、EP間通信制御装置は、システム全体を制御するCPUとEPとの間またはEP-EP間のデータスイッチング動作を行うので、図面ではe2eSW(end point to end point switch)と表示される。
1. Inter-EP communication control apparatus The inter-EP communication control apparatus according to the first embodiment of the present invention is connected between a host device such as a PCIe switch and an end point EP, and is equipped with a device driver corresponding to each EP. And Further, it is assumed that the endpoint EP in this embodiment is provided with an SR-IOV (Single Root I / O Virtualization) function developed by PCI-SIG. As will be described later, the inter-EP communication control device performs data switching operation between the CPU and the EP or the EP-EP that controls the entire system. Therefore, in the drawing, e2eSW (end point to end point switch) Is displayed.
図1において、EP間通信制御装置(e2eSW)100は、CPU側の上位機器に接続するためのPCIeポート101とエンドポイントEP に接続するためのポート102とを有し、さらにRTI(Routing to Inside)機能部103とRTO(Routing to Outside)機能部104と、装置100の動作制御を行う制御部105とを有する。
In FIG. 1, an inter-EP communication control device (e2eSW) 100 has a
RTI機能部103は、ポート102からPCIeポート101へのアップストリーム方向のデータ転送機能部であり、受信部110、メモリ111、送信部112およびテーブル113を含む。受信部110はポート102を通してEPからデータを受信し、受信データをバッファ機能を有するメモリ111に退避させる。送信部112は、テーブル113を参照してメモリ111に格納されたデータのあて先EPのデバイスドライバを選択し、宛先EPへデータ転送を行う。後述するように、テーブル113のテーブル情報はCPUと同期処理が行われる。
The
RTO機能部104はPCIeポート101からポート102へのダウンストリーム方向のデータ転送機能部であり、受信部120、メモリ121、送信部122およびテーブル123を含む。受信部120はPCIeポート101を通して上位デバイスからデータを受信し、受信データをバッファ機能を有するメモリ121に退避させる。送信部122は、テーブル123を参照してメモリ121に格納されたデータをポート102に接続されているEPへ転送する。後述するように、テーブル123のテーブル情報は、RTI機能部103のテーブル113と共通であり、CPUと同期処理が行われる。
The
制御部105はCPUとの制御情報の同期を管理し、後述するように、RTI機能部103およびRTO機能部104のデータ転送管理を行うことで汎用的な要求を処理する。制御部105は仮想的なコンフィグレーションType1レジスタを有し、後述するコンフィグレーション処理においてPCIeポート#1を通してCPUによってWrite設定され、それに対する応答を返すことで、CPUからは既存のPCIeスイッチとして認識される。
The
たとえば、電源投入時にCPUから発せられるコンフィグレーションサイクルにより、各EPにおいて設定されているコンフィグレーション情報(VF BAR、First VF Offset、VF Stride等)を基にVF(Virtual Function)が生成され、BDF(Bus/Device/Function)番号の設定が行われる。CPUが装置100の制御部105との間でマッピングテーブル情報の同期を取ることで、EP間通信制御装置100は各EPに存在するVFのアドレス、BDFを知ることが可能となる。これにより、本実施形態によるEP間EP間通信制御装置100は、一般的なPCIeシステムにおいてCPU側で行っているIOアクセスの命令を代行することができる。すなわち、EP間通信制御装置100はEPからのデータの宛先情報によって転送先を振り分けることができ、IOアクセスにおいてもEP間で直接通信することが可能となる。
For example, a VF (Virtual Function) is generated based on configuration information (VF BAR, First VF Offset, VF Stride, etc.) set in each EP by a configuration cycle issued from the CPU when the power is turned on. Bus / Device / Function) number is set. When the CPU synchronizes the mapping table information with the
なお、制御部105はプログラム制御プロセッサ上で図示しない記憶装置に格納されたプログラムを実行することにより上述した同等の機能を実現することも可能である。
The
2.IOアクセス通信システム
IOアクセス通信システムにおいて、図1に示すEP間通信制御装置100は各EPとその上位のPCIeデバイスとの間に接続される。ここで、EPはPCI-SIG策定のSR-IOV機能を有するSR-IOV対応EPであるものとする。
2. IO access communication system
In the IO access communication system, the inter-EP
図2に示すように、本実施形態によるIOアクセス通信システムは、既存のIOアクセス通信システムと同様にCPU201、ルートコンプレックス202、メインメモリ203、PCIeスイッチ204、および、SR-IOV対応EP206−1〜206−nを有するが、さらに、PCIeスイッチ204のn個のPCIeポートとそれらにそれぞれ対応するSR-IOV対応EP206−1〜206−n(Device#1〜Device#n)との間に、n個のEP間通信制御装置205−1〜205−n(e2eSW#1〜e2eSW#n)がそれぞれ接続されている。すなわち、CPU201、ルートコンプレックス202、メインメモリ203、PCIeスイッチ204などは汎用のものを利用するが、EP間通信制御装置e2eSW#iをEP206−iの前段に配置することによってEP間での直接IOアクセス(CPUを介在しないIOアクセス)が可能となる(ここで、i=1,2,・・・n)。
As shown in FIG. 2, the IO access communication system according to the present embodiment is similar to the existing IO access communication system in that the
具体的には、電源投入後にCPUによってコンフィグレーションアクセスが実施されることによって、各EP間通信制御装置e2eSW#iにおいてSR-IOVコンフィグレーション空間に設定されている情報に基づいてm個のバーチャルファンクションVFi1〜VFimが生成され、生成されたVFを考慮したEPのアドレスマッピング情報を対応するEP間通信制御装置e2eSW#iとの間で同期を取ることでEP間の直接IOアクセスを可能にする。 Specifically, the configuration access is performed by the CPU after the power is turned on, so that m virtual functions based on information set in the SR-IOV configuration space in each inter-EP communication control device e2eSW # i. VFi1 to VFim are generated, and the address mapping information of the EP considering the generated VF is synchronized with the corresponding inter-EP communication control device e2eSW # i, thereby enabling direct IO access between the EPs.
図2において、一例として、EP206−p(Device#p)のバーチャルファンクションVFp1とEP206−q(Device#q)のバーチャルファンクションVFq1との間で直接転送されるデータの流れを破線の矢印で示す。EP206−p(Device#p)のバーチャルファンクションVFp1からEP206−q(Device#q)のバーチャルファンクションVFq1宛のデータは、EP間通信制御装置e2eSW#pのRTI機能部、PCIeスイッチ204およびEP間通信制御装置e2eSW#qのRTO機能部を通して、EP間EP間通信制御装置205−qへ転送される。このように、初期設定を除いて、EP間でCPUを介在させることなくデータ転送が実行される。
In FIG. 2, as an example, the flow of data directly transferred between the virtual function VFp1 of EP206-p (Device # p) and the virtual function VFq1 of EP206-q (Device # q) is indicated by a dashed arrow. Data from the virtual function VFp1 of EP206-p (Device # p) to the virtual function VFq1 of EP206-q (Device # q) is the communication between the RTI function unit of the inter-EP communication control device e2eSW # p, the
3.EP間IOアクセス通信
本発明では、電源投入時から、IOアクセス通信システムが構築されるまでのシーケンスは既存のものと同一であることを想定している。EP間におけるIOアクセス通信処理要求が発生したとき、CPUと各EPとの間で、制御情報の同期シーケンスが作動し、それがトリガとなってEP間のIOアクセス通信が実現する。既存のIOアクセス通信システムでは、データを一つ転送するのにもCPUが間に介在しなければならないが、その処理を省略することが可能となる。
3. Inter-EP IO access communication In the present invention, it is assumed that the sequence from when the power is turned on to when the IO access communication system is constructed is the same as the existing one. When an IO access communication processing request between EPs occurs, a control information synchronization sequence is activated between the CPU and each EP, and this triggers IO access communication between the EPs. In the existing IO access communication system, the CPU must intervene to transfer one data, but the processing can be omitted.
3.1)コンフィグレーション処理
図3において、CPU201は、電源投入直後に、PCIeバス配下のEPを検索するバスサイクルを発生させる(実際はルートコンプレックス(RC)202が発生させる)。バスサイクルを受取ったEP間通信制御装置e2eSW#iがそれに対して応答することでコンフィグレーションアクセスが完了する(ステップ301)。これにより、EP間通信制御装置e2eSW#iのアドレスおよびBDF番号が決定される。
3.1) Configuration Processing In FIG. 3, the
すべてのEP間通信制御装置e2eSW(ここではe2eSW#pおよびe2eSW#q)に対してコンフィグレーションアクセスが完了すると、CPU201はさらに先のデバイスに対してコンフィグレーションバスサイクルを発生させ、バスサイクルを受取ったEPがそれに対して応答することでEPに対するコンフィグレーションアクセスが完了する(ステップ302)。このコンフィグレーションアクセスに対しては、EP間通信制御装置e2eSW#iは既存のPCIブリッジと同様にほぼスルー転送を行う。これによりCPU201がEPをメモリ空間上にマッピングする事を可能にする。
When configuration access is completed for all the inter-EP communication control devices e2eSW (here e2eSW # p and e2eSW # q), the
汎用PCIeスイッチは論理的には複数のPCI-PCIブリッジで構成されていると考えることができるので、CPUによるコンフィグレーションサイクルの結果、汎用のPCIeスイッチは自らの配下にどれだけEPが存在し、アドレスはどの範囲内にいるかを判断することができる。したがって、PCIブリッジ動作と同様に、外部より入ってきたデータの宛先アドレスを確認することによるスイッチ動作が可能となる。 Since a general-purpose PCIe switch can be considered to be logically composed of multiple PCI-PCI bridges, as a result of the configuration cycle by the CPU, the general-purpose PCIe switch has an EP under its own control. It is possible to determine which range the address is in. Therefore, similarly to the PCI bridge operation, the switch operation by confirming the destination address of the data entered from the outside is possible.
また、本システムではEPがSR-IOV機能に対応していることを想定しているため、VFを有効にするために、図4に示すシーケンスが実行される。ただし、CPU201によるSR-IOV対応EPのコンフィグレーションアクセスの結果もたらされるアドレスマッピング等において、EP間通信制御装置e2eSW#iは影響を与えないので、簡単に説明する。
Further, in this system, since it is assumed that the EP supports the SR-IOV function, the sequence shown in FIG. 4 is executed in order to enable the VF. However, since the inter-EP communication control device e2eSW # i does not affect the address mapping or the like resulting from the configuration access of the SR-IOV-compatible EP by the
図4において、CPU201から各EPに対してコンフィグレーションType0レジスタをリードし、SR-IOV Capabilityを発見した場合には、そのファンクションをフィジカルファンクション(PF:Physical function)と判定する(ステップ303)。続いて、SR-IOV Capabilityから有効VF数を検索し、検索できたVF数内でVFを有効化する(ステップ304)。そして、VF Stride, First VF Offset等のRID(Requester ID)情報を整理し、VF BAR, System Page Size等を用いてメモリマップを整理する(ステップ305)。
In FIG. 4, when the configuration type 0 register is read from the
3.2)テーブル情報
上述したようにコンフィグレーションアクセスにより生成されたアドレスマッピング情報やBDF番号等の制御情報はEP間通信制御装置e2eSW#iのテーブル情報として汎用CPU201との間で同期が取られる。またEP間通信制御装置e2eSW#iは、対応するデバイスドライバをインストールして送信部112、122の送信動作を可能にする。
3.2) Table information As described above, control information such as address mapping information and BDF number generated by configuration access is synchronized with the general-
図5は、図1におけるテーブル113および123のテーブル情報の一例を示す。テーブル情報では、IOアクセスの送信元を示す送信元アドレス、送信元BDFおよび送信元VFの情報と、転送先を示す転送先アドレス、転送先BDFおよび転送先VFの情報と、利用するデバイスドライバと、の対応が示されている。各EPでのVFのアドレスとBDF等は一意に決定され、それぞれのVFは他のEPのVFと1対多で対応付けられる。EP間通信制御装置e2eSW#iは、このようなテーブル情報を利用することでRTI機能部103およびRTO機能部104にてEP間IOアクセス通信を実現する。なお、テーブル情報は、RTI機能部内テーブル113、RTO機能部内テーブル123ともに共通であり、それぞれの参照先を区別することで転送を実現することができる。
FIG. 5 shows an example of the table information of the tables 113 and 123 in FIG. In the table information, the source address indicating the source of IO access, the information of the source BDF and the source VF, the information of the transfer destination address indicating the transfer destination, the information of the transfer destination BDF and the transfer destination VF, and the device driver to be used The correspondence of is shown. The VF address, BDF, etc. in each EP are uniquely determined, and each VF is associated with the VFs of other EPs in a one-to-many manner. The inter-EP communication control device e2eSW # i realizes inter-EP IO access communication in the
3.3)データ転送処理
次に、EP間のIOアクセス通信について図6および図7を参照しながら説明する。本システムにおいて、EP間のデータ転送を行うトリガとして制御情報の同期を行う。
3.3) Data Transfer Processing Next, IO access communication between EPs will be described with reference to FIGS. In this system, control information is synchronized as a trigger for data transfer between EPs.
図6において、まず、CPU201は、EP(Device#p)とEP(Device#q)との間でIOアクセス通信要求が発生した場合、送信元および転送先EPにそれぞれ対応するEP間通信制御装置e2eSW#pおよびEP間通信制御装置e2eSW#qに対して、それぞれ特殊なメッセージ・リクエストを送信して転送開始要求を行う(ステップ401)。
In FIG. 6, first, when an IO access communication request is generated between an EP (Device # p) and an EP (Device # q), the
この転送開始要求を受信すると、各EP間通信制御装置e2eSWの制御部105はCPU201との間でテーブル情報の同期を行う(ステップ402)。すなわち、制御部105は、CPU201から制御情報を受信してRTI機能部103のテーブル113およびRTO機能部104のテーブル123に格納すると、その応答を返すことで同期完了を通知する。現在のPCI-SIG規定ではトランザクションとしてEP間で直接命令するものは規定されていないため、本システムではメッセージ・リクエストを本システム固有のパケットとして送出するものとする。
When this transfer start request is received, the
テーブル同期がCPUと各e2eSWの間において行われることによって、図7に示すような各EPにおけるVFを対応付けるメッシュ構造が構築される。すなわち、図5における送信元アドレスおよび送信元VFと転送先アドレスおよび転送先VFとによる対応関係が構築される。 By performing table synchronization between the CPU and each e2eSW, a mesh structure associating VF in each EP as shown in FIG. 7 is constructed. That is, the correspondence relationship between the transmission source address and transmission source VF and the transfer destination address and transfer destination VF in FIG. 5 is established.
こうしてテーブル同期が完了すると、送信元となるEP間通信制御装置e2eSW#pの制御部105は送信部122を制御してEP(Device#p)の該当VFに対して転送リクエストを送信する(ステップ403)。EP(Device#p)は、対象VFに対する転送リクエストを受信すると、EP間通信制御装置e2eSW#pに対して当該データのバースト転送を実行する(ステップ404)。
When the table synchronization is completed in this way, the
EP(Device#p)からポート102を通してデータを受信すると、EP間通信制御装置e2eSW#pの受信部110は受信データをメモリ111に退避させる。続いて送信部112は、テーブル113のテーブル情報を参照して、転送先のEP(Device#q)で利用されるデバイスドライバを動作させ、転送先アドレス、転送先VFのBDFなどを確認してデータパケットのヘッダ部をEP間通信制御装置e2eSW#qの転送先アドレスに書き換え、PCIeポート101からPCIeスイッチ204へ送出する(ステップ405)。
When data is received from the EP (Device # p) through the
PCIeスイッチ204からパケットを受信したEP間通信制御装置e2eSW#qの受信部120は受信データをメモリ121に退避させる。続いて送信部122は、テーブル123を参照して、受信データの宛先アドレスとテーブル123の転送先アドレスが、自己の配下に存在するVFと一致していることを確認すると、当該データをEP(Device#q)へ転送するステップ406)。こうして天童が完了すると、EP間通信制御装置e2eSW#pはCPU201に対して転送完了通知を送出する(ステップ407)。
The receiving
4.効果
以上説明したように、本実施形態によれば、CPU201がEP間転送開始要求(メッセージ・リクエスト)を対応するEP間通信制御装置へ送出し、それによりCPU201とEP間通信制御装置との間でテーブル情報の同期がとれれば、当該EP間で直接IOアクセスが可能となり、CPUを介在させることなくデータ転送を行うことができる。これにより、CPUへの負荷を軽減することができる。
4). Effects As described above, according to the present embodiment, the
また、SR-IOV対応のEPを利用することで、複数のEPから一つのEPに対して直接IOアクセスが可能となりEPでの処理速度の向上が期待できる。 Also, by using SR-IOV compatible EPs, multiple EPs can directly access one EP, and the processing speed of EPs can be expected to improve.
5.他の実施形態
図8に示すように、本発明の他の実施形態によるIOアクセス通信システムでは、基本的構成は図2に示す実施形態と同じであるが、EP間通信制御装置e2eSWを備えたPCIeボード501としてEP(Device)を設計することもできる。この場合、既存のサーバに設置されている拡張PCIeスロット502の数だけIO間通信を実現することが可能になる。
5. Other Embodiments As shown in FIG. 8, an IO access communication system according to another embodiment of the present invention has the same basic configuration as the embodiment shown in FIG. 2, but includes an inter-EP communication control device e2eSW. An EP (Device) can be designed as the
また、図6に示す実施形態では、CPUからのメッセージ・リクエストにトリガとする制御情報の同期の完了がEP間のIOアクセスを起こすトリガであったが、CPUと制御テーブルの同期を行った後にCPUからのメッセージ・リクエストをEP間のIOアクセスを起こすトリガとすることもできる。 In the embodiment shown in FIG. 6, the completion of the synchronization of the control information triggered by the message request from the CPU is a trigger that causes the IO access between the EPs, but after the synchronization of the CPU and the control table is performed. A message request from the CPU can also be used as a trigger for IO access between EPs.
また、図5に示すようにEP間IOアクセス通信の対象となる情報のみをテーブルとして保持していたが、IOアクセスを行う対象だけではなく、IOアクセス通信システムに存在する全てのEPとその中のVFの全ての情報を同期し、トリガとしてCPUからデータ転送命令があった場合のみ、該当するEP間通信制御装置の間でデータ転送を実施することもできる。 Further, as shown in FIG. 5, only the information that is the target of the IO access communication between the EPs is held as a table, but not only the target to perform the IO access but all the EPs existing in the IO access communication system It is also possible to synchronize all the information of the VFs and transfer data between the corresponding inter-EP communication control devices only when there is a data transfer command from the CPU as a trigger.
本発明はPCI Expressを用いた通信システムに適用可能である。 The present invention is applicable to a communication system using PCI Express.
100 EP間通信制御装置(e2eSW)
101 PCIeポート
102 EPに接続するポート
103 RTI(Routing to Inside)機能部
104 RTO(Routing to Outside)機能部
105 制御部
110 受信部
111 メモリ
112 送信部
113 テーブル
120 受信部
121 メモリ
122 送信部
123 テーブル
201 CPU
202 ルートコンプレックス(RC)
203 メモリ
204 PCIeスイッチ
205−p EP間通信制御装置(e2eSW#p)
205−q EP間通信制御装置(e2eSW#q)
206−p EP (Device#p)
206−q EP (Device#q)
100 Inter-EP communication controller (e2eSW)
101
202 Route Complex (RC)
203
205-q Inter-EP communication controller (e2eSW # q)
206-p EP (Device # p)
206-q EP (Device # q)
Claims (21)
下位のエンドポイントと通信するための第1ポートと、
上位の通信機器と通信するための第2ポートと、
前記通信システムの汎用制御部との間で、少なくともIOアクセスの対象となるエンドポイントを相互に対応付ける制御情報の同期処理を行う制御手段と、
前記制御情報を参照して、前記第1ポートから受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して前記第2ポートを通して送出する第1転送手段と、
前記制御情報を参照して、前記第2ポートから受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して前記第1ポートを通して送出する第2転送手段と、
を有することを特徴とするエンドポイント間通信制御装置。 An apparatus for performing endpoint communication control in a communication system using a high-speed serial interface,
A first port for communicating with lower endpoints;
A second port for communicating with a host communication device;
Control means for performing synchronization processing of control information that correlates at least endpoints that are targets of IO access with the general-purpose control unit of the communication system,
A first transfer means for referring to the control information, executing a process for transferring data received from the first port to a transfer destination endpoint, and sending the data through the second port;
A second transfer means for referring to the control information, executing a process for transferring the data received from the second port to a transfer destination endpoint, and sending the data through the first port;
An inter-endpoint communication control apparatus characterized by comprising:
少なくともIOアクセスの対象となるエンドポイントのアドレスマッピング情報およびBDF(Bus Device Function) 番号を含む前記制御情報を格納する第1テーブルと、
前記第1ポートからデータを受信する第1受信手段と、
前記第1テーブルを参照して、前記受信したデータに対して転送先のエンドポイントへ転送するための処理を実行し前記第2ポートを通して送出する第1送信手段と、
を有することを特徴とする請求項1に記載のエンドポイント間通信制御装置。 The first transfer means includes
A first table storing the control information including at least address mapping information of an endpoint subject to IO access and a BDF (Bus Device Function) number;
First receiving means for receiving data from the first port;
A first transmission means for referring to the first table and executing processing for transferring the received data to a destination endpoint and sending it through the second port;
The inter-endpoint communication control device according to claim 1, comprising:
少なくともIOアクセスの対象となるエンドポイントのアドレスマッピング情報およびBDF(Bus Device Function) 番号を含む前記制御情報を格納する第2テーブルと、
前記第2ポートからデータを受信する第2受信手段と、
前記第2テーブルを参照して、前記受信したデータに対して転送先のエンドポイントへ転送するための処理を実行し前記第1ポートを通して送出する第2送信手段と、
を有することを特徴とする請求項1−3のいずれか1項に記載のエンドポイント間通信制御装置。 The second transfer means includes
A second table for storing the control information including at least address mapping information of an endpoint subject to IO access and a BDF (Bus Device Function) number;
Second receiving means for receiving data from the second port;
A second transmission means for referring to the second table and executing the process for transferring the received data to a destination endpoint and sending it through the first port;
The inter-endpoint communication control apparatus according to any one of claims 1 to 3, further comprising:
制御手段が前記汎用制御部との間で少なくともIOアクセスの対象となるエンドポイントを相互に対応付ける制御情報の同期処理を実行し、
前記汎用制御部から転送開始要求を送信元として受信すると、第1転送手段が前記制御情報を参照して下位のエンドポイントから受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して上位の通信機器へ送信し、
前記汎用制御部から転送開始要求を転送先として受信すると、第2転送手段が前記上位の通信機器から受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して当該転送先のエンドポイントへ送信する、
を有することを特徴とするエンドポイント間通信制御方法。 A communication control method between endpoints in a communication system using a high-speed serial interface in which a plurality of communication devices are hierarchically connected from a general-purpose control unit to a plurality of endpoints,
The control means executes a synchronization process of control information that correlates at least the endpoints that are the targets of IO access with the general-purpose control unit,
When a transfer start request is received from the general-purpose control unit as a transmission source, the first transfer unit refers to the control information and performs processing for transferring data received from a lower-order endpoint to a transfer destination endpoint. Execute and send to the higher-level communication device,
When a transfer start request is received as a transfer destination from the general-purpose control unit, the second transfer means executes processing for transferring the data received from the higher-level communication device to the transfer destination endpoint, and the transfer destination To the endpoint of
An inter-endpoint communication control method characterized by comprising:
少なくともIOアクセスの対象となるエンドポイントのアドレスマッピング情報およびBDF(Bus Device Function) 番号を含む前記制御情報を第1テーブルに格納し、
下位のエンドポイントからデータを受信し、
前記第1テーブルを参照して、前記受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して上位の通信機器へ送信する、
ことを特徴とする請求項8に記載のエンドポイント間通信制御方法。 The first transfer means includes
The control information including at least the address mapping information of the endpoint subject to IO access and the BDF (Bus Device Function) number is stored in the first table,
Receive data from lower endpoints,
Referring to the first table, a process for transferring the received data to a transfer destination endpoint is executed and transmitted to a higher-level communication device.
The inter-endpoint communication control method according to claim 8.
少なくともIOアクセスの対象となるエンドポイントのアドレスマッピング情報およびBDF(Bus Device Function) 番号を含む前記制御情報を第2テーブルに格納し、
前記上位の通信機器からデータを受信し、
前記第2テーブルを参照して、前記受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して前記転送先のエンドポイントへ送信する、
ことを特徴とする請求項8−10のいずれか1項に記載のエンドポイント間通信制御方法。 The second transfer means includes
Storing the control information including at least the address mapping information and BDF (Bus Device Function) number of the endpoint subject to IO access in the second table;
Receiving data from the higher-level communication device;
Referring to the second table, the process for transferring the received data to the transfer destination endpoint is executed and transmitted to the transfer destination endpoint.
The inter-endpoint communication control method according to any one of claims 8 to 10.
前記汎用制御部との間で少なくともIOアクセスの対象となるエンドポイントを相互に対応付ける制御情報の同期処理を実行し、
前記汎用制御部から転送開始要求を送信元として受信すると、第1転送手段が前記制御情報を参照して下位のエンドポイントから受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して上位の通信機器へ送信し、
前記汎用制御部から転送開始要求を転送先として受信すると、第2転送手段が前記上位の通信機器から受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して当該転送先のエンドポイントへ送信する、
ように前記プログラム制御プロセッサを機能させることを特徴とするプログラム。 A program for causing a program control processor to function as a communication control device between endpoints in a communication system using a high-speed serial interface in which a plurality of communication devices are hierarchically connected from a general-purpose control unit to a plurality of endpoints,
Execute synchronization processing of control information that correlates at least the endpoints that are the targets of IO access with the general-purpose control unit,
When a transfer start request is received from the general-purpose control unit as a transmission source, the first transfer unit refers to the control information and performs processing for transferring data received from a lower-order endpoint to a transfer destination endpoint. Execute and send to the higher-level communication device,
When a transfer start request is received as a transfer destination from the general-purpose control unit, the second transfer means executes processing for transferring the data received from the higher-level communication device to the transfer destination endpoint, and the transfer destination To the endpoint of
A program for causing the program control processor to function as described above.
少なくともIOアクセスの対象となるエンドポイントのアドレスマッピング情報およびBDF(Bus Device Function) 番号を含む前記制御情報を第1テーブルに格納し、
下位のエンドポイントからデータを受信し、
前記第1テーブルを参照して、前記受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して上位の通信機器へ送信する、
ように前記プログラム制御プロセッサを機能させることを特徴とする請求項15に記載のプログラム。 The first transfer means is
The control information including at least the address mapping information of the endpoint subject to IO access and the BDF (Bus Device Function) number is stored in the first table,
Receive data from lower endpoints,
Referring to the first table, a process for transferring the received data to a transfer destination endpoint is executed and transmitted to a higher-level communication device.
The program according to claim 15, wherein the program control processor functions as described above.
少なくともIOアクセスの対象となるエンドポイントのアドレスマッピング情報およびBDF(Bus Device Function) 番号を含む前記制御情報を第2テーブルに格納し、
前記上位の通信機器からデータを受信し、
前記第2テーブルを参照して、前記受信したデータに対して転送先のエンドポイントへ転送するための処理を実行して前記転送先のエンドポイントへ送信する、
ように前記プログラム制御プロセッサを機能させることを特徴とする請求項15−17のいずれか1項に記載のプログラム。 The second transfer means comprises:
Storing the control information including at least the address mapping information and BDF (Bus Device Function) number of the endpoint subject to IO access in the second table;
Receiving data from the higher-level communication device;
Referring to the second table, the process for transferring the received data to the transfer destination endpoint is executed and transmitted to the transfer destination endpoint.
The program according to any one of claims 15 to 17, wherein the program control processor is caused to function as described above.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009267147A JP2011113163A (en) | 2009-11-25 | 2009-11-25 | Inter-end point communication control device and method in io access communication system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009267147A JP2011113163A (en) | 2009-11-25 | 2009-11-25 | Inter-end point communication control device and method in io access communication system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2011113163A true JP2011113163A (en) | 2011-06-09 |
Family
ID=44235470
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009267147A Withdrawn JP2011113163A (en) | 2009-11-25 | 2009-11-25 | Inter-end point communication control device and method in io access communication system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2011113163A (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016135875A1 (en) * | 2015-02-25 | 2016-09-01 | 株式会社日立製作所 | Information processing device |
| KR20190035988A (en) * | 2017-09-25 | 2019-04-04 | 서울대학교산학협력단 | Apparatus for controlling input/output device, operating method thereof and operating method of device driver for controlling input/output device |
| US10289560B2 (en) | 2016-03-10 | 2019-05-14 | Toshiba Memory Corporation | Switch module and storage system |
-
2009
- 2009-11-25 JP JP2009267147A patent/JP2011113163A/en not_active Withdrawn
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016135875A1 (en) * | 2015-02-25 | 2016-09-01 | 株式会社日立製作所 | Information processing device |
| CN107241913A (en) * | 2015-02-25 | 2017-10-10 | 株式会社日立制作所 | information processing device |
| JPWO2016135875A1 (en) * | 2015-02-25 | 2017-12-07 | 株式会社日立製作所 | Information processing device |
| CN107241913B (en) * | 2015-02-25 | 2020-06-19 | 株式会社日立制作所 | information processing device |
| US10289560B2 (en) | 2016-03-10 | 2019-05-14 | Toshiba Memory Corporation | Switch module and storage system |
| USRE49117E1 (en) | 2016-03-10 | 2022-06-28 | Kioxia Corporation | Switch module and storage system |
| KR20190035988A (en) * | 2017-09-25 | 2019-04-04 | 서울대학교산학협력단 | Apparatus for controlling input/output device, operating method thereof and operating method of device driver for controlling input/output device |
| KR101980190B1 (en) * | 2017-09-25 | 2019-05-21 | 서울대학교산학협력단 | Apparatus for controlling input/output device, operating method thereof and operating method of device driver for controlling input/output device |
| US10664418B2 (en) | 2017-09-25 | 2020-05-26 | Seoul National University R&Db Foundation | Peripheral device controlling device, operation method thereof, and operation method of peripheral device controlling device driver |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9467511B2 (en) | Techniques for use of vendor defined messages to execute a command to access a storage device | |
| US9986028B2 (en) | Techniques to replicate data between storage servers | |
| US8583848B2 (en) | Switching circuit connected to an I/O device, and switching circuit connected to an I/O device control method | |
| JP5440507B2 (en) | Multi-root PCI express switch, its startup method, and multi-root PCI manager program | |
| US8700856B2 (en) | Method for accessing mirrored shared memories and storage subsystem using method for accessing mirrored shared memories | |
| CN101068140B (en) | A device and method for realizing primary/standby PCI device switching | |
| JP3807250B2 (en) | Cluster system, computer and program | |
| US20080155145A1 (en) | Discovery of a Bridge Device in a SAS Communication System | |
| JP5310175B2 (en) | Switch system and control method of switch system | |
| JP2008046722A (en) | I/o device and method | |
| JP6070732B2 (en) | INPUT / OUTPUT CONTROL DEVICE, INPUT / OUTPUT CONTROL SYSTEM, INPUT / OUTPUT CONTROL METHOD, AND PROGRAM | |
| JP2006302250A (en) | PCI-Express communication system | |
| JP2013512519A (en) | Controller directly accessing memory for direct transfer of data between memories of several peripheral devices, method and computer program enabling such controller | |
| CN107209725A (en) | Method, processor and the computer of processing write requests | |
| US20030182482A1 (en) | Mechanism for PCI I/O-initiated configuration cycles | |
| JP2014002545A (en) | Data transfer device, and data transfer method | |
| WO2016041453A1 (en) | Remote resource access method and exchange device | |
| JP4799222B2 (en) | Information processing apparatus, information processing system, and initialization method | |
| JP2011113163A (en) | Inter-end point communication control device and method in io access communication system | |
| JP5904948B2 (en) | The system that allows direct data transfer between memories of several components of the system | |
| JP2008118630A (en) | Bus port router management system | |
| US20130326097A1 (en) | Semiconductor device | |
| JP2012212360A (en) | Input/output control device, computer, and control method | |
| US11487695B1 (en) | Scalable peer to peer data routing for servers | |
| CN110399322B (en) | A data transmission method and ping-pong DMA architecture |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130205 |