JP2011164838A - Endpoint sharing system and data transfer method - Google Patents

Endpoint sharing system and data transfer method Download PDF

Info

Publication number
JP2011164838A
JP2011164838A JP2010025509A JP2010025509A JP2011164838A JP 2011164838 A JP2011164838 A JP 2011164838A JP 2010025509 A JP2010025509 A JP 2010025509A JP 2010025509 A JP2010025509 A JP 2010025509A JP 2011164838 A JP2011164838 A JP 2011164838A
Authority
JP
Japan
Prior art keywords
server
endpoint
pcie
data
shared memory
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.)
Granted
Application number
JP2010025509A
Other languages
Japanese (ja)
Other versions
JP5482263B2 (en
Inventor
Morihisa Endo
盛久 遠藤
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.)
NEC Corp
Original Assignee
NEC Corp
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
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010025509A priority Critical patent/JP5482263B2/en
Publication of JP2011164838A publication Critical patent/JP2011164838A/en
Application granted granted Critical
Publication of JP5482263B2 publication Critical patent/JP5482263B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an endpoint sharing system and a data transfer method, for connecting a server and a storage device by PCIe to increase the speed of data transfer between a specific server among a plurality of servers and integrated endpoints. <P>SOLUTION: When a PCIe packet is transmitted from a predetermined endpoint of the integrated endpoints to the main server of an active system, a server for processing the packet is determined and the name of the server is inserted into the PCIe packet. A secondary shared memory transfer means 16 transfers data to a corresponding one of secondary shared memories used in individually transferring data to the servers. Data are transferred from the server to the integrated endpoints, as well. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、複数のCPU(Central Processing Unit)あるいはサーバが入出力装置としてのエンドポイント(End Point)を共有するためのデータ転送を行うエンドポイント共有システムおよびデータ転送方法に関する。本発明は特に拡張バスの一種であるピーシーアイエクスプレス(PCI Express)を使用してエンドポイントを共有するのに好適なエンドポイント共有システムおよびデータ転送方法に関する。   The present invention relates to an endpoint sharing system and a data transfer method in which a plurality of CPUs (Central Processing Units) or servers perform data transfer for sharing an endpoint as an input / output device. The present invention particularly relates to an endpoint sharing system and a data transfer method suitable for sharing an endpoint using PCI Express, which is a type of expansion bus.

ピーシーアイエクスプレスとは、PCI(Peripheral Component Interconnect)バスに代わって策定されたシリアル転送インタフェイスである。「PCI Express」は、「PCIe」と略して表記される。ピーシーアイエクスプレスでは、ポイント・ツー・ポイントのシリアル伝送を採用している。   PCI Express is a serial transfer interface formulated in place of a PCI (Peripheral Component Interconnect) bus. “PCI Express” is abbreviated as “PCIe”. PCI Express uses point-to-point serial transmission.

ピーシーアイエクスプレスを用いた通信システムは、サーバ側のCPUと複数のエンドポイントとで構成される。エンドポイントとは、LAN(Local Area Network)コントローラやストレージデバイス等のデータの入出力装置の総称である。   A communication system using PCI Express includes a server-side CPU and a plurality of endpoints. An endpoint is a general term for data input / output devices such as a LAN (Local Area Network) controller and a storage device.

ところで、ピーシーアイエクスプレスを用いた通信システムでは、従来からエンドポイントに接続できるCPUが1個に制限されている。したがって、信頼性が要求されるシステムを構築するためにCPUを二重化あるいは多重化する場合には、それぞれのCPUがエンドポイントを共有するための何らかの工夫が必要とされる。   By the way, in the communication system using PCI Express, conventionally, the number of CPUs that can be connected to the end point is limited to one. Therefore, when CPUs are duplicated or multiplexed in order to construct a system that requires reliability, some device is required for each CPU to share an endpoint.

そこで、複数のCPU(プロセッサ)がエンドポイントを共有するために、他のエンドポイントを介して目的のエンドポイントにアクセスする技術が本発明の第1の関連技術として提案されている(たとえば特許文献1参照)。   Therefore, a technique for accessing a target endpoint via another endpoint in order for a plurality of CPUs (processors) to share the endpoint has been proposed as a first related technique of the present invention (for example, Patent Documents). 1).

図20は、この第1の関連技術におけるエンドポイント共有システムの構成の概要を表わしたものである。このエンドポイント共有システム1000では、第1のプロセッサユニット1001が第1のホストブリッジ1002および第1の外部バス1003を経由して第1のエンドポイント1004に接続されている。同様に、第2のプロセッサユニット1011は第2のホストブリッジ1012および第2の外部バス1013を経由して第2のエンドポイント1014に接続されている。   FIG. 20 shows an outline of the configuration of the endpoint sharing system in the first related technology. In this endpoint sharing system 1000, the first processor unit 1001 is connected to the first endpoint 1004 via the first host bridge 1002 and the first external bus 1003. Similarly, the second processor unit 1011 is connected to the second endpoint 1014 via the second host bridge 1012 and the second external bus 1013.

第1のエンドポイント1004と第2のエンドポイント1014は互いに異なる外部バス1003、1013に接続されている。このため、たとえば第1のプロセッサユニット1001がそのまま第2のエンドポイント1014を使用することができない。そこで、エンドポイント共有システム1000では、第1のエンドポイント1004と第2のエンドポイント1014の間に、これらの間を伝達される信号の変換を行う変換部1021と、変換部1021で変換に使用するデータを記憶するメモリ1022とを配置している。   The first endpoint 1004 and the second endpoint 1014 are connected to different external buses 1003 and 1013. For this reason, for example, the first processor unit 1001 cannot use the second endpoint 1014 as it is. Therefore, in the endpoint sharing system 1000, between the first endpoint 1004 and the second endpoint 1014, a converter 1021 that converts a signal transmitted between them, and a converter 1021 that uses the conversion A memory 1022 for storing data to be stored.

たとえば第1のプロセッサユニット1001から第2のプロセッサユニット1011の第2のエンドポイント1014へパケットを送信するものとする。この場合、そのパケットは、まず第1のエンドポイント1004に送信される。第1のエンドポイント1004に到達したパケットには、要求元のバス番号およびデバイス番号からなる要求元ID(identifier)が含まれる。第1のホストブリッジ1002のバス番号およびデバイス番号が要求元IDとなる。この要求元IDを変換部1021において変換し、第2のエンドポイント1014のバス番号およびデバイス番号とする。これにより、第2のプロセッサユニット1011配下のデバイスツリー内で有効なパケットが生成され、パケットを同ツリー内の所望のユニットあるいはデバイスへ到達させることができる。第2のプロセッサユニット1011のデバイスツリーから第1のプロセッサユニット1001のデバイスツリーに向けたパケット送信も同様である。   For example, a packet is transmitted from the first processor unit 1001 to the second endpoint 1014 of the second processor unit 1011. In this case, the packet is first transmitted to the first endpoint 1004. A packet that reaches the first endpoint 1004 includes a request source ID (identifier) that includes a request source bus number and a device number. The bus number and device number of the first host bridge 1002 are the request source ID. The request source ID is converted by the conversion unit 1021 to obtain the bus number and device number of the second endpoint 1014. As a result, a valid packet is generated in the device tree under the second processor unit 1011 and the packet can reach a desired unit or device in the tree. The same applies to packet transmission from the device tree of the second processor unit 1011 toward the device tree of the first processor unit 1001.

メモリ1022には、第1および第2のホストブリッジ1002、1012のバス番号およびデバイス番号を、パケットに与えられたタグと対応づけて要求元IDテーブルとして格納している。タグはあるアクセス確立のための要求および応答に対して一意に定められる識別番号である。   The memory 1022 stores the bus numbers and device numbers of the first and second host bridges 1002 and 1012 in association with the tags given to the packets as a request source ID table. The tag is an identification number uniquely determined for a request and response for establishing a certain access.

第1の関連技術によるエンドポイント共有システム1000では、第1プロセッサユニット1001が第2プロセッサユニット1011のエンドポイント1014を共有するために、変換部1021およびメモリ1022を接続した他のエンドポイント1004を介する必要がある。このためには、共有する1つのエンドポイントのために、第1プロセッサユニット1001と第2プロセッサユニット1011がそれぞれ1つずつのエンドポイント1004、1014を用意する必要がある。また、変換部1021とこの変換部1021の変換に必要な要求元IDテーブルを格納したメモリ1022を必要とし、システムの管理や運用が煩雑となる。   In the endpoint sharing system 1000 according to the first related technology, the first processor unit 1001 passes through another endpoint 1004 to which the conversion unit 1021 and the memory 1022 are connected in order to share the endpoint 1014 of the second processor unit 1011. There is a need. For this purpose, it is necessary to prepare one endpoint 1004 and 1014 for each of the first processor unit 1001 and the second processor unit 1011 for one shared endpoint. Further, the conversion unit 1021 and the memory 1022 storing the request source ID table necessary for the conversion by the conversion unit 1021 are required, and the management and operation of the system become complicated.

そこで、本発明者は、他のエンドポイントの介在を必要とすることなく、1つのエンドポイントを複数のサーバが共有することのできる第2の関連技術を提案した。   Therefore, the present inventor has proposed a second related technology in which a plurality of servers can share one end point without requiring the intervention of another end point.

図21は、この第2の関連技術におけるエンドポイント共有システムの構成を表わしたものである。第2の関連技術のエンドポイント共有システム1100は、第0および第1のサーバ1110、1111を、統合エンドポイント(EP:End Point)1112に接続した構成となっている。ここで、第0および第1のサーバ1110、1111ならびに統合エンドポイント1112は、互いに物理的に分離した存在となっている。   FIG. 21 shows the configuration of the endpoint sharing system in the second related technology. The end point sharing system 1100 of the second related technology has a configuration in which the 0th and first servers 1110 and 1111 are connected to an integrated end point (EP) 1112. Here, the 0th and 1st servers 1110 and 1111 and the integrated endpoint 1112 are physically separated from each other.

統合エンドポイント1112は、PCIプロシキ(Proxy)機能部1121と、第0〜第Nのエンドポイント(EP)11220〜1122N(ただし、Nは正の整数)から構成されている。ここで、PCIプロシキ機能部1121は、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部である。PCIプロシキ機能部1121は、図示しないがCPUと、このCPUが実行する制御プログラムを格納したROM(Read Only Memory)等の記録媒体を有しており、次の各部を備えている。 The integrated endpoint 1112 includes a PCI proxy function unit 1121 and 0th to Nth endpoints (EP) 1122 0 to 1122 N (where N is a positive integer). Here, the PCI proxy function unit 1121 is a function unit acting as a proxy (PCI) function as a computer expansion bus architecture. The PCI proxy function unit 1121 includes a CPU (not shown) and a recording medium such as a ROM (Read Only Memory) storing a control program executed by the CPU, and includes the following units.

(a)第0のポート11310
第0のサーバ1110とPCIe(PCIExpress)ケーブル11320を介して接続される。
(b)第1のポート11311
第1のサーバ1111とPCIeケーブル11321を介して接続される。
(c)ACT(active)・SBY(standby)選択機能部1133
第0および第1のサーバ1110、1111の一方をACT(現用)系に、他方をSBY(待機系)系に選択する。
(d)第0の仮想PCIeコンフィグ(Configuration)レジスタ11340
各エンドポイント1122のPCIeコンフィグレジスタ情報を格納する。
(e)第1の仮想PCIeコンフィグ(Configuration)レジスタ11341
各エンドポイント1122のPCIeコンフィグレジスタ情報を格納する。
(f)コンフィグ(Configuration)制御部1135
第0の仮想PCIeコンフィグレジスタ11340および第1の仮想PCIeコンフィグレジスタ11341を管理する。
(g)アドレス変換テーブル1136
第0のサーバ1110と第1のサーバ1111のメモリ空間の差分情報としてのアドレス空間差分情報を保持する。
(h)アドレス変換部1137
第0のサーバ1110と第1のサーバ1111のメモリ空間へのアクセスが同一のアドレスになるように、アドレスを変換する。
(i)アドレス変換・振り分け機能部1138
第0および第1のサーバ1110、1111のうちのACT系のサーバと接続されたポートとの間でPCIeパケットを振り分ける。
(j)第0〜第NのPCIeポート(Port)11390〜1139N
第0〜第Nのエンドポイント(EP)11220〜1122Nをそれぞれ対応して接続する。
(A) 0th port 1131 0
It is connected via a server 1110 and PCIe (PCIExpress) cable 1132 0 of the 0.
(B) First port 1131 1
The first server 1111 is connected via the PCIe cable 1132 1 .
(C) ACT (active) / SBY (standby) selection function unit 1133
One of the 0th and 11th servers 1110 and 1111 is selected as an ACT (active) system, and the other is selected as an SBY (standby system) system.
(D) 0th virtual PCIe configuration register 1134 0
The PCIe configuration register information of each endpoint 1122 is stored.
(E) First virtual PCIe configuration register 1134 1
The PCIe configuration register information of each endpoint 1122 is stored.
(F) Configuration control unit 1135
The 0th virtual PCIe configuration register 1134 0 and the first virtual PCIe configuration register 1134 1 are managed.
(G) Address conversion table 1136
Address space difference information as difference information of the memory space between the 0th server 1110 and the first server 1111 is held.
(H) Address conversion unit 1137
The addresses are converted so that the access to the memory space of the 0th server 1110 and the first server 1111 is the same address.
(I) Address conversion / distribution function unit 1138
The PCIe packet is distributed between a port connected to the ACT server of the 0th and first servers 1110 and 1111.
(J) 0th to Nth PCIe ports (Ports) 1139 0 to 1139 N
The 0th to Nth end points (EP) 1122 0 to 1122 N are connected correspondingly.

第2の関連技術のエンドポイント共有システム1100では、第0〜第Nのエンドポイント11220〜1122Nを、汎用サーバとしての第0および第1のサーバ1110、1111から共通に利用できるようになっている。ここで、第0〜第Nのエンドポイント11220〜1122Nは、前記したようにデータの入出力装置の総称である。第0および第1のサーバ1110、1111は、それぞれ図示しないがCPU(Central Processing Unit)を実装している。 In the endpoint sharing system 1100 of the second related technology, the 0th to Nth endpoints 1122 0 to 1122 N can be commonly used from the 0th and first servers 1110 and 1111 as general-purpose servers. ing. Here, the 0th to Nth endpoints 1122 0 to 1122 N are generic names of data input / output devices as described above. The zeroth and first servers 1110 and 1111 are each mounted with a CPU (Central Processing Unit) (not shown).

通常のPCIe(PCI Express)システムでは、データの入出力装置としてのエンドポイントは、通常、サーバ内に実装される。第2の関連技術のエンドポイント共有システム1100では、第0〜第Nのエンドポイント11220〜1122Nが第0および第1のサーバ1110、1111と物理的に独立した構成となっている。したがって、第0のサーバ1110と第0〜第Nのエンドポイント11220〜1122Nの間、あるいは第1のサーバ1111と同じく第0〜第Nのエンドポイント11220〜1122Nの間は、PCIe専用のケーブルで接続されている。ここで、汎用サーバと各エンドポイントをPCIe専用のケーブルで接続する手法は、すでに技術的に確立したものとなっている。 In a normal PCIe (PCI Express) system, an endpoint as a data input / output device is usually mounted in a server. In the endpoint sharing system 1100 of the second related technology, the 0th to Nth endpoints 1122 0 to 1122 N are physically independent from the 0th and first servers 1110 and 1111. Thus, during the first 0 server 1110 and between the 0th endpoint 1122 0 ~1122 N of the N or the first server 1111 Like endpoint 1122 0 ~1122 N of 0th N, is, PCIe Connected with a dedicated cable. Here, a technique for connecting a general-purpose server and each end point with a dedicated cable for PCIe has already been technically established.

この第2の関連技術では、第0および第1のサーバ1110、1111の一方をACT(active)系、すなわち現用系として初期的に設定しており、このACT系のみが第0〜第Nのエンドポイント11220〜1122Nにアクセス可能となっている。そして、SBY(standby)系を用意しておくことで、サーバに搭載されたCPUを二重化している。 In the second related technology, one of the 0th and 11th servers 1110 and 1111 is initially set as an ACT (active) system, that is, an active system, and only this ACT system is in the 0th to Nth. The end points 1122 0 to 1122 N can be accessed. By preparing an SBY (standby) system, the CPU mounted on the server is duplicated.

また、第2の関連技術では、コンフィグレーションを電源投入時に実行するようにしており、サーバのACT系とSBY系の切り替え時にコンフィグレーションを不要としている。これにより、ACT系とSBY系それぞれのサーバに搭載したCPUの一方に障害が発生した場合のようにCPUの切り替えが必要な際に、エンドポイントを一旦停止することなく、CPUの系の切り替えを高速に実現可能である。   In the second related technology, the configuration is executed when the power is turned on, and the configuration is not required when the server is switched between the ACT system and the SBY system. As a result, when the CPU needs to be switched, such as when a failure occurs in one of the CPUs installed in the ACT and SBY servers, the CPU system can be switched without temporarily stopping the endpoint. It can be realized at high speed.

第2の関連技術の第0および第1のサーバ1110、1111は、それぞれ1個ずつPCIe拡張スロット1141、1142を有している。第0のサーバ1110は、PCIeケーブル11320を接続するためのPCIe NIC(Network Interface Card)1143を、PCIe拡張スロット1141に実装(装着)している。同様に、第1のサーバ1111は、PCIeケーブル11321を接続するためのPCIe NIC1144をPCIe拡張スロット1142に実装している。 Each of the 0th and 11th servers 1110 and 1111 of the second related technology has PCIe expansion slots 1141 and 1142, respectively. 0th server 1110, a PCIe NIC (Network Interface Card) 1143 for connecting the PCIe cable 1132 0, are mounted to the PCIe expansion slot 1141 (attached). Similarly, the first server 1111 has a PCIe NIC 1144 for connecting the PCIe cable 1132 1 mounted in the PCIe expansion slot 1142.

第0〜第Nのエンドポイント11220〜1122NとPCIプロシキ機能部1121における第0〜第NのPCIeポート11390〜1139Nの間には、それぞれPCIeバス11510〜1151Nが接続されている。 0th Between the first N Endpoint 1122 0 ~1122 N and PCI Puroshiki functional unit PCIe port 1139 0th N at 1121 0 ~1139 N of being respectively connected to the PCIe bus 1151 0 ~1151 N Yes.

PCIプロキシ機能部1121は、第0のサーバ1110と接続するための第0のポート11310と、第1のサーバ1111と接続するための第1のポート11311を有する。また、PCIプロキシ機能部1121は、第0および第1の仮想PCIeコンフィグレジスタ11340、11341をそれぞれ管理するためのコンフィグ(Configuration)制御部1135を有する。コンフィグ制御部1135は、PCIプロキシ機能部1121に接続された第0〜第Nのエンドポイント11220〜1122Nが保持する、図示しないPCIeコンフィグレーションレジスタを制御する機能を有する。また、コンフィグ制御部1135は、第0および第1の仮想PCIeコンフィグレジスタ11340、11341に対して、各エンドポイント1122のPCIeコンフィグレジスタ情報の内容を反映させる機能も有する。 The PCI proxy function unit 1121 has a 0th port 1131 0 for connecting to the 0th server 1110 and a first port 1131 1 for connecting to the first server 1111. The PCI proxy function unit 1121 includes a configuration control unit 1135 for managing the 0th and first virtual PCIe configuration registers 1134 0 and 1134 1 , respectively. Configuration control section 1135, the endpoint 1122 0 ~1122 N of 0th N holds connected to PCI proxy function unit 1121 has a function of controlling the PCIe configuration register (not shown). The configuration control unit 1135 also has a function of reflecting the contents of the PCIe configuration register information of each endpoint 1122 to the 0th and first virtual PCIe configuration registers 1134 0 and 1134 1 .

第0のサーバ1110は、第0の仮想PCIeコンフィグ(Configuration)レジスタ11340に対して、PCIeコンフィグレーション情報のリード・ライト(Read/Write)を行う。第1のサーバ1111も、第1の仮想PCIeコンフィグレジスタ11341に対して、PCIeコンフィグレーション情報のリード・ライトを行う。このため、第0〜第Nのエンドポイント11220〜1122Nの前記したPCIeコンフィグレーションレジスタは、これらのサーバ1110、1111から直接制御されることはない。これらのPCIeコンフィグレーションレジスタは、コンフィグ制御部1135を経由してアクセスされることになる。 0th server 1110, to the virtual PCIe configuration (Configuration) register 1134 0 of the 0th, performs PCIe configuration information read-write (Read / Write). The first server 1111 also reads / writes PCIe configuration information to / from the first virtual PCIe configuration register 11341. Therefore, the PCIe configuration registers of the 0th to Nth endpoints 1122 0 to 1122 N are not directly controlled from these servers 1110, 1111. These PCIe configuration registers are accessed via the configuration control unit 1135.

第0のポート11310と第1のポート11311は、PCIeパケットで転送されるACT制御信号を識別する。そして、ACT切替指示が第0のサーバ1110もしくは第1のサーバ1111から送付された場合には、ACT・SBY選択機能部1133に対してACT・SBY切替指示を出すようになっている。ACT・SBY選択機能部1133では、アドレス変換・振り分け機能部1138に対して、現用系としてのACT系サーバが第0および第1のサーバ1110、1111のどちらであるかを示す信号を送出する。アドレス変換・振り分け機能部1138は、この信号を受信すると、第0のポート11310と第1のポート11311のうちのACT系のサーバと接続されたポートとの接続を維持する。アドレス変換・振り分け機能部1138は、第0のポート11310と第1のポート11311のうちのSBY系のポートとのデータのやり取りは行わない。 The 0th port 1131 0 and the first port 1131 1 identify the ACT control signal transferred in the PCIe packet. When an ACT switching instruction is sent from the 0th server 1110 or the first server 1111, an ACT / SBY switching instruction is issued to the ACT / SBY selection function unit 1133. The ACT / SBY selection function unit 1133 sends a signal indicating to the address conversion / distribution function unit 1138 whether the active ACT server is the 0th server or the first server 1110, 1111. Upon receiving this signal, the address translation / distribution function unit 1138 maintains the connection between the 0th port 1131 0 and the port connected to the ACT server of the first port 1131 1 . The address translation / distribution function unit 1138 does not exchange data between the 0th port 1131 0 and the SBY system port of the first port 1131 1 .

コンフィグ制御部1135は、第0および第1の仮想PCIeコンフィグレジスタ11340、11341に設定されたPCIeコンフィグレーションレジスタ情報から第0および第1のサーバ1110、1111が保持するPCIeメモリ空間マップ情報を取得する。そして、各サーバ1110、1111でメモリ空間上に各エンドポイント1122をどのように配置したかを認識する。このとき、各サーバ1110、1111の設定値に差分がある場合には、第0のサーバ1110のメモリ空間に対して、第1のサーバ1111のメモリ空間の差分を計算し、差分情報をアドレス変換テーブル1136に転送する。 The configuration control unit 1135 obtains PCIe memory space map information held by the 0th and first servers 1110 and 1111 from the PCIe configuration register information set in the 0th and 1st virtual PCIe configuration registers 1134 0 and 1134 1. get. Then, the servers 1110 and 1111 recognize how the end points 1122 are arranged in the memory space. At this time, if there is a difference between the setting values of the servers 1110 and 1111, the difference of the memory space of the first server 1111 is calculated with respect to the memory space of the 0th server 1110, and the difference information is address-converted. Transfer to table 1136.

アドレス変換部1137は、アドレス変換テーブル1136から送信された第0および第1のサーバ1110、1111のアドレス空間差分情報を取得する。そして、第1のサーバ1111のメモリ空間へのアクセスを第0のサーバ1110のメモリ空間へのアクセスと同一のアドレスになるように、アドレス変換処理を実施する。その後、第1のサーバ1111と第0〜第Nのエンドポイント11220〜1122Nの間でアクセスが行われる際にPCIeパケットのやり取りを実施する。 The address conversion unit 1137 acquires the address space difference information of the 0th and first servers 1110 and 1111 transmitted from the address conversion table 1136. Then, an address conversion process is performed so that the access to the memory space of the first server 1111 has the same address as the access to the memory space of the 0th server 1110. Thereafter, the PCIe packet is exchanged when an access is performed between the first server 1111 and the 0th to Nth endpoints 1122 0 to 1122 N.

アドレス変換・振り分け機能部1138は、第0〜第Nのエンドポイント11220〜1122Nに対するPCIeパケットの振分けを、PCIeパケットヘッダ内に格納されたアドレス情報を基にして実施する。 The address conversion / distribution function unit 1138 performs the distribution of the PCIe packet to the 0th to Nth endpoints 1122 0 to 1122 N based on the address information stored in the PCIe packet header.

なお、第0〜第Nのエンドポイント11220〜1122Nから第0あるいは第1のサーバ1110、1111の方向に流れるパケットについては、ACT・SBY選択機能部1133から送信されたACT情報を基にして、ACT系サーバと接続されたポート方向のみにパケットを送信する。 The packets flowing from the 0th to Nth endpoints 1122 0 to 1122 N toward the 0th or first server 1110 or 1111 are based on the ACT information transmitted from the ACT / SBY selection function unit 1133. Thus, the packet is transmitted only in the port direction connected to the ACT server.

このエンドポイント共有システム1100にも見られるように、ネットワーク機器では、CPUをACT系とSBY系の双方に配置して、これらの2つの系で同期をとる一方、片方の系のCPUが配下のエンドポイントにアクセスしてデータの運用を行うことが望ましい。このため、ACT系とSBY系の合計2個のCPUとエンドポイントで構成するネットワーク機器の場合には、エンドポイントに対してACT系のCPUのみアクセス可能であればよい。しかしながら、障害が発生した時には、CPUの系切り替えを実施した後に、新しいACT系のCPUが、速やかにエンドポイントにアクセスできるための仕組みが必要となる。   As seen in this endpoint sharing system 1100, in the network device, the CPUs are arranged in both the ACT system and the SBY system, and the two systems are synchronized, while the CPU of one system is under control. It is desirable to operate the data by accessing the endpoint. For this reason, in the case of a network device composed of a total of two ACT and SBY CPUs and an endpoint, it is sufficient that only the ACT CPU is accessible to the endpoint. However, when a failure occurs, a mechanism is required for a new ACT CPU to be able to quickly access the endpoint after switching the CPU.

既存のピーシーアイ(PCI)の仕組みを用いる場合には、ACT系のCPUがエンドポイントを管理している状態から、障害発生により、SBY系のCPUに切り替えたとき、エンドポイントがマッピングされるCPUメモリ空間が同一ではない。そこで、一般には、エンドポイントの物理的なリセットや設定データの再設定が必要となり、迅速な系の切り替えを実施することが困難になる。また、リセットや再設定処理の間、エンドポイントはデータ通信を行うことができない。この結果、ネットワーク機器の信頼性が低くなる。このため、信頼性が要求される通信機器では、エンドポイントに対するリセットやコンフィグレーション処理を実施することなく、CPUの切替処理が実現できることが望まれる。   When the existing PC eye (PCI) mechanism is used, the CPU to which the endpoint is mapped when the ACT CPU manages the endpoint and switches to the SBY CPU due to the occurrence of a failure. Memory space is not the same. In general, therefore, it is necessary to physically reset the endpoint and reset the setting data, and it is difficult to perform rapid system switching. In addition, during the reset or reset process, the endpoint cannot perform data communication. As a result, the reliability of the network device is lowered. For this reason, in a communication device that requires reliability, it is desired that CPU switching processing can be realized without performing reset or configuration processing for an endpoint.

以上説明した第2の関連技術では、汎用サーバ上に搭載されたCPUを系の切り替えに使用している。サーバ上のCPUは、通常、電源が投入された直後に、バイオス(BIOS:Basic Input/Output System)の指示に従ってPCIe配下のエンドポイントを検索して、自動的にメモリ空間上にエンドポイントのマッピング処理を実施する。このため、ユーザがどのアドレス空間にエンドポイントを配置するかという制御は、たとえばバイオスの変更を行わない限りは不可能である。このため、物理的に異なるサーバ上に搭載された2個のCPUが、同一のエンドポイントを同一のメモリ空間上にマッピングさせることは、困難となる。   In the second related technology described above, a CPU mounted on a general-purpose server is used for system switching. The CPU on the server normally searches for endpoints under PCIe according to BIOS (Basic Input / Output System) instructions immediately after the power is turned on, and automatically maps the endpoints in the memory space. Perform the process. For this reason, it is impossible to control in which address space the user places the endpoint unless the bios is changed, for example. For this reason, it is difficult for two CPUs mounted on physically different servers to map the same end point on the same memory space.

PCIe(PCI Express)では、エンドポイントをCPUのメモリ空間上にマッピングする場合に、ベースアドレス(Base Address)をエンドポイント1122のPCIeコンフィグレーションレジスタに対して設定し、メモリ空間における位置を確定させる。エンドポイントは設定されたベースアドレス情報に基づいたアドレス値が設定されたPCIeパケットのみを、自分が処理するPCIeパケットであると認識する。このため、2個のCPU間とのやり取りの際のエンドポイント1122のアドレス値は、PCIeコンフィグレーションレジスタに設定されている値である必要がある。この結果、エンドポイント1122のPCIeコンフィグレーション情報を再設定しないで、CPUの切り替えを実施する場合は、エンドポイント1122へアクセスするアドレスをエンドポイント1122の前段階で同一空間上になるように、変換する機能が必要となる。   In PCIe (PCI Express), when an end point is mapped on the memory space of the CPU, a base address (Base Address) is set in the PCIe configuration register of the end point 1122 to determine the position in the memory space. The endpoint recognizes only the PCIe packet in which the address value based on the set base address information is set as the PCIe packet to be processed by itself. For this reason, the address value of the endpoint 1122 at the time of exchange between two CPUs needs to be a value set in the PCIe configuration register. As a result, when CPU switching is performed without resetting the PCIe configuration information of the endpoint 1122, the address for accessing the endpoint 1122 is converted so that it is in the same space before the endpoint 1122. Function is required.

そこで、第2の関連技術では、電源投入直後のACT系サーバとしての第0のサーバ1110のメモリ空間にエンドポイント1122をマッピングするようにしている。そして、第0のサーバ1110から各エンドポイント1122へのアクセスについては、アドレス情報をそのまま使用する。障害発生によりACT系とSBY系の切り替えが発生したら、その後の電源投入直後のSBY系サーバとしての第1のサーバ1111から各エンドポイント1122のアクセスについては、アドレス変換を実施する。これにより、同一のエンドポイントに対して、2つのCPUがアクセスする機能を実現する。   Therefore, in the second related technology, the endpoint 1122 is mapped to the memory space of the 0th server 1110 as the ACT server immediately after the power is turned on. For the access from the 0th server 1110 to each endpoint 1122, the address information is used as it is. When the ACT system and the SBY system are switched due to the occurrence of a failure, address conversion is performed for the access of each endpoint 1122 from the first server 1111 as the SBY server immediately after the power is turned on. As a result, a function for two CPUs to access the same endpoint is realized.

特開2007−188446号公報(第0018段落〜第0024段落、図2)JP 2007-188446 A (paragraphs 0018 to 0024, FIG. 2)

このような第2の関連技術を使用すると、エンドポイント1122を複数のサーバ1110、1111で共有する仕組みを実現可能となる。また、エンドポイント1122側の処理が増加した場合には、エンドポイント1122を増設することで、拡張性のあるシステム構成を実現することができる。   When such a second related technology is used, it is possible to realize a mechanism for sharing the endpoint 1122 among the plurality of servers 1110 and 1111. In addition, when the processing on the end point 1122 side increases, an expandable system configuration can be realized by adding the end points 1122.

しかしながら、サーバ1110、1111側の負荷が増えた際、第2の関連技術を使用した場合には、サーバ1110、1111の数をこれに応じて増設する手法を採用することができない。サーバ1110、1111の数を増設する手法を採用すると、ACT系のサーバ1110が増えてしまうことになるが、この場合、複数のACT系サーバがエンドポイント1122にアクセスすることは不可能だからである。そこで、第2の関連技術を使用する手法では、サーバ1110、1111側の負荷が増加した際にこれらサーバの数を増やさず、サーバ自体の能力を向上させる対処方法を採用することになる。しかしながら、サーバ1110、1111自体の能力を向上させるには、自ずと限界がある。   However, when the load on the server 1110, 1111 side increases, when the second related technology is used, it is not possible to adopt a method of increasing the number of servers 1110, 1111 according to this. If the method of increasing the number of servers 1110 and 1111 is adopted, the number of ACT servers 1110 increases. In this case, it is impossible for a plurality of ACT servers to access the endpoint 1122. . Therefore, in the method using the second related technology, when the load on the servers 1110 and 1111 increases, a coping method is adopted in which the capacity of the server itself is improved without increasing the number of these servers. However, there is a limit to improving the capabilities of the servers 1110 and 1111 themselves.

また、この第2の関連技術では、FC(Fibre Channel)を使用する記憶装置を用いることで、複数のサーバがメモリを共有可能なシステムを構築することも提案した。これにより、PCIeを用いて、複数のエンドポイントと複数のサーバを1つのシステムとして構成することが可能になる。   In the second related technique, it has also been proposed to construct a system in which a plurality of servers can share memory by using a storage device using FC (Fibre Channel). This makes it possible to configure a plurality of endpoints and a plurality of servers as one system using PCIe.

ところが、FCを使用する記憶装置およびネットワーク機器は高価であり、かつスループットの向上が、イーサネット(登録商標)、インフィニバンド(infiniband)等の他のインタフェイス仕様よりも劣ることが欠点となる。また、PCIeデータパケットを、FCプロトコルでカプセル化し、サーバと記憶装置間で転送するため、プロトコル処理部にオーバヘッドが生じ、CPU側の負荷が高くなり高速データ転送に影響が出ることが欠点と考えられる。   However, storage devices and network devices that use FC are expensive, and the improvement in throughput is inferior to other interface specifications such as Ethernet (registered trademark) and infiniband. In addition, since the PCIe data packet is encapsulated by the FC protocol and transferred between the server and the storage device, overhead is generated in the protocol processing unit, the load on the CPU side is increased, and high-speed data transfer is affected. It is done.

また、FCを用いたシステムでは、一般的には記憶媒体としてハードディスク(HD)が用いられる。ハードディスクはデータの蓄積に対して機械的な構造が必要不可欠であり、電気信号のみでデータの蓄積が可能である一般的なメモリと比較して、リードおよびライト(Read/Wirte)ともにスピードが遅いことが欠点となる。このため、ハードディスクを用いた場合にはリードおよびライトの高速化のためには、複数のディスクをパラレルに動作させることが一般的となる。これによりデータの読み書きの高速化を実現可能であるものの、多数のハードディスクが必要となるため、ディスク容量を必要としないシステムでは、コスト的に不利となる。   In a system using FC, a hard disk (HD) is generally used as a storage medium. A hard disk requires a mechanical structure for data storage, and both read and write (Read / Wirte) speeds are slower than a general memory that can store data using only electrical signals. This is a drawback. Therefore, when a hard disk is used, it is common to operate a plurality of disks in parallel in order to increase the reading and writing speed. Although this makes it possible to increase the speed of reading and writing data, a large number of hard disks are required, which is disadvantageous in terms of cost in systems that do not require disk capacity.

そこで本発明の目的は、サーバと記憶装置をPCIeで接続し、複数のサーバの中の特定のサーバと統合エンドポイントの間のデータ転送の高速化を図ったエンドポイント共有システムおよびデータ転送方法を提供することにある。   SUMMARY OF THE INVENTION An object of the present invention is to provide an endpoint sharing system and a data transfer method for connecting a server and a storage device by PCIe and accelerating data transfer between a specific server of a plurality of servers and an integrated endpoint. It is to provide.

本発明では、(イ)コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する統合エンドポイント側送信手段と、(ロ)この統合エンドポイント側送信手段の送信したPCIeパケットに格納されたデータを処理する拡張サーバを決定する拡張サーバ決定手段と、(ハ)この拡張サーバ決定手段で決定した拡張サーバのサーバ名を前記したPCIeパケットに挿入する拡張サーバ名挿入手段と、(ニ)この拡張サーバ名挿入手段でサーバ名を挿入したPCIeパケットを前記した主サーバから所定の記憶装置に送信する主サーバ側送信手段と、(ホ)この主サーバ側送信手段で送信したPCIeパケットを受信して前記した記憶装置内の1次共有メモリに書き込む1次共有メモリ書込手段と、(へ)この1次共有メモリ書込手段で前記した1次共有メモリに書き込んだPCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記した拡張サーバ決定手段で決定した2次共有メモリに転送する2次共有メモリ転送手段とをエンドポイント共有システムが具備する。   In the present invention, (a) an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints (B) processing the data stored in the PCIe packet transmitted by the integrated endpoint side transmission means, which transmits the PCIe packet from the predetermined endpoint to the main server as the active server; Extended server determining means for determining an extended server; (c) extended server name inserting means for inserting the server name of the extended server determined by the extended server determining means into the PCIe packet; and (d) inserting the extended server name. Main server with PCIe packet with server name inserted by means Main server side transmitting means for transmitting to a predetermined storage device, and (e) a primary shared memory book for receiving the PCIe packet transmitted by the main server side transmitting means and writing it to the primary shared memory in the storage device. And (1) the PCIe packet written in the primary shared memory by the primary shared memory writing means is provided corresponding to each of the active and standby servers individually. The endpoint sharing system includes secondary shared memory transfer means for transferring to the secondary shared memory determined by the extended server determination means among the secondary shared memories used for individual transfer of data to and from.

また、本発明では、(イ)コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける特定のエンドポイントに対して任意の主サーバおよび拡張サーバがデータの送信を行うときそのPCIeパケットに前記した特定のエンドポイントを表わす識別情報を挿入する拡張サーバ側挿入手段と、(ロ)この拡張サーバ側挿入手段で前記した識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの送信元の前記した任意の主サーバおよび拡張サーバに対応する2次共有メモリに格納する2次共有メモリ格納手段と、(ハ)この2次共有メモリ格納手段が前記した2次共有メモリのいずれかにPCIeパケットを格納したとき前記した識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信するPCIeパケット送信手段とをエンドポイント共有システムが具備する。   In the present invention, (b) an integrated end composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of end points. An expansion server side insertion means for inserting identification information representing the specific endpoint described above into the PCIe packet when an arbitrary main server and expansion server transmit data to the specific endpoint at the point; A plurality of PCIe packets into which the above-described identification information is inserted by the extension server side inserting means are individually provided for each main server and extension server and used for individual transfer of data to and from these servers. For any of the primary servers and expansion servers of the transmission source in the next shared memory Secondary shared memory storage means for storing in the secondary shared memory; and (c) when the secondary shared memory storage means stores the PCIe packet in any of the secondary shared memories, and reads out the identification information. The endpoint sharing system includes PCIe packet transmitting means for transmitting a PCIe packet to the endpoint determined from the identification information.

更に本発明では、(イ)コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する統合エンドポイント側送信ステップと、(ロ)この統合エンドポイント側送信ステップで送信したPCIeパケットを受信した主サーバがこのPCIeパケットに格納されたデータを処理する拡張サーバを決定する拡張サーバ決定ステップと、(ハ)この拡張サーバ決定ステップで決定した拡張サーバのサーバ名を前記したPCIeパケットに挿入する拡張サーバ名挿入ステップと、(ニ)この拡張サーバ名挿入ステップでサーバ名を挿入したPCIeパケットを前記した主サーバから所定の記憶装置に送信する主サーバ側送信ステップと、(ホ)この主サーバ側送信ステップで送信したPCIeパケットを受信して前記した記憶装置内の1次共有メモリに書き込む1次共有メモリ書込ステップと、(へ)この1次共有メモリ書込ステップで前記した1次共有メモリに書き込んだPCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記した拡張サーバ決定ステップで決定した2次共有メモリに転送する2次共有メモリ転送ステップとをデータ転送方法が具備する。   Furthermore, in the present invention, (a) an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints (B) The main server that has received the PCIe packet transmitted in the integrated endpoint side transmission step transmits the PCIe packet from the predetermined endpoint to the main server as the active server. An expansion server determination step for determining an expansion server for processing data stored in the PCIe packet; and (c) an expansion server name insertion step for inserting the server name of the expansion server determined in the expansion server determination step into the PCIe packet. And (d) this expansion server A main server side transmission step of transmitting the PCIe packet with the server name inserted in the insertion step from the main server to the predetermined storage device; and (e) receiving the PCIe packet transmitted in the main server side transmission step A primary shared memory write step for writing to the primary shared memory in the storage device; and (f) the PCIe packet written to the primary shared memory in the primary shared memory write step for the active and standby systems. Transfer to the secondary shared memory determined in the above-described extended server determination step among the secondary shared memories provided individually corresponding to each server and used for individual transfer of data to and from these servers 2 And a next shared memory transfer step.

更にまた本発明では、(イ)コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける特定のエンドポイントに対してデータの送信を行う任意の主サーバおよび拡張サーバがPCIeパケットに前記した特定のエンドポイントを表わす識別情報を挿入する拡張サーバ側挿入ステップと、(ロ)この拡張サーバ側挿入ステップで前記した識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの自サーバに対応する2次共有メモリに格納する2次共有メモリ格納ステップと、(ハ)この2次共有メモリ格納ステップで前記した2次共有メモリのいずれかにPCIeパケットが格納されたとき前記した識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信するPCIeパケット送信ステップとをデータ転送方法が具備する。   Furthermore, in the present invention, (a) an integrated end composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for a computer and a plurality of end points. An expansion server-side insertion step in which an arbitrary primary server and an expansion server that transmit data to a specific endpoint at a point insert identification information representing the specific endpoint described above into a PCIe packet; A plurality of secondary shares used for individually transferring data to and from each of the main servers and expansion servers provided with the PCIe packet in which the identification information is inserted in the server-side insertion step. The secondary shared memory stored in the secondary shared memory corresponding to its own server A memory storing step; and (c) when the PCIe packet is stored in any of the secondary shared memories described in the secondary shared memory storing step, the identification information is read out and addressed to the endpoint determined from the identification information The data transfer method includes a PCIe packet transmission step of transmitting a PCIe packet to the network.

以上説明したように本発明によれば、統合エンドポイント側から送出するPCIeパケットを記憶装置に送り、ここで主サーバ側からの転送先のサーバの選択結果の組み込み処理および転送先のサーバにデータを渡すための2次共有メモリへのデータの格納処理を行うことにした。これにより、主サーバに搭載されているCPUの負荷を軽減することができる。   As described above, according to the present invention, the PCIe packet sent from the integrated endpoint side is sent to the storage device, where the process of incorporating the transfer destination server selection result from the main server side and the data to the transfer destination server To store data in the secondary shared memory for passing the data. Thereby, the load on the CPU mounted on the main server can be reduced.

また、本発明によればサーバからエンドポイント側にデータを転送する場合、PCIeパケットに転送先のエンドポイントの識別情報を組み込んで複数の2次共有メモリのうちの送信元のサーバに対応する2次共有メモリに格納することにした。これにより、サーバに搭載されているCPUの負荷を軽減して宛先のエンドポイントにPCIeパケットを転送することができる。   Further, according to the present invention, when data is transferred from the server to the endpoint side, the identification information of the transfer destination endpoint is incorporated into the PCIe packet, and 2 corresponding to the transmission source server among the plurality of secondary shared memories. Next decided to store in shared memory. Thereby, it is possible to reduce the load on the CPU mounted on the server and transfer the PCIe packet to the destination endpoint.

本発明のエンドポイント共有システムのクレーム対応図である。It is a claim correspondence diagram of the endpoint sharing system of the present invention. 本発明の他のエンドポイント共有システムのクレーム対応図である。It is a claim corresponding | compatible figure of the other end point sharing system of this invention. 本発明のデータ転送方法のクレーム対応図である。It is a claim corresponding figure of the data transfer method of this invention. 本発明の他のデータ転送方法のクレーム対応図である。It is a claim corresponding | compatible figure of the other data transfer method of this invention. 本発明の実施の形態によるエンドポイント共有システムを表わしたシステム構成図である。1 is a system configuration diagram illustrating an endpoint sharing system according to an embodiment of the present invention. 本実施の形態におけるサーバの電源投入後のアドレス変換テーブル作成までのコンフィグレーション処理の様子を示した説明図である。It is explanatory drawing which showed the mode of the configuration process until the address conversion table preparation after power-on of the server in this Embodiment. 本実施の形態におけるベースアドレスの概念を示した説明図である。It is explanatory drawing which showed the concept of the base address in this Embodiment. 本実施の形態におけるACT系サーバ群と、SBY系サーバ群のメモリ空間を対比して示した説明図である。It is explanatory drawing which contrasted and showed the memory space of the ACT type | system | group server group in this Embodiment, and a SBY type | system | group server group. 本実施の形態におけるACT系サーバ群を構成する第0−0のサーバによるデータのリードおよびライトの処理を表わした説明図である。It is explanatory drawing showing the read-and-write process of the data by the 0-0 server which comprises the ACT type | system | group server group in this Embodiment. 本実施の形態におけるSBY系サーバ群を構成する第1−0のサーバによるデータのリードおよびライトの処理を表わした説明図である。It is explanatory drawing showing the data read-and-write process by the 1-0th server which comprises the SBY type | system | group server group in this Embodiment. 本実施の形態におけるACT系とSBY系の切替動作を示した説明図である。It is explanatory drawing which showed switching operation of the ACT type | system | group and SBY type | system | group in this Embodiment. 本実施の形態におけるサーバ側のソフトウェア処理の様子を表わした説明図である。It is explanatory drawing showing the mode of the software process by the side of the server in this Embodiment. 本実施の形態における記憶装置を介して、サーバがエンドポイントに対してアクセスを行う様子を表わした説明図である。It is explanatory drawing showing a mode that a server accesses with respect to an endpoint via the memory | storage device in this Embodiment. 本実施の形態における第1の統合エンドポイントからサーバへのデータ取り込みの様子を示した説明図である。It is explanatory drawing which showed the mode of the data acquisition to the server from the 1st integrated endpoint in this Embodiment. 本実施の形態のエンドポイント共有システムの構成を記憶装置を中心に具体化して示したシステム構成図である。1 is a system configuration diagram specifically illustrating a configuration of an endpoint sharing system according to the present embodiment, centering on a storage device. 本実施の形態における各サーバと記憶装置の接続の状態を一般化して表わしたシステム構成図である。FIG. 2 is a system configuration diagram showing a general connection state between each server and a storage device in the present embodiment. 本実施の形態のエンドポイント共有システムにおけるデータの転送処理の様子を表わした説明図である。It is explanatory drawing showing the mode of the transfer process of the data in the endpoint sharing system of this Embodiment. 本発明の第1の変形例におけるエンドポイント共有システムの構成を表わしたシステム構成図である。It is a system configuration figure showing composition of an end point sharing system in the 1st modification of the present invention. 本発明の第2の変形例として統合エンドポイントと各系の拡張サーバが共にN台となったエンドポイント共有システムを表わしたシステム構成図である。FIG. 10 is a system configuration diagram showing an endpoint sharing system in which N integrated endpoints and N expansion servers are used as a second modification of the present invention. 第1の関連技術におけるエンドポイント共有システムの構成の概要を表わしたシステム構成図である。It is a system configuration figure showing an outline of composition of an end point sharing system in the 1st related art. 第2の関連技術におけるエンドポイント共有システムの構成の概要を示したシステム構成図である。It is a system configuration figure showing an outline of composition of an end point sharing system in the 2nd related art.

図1は、本発明のエンドポイント共有システムのクレーム対応図を示したものである。本発明のエンドポイント共有システム10は、統合エンドポイント側送信手段11と、拡張サーバ決定手段12と、拡張サーバ名挿入手段13と、主サーバ側送信手段14と、1次共有メモリ書込手段15と、2次共有メモリ転送手段16を備えている。ここで、統合エンドポイント側送信手段11は、統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する。統合エンドポイントは、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成されている。拡張サーバ決定手段12は、統合エンドポイント側送信手段11の送信したPCIeパケットに格納されたデータを処理する拡張サーバを決定する。拡張サーバ名挿入手段13は、拡張サーバ決定手段12で決定した拡張サーバのサーバ名を前記したPCIeパケットに挿入する。主サーバ側送信手段14は、拡張サーバ名挿入手段13でサーバ名を挿入したPCIeパケットを前記した主サーバから所定の記憶装置に送信する。1次共有メモリ書込手段15は、主サーバ側送信手段14で送信したPCIeパケットを受信して前記した記憶装置内の1次共有メモリに書き込む。2次共有メモリ転送手段16は、PCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記した拡張サーバ決定手段12で決定した2次共有メモリに転送する。このPCIeパケットは、1次共有メモリ書込手段15で前記した1次共有メモリに書き込んだパケットである。   FIG. 1 is a diagram corresponding to claims of the endpoint sharing system of the present invention. The endpoint sharing system 10 of the present invention includes an integrated endpoint side transmission unit 11, an extended server determination unit 12, an extended server name insertion unit 13, a main server side transmission unit 14, and a primary shared memory writing unit 15. And secondary shared memory transfer means 16. Here, the integrated endpoint transmission means 11 transmits a PCIe packet from a predetermined endpoint in the integrated endpoint to the main server as the active server. The integrated endpoint is composed of a PCI proxy function unit as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers, and a plurality of endpoints. The expansion server determination unit 12 determines an expansion server that processes data stored in the PCIe packet transmitted by the integrated endpoint side transmission unit 11. The extension server name insertion unit 13 inserts the server name of the extension server determined by the extension server determination unit 12 into the PCIe packet. The main server side transmission means 14 transmits the PCIe packet having the server name inserted by the extended server name insertion means 13 from the main server to a predetermined storage device. The primary shared memory writing unit 15 receives the PCIe packet transmitted by the main server side transmission unit 14 and writes it in the primary shared memory in the storage device. The secondary shared memory transfer means 16 is provided for each of the active system and standby system servers, and the secondary shared memory transfer means 16 is a secondary shared memory used for individual transfer of data to and from these servers. The data is transferred to the secondary shared memory determined by the extension server determining means 12. This PCIe packet is a packet written in the primary shared memory by the primary shared memory writing means 15.

図2は、本発明の他のエンドポイント共有システムのクレーム対応図を示したものである。本発明の他のエンドポイント共有システム20は、拡張サーバ側挿入手段21と、2次共有メモリ格納手段22と、PCIeパケット送信手段23を備えている。ここで、拡張サーバ側挿入手段21は、統合エンドポイントにおける特定のエンドポイントに対して任意の主サーバおよび拡張サーバがデータの送信を行うときそのPCIeパケットに前記した特定のエンドポイントを表わす識別情報を挿入する。統合エンドポイントは、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成されている。2次共有メモリ格納手段22は、PCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの送信元の前記した任意の主サーバおよび拡張サーバに対応する2次共有メモリに格納する。このPCIeパケットは、拡張サーバ側挿入手段21で前記した識別情報を挿入したパケットである。PCIeパケット送信手段23は、2次共有メモリ格納手段22が前記した2次共有メモリのいずれかにPCIeパケットを格納したとき前記した識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信する。   FIG. 2 is a diagram corresponding to claims of another endpoint sharing system of the present invention. Another endpoint sharing system 20 according to the present invention includes an extended server side insertion unit 21, a secondary shared memory storage unit 22, and a PCIe packet transmission unit 23. Here, the extended server side inserting means 21 is identification information representing the specific end point described above in the PCIe packet when any main server and the extended server transmit data to the specific end point in the integrated end point. Insert. The integrated endpoint is composed of a PCI proxy function unit as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers, and a plurality of endpoints. The secondary shared memory storage means 22 is a plurality of secondary shared memories which are provided for individually corresponding to the main server and the expansion server and used for individual transfer of data to and from these servers. Are stored in the secondary shared memory corresponding to the above-mentioned arbitrary main server and expansion server. This PCIe packet is a packet in which the above-described identification information is inserted by the extended server side inserting means 21. The PCIe packet transmitting unit 23 reads the identification information when the secondary shared memory storage unit 22 stores the PCIe packet in any of the secondary shared memories, and reads the identification information to the endpoint addressed from the identification information. Send the packet.

図3は、本発明のデータ転送方法のクレーム対応図を示したものである。本発明のデータ転送方法30は、統合エンドポイント側送信ステップ31と、拡張サーバ決定ステップ32と、拡張サーバ名挿入ステップ33と、主サーバ側送信ステップ34と、1次共有メモリ書込ステップ35と、2次共有メモリ転送ステップ36を備えている。ここで、統合エンドポイント側送信ステップ31では、統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する。統合エンドポイントは、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成されている。拡張サーバ決定ステップ32では、統合エンドポイント側送信ステップ31で送信したPCIeパケットを受信した主サーバがこのPCIeパケットに格納されたデータを処理する拡張サーバを決定する。拡張サーバ名挿入ステップ33では、拡張サーバ決定ステップ32で決定した拡張サーバのサーバ名を前記したPCIeパケットに挿入する。主サーバ側送信ステップ34では、拡張サーバ名挿入ステップ33でサーバ名を挿入したPCIeパケットを前記した主サーバから所定の記憶装置に送信する。1次共有メモリ書込ステップ35では、主サーバ側送信ステップ34で送信したPCIeパケットを受信して前記した記憶装置内の1次共有メモリに書き込む。2次共有メモリ転送ステップ36では、PCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記した拡張サーバ決定ステップ32で決定した2次共有メモリに転送する。このPCIeパケットは、1次共有メモリ書込ステップ35で前記した1次共有メモリに書き込んだものである。   FIG. 3 is a diagram corresponding to claims of the data transfer method of the present invention. The data transfer method 30 of the present invention comprises an integrated endpoint side transmission step 31, an expansion server determination step 32, an expansion server name insertion step 33, a main server side transmission step 34, and a primary shared memory writing step 35. A secondary shared memory transfer step 36 is provided. Here, in the integrated endpoint transmission step 31, a PCIe packet is transmitted from a predetermined endpoint in the integrated endpoint to the main server as the active server. The integrated endpoint is composed of a PCI proxy function unit as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers, and a plurality of endpoints. In the expansion server determination step 32, the main server that has received the PCIe packet transmitted in the integrated endpoint side transmission step 31 determines an expansion server that processes the data stored in the PCIe packet. In the extension server name insertion step 33, the server name of the extension server determined in the extension server determination step 32 is inserted into the PCIe packet. In the main server side transmission step 34, the PCIe packet into which the server name is inserted in the extended server name insertion step 33 is transmitted from the main server to a predetermined storage device. In the primary shared memory writing step 35, the PCIe packet transmitted in the main server side transmission step 34 is received and written in the primary shared memory in the storage device. In the secondary shared memory transfer step 36, the PCIe packet is provided for each of the active and standby servers individually corresponding to each of the secondary shared memory used for individual transfer of data to and from these servers. The data is transferred to the secondary shared memory determined in the extended server determination step 32. This PCIe packet has been written in the primary shared memory described above in the primary shared memory write step 35.

図4は、本発明のデータ転送方法のクレーム対応図を示したものである。本発明のデータ転送方法40は、拡張サーバ側挿入ステップ41と、2次共有メモリ格納ステップ42と、PCIeパケット送信ステップ43とを備えている。ここで、拡張サーバ側挿入ステップ41では、統合エンドポイントにおける特定のエンドポイントに対してデータの送信を行う任意の主サーバおよび拡張サーバがPCIeパケットに前記した特定のエンドポイントを表わす識別情報を挿入する。統合エンドポイントは、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成されている。2次共有メモリ格納ステップ42では、拡張サーバ側挿入ステップ41で前記した識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの自サーバに対応する2次共有メモリに格納する。PCIeパケット送信ステップ43では、2次共有メモリ格納ステップ42で前記した2次共有メモリのいずれかにPCIeパケットが格納されたとき前記した識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信する。   FIG. 4 shows a claim correspondence diagram of the data transfer method of the present invention. The data transfer method 40 of the present invention includes an extended server side insertion step 41, a secondary shared memory storage step 42, and a PCIe packet transmission step 43. Here, in the extended server side insertion step 41, any main server and extended server that transmit data to a specific endpoint in the integrated endpoint inserts identification information representing the specific endpoint described above into the PCIe packet. To do. The integrated endpoint is composed of a PCI proxy function unit as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers, and a plurality of endpoints. In the secondary shared memory storing step 42, the PCIe packet into which the identification information described above in the extended server side inserting step 41 is inserted is provided corresponding to each of the main server and the extended server, and data between these servers is provided. Are stored in the secondary shared memory corresponding to the own server among the plurality of secondary shared memories used for the individual transfer. In the PCIe packet transmission step 43, when the PCIe packet is stored in one of the secondary shared memories described in the secondary shared memory storage step 42, the identification information is read out and addressed to the endpoint determined from the identification information. A PCIe packet is transmitted.

<発明の実施の形態>   <Embodiment of the Invention>

次に本発明の実施の形態を説明する。   Next, an embodiment of the present invention will be described.

図5は、本発明の実施の形態によるエンドポイント共有システムを表わしたものである。このエンドポイント共有システム100は、第1および第2の統合エンドポイント1011、1012を備えている。また、エンドポイント共有システム100はACT(active)系サーバ群として第0−0のサーバ(Server#0−0)103と、第0−1のサーバ(Server#0−1)1041、およびSBY(standby)系サーバ群としての第1−0のサーバ(Server#1−0)105と、第1−1のサーバ(Server#1−1)1061を備えている。更にエンドポイント共有システム100は、記憶装置107を備えている。記憶装置107と、第0−0、第0−1、第1−0および第1−1の各サーバ103〜1061は、直接接続される他、LAN(Local Area Network)108を介して接続されている。第1の統合エンドポイント1011と、第0−0のサーバ103および第1−0のサーバ105は直接接続されている。第2の統合エンドポイント1012と、第0−0のサーバ103および第1−0のサーバ105も同様に直接接続されている。 FIG. 5 shows an endpoint sharing system according to an embodiment of the present invention. The endpoint sharing system 100 includes first and second integrated endpoints 101 1 and 101 2 . In addition, the endpoint sharing system 100 includes a 0-0 server (Server # 0-0) 103, a 0-1 server (Server # 0-1) 104 1 , and an SBY as an ACT (active) server group. It includes a first 1-0 server (server # 1-0) 105 as (standby) system server group, a 1-1 server (server # 1-1) 106 1. The endpoint sharing system 100 further includes a storage device 107. A storage device 107, a 0-0, a 0-1, each server 103 to 106 1 of the 1-0 and 1-1, in addition to being directly connected via a LAN (Local Area Network) 108 connected Has been. A first integrated endpoint 101 1, first 0-0 server 103 and the 1-0 server 105 is directly connected. A second integrated endpoint 101 2, first 0-0 server 103 and the 1-0 server 105 are also similarly connected directly.

第0−0のサーバ103および第1−0のサーバ105は、本明細書で主サーバと定義するもので、第1の統合エンドポイント1011における第0〜第Nのエンドポイント(EP#0〜EP#N)1110〜111Nへのアクセス機能を持っている。これに対して第0−1のサーバ1041および第1−1のサーバ1061は、本明細書で拡張サーバと定義するもので、第0〜第Nのエンドポイント(EP#0〜EP#N)1110〜111Nへのアクセス機能を持っていない。 The 0-0 server 103 and the 1-0 server 105 are defined as main servers in this specification. The 0th to Nth endpoints (EP # 0) of the first integrated endpoint 101 1 ~EP # N) have the ability to access 111 0 ~111 N. On the other hand, the 0-1st server 104 1 and the 1-1st server 106 1 are defined as extended servers in this specification, and the 0th to Nth endpoints (EP # 0 to EP #). N) Does not have an access function to 111 0 to 111 N.

本実施の形態ではACT系サーバ群の中に拡張サーバとして1台の第0−1のサーバ1041が配置され、SBY系サーバ群の中に拡張サーバとして1台の第1−1のサーバ1061が配置されている。ACT系サーバ群あるいはSBY系サーバ群に複数台ずつの拡張サーバが配置されるようになっていてもよい。 In the present embodiment, one 0-1 server 104 1 is arranged as an expansion server in the ACT server group, and one 1-1 server 106 is used as an expansion server in the SBY server group. 1 is arranged. A plurality of expansion servers may be arranged in the ACT server group or the SBY server group.

第0−0、第0−1、第1−0および第1−1の各サーバ103〜1061と第1および第2の統合エンドポイント1011、1012は、それぞれ物理的に分離されている。主サーバとしての第0−0のサーバ103と第1および第2の統合エンドポイント1011、1012の間、および同じく主サーバとしての第1−0のサーバ105と第1および第2の統合エンドポイント1011、1012の間は、PCIeケーブルを用いて接続されている。ここで「PCIe」は、「PCI(Peripheral Component Interconnect)Express」を略して表記したものである。 The 0-0, the 0-1, the 1-0 and 1-1 each server 103-106 1 and the first and second integrated endpoint 101 1, 101 2, are physically separated from each Yes. The first and second integrations between the 0-0 server 103 as the primary server and the first and second integration endpoints 101 1 , 101 2 , and also the 1-0 server 105 as the primary server The end points 101 1 and 101 2 are connected using a PCIe cable. Here, “PCIe” is an abbreviation of “PCI (Peripheral Component Interconnect) Express”.

主サーバとしての第0−0のサーバ103は、第1の統合エンドポイント1011とPCIeケーブルを用いて接続するためのPCIe NICカード(Network Interface Card)(PCIe NIC#001)121を実装している。また、第0−0のサーバ103は、第2の統合エンドポイント1012とPCIeケーブルを用いて接続するためのPCIe NICカード(PCIe NIC#002)122を実装している。更に第0−0のサーバ103は、第1および第2の統合エンドポイント1011、1012とのデータのやり取りを行うインタフェイスとしてPCIe NICカード(PCIe NIC#00E)123と、拡張サーバ間とのデータのやり取りに用いるPCIe NICカード(PCIe NIC#00S)124を有する。 The 0th to 0th servers 103 as the main servers are mounted with a PCIe NIC card (Network Interface Card) (PCIe NIC # 001) 121 for connection to the first integrated endpoint 101 1 using a PCIe cable. Yes. Further, the 0-0 server 103 implements a PCIe NIC card (PCIe NIC # 002) 122 for connecting with the second integrated endpoint 101 2 and PCIe cable. Further, the 0-0 server 103 includes a PCIe NIC card (PCIe NIC # 00E) 123 as an interface for exchanging data with the first and second integrated endpoints 101 1 and 101 2, and between the extended servers. PCIe NIC card (PCIe NIC # 00S) 124 used for data exchange.

同様に、主サーバとしての第1−0のサーバ105は、第1の統合エンドポイント1011とPCIeケーブルを用いて接続するためのPCIe NICカード(PCIe NIC#101)125を実装している。また、第1−0のサーバ105は、第2の統合エンドポイント1012とPCIeケーブルを用いて接続するためのPCIe NICカード(PCIe NIC#102)126を実装している。更に第1−0のサーバ105は、第1および第2の統合エンドポイント1011、1012とのデータのやり取りを行うインタフェイスとしてPCIe NICカード(PCIe NIC#10E)127と、拡張サーバ間とのデータのやり取りに用いるPCIe NICカード(PCIe NIC#10S)128を有する。 Similarly, the 1-0 server 105 as the main server implements a PCIe NIC card (PCIe NIC # 101) 125 for connecting with the first integrated endpoint 101 1 and PCIe cable. The server 105 of the 1-0 implements a PCIe NIC card (PCIe NIC # 102) 126 for connecting with the second integrated endpoint 101 2 and PCIe cable. Further, the 1-0 server 105 includes a PCIe NIC card (PCIe NIC # 10E) 127 as an interface for exchanging data with the first and second integrated endpoints 101 1 and 101 2, and between the extended servers. PCIe NIC card (PCIe NIC # 10S) 128 used for data exchange.

一方、拡張サーバとしての第0−1および第1−1のサーバ1041、1061は記憶装置107と接続するために、1系統のPCIe NICカードを有する。すなわち第0−1のサーバ1041は、サーバ間のデータのやり取りに用いるPCIe NICカード(PCIe NIC#01S)131を有する。第1−1のサーバ1061は、サーバ間のデータのやり取りに用いるPCIe NICカード(PCIe NIC#11S)132を有する。 On the other hand, the 0-1st and 1-1st servers 104 1 , 106 1 as expansion servers have a single system NIC NIC card for connection to the storage device 107. That is, the 0-1st server 104 1 has a PCIe NIC card (PCIe NIC # 01S) 131 used for data exchange between servers. The first-first server 106 1 includes a PCIe NIC card (PCIe NIC # 11S) 132 used for data exchange between servers.

次に第1および第2の統合エンドポイント1011、1012について説明する。ただし第2の統合エンドポイント1012は第1の統合エンドポイント1011と同一の構成となっているので、その具体的な構成の図示および説明は省略する。 Next, the first and second integrated endpoints 101 1 and 101 2 will be described. However, since the second integrated endpoint 101 2 has the same configuration as the first integrated endpoint 101 1 , the illustration and description of the specific configuration are omitted.

第1の統合エンドポイント1011は、前記した第0〜第Nのエンドポイント(EP#0〜EP#N)1110〜111NとPCIプロシキ(Proxy)機能部141によって構成されている。PCIプロシキ機能部141と第0〜第Nのエンドポイント1110〜111Nの間は、それぞれPCIeバスを用いて接続されている。 The first integrated endpoint 101 1 includes the above-described 0th to Nth endpoints (EP # 0 to EP # N) 111 0 to 111 N and a PCI proxy function unit 141. The PCI proxy function unit 141 and the 0th to Nth end points 111 0 to 111 N are connected using a PCIe bus.

PCIプロシキ機能部141は、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部である。PCIプロシキ機能部141は、図示しないがCPUと、このCPUが実行する制御プログラムを格納した同じく図示しないROM(Read Only Memory)等の記録媒体を有しており、次の各部を備えている。   The PCI proxy function unit 141 is a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers. The PCI proxy function unit 141 includes a CPU (not shown) and a recording medium such as a ROM (Read Only Memory) (not shown) that stores a control program executed by the CPU, and includes the following units.

(a)第0のポート1510
第0−0のサーバ103とピーシーアイエクスプレスケーブル161を介して接続される。
(b)第1のポート1511
第1−0のサーバ105とピーシーアイエクスプレスケーブル162を介して接続される。
(c)ACT(active)・SBY(standby)選択機能部152
第0−0のサーバ103および第0−1のサーバ1041からなるACT系サーバ群と、第1−0のサーバ105と、第1−1のサーバ1061からなるSBY系サーバ群の一方をACT(現用)系に、他方をSBY(待機)系に選択する。
(d)第0の仮想PCIeコンフィグ(Configuration)レジスタ1540
各エンドポイント111のピーシーアイエクスプレスコンフィグレジスタ情報を格納する。
(e)第1の仮想PCIeコンフィグ(Configuration)レジスタ1541
各エンドポイント111のピーシーアイエクスプレスコンフィグレジスタ情報を格納する。
(f)コンフィグ(Configuration)制御部155
第0の仮想PCIeコンフィグレジスタ1540および第1の仮想PCIeコンフィグレジスタ1541を管理する。
(g)アドレス変換テーブル156
ACT系サーバ群とSBY系サーバ群のメモリ空間の差分情報としてのアドレス空間差分情報を保持する。
(h)アドレス変換部157
ACT系サーバ群とSBY系サーバ群のメモリ空間へのアクセスが同一のアドレスになるように、アドレスを変換する。
(i)アドレス変換・振り分け機能部158
ACT系サーバ群とSBY系サーバ群のうちのACT系のサーバと接続されたポートとの間でピーシーアイエクスプレスパケットを振り分ける。
(j)第0〜第NのPCIeポート(Port)1590〜159N
第0〜第Nのエンドポイント1110〜111Nをそれぞれ対応して接続する。
(A) 0th port 151 0
It is connected to the 0th-0th server 103 via the PC Express cable 161.
(B) First port 151 1
The first 1-0 server 105 is connected to the PC Express cable 162.
(C) ACT (active) / SBY (standby) selection function unit 152
And ACT-based server group consisting server 104 1 of the first 0-0 server 103 and the 0-1, the server 105 of the 1-0, one of the SBY system server group consisting of 1-1 server 106 1 The ACT (active) system is selected and the other is selected as the SBY (standby) system.
(D) 0th virtual PCIe configuration register 154 0
PC i Express Config register information of each end point 111 is stored.
(E) First virtual PCIe configuration register 154 1
PC i Express Config register information of each end point 111 is stored.
(F) Configuration control unit 155
Zeroth managing virtual PCIe configuration registers 154 0 and the first virtual PCIe configuration register 154 1.
(G) Address conversion table 156
Address space difference information is held as difference information of the memory space between the ACT server group and the SBY server group.
(H) Address conversion unit 157
The address is converted so that the access to the memory space of the ACT server group and the SBY server group is the same address.
(I) Address conversion / distribution function unit 158
PC iExpress packets are distributed between the ACT server group and the port connected to the ACT server in the SBY server group.
(J) 0th to Nth PCIe ports (Port) 159 0 to 159 N
The 0th to Nth end points 111 0 to 111 N are connected correspondingly.

PCIプロシキ機能部141を更に具体的に説明する。第0のポート1510および第1のポート1511は、ピーシーアイエクスプレスパケットで転送されるACT制御信号を識別する。そして、ACT切替指示がACT系サーバ群もしくはSBY系サーバ群から送付された場合には、ACT・SBY選択機能部152に対してACT・SBY切替指示を出す。ACT・SBY選択機能部152は、アドレス変換・振り分け機能部158に対して、ACT系のサーバがACT系サーバ群もしくはSBY系サーバ群を示す信号を送出する。アドレス変換・振り分け機能部158は、ACT系のサーバと接続されたポートとの接続を維持し、SBY系のポートとのデータを交換しない。 The PCI proxy function unit 141 will be described more specifically. The 0th port 151 0 and the first port 151 1 identify the ACT control signal transferred in the PC Express packet. When an ACT switching instruction is sent from an ACT server group or an SBY server group, an ACT / SBY switching instruction is issued to the ACT / SBY selection function unit 152. In the ACT / SBY selection function unit 152, the ACT server sends a signal indicating the ACT server group or the SBY server group to the address conversion / distribution function unit 158. The address translation / distribution function unit 158 maintains the connection with the port connected to the ACT system server and does not exchange data with the SBY system port.

コンフィグ制御部155は、第0〜第Nのエンドポイント1110〜111Nが保持する、ピーシーアイエクスプレスコンフィグレーションレジスタ(図示せず)を制御する機能を有する。また、第0の仮想PCIeコンフィグ(Configuration)レジスタ1540および第1の仮想PCIeコンフィグ(Configuration)レジスタ1541に対して、各エンドポイント111のピーシーアイエクスプレスコンフィグレジスタ情報の内容を反映させる機能を有する。ACT系サーバ群とSBY系サーバ群は、第0の仮想PCIeコンフィグレジスタ1540および第1の仮想PCIeコンフィグレジスタ1541に対して、ピーシーアイエクスプレスコンフィグレーション情報のリード(Read)およびライト(Write)を行う。このため、第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061から各エンドポイント111のピーシーアイエクスプレスコンフィグレジスタレジスタが直接制御されることはない。各エンドポイント111のピーシーアイエクスプレスコンフィグレジスタレジスタは、コンフィグ制御部155を経由してアクセスする。 The configuration control unit 155 has a function of controlling a PC eye express configuration register (not shown) held by the 0th to Nth end points 111 0 to 111 N. Further, with respect to the virtual PCIe configuration (Configuration) register 154 1 virtual PCIe configuration (Configuration) register 154 0 and the first of the 0 has a function to reflect the contents of the CPC's eye Express configuration registers information for each endpoint 111 . ACT-based servers and the SBY system server group, the 0th virtual respect PCIe configuration registers 154 0 and the first virtual PCIe configuration register 154 1, CPC eye Express configuration information read (Read) and write (Write) I do. Therefore, the PC Express configuration register register of each endpoint 111 is directly set from the 0-0 server 103, the 0-1 server 104 1 , the 1-0 server 105, and the 1-1 server 106 1. There is no control. The PC Express configuration register register of each end point 111 is accessed via the configuration control unit 155.

また、コンフィグ制御部155は、第0の仮想PCIeコンフィグレジスタ1540および第1の仮想PCIeコンフィグレジスタ1541に設定されたピーシーアイエクスプレスコンフィグレーションレジスタ情報から、ACT系サーバ群とSBY系サーバ群が保持しているピーシーアイエクスプレスメモリ空間マップ情報を取得する。そして、第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061がメモリ空間上に各エンドポイント111をどのように配置したかを認識する。差分がある場合には、ACT系サーバ群のメモリ空間に対して、SBY系サーバ群のメモリ空間の差分を計算し、得られた差分情報をアドレス変換テーブル156に転送する。 Further, configuration controller 155, from the 0 virtual PCIe configuration registers 154 0 and the first virtual PCIe configuration register 154 1 CPC eye Express configuration register information set to the, ACT-based servers and the SBY system server group The PC Eye Express memory space map information held is acquired. Then, how the 0-th server 103, the 0-1 server 104 1 , the 1-0 server 105, and the 1-1 server 106 1 arrange each endpoint 111 in the memory space. Recognize. If there is a difference, the difference of the memory space of the SBY server group is calculated for the memory space of the ACT server group, and the obtained difference information is transferred to the address conversion table 156.

アドレス変換部157は、アドレス変換テーブル156から送信されるACT系サーバ群とSBY系サーバ群についてのアドレス空間差分情報を取得する。そして、SBY系サーバ群のメモリ空間へのアクセスをACT系サーバ群のメモリ空間へのアクセスと同一のアドレスになるように、アドレス変換処理を実施する。また、SBY系サーバ群と各エンドポイント111の間でのアクセスの際に、ピーシーアイエクスプレスパケットを交換する。   The address conversion unit 157 acquires address space difference information for the ACT server group and the SBY server group transmitted from the address conversion table 156. Then, an address conversion process is performed so that the access to the memory space of the SBY server group has the same address as the access to the memory space of the ACT server group. Further, when accessing between the SBY server group and each of the end points 111, PC iExpress packets are exchanged.

アドレス変換・振り分け機能部158は、各エンドポイント111に対するピーシーアイエクスプレスパケットの振り分けを、ピーシーアイエクスプレスパケットヘッダ内に格納されたアドレス情報を基にして実施する。各エンドポイント111からサーバ方向に流れるパケットは、ACT・SBY選択機能部152から送信されるACT情報を基にして、ACT系サーバ群と接続されたポート方向にのみにパケットを送信する。   The address conversion / distribution function unit 158 distributes the PC-Express packet to each endpoint 111 based on the address information stored in the PC-Express packet header. A packet that flows from each end point 111 in the server direction transmits the packet only in the port direction connected to the ACT server group based on the ACT information transmitted from the ACT / SBY selection function unit 152.

次に、記憶装置107について説明する。記憶装置107は、LAN108を介して第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061と接続されている。これにより、記憶装置107に格納されたデータを、第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061が共有可能となる。 Next, the storage device 107 will be described. The storage device 107 is connected to the 0-0 server 103, the 0-1 server 104 1 , the 1-0 server 105, and the 1-1 server 106 1 via the LAN. As a result, the data stored in the storage device 107 can be shared by the 0-0 server 103, the 0-1 server 104 1 , the 1-0 server 105, and the 1-1 server 106 1. Become.

本実施の形態の記憶装置107は、DRAM(Dynamic Random Access Memory)、FRAM(FeRAM)等の汎用の半導体メモリを用いる。また、第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061と記憶装置107の間のデータ転送にはPCIeを用いる。これらの部品、データ転送規格は、汎用品および標準化された規格であり、安価に市場に出回っているものを使用可能である。 The storage device 107 according to the present embodiment uses a general-purpose semiconductor memory such as a DRAM (Dynamic Random Access Memory) and an FRAM (FeRAM). PCIe is used for data transfer between the 0-0 server 103, the 0-1 server 104 1 , the 1-0 server 105, the 1-1 server 106 1, and the storage device 107. These parts and data transfer standards are general-purpose products and standardized ones that are available on the market at a low cost.

第0〜第Nのエンドポイント1110〜111Nにアクセス可能なサーバは、第0−0のサーバ103および第1−0のサーバ105のみである。第0−1のサーバ1041および第1−1のサーバ1061がエンドポイント111にアクセスする場合には、対象となるデータを記憶装置107に一旦転送する。そして、第0−0のサーバ103あるいは第1−0のサーバ105のうちの該当するものを経由してエンドポイント111にアクセスを実施する。 Only the 0-0 server 103 and the 1-0 server 105 are accessible to the 0th to Nth endpoints 111 0 to 111 N. When the 0-1st server 104 1 and the 1-1st server 106 1 access the endpoint 111, the target data is once transferred to the storage device 107. Then, the endpoint 111 is accessed via the corresponding one of the 0-0 server 103 or the 1-0 server 105.

<動作説明>
次に、以上のような構成のエンドポイント共有システム100の動作を説明する。
<Description of operation>
Next, the operation of the endpoint sharing system 100 configured as described above will be described.

第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061は、図示しないがCPUを搭載している。これらのサーバに搭載されたCPUから第0〜第Nのエンドポイント1110〜111Nに対するピーシーアイエクスプレスアクセスは、大別すると、ピーシーアイエクスプレスコンフィグレーションレジスタ(コンフィグレジスタ)へのアクセスと、実データのアクセスの2種類が存在する。本実施の形態のエンドポイント共有システム100では、ピーシーアイエクスプレスコンフィグレーションレジスタへのアクセスはコンフィグ制御部155が中心となって処理を実行する。また、実データのアクセスは、アドレス変換部157と、アドレス変換・振り分け機能部158が中心となって、これらの処理を実行する。エンドポイント共有システム100では、ピーシーアイエクスプレスコンフィグレーションレジスタへのアクセスを、電源投入時に実行する。ピーシーアイエクスプレスコンフィグレーションレジスタが一旦設定された後は、第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061に切り替えが発生しても設定変更が行われない。 The 0-0 server 103, the 0-1 server 104 1 , the 1-0 server 105, and the 1-1 server 106 1 are each equipped with a CPU (not shown). PC Eye Express access from the CPU mounted on these servers to the 0th to Nth endpoints 111 0 to 111 N is roughly divided into access to the PC Eye Express configuration register (configuration register) and actual data. There are two types of access. In the endpoint sharing system 100 according to the present embodiment, the configuration control unit 155 performs processing for access to the PC express configuration register. Further, the actual data access is executed by the address conversion unit 157 and the address conversion / distribution function unit 158 as the center. In the endpoint sharing system 100, access to the PC Express configuration register is executed when the power is turned on. After the PC Express configuration register is once set, switching to the 0-0 server 103, the 0-1 server 104 1 , the 1-0 server 105, and the 1-1 server 106 1 is performed. Even if it occurs, the setting is not changed.

<コンフィグレーション処理>   <Configuration processing>

図6は、サーバの電源投入後のアドレス変換テーブル作成までのコンフィグレーション処理の様子を示したものである。図5と共に説明する。   FIG. 6 shows how the configuration process is performed until the address conversion table is created after the server is turned on. This will be described with reference to FIG.

エンドポイント111へのコンフィグレーションを行うのは、第0−0のサーバ103と第1−0のサーバ105である。汎用サーバでは、その電源投入直後に、ピーシーアイエクスプレスバス配下のエンドポイントを検索し、PCIメモリ空間上にエンドポイントのマッピングを行う。本実施の形態のエンドポイント共有システム100では、第1の統合エンドポイント1011が第0−0のサーバ103(「Server#0−0)と第1−0のサーバ105(Server#1−0)からのピーシーアイエクスプレスコンフィグレジスタへのアクセスに対して、代理で応答する機能を有する。これにより、第0−0のサーバ103あるいは第1−0のサーバ105が第0〜第Nのエンドポイント1110〜111Nをメモリ空間上にマッピングすることを可能にする。 It is the 0-0 server 103 and the 1-0 server 105 that configure the endpoint 111. In the general-purpose server, immediately after the power is turned on, the endpoint under the PC Express bus is searched and the endpoint is mapped on the PCI memory space. In the endpoint sharing system 100 of the present embodiment, the first integrated endpoint 101 1 is the 0-0 server 103 (“Server # 0-0”) and the 1-0 server 105 (Server # 1-0). The proxy server responds to the access to the PC express configuration register by proxy, so that the 0-0 server 103 or the 1-0 server 105 has the 0th to Nth endpoints. It is possible to map 111 0 to 111 N on the memory space.

これを具体的に説明する。図6に示すように第0−0のサーバ103と第1−0のサーバ105の電源がある時刻t1にオン(On)になったとする。コンフィグ制御部155は、第1の統合エンドポイント1011に接続された第0〜第Nのエンドポイント1110〜111Nのピーシーアイエクスプレスコンフィグレーション空間を、第0−0のサーバ103あるいは第1−0のサーバ105に代わってリード(Read)する(ステップS201)。図6では、第Xのエンドポイント111Xを「EP#X」(ただし、Xは0〜Nの間の任意の整数。)と簡略化して表記している。以下の図でも同様である。 This will be specifically described. As shown in FIG. 6, it is assumed that the powers of the 0-0 server 103 and the 1-0 server 105 are turned on at time t 1 . The configuration control unit 155 transmits the PC Express configuration space of the 0th to Nth endpoints 111 0 to 111 N connected to the first integrated endpoint 101 1 to the 0-0 server 103 or the first Read in place of the server 105 of −0 (step S201). In FIG. 6, the Xth end point 111 X is simply expressed as “EP # X” (where X is an arbitrary integer between 0 and N). The same applies to the following figures.

図6に示した例では、まず時刻t2に第0のエンドポイント1110(「EP#0」)がリードされ、続いて第1のエンドポイント1111(「EP#1」)がリードされる。以下同様にして、第Nのエンドポイント111N(「EP#N」)までリードが実行される。 In the example shown in FIG. 6, first, the 0th endpoint 111 0 (“EP # 0”) is read at time t 2 , and then the first endpoint 111 1 (“EP # 1”) is read. The Similarly, the reading is executed up to the N-th endpoint 111 N (“EP # N”).

コンフィグ制御部155は、このステップS201によるリードした結果を、第0および第1の仮想PCIeコンフィグレジスタ1540、1541に反映させる。これにより、第0−0のサーバ103と第1−0のサーバ105が、第0〜第Nのエンドポイント1110〜111Nのピーシーアイエクスプレスコンフィグレーションレジスタの内容を、コンフィグ制御部155経由でリードすることが可能になる。 The configuration control unit 155 reflects the result read in step S201 in the 0th and 1st virtual PCIe configuration registers 154 0 and 154 1 . Thus, the 0-0 server 103 and the 1-0 server 105 send the contents of the PC express configuration registers of the 0th to Nth endpoints 111 0 to 111 N via the configuration control unit 155. It becomes possible to lead.

ところで、時刻t1の電源投入時にACT(active)系サーバ群が現用系に設定されているとする。また、これを基にして第Nのエンドポイント111N(「EP#N」)までのリードが終了した後の時刻t3に第0のポート1510がACTの状態で、第1のポート1511がSBYの状態であるとする。時刻t3以後における第0−0のサーバ103と第1の統合エンドポイント1011の間でのコンフィグレーションデータの処理の様子を、図6ではステップS202として一括して示している。また、図6では、この場合における第1−0のサーバ105と第1の統合エンドポイント1011の間でのコンフィグレーションデータの処理の様子を、ステップS203として一括して示している。 By the way, it is assumed that the ACT (active) server group is set to the active system when the power is turned on at time t 1 . Further, this basis the N endpoint 111 N ( "EP # N") to the time t 3 after the previous read is finished in the state of the port 151 0 of the 0 ACT, the first port 151 Assume that 1 is in the SBY state. FIG. 6 collectively shows a state of processing of configuration data between the 0-0 server 103 and the first integrated endpoint 101 1 after time t 3 as step S202. Further, in FIG. 6, the state of processing of the configuration data between the server 105 of the 1-0 in the case of the first integrated endpoint 101 1 shows collectively as step S203.

最初に、ACT系の第0−0のサーバ103と第1の統合エンドポイント1011の間で行われるステップS202の処理について説明する。第0−0のサーバ103は、まず第0の仮想PCIeコンフィグレジスタ1540に格納された第0のエンドポイント1110(「EP#0」)の内容をリードし、第0のエンドポイント1110に書き込むコンフィグレーションデータを第0の仮想PCIeコンフィグレジスタ1540にライトする。コンフィグ制御部155は、第0−0のサーバ103から第0の仮想PCIeコンフィグレジスタ1540にデータがライトされると、このコンフィグレーションデータを第0のPCIeポート1590を経由して、第0のエンドポイント1110に対してライトを実施する。この第0のエンドポイント1110のピーシーアイエクスプレスコンフィグレーションレジスタへのライトは、図6で時刻t4に行われている。 First, the process of step S202 performed between the ACT 0-0 server 103 and the first integrated endpoint 101 1 will be described. The 0-0 server 103 first reads the contents of the 0th endpoint 111 0 (“EP # 0”) stored in the 0th virtual PCIe configuration register 154 0 , and the 0th endpoint 111 0. to write the configuration data to the virtual PCIe configuration register 154 0 of the 0 to be written to. Configuration control unit 155, the data from the first 0-0 server 103 to the virtual PCIe configuration register 154 0 of the 0 is written, the configuration data via the PCIe ports 159 0 of the zeroth, first 0 implementing the writing to the endpoint 111 0. Writing to the 0th endpoint 111 0 CPC eye Express configuration registers of it is made at time t 4 in FIG.

同様に、第0−0のサーバ103は、第0の仮想PCIeコンフィグレジスタ1540に格納された第1のエンドポイント1111(「EP#1」)の内容をリードし、第1のエンドポイント1111に書き込むコンフィグレーションデータを第0の仮想PCIeコンフィグレジスタ1540にライトする。コンフィグ制御部155は、第0−0のサーバ103から第0の仮想PCIeコンフィグレジスタ1540にデータがライトされると、このコンフィグレーションデータを第1のPCIeポート1591を経由して、第1のエンドポイント1111に対してライトを実施する。 Similarly, the 0th-0th server 103 reads the content of the first endpoint 111 1 (“EP # 1”) stored in the 0th virtual PCIe configuration register 1540, and the first endpoint The configuration data to be written to 111 1 is written to the 0th virtual PCIe configuration register 154 0 . Configuration control unit 155, the data from the first 0-0 server 103 to the virtual PCIe configuration register 154 0 of the 0 is written, the configuration data via the first PCIe ports 159 1, the first The end point 111 1 is written .

以下同様にして、第0−0のサーバ103は、第0の仮想PCIeコンフィグレジスタ1540に格納された第2のエンドポイント1112(「EP#2」(図示せず))以降の処理を順に行う。そして、第0の仮想PCIeコンフィグレジスタ1540に格納された第Nのエンドポイント111N(「EP#N」)の内容をリードすると、第Nのエンドポイントに書き込むコンフィグレーションデータを第0の仮想PCIeコンフィグレジスタ1540にライトする。コンフィグ制御部155は、第0−0のサーバ103から第0の仮想PCIeコンフィグレジスタ1540にデータがライトされると、このコンフィグレーションデータを第NのPCIeポート159Nを経由して、第Nのエンドポイント111Nに対してライトを実施する。 In the same manner, the 0-0 server 103 performs the processing after the second endpoint 111 2 (“EP # 2” (not shown)) stored in the 0th virtual PCIe configuration register 1540. Do in order. When reading the contents of the 0th virtual PCIe configuration register 154 0 stored in the first N endpoint 111 N ( "EP # N"), the virtual configuration data to be written to the endpoint of the first N of the 0 writing to the PCIe configuration register 154 0. Configuration control unit 155, the data from the first 0-0 server 103 to the virtual PCIe configuration register 154 0 of the 0 is written, the configuration data via the PCIe ports 159 N of the N, N-th Write to the end point 111 N of this.

次に、SBY系の第1−0のサーバ105と第1の統合エンドポイント1011の間で行われるステップS203の処理について説明する。第1−0のサーバ105は、まず第1の仮想PCIeコンフィグレジスタ1541に格納された第0のエンドポイント1110(「EP#0」)の内容をリードし、第0のエンドポイントに書き込むコンフィグレーションデータを第1の仮想PCIeコンフィグレジスタ1541にライトする。しかしながら、この場合、コンフィグ制御部155は、代理で第0のエンドポイント1110に対してライトを実施することはない。 Next, a description is given of processing of step S203 which is performed between the first 1-0 server 105 of the SBY side of the first integrated endpoint 101 1. The 1-0 server 105 first reads the content of the 0th endpoint 111 0 (“EP # 0”) stored in the first virtual PCIe configuration register 1541 and writes it to the 0th endpoint. to write the configuration data to the first virtual PCIe configuration register 154 1. However, in this case, configuration control unit 155 is not performing a write to the end point 111 0 of the 0th behalf.

以下同様にして、第1−0のサーバ105は、第1の仮想PCIeコンフィグレジスタ1540に格納された第1のエンドポイント1111(「EP#1」)以降の処理を順に行う。そして、第1の仮想PCIeコンフィグレジスタ1541に格納された第Nのエンドポイント111N(「EP#N」)の内容をリードすると、第Nのエンドポイントに書き込むコンフィグレーションデータを第1の仮想PCIeコンフィグレジスタ1541にライトする。しかしながら、この場合も、コンフィグ制御部155は、代理で第Nのエンドポイント111Nに対してライトを実施することはない。 In the same manner, the server 105 of the 1-0 performs the first endpoint 111 1 ( "EP # 1") and the subsequent processing stored in the first virtual PCIe configuration register 154 0 in order. When reading the contents of the first virtual PCIe configuration register 154 endpoint of the N stored in 1 111 N ( "EP # N"), the configuration data to be written to the endpoint of the N first virtual to write to the PCIe configuration register 154 1. However, in this case as well, the configuration control unit 155 does not write to the Nth endpoint 111 N on behalf of the proxy.

以上説明したように、電源投入後は、第0−0のサーバ103が現用系サーバとして固定されている。この状態で、第1の統合エンドポイント1011は、第0−0のサーバ103からのピーシーアイエクスプレスコンフィグレーションに対するリードおよびライト処理のみ、第0〜第Nのエンドポイント1110〜111Nに反映させる(ステップS202)。待機系サーバである第1−0のサーバ105からのアクセスについては、第1の統合エンドポイント1011内部でデータを保持し、第0〜第Nのエンドポイント1110〜111Nへの反映は実施しない(ステップS203)。 As described above, after power-on, the 0-0 server 103 is fixed as the active server. In this state, the first integrated endpoint 101 1 reflects only the read and write processing for the PC Express configuration from the 0-0 server 103 to the 0th to Nth endpoints 111 0 to 111 N. (Step S202). As for access from the 1st- 0th server 105 which is the standby server, the data is held inside the first integrated endpoint 101 1 and reflected to the 0th to Nth endpoints 111 0 to 111 N Not implemented (step S203).

ところで、第1−0のサーバ105によるピーシーアイエクスプレスコンフィグレーションレジスタの設定内容は、第0−0のサーバ103によるコンフィグレーションレジスタの設定内容と異なる値に設定される場合がある。このため、コンフィグ制御部155では、第0−0のサーバ103と第1−0のサーバ105の双方のピーシーアイエクスプレスコンフィグレーションレジスタの設定値を保持するようになっている。   By the way, the setting contents of the PC Express configuration register by the 1-0 server 105 may be set to a value different from the setting contents of the configuration register by the 0-0 server 103. For this reason, the configuration control unit 155 holds the setting values of the PC express configuration registers of both the 0-0 server 103 and the 1-0 server 105.

一方、コンフィグ制御部155では、電源投入後に得られた各サーバのピーシーアイエクスプレスコンフィグレーションレジスタ情報に含まれるベースアドレス(Base Address)の値を基にして、アドレス変換テーブル156の作成を実施する(ステップS204)。これは、第0〜第Nのエンドポイント1110〜111Nに第0−0のサーバ103あるいは第1−0のサーバ105がアクセスする際に、ベースアドレスが異ならないようにするためである。 On the other hand, the configuration control unit 155 creates the address conversion table 156 based on the value of the base address (Base Address) included in the PC express configuration register information of each server obtained after power-on ( Step S204). This is to prevent the base address from differing when the 0-0th server 103 or the 1-0 server 105 accesses the 0th to Nth end points 111 0 to 111 N.

図7はベースアドレスの概念を説明するためのものである。第0−0のサーバ103および第1−0のサーバ105は、すでに説明したようにこれらの電源の投入によって第0〜第Nのエンドポイント1110〜111Nを認識する。そして、これら第0〜第Nのエンドポイント1110〜111Nに対してピーシーアイエクスプレスコンフィグレーションレジスタの設定を実施する。コンフィグレーション処理が終了したら、第0−0のサーバ103および第1−0のサーバ105は独立してPCIeメモリ空間170、171を作成する(ステップS221、ステップS222)。 FIG. 7 is for explaining the concept of the base address. As described above, the 0-0th server 103 and the 1-0th server 105 recognize the 0th to Nth endpoints 111 0 to 111 N when the power is turned on. Then, the PC Express configuration register is set for the 0th to Nth end points 111 0 to 111 N. When the configuration process is completed, the 0-0 server 103 and the 1-0 server 105 independently create PCIe memory spaces 170 and 171 (steps S221 and S222).

第0−0のサーバ103および第1−0のサーバ105は、すでに説明したように第0〜第Nのエンドポイント1110〜111Nに対して直接アクセスすることができない。そこで、第1の統合エンドポイント1011内の第0および第1の仮想PCIeコンフィグレジスタ1540、1541を用いてコンフィグ制御部155を介することで、第0〜第Nのエンドポイント1110〜111Nへのアクセスを実施する。このため、仮想PCIeコンフィグレジスタ1540、1541の内部には、各エンドポイント111のコンフィグレーションレジスタと同一の構成のレジスタ(「EP#0_config」、「EP#1_config」、……、「EP#N_config」)180、181が存在する。第0−0のサーバ103および第1−0のサーバ105は、仮想PCIeコンフィグレジスタ1540、1541にアクセスを実施する。 The 0-0th server 103 and the 1-0th server 105 cannot directly access the 0th to Nth endpoints 111 0 to 111 N as described above. Therefore, by passing through the first integration zeroth and first endpoint 101 1 virtual PCIe configuration register 154 0, 154 1 configuration controller 155 using endpoint 111 0 of 0th N Access to 111 N. Therefore, in the virtual PCIe configuration registers 154 0 and 154 1 , registers having the same configuration as the configuration register of each endpoint 111 (“EP # 0_config”, “EP # 1_config”,..., “EP #” N_config ") 180, 181 exist. The 0-0th server 103 and the 1-0th server 105 access the virtual PCIe configuration registers 154 0 , 154 1 .

コンフィグ制御部155は、第0−0のサーバ103および第1−0のサーバ105のピーシーアイエクスプレスコンフィグレーション空間の情報を取得した後、各エンドポイント1111〜111Nのマッピング情報について、第0−0のサーバ103と第1−0のサーバ105の設定値の差分を算出する。これについては、次の図8のステップS223として説明する。 After acquiring the PC Express configuration space information of the 0-0 server 103 and the 1-0 server 105, the configuration control unit 155 determines the 0th mapping information for each of the end points 111 1 to 111 N. The difference between the set values of the −0 server 103 and the 1-0 server 105 is calculated. This will be described as step S223 in FIG.

図8は、ACT系サーバ群と、SBY系サーバ群のメモリ空間を対比したものである。図5および図7と共に説明する。   FIG. 8 compares the memory space of the ACT server group and the SBY server group. This will be described with reference to FIGS. 5 and 7.

ACT系サーバ群のPCIeメモリ空間170とSBY系サーバ群のPCIeメモリ空間171を比較する。すると、前記したACT系サーバ群とSBY系サーバ群の設定値の差分の算出結果より、SBY系サーバ群のPCIeメモリ空間171の方が各エンドポイント111のベースアドレスに関して「0x0001_0000」ずつプラスされた値となっていることが分かる。したがって、コンフィグ制御部155は、第1−0のサーバ105が各エンドポイント111をアクセスする状態になったとき、アドレス変換テーブル156で、各エンドポイント111について、ベースアドレスを「0x0001_0000」だけ引いた値を設定すればよい。   The PCIe memory space 170 of the ACT server group is compared with the PCIe memory space 171 of the SBY server group. Then, from the calculation result of the difference between the setting values of the ACT server group and the SBY server group, the PCIe memory space 171 of the SBY server group is incremented by “0x0001_0000” with respect to the base address of each endpoint 111. It turns out that it is a value. Therefore, the configuration control unit 155 subtracts the base address by “0x0001 — 0000” for each endpoint 111 in the address conversion table 156 when the 1st-0th server 105 enters the state of accessing each endpoint 111. A value should be set.

図7に再び戻って説明を続ける。アドレス変換部157では、第1−0のサーバ105と第0〜第Nのエンドポイント1110〜111Nの間で通信が行われる際に、ピーシーアイエクスプレスパケットのヘッダ部分に格納されたアドレス情報から、「0x0001_0000」を引いた値に変更する。この変更後のアドレス情報でアクセスすることで、第0〜第Nのエンドポイント1110〜111Nに設定された、ベースアドレスを基にしたアドレス空間と矛盾が生じないアクセスを、第1−0のサーバ105に提供することが可能になる。 Returning to FIG. 7 again, the description will be continued. In the address conversion unit 157, the address information stored in the header portion of the PC-Express packet when communication is performed between the 1-0 server 105 and the 0th to Nth endpoints 111 0 to 111 N Is changed to a value obtained by subtracting “0x0001 — 0000”. By accessing with the address information after this change, the access that does not contradict the address space based on the base address set in the 0th to Nth endpoints 111 0 to 111 N is performed. The server 105 can be provided.

なお、図7に示したPCIeコンフィグレーションレジスタ1631〜163N(「EP#0_config」〜「EP#N_config」)は、本来、第0〜第Nのエンドポイント1110〜111Nごとに実装されるレジスタである。したがって、これらのPCIeコンフィグレーションレジスタ1631〜163Nは、本来、ACT系サーバ群とSBY系サーバ群にそれぞれ実装されたCPUから直接制御されるべきである。しかしながら、第1の統合エンドポイント1011を用いた本実施の形態のエンドポイント共有システム100では、コンフィグ制御部155が代理で制御を行う機能を持っている。そこで、ACT系サーバ群とSBY系サーバ群の持つピーシーアイエクスプレスメモリ空間の差分をエンドポイント111に対して隠蔽することで、第0−0のサーバ103と第1−0のサーバ105の双方からアクセスが可能になるようにしている。 Note that the PCIe configuration registers 163 1 to 163 N (“EP # 0_config” to “EP # N_config”) illustrated in FIG. 7 are originally mounted for each of the 0th to Nth endpoints 111 0 to 111 N. Register. Therefore, these PCIe configuration registers 163 1 to 163 N should be directly controlled by CPUs originally mounted on the ACT server group and the SBY server group, respectively. However, in the endpoint sharing system 100 of the present embodiment using the first integrated endpoint 1011, the configuration control unit 155 has a function of performing control by proxy. Therefore, by concealing the PC Express memory space difference between the ACT server group and the SBY server group from the endpoint 111, both the 0-0 server 103 and the 1-0 server 105 can conceal. Access is made possible.

<データ転送処理>   <Data transfer processing>

ACT系サーバ群と第0〜第Nのエンドポイント1110〜111Nの間のデータ転送のためのアクセス時には、PCIプロシキ機能部141でのアドレス変換処理が発生しない。この場合のデータのリードおよびライトの処理を次に説明する。 At the time of access for data transfer between the ACT server group and the 0th to Nth endpoints 111 0 to 111 N , the address conversion process in the PCI proxy function unit 141 does not occur. Data read and write processing in this case will be described next.

図9は、ACT系サーバ群を構成する第0−0のサーバによるデータのリードおよびライトの処理を表わしたものである。図5と共に説明する。   FIG. 9 shows data read and write processing by the 0-0 servers constituting the ACT server group. This will be described with reference to FIG.

ACT系サーバ群から第0〜第Nのエンドポイント1110〜111Nへのアクセスについては、第0の仮想PCIeコンフィグレジスタ1540に設定されたベースアドレス情報を基にして、該当するエンドポイントが接続されたポートに振り分ける。具体的には、ピーシーアイエクスプレスパケットのヘッダ情報に含まれるアドレス情報を基にして、アドレス変換・振り分け機能部158がアクセス先のエンドポイント111を判断する。そして、該当するエンドポイント111が接続されたポート(第0〜第NのPCIeポート1590〜159N)に対して振分けを実施する。 For access from the ACT server group to the 0th to Nth endpoints 111 0 to 111 N , the corresponding endpoint is based on the base address information set in the 0th virtual PCIe configuration register 154 0. Sort to connected ports. Specifically, based on the address information included in the header information of the PC-I express packet, the address translation / distribution function unit 158 determines the access destination end point 111. Then, the distribution is performed on the ports ( 0th to Nth PCIe ports 159 0 to 159 N ) to which the corresponding endpoint 111 is connected.

また、第0〜第Nのエンドポイント1110〜111NからACT系サーバ群あるいはSBY系サーバ群へのデータ転送についても、アドレス変換・振り分け機能部158はこのうちの現用系のサーバに対してデータ転送を実施する。SBY系サーバ群が現用系の場合は、ピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行わず、SBY系サーバ群へのデータを転送する。 In addition, for data transfer from the 0th to Nth endpoints 111 0 to 111 N to the ACT server group or the SBY server group, the address conversion / distribution function unit 158 also sends the data to the active server. Perform data transfer. If the SBY server group is the active system, the address information in the PC Express packet header is not changed, and the data is transferred to the SBY server group.

具体例を挙げる。まず、第0−0のサーバ103から第0のポート(「Port#0」)1510を使用して、第1の統合エンドポイント1011のPCIプロシキ機能部(「PCIProxy」)141に対して、ベースアドレス情報を基にして、第0のエンドポイント(「EP#0」)1110に対するデータをライトする(ステップS241)。PCIプロシキ機能部141は、このデータを第0のエンドポイント1110にライトする(ステップS242)。この後、第0のエンドポイント1110からPCIプロシキ機能部141へデータをリードする(ステップS243)。次にPCIプロシキ機能部141からこのリードしたデータが第0−0のサーバ103へ送られる(リードする)(ステップS244)。 A specific example is given. First, using the 0th port (“Port # 0”) 151 0 from the 0-0 server 103 to the PCI proxy function unit (“PCIProxy”) 141 of the first integrated endpoint 101 1 , based on the base address information, the 0 endpoint ( "EP # 0") 111 to write the data to 0 (step S241). PCI Puroshiki function unit 141 writes the data to the endpoint 111 0 of the 0 (step S242). Thereafter, data is read from the endpoint 111 0 of the 0 to PCI Puroshiki function unit 141 (step S243). Next, the read data is sent (read) from the PCI proxy function unit 141 to the 0th-0th server 103 (step S244).

この後、第0−0のサーバ103から第0のポート1510を使用して、第1の統合エンドポイント1011のPCIプロシキ機能部141に対して、ベースアドレス情報を基にして、第1のエンドポイント(「EP#1」)1111に対するデータをライトする(ステップS245)。PCIプロシキ機能部141は、このデータを第1のエンドポイント1111にライトする(ステップS246)。この後、第1のエンドポイント1111からPCIプロシキ機能部141へデータをリードする(ステップS247)。次にPCIプロシキ機能部141からこのデータは第0−0のサーバ103へリードする(ステップS248)。以下同様にして第0−0のサーバ103によるデータのリードおよびライトの処理が続行する。 Thereafter, from the 0-0 server 103 using ports 151 0 of the zeroth, the first integrated endpoint 101 1 of PCI Puroshiki function unit 141, based on the base address information, first Data for the end point ("EP # 1") 111 1 is written (step S245). The PCI proxy function unit 141 writes this data to the first end point 111 1 (step S246). Thereafter, data is read from the first end point 111 1 to the PCI proxy function unit 141 (step S247). Next, this data is read from the PCI proxy function unit 141 to the 0th-0th server 103 (step S248). In the same manner, the data read and write processing by the 0-0 server 103 continues.

第1−0のサーバ105と第0〜第Nのエンドポイント1110〜111Nの間のデータ転送のためのアクセス時には、PCIプロシキ機能部141でのアドレス変換処理が発生する。この場合のデータのリードおよびライトの処理を次に説明する。 At the time of access for data transfer between the 1-0th server 105 and the 0th to Nth endpoints 111 0 to 111 N , an address conversion process in the PCI proxy function unit 141 occurs. Data read and write processing in this case will be described next.

図10は、SBY系サーバ群を構成する第1−0のサーバによるデータのリードおよびライトの処理を表わしたものである。図5と共に説明する。   FIG. 10 shows data read and write processing by the 1-0th servers constituting the SBY server group. This will be described with reference to FIG.

第1−0のサーバ105から第0〜第Nのエンドポイント1110〜111Nへのアクセスについて、まず第1−0のサーバ105からのデータのライトについて説明する。データのライトに関しては、アドレス変換部157においてピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行って、アドレス変換・振り分け機能部158へデータを転送する。アドレス変換・振り分け機能部158では、コンフィグ制御部155で管理された情報を基に、第0〜第Nのエンドポイント1110〜111Nのいずれに振り分けを行うかを決定して、データの転送を実施する。 Regarding the access from the 1-0th server 105 to the 0th to Nth endpoints 111 0 to 111 N , data write from the 1st-0 server 105 will be described first. For data writing, the address conversion unit 157 changes the address information in the PC express packet header, and transfers the data to the address conversion / distribution function unit 158. The address translation / distribution function unit 158 determines which of the 0th to Nth endpoints 111 0 to 111 N is to be allocated based on the information managed by the configuration control unit 155 and transfers the data. To implement.

また、第0〜第Nのエンドポイント1110〜111Nから第0−0のサーバ103あるいは第1−0のサーバ105へのデータ転送についても、アドレス変換・振り分け機能部158は現用系サーバに対してのみデータの転送を実施する。第1−0のサーバ105が現用系の場合には、ピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行って、第1−0のサーバ105へデータを転送する。 In addition, for data transfer from the 0th to Nth endpoints 111 0 to 111 N to the 0-0 server 103 or the 1-0 server 105, the address translation / distribution function unit 158 also sends it to the active server. Data is transferred only to that. When the first 1-0 server 105 is an active system, the address information in the PC Express packet header is changed, and the data is transferred to the first 1-0 server 105.

具体例を挙げる。まず、第1−0のサーバ105からACTの状態となっている第1のポート(「Port#1」)1511を介して送られたピーシーアイエクスプレスパケット(ステップS261)は、アドレス変換部157でピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行う(ステップS262)。アドレス変換・振り分け機能部158は、このデータの転送を受け、コンフィグ制御部155で管理された情報を基に、第0のエンドポイント(「EP#0」)1110にこれを転送する(ステップS263)。 A specific example is given. First, the PC Express packet (step S261) sent from the 1-0th server 105 via the first port ("Port # 1") 151 1 in the ACT state is sent to the address conversion unit 157. In step S262, the address information in the PC express packet header is changed. Address conversion and sorting function unit 158 receives the transfer of the data, based on the information managed by the configuration control unit 155, the zeroth endpoint ( "EP # 0") which is transferred to 111 0 (step S263).

第0のエンドポイント1110から送られてくるデータは、アドレス変換・振り分け機能部158によって現用系サーバとしての第1−0のサーバ105に送出するように振り分けられて、アドレス変換部157に転送される(ステップS264)。そして、ピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行って(ステップS265)、第1−0のサーバ105へ転送される(ステップS266)。第1−0のサーバ105から第1〜第Nのエンドポイント(「EP#1」〜「EP#N」)1111〜111Nに転送されるデータおよび第1〜第Nのエンドポイント1111〜111Nから第1−0のサーバ105に転送されるデータについても、同様である。そこで、ステップS267〜ステップS278の処理についての説明は省略する。 Data sent from the endpoint 111 0 of the 0 is allocated to deliver to a 1-0 server 105 as active server by the address converting and sorting function unit 158, transferred to the address conversion unit 157 (Step S264). Then, the address information in the PC express packet header is changed (step S265) and transferred to the 1-0 server 105 (step S266). Data transferred from the 1-0th server 105 to the 1st to Nth endpoints ("EP # 1" to "EP # N") 111 1 to 111 N and the 1st to Nth endpoints 111 1 The same applies to data transferred from ˜111 N to the 1-0 server 105. Therefore, description of the processing in steps S267 to S278 is omitted.

<ACT切替動作>   <ACT switching operation>

図11は、ACT系とSBY系の切替動作を示したものである。ここでは、第0−0のサーバ103が現用系で、第1−0のサーバ105が待機系の場合を例として示す。第0−0のサーバ103が待機系で、第1−0のサーバ105が現用系の場合も、動作は同様である。図5と共に説明する。   FIG. 11 shows the switching operation between the ACT system and the SBY system. Here, a case where the 0-0 server 103 is the active system and the 1-0 server 105 is the standby system is shown as an example. The operation is the same when the 0-0th server 103 is the standby system and the 1-0th server 105 is the active system. This will be described with reference to FIG.

第0−0のサーバ103と第1−0のサーバ105は、LAN(Local Area Network)108等の何らかの信号伝達手段を用いて、周期的に互いの状態を監視する機能を有する。このような機能は、たとえば第0−0のサーバ103と第1−0のサーバ105にそれぞれ搭載されたCPUが第0−0のサーバ103と第1−0のサーバ105内の記録媒体(図示せず)に格納された制御プログラムを実行することによって実現する。   The 0-0 server 103 and the 1-0 server 105 have a function of periodically monitoring each other's state using some signal transmission means such as a LAN (Local Area Network) 108. Such a function is achieved, for example, by a CPU mounted on each of the 0-0 server 103 and the 1-0 server 105 and a recording medium in the 0-0 server 103 and the 1-0 server 105 (see FIG. This is realized by executing a control program stored in (not shown).

待機系の第1−0のサーバ105からの応答要求に対して、現用系の第0−0のサーバ103が応答を返さない場合があったとする。この場合、第1−0のサーバ105は第0−0のサーバ103に何らかの異常が発生したことを検出する(ステップS291)。そして、これを基にして系切替動作を開始する(ステップS292)。   Assume that the active 0th-0 server 103 does not return a response to a response request from the standby 1-0 server 105. In this case, the 1-0 server 105 detects that some abnormality has occurred in the 0-0 server 103 (step S291). Based on this, the system switching operation is started (step S292).

この系切替動作で、第1−0のサーバ105は、自身が直接接続している第1の統合エンドポイント1011の待機系となっている第1のポート(「Port#1」)1511に対して、系切替要求をピーシーアイエクスプレスパケットとして送出する(ステップS293)。第1のポート1511では、この系切替要求を受信すると、ACT・SBY選択機能部152に対してACT・SBY切替要求信号を送信する。ACT・SBY選択機能部152は系切替要求を受信すると(ステップS294)、第0のポート(「Port#0」)1310に対してACT・SBY切替要求信号を送信する。 With this system switching operation, the 1-0 server 105 is the first port (“Port # 1”) 151 1 that is the standby system of the first integrated endpoint 101 1 to which it is directly connected. In response to this, a system switching request is sent out as a PC express packet (step S293). When receiving the system switching request, the first port 151 1 transmits an ACT / SBY switching request signal to the ACT / SBY selection function unit 152. ACT · SBY selecting function unit 152 receives the system switching request (step S294), the zeroth port ( "Port # 0") 131 transmits the ACT · SBY switching request signal to 0.

現用系となっている第0のポート1510はACT・SBY切替信号を受信すると(ステップS295)、系切替要求をピーシーアイエクスプレスパケットとして第0−0のサーバ103に送出する(ステップS296)。これにより、第0−0のサーバ103は系の切り替えを認識する(ステップS297)。第0−0のサーバ103は、これに基づき現用系と待機系の切り替えを実施し(ステップS298)、この後、系切替を実施したことをピーシーアイエクスプレスパケットを用いて第0のポート1510に対して通知する(ステップS299)。 When receiving the ACT / SBY switching signal (step S295), the 0th port 151 0 serving as the active system sends a system switching request to the 0-0th server 103 as a PC Express packet (step S296). As a result, the 0-0th server 103 recognizes the system switching (step S297). The 0-0 server 103, based on which to implement the switching of the active system and the standby system (step S298), thereafter, the zeroth port 151 using CPC eye express packet that was carried out system switching 0 (Step S299).

この系切替完了通知は、ACT・SBY選択機能部152で受信され、確認される(ステップS300)。ACT・SBY選択機能部152は、これを基に、第1の統合エンドポイント1011の第0のポート1510を待機系に設定し(ステップS301)、第1のポート1511を現用系に設定する(ステップS302)。その後、系の切り替えを実施したことを示す信号は、第1のポート1511から第1−0のサーバ105へピーシーアイエクスプレスパケットを用いて通知される(ステップS303)。第1−0のサーバ105は、この通知を受けると、第1−0のサーバ105が待機系から現用系に切り替わったことを確定させる(ステップS304)。 This system switching completion notification is received and confirmed by the ACT / SBY selection function unit 152 (step S300). Based on this, the ACT / SBY selection function unit 152 sets the 0th port 151 0 of the first integrated endpoint 101 1 to the standby system (step S301), and sets the first port 151 1 to the active system. Setting is made (step S302). Thereafter, a signal indicating that the system has been switched is notified from the first port 151 1 to the 1-0 server 105 using the PC Express packet (step S303). Upon receiving this notification, the 1-0 server 105 determines that the 1-0 server 105 has been switched from the standby system to the active system (step S304).

次に、現用系になっている第0−0のサーバ103に異常が発生して、第1−0のサーバ105からの系切替要求の送出(ステップS293)に対する応答がない場合について説明する。この場合には、第1の統合エンドポイント1011の内部におけるACT・SBY選択機能部152が図示しないタイマを起動させる。そして、第0−0のサーバ103が正常であれば十分応答する規定時間内に、第0−0のサーバ103から応答があるかを判別する。この規定時間内に第0−0のサーバ103からの応答があれば、すでに説明した処理と同一の処理を行えばよい。 Next, a description will be given of a case where an abnormality occurs in the 0-0 server 103 that is the active system and there is no response to the transmission of the system switching request from the 1-0 server 105 (step S293). In this case, ACT · SBY selecting function unit 152 inside the first integrated endpoint 101 1 activates a timer (not shown). Then, if the 0-0 server 103 is normal, it is determined whether there is a response from the 0-0 server 103 within a predetermined time to respond sufficiently. If there is a response from the 0-0 server 103 within the specified time, the same processing as described above may be performed.

これに対して、規定時間内に第0−0のサーバ103からの応答がなかったとする。この場合には、第0−0のサーバ103からの応答をそれ以上待機せずに第1−0のサーバ105は系切替完了通知を実施する。そして、今までSBY系であった第1のポート1511をACT系に切り替えることになる。 In contrast, it is assumed that there is no response from the 0-0th server 103 within the specified time. In this case, the 1-0 server 105 performs a system switching completion notification without waiting for a response from the 0-0 server 103 any more. Then, the first port 151 1 that has been the SBY system until now is switched to the ACT system.

本実施の形態のエンドポイント共有システム100では、以上とは別に、定期的な系の切り替えや保守作業を目的として、系の切り替えを開始することも可能である。待機系から現用系に切り替わった第1−0のサーバ105の第1のポート1511は、第0〜第Nのエンドポイント1110〜111Nに対する、実データの通信が可能になる。 In the endpoint sharing system 100 according to the present embodiment, apart from the above, it is also possible to start system switching for the purpose of periodic system switching and maintenance work. The first port 151 1 of the 1-0th server 105 switched from the standby system to the active system can communicate actual data to the 0th to Nth endpoints 111 0 to 111 N.

なお、第1−0のサーバ105側のピーシーアイエクスプレスコンフィグレーションレジスタは、第1−0のサーバ105の電源投入後に設定済みである。このため、第0〜第Nのエンドポイント1110〜111Nに対する、第1−0のサーバ105のメモリ空間に対応させるための、ピーシーアイエクスプレスコンフィグレーション動作は不要である。したがって、コンフィグレーションレジスタの設定変更前の第0〜第Nのエンドポイント1110〜111Nのリセットや、各ピーシーアイエクスプレスコンフィグレーションレジスタの再設定処理等の処理は不要になる。 Note that the PC Express configuration register on the 1-0th server 105 side is already set after the 1-0th server 105 is powered on. For this reason, the PC Express configuration operation for corresponding to the memory space of the 1-0th server 105 for the 0th to Nth end points 111 0 to 111 N is unnecessary. Therefore, processing such as resetting the 0th to Nth endpoints 111 0 to 111 N before changing the setting of the configuration register and resetting processing of each PC express configuration register becomes unnecessary.

このため、系の切替途中では、第0〜第Nのエンドポイント1110〜111Nと第0−0のサーバ103および第1−0のサーバ105の間の通信は実行できない。しかしながら、第1の統合エンドポイント1011内の各エンドポイント111間通信処理(たとえば、第0のエンドポイント1110からPCIプロシキ機能部141を経て第1のエンドポイント1111への通信)では、系切替動作時に通信処理を継続することが可能になる。 Therefore, communication between the 0th to Nth endpoints 111 0 to 111 N and the 0-0 server 103 and the 1-0 server 105 cannot be executed during system switching. However, in the communication processing between the end points 111 in the first integrated end point 101 1 (for example, communication from the 0th end point 110 0 to the first end point 111 1 via the PCI proxy function unit 141), Communication processing can be continued during the system switching operation.

<サーバ間データ転送>   <Data transfer between servers>

図12は、サーバ側のソフトウェア処理の様子を表わしたものである。本実施の形態のエンドポイント共有システム100では、図5でも説明したように、ACT系サーバ群とSBY系サーバ群の2種類のサーバが使用されている。ACT系サーバ群とSBY系サーバ群は、同一の構成となっている。そこで、ACT系サーバ群を中心に、これらのサーバ群で動作するアプリケーションソフトウェアについて説明を行う。   FIG. 12 shows the state of software processing on the server side. In the endpoint sharing system 100 according to the present embodiment, as described with reference to FIG. 5, two types of servers, that is, an ACT server group and an SBY server group are used. The ACT server group and the SBY server group have the same configuration. Accordingly, application software that operates on these server groups will be described with a focus on the ACT server groups.

次の表1は、本実施の形態によるACT系サーバ群とSBY系サーバ群で動作するアプリケーションソフトウェアを示したものである。この表1に記載された各アプリケーションソフトウェア同士は、イベントの相互通知が可能なインタフェイスを有しており、イベント発生の検出を行うようになっている。   Table 1 below shows application software that operates in the ACT server group and the SBY server group according to the present embodiment. Each application software described in Table 1 has an interface capable of mutual notification of events, and detects the occurrence of an event.

Figure 2011164838
Figure 2011164838

図12では、ACT系サーバ群とSBY系サーバ群がそれぞれ1つの記憶装置107を分割して使用する形で接続している様子を示している。ここでは、便宜的に、ACT系サーバ群が接続する記憶装置部分を記憶装置1070として表わし、SBY系サーバ群が接続する記憶装置部分を記憶装置1071として表わしている。 FIG. 12 shows a state where the ACT server group and the SBY server group are connected in such a manner that one storage device 107 is divided and used. Here, for the sake of convenience, the storage device portion to which the ACT server group is connected is represented as a storage device 107 0 , and the storage device portion to which the SBY server group is connected is represented as the storage device 107 1 .

それぞれの記憶装置1070、記憶装置1071は、アプリケーションソフトウェアがアクセス可能な領域としてのサーバ・テンポラリ領域と、第1の統合エンドポイント1011とのデータのやり取りに用いる領域としてのエンドポイント通信用領域に分割されている。ここで、記憶装置107は、図5でも説明したように、各サーバ103、105とLAN108を介して接続されている。 Each of the storage devices 107 0 and 107 1 is used for endpoint communication as a server temporary region as an area accessible by application software and an area used for data exchange with the first integrated endpoint 101 1 . It is divided into areas. Here, as described with reference to FIG. 5, the storage device 107 is connected to the servers 103 and 105 via the LAN 108.

記憶装置1070および記憶装置1071の内部には、1次共有メモリ1910、1911の領域と、2次共有メモリ1920、1921の領域が存在している。1次共有メモリ1910、1911の領域には、送信の際にアクセスする出力メモリ(OutputMem)領域1930、1931のうちの対応するものと、受信の際にアクセスする入力メモリ(InputMem)領域1940、1941のうちの対応するものが存在している。 Inside the storage device 107 0 and a storage device 107 1, the primary shared memory 191 0, 191 1 region, secondary shared memory 192 0, 192 1 region is present. The areas of the primary shared memories 191 0 and 191 1 correspond to the corresponding ones of the output memory (OutputMem) areas 193 0 and 193 1 accessed during transmission, and the input memory (InputMem) accessed during reception. A corresponding one of the areas 194 0 and 194 1 exists.

2次共有メモリ1920、1921は、送信側領域と受信側領域に分割され、次のように構成される。まず、送信側領域は、第0−0のサーバ103(主サーバ)上で動作するアプリケーションソフト(APL)(PS#0−5)が、第1の統合エンドポイント1011に対してデータの送信を行う場合にアクセスを行う、出力メモリサーバ(OutputMemServer#0−0)領域1950-0と、第0−1のサーバ1041(拡張サーバ)上で動作するアプリケーションソフト(PS#1−5)が、第1の統合エンドポイント1011に対してデータの送信する際にアクセスを行う、出力メモリサーバ(OutputMemServer#0−1)領域1950-1から構成される。 The secondary shared memories 192 0 and 192 1 are divided into a transmission side area and a reception side area, and are configured as follows. First, in the transmission side area, application software (APL) (PS # 0-5) operating on the 0-0 server 103 (main server) transmits data to the first integrated endpoint 101 1 . Output memory server (OutputMemServer # 0-0) area 195 0-0 and application software (PS # 1-5) operating on the 0-1st server 104 1 (extended server) Is configured from an output memory server (OutputMemServer # 0-1) area 195 0-1 that is accessed when data is transmitted to the first integrated endpoint 101 1 .

受信側領域は、第0−0のサーバ103(主サーバ)上で動作するアプリケーションソフト(PS#0−5)が、第1の統合エンドポイント1011からデータの受信を行う場合にアクセスを行う、入力メモリサーバ(InputMemServer#0−0)領域1960-0と、第0−1のサーバ1041(拡張サーバ)上で動作するアプリケーションソフト(PS#1−5)が、第1の統合エンドポイント1011からデータを受信する際にアクセスを行う、入力メモリサーバ(InputMemServer#0−1)領域1960-1から構成される。 The reception side area is accessed when application software (PS # 0-5) operating on the 0-0 server 103 (main server) receives data from the first integrated endpoint 101 1. , An input memory server (InputMemServer # 0-0) area 196 0-0 and application software (PS # 1-5) operating on the 0-1st server 104 1 (extended server) are connected to the first integrated end. It is configured from an input memory server (InputMemServer # 0-1) area 196 0-1 that is accessed when data is received from the point 101 1 .

SBY系サーバ群を構成する第1−0のサーバ105(主サーバ)と第1−1のサーバ1061(拡張サーバ)がアクセスを行う記憶装置1071の構成は、第0−0のサーバ103と第0−1のサーバ1041がアクセスを行う記憶装置1070の構成と同一である。 The configuration of the storage device 107 1 that is accessed by the 1-0 server 105 (main server) and the 1-1 server 106 1 (extended server) that constitute the SBY server group is the 0-0 server 103. When the server 104 1 of the 0-1 is the same as that of the storage device 107 0 for accessing.

ところで、本実施の形態のエンドポイント共有システム100で第1の統合エンドポイント1011あるいは第2の統合エンドポイント1012に物理的に接続されているのは主サーバである第0−0のサーバ103および第1−0のサーバ105である。このため、拡張サーバである第0−1のサーバ1041および第1−1のサーバ1061が第1の統合エンドポイント1011あるいは第2の統合エンドポイント1012にアクセスする場合には、主サーバを介してデータの受け渡しを行う必要がある。 By the way, in the endpoint sharing system 100 according to the present embodiment, it is the 0-0 servers that are the primary servers that are physically connected to the first integrated endpoint 101 1 or the second integrated endpoint 101 2. 103 and the 1-0 server 105. Therefore, when the 0-1st server 104 1 and the 1-1st server 106 1, which are expansion servers, access the first integrated endpoint 101 1 or the second integrated endpoint 101 2 , It is necessary to pass data through the server.

主サーバとのデータ受け渡しに際しては、IP(Internet Protocol)等のプロトコルを用いることが可能である。しかしながらその場合には、拡張サーバおよび主サーバに対してデータの送受信のためのプロトコルの定義が必要とされ、オーバヘッドが大きくなり、高速な送受信の妨げとなるという問題がある。本実施の形態では、記憶装置107をデータ受け渡しのバッファとして用いることで、高速なデータの受け渡しを実現する。これにより、統合エンドポイント1011、1012が接続されていない拡張サーバであっても、高速に主サーバを介してこれら統合エンドポイント1011、1012への高速アクセスを実現している。 When transferring data to and from the main server, a protocol such as IP (Internet Protocol) can be used. However, in that case, it is necessary to define a protocol for data transmission / reception with respect to the extension server and the main server, and there is a problem in that overhead increases and obstructs high-speed transmission / reception. In the present embodiment, high-speed data transfer is realized by using the storage device 107 as a data transfer buffer. Thus, even extension server integrated endpoint 101 1, 101 2 are not connected, thereby realizing a fast access to these integrated endpoint 101 1, 101 2 via the main server in a high speed.

サーバ群と第1の統合エンドポイント1011の間でやりとりされるデータは、記憶装置107内部の1次共有メモリ191と、2次共有メモリ192を、以下の関係をもって転送される。 Data exchanged between the server group and the first integrated endpoint 101 1 is transferred between the primary shared memory 191 and the secondary shared memory 192 in the storage device 107 with the following relationship.

<ACT系サーバ群>
出力メモリサーバ(OutputMemServer#0−0)領域1950-0から出力メモリ(OutputMem#0)領域1930の方向への転送
出力メモリサーバ(OutputMemServer#0−1)領域1950-1から出力メモリ(OutputMem#0)領域1930の方向への転送
入力メモリ(InputMem#0)領域1940から入力メモリサーバ(InputMemServer#0−0)領域1960-0の方向への転送
入力メモリ(InputMem#0)領域1940から入力メモリサーバ(InputMemServer#0−1)領域1960-1の方向への転送
<ACT server group>
Transfer from output memory server (OutputMemServer # 0-0) area 195 0-0 to output memory (OutputMem # 0) area 193 0 Output memory server (OutputMemServer # 0-1) area 195 0-1 to output memory ( Transfer in the direction of OutputMem # 0) area 193 0 Transfer from input memory (InputMem # 0) area 194 0 to input memory server (InputMemServer # 0-0) area 196 0-0 Input memory (InputMem # 0) Transfer from area 194 0 to input memory server (InputMemServer # 0-1) area 196 0-1

<SBY系サーバ群>
出力メモリサーバ(OutputMemServer#1−0)領域1951-0から出力メモリ(OutputMem#1)領域1931の方向への転送
出力メモリサーバ(OutputMemServer#1−1)領域1951-1から出力メモリ(OutputMem#1)領域1931の方向への転送
入力メモリ(InputMem#1)領域1941から入力メモリサーバ(InputMemServer#1−0)領域1961-0の方向への転送
入力メモリ(InputMem#1)領域1941から入力メモリサーバ(InputMemServer#1−1)領域1961-1の方向への転送
<SBY server group>
Transfer from the output memory server (OutputMemServer # 1-0) area 195 1-0 to the output memory (OutputMem # 1) area 193 1 Direction from the output memory server (OutputMemServer # 1-1) area 195 1-1 to the output memory ( Output in the direction of OutputMem # 1) area 193 1 Transfer from input memory (InputMem # 1) area 194 1 to the direction of input memory server (InputMemServer # 1-0) area 196 1-0 Input memory (InputMem # 1) transfer from region 194 1 to the input memory server (InputMemServer # 1-1) regions 196 1-1 direction

なお、図12には、第0−0のサーバ103に搭載されたCPUとしてのCPU#0−0が各アプリケーションソフトウェアPS#0−0、PS#0−1、PS#0−3、PS#0−4、PS#0−5を実行することが示されている。また、同様に第0−1のサーバ1041に搭載されたCPUとしてのCPU#0−1が各アプリケーションソフトウェアPS#1−3、PS#1−4、PS#1−5を実行することが示されている。 In FIG. 12, the CPU # 0-0 as the CPU mounted on the 0-0th server 103 is associated with each application software PS # 0-0, PS # 0-1, PS # 0-3, PS #. 0-4, PS # 0-5 are shown to be executed. Similarly, the 0-1 CPU # 0-1 each application software PS # 1-3 as CPU mounted in the server 104 1, PS # 1-4, be performed PS # 1-5 It is shown.

図13は、記憶装置を介して、サーバがエンドポイントに対してアクセスを行う様子を表わしたものである。図5および図12と共に説明する。   FIG. 13 shows a state in which the server accesses the endpoint via the storage device. This will be described with reference to FIGS.

<サーバからのデータの送出>   <Sending data from the server>

第0−0のサーバ103上で動作するアプリケーションソフトウェアPS#0−5,PS#1−5から第1の統合エンドポイント1011へのデータの取り込みについて説明する。 Application software PS # 0-5 operating on the 0-0 server 103 will be described incorporation of data from the PS # 1-5 to the first integrated endpoint 101 1.

(a)まず、第0−0のサーバ103(主サーバ)から第1の統合エンドポイント1011へのアクセスについて説明する。 (A) will be described first access from the 0-0 server 103 (main server) to the first integrated endpoint 101 1.

第0−0のサーバ103上で動作するアプリケーションソフトウェアPS#0−5がエンドポイント111に対してデータを送信する場合、アプリケーションソフトウェアPS#0−5は記憶装置107上に確保されている出力メモリサーバ領域1950-0にデータを書き込む(ステップS401)。記憶装置107は、出力メモリサーバ領域1950-0にデータが書き込まれたことを検出すると、出力メモリ領域1930にデータをコピーする。 When the application software PS # 0-5 operating on the 0th-0th server 103 transmits data to the endpoint 111, the application software PS # 0-5 is an output memory secured on the storage device 107. write data to the server area 195 0-0 (step S401). When the storage device 107 detects that data has been written to the output memory server area 195 0-0 , it copies the data to the output memory area 193 0 .

アプリケーションソフトウェアPS#0−5は出力メモリサーバ領域1950-0にデータを書き込んだことを、アプリケーションソフトウェアPS#0−1に対して通知を行う(ステップS402)。アプリケーションソフトウェアPS#0−1は、他のサーバからエンドポイント111へのデータ送信要求が無いかを確認後、アプリケーションソフトウェアPS#0−2に対して、第0−0のサーバ103からエンドポイント111に対してデータを送信するように、指示を発行する(ステップS403)。 The application software PS # 0-5 notifies the application software PS # 0-1 that data has been written in the output memory server area 195 0-0 (step S402). The application software PS # 0-1 confirms that there is no data transmission request from another server to the endpoint 111, and then the application software PS # 0-2 sends the endpoint software 111 from the 0-0 server 103 to the endpoint 111. An instruction is issued to transmit data to (step S403).

アプリケーションソフトウェアPS#0−2は、エンドポイント111に対するデータ送信の指示を受信すると、このエンドポイント111に対して出力メモリ領域1930からデータの送信を実施する(ステップS404)。このようにして、第0−0のサーバ103から記憶装置107を介して第1の統合エンドポイント1011へデータが送信される。 When the application software PS # 0-2 receives an instruction to transmit data to the endpoint 111, the application software PS # 0-2 transmits data from the output memory area 193 0 to the endpoint 111 (step S404). In this way, data is transmitted via the storage device 107 from the 0-0 server 103 to the first integrated endpoint 101 1.

(b)次に、第0−1のサーバ1041(拡張サーバ)から第1の統合エンドポイント1011へのアクセスについて説明する。 (B) Next, access from the 0-1st server 104 1 (extended server) to the first integrated endpoint 101 1 will be described.

第0−1のサーバ1041上で動作するアプリケーションソフトウェアPS#1−5が第1の統合エンドポイント1011に対してデータを送信する場合、アプリケーションソフトウェアPS#1−5は記憶装置107上に確保されている出力メモリサーバ領域1950-1にデータを書き込む(ステップS410)。記憶装置107は、出力メモリサーバ領域1950-1にデータが書き込まれたことを検出すると、出力メモリ領域1930にデータをコピーする。 If the application software PS # 1-5 operating on the 0-1 of the server 104 1 transmits the data to the first integrated endpoint 101 1, application software PS # 1-5 are on the storage device 107 Data is written to the secured output memory server area 195 0-1 (step S410). When the storage device 107 detects that data has been written to the output memory server area 195 0-1 , it copies the data to the output memory area 193 0 .

アプリケーションソフトウェアPS#1−5は出力メモリサーバ領域1950-1にデータを書き込んだことを、アプリケーションソフトウェアPS#0−1に対して通知を行う必要がある。このため、アプリケーションソフトウェアPS#1−4に対してデータ送信要求指示を発行する(ステップS411)。 The application software PS # 1-5 needs to notify the application software PS # 0-1 that data has been written in the output memory server area 195 0-1 . Therefore, a data transmission request instruction is issued to the application software PS # 1-4 (step S411).

アプリケーションソフトウェアPS#1−4はアプリケーションソフトウェアPS#0−4に対して、拡張サーバとしての第0−1のサーバ1041がエンドポイント111に対してデータ転送を要求していることを通知する(ステップS412)。これに基づき、アプリケーションソフトウェアPS#0−4は、第0−1のサーバ1041がエンドポイント111へのデータ転送要求を行っていることを、アプリケーションソフトウェアPS#0−1に対して通知する(ステップS413)。 Application software PS # 1-4 applications the software PS # 0-4, server 104 1 of the 0-1 as an extension server notifies the requesting data transfer to the end point 111 ( Step S412). Based on this, the application software PS # 0-4 is that the server 104 1 of the first 0-1 is performing a data transfer request to the endpoint 111, and notifies the application software PS # 0-1 ( Step S413).

アプリケーションソフトウェアPS#0−1は、他のサーバからエンドポイント111へのデータ送信の要求が無いかを確認する。そして、アプリケーションソフトウェアPS#0−2に対して、アプリケーションソフトウェアPS#0−1から第1の統合エンドポイント1011に対してデータを送信するように、指示を発行する(ステップS414)。 The application software PS # 0-1 confirms whether there is a request for data transmission from the other server to the endpoint 111. The application for the software PS # 0-2, to transmit the data from the application software PS # 0-1 on the first integrated endpoint 101 1 issues a command (step S414).

アプリケーションソフトウェアPS#0−2は第1の統合エンドポイント1011に対してデータ送信の指示を受信すると、エンドポイント111に対して出力メモリ領域1930からデータの送信を実施する(ステップS415)。このようにして第0−1のサーバ1041から記憶装置107を介して第1の統合エンドポイント1011へデータが送信される。 When the application software PS # 0-2 receives the instruction data transmitted to the first integrated endpoint 101 1, to implement the transmission of data from the output memory area 193 0 to the end point 111 (step S415). In this way, data is transmitted from the 0-1st server 104 1 to the first integrated endpoint 101 1 via the storage device 107.

<サーバへのデータの取り込み>   <Importing data to the server>

次に第1の統合エンドポイント1011からサーバへのデータ取り込みについて説明する。 Then the first integrated data capture from the endpoint 101 1 to the server will be described.

図14は、第1の統合エンドポイントからサーバへのデータ取り込みの様子を示したものである。図5および図12と共に説明する。   FIG. 14 shows how data is captured from the first integrated endpoint to the server. This will be described with reference to FIGS.

(a)まず、第1の統合エンドポイント1011から主サーバとしての第0−0のサーバ103へのデータの取り込みについて説明する。 (A) First, data fetching from the first integrated endpoint 101 1 to the 0-0 server 103 as the main server will be described.

第1の統合エンドポイント1011から第0−0のサーバ103に対して転送するデータが発生したとする。この場合、DMA(Direct Memory Access )により、CPUを介さずに第1の統合エンドポイント1011から、そのデータが主サーバとしての第0−0のサーバ103を経由して入力メモリ(InputMem#0)領域1940に対して転送される(ステップS431)。第1の統合エンドポイント1011から記憶装置107へのデータ転送はアプリケーションソフトウェアPS#0−2が実行する。 Assume that data to be transferred from the first integrated endpoint 101 1 to the 0-0 server 103 has occurred. In this case, the data is transferred from the first integrated endpoint 101 1 via the 0-0 server 103 as the main server to the input memory (InputMem # 0) by the DMA (Direct Memory Access) without going through the CPU. ) Transferred to area 194 0 (step S431). Data transfer from the first integrated endpoint 101 1 to the storage device 107 is executed by the application software PS # 0-2.

アプリケーションソフトウェアPS#0−2は、記憶装置107に対してデータを転送後、アプリケーションソフトウェアPS#0−1に対して、第1の統合エンドポイント1011から記憶装置107に対してデータの転送が発生したことを通知する(ステップS432)。 Application software PS # 0-2 after the transfer of data to the storage device 107, the application software PS # 0-1, the data transfer to the first integrated endpoint 101 1 from the storage device 107 The occurrence is notified (step S432).

アプリケーションソフトウェアPS#0−1は、サーバ群を構成するサーバのうちの負荷が軽いサーバで処理を実行するために、各サーバの負荷状況を調査する。負荷状況の調査はアプリケーションソフトウェアPS#0−3で実行する。このため、アプリケーションソフトウェアPS#0−1はアプリケーションソフトウェアPS#0−3に対して負荷調査を指示する(ステップS433)。アプリケーションソフトウェアPS#0−3はサーバ群を構成する第0−1のサーバ1041(拡張サーバ)上で動作するアプリケーションソフトウェアPS#1−3に対して、CPU負荷、メモリ使用量等の負荷状況の報告指示を出す(ステップS434)。第0−1のサーバ1041では、負荷状況調査指示をアプリケーションソフトウェアPS#1−3で受信後、負荷状況をアプリケーションソフトウェアPS#1−3からアプリケーションソフトウェアPS#0−3に報告する(ステップS435)。このとき、アプリケーションソフトウェアPS#0−3とアプリケーションソフトウェアPS#1−3の間の通信はLAN115を用いて行う。 The application software PS # 0-1 investigates the load status of each server in order to execute processing on a server having a light load among the servers constituting the server group. The investigation of the load situation is executed by the application software PS # 0-3. Therefore, the application software PS # 0-1 instructs the load investigation to the application software PS # 0-3 (step S433). The application software PS # 0-3 has a load status such as CPU load and memory usage with respect to the application software PS # 1-3 operating on the 0-1st server 104 1 (extended server) constituting the server group. Is issued (step S434). The 0-1st server 104 1 receives the load status investigation instruction by the application software PS # 1-3, and then reports the load status from the application software PS # 1-3 to the application software PS # 0-3 (step S435). ). At this time, communication between the application software PS # 0-3 and the application software PS # 1-3 is performed using the LAN 115.

アプリケーションソフトウェアPS#0−3は、アプリケーションソフトウェアPS#1−3の報告結果と第0−0のサーバ103の負荷状況をアプリケーションソフトウェアPS#0−1に通知する(ステップS436)。アプリケーションソフトウェアPS#1−3は第0−0のサーバ103(主サーバ)と第0−1のサーバ1041(拡張サーバ)の負荷状況から、負荷の少ないサーバの方を処理を行うサーバとして決定する。 The application software PS # 0-3 notifies the application software PS # 0-1 of the report result of the application software PS # 1-3 and the load status of the 0-0 server 103 (step S436). The application software PS # 1-3 determines the server with the lower load as the server for processing based on the load status of the 0-0 server 103 (main server) and the 0-1 server 104 1 (extended server). To do.

第0−0のサーバ103が負荷が少ないと判断された場合、処理を実行するアプリケーションソフトとしてのアプリケーションソフトウェアPS#0−5に対して、アプリケーションソフトウェアPS#0−1から処理指示が発行される(ステップS347)。第0−0のサーバ103の負荷が少ないと判断された場合は、ステップS347の処理指示の発行と同時に、アプリケーションソフトウェアPS#0−1から記憶装置107に対して、入力メモリ領域1940に記録されたデータを、入力メモリサーバ領域1960-0に転送する指示を発行する(ステップS438)。このとき、記憶装置107からの指示はLAN115を経由して発行される。 When it is determined that the 0th-0th server 103 is lightly loaded, a processing instruction is issued from the application software PS # 0-1 to the application software PS # 0-5 as application software for executing processing. (Step S347). If it is determined that the load on the 0th-0th server 103 is small, the application software PS # 0-1 records in the input memory area 194 0 from the application software PS # 0-1 to the storage device 107 at the same time as issuing the processing instruction in step S347. An instruction to transfer the received data to the input memory server area 196 0-0 is issued (step S438). At this time, an instruction from the storage device 107 is issued via the LAN 115.

アプリケーションソフトウェアPS#0−5は、入力メモリサーバ領域1960-0からデータを読み出す(ステップS439)。これにより、サーバ上のアプリケーションは処理に必要なデータを第1の統合エンドポイント1011から得ることが可能となる。 The application software PS # 0-5 reads data from the input memory server area 196 0-0 (step S439). As a result, the application on the server can obtain data necessary for processing from the first integrated endpoint 101 1 .

(b)次に、第1の統合エンドポイント1011から第0−1のサーバ1041(拡張サーバ)へのデータの取り込みについて説明する。 (B) Next, data loading from the first integrated endpoint 101 1 to the 0-1st server 104 1 (extended server) will be described.

第1の統合エンドポイント1011からサーバ対して転送されるデータが発生したとする。この場合、DMAにより、CPUを介さずに第1の統合エンドポイント1011から、そのデータが主サーバとしての第0−0のサーバ103を経由して入力メモリ(InputMem#0)領域1940に対して転送される(ステップS441)。第1の統合エンドポイント1011から記憶装置107へのデータ転送はアプリケーションソフトウェアPS#0−2が実行する。 Assume that data transferred from the first integrated endpoint 101 1 to the server has occurred. In this case, the DMA transfers the data from the first integrated endpoint 101 1 to the input memory (InputMem # 0) area 194 0 via the 0-0 server 103 as the main server without going through the CPU. Then, the data is transferred (step S441). Data transfer from the first integrated endpoint 101 1 to the storage device 107 is executed by the application software PS # 0-2.

アプリケーションソフトウェアPS#0−2は、記憶装置107に対してデータを転送後、アプリケーションソフトウェアPS#0−1に対して、第1の統合エンドポイント1011から記憶装置107に対してデータの転送が発生したことを通知する(ステップS442)。 Application software PS # 0-2 after the transfer of data to the storage device 107, the application software PS # 0-1, the data transfer to the first integrated endpoint 101 1 from the storage device 107 The occurrence is notified (step S442).

アプリケーションソフトウェアPS#0−1は、サーバ群を構成するサーバのうちの負荷が軽いサーバで処理を実行するために、各サーバの負荷状況を調査する。負荷状況の調査はPS#0−3で実行する。このため、アプリケーションソフトウェアPS#0−1はアプリケーションソフトウェアPS#0−3に対して負荷調査を指示する(ステップS443)。アプリケーションソフトウェアPS#0−3はサーバ群を構成する第0−1のサーバ1041(拡張サーバ)上で動作するアプリケーションソフトウェアPS#1−3に対して、CPU負荷、メモリ使用量等の負荷状況の報告指示を出す(ステップS444)。第0−1のサーバ1041では、負荷状況調査指示をアプリケーションソフトウェアPS#1−3で受信後、負荷状況をアプリケーションソフトウェアPS#1−3からアプリケーションソフトウェアPS#0−3に報告する(ステップS445)。このとき、アプリケーションソフトウェアPS#0−3とアプリケーションソフトウェアPS#1−3の間の通信はLAN115を用いて行う。 The application software PS # 0-1 investigates the load status of each server in order to execute processing on a server having a light load among the servers constituting the server group. The investigation of the load situation is executed with PS # 0-3. Therefore, the application software PS # 0-1 instructs the load investigation to the application software PS # 0-3 (step S443). The application software PS # 0-3 has a load status such as CPU load and memory usage with respect to the application software PS # 1-3 operating on the 0-1st server 104 1 (extended server) constituting the server group. Is issued (step S444). The 0-1st server 104 1 receives the load status investigation instruction by the application software PS # 1-3, and then reports the load status from the application software PS # 1-3 to the application software PS # 0-3 (step S445). ). At this time, communication between the application software PS # 0-3 and the application software PS # 1-3 is performed using the LAN 115.

アプリケーションソフトウェアPS#0−3は、アプリケーションソフトウェアPS#1−3の報告結果と第0−0のサーバ103の負荷状況をアプリケーションソフトウェアPS#0−1に通知する(ステップS446)。アプリケーションソフトウェアPS#1−3は第0−0のサーバ103(主サーバ)と第0−1のサーバ1041(拡張サーバ)の負荷状況から、負荷の少ないサーバの方を処理を行うサーバとして決定する。 The application software PS # 0-3 notifies the report result of the application software PS # 1-3 and the load status of the 0-0 server 103 to the application software PS # 0-1 (step S446). The application software PS # 1-3 determines the server with the lower load as the server for processing based on the load status of the 0-0 server 103 (main server) and the 0-1 server 104 1 (extended server). To do.

ここまでのシーケンスは、第1の統合エンドポイント1011から主サーバである第0−0のサーバ103に対するデータ転送と、同一のシーケンスである。 Sequence up to this, the data transfer for the first 0-0 server 103 is the main server from a first integrated endpoint 101 1, the same sequence.

第0−1のサーバ1041(拡張サーバ)の負荷が少ないと判断されたとする。この場合、アプリケーションソフトウェアPS#0−1からアプリケーションソフトウェアPS#0−4に対して、第0−1のサーバ1041に対する記憶装置107(S#0−1_REC_temp(図示せず))からのデータ読み出し指示が発行される(ステップS447)。このとき記憶装置107から読み出されるデータは、図示しないアプリケーションソフトウェアS#0−1についての一次領域(REC_temp)に格納されている。ステップS447のデータ読み出し指示の発行と同時に、アプリケーションソフトウェアPS#0−1は、記憶装置107に対して、入力メモリ領域1940に記録されたデータを、入力メモリサーバ領域1960-1に転送する指示を発行する(ステップS448)。 Assume that it is determined that the load on the 0-1st server 104 1 (extended server) is small. In this case, the data read out from the application for the software PS # 0-1 application software PS # 0-4 from the memory to the server 104 1 of the 0-1 unit 107 (S # 0-1_REC_temp (not shown)) An instruction is issued (step S447). At this time, data read from the storage device 107 is stored in a primary area (REC_temp) for application software S # 0-1 (not shown). Simultaneously with the issuance of the data read instruction in step S447, the application software PS # 0-1 transfers the data recorded in the input memory area 194 0 to the input memory server area 196 0-1 to the storage device 107. An instruction is issued (step S448).

アプリケーションソフトウェアPS#0−4では、第0−1のサーバ1041での入力メモリサーバ領域1960-1からのデータ読み出し指示の発行を受けて、アプリケーションソフトウェアPS#1−4に対して、記憶装置107からのデータ読み出し指示を発行する(ステップS449)。アプリケーションソフトウェアPS#1−4は、第0−0のサーバ103からのデータ読み出し指示を受け、アプリケーションソフトウェアPS#1−5に対して、入力メモリサーバ領域1960-1からデータを読み出し指示を発行する(ステップS450)。そして、アプリケーションソフトウェアPS#1−5は入力メモリサーバ領域1960-1から処理に必要なデータを読み出す(ステップS451)。 In the application software PS # 0-4, and issued a data read instruction from the input memory server area 196 0-1 by the server 104 1 of the 0-1, the application software PS # 1-4, stores A data read instruction is issued from the device 107 (step S449). The application software PS # 1-4 receives a data read instruction from the 0-0 server 103 and issues an instruction to read data from the input memory server area 196 0-1 to the application software PS # 1-5. (Step S450). The application software PS # 1-5 reads data necessary for processing from the input memory server area 196 0-1 (step S451).

<記憶装置の構成>
図15は、本実施の形態のエンドポイント共有システムの構成を記憶装置を中心に具体化したものである。記憶装置107は、次の各部から構成されている。
<Configuration of storage device>
FIG. 15 is a diagram in which the configuration of the endpoint sharing system according to the present embodiment is embodied centering on a storage device. The storage device 107 includes the following units.

(1)1次共有メモリ191および2次共有メモリ192
1次共有メモリ191および2次共有メモリ192は、図12で説明した。1次共有メモリ191は、主サーバからのデータおよび主サーバへ転送するデータを一時的に蓄えるためのメモリである。2次共有メモリ192は、記憶装置107と各サーバ103、1041、105、1061間のデータ転送のためのメモリ領域である。
(1) Primary shared memory 191 and secondary shared memory 192
The primary shared memory 191 and the secondary shared memory 192 have been described with reference to FIG. The primary shared memory 191 is a memory for temporarily storing data from the main server and data to be transferred to the main server. The secondary shared memory 192 is a memory area for data transfer between the storage device 107 and each server 103, 104 1 , 105, 106 1 .

(2)第0および第1のエンドポイント間CTL(EP間CTL)部501、502
第0のエンドポイント間CTL部501は、主サーバとしての第0−0のサーバ(Server#0−0)103を経由して第0〜第Nのエンドポイント(EP#0〜EP#N)1110〜111N(図5参照)からのデータをやりとりする。第1のエンドポイント間CTL部502は、主サーバとしての第1−0のサーバ(Server#1−0)105を経由して第0〜第Nのエンドポイント(EP#0〜EP#N)1110〜111Nからのデータをやりとりする。
(2) CTL between the 0th and first endpoints (CTL between EPs) 501 and 502
The 0th inter-endpoint CTL unit 501 passes through the 0th-0 server (Server # 0-0) 103 as the main server, to the 0th to Nth endpoints (EP # 0 to EP # N). Data from 111 0 to 111 N (see FIG. 5) is exchanged. The first inter-endpoint CTL unit 502 passes through the 1-0th server (Server # 1-0) 105 as the main server to the 0th to Nth endpoints (EP # 0 to EP # N). Data from 111 0 to 111 N is exchanged.

(3)第0および第1のメモリ間CTL(MEM間CTL)部503、504
1次共有メモリ191と2次共有メモリ192間の制御を行う。
(3) 0th and first memory-to-memory CTL (MEM-to-MEM CTL) units 503 and 504
Control between the primary shared memory 191 and the secondary shared memory 192 is performed.

(4)第0−0、第0−1、第1−0、第1−1のサーバ間CTL部505〜508
主サーバあるいは拡張サーバと記憶装置107の間のデータ転送を実施する。
(4) 0th to 0th, 0th to 1st, 1st to 0th, and 1-1st inter-server CTL units 505 to 508
Data transfer between the main server or expansion server and the storage device 107 is performed.

(5)記憶装置CTL部509
記憶装置107の制御を実施する。
(5) Storage device CTL unit 509
The storage device 107 is controlled.

このような構成の記憶装置107における第0および第1のエンドポイント間CTL部501、502およびサーバは、PCIeのエンドポイントとして動作し、PCIeケーブルで接続される。PCIeとし動作するためのコンフィグレーション処理は、サーバ側から実行される。PCIeのコンフィグレーション処理は、通常の処理と同等である。   The 0th and first end-point CTL units 501 and 502 and the server in the storage device 107 having such a configuration operate as PCIe endpoints and are connected by a PCIe cable. Configuration processing for operating as PCIe is executed from the server side. PCIe configuration processing is equivalent to normal processing.

このため、主サーバのCPUからみると、第1の統合エンドポイント1011と記憶装置107がエンドポイントとして接続されているように見える。また、拡張サーバのCPUからは記憶装置107がエンドポイントとして接続されているように見える。 Therefore, when viewed from the CPU of the main server, it appears that the first integrated endpoint 101 1 and the storage device 107 are connected as endpoints. From the CPU of the expansion server, it appears that the storage device 107 is connected as an end point.

第0のエンドポイント間CTL部501は、主サーバとしての第0−0のサーバ103と接続し、第1のエンドポイント間CTL部502は、同じく主サーバとしての第1−0のサーバ105と接続する。ここで第0−0のサーバ103は、ACT(active)系サーバ群を構成し、第1−0のサーバ105はSBY(standby)系サーバ群を構成している。このうちの現用系となるサーバがデータの送受信の対象となるので、どちらの系が現用系であるかのACT(active)・SBY(standby)系情報の取得が必要となる。   The 0th inter-endpoint CTL unit 501 is connected to the 0-0th server 103 as the main server, and the first interendpoint CTL unit 502 is also connected to the 1-0th server 105 as the main server. Connecting. Here, the 0-0 server 103 constitutes an ACT (active) server group, and the 1-0 server 105 constitutes an SBY (standby) server group. Of these, the active server is a target of data transmission / reception, so it is necessary to acquire ACT (active) / SBY (standby) system information as to which system is the active system.

記憶装置CTL部509は、LAN108(図5参照)を介して第0−0、第0−1、第1−0および第1−1の各サーバ103、1041、105、1061と接続するためのLANインタフェイスを有している。このため、記憶装置CTL部509は、LAN108を経由して、サーバ群を構成する各サーバ103〜1061との間で、ACT・SBY系情報を収集する。これにより、記憶装置CTL部509は、現用系となるサーバ群を認識し、待機系となるサーバ群からの記憶装置107へのアクセスを禁止する通知を第0および第1のエンドポイント間CTL部501、502に送出する。 The storage device CTL section 509 is connected to the 0-0, 0-1, 1-0, and 1-1 servers 103, 104 1 , 105, and 106 1 via the LAN 108 (see FIG. 5). LAN interface. Therefore, the storage device CTL unit 509 collects ACT / SBY system information with each of the servers 103 to 106 1 constituting the server group via the LAN 108. As a result, the storage device CTL unit 509 recognizes the active server group and notifies the 0th and first inter-endpoint CTL unit to prohibit access to the storage device 107 from the standby server group. 501 and 502 are sent out.

主サーバと記憶装置107の間でデータが転送される場合、第0あるいは第1のエンドポイント間CTL部501、502と1次共有メモリ191の間でデータ転送が発生する。1次共有メモリ191は、送信用としての出力メモリ(OutputMem)領域1930(OutputMem#0)、1931(OutputMem#1)と、受信用としての入力メモリ(InputMem)領域1940(InputMem#0)、1941(InputMem#1)に分割されている。1次共有メモリ191は、記憶装置CTL部509からのACT・SBY系情報を基にして現用系のデータ転送のみ実施する。 When data is transferred between the main server and the storage device 107, data transfer occurs between the 0th or first end-point CTL units 501 and 502 and the primary shared memory 191. The primary shared memory 191 includes an output memory (OutputMem) area 193 0 (OutputMem # 0) and 193 1 (OutputMem # 1) for transmission, and an input memory (InputMem) area 194 0 (InputMem # 0) for reception. , 194 1 (InputMem # 1). The primary shared memory 191 performs only the active data transfer based on the ACT / SBY system information from the storage device CTL unit 509.

第1の統合エンドポイント1011からサーバへデータの転送を実施するものとする。この場合、1次共有メモリ191に格納したPCIeパケットを、第0−0、第0−1、第1−0および第1−1のサーバ103、1041、105、1061のいずれに転送するかを決定する必要がある。転送先のサーバを決定するために主サーバは、各サーバの負荷状況(CPU使用率、メモリ使用量等)を基に判定を行う。判定結果は、LAN108(図5参照)を経由して記憶装置CTL部509に通知される。記憶装置CTL部509は、第0あるいは第1のメモリ間CTL部503、504に対してパケットの転送先の通知を行う。 It is assumed that data is transferred from the first integrated endpoint 101 1 to the server. In this case, the PCIe packet stored in the primary shared memory 191 is transferred to any of the 0th, 0th, 0th, 1st, 0th, and 1-1st servers 103, 104 1 , 105, 106 1. It is necessary to decide. In order to determine the destination server, the main server makes a determination based on the load status (CPU usage rate, memory usage, etc.) of each server. The determination result is notified to the storage device CTL unit 509 via the LAN 108 (see FIG. 5). The storage device CTL unit 509 notifies the 0th or first inter-memory CTL units 503 and 504 of the packet transfer destination.

第0あるいは第1のメモリ間CTL部503、504では、1次共有メモリ191へのデータの書き込みが完了したこと、および記憶装置CTL部509から通知されるパケットの転送先の通知情報を基にして、パケットのヘッダ情報の書き換えを行う。そして、この書き換えたヘッダ情報を基にして、転送先のサーバに対応した2次共有メモリ192に対して、データの転送を実施する。   The 0th or first memory-to-memory CTL units 503 and 504 are based on the completion of data writing to the primary shared memory 191 and the packet transfer destination notification information notified from the storage device CTL unit 509. The packet header information is rewritten. Then, based on the rewritten header information, data is transferred to the secondary shared memory 192 corresponding to the transfer destination server.

PCIeパケットに付与されるヘッダ情報については、後に説明を行う。図15に示す例では、転送先が主サーバとしての第0−0のサーバ103あるいは第1−0のサーバ105の場合、入力メモリサーバ(InputMemServer#0−0)領域1960-0(または入力メモリサーバ(InputMemServer#1−0)領域1961-0)にデータを書き込む。また、転送先が拡張サーバとしての第0−1のサーバ103あるいは第1−1のサーバ105の場合、入力メモリサーバ(InputMemServer#0−1)領域1960-1(または入力メモリサーバ(InputMemServer#1−1)領域1961-1)にデータを書き込む。 The header information added to the PCIe packet will be described later. In the example shown in FIG. 15, when the transfer destination is the 0-0 server 103 or the 1-0 server 105 as the main server, the input memory server (InputMemServer # 0-0) area 196 0-0 (or input) Data is written in the memory server (InputMemServer # 1-0) area 196 1-0 ). When the transfer destination is the 0-1st server 103 or 1-1 server 105 as an expansion server, the input memory server (InputMemServer # 0-1) area 196 0-1 (or the input memory server (InputMemServer #) 1-1) Write data in area 196 1-1 ).

主サーバあるいは拡張サーバは、第0−0、第0−1、第1−0および第1−1の各サーバに対応した第0−0、第0−1、第1−0、第1−1のサーバ間CTL部505〜508を監視する。そして、データが書き込まれたことを確認した後に、2次共有メモリ192からデータの読み出しを行う。   The primary server or the expansion server is the 0-0, 0-1, 0-1, 1-0, 1-0 corresponding to the 0-0, 0-1, 0-1 and 1-1 servers. The server-to-server CTL units 505 to 508 are monitored. Then, after confirming that the data has been written, the data is read from the secondary shared memory 192.

第0−0、第0−1、第1−0および第1−1の各サーバから第1の統合エンドポイント1011にデータを転送する場合を次に説明する。この場合には、サーバごとに用意されている第0−0、第0−1、第1−0、第1−1のサーバ間CTL部505〜508を介して2次共有メモリ192に対するデータの転送を実施する。第0あるいは第1のメモリ間CTL部503、504は、第1の統合エンドポイント1011へ転送するデータが2次共有メモリ192に書き込まれたかを監視する。 Next, a case where data is transferred from the 0-0th, 0-1st, 1-0, and 1-1 servers to the first integrated endpoint 101 1 will be described. In this case, data of the secondary shared memory 192 is transmitted via the 0-0, 0-1, 1-0, and 1-1 server CTL units 505 to 508 prepared for each server. Perform the transfer. Zeroth or first-memory CTL unit 503 and 504, data to be transferred first to the integration endpoints 101 1 monitors whether written in the secondary shared memory 192.

転送するデータが2次共有メモリ192に書き込まれたことが検出されたら、2次共有メモリ192からデータが読み出される。そして、1次共有メモリ191に対するデータの転送が実施される。主サーバは、第0あるいは第1のエンドポイント間CTL部501、502を介して1次共有メモリ191に対するデータが書き込まれたことを認識すると、1次共有メモリ191からデータを読み出して、第1の統合エンドポイント1011へのデータ転送を実施する。 When it is detected that the data to be transferred is written in the secondary shared memory 192, the data is read from the secondary shared memory 192. Then, data transfer to the primary shared memory 191 is performed. When the main server recognizes that data has been written to the primary shared memory 191 via the 0th or first inter-endpoint CTL units 501 and 502, it reads the data from the primary shared memory 191 and The data is transferred to the integrated endpoint 101 1 .

<記憶装置とサーバ間の接続>   <Connection between storage device and server>

図16は、各サーバと記憶装置の接続の状態を一般化して表わしたものである。図5ではACT系サーバ群として第0−0のサーバ(Server#0−0)103に対して拡張サーバとしての1台の第0−1のサーバ(Server#0−1)1041が存在する場合を示した。図16ではACT系サーバ群の拡張サーバとして第0−1のサーバ(Server#0−1)1041〜第0−Nのサーバ(Server#0−N)104Nが存在している。同様に、図5ではSBY系サーバ群として第1−0のサーバ(Server#1−0)105に対して拡張サーバとしての1台の第1−1のサーバ(Server#1−1)1061が存在する場合を示した。図16ではSBY系サーバ群の拡張サーバとして第1−1のサーバ(Server#1−1)1061〜第1−Nのサーバ(Server#1−N)106Nが存在している。数値Nは任意の正の整数である。 FIG. 16 shows a generalized state of connection between each server and the storage device. In FIG. 5, there is one 0-1 server (Server # 0-1) 104 1 as an expansion server for the 0-0 server (Server # 0-0) 103 as the ACT server group. Showed the case. In FIG. 16, the 0th- 1 server (Server # 0-1) 104 1 to the 0-Nth server (Server # 0-N) 104 N exist as expansion servers of the ACT server group. Similarly, in FIG. 5, one 1-1-1 server (Server # 1-1) 106 1 as an expansion server is compared to the 1-0 server (Server # 1-0) 105 as the SBY server group. The case where exists. In FIG. 16, there are a 1-1 server (Server # 1-1) 106 1 to a 1-Nth server (Server # 1-N) 106 N as expansion servers of the SBY server group. The numerical value N is an arbitrary positive integer.

このエンドポイント共有システム100Aでは、記憶装置107Aに第0−0、第0−1〜第0−N、第1−0、第1−1〜第1−Nのサーバ間CTL部505、5061〜506N、507、5081〜508Nと、第0および第1のエンドポイント間CTL部501、502が配置されている。ここで、第0−0のサーバ間CTL部505は、主サーバとしての第0−0のサーバ103とPCIeケーブルを用いて1対1で接続されている。同様に第0−1〜第0−Nのサーバ間CTL部5061〜506Nは、拡張サーバとしての第0−1〜第0−Nのサーバ1041〜104Nと、それぞれPCIeケーブルを用いて1対1で接続されている。また、第1−0のサーバ間CTL部507は、主サーバとしての第1−0のサーバ105とPCIeケーブルを用いて1対1で接続されている。同様に第1−1〜第1−Nのサーバ間CTL部5081〜508Nは、拡張サーバとしての第1−1〜第1−Nのサーバ1061〜106Nと、それぞれPCIeケーブルを用いて1対1で接続されている。更に、第0および第1のエンドポイント間CTL部501、502は、主サーバとしての第0−0のサーバ103および第1−0のサーバ105と、それぞれPCIeケーブルを用いて1対1で接続されている。 In the endpoint sharing system 100A, the 0-0, 0-1 to 0-N, 1-0, 1-1 to 1-N inter-server CTL units 505, 506 1 are stored in the storage device 107A. ˜ 506 N , 507, 508 1 to 508 N , and the 0th and first end point CTL units 501 and 502 are arranged. Here, the 0-0 inter-server CTL unit 505 is connected to the 0-0 server 103 as a main server in a one-to-one relationship using a PCIe cable. Similarly, the 0-th to 0-N server-to-server CTL units 506 1 to 506 N use PCIe cables as the 0-1 to 0-N servers 104 1 to 104 N as expansion servers, respectively. Are connected one to one. The 1-0 inter-server CTL unit 507 is connected to the 1-0 server 105 as a main server in a one-to-one manner using a PCIe cable. Similarly server inter CTL unit 508 1 ~508 N of the 1-1 second 1-N includes a server 106 1 - 106 N of the 1-1 second 1-N as an extension server, using a PCIe cable respectively Are connected one to one. Further, the 0-th and first-end-point CTL units 501 and 502 are connected to the 0-0 server 103 and the 1-0 server 105 as the main server on a one-to-one basis using PCIe cables. Has been.

このため、各サーバ間CTL部505、5061〜506N、507、5081〜508Nと各エンドポイント間CTL部501、502は、PCIeのエンドポイントとして各サーバ103、1041〜104N、105、1061〜106Nから認識される。このため、各サーバ103、1041〜104N、105、1061〜106Nはデータの送受信についてドライバソフトを必要とするが、そのインストールが完了すれば、他のサーバの影響を考慮することなく、記憶装置107Aの制御を行うことが可能になる。各サーバ103、1041〜104N、105、1061〜106Nによる記憶装置107Aの制御は、通常のPCIeエンドポイントの制御と同じである。 Therefore, the server-to-server CTL units 505, 506 1 to 506 N , 507, 508 1 to 508 N and the server-to-endpoint CTL units 501, 502 are respectively connected to the servers 103, 104 1 to 104 N , as PCIe endpoints. 105, 106 1 to 106 N are recognized. For this reason, each of the servers 103, 104 1 to 104 N , 105, 106 1 to 106 N requires driver software for data transmission / reception, but if the installation is completed, the influence of other servers is not considered. The storage device 107A can be controlled. The control of the storage device 107A by each of the servers 103, 104 1 to 104 N , 105, 106 1 to 106 N is the same as the normal PCIe endpoint control.

更に、各サーバ103、1041〜104N、105、1061〜106Nと記憶装置107Aは、前記した1対1で接続されるための、相互に独立したPCIeメモリ空間に記憶装置をマッピングすることが可能となる。したがって、他のサーバのメモリ空間を考慮する必要がなくなる。 Further, each of the servers 103, 104 1 to 104 N , 105, 106 1 to 106 N and the storage device 107A map the storage device to the mutually independent PCIe memory space for the one-to-one connection. It becomes possible. Therefore, it is not necessary to consider the memory space of other servers.

主サーバとしての第0−0のサーバ103と第1−0のサーバ105は、1次共有メモリ191および2次共有メモリ192(図15参照)へのアクセスのために記憶装置107Aに対してPCIeインタフェイスを2系統備える。拡張サーバ1041〜104N、1061〜106Nについては2次共有メモリ192へのアクセスのみが許可される。このため、拡張サーバ1041〜104N、1061〜106Nは記憶装置107Aに対してPCIeインタフェイスを1系統のみ備える。 The 0th-0th server 103 and the 1st-0th server 105 serving as the main server provide PCIe to the storage device 107A for access to the primary shared memory 191 and the secondary shared memory 192 (see FIG. 15). Two interfaces are provided. Expansion for server 104 1 ~104 N, 106 1 ~106 N only access to the secondary shared memory 192 is permitted. For this reason, the expansion servers 104 1 to 104 N and 106 1 to 106 N have only one PCIe interface for the storage device 107A.

主サーバとしての第0−0のサーバ103と第1−0のサーバ105は、メモリ空間上に統合エンドポイント1011と記憶装置107Aの2つをエンドポイントとしてマッピングを行う。ただし、第0−0のサーバ103と第1−0のサーバ105のマッピングについての作業は、通常の動作と同一である。 And the 0-0 server 103 as the primary server first 1-0 server 105 performs the mapping as two endpoints integrated in the memory space endpoint 101 1 and memory 107A. However, the work for mapping the 0-0 server 103 and the 1-0 server 105 is the same as the normal operation.

<動作の説明>   <Description of operation>

図17は、本実施の形態のエンドポイント共有システムにおけるデータの転送処理の様子を表わしたものである。図17では、第1の統合エンドポイント1011、主サーバとしての第0−0のサーバ103、記憶装置107および拡張サーバとしての第0−1のサーバ1041を例にしてデータの転送処理を説明する。既に説明したように第1の統合エンドポイント1011と直接アクセスすることができるのは、この図17に示した中では第0−0のサーバ103のみである。統合エンドポイント1011と第0−1のサーバ1041の間のデータのやり取りは、記憶装置107を介してのデータ転送という形となる。 FIG. 17 shows a state of data transfer processing in the endpoint sharing system of the present embodiment. In FIG. 17, data transfer processing is performed by taking the first integrated endpoint 101 1 , the 0-0 server 103 as the main server, the storage device 107 and the 0-1 server 104 1 as the expansion server as examples. explain. As described above, only the 0th to 0th servers 103 in FIG. 17 can directly access the first integrated endpoint 101 1 . Data exchange between the integrated endpoint 101 1 and the 0-1st server 104 1 takes the form of data transfer via the storage device 107.

<統合エンドポイントから主サーバおよび拡張サーバへのデータ転送>   <Data transfer from integrated endpoint to main server and expansion server>

第1の統合エンドポイント1011は、転送データとしてPCIeパケット601を送信する(ステップS701)。PCIeパケット601は、PCIeヘッダとデータ本体としてのPCIeデータから構成されている。主サーバとしての第0−0のサーバ103がこのPCIeパケットを受信する。 The first integrated endpoint 101 1 transmits the PCIe packet 601 as transfer data (step S701). The PCIe packet 601 is composed of a PCIe header and PCIe data as a data body. The 0th to 0th servers 103 as the main server receive this PCIe packet.

第0−0のサーバ103は、第1の統合エンドポイント1011からPCIeパケットを受信すると、ディスクリプタ(descriptor)とデータ領域の間に、サーバ(Server)名、統合エンドポイント(EP)番号およびエンドポイント(EP)番号から構成されるヘッダフィールド602を挿入する。そして、このPCIeパケット601を記憶装置107に転送する(ステップS702)。ここで、「サーバ名」にはこのPCIeパケットをどのサーバ上のアプリケーションで実行するかを示すサーバ名を挿入する。 The 0-0 server 103 receives the PCIe packet from the first integrated endpoint 101 1, and between the data area descriptor (descriptor), the server (Server) names, integrated endpoint (EP) number and end A header field 602 composed of point (EP) numbers is inserted. Then, the PCIe packet 601 is transferred to the storage device 107 (step S702). Here, in “server name”, a server name indicating which application on which the PCIe packet is executed is inserted.

PCIeパケットを処理するサーバの決定は、主サーバとしての第0−0のサーバ103上で操作するソフトウェアであるPS#0−4とPS#1−4(図10参照)が連携して実行する。ここでソフトウェアPS#0−4は、各サーバの負荷状況(CPU使用率、メモリ使用率等)を基にして、アプリケーションを実行するサーバをたとえば負荷の軽いものに決定する。第0−0のサーバ103は、転送先のサーバ名を決定すると、記憶装置CTL部509(図15)に対して転送先サーバ名を通知する。記憶装置CTL部509では、転送を受けたPCIeパケット601のサーバ名フィールドに、ソフトウェアPS#0−4が決定した情報を基にしてサーバ名を挿入する。   PS # 0-4 and PS # 1-4 (refer to FIG. 10), which are software operating on the 0th-0th server 103 as the main server, are determined in cooperation with each other to determine the server that processes the PCIe packet. . Here, the software PS # 0-4 determines, for example, a server with a light load based on the load status (CPU usage rate, memory usage rate, etc.) of each server. When determining the transfer destination server name, the 0-0th server 103 notifies the storage device CTL unit 509 (FIG. 15) of the transfer destination server name. The storage device CTL unit 509 inserts the server name in the server name field of the received PCIe packet 601 based on the information determined by the software PS # 0-4.

記憶装置107では、転送を受けたPCIeパケット601の統合EP番号およびEP番号フィールドに、このPCIeパケット601の送信元の統合エンドポイント番号と、エンドポイントの番号を挿入する。これにより、拡張サーバとしての第0−1のサーバ1041では、ヘッダフィールド602の統合EP番号およびEP番号フィールドに記載された番号を基にして受信したパケットが、どのような機能を持つエンドポイント111(図5)から送信されてきたパケットであるかを判定することが可能になる。また、所定のデバイスドライバに渡すことで、アプリケーションに対してパケットを渡すことが可能となる。 In the storage device 107, the integrated endpoint number of the transmission source of the PCIe packet 601 and the endpoint number are inserted into the integrated EP number and EP number fields of the received PCIe packet 601. As a result, in the 0-1st server 104 1 as an expansion server, the end point of what function the packet received based on the integrated EP number of the header field 602 and the number described in the EP number field has. It is possible to determine whether the packet is transmitted from 111 (FIG. 5). In addition, a packet can be passed to an application by passing it to a predetermined device driver.

記憶装置107では、主サーバとしての第0−0のサーバ103から転送されてきたデータが1次共有メモリ191に書き込まれたことを検出する(ステップS703)。そして、PCIeパケット601の転送先が記憶装置CTL部509(図15)から通知されると(ステップS704)、第0のメモリ間CTL部503で転送先サーバ名を記載する。その後、サーバ(Server)名フィールドに記載されたサーバに対応した2次共有メモリ192にPCIeパケット601を転送する(ステップS705)。   The storage device 107 detects that the data transferred from the 0-0th server 103 as the main server has been written in the primary shared memory 191 (step S703). When the transfer destination of the PCIe packet 601 is notified from the storage device CTL unit 509 (FIG. 15) (step S704), the transfer destination server name is written in the 0th memory-to-memory CTL unit 503. Thereafter, the PCIe packet 601 is transferred to the secondary shared memory 192 corresponding to the server described in the server name field (step S705).

拡張サーバとしての第0−1のサーバ1041は、各サーバごとに2次共有メモリ192に自サーバ宛のデータが書き込まれていないか周期的に監視を行う。第0−1のサーバ1041は、データが書き込まれたことを確認すると、2次共有メモリ192からデータの読み出しを実行する(ステップS706)。 The 0-1st server 104 1 as an expansion server periodically monitors whether the data addressed to its own server is written in the secondary shared memory 192 for each server. When the 0-1st server 104 1 confirms that the data has been written, it reads out the data from the secondary shared memory 192 (step S706).

<主サーバおよび拡張サーバからエンドポイントへのデータの転送>   <Transfer data from the main server and expansion server to the endpoint>

拡張サーバとしての第0−1のサーバ1041上のアプリケーションがエンドポイントに対してデータの送信を行うものとする。この場合、エンドポイント送信用のPCIeパケット611が第0−1のサーバ1041上のアプリケーションで作成される。このPCIeパケット611にサーバ名、統合エンドポイント番号およびエンドポイント番号から構成されるヘッダフィールド612を挿入し、2次共有メモリ192に対してデータの書き込みを実行する(ステップS711)。 Shall first 0-1 application server 104 on one of the extension server to transmit the data to the endpoint. In this case, PCIe packet 611 for the endpoint transmission is generated by the application on the server 104 1 of the first 0-1. A header field 612 composed of a server name, an integrated endpoint number, and an endpoint number is inserted into the PCIe packet 611, and data is written to the secondary shared memory 192 (step S711).

ここで、ヘッダフィールド612におけるサーバ名には、処理を実行したサーバ名を挿入する。また拡張エンドポイント番号とエンドポイント番号に対しては、データの送信処理が、エンドポイントから受信したデータに対するレスポンスである場合は、受信時と同じ番号を記載する。これにより、最終的にエンドポイントにデータを送信する主サーバとしての第0−0のサーバ103が、どの統合エンドポイントあるいはエンドポイントに対してデータを送信するかの判定が可能になる。   Here, the name of the server that executed the process is inserted into the server name in the header field 612. For the extended endpoint number and the endpoint number, if the data transmission process is a response to the data received from the endpoint, the same number as that at the time of reception is described. This makes it possible to determine to which integrated endpoint or endpoint the 0-0 server 103 as the main server that ultimately transmits data to the endpoint transmits data.

なお、この例ではPCIeパケット611の送出先は第1の統合エンドポイント1011のみである。したがって拡張サーバとしての第0−1のサーバ1041が宛先を判断できないという事態は発生しない。図5に示した第1および第2の統合エンドポイント1011、1012のように複数の統合エンドポイントが存在する場合がある。このような場合には、第0−1のサーバ1041がこれらのいずれを宛先にするかを判断できない場合が想定される。この場合、第0−1のサーバ1041は統合エンドポイント番号に対して「ドントケア(Don't Care)」を付与する。 In this example, the destination of the PCIe packet 611 is only the first integrated endpoint 101 1 . Accordingly situation that server 104 1 of the 0-1 as an extension server can not determine the destination does not occur. There may be a plurality of integrated endpoints such as the first and second integrated endpoints 101 1 and 101 2 shown in FIG. In such a case, it is assumed that the 0-1st server 104 1 cannot determine which of these is the destination. In this case, the 0-1st server 104 1 gives “Don't Care” to the integrated endpoint number.

記憶装置107は、拡張サーバとしての第0−1のサーバ1041あるいは主サーバとしての第0−0のサーバ103から2次共有メモリ192に書き込みが行われたことを検出すると、このデータを1次共有メモリ191に転送する(ステップS712)。 When the storage device 107 detects that data has been written to the secondary shared memory 192 from the 0-1st server 104 1 as the expansion server or the 0-0th server 103 as the main server, the storage device 107 stores this data as 1 The data is transferred to the next shared memory 191 (step S712).

主サーバとしての第0−0のサーバ103は、記憶装置107の1次共有メモリ191にエンドポイントへの送信データが書き込まれていないか周期的に監視を行う。第0−0のサーバ103は、1次共有メモリ191にこの送信データが書き込まれたことを確認すると、この送信データの読み出しを実行する(ステップS713)。   The 0th to 0th servers 103 as the main servers periodically monitor whether transmission data to the endpoint is written in the primary shared memory 191 of the storage device 107. When it is confirmed that the transmission data is written in the primary shared memory 191, the 0th-0th server 103 executes reading of the transmission data (step S 713).

第0−0のサーバ103は、読み込んだPCIeパケット611に挿入されたヘッダフィールド(拡張ヘッダ)612を削除する。そして削除したヘッダフィールド612におけるエンドポイント番号に記載された番号を用いて、どのエンドポイントに対してPCIeパケット611を送信するかを決定する。第0−0のサーバ103は、次に該当するエンドポイントに対応するデバイスドライバを用いて、そのエンドポイント(この場合には第1統合エンドポイント1011)に対してPCIeパケット611の送信を実施する(ステップS714)。 The 0th-0th server 103 deletes the header field (extension header) 612 inserted in the read PCIe packet 611. Then, by using the number described in the endpoint number in the deleted header field 612, it is determined to which endpoint the PCIe packet 611 is transmitted. The 0th-0th server 103 transmits the PCIe packet 611 to the endpoint (in this case, the first integrated endpoint 101 1 ) using the device driver corresponding to the next corresponding endpoint. (Step S714).

先に説明したようにヘッダフィールド612の統合エンドポイント番号に「ドントケア(Don't Care)」が付与されている場合がある。この場合には主サーバとしての第0−0のサーバ103が送信先の統合エンドポイントを決定する。そして、この決定した統合エンドポイントに対してPCIeパケット611を送信することになる。   As described above, “Don't Care” may be added to the integrated endpoint number in the header field 612. In this case, the 0th-0th server 103 as the main server determines the destination integrated endpoint. Then, the PCIe packet 611 is transmitted to the determined integrated endpoint.

以上説明したように本実施の形態のエンドポイント共有システム100によれば、次のような効果がある。   As described above, the endpoint sharing system 100 according to the present embodiment has the following effects.

第1の効果として、本実施の形態では複数のCPUが同一のエンドポイントにアクセスできる。エンドポイントについては、PCIeに準拠したデバイスを、そのまま用いることが可能である。   As a first effect, in this embodiment, a plurality of CPUs can access the same endpoint. For the endpoint, a device conforming to PCIe can be used as it is.

第2の効果として、本実施の形態では、CPUの切り替えを高速に実現することが可能になる。これは、エンドポイントにアクセスできるCPUを切り替える際に、エンドポイントに対するリセットや再設定処理が不要なためである。   As a second effect, in the present embodiment, CPU switching can be realized at high speed. This is because when the CPU that can access the endpoint is switched, reset or reset processing for the endpoint is unnecessary.

第3の効果として、本実施の形態では、CPU側の負荷に応じてサーバを増減設可能な、スケーラビリティの高いシステムを構築することが可能となる。これは、ACT系CPUとSBY系CPUを物理的に分離された複数のCPUで構成可能なためである。   As a third effect, in the present embodiment, it is possible to construct a highly scalable system in which servers can be increased or decreased according to the load on the CPU side. This is because the ACT CPU and the SBY CPU can be composed of a plurality of physically separated CPUs.

第4の効果として、本実施の形態では、エンドポイント側の負荷に応じて統合エンドポイントを増減設可能な、スケーラビリティの高いシステムを構築することが可能である。これは、物理的に分離された複数のEPをシステムに組み込むためである。   As a fourth effect, in the present embodiment, it is possible to construct a highly scalable system that can increase or decrease the number of integrated endpoints according to the load on the endpoint side. This is for incorporating a plurality of physically separated EPs into the system.

第5の効果として、本実施の形態では、CPU側の負荷(ソフトウェア処理)と、エンドポイント側の負荷(ハードウェア処理)に応じて、負荷の状況に対応した個別に増減設可能なスケーラビリティの高いシステムを構築することが可能である。   As a fifth effect, according to the present embodiment, scalability that can be individually increased or decreased according to the load situation according to the load on the CPU side (software processing) and the load on the endpoint side (hardware processing). It is possible to build a high system.

第6の効果として、本実施の形態では、メモリを利用したサーバ間データ送受信方法を実現することで、エンドポイントを接続していないサーバから、エンドポイントに対してデータの入出力を可能とするシステムを構築することが可能である。   As a sixth effect, in this embodiment, by implementing a data transmission / reception method between servers using a memory, it is possible to input / output data to / from an endpoint from a server not connected to the endpoint. It is possible to build a system.

第7の効果として、本実施の形態では記憶装置に汎用品および標準化された規格の半導体メモリを使用した。これにより、記憶装置およびこれを使用したエンドポイント共有システム100を安価に構成することができる。また、本実施の形態では各サーバと記憶装置107の間をPCIeで接続する。サーバから直接、PCIeのパケットを記憶装置に対して転送することで、ハードディスクへのデータのやり取りの際に発生するSAS(Serial Attached SCSI)、SATA(SerialATA)等のプロトコルを省力することが可能になる。これにより、プロトコルのオーバヘッドを削減し、サーバに搭載されているCPUの処理の負荷を低減することが可能となる。   As a seventh effect, in the present embodiment, a general-purpose product and a standardized semiconductor memory are used for the storage device. Accordingly, the storage device and the endpoint sharing system 100 using the storage device can be configured at low cost. In this embodiment, each server and the storage device 107 are connected by PCIe. By transferring PCIe packets directly from the server to the storage device, it is possible to save labor on protocols such as SAS (Serial Attached SCSI) and SATA (SerialATA) that occur when data is transferred to the hard disk. Become. As a result, the overhead of the protocol can be reduced, and the processing load of the CPU mounted on the server can be reduced.

第8の効果として、本実施の形態では記憶装置をサーバ間のデータの受け渡しに主として使用している。このような用途ではデータ転送の高速化が必要であるが、大容量化は必ずしも必要とされない。このような場合に半導体メモリを使用してハードディスクの使用を避けると、システムの信頼性を向上させることができる。ハードディスクは機械的に駆動する部品が含まれるため、故障が発生する可能性が高く、信頼性の点でネックとなるからである。   As an eighth effect, in the present embodiment, the storage device is mainly used for data transfer between servers. In such applications, it is necessary to increase the speed of data transfer, but it is not always necessary to increase the capacity. In such a case, if the use of a hard disk is avoided by using a semiconductor memory, the reliability of the system can be improved. This is because a hard disk includes mechanically driven parts, so that there is a high possibility that a failure will occur, and this is a bottleneck in terms of reliability.

第9の効果として、本実施の形態ではPCIeのパケットに統合エンドポイントの番号を組み込むことで、複数の統合エンドポイントに対応して宛先のエンドポイントにデータを転送することが可能になる。また、データの転送の宛先等の情報を記した拡張ヘッダの付与により、エンドポイントに接続されていない拡張サーバがどのような種類のエンドポイントからのデータを受信したかを容易に判別し、所定のアプリケーションに対してデータを渡すことが可能になる。また、送信の際には、どのエンドポイントに対してデータを渡すべきかをエンドポイントに接続するサーバに通知することで、正しくデータを宛先のエンドポイントに送信することが可能になる。   As a ninth effect, in this embodiment, it is possible to transfer data to destination endpoints corresponding to a plurality of integration endpoints by incorporating the integration endpoint number into the PCIe packet. Also, by adding an extension header that describes information such as the data transfer destination, it is possible to easily determine what kind of endpoint the extension server that is not connected to the endpoint has received, and Data can be passed to other applications. Further, when transmitting, it is possible to correctly transmit the data to the destination endpoint by notifying to which endpoint the data should be passed to the server connected to the endpoint.

<発明の変形可能性>   <Deformability of invention>

先の実施の形態で示したように複数の統合エンドポイントを実装することで、必要とされる処理能力に応じた統合エンドポイントの増減設が可能となり、汎用性の高いシステムを構築することが可能になる。しかしながら、統合エンドポイントを増設するためには、既に説明したように主サーバに対して統合エンドポイントとの接続用のPCIe NICカードを増設する必要がある。しかし、サーバの増設スロット数には制限があるため、システムとして必要とされる統合エンドポイントを増設できない可能性がある。   By implementing multiple integrated endpoints as shown in the previous embodiment, it is possible to increase or decrease the number of integrated endpoints according to the required processing capacity, and to build a highly versatile system It becomes possible. However, in order to increase the number of integrated endpoints, it is necessary to add a PCIe NIC card for connection with the integrated endpoint to the main server as described above. However, since the number of expansion slots of the server is limited, there is a possibility that an integrated endpoint required as a system cannot be added.

PCIeでは、データがPCIeパケットとして転送される。このため、他のプロトコルでPCIeパケットをカプセル化することが可能である。   In PCIe, data is transferred as a PCIe packet. For this reason, it is possible to encapsulate PCIe packets with other protocols.

図18は、本発明の第1の変形例におけるエンドポイント共有システムの構成を表わしたものである。この変形例のエンドポイント共有システム100Bで図5と同一部分には同一の符号を付しており、これらの説明を適宜省略する。   FIG. 18 shows the configuration of the endpoint sharing system in the first modification of the present invention. In the modified endpoint sharing system 100B, the same parts as those in FIG. 5 are denoted by the same reference numerals, and description thereof will be omitted as appropriate.

この第1の変形例のエンドポイント共有システム100Bでは、第0−0のサーバ103BのPCIe NICカード(PCIe NIC#001)121Bが第1のイーサネット(登録商標)スイッチ801の一端に接続されている。この第1のイーサネット(登録商標)スイッチ801の他端には、第1の統合エンドポイント1011の第0のポート1510Bと第2の統合エンドポイント1012の第0のポート(図示せず)が接続されている。同様に、第1−0のサーバ105BのPCIe NICカード(PCIe NIC#101)125Bが第2のイーサネット(登録商標)スイッチ802の一端に接続されている。この第2のイーサネット(登録商標)スイッチ802の他端には、第1の統合エンドポイント1011の第1のポート1511Bと第2の統合エンドポイント1012の第0のポート(図示せず)が接続されている。 In the endpoint sharing system 100B of the first modified example, the PCIe NIC card (PCIe NIC # 001) 121B of the 0-0th server 103B is connected to one end of the first Ethernet (registered trademark) switch 801. . At the other end of the first Ethernet switch 801, the 0th port 151 0 B of the first integrated endpoint 101 1 and the 0th port (not shown) of the second integrated endpoint 101 2 are shown. Connected). Similarly, a PCIe NIC card (PCIe NIC # 101) 125B of the 1-0 server 105B is connected to one end of the second Ethernet (registered trademark) switch 802. The other end of the second Ethernet switch 802 is connected to the first port 151 1 B of the first integrated endpoint 101 1 and the 0th port (not shown) of the second integrated endpoint 101 2 . Connected).

すなわち、第1の変形例のエンドポイント共有システム100Bでは、イーサネット(登録商標)フレームでカプセル化を行う。これにより、イーサネット(登録商標)のMACアドレス(Media Access Control address)をベースにしてサーバ、および複数のエンドポイントの識別を行い、宛先を指定することが可能になる。このためには、主サーバとしての第0−0のサーバ103Bと第1−0のサーバ105Bの双方に、PCIeパケットをイーサネット(登録商標)フレームにカプセル化するためのPCIe NICカード121B、125Bを実装している。また、第1および第2の統合エンドポイント1011、1012側にも、第0のポート1510Bと第1のポート1511BのようにPCIeパケットのイーサネット(登録商標)カプセル化機能を追加している。 That is, in the endpoint sharing system 100B of the first modified example, encapsulation is performed with an Ethernet (registered trademark) frame. This makes it possible to identify a server and a plurality of endpoints based on the Ethernet (registered trademark) MAC address (Media Access Control address), and to specify a destination. For this purpose, PCIe NIC cards 121B and 125B for encapsulating PCIe packets in Ethernet (registered trademark) frames are provided to both the 0-0 server 103B and the 1-0 server 105B as the main servers. Implemented. Also, the Ethernet (registered trademark) encapsulation function of the PCIe packet is provided on the first and second integrated endpoints 101 1 and 101 2 side like the 0th port 151 0 B and the 1st port 151 1 B. It has been added.

各サーバ103B、1041、105B、1061と第1および第2の統合エンドポイント1011、1012の間はイーサネット(登録商標)で接続される。したがって、第0−0および第0−1のサーバ103B、105Bと第1および第2の統合エンドポイント1011、1012の間に第1および第2のイーサネット(登録商標)スイッチ801、802を介在させることで、パケットの宛先を制御することが可能になる。この結果として、第0−0および第0−1のサーバ103B、105Bに実装されているPCIeスロット数に依存することなく、第1および第2の統合エンドポイント1011、1012等の統合エンドポイントの数を増減させることができる。たとえば第0−0のサーバ103Bは1枚のPCIe NICカード(PCIe NIC#001)121Bが第1のイーサネット(登録商標)スイッチ801を介することで、任意の数の統合エンドポイントの第0のポート1510Bと接続可能である。 Each server 103B, 104 1 , 105B, 106 1 and the first and second integrated endpoints 101 1 , 101 2 are connected by Ethernet (registered trademark). Accordingly, the first and second Ethernet (registered trademark) switches 801 and 802 are provided between the 0-0 and 0-1 servers 103B and 105B and the first and second integrated endpoints 101 1 and 101 2. By interposing, it becomes possible to control the destination of the packet. As a result, the integrated end of the first and second integrated endpoints 101 1 , 101 2, etc., without depending on the number of PCIe slots mounted on the 0-0 and 0-1 servers 103B, 105B. You can increase or decrease the number of points. For example, the 0th-0th server 103B is configured such that one PCIe NIC card (PCIe NIC # 001) 121B is connected to the 0th port of any number of integrated endpoints via the first Ethernet (registered trademark) switch 801. 151 0 B can be connected.

このように第1の変形例によれば、サーバ群を構成する1台の第0−0のサーバ103B等の主サーバに対して、サーバ1041等の拡張サーバを複数台増設することができる。 As described above, according to the first modification, a plurality of expansion servers such as the server 1041 can be added to one main server such as the 0th-0th server 103B constituting the server group. .

図19は、本発明の第2の変形例として、統合エンドポイントと各系の拡張サーバが共にN台となったエンドポイント共有システムを表わしたものである。ここで数値Nは2以上の整数である。図19に示した第2の変形例のエンドポイント共有システム100Cで、図5と同一部分には同一の符号を付しており、これらの説明を適宜省略する。   FIG. 19 shows an endpoint sharing system in which there are N integrated endpoints and extended servers of each system as a second modification of the present invention. Here, the numerical value N is an integer of 2 or more. In the endpoint sharing system 100C of the second modified example shown in FIG. 19, the same parts as those in FIG. 5 are denoted by the same reference numerals, and description thereof will be omitted as appropriate.

第2の変形例のエンドポイント共有システム100Cでは、記憶装置107CがLAN115に接続すると共に、ACT系サーバ群901とSBY系サーバ群902と接続している。ここでACT系サーバ群901は1台の主サーバとしての第1の主サーバ911と、第0−1〜第0−Nの拡張サーバ9121〜912Nから構成されている。SBY系サーバ群902は同じく1台の主サーバとしての第2の主サーバ921と、第0−1〜第0−Nの拡張サーバ9221〜922Nから構成されている。 In the endpoint sharing system 100C of the second modified example, the storage device 107C is connected to the LAN 115, and is connected to the ACT server group 901 and the SBY server group 902. Here, the ACT server group 901 includes a first main server 911 as one main server, and 0-1 to 0-N expansion servers 912 1 to 912 N. Similarly, the SBY server group 902 includes a second main server 921 as one main server and 0-1 to 0-N expansion servers 922 1 to 922 N.

第1の主サーバ911は記憶装置107Cと、エンドポイント(EP)通信用PCIeケーブル931で接続される。また、第1の主サーバ911と第0−1〜第0−Nの拡張サーバ9121〜912Nは、それぞれ個別のサーバ間通信用PCIeケーブル9320〜932Nで記憶装置107Cと接続される。同様に、第2の主サーバ921は記憶装置107Cと、エンドポイント(EP)通信用PCIeケーブル941で接続される。また、第2の主サーバ921と第0−1〜第0−Nの拡張サーバ9221〜922Nは、それぞれ個別のサーバ間通信用PCIeケーブル9420〜942Nで記憶装置107Cと接続される。更に第1の主サーバ911と第2の主サーバ921は、それぞれイーサネット(登録商標)スイッチ801Cを介して第1〜第Nの統合エンドポイント(EP)1011〜101Nと接続されている。 The first main server 911 is connected to the storage device 107C by an endpoint (EP) communication PCIe cable 931. Further, the first main server 911 extend server 912 1 ~912 N of the 0-1~ second 0-N is connected to the storage device 107C respectively separate server communication for PCIe cable 932 0 ~932 N . Similarly, the second main server 921 is connected to the storage device 107C via an endpoint (EP) communication PCIe cable 941. Further, a second main server 921 extend server 922 1 ~922 N of the 0-1~ second 0-N is connected to the storage device 107C respectively separate server communication for PCIe cable 942 0 ~942 N . Further, the first main server 911 and the second main server 921 are respectively Ethernet connection with (R) first to N integrated endpoint through the switch 801C (EP) 101 1 to 101 N.

第2の変形例のエンドポイント共有システム100Cは、N台の統合エンドポイント(EP)1011〜101Nと、N台ずつの第0−1〜第0−Nの拡張サーバ9121〜912Nおよび第0−1〜第0−Nの拡張サーバ9221〜922Nから成る。このようにエンドポイント共有システム100Cでは、サーバ群を構成する1台の主サーバ911(主サーバ921)に対して拡張サーバを複数台増設することが可能になっている。しかも、これらACT系サーバ群901とSBY系サーバ群902についてのソフトウェア処理と、第1〜第Nの統合エンドポイント(EP)1011〜101Nについてのハードウェア処理を分離して、個別に必要な数の増減設が可能である。 The endpoint sharing system 100C according to the second modified example includes N integrated endpoints (EP) 101 1 to 101 N and N 0-1 to 0-N expansion servers 912 1 to 912 N. And 0-1 to 0-N expansion servers 922 1 to 922 N. As described above, in the endpoint sharing system 100C, a plurality of extension servers can be added to one main server 911 (main server 921) constituting the server group. In addition, the software processing for the ACT server group 901 and the SBY server group 902 and the hardware processing for the first to Nth integrated endpoints (EP) 101 1 to 101 N are separately required. It is possible to increase or decrease the number.

しかも、第2の変形例ではソフトウェア処理による各サーバ911、912、921、922と、ハードウェア処理による統合エンドポイント101をカプセル化したイーサネット(登録商標)経由で接続している。これにより、イーサネット(登録商標)で接続した各サーバ911、912、921、922と統合EP101を、仮想的に1つのシステムとして構成することが可能になる。また、記憶装置107Cは、主サーバ911、921の間を2系統のPCIeケーブルで接続し、拡張サーバ912、922の間を1系統のPCIeケーブルで接続している。これにより、統合エンドポイント101と各サーバ(主サーバ911、921および拡張サーバ912、922)間のデータ転送を実現することが可能になる。この結果、物理的に分離された、サーバ群901、902、統合エンドポイント群1011〜101Nおよび記憶装置107Cを、仮想的に1つのシステムとして制御することが可能となる。 Moreover, in the second modification, the servers 911, 912, 921, and 922 by software processing are connected to the integrated endpoint 101 by hardware processing via Ethernet (registered trademark). As a result, the servers 911, 912, 921 and 922 and the integrated EP 101 connected via Ethernet (registered trademark) can be virtually configured as one system. In the storage device 107C, the main servers 911 and 921 are connected by two systems of PCIe cables, and the expansion servers 912 and 922 are connected by a system of PCIe cables. This makes it possible to realize data transfer between the integrated endpoint 101 and each server (main servers 911 and 921 and expansion servers 912 and 922). As a result, the physically separated server groups 901 and 902, integrated endpoint groups 101 1 to 101 N and the storage device 107C can be virtually controlled as one system.

以上説明した実施の形態の一部または全部は、以下の付記のようにも記載されるが、以下の記載に限定されるものではない。   Some or all of the embodiments described above are described as in the following supplementary notes, but are not limited to the following descriptions.

(付記1)
コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する統合エンドポイント側送信手段と、
この統合エンドポイント側送信手段の送信したPCIeパケットに格納されたデータを処理する拡張サーバを決定する拡張サーバ決定手段と、
この拡張サーバ決定手段で決定した拡張サーバのサーバ名を前記PCIeパケットに挿入する拡張サーバ名挿入手段と、
この拡張サーバ名挿入手段でサーバ名を挿入したPCIeパケットを前記主サーバから所定の記憶装置に送信する主サーバ側送信手段と、
この主サーバ側送信手段で送信したPCIeパケットを受信して前記記憶装置内の1次共有メモリに書き込む1次共有メモリ書込手段と、
この1次共有メモリ書込手段で前記1次共有メモリに書き込んだPCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記拡張サーバ決定手段で決定した2次共有メモリに転送する2次共有メモリ転送手段
とを具備することを特徴とするエンドポイント共有システム。
(Appendix 1)
An active system from a predetermined endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints Integrated endpoint side transmission means for transmitting a PCIe packet to a main server as a server of
Extended server determining means for determining an extended server for processing data stored in the PCIe packet transmitted by the integrated endpoint side transmitting means;
Extended server name inserting means for inserting the server name of the extended server determined by the extended server determining means into the PCIe packet;
Main server side transmitting means for transmitting the PCIe packet, in which the server name is inserted by the extended server name inserting means, from the main server to a predetermined storage device;
Primary shared memory writing means for receiving the PCIe packet transmitted by the main server side transmitting means and writing it to the primary shared memory in the storage device;
The PCIe packet written to the primary shared memory by the primary shared memory writing means is individually provided for each of the active and standby servers and is individually transferred to these servers. A secondary shared memory transfer means for transferring to a secondary shared memory determined by the expansion server determination means among the secondary shared memories used for the endpoint shared system.

(付記2)
コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける特定のエンドポイントに対して任意の主サーバおよび拡張サーバがデータの送信を行うときそのPCIeパケットに前記特定のエンドポイントを表わす識別情報を挿入する拡張サーバ側挿入手段と、
この拡張サーバ側挿入手段で前記識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの送信元の前記任意の主サーバおよび拡張サーバに対応する2次共有メモリに格納する2次共有メモリ格納手段と、
この2次共有メモリ格納手段が前記2次共有メモリのいずれかにPCIeパケットを格納したとき前記識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信するPCIeパケット送信手段
とを具備することを特徴とするエンドポイント共有システム。
(Appendix 2)
For a specific endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints An extension server side insertion means for inserting identification information representing the specific endpoint into the PCIe packet when an arbitrary main server and extension server transmit data;
A plurality of secondary packets, each of which is provided in correspondence with each main server and each expansion server, and is used for individual transfer of data to and from these servers, with the PCIe packet having the identification information inserted by the expansion server side insertion means. Secondary shared memory storage means for storing in a secondary shared memory corresponding to the arbitrary main server and expansion server of the transmission source in the shared memory;
PCIe packet transmitting means for reading the identification information when the secondary shared memory storing means stores the PCIe packet in any of the secondary shared memories and transmitting the PCIe packet to the endpoint determined from the identification information; An end point sharing system comprising:

(付記3)
前記主サーバおよび拡張サーバは1組あるいは複数組存在することを特徴とする請求項1または請求項2記載のエンドポイント共有システム。
(Appendix 3)
The endpoint sharing system according to claim 1 or 2, wherein the main server and the extension server exist in one or more sets.

(付記4)
前記統合エンドポイントは1組あるいは複数組存在することを特徴とする請求項1または請求項2記載のエンドポイント共有システム。
(Appendix 4)
3. The endpoint sharing system according to claim 1, wherein one or more sets of integrated endpoints exist.

(付記5)
前記拡張サーバ決定手段は、各サーバの負荷状況の軽い拡張サーバを決定することを特徴とする請求項1記載のエンドポイント共有システム。
(Appendix 5)
The endpoint sharing system according to claim 1, wherein the extension server determination unit determines an extension server having a light load status of each server.

(付記6)
前記記憶装置は半導体メモリによって構成されることを特徴とする請求項1記載のエンドポイント共有システム。
(Appendix 6)
2. The endpoint sharing system according to claim 1, wherein the storage device is constituted by a semiconductor memory.

(付記7)
前記2次共有メモリは半導体メモリによって構成されることを特徴とする請求項2記載のエンドポイント共有システム。
(Appendix 7)
3. The endpoint sharing system according to claim 2, wherein the secondary shared memory is constituted by a semiconductor memory.

(付記8)
コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する統合エンドポイント側送信ステップと、
この統合エンドポイント側送信ステップで送信したPCIeパケットを受信した主サーバがこのPCIeパケットに格納されたデータを処理する拡張サーバを決定する拡張サーバ決定ステップと、
この拡張サーバ決定ステップで決定した拡張サーバのサーバ名を前記PCIeパケットに挿入する拡張サーバ名挿入ステップと、
この拡張サーバ名挿入ステップでサーバ名を挿入したPCIeパケットを前記主サーバから所定の記憶装置に送信する主サーバ側送信ステップと、
この主サーバ側送信ステップで送信したPCIeパケットを受信して前記記憶装置内の1次共有メモリに書き込む1次共有メモリ書込ステップと、
この1次共有メモリ書込ステップで前記1次共有メモリに書き込んだPCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記拡張サーバ決定ステップで決定した2次共有メモリに転送する2次共有メモリ転送ステップ
とを具備することを特徴とするデータ転送方法。
(Appendix 8)
An active system from a predetermined endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints An integrated endpoint side transmission step of transmitting a PCIe packet to a main server as a server of
An extended server determining step in which the main server that has received the PCIe packet transmitted in the integrated endpoint side transmitting step determines an extended server that processes the data stored in the PCIe packet;
An extended server name inserting step of inserting the server name of the extended server determined in the extended server determining step into the PCIe packet;
A main server side transmission step of transmitting the PCIe packet into which the server name is inserted in the extended server name insertion step from the main server to a predetermined storage device;
A primary shared memory writing step of receiving the PCIe packet transmitted in the main server side transmission step and writing it into the primary shared memory in the storage device;
The PCIe packet written to the primary shared memory in the primary shared memory writing step is individually provided for each of the active and standby servers and individually transferred to these servers. And a secondary shared memory transfer step of transferring to the secondary shared memory determined in the extended server determination step among the secondary shared memories used for the data transfer.

(付記9)
コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける特定のエンドポイントに対してデータの送信を行う任意の主サーバおよび拡張サーバがPCIeパケットに前記特定のエンドポイントを表わす識別情報を挿入する拡張サーバ側挿入ステップと、
この拡張サーバ側挿入ステップで前記識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの自サーバに対応する2次共有メモリに格納する2次共有メモリ格納ステップと、
この2次共有メモリ格納ステップで前記2次共有メモリのいずれかにPCIeパケットが格納されたとき前記識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信するPCIeパケット送信ステップ
とを具備することを特徴とするデータ転送方法。
(Appendix 9)
For a specific endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints An extension server-side insertion step in which any main server and extension server that transmit data inserts identification information representing the specific endpoint in the PCIe packet;
A plurality of secondary packets, which are provided in correspondence with the main server and the expansion server, respectively, and are used for individual transfer of data to and from these servers, with the PCIe packet having the identification information inserted in the insertion step on the expansion server side. A secondary shared memory storing step of storing in a secondary shared memory corresponding to the own server of the shared memory;
A PCIe packet transmitting step of reading the identification information and transmitting the PCIe packet to the endpoint determined from the identification information when the PCIe packet is stored in any of the secondary shared memories in the secondary shared memory storing step A data transfer method comprising:

10、20、100、100A、100B、100C エンドポイント共有システム
11 統合エンドポイント側送信手段
12 拡張サーバ決定手段
13 拡張サーバ名挿入手段
14 主サーバ側送信手段
15 1次共有メモリ書込手段
16 2次共有メモリ転送手段
21 拡張サーバ側挿入手段
22 2次共有メモリ格納手段
23 PCIeパケット送信手段
30、40 データ転送方法
31 統合エンドポイント側送信ステップ
32 拡張サーバ決定ステップ
33 拡張サーバ名挿入ステップ
34 主サーバ側送信ステップ
35 1次共有メモリ書込ステップ
36 2次共有メモリ転送ステップ
41 拡張サーバ側挿入ステップ
42 2次共有メモリ格納ステップ
43 PCIeパケット送信ステップ
1011 第1の統合エンドポイント
1012 第2の統合エンドポイント
103 第0−0のサーバ(Server#0−0)
1041 第0−1のサーバ(Server#0−1)
105 第1−0のサーバ(Server#1−0)
1061 第1−1のサーバ(Server#1−1)
107 記憶装置
111 エンドポイント
121〜128、131、132 PCIe NICカード
141 PCIプロシキ機能部
1510 第0のポート
1511 第1のポート
152 ACT・SBY選択機能部
1540 第0の仮想PCIeコンフィグ(Configuration)レジスタ
1541 第1の仮想PCIeコンフィグ(Configuration)レジスタ
155 コンフィグ制御部
158 アドレス変換・振り分け機能部
161、162 ピーシーアイエクスプレスケーブル
191 1次共有メモリ
192 2次共有メモリ
501 第0のエンドポイント間CTL(EP間CTL)部
502 第1のエンドポイント間CTL(EP間CTL)部
503 第0のメモリ間CTL(MEM間CTL)部
504 第1のメモリ間CTL(MEM間CTL)部
505 第0−0のサーバ間CTL部
506 第0−1のサーバ間CTL部
507 第1−0のサーバ間CTL部
508 第1−1のサーバ間CTL部
509 記憶装置CTL部
601、611 PCIeパケット
602、612 ヘッダフィールド
193 出力メモリ(OutputMem)領域
194 入力メモリ(InputMem)領域
195 出力メモリサーバ領域
196 入力メモリサーバ領域
10, 20, 100, 100A, 100B, 100C Endpoint shared system 11 Integrated endpoint transmission means 12 Extended server determination means 13 Extended server name insertion means 14 Primary server side transmission means 15 Primary shared memory writing means 16 Secondary Shared memory transfer means 21 Expansion server side insertion means 22 Secondary shared memory storage means 23 PCIe packet transmission means 30, 40 Data transfer method 31 Integrated endpoint side transmission step 32 Extension server determination step 33 Extension server name insertion step 34 Main server side transmission step 35 primary shared memory writing step 36 secondary shared memory transfer step 41 extended server-side insertion step 42 secondary shared memory storage step 43 PCIe packet transmission step 101 1 first integrated endpoint 101 2 second If the end point 103 the first 0-0 of the server (Server # 0-0)
104 1 0-1 server (Server # 0-1)
105 1-0 server (Server # 1-0)
106 1 1-1 server (Server # 1-1)
107 Storage device 111 Endpoint 121-128, 131, 132 PCIe NIC card 141 PCI proxy function unit 151 0 0th port 151 1 1st port 152 ACT / SBY selection function unit 154 0 0th virtual PCIe configuration ) Register 154 1 First virtual PCIe configuration register 155 Configuration control unit 158 Address conversion / distribution function unit 161, 162 PC-Express cable 191 Primary shared memory 192 Secondary shared memory 501 CTL between 0th endpoints (EP-to-EP CTL) part 502 First inter-endpoint CTL (EP-to-EP CTL) part 503 0th memory-to-memory CTL (MEM-to-MEM CTL) part 504 First memory-to-memory CTL (to-MEM CTL) part 505 0- 0 CTL section between servers 506 0-1 CTL section between servers 507 CTL section between 1-0 servers 508 1-1 CTL section between servers 509 Storage device CTL section 601 611 PCIe packet 602 612 header field 193 Output memory (OutputMem) area 194 Input memory (InputMem) area 195 Output memory server area 196 Input memory server area

Claims (9)

コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する統合エンドポイント側送信手段と、
この統合エンドポイント側送信手段の送信したPCIeパケットに格納されたデータを処理する拡張サーバを決定する拡張サーバ決定手段と、
この拡張サーバ決定手段で決定した拡張サーバのサーバ名を前記PCIeパケットに挿入する拡張サーバ名挿入手段と、
この拡張サーバ名挿入手段でサーバ名を挿入したPCIeパケットを前記主サーバから所定の記憶装置に送信する主サーバ側送信手段と、
この主サーバ側送信手段で送信したPCIeパケットを受信して前記記憶装置内の1次共有メモリに書き込む1次共有メモリ書込手段と、
この1次共有メモリ書込手段で前記1次共有メモリに書き込んだPCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記拡張サーバ決定手段で決定した2次共有メモリに転送する2次共有メモリ転送手段
とを具備することを特徴とするエンドポイント共有システム。
An active system from a predetermined endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints Integrated endpoint side transmission means for transmitting a PCIe packet to a main server as a server of
Extended server determining means for determining an extended server for processing data stored in the PCIe packet transmitted by the integrated endpoint side transmitting means;
Extended server name inserting means for inserting the server name of the extended server determined by the extended server determining means into the PCIe packet;
Main server side transmitting means for transmitting the PCIe packet, in which the server name is inserted by the extended server name inserting means, from the main server to a predetermined storage device;
Primary shared memory writing means for receiving the PCIe packet transmitted by the main server side transmitting means and writing it to the primary shared memory in the storage device;
The PCIe packet written to the primary shared memory by the primary shared memory writing means is individually provided for each of the active and standby servers and is individually transferred to these servers. A secondary shared memory transfer means for transferring to a secondary shared memory determined by the expansion server determination means among the secondary shared memories used for the endpoint shared system.
コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける特定のエンドポイントに対して任意の主サーバおよび拡張サーバがデータの送信を行うときそのPCIeパケットに前記特定のエンドポイントを表わす識別情報を挿入する拡張サーバ側挿入手段と、
この拡張サーバ側挿入手段で前記識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの送信元の前記任意の主サーバおよび拡張サーバに対応する2次共有メモリに格納する2次共有メモリ格納手段と、
この2次共有メモリ格納手段が前記2次共有メモリのいずれかにPCIeパケットを格納したとき前記識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信するPCIeパケット送信手段
とを具備することを特徴とするエンドポイント共有システム。
For a specific endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints An extension server side insertion means for inserting identification information representing the specific endpoint into the PCIe packet when an arbitrary main server and extension server transmit data;
A plurality of secondary packets, each of which is provided in correspondence with each main server and each expansion server, and is used for individual transfer of data to and from these servers, with the PCIe packet having the identification information inserted by the expansion server side insertion means. Secondary shared memory storage means for storing in a secondary shared memory corresponding to the arbitrary main server and expansion server of the transmission source in the shared memory;
PCIe packet transmitting means for reading the identification information when the secondary shared memory storing means stores the PCIe packet in any of the secondary shared memories and transmitting the PCIe packet to the endpoint determined from the identification information; An end point sharing system comprising:
前記主サーバおよび拡張サーバは1組あるいは複数組存在することを特徴とする請求項1または請求項2記載のエンドポイント共有システム。   The endpoint sharing system according to claim 1 or 2, wherein the main server and the extension server exist in one or more sets. 前記統合エンドポイントは1組あるいは複数組存在することを特徴とする請求項1または請求項2記載のエンドポイント共有システム。   3. The endpoint sharing system according to claim 1, wherein one or more sets of integrated endpoints exist. 前記拡張サーバ決定手段は、各サーバの負荷状況の軽い拡張サーバを決定することを特徴とする請求項1記載のエンドポイント共有システム。   The endpoint sharing system according to claim 1, wherein the extension server determination unit determines an extension server having a light load status of each server. 前記記憶装置は半導体メモリによって構成されることを特徴とする請求項1記載のエンドポイント共有システム。   2. The endpoint sharing system according to claim 1, wherein the storage device is constituted by a semiconductor memory. 前記2次共有メモリは半導体メモリによって構成されることを特徴とする請求項2記載のエンドポイント共有システム。   3. The endpoint sharing system according to claim 2, wherein the secondary shared memory is constituted by a semiconductor memory. コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する統合エンドポイント側送信ステップと、
この統合エンドポイント側送信ステップで送信したPCIeパケットを受信した主サーバがこのPCIeパケットに格納されたデータを処理する拡張サーバを決定する拡張サーバ決定ステップと、
この拡張サーバ決定ステップで決定した拡張サーバのサーバ名を前記PCIeパケットに挿入する拡張サーバ名挿入ステップと、
この拡張サーバ名挿入ステップでサーバ名を挿入したPCIeパケットを前記主サーバから所定の記憶装置に送信する主サーバ側送信ステップと、
この主サーバ側送信ステップで送信したPCIeパケットを受信して前記記憶装置内の1次共有メモリに書き込む1次共有メモリ書込ステップと、
この1次共有メモリ書込ステップで前記1次共有メモリに書き込んだPCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記拡張サーバ決定ステップで決定した2次共有メモリに転送する2次共有メモリ転送ステップ
とを具備することを特徴とするデータ転送方法。
An active system from a predetermined endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints An integrated endpoint side transmission step of transmitting a PCIe packet to a main server as a server of
An extended server determining step in which the main server that has received the PCIe packet transmitted in the integrated endpoint side transmitting step determines an extended server that processes the data stored in the PCIe packet;
An extended server name inserting step of inserting the server name of the extended server determined in the extended server determining step into the PCIe packet;
A main server side transmission step of transmitting the PCIe packet into which the server name is inserted in the extended server name insertion step from the main server to a predetermined storage device;
A primary shared memory writing step of receiving the PCIe packet transmitted in the main server side transmission step and writing it into the primary shared memory in the storage device;
The PCIe packet written to the primary shared memory in the primary shared memory writing step is individually provided for each of the active and standby servers and individually transferred to these servers. And a secondary shared memory transfer step of transferring to the secondary shared memory determined in the extended server determination step among the secondary shared memories used for the data transfer.
コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける特定のエンドポイントに対してデータの送信を行う任意の主サーバおよび拡張サーバがPCIeパケットに前記特定のエンドポイントを表わす識別情報を挿入する拡張サーバ側挿入ステップと、
この拡張サーバ側挿入ステップで前記識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの自サーバに対応する2次共有メモリに格納する2次共有メモリ格納ステップと、
この2次共有メモリ格納ステップで前記2次共有メモリのいずれかにPCIeパケットが格納されたとき前記識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信するPCIeパケット送信ステップ
とを具備することを特徴とするデータ転送方法。
For a specific endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints An extension server-side insertion step in which any main server and extension server that transmit data inserts identification information representing the specific endpoint in the PCIe packet;
A plurality of secondary packets, which are provided in correspondence with the main server and the expansion server, respectively, and are used for individual transfer of data to and from these servers, with the PCIe packet having the identification information inserted in the insertion step on the expansion server side. A secondary shared memory storing step of storing in a secondary shared memory corresponding to the own server of the shared memory;
A PCIe packet transmitting step of reading the identification information and transmitting the PCIe packet to the endpoint determined from the identification information when the PCIe packet is stored in any of the secondary shared memories in the secondary shared memory storing step A data transfer method comprising:
JP2010025509A 2010-02-08 2010-02-08 Endpoint sharing system and data transfer method Expired - Fee Related JP5482263B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010025509A JP5482263B2 (en) 2010-02-08 2010-02-08 Endpoint sharing system and data transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010025509A JP5482263B2 (en) 2010-02-08 2010-02-08 Endpoint sharing system and data transfer method

Publications (2)

Publication Number Publication Date
JP2011164838A true JP2011164838A (en) 2011-08-25
JP5482263B2 JP5482263B2 (en) 2014-05-07

Family

ID=44595459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010025509A Expired - Fee Related JP5482263B2 (en) 2010-02-08 2010-02-08 Endpoint sharing system and data transfer method

Country Status (1)

Country Link
JP (1) JP5482263B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031678B2 (en) 2015-01-09 2018-07-24 Samsung Electronics Co., Ltd. Storage device, data storage device including the same, and operation method thereof
JP2019091494A (en) * 2014-10-05 2019-06-13 アマゾン テクノロジーズ インコーポレイテッド Emulated endpoint configuration

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6143370A (en) * 1984-08-03 1986-03-01 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション Multiplex processing system
JPH03225551A (en) * 1990-01-31 1991-10-04 Fujitsu Ltd Input and output device access control system
JPH1011369A (en) * 1996-06-27 1998-01-16 Hitachi Ltd Communication system and information processor with hot standby switching function
JP2005512194A (en) * 2001-11-30 2005-04-28 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Switching I / O node for connection in a multiprocessor computer system
JP2007148621A (en) * 2005-11-25 2007-06-14 Hitachi Ltd Computer system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6143370A (en) * 1984-08-03 1986-03-01 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション Multiplex processing system
JPH03225551A (en) * 1990-01-31 1991-10-04 Fujitsu Ltd Input and output device access control system
JPH1011369A (en) * 1996-06-27 1998-01-16 Hitachi Ltd Communication system and information processor with hot standby switching function
JP2005512194A (en) * 2001-11-30 2005-04-28 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Switching I / O node for connection in a multiprocessor computer system
JP2007148621A (en) * 2005-11-25 2007-06-14 Hitachi Ltd Computer system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019091494A (en) * 2014-10-05 2019-06-13 アマゾン テクノロジーズ インコーポレイテッド Emulated endpoint configuration
US11321247B2 (en) 2014-10-05 2022-05-03 Amazon Technologies, Inc. Emulated endpoint configuration
US11886355B2 (en) 2014-10-05 2024-01-30 Amazon Technologies, Inc. Emulated endpoint configuration
US10031678B2 (en) 2015-01-09 2018-07-24 Samsung Electronics Co., Ltd. Storage device, data storage device including the same, and operation method thereof

Also Published As

Publication number Publication date
JP5482263B2 (en) 2014-05-07

Similar Documents

Publication Publication Date Title
US7185143B2 (en) SAN/NAS integrated storage system
US8095701B2 (en) Computer system and I/O bridge
JP4543051B2 (en) Remote data facility on IP network
KR101455016B1 (en) Method and apparatus to provide a high availability solid state drive
US20170329625A1 (en) Method, apparatus, and system for accessing storage device
US7822908B2 (en) Discovery of a bridge device in a SAS communication system
EP1760591B1 (en) System and method of managing access path
US20060242330A1 (en) Proxy-based device sharing
US10951741B2 (en) Computer device and method for reading or writing data by computer device
US7774514B2 (en) Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method
EP1537700B1 (en) Protocol for accessing a local device of a remote node via infiniband
CN1976310B (en) Communication method using bus interface over a network
JP5482263B2 (en) Endpoint sharing system and data transfer method
WO2023186143A1 (en) Data processing method, host, and related device
US7930445B2 (en) Computer system using remote I/O and I/O data transfer method
JP2011048452A (en) End point proxy access device, sharing system, proxy access method and proxy access program
JP2011076174A (en) End point sharing system, proxy access method, and proxy access program
EP4113311B1 (en) Storage device, operating method of storage device, and electronic device
US11995357B2 (en) Disaggregation computing system and method
CN107911414B (en) Data access system
JP5910745B2 (en) Data backup method and interface card
KR20220141686A (en) Peripheral component interconnect express interface device and operating method thereof
CN116955250A (en) Fast peripheral component interconnect device and method of operating the same
JP2016536697A (en) Computer system and method for bidirectional transmission and reception of data

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20121016

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131029

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140203

R150 Certificate of patent or registration of utility model

Ref document number: 5482263

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees