WO2012157103A1 - マルチルートスイッチ、計算機、及び計算機間通信方法 - Google Patents

マルチルートスイッチ、計算機、及び計算機間通信方法 Download PDF

Info

Publication number
WO2012157103A1
WO2012157103A1 PCT/JP2011/061480 JP2011061480W WO2012157103A1 WO 2012157103 A1 WO2012157103 A1 WO 2012157103A1 JP 2011061480 W JP2011061480 W JP 2011061480W WO 2012157103 A1 WO2012157103 A1 WO 2012157103A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer
switch
address
transmission
area
Prior art date
Application number
PCT/JP2011/061480
Other languages
English (en)
French (fr)
Inventor
雅行 本間
辰一郎 関
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2011/061480 priority Critical patent/WO2012157103A1/ja
Publication of WO2012157103A1 publication Critical patent/WO2012157103A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping

Definitions

  • the present invention relates to a multi-route switch that mediates communication between a plurality of computers.
  • NTB Non-Transparent Bridge
  • the NTB is recognized as a PCI Express Endpoint inside the computer, and has the function of realizing one-to-one computer communication without going through an I / O device by connecting NTBs of two computers.
  • N N is an arbitrary plural number
  • N communication between computers is realized using NTB, a larger-scale system can be constructed, and a higher performance computer can be realized. Further, the I / O device used for connection between computers is not necessary.
  • Non-Patent Document 1 discloses a technique for connecting two systems via NTB.
  • N-to-N computer-to-computer communication is realized using NTB, a larger-scale system can be constructed.
  • each computer needs to secure an area for transmitting / receiving data to / from N computers in a memory in the computer.
  • the present invention has been made in view of the above problems, and an object of the present invention is to provide a technique capable of easily and appropriately performing data communication between a plurality of computers.
  • a multi-root switch is connected to a plurality of computers via a non-transparent bridge (NTB), and mediates data communication between the computers.
  • the in-switch memory has a plurality of in-switch receiving areas for storing data received from each computer for each computer and a plurality of in-switch transmitting areas for storing data to be transmitted to each computer for each computer. Have.
  • the base address receiving unit receives the base address of the in-computer transmission area for storing the data to be transmitted in the memory of the connected computer and the base address of the in-computer reception area for storing the received data.
  • An address conversion amount calculation unit is an address conversion during transmission that is a difference between a start address of the reception area in the switch for the computer to which the memory in the switch is connected and a base address of the transmission area in the computer in the memory of the computer and a reception address conversion amount that is a difference between the start address of the intra-switch transmission area of the intra-switch memory and the base address of the intra-computer reception area of the computer memory.
  • the conversion amount transmission unit transmits the transmission address conversion amount and the reception address conversion amount to the computer so as to set the NTB of the computer.
  • FIG. 1 is a configuration diagram of a communication system according to an embodiment of the present invention.
  • FIG. 2 is a configuration diagram of a communication system for realizing communication between computers according to a conventional example.
  • FIG. 3 is a block diagram showing an example of a communication system according to an embodiment of the present invention.
  • FIG. 4 is a diagram for explaining an address conversion amount of data output from a computer via the NTB in the communication system according to the embodiment of the present invention.
  • FIG. 5 is a diagram for explaining the address translation amount of data input to the computer via the NTB in the communication system according to the embodiment of the present invention.
  • FIG. 6 is a flowchart of processing for setting an NTB address translation amount according to an embodiment of the present invention.
  • FIG. 7 is a diagram illustrating an example of communication between computers according to an embodiment of the present invention.
  • FIG. 8 is a flowchart of communication processing between computers according to an embodiment of the present invention.
  • FIG. 1 is a configuration diagram of a communication system according to an embodiment of the present invention.
  • the communication system 101 includes N computers 103 to 106 and a PCI Express switch 102 as an example of a multi-route switch for connecting the N computers 103 to 106.
  • Each of the computers 103 to 106 includes Non-Transparent Bridge (NTB) 107 to 110, respectively.
  • NTB Non-Transparent Bridge
  • each of the computers 103 to 106 and the PCI Express switch 102 are connected via a PCI Express.
  • FIG. 2 is a configuration diagram of a communication system for realizing communication between computers according to a conventional example.
  • FIG. 2 shows an example of a communication system that realizes communication between computers using a LAN (Local Area Network).
  • LAN Local Area Network
  • the communication system 151 includes N computers 152, 155, and the like, and a LAN switch 158 for connecting the N computers.
  • Each of the computers 152 and 155 includes memories 153 and 156 and LAN Cards 154 and 157.
  • the memory 153 (156) and the LAN Card 154 (157) are connected by PCI Express.
  • the LAN Card 154 (157) and the LAN switch 158 are connected via the LAN.
  • data communication is performed using LAN protocols between the LAN Cards 154 and 157 and the LAN switch 158. Therefore, the LAN Cards 154 and 157 perform protocol conversion processing.
  • the communication system 101 according to the embodiment of the present invention shown in FIG. 1 does not require a LAN Card for performing protocol conversion processing unlike the communication system 151 according to the conventional example shown in FIG. No bottleneck caused by
  • FIG. 3 is a block diagram showing an example of a communication system according to an embodiment of the present invention.
  • FIG. 3 shows an example of a communication system 201 having four computers.
  • the communication system 201 includes a computer 202 (computer A), a computer 206 (computer B), a computer 210 (computer C), a computer 214 (computer D), and a PCI Express switch (also referred to as a switch) 218.
  • the computer 202 includes an NTB 203 as an example of an address conversion amount reception unit, a memory 204, and a CPU 205 as an example of a base address transmission unit.
  • the computer 206 includes an NTB 207, a memory 208, and a CPU 209.
  • the computer 210 includes an NTB 211, a memory 212, and a CPU 213.
  • the computer 214 includes an NTB 215, a memory 216, and a CPU 217.
  • the NTB 203, the memory 204, and the CPU 205 are connected by a bus.
  • the computer B, the computer C, and the computer D are connected to the NTB (207, 211, 215), the memory (208, 212, 216), and the CPU (209, 213, 217) by a bus.
  • NTB When communicating between each computer, communication is performed via NTB (203, 207, 211, 215) of each computer.
  • the NTB transmits and receives data and executes a process for converting a base address associated with the data.
  • the PCI Express switch 218 has an LSI 219.
  • the LSI 219 includes a plurality (four in this case) of upstream ports 220 to 223 for connecting to the computers 202, 206, 210, and 214, a data transfer engine 253, and a memory 224.
  • the data transfer engine 253 behaves as a PCI Express endpoint when viewed from the NTB of each computer. In other words, the data transfer engine 253 is set to operate as an endpoint according to the PCI Express specification.
  • the data transfer engine 253 includes a data transfer engine receiver 250 as an example of a base address receiver, an address conversion amount calculator, a data receiver, and a data storage controller, and a conversion amount transmitter and a data transmitter as examples.
  • a data transfer engine transmission unit 251 and a configuration register 252 are provided.
  • the configuration register 252 stores address conversion amounts in the NTBs 203, 207, 211, and 215 in the computers A to D.
  • the configuration register 252 can be referred to from the data transfer engine receiver 250 and the data transfer engine transmitter 251.
  • the data transfer engine receiving unit 250 has a base address of an area for storing transfer data (intra-computer transmission area) to be transmitted in the memory in each computer from each of the computers A to D, and a base address of an area for storing the received transfer data (Intra-computer reception area) is received, and the address translation amount at the time of transmission and reception of the NTB of each computer is calculated and recorded in the configuration register 252.
  • the data transfer engine reception unit 250 stores data received from the NTB of the computer in an area corresponding to the computer in the memory 224.
  • the data transfer engine transmission unit 251 transmits the address conversion amount at the time of transmission and reception stored in the configuration register 252 to the corresponding computer, and causes the NTB to set it. Further, the data transfer engine transmission unit 251 takes out the data to be transferred from the memory 224 and transmits it to the transfer destination computer.
  • FIG. 4 is a diagram for explaining an address conversion amount of data output from a computer via the NTB in the communication system according to the embodiment of the present invention
  • FIG. 5 is a communication system according to the embodiment of the present invention. It is a figure explaining the address conversion amount of the data input into a computer via NTB in FIG.
  • FIG. 4 is an example showing the address translation amount ⁇ B in the NTB 207 when data is transferred (transmitted) to the PCI Express switch 218 via the NTB 207 included in the computer B.
  • FIG. This is an example showing the address translation amount ⁇ B in the NTB 207 when data is transferred to the computer B, that is, when the computer B receives data.
  • the address conversion amount when transmitting from the computer L (L is an arbitrary code) is expressed as ⁇ L
  • the address conversion amount when the computer L receives is expressed as ⁇ L.
  • the memory 208 of the computer B is an area for storing data to be transferred to the outside via the NTB 207 (transmission area: intra-computer transmission area) and an area for storing data transferred from the outside via the NTB 207 (reception area: computer) Inner receiving area).
  • the base address of the transmission region is X B
  • the base address of the receiving area is Y B.
  • the base address of the intra-computer transmission area in the memory of the computer L (L is an arbitrary code) is represented as X L
  • the base address of the intra-computer reception area in the memory of the computer L is represented as Y L.
  • the memory 224 as an example of the in-switch memory of the PCI Express switch 218 includes a first area 301 for storing data transferred from each computer and a second area 302 for storing data transferred to each computer. Have.
  • the first area 301 and the second area 302 are continuous areas in the memory 224.
  • the first area 301 has a plurality of assignment areas (intra-switch reception areas) assigned to each of the computers connected to the switch 218.
  • it has allocation areas A1 to D1 allocated to computers A to D. That is, the allocation area A1 is used for storing data allocated to the computer A and transferred from the computer A.
  • the allocation area B1 is assigned to the computer B and is used for storing data transferred from the computer B.
  • the allocation area C1 is allocated to the computer C and used to store data transferred from the computer C.
  • the allocation area D1 is assigned to the computer D and is used for storing data transferred from the computer D.
  • the allocation areas A1 to D1 are continuous areas in the memory 224.
  • the start addresses of the allocation areas A1 to D1 are the start addresses 227 to 230, respectively.
  • the second area 302 has an allocation area (transmission area within the switch) that is allocated to each computer connected to the switch 218.
  • it has allocation areas A2 to D2 allocated to computers A to D. That is, the allocation area A2 is used to store data that is allocated to the computer A and transferred (transmitted) to the computer A.
  • the allocation area B2 is allocated to the computer B and is used for storing data to be transferred to the computer B.
  • the allocation area C2 is allocated to the computer C and is used for storing data to be transferred to the computer C.
  • the allocation area D2 is used to store data that is allocated to the computer D and transferred to the computer D.
  • the allocation areas A2 to D2 are continuous areas in the memory 224.
  • the top addresses of the allocation areas A2 to D2 are the top addresses 231 to 234, respectively.
  • the allocation area B1 of the first area 301 is allocated to the computer B, and data in the transmission area of the memory 208 of the computer B is stored in the allocation area B1.
  • the address conversion process at the time of data transmission by the NTB 207 in the computer B is a process of converting the address of the transmission area of the computer B into the address of the allocation area B1, and the address conversion amount ⁇ B in the address conversion process is shown in FIG. as shown, in which the head address 228 of the allocation area B1 by subtracting the base address X B of the transmission area of the memory 208.
  • the allocation area B2 of the second area 302 is allocated to the computer B, and the data of the allocation area B2 is stored in the reception area of the memory 208 of the computer B.
  • the address conversion process at the time of data reception by the NTB 207 in the computer B is a process of converting the address of the allocation area B2 into the address of the reception area of the computer B.
  • the address conversion amount ⁇ B in the address conversion process is shown in FIG. as shown, in which the head address 232 of allocation region B2 obtained by subtracting the base address Y B of the receiving area of the memory 208.
  • the PCI Express switch 218 transfers the transfer data from the allocation area of the first area 301 corresponding to the transfer source computer to the allocation area of the second area 302 corresponding to the transfer destination computer.
  • This transfer process is realized by converting the address in the allocation area of the first area 301 corresponding to the transfer source computer to the address in the allocation area of the second area 302 corresponding to the transfer destination computer.
  • a difference amount ⁇ address difference amount ⁇
  • address difference amount from the start address of the allocation area corresponding to the transfer destination computer is added to the start address of the allocation area corresponding to the transfer source computer.
  • This address difference amount ⁇ is determined by the transfer source computer and the transfer destination computer, and corresponds to the transfer source computer from the start address of the allocation area of the second area 302 corresponding to the transfer destination computer. It can be calculated by subtracting the start address of the allocation area of the first area 301.
  • the address difference amount when data is transferred from the computer L to the computer M is represented as ⁇ LM .
  • the address difference amount ⁇ BC when the transfer source is the computer B and the transfer destination is the computer C, and the address difference amount ⁇ BC is an allocation area of the second area 302 corresponding to the computer C. It is calculated by subtracting the start address 228 of the allocation area B1 of the first area 301 corresponding to the computer B from the start address 233 of C2. Note that the top addresses of the allocation areas A1 to D1 and A2 to D2 are stored in a predetermined area of the memory 224, for example.
  • FIG. 6 is a flowchart of processing (address conversion amount setting processing) for setting the address conversion amount of NTB according to an embodiment of the present invention.
  • FIG. 6 shows a flowchart for setting the address translation amounts ⁇ B and ⁇ B of the NTB 207 in the computer B , but the address translation amounts are set by the same process for NTBs in other computers.
  • the computer B recognizes the PCI Express switch 218 (after the computer B is connected to the PCI Express switch 218 or the computer B connected to the PCI Express switch 218 has a power supply). It will be executed after it has been submitted.
  • CPU 209 of computer B takes out from the memory 208 and the base address X B of the transmission region in the memory 208, and a base address Y B of the receiving area
  • PCI Express transmitted to the data transfer engine receiving portion 250 of the switch 218, the data transfer engine receiving unit 250 has set the base address X B of the transmission area, and a base address Y B of the receiving area in the configuration register 252.
  • the CPU 209 (or NTB 207) of the computer B performs configuration access to the PCI Express switch 218 (step S500).
  • configuration access is performed to the data transfer engine receiving unit 250.
  • the data transfer engine reception unit 250 performs a bit operation on the configuration register 252 in accordance with the PCI Express specification, for example, to validate the first area 301 and the second area 302. Note that the method of enabling the first area 301 and the second area 302 is not limited to this.
  • the data transfer engine receiving unit 250 the address conversion amount by subtracting the base address X B of the transmission area from the start address 228 of the assigned area B1 of the first region 301 corresponding to the computer B memory 208 alpha B is calculated.
  • the data transfer engine reception unit 250 records the address conversion amount ⁇ B in the configuration register 252 (step S501).
  • the data transfer engine reception unit 250 calculates the address conversion amount ⁇ B by subtracting the base address Y B of the reception area of the memory 208 from the head address 232 of the allocation area B 2 of the second area 302. Next, the data transfer engine reception unit 250 records the address translation amount ⁇ B in the configuration register 252 (step S502).
  • the data transfer engine transmission unit 251 transmits the address conversion amounts ⁇ B and ⁇ B recorded in the configuration register 252 so as to be set in the NTB 207 of the computer B (step S503).
  • the data transfer engine transmission unit 251 transmits the address conversion amounts ⁇ B and ⁇ B to the CPU 209 of the computer B, and the CPU 209 (address conversion amount setting unit) sets the address conversion amounts ⁇ B and ⁇ B in the NTB 207. You may do it.
  • the processing for setting the address conversion amount described above is performed for each of the computers A to D.
  • the NTBs 203, 207, 211, and 215 of the computers A to D have addresses unique to the respective computers.
  • Conversion amounts ⁇ and ⁇ are set.
  • the PCI Express switch 218 can perform data transfer processing without being aware of the data address in the memories of the computers A to D.
  • FIG. 7 is a diagram for explaining an example of communication between computers according to an embodiment of the present invention
  • FIG. 8 is a flowchart of communication processing between computers according to an embodiment of the present invention.
  • FIG. 7 and 8 show an example of data transfer from the computer B to the computer D, but data transfer between other computers is also performed by the same processing. Before the process of FIG. 8 is performed, an address conversion amount setting process as shown in FIG. 6 is performed for each computer.
  • the CPU 209 inputs data 350 including actual data to be transferred from the memory 208 of the computer B to the memory 216 of the computer D to the NTB 207 (step S504).
  • the data 350 along with the actual data to be transmitted (DATAD), a base address X B of the transmission area of the memory 208, the offset to the base address X B address actual data is stored in the transmission region (OFFSETB ), Transmission destination information (calcD) indicating the transmission destination computer D, and an offset (offsetD) with respect to the base address Y D of the address storing the actual data in the reception area of the memory 216 of the computer D.
  • the NTB 207 of the computer B generates the data 351 by adding the address conversion amount ⁇ B at the time of transmission to the base address X B of the data 350, and transfers the data 351 to the data transfer engine receiving unit 250 of the PCI Express switch 218. (Step S505).
  • the base address of the data is changed from the base address X B of the transmission area of the memory 208 to the allocation area B 1 of the first area 301 of the switch 218. It can be converted to the start address 228.
  • the data 351 transferred to the data transfer engine receiving unit 250 indicates the transfer source data 352 assigned by the data transfer engine receiving unit 250 to the allocation area B1 corresponding to the computer B in the first area 301 and the transfer destination computer.
  • the data is divided into data 353 (step S506).
  • the data 352 includes actual data to be transmitted (dataD), a base address (base address X B + address conversion amount ⁇ B ), an offset (offsetB) of the data, and (offsetD).
  • the data 353 includes transmission destination information (calcD) indicating the transmission destination computer D.
  • the data transfer engine receiving unit 250 stores the data 352 in the allocation area B1 of the first area 301, and transfers the data 353 to the routing module 226 as an example of a routing unit (step S507).
  • the routing module 226 specifies the transmission destination computer D based on the data 353, and assigns the data stored in the allocation area B1 of the first area 301 to the allocation of the second area 302 allocated to the specified computer D.
  • an address difference amount ⁇ BD to be added to the base address of the data in the allocation area B1 is calculated (step S508).
  • the address difference amount ⁇ BD is obtained by subtracting the start address 228 of the allocation area B1 of the first area 301 from the start address 234 of the allocation area D2 of the second area 302.
  • the routing module 226 takes out the data 352 stored in the allocation area B1 of the first area 301, adds the address difference amount ⁇ BD to the base address, and adds the base address to X B + ⁇ B + ⁇ BD (ie, allocation).
  • the data is converted into data 354 with the offset of the data as offsetD, and stored in the allocation area D2 of the second area 302 (step S509).
  • the data transfer engine transmission unit 251 extracts the data 355 from the allocation area D2 of the second area 302 corresponding to the computer D, and transfers it to the NTB 215 of the computer D (step S510).
  • the base address Y D of the receiving area of the base address memory 216 of the data 355 has been described as a value obtained by adding the address conversion amount beta D upon reception of NTB215
  • NTB215 computer D subtracts the address amount of conversion beta D from the base address of the data 355 transferred from the PCI Express switch 218, and data 356 (step S511).
  • the base address is made from the start address 234 of the allocation region D2 and minus the address conversion amount beta D, the base address of the data, from the head address 234 assignment region D2, the base of the receiving region of the memory 216 It is converted into the address Y D.
  • NTB 215 outputs data 356 to CPU 217, and CPU 217 stores the actual data in memory 216 based on the base address of data 356 (step S512). As a result, the actual data to be transferred is appropriately stored in the reception area of the memory 216.
  • the actual data to be transferred is designated as the transmission destination in the plurality of computers from the allocation area of the first area 301 corresponding to the transmission source computer in the plurality of computers. It is possible to appropriately transfer to the allocation area of the second area 302 corresponding to the computer being operated. The actual data transferred to the allocation area of the second area 302 can be transmitted to the computer corresponding to the allocation area. Therefore, data can be appropriately transferred between any computers connected to the PCI Express switch 218. That is, N-to-N communication between computers can be realized.
  • the data transfer engine receiving unit 250 and the data transfer engine transmitting unit 251 are shown as separate units, but may be a single functional unit.
  • the routing module 226 determines the start address of the allocation area of the first area 301 allocated to the transmission source computer from the start address of the allocation area of the second area 302 allocated to the transmission destination computer.
  • the present invention is not limited to this.
  • the amount ⁇ is stored in advance in the memory 224 (address difference amount storage unit) of the switch 218, and the corresponding address difference amount ⁇ is specified and used from the memory 224 based on the computer to which the data is transferred. May be.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

マルチルートスイッチは、複数の計算機にNTB(Non-Transparent Bridge)を介して接続される。メモリには、受信データを計算機毎に記憶するスイッチ内受信領域及び送信データを計算機毎に記憶するスイッチ内送信領域を有する。ベースアドレス受信部が、計算機内送信領域及び計算機内受信領域のベースアドレスを受信する。アドレス変換量算出部が、スイッチ内受信領域の先頭アドレスと計算機内送信領域のベースアドレスとの差分の送信時アドレス変換量を算出するとともに、スイッチ内送信領域の先頭アドレスと計算機内受信領域のベースアドレスとの差分の受信時アドレス変換量を算出する。変換量送信部が、送信時アドレス変換量及び受信時アドレス変換量をNTBに設定するように送信する。

Description

マルチルートスイッチ、計算機、及び計算機間通信方法
 本発明は、複数の計算機間の通信を仲介するマルチルートスイッチ等に関する。
 一般に、高性能なシステムを構築する場合、LANカード等のI/Oデバイスを利用することにより、複数の計算機同士を接続して、計算機間通信を実現する。このようなシステムでは、計算機間通信を行う際には、I/Oデバイスがプロトコル変換等の処理を実行することとなるため、このI/Oデバイスの演算処理が計算機間通信におけるボトルネックに繋がる可能性がある。また、接続する計算機の数に応じて、I/Oデバイスを備える必要があり、システムの構造が複雑化する。
 このような課題を解決する方法としてNon-Transparent Bridge(NTBという)を利用する方法がある。NTBは計算機内部でPCI ExpressのEndpointとして認識され、2台の計算機のNTB同士を接続することで、I/Oデバイスを介することなく1対1の計算機間通信を実現する機能を持つ。NTBを使用してN(Nは、任意の複数)対Nの計算機間通信を実現するとさらに大規模なシステム構築が可能で、より高性能な計算機を実現できる。また、計算機間の接続に利用していたI/Oデバイスが必要なくなる。
 NTBを用いた技術としては、複数のホストと、複数のストレージとをスイッチにより接続する技術が、例えば、特許文献1に開示されている。また、NTBを介して、2つのシステムを接続する技術が、非特許文献1や非特許文献2に開示されている。
米国特許出願公開第2010/0088456号明細書
IDT Use of Non-transparent Bridging with IDT PCI Express PCIe Gen1 NTB Switches Application Note AN-510(http://www.idt.com/products/getdoc.cfm?docid=18699345) Intel Xeon Processor C5500/C3500 Series Non-Transparent Bridge White Paper(http://download.intel.com/design/intarch/papers/323328.pdf)
 NTBを使用してN対Nの計算機間通信を実現すると、より大規模なシステム構築が可能である。この場合には、各計算機においては、N個の計算機とのデータを送受信するための領域を計算機内のメモリに確保する必要がある。
 これを実現するためには、各計算機に対して、N個の計算機が接続されることを想定して設計を行う必要がある。しかしながら、計算機においては、必ずしもN個の計算機と接続されるものではなく、1つの計算機についてN個の計算機との接続を考慮してリソースを用意すると、無駄になってしまう可能性がある。さらに、N個の計算機のメモリに対応する領域をN個の計算機の全てで持つことはOSへの影響が大きくドライバ実装等、コストの面から非現実的である。
 本発明は、上記課題に鑑みなされたものであり、その目的は、複数の計算機間のデータ通信を容易且つ適切に行うことのできる技術を提供することにある。
 上記目的達成のため、本発明の一観点に係るマルチルートスイッチは、複数の計算機にNon-Transparent Bridge(NTB)を介して接続され、前記計算機間のデータの通信を仲介する。スイッチ内メモリには、各計算機から受信したデータを前記計算機毎に記憶するための複数のスイッチ内受信領域及び各計算機に対して送信するデータを前記計算機毎に記憶する複数のスイッチ内送信領域を有する。
 ベースアドレス受信部が、接続された前記計算機のメモリにおける送信するデータを記憶するための計算機内送信領域及び受信するデータを記憶するための計算機内受信領域のベースアドレスを受信する。アドレス変換量算出部が、前記スイッチ内メモリの接続される前記計算機用の前記スイッチ内受信領域の先頭アドレスと、前記計算機のメモリの計算機内送信領域のベースアドレスとの差分である送信時アドレス変換量を算出するとともに、前記スイッチ内メモリの前記スイッチ内送信領域の先頭アドレスと、前記計算機のメモリの計算機内受信領域のベースアドレスとの差分である受信時アドレス変換量を算出する。変換量送信部が、前記送信時アドレス変換量及び前記受信時アドレス変換量を、前記計算機の前記NTBに設定するように前記計算機に送信する。
図1は、本発明の一実施形態に係る通信システムの構成図である。 図2は、従来例に係る計算機間通信を実現する通信システムの構成図である。 図3は、本発明の一実施形態に係る通信システムの一例を示す構成図である。 図4は、本発明の一実施形態に係る通信システムにおけるNTBを介して計算機から出力されるデータのアドレス変換量を説明する図である。 図5は、本発明の一実施形態に係る通信システムにおけるNTBを介して計算機に入力されるデータのアドレス変換量を説明する図である。 図6は、本発明の一実施形態に係るNTBのアドレス変換量を設定する処理のフローチャートである。 図7は、本発明の一実施形態に係る計算機間通信の一例を説明する図である。 図8は、本発明の一実施形態に係る計算機間通信処理のフローチャートである。
 本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
 図1は、本発明の一実施形態に係る通信システムの構成図である。
 通信システム101は、N個の計算機103~106と、N個の計算機103~106を接続するためのマルチルートスイッチの一例としてのPCI Expressスイッチ102とを備える。それぞれの計算機103~106は、それぞれNon-Transparent Bridge(NTB)107~110を備える。通信システム101においては、各計算機103~106と、PCI Expressスイッチ102とは、PCI Expressを介して接続されている。
 通信システム101においては、計算機103~106と、PCI Expressスイッチ102との間においては、PCI Expressによりデータ通信が行われるので、プロトコル変換処理が不要となっている。
 図2は、従来例に係る計算機間通信を実現する通信システムの構成図である。図2は、LAN(Local Area Network)を利用して計算機間の通信を実現する通信システムの一例を示している。
 通信システム151は、N個の計算機152、155等と、N個の計算機を接続するためのLANスイッチ158とを備える。それぞれの計算機152、155は、メモリ153、156と、LAN Card154、157とを備える。計算機152(155)においては、メモリ153(156)と、LAN Card154(157)とは、PCI Expressにより接続されている。LAN Card154(157)と、LANスイッチ158は、LANを介して接続されている。この通信システム151においては、LAN Card154、157と、LANスイッチ158との間では、LANのプロトコルでのデータ通信が行われるので、LAN Card154、157では、プロトコルの変換処理が行われる。
 図1に示す本発明の実施形態に係る通信システム101は、図2に示す従来例に係る通信システム151のように、プロトコル変換処理を行うLAN Cardが不要であるため、データ通信におけるプロトコル変換処理に起因するボトルネックが生じない。
 図3は、本発明の一実施形態に係る通信システムの一例を示す構成図である。図3は、4つの計算機を備えている通信システム201の一例を示している。
 通信システム201は、計算機202(計算機A)、計算機206(計算機B)、計算機210(計算機C)、計算機214(計算機D)、及びPCI Expressスイッチ(スイッチともいう。)218を備える。計算機202は、アドレス変換量受信部の一例としてのNTB203、メモリ204、ベースアドレス送信部の一例としてのCPU205を備える。計算機206はNTB207、メモリ208、CPU209を備える。計算機210はNTB211、メモリ212、CPU213を備える。計算機214はNTB215、メモリ216、CPU217を備える。計算機202において、NTB203、メモリ204、CPU205は、バスで接続されている。計算機B、計算機C、計算機Dも同様に、NTB(207、211、215)、メモリ(208、212、216)、CPU(209、213、217)は、バスで接続されている。各計算機間で通信をする場合は、各計算機のNTB(203、207、211、215)を介して通信が実行される。NTBは、データを送受信するとともに、データに対応付けられたベースアドレスを変換する処理を実行する。
 PCI Expressスイッチ218は、LSI219を有している。LSI219は、各計算機202、206、210、214と接続するための複数(ここでは、4個)のアップストリームポート220~223と、データ転送エンジン253と、メモリ224とを備える。
 データ転送エンジン253は、各計算機のNTBから見るとPCI Expressのエンドポイントとして振る舞う。すなわち、データ転送エンジン253は、PCI Expressの仕様に従ったエンドポイントとして動作するように設定されている。データ転送エンジン253は、ベースアドレス受信部、アドレス変換量算出部、データ受信部、及びデータ格納制御部の一例としてのデータ転送エンジン受信部250と、変換量送信部及びデータ送信部の一例としてのデータ転送エンジン送信部251と、コンフィグレーションレジスタ252とを備える。コンフィグレーションレジスタ252は、各計算機A~DにおけるNTB203、207、211、215におけるアドレス変換量を記憶する。アドレス変換量としては、計算機から送信する際のアドレス変換量α(送信時アドレス変換量)と、計算機が受信する際のアドレス変換量β(受信時アドレス変換量)との2種類がある。コンフィグレーションレジスタ252は、データ転送エンジン受信部250及びデータ転送エンジン送信部251から参照可能となっている。
 データ転送エンジン受信部250は、各計算機A~Dから各計算機内のメモリにおける送信する転送データを格納する領域(計算機内送信領域)のベースアドレスと、受信した転送データを格納する領域のベースアドレス(計算機内受信領域)とを受信し、各計算機のNTBの送信時及び受信時のアドレス変換量を算出し、コンフィグレーションレジスタ252に記録する。また、データ転送エンジン受信部250は、計算機のNTBから受信したデータをメモリ224の当該計算機に対応する領域に格納する。
 データ転送エンジン送信部251は、コンフィグレーションレジスタ252に格納されている送信時及び受信時のアドレス変換量を対応する計算機に送信し、NTBに設定させる。また、データ転送エンジン送信部251は、メモリ224から転送対象のデータを取り出して、転送先の計算機に送信する。
 図4は、本発明の一実施形態に係る通信システムにおけるNTBを介して計算機から出力されるデータのアドレス変換量を説明する図であり、図5は、本発明の一実施形態に係る通信システムにおけるNTBを介して計算機に入力されるデータのアドレス変換量を説明する図である。
 図4は、計算機Bが有するNTB207を介してPCI Expressスイッチ218へデータを転送(送信)する場合のNTB207におけるアドレス変換量αを示す一例であり、また、図5は、PCI Expressスイッチ218から計算機Bへデータが転送される場合、すなわち、計算機Bがデータを受信する場合のNTB207におけるアドレス変換量βを示す一例である。ここで、計算機L(Lは任意の符号)から送信する際のアドレス変換量をαと表し、計算機Lが受信する際のアドレス変換量をβと表すこととする。
 計算機Bのメモリ208は、NTB207を介して外部へ転送するデータを記憶する領域(送信領域:計算機内送信領域)と、NTB207を介して外部から転送されたデータを記憶する領域(受信領域:計算機内受信領域)とを備えている。本実施形態では、送信領域のベースアドレスは、Xであり、受信領域のベースアドレスは、Yである。ここで、計算機L(Lは任意の符号)のメモリにおける計算機内送信領域のベースアドレスをXと表し、計算機Lのメモリにおける計算機内受信領域のベースアドレスをYと表すこととする。
 PCI Expressスイッチ218のスイッチ内メモリの一例としてのメモリ224には、各計算機から転送されるデータを記憶する第一領域301と、各計算機に対して転送するデータを記憶する第二領域302とを有する。ここで、第一領域301と、第二領域302とは、メモリ224における連続する領域となっている。
 第一領域301は、スイッチ218に接続される計算機のそれぞれに対して割り当てられる割当領域(スイッチ内受信領域)を複数有している。本実施形態では、計算機A~Dに割り当てられる割当領域A1~D1を有している。すなわち、割当領域A1は、計算機Aに割り当てられ、計算機Aから転送されたデータを記憶するために用いられる。割当領域B1は、計算機Bに割り当てられ、計算機Bから転送されたデータを記憶するために用いられる。割当領域C1は、計算機Cに割り当てられ、計算機Cから転送されたデータを記憶するために用いられる。割当領域D1は、計算機Dに割り当てられ、計算機Dから転送されたデータを記憶するために用いられる。ここで、割当領域A1~D1は、メモリ224における連続する領域となっている。また、割当領域A1~D1の先頭アドレスは、それぞれ先頭アドレス227~230となっている。
 また、第二領域302は、スイッチ218に接続される計算機のそれぞれに対して割り当てられる割当領域(スイッチ内送信領域)を有している。本実施形態では、計算機A~Dに割り当てられる割当領域A2~D2を有している。すなわち、割当領域A2は、計算機Aに割り当てられ、計算機Aに転送(送信)するデータを記憶するために用いられる。割当領域B2は、計算機Bに割り当てられ、計算機Bに転送するデータを記憶するために用いられる。割当領域C2は、計算機Cに割り当てられ、計算機Cに転送するデータを記憶するために用いられる。割当領域D2は、計算機Dに割り当てられ、計算機Dに転送するデータを記憶するために用いられる。ここで、割当領域A2~D2は、メモリ224における連続する領域となっている。また、割当領域A2~D2の先頭アドレスは、それぞれ先頭アドレス231~234となっている。
 上記したように、計算機Bに対しては、第一領域301の割当領域B1が割り当てられており、計算機Bのメモリ208の送信領域のデータが当該割当領域B1に格納されることとなる。計算機BにおけるNTB207によるデータ送信時のアドレス変換処理は、計算機Bの送信領域のアドレスを、割当領域B1のアドレスに変換する処理であり、そのアドレス変換処理におけるアドレス変換量αは、図4に示すように、割当領域B1の先頭アドレス228からメモリ208の送信領域のベースアドレスXを減算したものである。
 また、計算機Bに対しては、第二領域302の割当領域B2が割り当てられており、当該割当領域B2のデータが計算機Bのメモリ208の受信領域に格納されることとなる。計算機BにおけるNTB207によるデータ受信時のアドレス変換処理は、割当領域B2のアドレスを、計算機Bの受信領域のアドレスに変換する処理であり、そのアドレス変換処理におけるアドレス変換量βは、図5に示すように、割当領域B2の先頭アドレス232からメモリ208の受信領域のベースアドレスYを減算したものである。
 ここで、PCI Expressスイッチ218においては、転送元の計算機に対応する第一領域301の割当領域から、転送先の計算機に対応する第二領域302の割当領域に、転送データを転送する。この転送処理においては、転送元の計算機に対応する第一領域301の割当領域におけるアドレスを、転送先の計算機に対応する第二領域302の割当領域におけるアドレスに変換することにより実現されている。具体的には、転送元の計算機に対応する割当領域の先頭アドレスに対して、転送先の計算機に対応する割当領域の先頭アドレスとの差分量γ(アドレス差分量γ)を加算している。このアドレス差分量γは、転送元の計算機と、転送先の計算機とによって決まる量であり、転送先の計算機に対応する第二領域302の割当領域の先頭アドレスから、転送元の計算機に対応する第一領域301の割当領域の先頭アドレスを減算することにより算出できる。ここで、計算機Lから計算機M(Mは、任意の符号)にデータを転送する際におけるアドレス差分量をγLMと表すこととする。
 図4においては、転送元を計算機Bとし、転送先を計算機Cとする場合におけるアドレス差分量γBCを示しており、アドレス差分量γBCは、計算機Cに対応する第二領域302の割当領域C2の先頭アドレス233から、計算機Bに対応する第一領域301の割当領域B1の先頭アドレス228を減算することにより算出される。なお、割当領域A1~D1、A2~D2の先頭アドレスは、例えば、メモリ224の所定の領域に記憶されている。
 図6は、本発明の一実施形態に係るNTBのアドレス変換量を設定する処理(アドレス変換量設定処理)のフローチャートである。図6は、計算機BにおけるNTB207のアドレス変換量α、βを設定するフローチャートを示しているが、他の計算機におけるNTBについても同様な処理によりアドレス変換量が設定される。
 このアドレス変換量を設定する処理は、例えば、計算機BがPCIExpressスイッチ218を認識した後(計算機BがPCI Expressスイッチ218に接続された後や、PCI Expressスイッチ218に接続された計算機Bに電源が投入された後)に実行される。なお、このアドレス変換量を設定する処理の前においては、計算機BのCPU209が、メモリ208からメモリ208における送信領域のベースアドレスXと、受信領域のベースアドレスYとを取り出して、PCI Expressスイッチ218のデータ転送エンジン受信部250に送信し、データ転送エンジン受信部250がコンフィグレーションレジスタ252に送信領域のベースアドレスXと、受信領域のベースアドレスYとを設定している。
 まず、計算機BのCPU209(又は、NTB207)は、PCI Expressスイッチ218へコンフィグレーションアクセスをする(ステップS500)。このとき、データ転送エンジン受信部250に対してコンフィグレーションアクセスが実施される。データ転送エンジン受信部250は、コンフィグレーションアクセスが実施されると、PCI Expressの仕様に従って、コンフィグレーションレジスタ252に対するビット操作を行い、例えば、第一領域301及び第二領域302を有効にする。なお、第一領域301及び第二領域302を有効にする方法はこれに限られない。
 PCI Expressスイッチ218では、データ転送エンジン受信部250が、計算機Bに対応する第一領域301の割当領域B1の先頭アドレス228からメモリ208の送信領域のベースアドレスXを減算してアドレス変換量αを算出する。次いで、データ転送エンジン受信部250は、アドレス変換量αをコンフィグレーションレジスタ252に記録する(ステップS501)。
 さらに、データ転送エンジン受信部250は、第二領域302の割当領域B2の先頭アドレス232からメモリ208の受信領域のベースアドレスYを減算してアドレス変換量βを算出する。次いで、データ転送エンジン受信部250は、アドレス変換量βをコンフィグレーションレジスタ252に記録する(ステップS502)。
 次いで、データ転送エンジン送信部251は、コンフィグレーションレジスタ252に記録したアドレス変換量α、βを計算機BのNTB207に設定するように送信する(ステップS503)。なお、データ転送エンジン送信部251が、アドレス変換量α、βを計算機BのCPU209に送信して、CPU209(アドレス変換量設定部)がNTB207にアドレス変換量α、βを設定するようにしてもよい。
 上記したアドレス変換量を設定する処理は、各計算機A~Dに対して行われることとなり、これにより、各計算機A~DのNTB203、207、211、215には、それぞれの計算機に固有のアドレス変換量α、βが設定される。これにより、PCI Expressスイッチ218においては、各計算機A~Dのメモリにおけるデータのアドレスを意識することなく、データ転送処理が可能となる。
 次に、通信システム201における計算機間の通信処理について説明する。
 図7は、本発明の一実施形態に係る計算機間通信の一例を説明する図であり、図8は、本発明の一実施形態に係る計算機間通信処理のフローチャートである。
 図7及び図8は、計算機Bから計算機Dへのデータ転送する際における例を示しているが、他の計算機間のデータ転送も同様な処理により行われる。なお、図8の処理が行われる前においては、各計算機について、図6に示すようなアドレス変換量設定処理が行われている。
 計算機Bにおいては、CPU209が、計算機Bのメモリ208から計算機Dのメモリ216へ転送する対象の実データを含むデータ350をNTB207に入力する(ステップS504)。ここで、データ350には、送信対象の実データ(dataD)とともに、メモリ208の送信領域のベースアドレスXと、送信領域における実データが格納されているアドレスのベースアドレスXに対するオフセット(offsetB)と、送信先の計算機Dを示す送信先情報(calcD)と、計算機Dのメモリ216の受信領域における実データを格納するアドレスのベースアドレスYに対するオフセット(offsetD)とが含まれる。
 計算機BのNTB207は、データ350のベースアドレスXに送信時におけるアドレス変換量αを加算してデータ351を生成し、当該データ351をPCI Expressスイッチ218のデータ転送エンジン受信部250へ転送する(ステップS505)。ここで、ベースアドレスXにアドレス変換量αを加算することにより、当該データのベースアドレスを、メモリ208の送信領域のベースアドレスXから、スイッチ218の第一領域301の割当領域B1の先頭アドレス228へと変換することができる。
 データ転送エンジン受信部250に転送されたデータ351は、データ転送エンジン受信部250により、第一領域301の計算機Bに対応する割当領域B1に割当てられる転送元データ352と、転送先の計算機を示すデータ353に分割される(ステップS506)。ここで、データ352には、送信対象の実データ(dataD)と、ベースアドレス(ベースアドレスX+アドレス変換量α)と、当該データのオフセット(offsetB)と、(offsetD)とが含まれる。一方、データ353には、送信先の計算機Dを示す送信先情報(calcD)が含まれる。
 データ転送エンジン受信部250は、データ352を第一領域301の割当領域B1に格納し、データ353をルーティング部の一例としてのルーティングモジュール226に転送する(ステップS507)。
 ルーティングモジュール226は、データ353に基づいて、送信先の計算機Dを特定し、第一領域301の割当領域B1に格納されたデータを、特定された計算機Dに割り当てられた第二領域302の割当領域D2に格納するために、割当領域B1のデータのベースアドレスに加えるべきアドレス差分量γBDを算出する(ステップS508)。本例では、アドレス差分量γBDは、第二領域302の割当領域D2の先頭アドレス234から第一領域301の割当領域B1の先頭アドレス228を減算したものである。
 次いで、ルーティングモジュール226は、第一領域301の割当領域B1に格納されたデータ352を取り出し、ベースアドレスにアドレス差分量γBDを加算して、ベースアドレスをX+α+γBD(すなわち、割当領域D2の先頭アドレス234)とするとともに、当該データのオフセットをoffsetDとしたデータ354に変換して、第二領域302の割当領域D2へ格納する(ステップS509)。
 データ転送エンジン送信部251は、計算機Dに対応する第二領域302の割当領域D2からデータ355を取り出して、計算機DのNTB215へ転送する(ステップS510)。なお、図7においては、データ355のベースアドレスをメモリ216の受信領域のベースアドレスYと、NTB215の受信時のアドレス変換量βとを加算した値として記載しているが、このベースアドレスは、X+α+γBD(割当領域D2の先頭アドレス234)と同じ値であって、以降の説明を容易にするために表現を変えただけである。
 計算機DのNTB215は、PCI Expressスイッチ218から転送されてきたデータ355のベースアドレスからアドレス変換量βを減算して、データ356とする(ステップS511)。ここで、ベースアドレスが、割当領域D2の先頭アドレス234からアドレス変換量βを減算したものとなるので、データのベースアドレスが、割当領域D2の先頭アドレス234から、メモリ216の受信領域のベースアドレスYへと変換される。
 NTB215は、データ356をCPU217に出力し、CPU217は、データ356のベースアドレスに基づいて実データをメモリ216に格納する(ステップS512)。これにより、転送対象の実データがメモリ216の受信領域に適切に格納されることとなる。
 ここで、計算機Bから計算機Dへデータを転送する場合を例として説明したが、いずれかの計算機からいずれかの計算機(自身の計算機をも含む)へのデータの転送においても、上記同様な処理で、データ転送を行うことができる。
 上記したステップS506~S509の処理によると、転送対象の実データを、複数の計算機中の送信元となる計算機に対応する第一領域301の割当領域から、複数の計算機中の送信先として指定されている計算機に対応する第二領域302の割当領域に対して適切に転送することができる。この第二領域302の割当領域に転送された実データは、当該割当領域に対応する計算機へと送信することができる。したがって、PCI Expressスイッチ218に接続された任意の計算機間で適切にデータを転送することができる。すなわち、N対Nの計算機間通信が実現できる。
 以上、本発明を実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、さらに、他の様々な態様に適用可能である。
 例えば、上記実施形態では、データ転送エンジン受信部250と、データ転送エンジン送信部251とを別体として示していたが、一つの機能部としてもよい。
 また、上記実施形態では、ルーティングモジュール226は、送信先の計算機に割り当てられた第二領域302の割当領域の先頭アドレスから、送信元の計算機に割り当てられた第一領域301の割当領域の先頭アドレスを減算することにより、アドレス差分量γを算出するようにしていたが、本発明はこれに限られず、例えば、送信先となる計算機と、送信元となる計算機との全ての組み合わせについてのアドレス差分量γを、予めスイッチ218のメモリ224(アドレス差分量記憶部)に記憶しておき、データを転送する対象の計算機に基づいて、メモリ224から対応するアドレス差分量γを特定して用いるようにしてもよい。
 101…通信システム、102…PCI Expressスイッチ、103~106…計算機、107~110…NTB、151…通信システム、152、155…計算機、153、156…メモリ、154、157…LAN Card、158…LANスイッチ、201…通信システム、202、206、210、214…計算機、203、207、211、215…NTB、204、208、212、216…メモリ、205、209、213、217…CPU、218…PCI Exrepssスイッチ、219…LSI、220~223…アップストリームポート、224…メモリ、226…ルーティングモジュール、250…データ転送エンジン受信部、251…データ転送エンジン送信部、252…コンフィグレーションレジスタ、253…データ転送エンジン。

Claims (13)

  1.  複数の計算機にNon-Transparent Bridge(NTB)を介して接続され、前記計算機間のデータの通信を仲介するマルチルートスイッチであって、
     各計算機から受信したデータを前記計算機毎に記憶するための複数のスイッチ内受信領域及び各計算機に対して送信するデータを前記計算機毎に記憶する複数のスイッチ内送信領域を有するスイッチ内メモリと、
     接続された前記計算機のメモリにおける送信するデータを記憶するための計算機内送信領域及び受信するデータを記憶するための計算機内受信領域のベースアドレスを受信するベースアドレス受信部と、
     前記スイッチ内メモリの接続される前記計算機用の前記スイッチ内受信領域の先頭アドレスと、前記計算機のメモリの計算機内送信領域のベースアドレスとの差分である送信時アドレス変換量を算出するとともに、前記スイッチ内メモリの前記スイッチ内送信領域の先頭アドレスと、前記計算機のメモリの計算機内受信領域のベースアドレスとの差分である受信時アドレス変換量を算出するアドレス変換量算出部と、
     前記送信時アドレス変換量及び前記受信時アドレス変換量を、前記計算機の前記NTBに設定させるように前記計算機に送信する変換量送信部と
    を有するマルチルートスイッチ。
  2.  前記計算機から転送するデータを受信するデータ受信部と、
     受信した前記データを、送信元の前記計算機用の前記スイッチ内受信領域に格納するデータ格納制御部と、
     前記スイッチ内受信領域の先頭アドレスと、前記データの送信先の計算機用の前記スイッチ内送信領域の先頭アドレスとの差分であるアドレス差分量を検出し、前記アドレス差分量に基づいて、前記スイッチ内受信領域のデータを前記送信先の計算機用のスイッチ内送信領域に格納するルーティング部と、
     前記スイッチ内送信領域のデータを前記送信先の前記計算機に送信するデータ送信部と
    を有する請求項1に記載のマルチルートスイッチ。
  3.  前記ルーティング部は、各計算機に対応する前記スイッチ内受信領域及びスイッチ内送信領域の先頭アドレスを記憶しておき、それらに基づいて、前記アドレス差分量を算出する
    請求項2に記載のマルチルートスイッチ。
  4.  各計算機を送信元及び送信先とする場合における、前記スイッチ内受信領域と前記スイッチ内送信領域とのアドレス差分量を記憶するアドレス差分量記憶部を更に有し、
     前記ルーティング部は、送信先及び送信元の計算機に基づいて、前記アドレス差分量記憶部から、前記アドレス差分量を検出する
    請求項3に記載のマルチルートスイッチ。
  5.  前記変換量送信部は、前記NTBに対して、前記送信時アドレス変換量と、前記受信時アドレス変換量とを設定する
    請求項1に記載のマルチルートスイッチ。
  6.  前記アドレス変換量算出部により算出された各計算機の前記送信時アドレス変換量と、前記受信時アドレス変換量とを記憶するレジスタを備える
    請求項1に記載のマルチルートスイッチ。
  7.  前記複数のスイッチ内受信領域は、連続したメモリ領域に配置され、前記複数のスイッチ内送信領域は、連続したメモリ領域に配置されている
    請求項1に記載のマルチルートスイッチ。
  8.  前記複数のスイッチ内受信領域と、前記複数のスイッチ内送信領域とは、連続したメモリ領域に配置されている
    請求項1に記載のマルチルートスイッチ。
  9.  前記計算機の前記NTBと、PCI EXPRESSにより接続されている
    請求項1に記載のマルチルートスイッチ。
  10.  NTBを含み、複数の計算機とのデータ通信を仲介するマルチルートスイッチに接続される計算機であって、
     前記NTBを介して送信するデータを記憶するための計算機内送信領域と、前記NTBを介して受信したデータを記憶するための計算機内受信領域とが割り当てられたメモリと、
     前記計算機内送信領域と前記計算機内受信領域とのベースアドレスを前記マルチルートスイッチに送信するベースアドレス送信部と、
     前記マルチルートスイッチから、前記計算機内送信領域のベースアドレスを、前記マルチルートスイッチ内のメモリの前記計算機用のスイッチ内受信領域の先頭アドレスに変換するための送信時アドレス変換量とともに、前記マルチルートスイッチ内のメモリの前記計算機用のスイッチ内送信領域の先頭アドレスを、前記計算機内受信領域のベースアドレスに変換するための受信時アドレス変換量とを受信するアドレス変換量受信部とを有し、
     前記NTBは、前記メモリの前記計算機内送信領域のデータを前記マルチルートスイッチに送信する際に、当該データのベースアドレスを、前記メモリの計算機内送信領域のベースアドレスに前記送信時アドレス変換量を加算することにより、前記マルチルートスイッチ内のメモリの前記受信領域の先頭アドレスに変換して、前記マルチルートスイッチに送信し、
     前記NTBは、前記マルチルートスイッチからデータを受信する際に、当該データのベースアドレスを、前記マルチルートスイッチ内のメモリの前記送信領域の先頭アドレスから、前記受信時アドレス変換量を減算することにより、前記メモリ内の前記計算機内受信領域のベースアドレスに変換する
    計算機。
  11.  前記受信した前記送信時アドレス変換量及び受信時アドレス変換量を前記NTBに設定するアドレス変換量設定部を更に備える
    請求項10に記載の計算機。
  12.  前記ベースアドレス送信部は、前記マルチルートスイッチとの接続を認識した後に、前記ベースアドレスを送信する
    請求項10に記載の計算機。
  13.  複数の計算機にNTBを介して接続され、前記計算機間のデータの通信を仲介するマルチルートスイッチによる計算機間通信方法であって、
     前記マルチルートスイッチは、前記各計算機から受信したデータを前記計算機毎に記憶するための複数のスイッチ内受信領域及び各計算機に対して送信するデータを前記計算機毎に記憶するスイッチ内送信領域を有するスイッチ内メモリを備え、
     接続された計算機のメモリにおける送信するデータを記憶するための計算機内受信領域及び受信したデータを記憶するための計算機内送信領域のベースアドレスを受信し、
     前記スイッチ内メモリの接続される前記計算機用の前記スイッチ内受信領域の先頭アドレスと、前記計算機のメモリの計算機内送信領域のベースアドレスとの差分である送信時アドレス変換量を算出するとともに、前記スイッチ内送信領域の先頭アドレスと、前記計算機のメモリの計算機内受信領域のベースアドレスとの差分である受信時アドレス変換量を算出し、
     前記送信時アドレス変換量及び前記受信時アドレス変換量を前記計算機の前記NTBに設定するように前記計算機に送信する
    計算機間通信方法。
PCT/JP2011/061480 2011-05-19 2011-05-19 マルチルートスイッチ、計算機、及び計算機間通信方法 WO2012157103A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/061480 WO2012157103A1 (ja) 2011-05-19 2011-05-19 マルチルートスイッチ、計算機、及び計算機間通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/061480 WO2012157103A1 (ja) 2011-05-19 2011-05-19 マルチルートスイッチ、計算機、及び計算機間通信方法

Publications (1)

Publication Number Publication Date
WO2012157103A1 true WO2012157103A1 (ja) 2012-11-22

Family

ID=47176466

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/061480 WO2012157103A1 (ja) 2011-05-19 2011-05-19 マルチルートスイッチ、計算機、及び計算機間通信方法

Country Status (1)

Country Link
WO (1) WO2012157103A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2503881A (en) * 2012-07-09 2014-01-15 Ultrasoc Technologies Ltd Adjusting the base address for relative addressing in a hierarchical on-chip debug network
WO2015015652A1 (ja) * 2013-08-02 2015-02-05 株式会社日立製作所 サーバ間通信機構を備えるサーバシステムおよびその複数サーバ間における通信方法
CN104486365A (zh) * 2014-09-28 2015-04-01 浪潮(北京)电子信息产业有限公司 双控之间通信方法和系统
JP2016530618A (ja) * 2013-07-22 2016-09-29 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 周辺コンポーネント相互接続エクスプレスドメインのためのリソース管理
CN109828944A (zh) * 2019-03-12 2019-05-31 深圳大普微电子科技有限公司 一种通信方法及通信系统
WO2020182135A1 (zh) * 2019-03-12 2020-09-17 深圳大普微电子科技有限公司 一种通信方法及通信系统
CN113609044A (zh) * 2021-06-25 2021-11-05 天津津航计算技术研究所 一种双pcie接口的多路接口转接卡实现系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312366A (ja) * 1997-05-13 1998-11-24 Hitachi Ltd 並列プロセッサ
JP2009282917A (ja) * 2008-05-26 2009-12-03 Hitachi Ltd サーバ間通信機構及びコンピュータシステム
JP2010165022A (ja) * 2009-01-13 2010-07-29 Ricoh Co Ltd プロセッサ間通信装置、プロセッサ間通信方法、プログラムおよび記録媒体
JP2010282387A (ja) * 2009-06-04 2010-12-16 Hitachi Ltd 計算機システム、スイッチ切り替え方法及びpciスイッチ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312366A (ja) * 1997-05-13 1998-11-24 Hitachi Ltd 並列プロセッサ
JP2009282917A (ja) * 2008-05-26 2009-12-03 Hitachi Ltd サーバ間通信機構及びコンピュータシステム
JP2010165022A (ja) * 2009-01-13 2010-07-29 Ricoh Co Ltd プロセッサ間通信装置、プロセッサ間通信方法、プログラムおよび記録媒体
JP2010282387A (ja) * 2009-06-04 2010-12-16 Hitachi Ltd 計算機システム、スイッチ切り替え方法及びpciスイッチ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JACK REGULA: "Using Non-transparent Bridging in PCI Express Systems", PLX TECHNOLOGY, 2004, pages 1 - 31, Retrieved from the Internet <URL:http://www.plxtech.com/pdf/technical/expresslane/NontransparentBridging.pdf> [retrieved on 20110803] *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2503881A (en) * 2012-07-09 2014-01-15 Ultrasoc Technologies Ltd Adjusting the base address for relative addressing in a hierarchical on-chip debug network
GB2503881B (en) * 2012-07-09 2014-06-18 Ultrasoc Technologies Ltd Debug architecture
US9003232B2 (en) 2012-07-09 2015-04-07 Ultrasoc Technologies Ltd. Debug architecture
JP2016530618A (ja) * 2013-07-22 2016-09-29 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 周辺コンポーネント相互接続エクスプレスドメインのためのリソース管理
US9672167B2 (en) 2013-07-22 2017-06-06 Futurewei Technologies, Inc. Resource management for peripheral component interconnect-express domains
WO2015015652A1 (ja) * 2013-08-02 2015-02-05 株式会社日立製作所 サーバ間通信機構を備えるサーバシステムおよびその複数サーバ間における通信方法
CN104486365A (zh) * 2014-09-28 2015-04-01 浪潮(北京)电子信息产业有限公司 双控之间通信方法和系统
CN104486365B (zh) * 2014-09-28 2018-02-02 浪潮(北京)电子信息产业有限公司 双控之间通信方法和系统
CN109828944A (zh) * 2019-03-12 2019-05-31 深圳大普微电子科技有限公司 一种通信方法及通信系统
WO2020182135A1 (zh) * 2019-03-12 2020-09-17 深圳大普微电子科技有限公司 一种通信方法及通信系统
CN113609044A (zh) * 2021-06-25 2021-11-05 天津津航计算技术研究所 一种双pcie接口的多路接口转接卡实现系统

Similar Documents

Publication Publication Date Title
WO2012157103A1 (ja) マルチルートスイッチ、計算機、及び計算機間通信方法
JP5360607B2 (ja) Pciエクスプレススイッチ、pciエクスプレスシステム、及びネットワーク制御方法
EP3252613B1 (en) Resource management for peripheral component interconnect-express domains
US9292460B2 (en) Versatile lane configuration using a PCIe PIE-8 interface
JP5917474B2 (ja) 統合マルチ転送媒体コネクタを利用するシステム及びルーティング方法
JP6093867B2 (ja) インターコネクトにおける不均一なチャネル容量
KR101559644B1 (ko) 통신 제어 시스템, 스위치 노드 및 통신 제어 방법
JP5452733B2 (ja) 計算機システムおよびルーティング制御方法
JP5336764B2 (ja) 仮想レーン資源を割り当てるための方法及びコンピュータ・システム
US20130151750A1 (en) Multi-root input output virtualization aware switch
JP5267943B2 (ja) PCI−Express通信システム、及びPCI−Express通信方法
JP5434929B2 (ja) I/oバスシステム
US10467179B2 (en) Method and device for sharing PCIe I/O device, and interconnection system
CN103092798B (zh) 片上系统及总线下的访问设备的方法
WO2006115753A2 (en) Virtualized pci switch
US20110010522A1 (en) Multiprocessor communication protocol bridge between scalar and vector compute nodes
CN105745640A (zh) 访问文件的方法、系统和主机
CN110765053B (zh) 一种n-m axi总线控制器及其可配置仲裁机制实现方法
JP6579140B2 (ja) 変換装置、ホスト装置、入出力スイッチシステム、情報処理システム、方法およびプログラム
US10169279B2 (en) Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction
JP5483020B2 (ja) 通信制御装置、ネットワーク、及びネットワークシステム
WO2019203331A1 (ja) 中継装置および情報処理システム
WO2023112646A1 (ja) 情報処理装置、及び情報処理装置の制御方法
JP5230667B2 (ja) データ転送装置
KR20130108197A (ko) AS-i 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11865488

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11865488

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP