JP2014206883A - Computing system - Google Patents

Computing system Download PDF

Info

Publication number
JP2014206883A
JP2014206883A JP2013084460A JP2013084460A JP2014206883A JP 2014206883 A JP2014206883 A JP 2014206883A JP 2013084460 A JP2013084460 A JP 2013084460A JP 2013084460 A JP2013084460 A JP 2013084460A JP 2014206883 A JP2014206883 A JP 2014206883A
Authority
JP
Japan
Prior art keywords
data
port
computer
data transfer
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013084460A
Other languages
Japanese (ja)
Inventor
直機 筒井
Naoki Tsutsui
直機 筒井
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2013084460A priority Critical patent/JP2014206883A/en
Publication of JP2014206883A publication Critical patent/JP2014206883A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a network switch connecting many computing machines in order to demonstrate an expected processing performance, having small conversion cost of a protocol used for a data transfer of the computing machine, and having few computing resources during data transfer of the computing machine.SOLUTION: A network switch includes: a device emulator which each computing machine recognizes as a device; a data controller which can directly operate the data stored in a memory of each computing machine; a port memory for storing the data on the way during data transfer; and a packet router for determining a routing of the data inside the network switch in association with each computing machine. Each device emulator is connected with each other by a first network. Each data controller is connected with each other by a second network via the packet router, and session structuring and session release of the data transfer between two computing machines are performed by the two corresponding device emulators, and execution of the data transfer is performed by the two corresponding data controllers.

Description

本発明は、複数の計算機を汎用バスを用いて接続する計算機システムのネットワークスイッチに関するものである。   The present invention relates to a network switch of a computer system that connects a plurality of computers using a general-purpose bus.

計算機システムの性能向上の手段の一つとして、ブレードサーバやクラスタシステムなど多数の計算機を接続する方法がある。多数の計算機を接続する際、従来の汎用の技術では、イーサーネットワークに代表されるネットワークカードを計算機の汎用バスであるPCIeで接続し、PCIeのプロトコルでデータ転送を行う。さらに、ネットワーク拡張カード同士、ネットワーク拡張カードとネットワークスイッチ、ネットワークスイッチ同士を専用のネットワークケーブルで多段階に接続し、既定された専用のプロトコルでデータ転送を行う。   One means for improving the performance of a computer system is to connect a large number of computers such as blade servers and cluster systems. When connecting a large number of computers, the conventional general-purpose technology connects a network card typified by an Ethernet network with PCIe, which is a general-purpose bus of the computer, and performs data transfer using the PCIe protocol. Further, network expansion cards, network expansion cards and network switches, and network switches are connected in multiple stages with dedicated network cables, and data transfer is performed using a predetermined dedicated protocol.

従来の汎用の技術では、このようにネットワークスイッチ同士を汎用技術を組み合わせることで接続可能となるため、計算機システムにつながる計算機の台数を増やしたい時、容易に計算機の台数を増やすことが可能である。しかし、計算機システムの性能向上を目的として、多数の計算機を接続する選択は必ずしも有効となるとは限らず、有効であるかどうかは、計算機システムで採用されているネットワークの設計に依存し、多数の計算機を接続して性能向上を目指した計算機システムが期待される処理性能に近い実性能を出すには、採用するネットワークにおいて解決すべき問題がある。   In conventional general-purpose technology, network switches can be connected by combining general-purpose technologies in this way, so when you want to increase the number of computers connected to the computer system, you can easily increase the number of computers. . However, for the purpose of improving the performance of a computer system, the choice of connecting a large number of computers is not always effective, and whether it is effective depends on the design of the network adopted in the computer system, There is a problem to be solved in the adopted network in order to obtain an actual performance close to the expected processing performance of a computer system that aims to improve performance by connecting computers.

例えばデータ転送において、データを格納しているパケットがネットワーク機器を経由する時、プロトコルの変換やデータの変更を必要とする場合があり、このような状況で接続する計算機や、経由するネットワーク機器が増えると、プロトコルの変換コストが増大し、ネットワークの性能が低下する問題がある。
また、接続する計算機の台数を増やすほど、データ転送の頻度が指数関数的に高くなるプログラムもあり、このようなプログラムに対しては、接続する計算機の台数を増やしても、データ転送のたびにCPU演算機能、メモリ空間、バスの帯域、同期のための時間などの計算機資源を消費し、使用したいプログラムに対して計算機資源を割り当てられなくなり、計算機システムの性能が期待される処理性能より大幅に低下する問題もある。
このようなネットワークが抱える問題を解決すべく、専用ハードウェアを設計し、それをCPUに近い場所に設置するために計算機に専用ハードウェアを組み込み、結果として、計算機単体の高価格化を招くという問題もある。
For example, in data transfer, when a packet storing data passes through a network device, protocol conversion or data change may be required. If it increases, there is a problem that the cost of protocol conversion increases and the performance of the network decreases.
In addition, there are programs that increase the frequency of data transfer exponentially as the number of connected computers increases. For such programs, even if the number of connected computers is increased, every time data is transferred. Consumes computer resources such as CPU computing functions, memory space, bus bandwidth, synchronization time, etc., and computer resources cannot be allocated to programs that you want to use, and the performance of the computer system is significantly higher than expected processing performance. There is also a problem that decreases.
In order to solve such network problems, dedicated hardware is designed, and the dedicated hardware is built into the computer to install it near the CPU. As a result, the price of the computer alone increases. There is also a problem.

前述の通り、計算機システムの性能向上を目指して、ネットワークを構築しても、期待される処理性能が出せるとは限らない。しかし、InfiniBandは計算機のメモリにデータを読み出し、書き込み可能なDMA(Direct Memory Access)機能をネットワークカードに内蔵させ、データ転送機能をInfiniBandネットワークカード側で実現することで、データ転送時に計算機資源の消費を抑え、高速なデータ転送と低いレイテンシを実現している。また、公開番号 特開2005-182818のようなオンチップバスは、分散バスシステムを構築することで、分散バスシステム上にあるデバイスは計算機を介さずにデータ転送が可能となる。これを利用して、複数の計算機を分散バスシステムで接続し、分散バスシステムそのものをネットワークの代わりとし、データ転送のプロトコルの変換プロセスを削減することが可能である。   As described above, even if a network is constructed with the aim of improving the performance of a computer system, the expected processing performance is not always achieved. However, InfiniBand uses a DMA (Direct Memory Access) function that reads and writes data to the computer's memory, and realizes the data transfer function on the InfiniBand network card side, thereby consuming computer resources during data transfer. To achieve high-speed data transfer and low latency. Further, by constructing a distributed bus system for an on-chip bus such as the publication number JP-A-2005-182818, devices on the distributed bus system can transfer data without going through a computer. By utilizing this, it is possible to connect a plurality of computers with a distributed bus system and use the distributed bus system itself instead of a network to reduce the data transfer protocol conversion process.

特開2005-182818号公報JP 2005-182818 A 特開2004-227570号公報JP 2004-227570 A

計算機システムの性能向上を目的として、多数の計算機を接続する選択は必ずしも有効となるとは限らない。有効であるかどうかは、計算機システムで採用されているネットワークの設計に依存し、多数の計算機を接続して性能向上を目指した計算機システムが期待される処理性能を出すには、採用するネットワークにおいて解決すべき問題がある。   For the purpose of improving the performance of a computer system, the selection of connecting a large number of computers is not always effective. Whether it is effective depends on the design of the network used in the computer system, and in order to obtain the processing performance expected by a computer system that aims to improve performance by connecting many computers, There is a problem to be solved.

本発明の目的は、計算機システムの性能向上のために複数の計算機を接続する際に、データ転送で使用するプロトコルの変換コストが小さく、接続した計算機の処理性能を引き出すにあたってデータ転送の処理に必要とされる計算機資源の消費が少ないネットワークスイッチを実現することにある。   The purpose of the present invention is to reduce the conversion cost of the protocol used for data transfer when connecting multiple computers in order to improve the performance of the computer system, and it is necessary for data transfer processing to extract the processing performance of the connected computers It is to realize a network switch that consumes less computer resources.

多数の計算機を接続するネットワークの構築に、計算機の汎用バスに接続可能なポートを複数持つ汎用バス直接結合型ネットワークスイッチを採用する。   A general-purpose bus direct-coupled network switch that has multiple ports that can be connected to the general-purpose bus of the computer is used to construct a network that connects many computers.

汎用バス直接結合型ネットワークスイッチは、直接、計算機のメモリ内のデータを読み出し・書き込み可能なDMAコントローラを持ち、計算機のデータ転送の際に計算機が送信側計算機のメモリに有る読み出しデータエリアのアドレスとサイズ、受信側計算機のメモリにある書き込みデータエリアのアドレスを汎用バス直接結合型ネットワークスイッチに通知し、汎用バス直接結合型ネットワークスイッチがデータ転送の処理を全て実行し、データ転送の完了通知を計算機に送信する。この時、送信側も受信側も計算機も完了通知の受信待機状態となる。   The general-purpose bus direct-coupled network switch has a DMA controller that can directly read and write data in the computer's memory. When transferring data to the computer, the computer uses the address of the read data area in the memory of the sending computer. The size and the address of the write data area in the memory of the receiving computer are notified to the general-purpose bus direct-coupled network switch, the general-purpose bus direct-coupled network switch performs all data transfer processing, and the data transfer completion notification is calculated by the computer. Send to. At this time, the transmission side, the reception side, and the computer are all in a standby state for receiving a completion notification.

完了通知の受信待機状態の計算機はデータ転送のための制御する必要がない。よって、計算機は計算機資源をデータ転送のために割く必要がなくなり、データ転送とは関係のない計算に遷移することが可能となり、計算機資源を効率よく使用可能となる。また、汎用バス直接結合型ネットワークスイッチは、内部にメモリを持つ。従来のネットワークスイッチでは、サイズの小さいパケットに区切って細切れにして送信する。この時、受信側計算機のデータ転送の経路が混雑していると、例え、送信側計算機のデータ転送の経路が混雑しておらず、送信側計算機でデータの送信処理が可能であっても、送信側計算機からのデータ転送の送信処理を完了させることができない。   The computer in the standby state for receiving the completion notification does not need to be controlled for data transfer. Therefore, it is not necessary for the computer to divide the computer resource for data transfer, it is possible to shift to a calculation unrelated to the data transfer, and the computer resource can be used efficiently. The general-purpose bus direct coupling type network switch has a memory inside. In the conventional network switch, the packet is divided into small packets and transmitted in pieces. At this time, if the data transfer path of the receiving computer is congested, for example, the data transfer path of the transmitting computer is not congested, and even if data transmission processing is possible on the transmitting computer, The transmission process of data transfer from the sending computer cannot be completed.

しかし、汎用バス直接結合型ネットワークスイッチは、送信側計算機のメモリからスイッチ側にデータを転送する際に、一度にまとめて送信側計算機のメモリから読み出し、一度にまとめてスイッチ内部のメモリに書き込むことが可能となる。また、スイッチ側から受信側計算機のメモリにデータを転送する際に、一度にまとめてスイッチ内部のメモリから読み出し、一度にまとめて受信側計算機のメモリに書き込むことが可能となる。このように、汎用バス直接結合型ネットワークスイッチにデータ転送の機能を担うDMAコントローラを備えることで、計算機は、データ転送の処理に必要とされる計算機資源を最小化でき、データ転送の際のデータをメモリに確保可能とすることで、データ転送のための経路の効率の良い使用が可能となる。その結果、計算機資源を本来の実行したい計算に割り当てが可能となったことと、データ転送の処理に対する待ち時間を減ったことで、計算機システムとしての性能向上を目指すことが可能となる。   However, general-purpose bus direct-coupled network switches read data from the sending computer memory all at once and write them to the memory inside the switch at once when transferring data from the sending computer memory to the switch side. Is possible. Further, when transferring data from the switch side to the memory of the receiving computer, it is possible to read the data from the memory inside the switch all at once and write it to the memory of the receiving computer all at once. In this way, the general-purpose bus direct-coupled network switch is equipped with a DMA controller that handles the data transfer function, so that the computer can minimize the computer resources required for data transfer processing, and the data at the time of data transfer Can be secured in the memory, the path for data transfer can be used efficiently. As a result, it becomes possible to assign the computer resources to the calculation to be originally executed, and to reduce the waiting time for the data transfer process, so that it is possible to improve the performance of the computer system.

本発明における汎用バス直接結合型ネットワークスイッチによれば、接続する計算機の数が増えるほど制御が難しくなるデータ転送を計算機側が制御するのではなく、ネットワークスイッチ側で主体的に制御が可能となる。   According to the general-purpose bus direct coupling type network switch of the present invention, data transfer, which becomes difficult to control as the number of computers to be connected increases, is not controlled by the computer side, but can be controlled independently on the network switch side.

本発明の形態の一つで有る汎用バス直接結合型ネットワークスイッチの実施例を示すブロック図である。It is a block diagram which shows the Example of the general purpose bus direct coupling type network switch which is one of the forms of this invention. 図1の形態において示されたデバイスエミュレータの内部構成例を示すブロック図である。FIG. 2 is a block diagram showing an internal configuration example of a device emulator shown in the form of FIG. 1. 図1の形態において示されたデータコントローラの内部構成例を示すブロック図である。It is a block diagram which shows the example of an internal structure of the data controller shown in the form of FIG. 図1の形態において示されたポートメモリの内部構成例を示すブロック図である。FIG. 2 is a block diagram showing an internal configuration example of a port memory shown in the form of FIG. 1. 図1の形態において示されたパケットルータの内部構成例を示すブロック図である。It is a block diagram which shows the example of an internal structure of the packet router shown in the form of FIG. 本発明の形態の一つで有る汎用バス直接結合型ネットワークスイッチと、それに接続する接続したノードのハード、ソフトの階層概念を示す図である。It is a figure which shows the hardware and software hierarchy concept of the general purpose bus direct coupling | bonding type | mold network switch which is one form of this invention, and the node connected to it. 図1の実装における例を示す概略図である。It is the schematic which shows the example in the mounting of FIG. 図1の形態においてノード間のセッション構築の動作を示すシーケンス図である。It is a sequence diagram which shows the operation | movement of the session construction between nodes in the form of FIG. 図1の形態においてノード間のセッション解除の動作を示すシーケンス図である。It is a sequence diagram which shows the operation | movement of the session cancellation | release between nodes in the form of FIG. 図1の形態においてノード間のデータ転送の動作を示すシーケンス図である。It is a sequence diagram which shows the operation | movement of the data transfer between nodes in the form of FIG. 図4の形態においてのデータの流れを示すシーケンス図である。It is a sequence diagram which shows the flow of the data in the form of FIG. 図8のセッション構築のシーケンス図における詳細を示したフローチャート図である。It is the flowchart figure which showed the detail in the sequence diagram of session construction of FIG. 図9のセッション構築のシーケンス図における詳細を示したフローチャート図である。It is the flowchart figure which showed the detail in the sequence diagram of session construction of FIG. 図10のデータ転送のシーケンス図における詳細を示したフローチャート図の前半1/3部分である。FIG. 11 is the first half of the flowchart showing details in the data transfer sequence diagram of FIG. 10. 図10のデータ転送のシーケンス図における詳細を示したフローチャート図の中間1/3部分である。FIG. 11 is an intermediate third portion of the flowchart showing details in the sequence diagram of data transfer in FIG. 10. 図10のデータ転送のシーケンス図における詳細を示したフローチャート図後半1/3部分である。FIG. 11 is the latter half of the flowchart showing the details in the data transfer sequence diagram of FIG. 図1の実施例において使用するプロトコルのプロトコルフォーマット表である。It is a protocol format table | surface of the protocol used in the Example of FIG. 図1の実施例において使用するプロトコル内のデータエリアのデータフォーマット表である。It is a data format table | surface of the data area in the protocol used in the Example of FIG.

以下で本発明を実施するための形態を、図面を参照しながら解説する。   Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings.

本発明の汎用バス直接結合型ネットワークスイッチの一形態の実施例を図1に示す。汎用バス直接結合型ネットワークスイッチ1000は、ノードを接続するための汎用バスであるPCIeの電気信号を処理をするポート1022、1042、1062をN個有し、ノード1020、1040、1060はPCIeの各信号線1021、1041、1061を介して各ポート1022、1042、1062と接続する。   FIG. 1 shows an embodiment of a general-purpose bus direct coupling network switch according to the present invention. The general-purpose bus direct coupling type network switch 1000 has N ports 1022, 1042, and 1062 for processing electrical signals of PCIe, which is a general-purpose bus for connecting nodes, and the nodes 1020, 1040, and 1060 are respectively connected to the PCIe. Each port 1022, 1042, 1062 is connected via signal lines 1021, 1041, 1061.

汎用バス直接結合型ネットワークスイッチ1000はN個のポート1022、1042、1062に対し、デバイスエミュレータ1024、1044、1064、データコントローラ1026、1046、1066、ポートメモリ1028、1048、1068、パケットルータ1030、1050、1070をそれぞれ有する。   The general-purpose bus direct coupling type network switch 1000 has device emulators 1024, 1044, 1064, data controllers 1026, 1046, 1066, port memories 1028, 1048, 1068, packet routers 1030, 1050 for N ports 1022, 1042, 1062. 1070 respectively.

デバイスエミュレータ1024、1044、1064は、ノード1020、1040、1060と信号線1021、1041、1061、ポート1022、1042、1062、信号線1023、1043、1063を介して接続され、ノード1020、1040、1060はデバイスエミュレータ1024、1044、1064をネットワーク機能を有したデバイスと認識する。   The device emulators 1024, 1044, and 1064 are connected to the nodes 1020, 1040, and 1060 through the signal lines 1021, 1041, and 1061, the ports 1022, 1042, and 1062, and the signal lines 1023, 1043, and 1063, and the nodes 1020, 1040, and 1060 are connected. Recognizes the device emulators 1024, 1044, and 1064 as devices having a network function.

データコントローラ1026、1046、1066はノード1020、1040、1060内のメモリに対してデータの直接の読み出しと書き込みが可能なDMA機能を有し、ノード1020、1040、1060とデータコントローラ1026、1046、1066の間のデータ転送とデータコントローラ1026、1046、1066の間のデータ転送の機能を有する。   The data controllers 1026, 1046, and 1066 have a DMA function capable of directly reading and writing data to and from the memories in the nodes 1020, 1040, and 1060, and the nodes 1020, 1040, and 1060 and the data controllers 1026, 1046, and 1066 are included. Data transfer between the data controllers 1026, 1046, and 1066.

ポートメモリ1028、1048、1068は、データコントローラ1026、1046、1066と信号線1027、1047、1067を介して接続され、データコントローラ1026、1046、1066の受信したデータを保管する機能を有する。   The port memories 1028, 1048, 1068 are connected to the data controllers 1026, 1046, 1066 via signal lines 1027, 1047, 1067 and have a function of storing data received by the data controllers 1026, 1046, 1066.

パケットルータ1030、1050、1070は、データコントローラ1026、1046、1066と信号線1029、1049、1069を介して接続され、データコントローラ1026、1046、1066同士の通信の機能を有する。   The packet routers 1030, 1050, and 1070 are connected to the data controllers 1026, 1046, and 1066 via signal lines 1029, 1049, and 1069, and have a communication function between the data controllers 1026, 1046, and 1066.

デバイスエミュレータ1024、1044、1064はポート1022、1042、1062と信号線1023、1043、1063を介して接続されている。データコントローラ1026、1046、1066はデバイスエミュレータ1024、1044、1064と信号線1025、1045、1065を介して接続されている。ポートメモリ1028、1048、1068はデータコントローラ1026、1046、1066と信号線1027、1047、1067を介して接続されている。パケットルータ1030、1050、1070はデータ転送の制御を行うデータコントローラ1026、1046、1066と信号線1029、1049、1069を介して接続されている。また、デバイスエミュレータ1024、1044、1064とパケットルータ1030、1050、1070は汎用バス直接結合型ネットワークスイッチ1000内部で同じデバイス装置での接続を実現するデバイスエミュレータ間ネットワーク1031、1051、1071とパケットルータ間ネットワーク1033、1053、1073を有している。   Device emulators 1024, 1044, and 1064 are connected to ports 1022, 1042, and 1062 through signal lines 1023, 1043, and 1063, respectively. The data controllers 1026, 1046, 1066 are connected to device emulators 1024, 1044, 1064 via signal lines 1025, 1045, 1065. The port memories 1028, 1048, 1068 are connected to data controllers 1026, 1046, 1066 via signal lines 1027, 1047, 1067. The packet routers 1030, 1050 and 1070 are connected to data controllers 1026, 1046 and 1066 for controlling data transfer via signal lines 1029, 1049 and 1069. The device emulators 1024, 1044, and 1064 and the packet routers 1030, 1050, and 1070 are connected between the device emulator networks 1031, 1051, and 1071 and the packet routers in the general-purpose bus direct coupling network switch 1000. Networks 1033, 1053, and 1073 are included.

1台目のノードであるノード#1 1020は汎用バス直接結合型ネットワークスイッチ1000のポート#1 1022とポート#1 1021で接続し、ポート#1 1022はノード#1 1020がデバイスのように認識するデバイスエミュレータ#1 1024と信号線1023で接続している。通常PCIeデバイスは1つのノードにしか接続できないが、汎用バス直接結合型ネットワークスイッチ1000に接続可能なノードの台数分のデバイスエミュレータ1024、1044、1064を汎用バス直接結合型ネットワークスイッチ1000に内包させることで、一つの汎用バス直接結合型ネットワークスイッチ1000に複数のノードのPCIeでの接続を実現させている。   Node # 1 1020, which is the first node, is connected to port # 1 1022 and port # 1 1021 of general-purpose bus direct coupling network switch 1000, and port # 1 1022 is recognized by node # 1 1020 as a device. The device emulator # 1 1024 is connected to the signal line 1023. Normally, a PCIe device can be connected to only one node, but device emulators 1024, 1044, and 1064 corresponding to the number of nodes that can be connected to the general-purpose bus direct coupling type network switch 1000 are included in the general-purpose bus direct coupling type network switch 1000. Thus, a single general-purpose bus direct-coupled network switch 1000 realizes connection of a plurality of nodes via PCIe.

デバイスエミュレータ#1 1024は、汎用バス直接結合型ネットワークスイッチ1000内の全てのデバイスエミュレータ1024、1048、1068と完全結合しているデバイスエミュレータ間ネットワーク1031を使用して、デバイスエミュレータ間で制御文を伝送する。また、データ転送は信号線1025を通じて、データコントローラ#1 1026と行われる。   Device emulator # 1 1024 transmits a control statement between the device emulators using the device emulator network 1031 that is completely coupled to all the device emulators 1024, 1048, and 1068 in the general-purpose bus direct coupling type network switch 1000. To do. Data transfer is performed with the data controller # 1 1026 through the signal line 1025.

データコントローラ1026、1046、1066は、汎用バス直接結合型ネットワークスイッチ1000とノード1020、1040、1060との間で、ノード1020、1040、1060に負荷をかけないデータ転送を実現するために、DMA転送機能を有する。また、汎用バス直接結合型ネットワークスイッチ1000内でのデータ転送機能も有する。   The data controllers 1026, 1046, and 1066 perform DMA transfer between the general-purpose bus direct coupling network switch 1000 and the nodes 1020, 1040, and 1060 in order to realize data transfer that does not load the nodes 1020, 1040, and 1060. It has a function. Also, it has a data transfer function in the general-purpose bus direct coupling type network switch 1000.

データコントローラ#1 1026はデバイスエミュレータ#1 1024ないし、パケットルータ#1 1030とのデータ送受信の際に、信号線1027を使用して、ポートメモリ#1 1028へデータを読み出し・書き込みする。デバイスエミュレータ#1 1024ないし、パケットルータ#1 1030からデータコントローラ#1 1026へデータが送信されるたびに、送信されたデータをポートメモリ#1 1028に保存することで、汎用バス直接結合型ネットワークスイッチ1000とノード1020、1040、1060との間と、汎用バス直接結合型ネットワークスイッチ1000内のまとまった量のデータ転送を実現している。データコントローラ間におけるデータ転送の際、データコントローラ#1は信号線1029を使用して、パケットルータ#1 1030を介してデータコントローラ間のデータ通信を実現する。パケットルータ#1 1030は完全結合のパケットルータ間ネットワーク1033を保持し、パケットルータ間でデータを伝送する。また、デバイスエミュレータ間ネットワーク1031とパケットルータ間ネットワーク1033は、内部の通信を実現する信号線とは別に、外部へのポート1032、1034を使用して、複数の汎用バス直接結合型ネットワークスイッチ1000の接続を実現する。なお、ノード#2 1040及びノード#N 1060はノード#1 1020と同様の構成をとる。   The data controller # 1 1026 reads / writes data to / from the port memory # 1 1028 using the signal line 1027 when transmitting / receiving data to / from the device emulator # 1 1024 or the packet router # 1 1030. Whenever data is transmitted from the device emulator # 1 1024 or the packet router # 1 1030 to the data controller # 1 1026, the transmitted data is stored in the port memory # 1 1028, so that the general-purpose bus direct connection type network switch A collective amount of data transfer between the network 1000 and the nodes 1020, 1040, 1060 and in the general-purpose bus direct coupling network switch 1000 is realized. During data transfer between data controllers, the data controller # 1 uses the signal line 1029 to realize data communication between the data controllers via the packet router # 1 1030. Packet router # 1 1030 holds a fully-coupled packet router network 1033 and transmits data between the packet routers. Further, the inter-device emulator network 1031 and the inter-packet router network 1033 use the ports 1032 and 1034 to the outside, separately from the signal lines for realizing internal communication, of the plurality of general-purpose bus direct coupling network switches 1000. Realize the connection. Note that the node # 2 1040 and the node #N 1060 have the same configuration as the node # 1 1020.

図1の実施例について登場したデバイスエミュレータ1024、1044、1064、データコントローラ1026、1046、1066、ポートメモリ1028、1048、1068、パケットルータ1030、1050、1070の内部構成について詳しく図2〜5で示す。示す図はi番目のノード、ノード#iに属するそれぞれの詳細構成図とし、図2ではデバイスエミュレータ#i 1100、図3ではデータコントローラ#i 1200、図4ではポートメモリ#i 1300、図5ではパケットルータ#i 1400について説明する。   The device emulators 1024, 1044, 1064, data controllers 1026, 1046, 1066, port memories 1028, 1048, 1068, and packet routers 1030, 1050, 1070 that have appeared in the embodiment of FIG. . The figure shown is a detailed configuration diagram belonging to the i-th node and node #i. FIG. 2 shows a device emulator #i 1100, FIG. 3 shows a data controller #i 1200, FIG. 4 shows a port memory #i 1300, and FIG. The packet router #i 1400 will be described.

図2にて、デバイスエミュレータ#i 1100の内部構成を説明する。デバイスエミュレータ#i 1100は内部に、PCIe通信部1110、トランザクション管理部1111、デバイスエミュレータ間通信部1112、ネットワーク管理部1113を有する。   The internal configuration of the device emulator #i 1100 will be described with reference to FIG. The device emulator #i 1100 includes a PCIe communication unit 1110, a transaction management unit 1111, an inter-device emulator communication unit 1112, and a network management unit 1113.

デバイスエミュレータ#i 1100はPCIeの電気的な信号処理を行うポート#i 1102と信号線1103で接続され、ポート#i 1102とi番目のノードのノード#i は、PCIe#i 1101で接続される。信号線1103はデバイスエミュレータ#i 1100の中にあるPCIe通信部1110に接続されている。PCIe通信部1110は、PCIeの通信に必要な情報処理の機能を提供する。PCIe通信部1110とトランザクション管理部1111は、信号線1114で接続される。トランザクション管理部1111は、ノード間通信において、ノードからデータ転送リクエストを受けてから、ノード間セッションの構築、データ転送、ノード間セッションの解除、ノードへのデータ転送完了通知までをトランザクションとして管理する。ノード間のセッションの構築、解除において、デバイスエミュレータ間通信を行う。   The device emulator #i 1100 is connected to a port #i 1102 that performs electrical signal processing of PCIe via a signal line 1103, and the port #i 1102 and the node #i of the i-th node are connected via PCIe #i 1101. . The signal line 1103 is connected to the PCIe communication unit 1110 in the device emulator #i 1100. The PCIe communication unit 1110 provides an information processing function necessary for PCIe communication. The PCIe communication unit 1110 and the transaction management unit 1111 are connected by a signal line 1114. In the inter-node communication, the transaction management unit 1111 manages as a transaction from receiving a data transfer request from a node to constructing an inter-node session, transferring data, releasing the inter-node session, and notifying completion of data transfer to the node. Communication between device emulators is performed in establishing and releasing a session between nodes.

この時、トランザクション管理部1111は、信号線1115で接続されたデバイスエミュレータ間通信部1112を経由して、デバイスエミュレータ間通信を実現する。デバイスエミュレータ間通信部1112は汎用バス直接結合型ネットワークスイッチ内部の全てのデバイスエミュレータとの直接通信と、外部との通信のための複数の信号線で構成され、この複数の信号線をデバイスエミュレータ間ネットワーク1105としている。この時、データ転送に必要なネットワークの物理情報及び論理情報を、トランザクション管理部1111は、信号線1116を通じてネットワーク管理部1113より取得する。トランザクションのうち、データ転送については、信号線1104を通じて図3のデータコントローラ#i 1200に処理を委託している。   At this time, the transaction management unit 1111 realizes inter-device emulator communication via the inter-device emulator communication unit 1112 connected by the signal line 1115. The inter-device emulator communication unit 1112 is composed of a plurality of signal lines for direct communication with all device emulators in the general-purpose bus direct coupling type network switch and communication with the outside, and these signal lines are connected between the device emulators. The network 1105 is used. At this time, the transaction management unit 1111 acquires the physical information and logical information of the network necessary for data transfer from the network management unit 1113 through the signal line 1116. Among transactions, data transfer is entrusted to the data controller #i 1200 of FIG. 3 through the signal line 1104.

図3にて、データコントローラ#i 1200の内部構成を説明する。データコントローラ#i 1200は、DMAコントローラ1210、メモリコントローラ1215を有する。DMAコントローラ1210は図2のデバイスエミュレータ#i 1100のトランザクション管理部1111と信号線1104で接続されている。トランザクション管理部1111がセッションの構築と解除の際、データ転送のための準備とその解除の知らせをDMAコントローラ1210はトランザクション管理部1111より知らされる。この時、DMAコントローラ1210はDMAコントローラ1210内のバッファ1211の未使用エリアから確保する。また、信号線1214を経由してメモリコントローラ1215にポートメモリ1300でのメモリ確保を依頼する。メモリコントローラ1215は信号線1202、1203を経由してポートメモリ1300と通信を行う。DMAコントローラ間データ転送の送信の際、メモリーコントローラ1215からデータを読み出し、バッファ1211に読み出し・書き込みを実行し、信号線1201を経由して、パケットルータ#i 1400にデータを送信する。   The internal configuration of the data controller #i 1200 will be described with reference to FIG. The data controller #i 1200 includes a DMA controller 1210 and a memory controller 1215. The DMA controller 1210 is connected to the transaction management unit 1111 of the device emulator #i 1100 of FIG. When the transaction management unit 1111 establishes and releases a session, the DMA controller 1210 is notified by the transaction management unit 1111 of preparation for data transfer and notification of the release. At this time, the DMA controller 1210 secures from an unused area of the buffer 1211 in the DMA controller 1210. Further, the memory controller 1215 is requested to secure the memory in the port memory 1300 via the signal line 1214. The memory controller 1215 communicates with the port memory 1300 via the signal lines 1202 and 1203. When transmitting data transfer between DMA controllers, data is read from the memory controller 1215, read / write is executed to the buffer 1211, and data is transmitted to the packet router #i 1400 via the signal line 1201.

DMAコントローラ間データ転送の受信の際、信号線1201を経由して、パケットルータ#i 1400がデータを受信し、バッファ1211に書き込み・読み出しを実行し、メモリーコントローラ1215へデータの書き込みを実行する。データの読み出し・書き込みにおいては、データの先頭アドレスはアドレスレジスタ1212で管理し、データ処理の経過についてはインデックスレジスタ1213で管理している。   When receiving data transfer between DMA controllers, the packet router #i 1400 receives data via the signal line 1201, executes writing / reading to the buffer 1211, and writing data to the memory controller 1215. In data reading / writing, the top address of data is managed by the address register 1212, and the progress of data processing is managed by the index register 1213.

図4にて、ポートメモリ#i 1300の内部構成を説明する。ポートメモリ#i 1300は、サブメモリコントローラ#1 1310、サブメモリコントローラ#2 1311、ローカルメモリ#1インサイドメモリ1314、ローカルメモリ#2アウトサイドメモリ1315を有する。   The internal configuration of the port memory #i 1300 will be described with reference to FIG. The port memory #i 1300 includes a sub memory controller # 1 1310, a sub memory controller # 2 1311, a local memory # 1 inside memory 1314, and a local memory # 2 outside memory 1315.

サブメモリコントローラ1310、1311は信号線1202、1203を経由して、図3のデータコントローラ#i 1200の中のメモリコントローラ1215と通信している。サブメモリコントローラ1310、1311は信号線1312、1313を経由して、ローカルメモリ#1インサイドメモリ1314とローカルメモリ#2アウトサイドメモリ1315通信している。   The sub memory controllers 1310 and 1311 communicate with the memory controller 1215 in the data controller #i 1200 of FIG. 3 via signal lines 1202 and 1203. The sub memory controllers 1310 and 1311 communicate with the local memory # 1 inside memory 1314 and the local memory # 2 outside memory 1315 via signal lines 1312 and 1313.

ノード#i が送信元ノードの時、ノード#i からデータコントローラ#i へ送信されたデータは、データの一時保存のために、ローカルメモリ#1インサイドメモリ1314へ書き込まれる。その後、送信先ノードに転送するために、データは、データコントローラ#i 1200に読み出され、信号線1201を経由して、パケットルータ#i 1400に送信される。   When the node #i is the transmission source node, the data transmitted from the node #i to the data controller #i is written to the local memory # 1 inside memory 1314 for temporary storage of data. Thereafter, the data is read to the data controller #i 1200 and transmitted to the packet router #i 1400 via the signal line 1201 for transfer to the destination node.

ノード#i が送信先ノードの時、データコントローラ#i 1200が受信したデータは、データの一時保存のために、ローカルメモリ#2アウトサイドメモリ1315に書き込まれる。その後、送信先ノードであるノード#i に転送するために、データは、データコントローラ#i 1200に読み出され、信号線1104を経由して、デバイスエミュレータ#i 1100に送信される。   When the node #i is a destination node, the data received by the data controller #i 1200 is written in the local memory # 2 outside memory 1315 for temporary storage of data. Thereafter, the data is read to the data controller #i 1200 and transmitted to the device emulator #i 1100 via the signal line 1104 in order to transfer to the node #i which is the transmission destination node.

図5にて、パケットルータ#i 1400の内部構成を説明する。パケットルータ#i 1400は、データルーティング部1410を有する。   The internal configuration of the packet router #i 1400 will be described with reference to FIG. The packet router #i 1400 includes a data routing unit 1410.

ノード#i が送信元ノードの時、データルーティング部1410は、信号線1201を経由して、データコントローラ#i 1200から送信されてきたデータをバッファ1411に書き込み・読み出しを実行し、送信先ノードにつながるデータルーティング部へパケットルータ間ネットワーク1401を通して送信する。
ノード#i が送信先ノードの時、データルーティング部1410は、パケットルータ間ネットワーク1401を経由して、送信元ノードにつながるデータルーティング部から送信されてきたデータをバッファ1411に書き込み・読み出しを実行し、データコントローラ#i 1200へ信号線1201を通して送信する。データの読み出し・書き込みにおいては、データの先頭アドレスはアドレスレジスタ1412で管理し、データ処理の経過についてはインデックスレジスタ1413で管理している。
When the node #i is the transmission source node, the data routing unit 1410 writes / reads the data transmitted from the data controller #i 1200 via the signal line 1201 to / from the buffer 1411, and sends it to the transmission destination node. The data is transmitted to the connected data routing unit through the inter-packet router network 1401.
When the node #i is a destination node, the data routing unit 1410 writes / reads data transmitted from the data routing unit connected to the transmission source node via the inter-packet router network 1401 to / from the buffer 1411. Then, the data is transmitted to the data controller #i 1200 through the signal line 1201. In data reading / writing, the top address of data is managed by the address register 1412, and the progress of data processing is managed by the index register 1413.

図6にて、2台のノードが接続された汎用バス直接結合型ネットワークスイッチ1000を例に,ハードウェア、ソフトウェアの階層概念について説明する。   With reference to FIG. 6, the hierarchical concept of hardware and software will be described using a general-purpose bus direct coupling network switch 1000 to which two nodes are connected as an example.

ノードは、汎用バス直接結合型ネットワークスイッチ1000とそれぞれPCIe1525、1545で接続され、ハードウェア1520、1540を持ち、その中にメモリ1521、1541を含む。また、ハードウェア1520、1540上では、OS1522、1542が稼働している。各OS1522、1542は汎用バス直接結合型ネットワークスイッチ1000を制御するためのドライバ1523、1543がインストールされている。各OS1522、1542上ではユーザプログラム1524、1544が稼働しており、ユーザプログラム1524、1544で通信要求があった場合、その要求はドライバ1523、1543に送信される。ドライバ1523、1543は要求内容に従い、PCIe1525、1545を経由して、汎用バス直接結合型ネットワークスイッチ1000と通信を行う。ドライバ1523、1543は、OS1522、1542及びユーザプログラム1524、1544に対して、通常のネットワークカードのドライバのように振る舞い、OS1522、1542及びユーザプログラム1524、1544にドライバ1523、1543のインストール以外に特別なソフトウェアを必要としない構成となっている。   The node is connected to the general-purpose bus direct-coupled network switch 1000 by PCIe 1525 and 1545, respectively, has hardware 1520 and 1540, and includes memories 1521 and 1541 therein. On the hardware 1520 and 1540, OSs 1522 and 1542 are operating. Drivers 1523 and 1543 for controlling the general-purpose bus direct coupling network switch 1000 are installed in the OSs 1522 and 1542, respectively. The user programs 1524 and 1544 are running on the OSs 1522 and 1542, and when there is a communication request in the user programs 1524 and 1544, the request is transmitted to the drivers 1523 and 1543. The drivers 1523 and 1543 communicate with the general-purpose bus direct coupling network switch 1000 via the PCIe 1525 and 1545 in accordance with the request contents. The drivers 1523 and 1543 behave like normal network card drivers for the OSs 1522 and 1542 and the user programs 1524 and 1544. The drivers 1523 and 1543 are special in addition to the drivers 1523 and 1543 installed in the OSs 1522 and 1542 and the user programs 1524 and 1544. The configuration does not require software.

図7では、本発明の汎用バス直接結合型ネットワークスイッチの実装の一例を示す。   FIG. 7 shows an example of implementation of the general-purpose bus direct coupling network switch of the present invention.

図1-6にて汎用バス直接結合型ネットワークスイッチ1000とした本発明の汎用バス直接結合型ネットワークスイッチを図7では、スイッチ#1 1601とし、ブレードサーバのバックプレーンボード1600上に設置したものとする。   The general-purpose bus direct-coupled network switch of the present invention, which is the general-purpose bus direct-coupled network switch 1000 in FIG. 1-6, is shown as switch # 1 1601 in FIG. 7 and installed on the backplane board 1600 of the blade server. To do.

バックプレーンボード1600上にはノード#1、2、3、N 1620、1630、1640、1650があり、PCIeソケット#1、2、3、N 1621、1631、1641、1651とPCIe信号線束#1、2、3、N 1622、1632、1642、1652を経由して、スイッチ#11601と接続されている。また、スイッチ間信号線束1602はスイッチの拡張でネットワークの拡張のためのものである。   On the backplane board 1600 there are nodes # 1, 2, 3, N 1620, 1630, 1640, 1650, PCIe sockets # 1, 2, 3, N 1621, 1631, 1641, 1651 and PCIe signal bundle # 1, 2, 3, N 1622, 1632, 1642, 1652 and connected to the switch # 11601. The inter-switch signal line bundle 1602 is for expanding the network by expanding the switch.

図8-10では、ノード間通信における、セッション構築プロセス、セッション解除プロセス、データ転送プロセスを図1と図6を元に説明する。汎用バス直接結合型ネットワークスイッチ1000の構成については図1を元とし、使用するノードはノード#1、#2 1020、1040とし、内部構成を図6を元とする。説明において、ノード#1を送信ノード、ノード#2は受信ノードとし、次の部位を使用する。ノード#1ドライバ2000、ノード#1メモリ2001、ポート#1 2002、ポート#1デバイスエミュレータ#1 2003、ポート#1ポートメモリ#1 2004、ポート#1データコントローラ#1 2005、ノード#2ドライバ2010、ノード#2メモリ2011、ポート#2 2012、ポート#2デバイスエミュレータ#2 2013、ポート#2ポートメモリ#2 20014、ポート#2データコントローラ#2 2015。また、
図8-10のノード#1ドライバ2000、ノード#2ドライバ2010は図6においてドライバ1523、1543を意味する。図8-10のノード#1メモリ2001、ノード#2メモリ2011は図6におけるメモリ1521、1541を意味する。図8-10のポート#1 2002、ポート#2 2012は図1におけるポート1022、1042を意味する。図8-10のポート#1デバイスエミュレータ2003、ポート#2デバイスエミュレータ2013は図1におけるメモリ1024、1044を意味する。図8-10のポート#1ポートメモリ#1 2004、ポート#2ポートメモリ#1 20014は図1におけるポートメモリ1028、1048を意味する。図8-10のポート#1データコントローラ#1 2005、ポート#2データコントローラ#2 2015は図1におけるメモリ1026、1046を意味する。
8-10, a session construction process, a session release process, and a data transfer process in inter-node communication will be described with reference to FIGS. 1 and 6. FIG. The configuration of the general-purpose bus direct coupling network switch 1000 is based on FIG. 1, the nodes to be used are nodes # 1, # 2 1020, 1040, and the internal configuration is based on FIG. In the description, node # 1 is a transmission node and node # 2 is a reception node, and the following parts are used. Node # 1 driver 2000, node # 1 memory 2001, port # 1 2002, port # 1 device emulator # 1 2003, port # 1 port memory # 1 2004, port # 1 data controller # 1 2005, node # 2 driver 2010, Node # 2 memory 2011, port # 2 2012, port # 2 device emulator # 2 2013, port # 2 port memory # 2 2014, port # 2 data controller # 2 2015. Also,
The node # 1 driver 2000 and the node # 2 driver 2010 in FIG. 8-10 mean the drivers 1523 and 1543 in FIG. The node # 1 memory 2001 and the node # 2 memory 2011 in FIG. 8-10 mean the memories 1521 and 1541 in FIG. Port # 1 2002 and port # 2 2012 in FIG. 8-10 mean the ports 1022 and 1042 in FIG. The port # 1 device emulator 2003 and the port # 2 device emulator 2013 in FIG. 8-10 mean the memories 1024 and 1044 in FIG. Port # 1 port memory # 1 2004 and port # 2 port memory # 1 2014 in FIG. 8-10 mean the port memories 1028 and 1048 in FIG. Port # 1 data controller # 1 2005 and port # 2 data controller # 2 2015 in FIG. 8-10 mean the memories 1026 and 1046 in FIG.

図8では、汎用バス直接結合型ネットワークスイッチ1000を介してデータ転送を実行する前のセッション構築のプロセスについて説明する。   FIG. 8 illustrates a process of session construction before data transfer is performed via the general-purpose bus direct coupling type network switch 1000.

ノード#1からノード#2へデータ転送を実行する際、セッション構築を実行する。その時、ノード#1、#2において処理を管理するのはノード#1、2ドライバ2000、2010となる。まず、ノード#1ドライバ2000はポート#1 2002を経由してポート#1デバイスエミュレータ#1 2003へセッション接続要求2020を送信する。セッション接続要求には、送信元データのアドレス、データサイズ、送信先宛先、送信先など、データ転送において必要な情報が含まれる。   When executing data transfer from node # 1 to node # 2, session construction is executed. At that time, the nodes # 1, 2 and drivers 2000, 2010 manage the processing in the nodes # 1, # 2. First, the node # 1 driver 2000 transmits a session connection request 2020 to the port # 1 device emulator # 1 2003 via the port # 1 2002. The session connection request includes information necessary for data transfer, such as an address of transmission source data, a data size, a transmission destination, and a transmission destination.

セッション接続要求2020を受信したポート#1デバイスエミュレータ#1 2003は、セッション構築、データ転送、セッション解除の一連の作業を送信ノードから見た1つのトランザクションとして管理する。トランザクションの情報には、送信ノード、受信ノード、データサイズ、読み出し元アドレス、書き込み先アドレス、データ転送経路情報、バッファなどの情報を管理する。   The port # 1 device emulator # 1 2003 that has received the session connection request 2020 manages a series of operations of session construction, data transfer, and session release as one transaction viewed from the transmission node. As transaction information, information such as a transmission node, a reception node, a data size, a read source address, a write destination address, data transfer path information, and a buffer are managed.

データ転送において、データ転送経路や中継部位でのバッファが必要となる。送信ノード側で、これらの資源の確保のため、ポート#1デバイスエミュレータ#1 2003はポート#1データコントローラ#1 2005へデータ転送準備要求2021を送信する。データ転送準備要求2021を受信したポート#1データコントローラ#1 2005は、データ転送に必要な経路や中継部位でのバッファを確保し、データ転送準備完了通知とデータ転送の際に必要な情報が記載されたデータ転送準備情報2022を送信する。その後、ポート#1デバイスエミュレータ#1 2003は、ノード#1ドライバ2000から受信したセッション接続情報2020とポート#1データコントローラ#1 2005から受信したデータ転送準備情報2022をデバイスエミュレータ間ネットワーク1031、1051を経由してポート#2デバイスエミュレータ#2 2013へ送信2023する。セッション接続要求とポート#1データコントローラ#1 2005からのデータ転送準備情報2023を受信したポート#2デバイスエミュレータ#2 2013は、ポート#1デバイスエミュレータ#1 2003と同様に、セッション構築、データ転送、セッション解除の一連の作業を受信ノードから見た1つのトランザクションとして管理する。   In data transfer, a buffer at the data transfer path or relay part is required. In order to secure these resources on the transmission node side, the port # 1 device emulator # 1 2003 transmits a data transfer preparation request 2021 to the port # 1 data controller # 1 2005. The port # 1 data controller # 1 2005 that has received the data transfer preparation request 2021 secures a buffer for a route and a relay part necessary for data transfer, and describes a data transfer preparation completion notification and information necessary for data transfer. The prepared data transfer preparation information 2022 is transmitted. Thereafter, the port # 1 device emulator # 1 2003 sends the session connection information 2020 received from the node # 1 driver 2000 and the data transfer preparation information 2022 received from the port # 1 data controller # 1 2005 to the inter-device emulator networks 1031 and 1051. Via the port 20, send 2023 to the port # 2 device emulator # 2 2013. The port # 2 device emulator # 2 2013 that has received the session connection request and the data transfer preparation information 2023 from the port # 1 data controller # 1 2005 is similar to the port # 1 device emulator # 1 2003. A series of operations for session cancellation is managed as one transaction viewed from the receiving node.

受信ノード側で、これらの資源の確保のため、ポート#2デバイスエミュレータ#2 2013はポート#2データコントローラ#2 2015へデータ転送準備要求とポート#1データコントローラ#1 2005からのデータ転送準備情報を送信2024する。データ転送準備要求とポート#1データコントローラ#1 2005からのデータ転送準備情報2024を受信したポート#2データコントローラ#2 2015は、データ転送に必要な経路や中継部位でのバッファを確保し、ポート#1データコントローラ#1 2005からのデータ転送準備情報を元に、データ転送元の経路を把握する。その後、データ転送準備完了通知とデータ転送の際に必要な情報が記載されたデータ転送準備情報2025をポート#2デバイスエミュレータ#2 2013へ送信する。その後、セッション接続要求とポート#2データコントローラ#2 2015からのデータ転送準備情報2025を受信したポート#2デバイスエミュレータ#2 2013は、ポート#2 2012を経由してノード#2ドライバ2010へセッション接続要求2026を送信する。   In order to secure these resources on the receiving node side, port # 2 device emulator # 2 2013 sends a data transfer preparation request to port # 2 data controller # 2 2015 and data transfer preparation information from port # 1 data controller # 1 2005. Is transmitted 2024. Receiving the data transfer preparation request and the data transfer preparation information 2024 from the port # 1 data controller # 1 2005, the port # 2 data controller # 2 2015 secures a buffer for the route and relay part necessary for the data transfer, # 1 Data controller # 1 Based on data transfer preparation information from 2005, the route of the data transfer source is grasped. Thereafter, data transfer preparation completion notification and data transfer preparation information 2025 in which information necessary for data transfer is described are transmitted to port # 2 device emulator # 2 2013. Thereafter, the port # 2 device emulator # 2 2013 that has received the session connection request and the data transfer preparation information 2025 from the port # 2 data controller # 2 2015 connects to the node # 2 driver 2010 via the port # 2 2012. A request 2026 is transmitted.

以上のプロセスにより、ノード#1からノード#2へセッション接続要求の送信を完了とする。この後、ノード#2ドライバ2010によりノード#2からノード#1へのセッション接続許可通知を送信するプロセスに入る。まず、ノード#2ドライバ2010はポート#2 2012を経由してポート#2デバイスエミュレータ#2 2013へセッション接続許可通知2027を送信する。ノード#2ドライバ2010からセッション接続許可通知2027を受信したポート#2デバイスエミュレータ#2 2013はノード#2ドライバ2010からのセッション接続許可通知2027とポート#2データコントローラ#2 2015からのデータ転送準備情報2025をデバイスエミュレータ間ネットワーク1031、1051を経由してポート#1デバイスエミュレータ#12003へ送信2028する。セッション接続許可通知2027とポート#2データコントローラ#2 2015からのデータ転送準備情報2025を受信2028したポート#1デバイスエミュレータ#12003は、ポート#2データコントローラ#2 2015からのデータ転送準備情報2025をポート#1データコントローラ#1 2005へ送信2029する。ポート#2データコントローラ#2 2015からのデータ転送準備情報2025を受信したポート#1データコントローラ#1 2005はポート#2データコントローラ#2 2015からのデータ転送準備情報2025を元に、データ転送先の経路を把握する。その後、ポート#1デバイスエミュレータ#1 2003はポート#1 2002を経由して、ノード#1ドライバ2000へセッション接続許可通知2027を送信2030する。
以上のプロセスを経て、ノード#1ドライバ2000がセッション接続許可通知2030を受信し、ノード#1、#2間でのセッション構築を完了とする。
Through the above process, the transmission of the session connection request from the node # 1 to the node # 2 is completed. Thereafter, the node # 2 driver 2010 enters a process for transmitting a session connection permission notification from the node # 2 to the node # 1. First, the node # 2 driver 2010 transmits a session connection permission notification 2027 to the port # 2 device emulator # 2 2013 via the port # 2 2012. The port # 2 device emulator # 2 2013 that has received the session connection permission notification 2027 from the node # 2 driver 2010 receives the session connection permission notification 2027 from the node # 2 driver 2010 and the data transfer preparation information from the port # 2 data controller # 2 2015. 2025 is transmitted 2028 to the port # 1 device emulator # 12003 via the inter-device emulator networks 1031 and 1051. The port # 1 device emulator # 12003 receiving the session connection permission notification 2027 and the data transfer preparation information 2025 from the port # 2 data controller # 2 2015 receives the data transfer preparation information 2025 from the port # 2 data controller # 2 2015. Send 2029 to port # 1 data controller # 1 2005. The port # 1 data controller # 1 2005 having received the data transfer preparation information 2025 from the port # 2 data controller # 2 2015 is based on the data transfer preparation information 2025 from the port # 2 data controller # 2 2015. Know the route. Thereafter, the port # 1 device emulator # 1 2003 transmits 2030 a session connection permission notification 2027 to the node # 1 driver 2000 via the port # 1 2002.
Through the above process, the node # 1 driver 2000 receives the session connection permission notification 2030, and completes the session construction between the nodes # 1 and # 2.

図9では、汎用バス直接結合型ネットワークスイッチ1000を介してデータ転送を実行した後のセッション解除のプロセスについて説明する。ノード#1、#2間でデータ転送が終了した後、ノード#1ドライバ2010とノード#2ドライバ2010の間のセッションを解除する。   FIG. 9 illustrates a process for canceling a session after data transfer is performed via the general-purpose bus direct coupling type network switch 1000. After the data transfer between the nodes # 1 and # 2 is completed, the session between the node # 1 driver 2010 and the node # 2 driver 2010 is released.

まず最初にポート#1デバイスエミュレータ#1 2003から、ポート#2デバイスエミュレータ#2 2013及び、ポート#2 2012を経由して、セッション解除要求2120を送信する。   First, a session release request 2120 is transmitted from the port # 1 device emulator # 1 2003 via the port # 2 device emulator # 2 2013 and the port # 2 2012.

セッション解除要求2120を受信したノード#2ドライバ2010は、ポート#2 2012を経由して、セッション解除通知2121をポート#2デバイスエミュレータ#2 2013へ送信する。   The node # 2 driver 2010 that has received the session release request 2120 transmits a session release notification 2121 to the port # 2 device emulator # 2 2013 via the port # 2 2012.

セッション解除通知2121を受信したポート#2デバイスエミュレータ#2 2013は、データ転送において、ポート#2データコントローラ#2 2015で確保したデータ転送経路や中継部位でのバッファなどの資源を開放するためにポート#2データコントローラ#2 2015へデータ転送終了処理要求2122を送信し、これら資源の解放後、ポート#2デバイスエミュレータ#2 2013はポート#2データコントローラ#2 2015からのデータ転送終了処理開放通知2123を受信する。   The port # 2 device emulator # 2 2013 that has received the session release notification 2121 uses the port to release resources such as the data transfer path secured by the port # 2 data controller # 2 2015 and the buffer at the relay site in data transfer. Data transfer end processing request 2122 is transmitted to # 2 data controller # 2 2015, and after releasing these resources, port # 2 device emulator # 2 2013 sends data transfer end processing release notification 2123 from port # 2 data controller # 2 2015. Receive.

その後、ポート#2デバイスエミュレータ#2 2013はデバイスエミュレータ間ネットワーク1031、1051を経由してポート#1デバイスエミュレータ#1 2003へセッション解除通知2124を送信する。   Thereafter, the port # 2 device emulator # 2 2013 transmits a session release notification 2124 to the port # 1 device emulator # 1 2003 via the inter-device emulator networks 1031 and 1051.

ポート#2デバイスエミュレータ#2 2013からセッション解除通知を受信したポート#1デバイスエミュレータ#1 2003はデータ転送において、ポート#1データコントローラ#1 2005で確保したデータ転送経路や中継部位でのバッファなどの資源を開放するためにポート#1データコントローラ#1 2005へデータ転送終了処理要求2125を送信し、これら資源の解放後、ポート#1デバイスエミュレータ#1 2003はポート#1データコントローラ#1 2005からのデータ転送終了処理開放通知2126を受信する。   Port # 1 Device Emulator # 2 When the session release notification is received from 2013, Port # 1 Device Emulator # 1 2003 uses the data transfer path secured by Port # 1 Data Controller # 1 2005, the buffer at the relay site, etc. In order to release resources, a data transfer end processing request 2125 is transmitted to the port # 1 data controller # 1 2005, and after these resources are released, the port # 1 device emulator # 1 2003 receives from the port # 1 data controller # 1 2005. The data transfer end process release notification 2126 is received.

最後に、ポート#1デバイスエミュレータ#1 2003は、ポート#1 2002を経由してノード#1ドライバ2000へセッション解除通知2127を送信し、セッション解除プロセスを終了する。   Finally, the port # 1 device emulator # 1 2003 transmits a session release notification 2127 to the node # 1 driver 2000 via the port # 1 2002, and ends the session release process.

図10では、汎用バス直接結合型ネットワークスイッチ1000を介してのデータ転送プロセスについて説明する。   In FIG. 10, a data transfer process via the general-purpose bus direct coupling network switch 1000 will be described.

ノード#1、#2間でセッション構築の成立後、データ転送プロセスを開始する。セッション構築の際、送信元ノード、データの読み出し先のアドレス、サイズ、送信先ノード、データの書き込み先のアドレスがポート#1デバイスエミュレータ#1 2003のトランザクションで管理される。そのため、ノード#1ドライバ2000は、ポート#1 2002を経由して、ポート#1デバイスエミュレータ#1 2003にデータ転送トランザクション開始要求2220を送信し、ポート#1デバイスエミュレータ1 2003は、DMAコントローラを内蔵するポート#1データコントローラ#1 2005にデータ転送開始要求2221を送信する。データ転送開始要求2221を受信したポート#1データコントローラ#1 2005はノード#1メモリ2001に対しDMA Read2222を要求し、ノード#1メモリ2001からの指定区間のデータ転送2223を受信する。   After the session construction is established between the nodes # 1 and # 2, the data transfer process is started. When a session is established, the source node, data read destination address, size, destination node, and data write destination address are managed by the transaction of port # 1 device emulator # 1 2003. Therefore, the node # 1 driver 2000 transmits a data transfer transaction start request 2220 to the port # 1 device emulator # 1 2003 via the port # 1 2002, and the port # 1 device emulator 1 2003 includes a DMA controller. A data transfer start request 2221 is transmitted to the port # 1 data controller # 1 2005 to be transmitted. Receiving the data transfer start request 2221, the port # 1 data controller # 1 2005 requests the DMA read 2222 from the node # 1 memory 2001, and receives the data transfer 2223 in the specified section from the node # 1 memory 2001.

その後、ポート#1データコントローラ#1 2005は、受信したデータをポート#1ポートメモリ#1 2004へ書き込み2224を実行し、ポート#1データコントローラ#1上のバッファからデータ消えるなどした時、必要なら、ポート#1ポートメモリ#12004から読み出し2225を実行する。   After that, the port # 1 data controller # 1 2005 writes the received data to the port # 1 port memory # 1 2004, executes 2224, and when the data disappears from the buffer on the port # 1 data controller # 1, if necessary. , Read out 2225 from port # 1 port memory # 12004.

その後、ポート#1ポートメモリ#1 2004からポート#2ポートメモリ#2 2014へパケットルータ#1、#2 1030、1050を経由しデータを転送2226する。   Thereafter, the data is transferred 2226 from the port # 1 port memory # 1 2004 to the port # 2 port memory # 2 2014 via the packet routers # 1, # 2 1030, 1050.

その後、ポート#2データコントローラ#2 2015は、ポート#2ポートメモリ#2に受信したデータの書き込み2227を実行し、ポート#2データコントローラ#2上のバッファからデータ消えるなどした時、必要なら、ポート#2ポートメモリ#2 2014から読み出し2228を実行する。   After that, when the port # 2 data controller # 2 2015 executes the writing 2227 of the received data to the port # 2 port memory # 2 and the data disappears from the buffer on the port # 2 data controller # 2, if necessary, Read 2228 from port # 2 port memory # 2 2014 is executed.

その後、データを受信したポート#2データコントローラ#2 2015はノード#2メモリ2011に対しデータ転送(DMA Write)2229を実行し、ノード#2メモリ2011へ指定区間のデータ転送後、ポート#2データコントローラ#2 2015からポート#2データコントローラ#1 2005へ指定区間のデータ転送が完了したことの通知2230を送信する。データ転送において、データ転送が完了するまで、処理2222から2230を繰り返す。   Thereafter, the port # 2 data controller # 2 2015 that has received the data executes a data transfer (DMA Write) 2229 to the node # 2 memory 2011, and after transferring the data in the specified section to the node # 2 memory 2011, the port # 2 data A notification 2230 indicating that the data transfer in the designated section is completed is transmitted from the controller # 2 2015 to the port # 2 data controller # 1 2005. In the data transfer, the processes 2222 to 2230 are repeated until the data transfer is completed.

データ転送の終了後、ポート#1データコントローラ#1 2005はトランザクションを管理しているポート#1デバイスエミュレータ#1 2003、ポート#1 2002を経由してノード#1ドライバ2000へデータ転送終了通知2232を送信する。その後、ポート#1デバイスエミュレータ#1 2003はノード#1ドライバ2000とノード#2ドライバ2010へデータ転送トランザクション終了通知2233、2234を送信し、データ転送プロセスが終了となる。   After the data transfer ends, the port # 1 data controller # 1 2005 sends a data transfer end notification 2232 to the node # 1 driver 2000 via the port # 1 device emulator # 1 2003 and port # 1 2002 which manage the transaction. Send. Thereafter, the port # 1 device emulator # 1 2003 transmits data transfer transaction end notifications 2233 and 2234 to the node # 1 driver 2000 and the node # 2 driver 2010, and the data transfer process ends.

図11では、図3、4を元にデータコントローラ1200がポートメモリ1300に対して読み出し・書き込みを実行するプロセスについて説明する。   FIG. 11 illustrates a process in which the data controller 1200 executes reading / writing with respect to the port memory 1300 based on FIGS.

データコントローラ1200は、データ受信後、すぐにデータ送信できるとは限らず、データコントローラ1200に内蔵しているDMAコントローラ1210が所持するバッファ1211も有限であるため、データ受信時に、必ずポートメモリ1300にデータの書き込みを実行し、データ送信時にバッファ上からデータが消えている場合,ポートメモリ1300よりデータの読み出しをする。データをデバイスエミュレータ1100から受信し、パケットルータ1400に送信する際には、ポートメモリ1300に内蔵しているインサイドメモリ1314にデータを書き込み・読み出しを実行し、データをパケットルータ1400から受信し、デバイスエミュレータ1100に送信する際には、ポートメモリ1300に内蔵しているアウトサイドメモリ1315にデータを書き込み・読み出しをする。   The data controller 1200 is not always capable of transmitting data immediately after receiving the data, and the buffer 1211 possessed by the DMA controller 1210 built in the data controller 1200 is also finite. When data is written and data is erased from the buffer at the time of data transmission, data is read from the port memory 1300. When data is received from the device emulator 1100 and transmitted to the packet router 1400, the data is written to and read from the inside memory 1314 built in the port memory 1300, and the data is received from the packet router 1400. When transmitting to the emulator 1100, data is written to and read from the outside memory 1315 built in the port memory 1300.

ポートメモリの書き込みにおいて、ポート#1DMAコントローラ#1 2300がメモリの書き込みの許可を問い合わせる送信許可要求を外部より受信する。   In port memory writing, the port # 1 DMA controller # 1 2300 receives a transmission permission request for inquiring permission of memory writing from the outside.

受信後、ポート#1DMAコントローラ#1 2300はポート#1メモリコントローラ#1 2301を経由してポート#1サブメモリコントローラ#1 2302に送信許可要求2320を送信し、応答として、ポート#1サブメモリコントローラ#1 2302から送信許可2321を受信する。   After receiving, the port # 1 DMA controller # 1 2300 transmits a transmission permission request 2320 to the port # 1 sub memory controller # 1 2302 via the port # 1 memory controller # 1 2301, and in response, the port # 1 sub memory controller # 1 2302 The transmission permission 2321 is received from # 1 2302.

その後、ポート#1DMAコントローラ#1 2300は、ポート#1メモリコントローラ#1 2301とポート#1サブメモリコントローラ#1 2302を経由し、ポート#1ローカルメモリ#1 2303へデータを送信、書き込みを実行2322し、応答として、受信完了通知2323を受信する。   Thereafter, the port # 1 DMA controller # 1 2300 transmits data to the port # 1 local memory # 1 2303 via the port # 1 memory controller # 1 2301 and the port # 1 sub memory controller # 1 2302, and executes writing 2322 In response, a reception completion notification 2323 is received.

ポートメモリの読み出しにおいて、ポート#1DMAコントローラ#1 2300がメモリへの読み出し要求を行うデータ送信要求を外部より受信する。   In reading the port memory, the port # 1 DMA controller # 1 2300 receives from the outside a data transmission request for making a read request to the memory.

受信後、ポート#1DMAコントローラ#1 2300はポート#1メインコントローラ#1 2301とポート#1サブメモリコントローラ#2 2304を経由して、ポート#1ローカルメモリ#2 2305へ先頭アドレスと指定サイズを含んだデータ送信要求2340を送信し、応答として、ポート#1ローカルメモリ#2 2305からのデータ送信2341を受信する。   After reception, the port # 1 DMA controller # 1 2300 includes the start address and the specified size to the port # 1 local memory # 2 2305 via the port # 1 main controller # 1 2301 and the port # 1 sub memory controller # 2 2304. The data transmission request 2340 is transmitted, and the data transmission 2341 from the port # 1 local memory # 2 2305 is received as a response.

図8-10で説明したノード間通信におけるセッション構築プロセス、セッション解除プロセス、データ転送プロセスをフローチャートで図12-14に示す。   The session construction process, session release process, and data transfer process in the inter-node communication described with reference to FIG.

図12-14はブロックを左右2列に配置しており、ノード#1側、#2側を意味している。図8-10と同様にノード#1を送信ノード、ノード#2は受信ノードとする。   In FIG. 12-14, blocks are arranged in two rows on the left and right sides, meaning the node # 1 side and the # 2 side. As in FIG. 8-10, node # 1 is the transmission node and node # 2 is the reception node.

図12でセッション構築プロセスのフローチャートを説明する。ノード間データ転送において、最初にセッション構築を行う。ステップ2400をセッション構築プロセスの開始とし、ステップ2401に遷移する。   A flowchart of the session construction process will be described with reference to FIG. In node-to-node data transfer, session construction is first performed. Step 2400 is set as the start of the session construction process, and the process proceeds to step 2401.

ステップ2401では、ノード#1ドライバ1523、2000からポート#1デバイスエミュレータ#1 1024、2003にセッション接続要求を送信2020する。   In step 2401, a session connection request is transmitted 2020 from the node # 1 driver 1523, 2000 to the port # 1 device emulator # 1 1024, 2003.

セッション接続要求には、送信ノードであるノード#1 1020のメモリ1521の中にあるデータを受信ノードであるノード#2 1040のメモリ1541に複製するために、送信ノード内のデータの先頭アドレス、サイズ、受信ノード宛先が含まれる。   In the session connection request, in order to copy the data in the memory 1521 of the node # 1 1020 which is the transmission node to the memory 1541 of the node # 2 1040 which is the reception node, the start address and size of the data in the transmission node , Receiving node destinations are included.

ポート#1デバイスエミュレータ#1 1024、2003内で、セッション接続要求は、PCIe通信部1110を経由して、トランザクション管理部1111に送信される。トランザクション管理部1111は、セッション接続要求の中にある宛先情報を元に、汎用バス直接結合型ネットワークスイッチ1000内での経路情報をネットワーク管理部1113より経路情報を取得する。次にステップ2402に遷移する。ステップ2402では、ポート#1デバイスエミュレータ#1 1024、1100のトランザクション管理部1111は、ポート#1データコントローラ#1 1026、1200から信号2021、2022を以って、データ転送準備情報を受信する。これにより、汎用バス直接結合型ネットワークスイッチ1000内の送信ノード側で使用する経路やバッファを確保完了となる。次にステップ2403に遷移する。   In the port # 1 device emulator # 1 1024, 2003, the session connection request is transmitted to the transaction management unit 1111 via the PCIe communication unit 1110. The transaction management unit 1111 acquires route information in the general-purpose bus direct coupling type network switch 1000 from the network management unit 1113 based on the destination information in the session connection request. Next, the process proceeds to step 2402. In step 2402, the transaction management unit 1111 of the port # 1 device emulator # 1 1024, 1100 receives data transfer preparation information from the port # 1 data controller # 1 1026, 1200 using signals 2021, 2022. This completes securing the path and buffer used on the transmission node side in the general-purpose bus direct coupling network switch 1000. Next, the process proceeds to step 2403.

ステップ2403では、ポート#1デバイスエミュレータ#1 1024、1100からポート#2デバイスエミュレータ#2 1044、1100へデバイスエミュレータ間ネットワーク1031、1051を経由してセッション接続要求とポート#1データコントローラ#1 1026、1200からのデータ転送準備情報を送信する。その後、ポート#1デバイスエミュレータ#1 1024、1100は、ポート#2デバイスエミュレータ#2 1044、1100からのセッション接続許可の受信を待機するステップ2404に遷移する。   In step 2403, a session connection request and a port # 1 data controller # 1 1026 are transmitted from the port # 1 device emulator # 1 1024, 1100 to the port # 2 device emulator # 2 1044, 1100 via the device emulator network 1031, 1051. Data transfer preparation information from 1200 is transmitted. Thereafter, the port # 1 device emulator # 1 1024, 1100 transitions to step 2404 where it waits for reception of a session connection permission from the port # 2 device emulator # 2 1044, 1100.

次に、ステップ2403にてポート#1デバイスエミュレータ#1 1024、1100がポート#2デバイスエミュレータ#2 1044、1100へセッション接続要求とポート#1データコントローラ#1 1026、1200からのデータ転送準備情報を送信した後のポート#2デバイスエミュレータ#2の処理ステップ2405について説明する。   Next, in step 2403, port # 1 device emulator # 1 1024, 1100 sends a session connection request to port # 2 device emulator # 2 1044, 1100 and data transfer preparation information from port # 1 data controller # 1 1026, 1200. Processing step 2405 of port # 2 device emulator # 2 after transmission will be described.

ステップ2405では、ポート#2デバイスエミュレータ#2 1044、1100はポート#1デバイスエミュレータ#1 1024、1100からデバイスエミュレータ間ネットワーク1031、1051を経由してセッション接続要求とポート#1データコントローラ#1 1026、1200からのデータ転送準備情報を受信する。   In step 2405, the port # 2 device emulator # 2 1044, 1100 sends a session connection request and the port # 1 data controller # 1 1026 from the port # 1 device emulator # 1 1024, 1100 via the device emulator network 1031, 1051. Data transfer preparation information from 1200 is received.

その後、ステップ2406で、ポート#2デバイスエミュレータ#2 1044、1100のトランザクション管理部1111は、ポート#2データコントローラ#2 1046、1200から信号2024、2025を以って、データ転送準備情報を取得する。これにより、汎用バス直接結合型ネットワークスイッチ1000内の送信ノード側で使用する経路やバッファを確保完了となる。この時、取得したポート#1データコントローラ#1 1026、1200からのデータ転送準備情報を利用して,データ転送に使用する経路の設定を行い,次にステップ2407に遷移する。   Thereafter, in step 2406, the transaction management unit 1111 of the port # 2 device emulator # 2 1044, 1100 acquires data transfer preparation information from the port # 2 data controller # 2 1046, 1200 using the signals 2024, 2025. . This completes securing the path and buffer used on the transmission node side in the general-purpose bus direct coupling network switch 1000. At this time, the data transfer preparation information from the acquired port # 1 data controller # 1 1026, 1200 is used to set a path to be used for data transfer, and then the process proceeds to step 2407.

ステップ2407では、ポート#2デバイスエミュレータ#2 1044、2013からノード#2ドライバ1543、2010へセッション接続要求を送信2026する。次に、ステップ2408に遷移する。   In step 2407, a session connection request is transmitted 2026 from the port # 2 device emulator # 2 1044, 2013 to the node # 2 driver 1543, 2010. Next, the process proceeds to step 2408.

ステップ2408では、セッション接続要求を受信したノード#2ドライバ1543、2010は、ポート#2デバイスエミュレータ#2 1044、2013にセッション接続許可通知を送信2027する。   In step 2408, the node # 2 drivers 1543 and 2010 that have received the session connection request transmit 2027 a session connection permission notification to the port # 2 device emulator # 2 1044 and 2013.

セッション接続要求には、送信ノードであるノード#1 1020のメモリ1521の中にあるデータを受信ノードであるノード#2 1040のメモリ1521に複製するための受信ノード内での書き込みエリアの先頭アドレスが含まれる。   In the session connection request, the start address of the write area in the receiving node for replicating the data in the memory 1521 of the node # 1 1020, which is the sending node, to the memory 1521 of the node # 2 1040, which is the receiving node. included.

ポート#2デバイスエミュレータ#2 1044、2013内で、セッション接続要求は、PCIe通信部1110を経由して、トランザクション管理部1111に送信される。トランザクション管理部1111は、セッション接続要求の中にある宛先情報を元に、汎用バス直接結合型ネットワークスイッチ1000内での経路情報をネットワーク管理部1113より経路情報を取得する。次にステップ2409に遷移する。   In the port # 2 device emulator # 2 1044 and 2013, the session connection request is transmitted to the transaction management unit 1111 via the PCIe communication unit 1110. The transaction management unit 1111 acquires route information in the general-purpose bus direct coupling type network switch 1000 from the network management unit 1113 based on the destination information in the session connection request. Next, the process proceeds to step 2409.

ステップ2409では、ポート#2デバイスエミュレータ#2 1044、1100からポート#1デバイスエミュレータ#1 1024、1100へデバイスエミュレータ間ネットワーク1031、1051を経由してセッション接続許可通知とポート#2データコントローラ#2 1046、1200からのデータ転送準備情報を送信する。   In step 2409, the session connection permission notification and the port # 2 data controller # 2 1046 are transmitted from the port # 2 device emulator # 2 1044, 1100 to the port # 1 device emulator # 1 1024, 1100 via the device emulator network 1031, 1051. Data transfer preparation information from 1200 is transmitted.

次に、ステップ2409にてポート#2デバイスエミュレータ#2 1044、1100がポート#1デバイスエミュレータ#1 1024、1100へセッション接続許可通知とポート#2データコントローラ#2 1046、1200からのデータ転送準備情報を送信した後のポート#1デバイスエミュレータ#1の処理ステップ2410について説明する。   Next, in step 2409, port # 2 device emulator # 2 1044, 1100 sends a session connection permission notification to port # 1 device emulator # 1 1024, 1100 and data transfer preparation information from port # 2 data controller # 2 1046, 1200. Next, the processing step 2410 of the port # 1 device emulator # 1 after transmitting “” will be described.

ステップ2410では、ポート#1デバイスエミュレータ#1 1024、1100はポート#2デバイスエミュレータ#2 1044、1100からデバイスエミュレータ間ネットワーク1031、1051を経由してセッション接続許可通知とポート#2データコントローラ#2 1046、1200からのデータ転送準備情報を受信2028する。   In step 2410, the port # 1 device emulator # 1 1024 and 1100 are notified of the session connection permission and the port # 2 data controller # 2 1046 from the port # 2 device emulator # 2 1044 and 1100 via the device emulator network 1031 and 1051, respectively. The data transfer preparation information from 1200 is received 2028.

その後、ステップ2411で、ポート#1デバイスエミュレータ#1 1024、1100のトランザクション管理部1111は、ポート#1データコントローラ#1 1026、1200へ信号2029を以って、ポート#2データコントローラ#2 1046、1200からのデータ転送準備情報を送信する。これにより、取得したポート#2データコントローラ#2 1046、1200からのデータ転送準備情報を利用して,データ転送に使用する経路の設定を行い,次にステップ2412に遷移する。   Thereafter, in step 2411, the transaction management unit 1111 of the port # 1 device emulator # 1 1024, 1100 sends a signal 2029 to the port # 1 data controller # 1 1026, 1200 to send the port # 2 data controller # 2 1046, Data transfer preparation information from 1200 is transmitted. Thus, the data transfer preparation information from the acquired port # 2 data controller # 2 1046, 1200 is used to set the path used for data transfer, and then the process proceeds to step 2412.

ステップ2412において、汎用バス直接結合型ネットワークスイッチ1000内部で、データ転送のために必要な経路やバッファが確保されており、ポート#1デバイスエミュレータ#1 1024、1100からノード#1ドライバ1523、2000へセッション接続許可通知2030を送信する。   In step 2412, a path and a buffer necessary for data transfer are secured in the general-purpose bus direct coupling type network switch 1000, and the port # 1 device emulator # 1 1024, 1100 to the node # 1 driver 1523, 2000. A session connection permission notification 2030 is transmitted.

最後にステップ2413において以上の処理を確認し、セッション構築プロセスの終了となる。   Finally, in step 2413, the above processing is confirmed, and the session construction process ends.

図13でセッション解除プロセスのフローチャートを説明する。ノード間データ転送において、最後にセッション解除を行う。ステップ2500をセッション解除プロセスの開始とし、ステップ2501に遷移する。   A flowchart of the session release process will be described with reference to FIG. In the data transfer between nodes, the session is finally released. Step 2500 is set to start the session release process, and the process proceeds to step 2501.

ステップ2501では、ポート#1デバイスエミュレータ#1 1024、2003からポート#2デバイスエミュレータ#2 1044、2013にデバイスエミュレータ間ネットワークを経由して、セッション解除要求を送信2120する。   In step 2501, a session release request is transmitted 2120 from the port # 1 device emulator # 1 1024, 2003 to the port # 2 device emulator # 2 1044, 2013 via the network between device emulators.

セッションを区別する情報はポート#1デバイスエミュレータ#1 1024、2003内のトランザクション管理部1111が所持しているため、セッション解除要求はトランザクション管理部1111から送信する。   Since the information for identifying the session is possessed by the transaction management unit 1111 in the port # 1 device emulator # 1 1024, 2003, the session release request is transmitted from the transaction management unit 1111.

その後、ポート#1デバイスエミュレータ#1 1024、1100は、ポート#2デバイスエミュレータ#2 1044、1100からのセッション解除通知の受信を待機するステップ2502に遷移する。   Thereafter, the port # 1 device emulator # 1 1024, 1100 transitions to step 2502 where the reception of the session release notification from the port # 2 device emulator # 2 1044, 1100 is awaited.

次に、ステップ2501にてポート#1デバイスエミュレータ#1 1024、1100がポート#2デバイスエミュレータ#2 1044、1100へセッション接続要求を送信した後のポート#2デバイスエミュレータ#2の処理ステップ2503について説明する。ステップ2503では、ポート#2デバイスエミュレータ#2 1044、1100はポート#1デバイスエミュレータ#1 1024、1100からデバイスエミュレータ間ネットワーク1031、1051を経由してセッション解除要求を受信2120する。   Next, processing step 2503 of port # 2 device emulator # 2 after port # 1 device emulator # 1 1024, 1100 transmits a session connection request to port # 2 device emulator # 2 1044, 1100 in step 2501 will be described. To do. In step 2503, the port # 2 device emulator # 2 1044, 1100 receives 2120 the session release request from the port # 1 device emulator # 1 1024, 1100 via the inter-device emulator network 1031, 1051.

その後、ステップ2504では、ポート#2デバイスエミュレータ#2 1044、2013からノード#2ドライバ1543、2010へセッション解除要求を送信2120する。次に、ステップ2505に遷移する。   Thereafter, in step 2504, a session release request is transmitted 2120 from the port # 2 device emulator # 2 1044, 2013 to the node # 2 driver 1543, 2010. Next, the process proceeds to step 2505.

セッション解除要求を受信したノード#2ドライバ1543、2010は、ポート#2デバイスエミュレータ#2 1044、2013にセッション解除通知を送信2121する。ポート#2デバイスエミュレータ#2 1044、2013内で、セッション解除通知は、PCIe通信部1110を経由して、トランザクション管理部1111に送信される。   The node # 2 drivers 1543 and 2010 that have received the session release request send 2121 a session release notification to the port # 2 device emulator # 2 1044 and 2013. In the port # 2 device emulator # 2 1044 and 2013, the session release notification is transmitted to the transaction management unit 1111 via the PCIe communication unit 1110.

その後、ステップ2506で、ポート#2デバイスエミュレータ#2 1044、1100のトランザクション管理部1111は、ポート#2データコントローラ#2 1046、1200から信号2122、2123を以って、データ転送終了処理完了通知を受信する。これにより、汎用バス直接結合型ネットワークスイッチ1000内の受信ノード側で使用した経路やバッファが解除完了となる。次にステップ2507に遷移する。   Thereafter, in step 2506, the transaction management unit 1111 of the port # 2 device emulator # 2 1044, 1100 sends a data transfer end processing completion notification from the port # 2 data controller # 2 1046, 1200 using the signals 2122, 2123. Receive. As a result, the path and buffer used on the receiving node side in the general-purpose bus direct coupling network switch 1000 are completely released. Next, the process proceeds to step 2507.

ステップ2507では、ポート#2デバイスエミュレータ#2 1044、1100からポート#1デバイスエミュレータ#1 1024、1100へデバイスエミュレータ間ネットワーク1031、1051を経由してセッション解除通知を送信2124する。   In step 2507, a session release notification is transmitted 2124 from the port # 2 device emulator # 2 1044, 1100 to the port # 1 device emulator # 1 1024, 1100 via the inter-device emulator network 1031, 1051.

次に、ステップ2507にてポート#2デバイスエミュレータ#2 1044、1100がポート#1デバイスエミュレータ#1 1024、1100へセッション接続許可通知を送信した後のポート#1デバイスエミュレータ#1の処理ステップ2508について説明する。   Next, in step 2507, processing step 2508 of port # 1 device emulator # 1 after port # 2 device emulator # 2 1044, 1100 transmits a session connection permission notification to port # 1 device emulator # 1 1024, 1100. explain.

ステップ2508では、ポート#1デバイスエミュレータ#1 1024、1100はポート#2デバイスエミュレータ#2 1044、1100からデバイスエミュレータ間ネットワーク1031、1051を経由してセッション解除通知を受信する。   In step 2508, the port # 1 device emulator # 1 1024, 1100 receives a session release notification from the port # 2 device emulator # 2 1044, 1100 via the device emulator network 1031, 1051.

その後、ステップ2509で、ポート#1デバイスエミュレータ#1 1024、1100のトランザクション管理部1111は、ポート#1データコントローラ#1 1026、1200から信号2125、2126を以って、データ転送終了処理完了通知を受信する。これにより、汎用バス直接結合型ネットワークスイッチ1000内の送信ノード側で使用した経路やバッファが解除完了となる。次にステップ2510に遷移する。   Thereafter, in step 2509, the transaction management unit 1111 of the port # 1 device emulator # 1 1024, 1100 sends a data transfer end processing completion notification from the port # 1 data controller # 1 1026, 1200 using signals 2125, 2126. Receive. As a result, the path and buffer used on the transmission node side in the general-purpose bus direct coupling type network switch 1000 are completely released. Next, the process proceeds to step 2510.

ステップ2510において、最後に、ポート#1デバイスエミュレータ#1 1024、1100からノード#1ドライバ1523、2000へセッション接続許可通知2030を送信する。   In step 2510, finally, a session connection permission notification 2030 is transmitted from the port # 1 device emulator # 1 1024, 1100 to the node # 1 driver 1523, 2000.

ステップ2511において以上の処理を確認し、セッション解除プロセスの終了となる。   In step 2511, the above processing is confirmed, and the session cancellation process ends.

図14aと図14bと図14cでデータ転送プロセスのフローチャートを説明する。ステップ2600をデータ転送プロセスを開始とし、ステップ2601に遷移し、ノード#1ドライバにてセッション接続が完了していることを確認する。次にステップ2602に遷移する。   A flowchart of the data transfer process is described with reference to FIGS. 14a, 14b and 14c. In step 2600, the data transfer process is started, and the process proceeds to step 2601 to confirm that the session connection is completed in the node # 1 driver. Next, the process proceeds to step 2602.

ステップ2602にてノード#1ドライバ1523からポート#1デバイスエミュレータ#1 1024、1100へデータ転送トランザクション開始要求を送信2220する。   In step 2602, a data transfer transaction start request is transmitted 2220 from the node # 1 driver 1523 to the port # 1 device emulator # 1 1024, 1100.

次にステップ2603にてポート#1デバイスエミュレータ#1 1024、1100からポート#1データコントローラ#1 1026、1200へデータ転送開始要求を送信2221し、ステップ2604へ遷移する。   In step 2603, a data transfer start request is transmitted 2221 from the port # 1 device emulator # 1 1024, 1100 to the port # 1 data controller # 1 1026, 1200, and the process proceeds to step 2604.

ステップ2604では、DMAで読み出し・書き込みできる分轄された区間にあるデータを転送するためポート#1データコントローラ#1 1026、1200からノード#1メモリ1521へDMA Readを送信2222し、データを受信2223する。   In step 2604, a DMA Read is transmitted 2222 from the port # 1 data controller # 1 1026, 1200 to the node # 1 memory 1521 and data is received 2223 in order to transfer the data in the section that can be read / written by DMA. .

ステップ2605では、DMA Readで要求したデータが取得しているかを確認し、未完了であればステップ2604に遷移し、完了であればステップ2606に遷移する。   In step 2605, it is confirmed whether the data requested by DMA Read has been acquired. If it is not completed, the process proceeds to step 2604. If completed, the process proceeds to step 2606.

ステップ2606では、信号2224で、ポート#1ポートメモリ#1 1028、1300にデータを保存する。次にステップ2607にて、ポート#1データコントローラ#1 1026、1200からポート#2データコントローラ#2 1046、1200へポート#1パケットルータ#1 1030、1400、ポート#2パケットルータ#2 1050、1400、パケットルータ間ネットワーク1033、1053を経由してデータ送信2226を開始する。   In step 2606, data is stored in the port # 1 port memory # 1 1028, 1300 using the signal 2224. Next, in step 2607, port # 1 data controller # 1 1026, 1200 to port # 2 data controller # 2 1046, 1200 port # 1 packet router # 1 1030, 1400, port # 2 packet router # 2 1050, 1400 The data transmission 2226 is started via the inter-packet router networks 1033 and 1053.

ただし、ステップ2608にてポート#1データコントローラ#1 1026、1200がポート#1パケットルータ#1 1030、1400よりデータの転送一時停止割込みを受信しているかを確認し、Yesならステップ2609へ遷移し、Noならステップ2613へ遷移し、ポート#1データコントローラ#1 1026、1200からポート#2データコントローラ#2 1046、1200へのデータ送信を完了とする。   However, in step 2608, it is confirmed whether the port # 1 data controller # 1 1026, 1200 has received a data transfer pause interrupt from the port # 1 packet router # 1 1030, 1400. If No, the process proceeds to step 2613, and the data transmission from the port # 1 data controller # 1 1026, 1200 to the port # 2 data controller # 2 1046, 1200 is completed.

ステップ2609にてポート#1データコントローラ#1 1026、1200がポート#2データコントローラ#2 1046、1200からのデータ転送一時停止割込みを受信したならステップ2610にてポート#1データコントローラ#1 1026、1200からポート#2データコントローラ#2 1046、1200へのデータ送信を一時停止する。その後、ステップ2611にてポート#1データコントローラ#1 1026、1200がポート#2データコントローラ#2 1046、1200からの転送再開許可通知を受信する。ただし、ステップ2612にてポート#1データコントローラ#1 1026、1200のバッファからデータが消えている場合、ポート#1ポートメモリ#1 1028、1300からデータの読み出し2225を実行し、ステップ2607へ戻る。   If port # 1 data controller # 1 1026, 1200 receives a data transfer pause interrupt from port # 2 data controller # 2 1046, 1200 at step 2609, port # 1 data controller # 1 1026, 1200 at step 2610 Data transmission from port # 2 to data controller # 2 1046, 1200 is suspended. Thereafter, in step 2611, the port # 1 data controller # 1 1026, 1200 receives the transfer resumption permission notification from the port # 2 data controller # 2 1046, 1200. However, if the data has disappeared from the buffer of the port # 1 data controller # 1 1026, 1200 at step 2612, the data read from the port # 1 port memory # 1 1028, 1300 is executed 2225, and the processing returns to step 2607.

ポート#1データコントローラ#1 1026、1200にてデータ送信を完了した場合、ステップ2613へ戻る。   When data transmission is completed at port # 1 data controller # 1 1026, 1200, the process returns to step 2613.

次に、ステップ2607にてポート#1データコントローラ#1 1026、1200がポート#2データコントローラ#2 1046、1200へデータ送信をし始めた時のポート#2データコントローラ#2 1046、1200について説明する。   Next, port # 2 data controller # 2 1046, 1200 when port # 1 data controller # 1 1026, 1200 starts transmitting data to port # 2 data controller # 2 1046, 1200 in step 2607 will be described. .

ステップ2614にてポート#2データコントローラ#2 1046、1200がポート#1データコントローラ#1 1026、1200からのデータ受信2226を開始する。ただし、ステップ2615にてポート#2データコントローラ#2 1046、1200がポート#2パケットルータ#2 1050、1400よりデータの転送一時停止割込みを送信するかを決定し、Yesならステップ2616へ遷移し、Noならステップ2619へ遷移し、ポート#2データコントローラ#2 1046、1200のポート#1データコントローラ#1 1026、1200からのデータ受信を継続とする。   In step 2614, the port # 2 data controller # 2 1046, 1200 starts receiving data 2226 from the port # 1 data controller # 1 1026, 1200. However, in step 2615, it is determined whether the port # 2 data controller # 2 1046, 1200 transmits a data transfer pause interrupt from the port # 2 packet router # 2 1050, 1400. If Yes, the process proceeds to step 2616. If No, the process proceeds to step 2619, and the data reception from the port # 1 data controller # 1 1026, 1200 of the port # 2 data controller # 2 1046, 1200 is continued.

ステップ2616にてポート#2データコントローラ#2 1046、1200がポート#1データコントローラ#1 1026、1200へデータ転送一時停止割込みを送信したならステップ2617にてポート#2データコントローラ#2 1046、1200はポート#1データコントローラ#1 1026、1200からのデータ受信を一時停止する。   If port # 2 data controller # 2 1046, 1200 sends a data transfer pause interrupt to port # 1 data controller # 1 1026, 1200 in step 2616, port # 2 data controller # 2 1046, 1200 is sent in step 2617. Data reception from port # 1 data controller # 1 1026, 1200 is temporarily stopped.

その後、ステップ2618にてポート#2データコントローラ#2 1046、1200がポート#1データコントローラ#1 1026、1200へ転送再開許可通知を送信し、ステップ2614へ戻る。ステップ2615にて、転送一時停止割込を送信しなかった場合、ステップ2619にてポート#2データコントローラ#2 1046、1200はポート#1データコントローラ#1 1026、1200からのデータ受信を継続する。   Thereafter, in step 2618, the port # 2 data controller # 2 1046, 1200 transmits a transfer restart permission notice to the port # 1 data controller # 1 1026, 1200, and the process returns to step 2614. If it is determined in step 2615 that the transfer suspension interrupt has not been transmitted, the port # 2 data controller # 2 1046, 1200 continues to receive data from the port # 1 data controller # 1 1026, 1200 in step 2619.

その後、ステップ2620にて、受信したデータのポート#2ポートメモリ#2 1048、1300への書き込み2227を開始する。   Thereafter, in step 2620, writing 2227 of the received data to the port # 2 port memory # 2 1048, 1300 is started.

ステップ2622にて、ポート#2データコントローラ#2 1046、1200がノード#2メモリ1541へデータをDMA Write出来る状況かを判定し、Yesならステップ2624、Noならステップ2623へ遷移する。   In step 2622, it is determined whether the port # 2 data controller # 2 1046, 1200 can DMA-write data to the node # 2 memory 1541.

ステップ2623では、動作を一時停止し、その後、再び、ステップ2622へ戻る。ステップ2622でポート#2データコントローラ#2 1046、1200がノード#2メモリ1541へデータをDMA Write出来る状況かの判定で、Yesならステップ2624に遷移し、ポート#2ポートメモリ#2 1048、1300からデータの読み出し2228を実行する。   In step 2623, the operation is temporarily stopped, and then the process returns to step 2622 again. In step 2622, it is determined whether the port # 2 data controller # 2 1046, 1200 can DMA write data to the node # 2 memory 1541. If Yes, the flow proceeds to step 2624, and the port # 2 port memory # 2 1048, 1300 starts. Data read 2228 is executed.

その後、ステップ2625にてポート#2データコントローラ#2 1046、1200からノード#2メモリ1541への分轄された区間におけるデータのDMA Write完了し、データ転送の終了通知をポート#1データコントローラ#1 1026、1200へ送信2230する
次に、ステップ2625にてポート#2データコントローラ#2 1046、1200がポート#1データコントローラ#1 1026、1200へデータ転送終了通知を送信2230した後のポート#1データコントローラ#1 1026、1200について説明する。
Thereafter, in step 2625, the DMA write of the data in the section allocated from the port # 2 data controller # 2 1046, 1200 to the node # 2 memory 1541 is completed, and a data transfer end notification is sent to the port # 1 data controller # 1 1026. Next, in step 2625, the port # 2 data controller # 2 1046, 1200 transmits the data transfer end notification to the port # 1 data controller # 1 1026, 1200. The port # 1 data controller after transmission 2230 # 1 1026 and 1200 will be described.

まず、ステップ2626にて、ポート#1データコントローラ#1 1026、1200がポート#2データコントローラ#2 1046、1200からのデータ転送終了通知を受信2230し、ステップ2627にて、全データの転送が終了しているかを判定し、Noならステップ2604に戻り、動作を繰り返し、Yesならステップ2628に遷移する。   First, in step 2626, the port # 1 data controller # 1 1026, 1200 receives the data transfer end notification from the port # 2 data controller # 2 1046, 1200 2230, and in step 2627, the transfer of all data is completed. If it is No, the process returns to Step 2604, and the operation is repeated. If it is Yes, the process proceeds to Step 2628.

ステップ2628では、ポート#1データコントローラ#1 1026、1200からポート#2データコントローラ#2 1046、1200へデータ転送終了通知を送信2231する
ステップ2629では、ポート#1データコントローラ#1 1026、1200からポート#1デバイスエミュレータ#1 1024、1100を経由して、ノード#1ドライバ1523へデータ転送終了通知を送信2232する。
In step 2628, a data transfer end notification is transmitted 2231 from port # 1 data controller # 1 1026, 1200 to port # 2 data controller # 2 1046, 1200. In step 2629, port # 1 data controller # 1 1026, 1200 to port A data transfer end notification is transmitted 2232 to the node # 1 driver 1523 via the # 1 device emulator # 1 1024 and 1100.

ステップ2630ではポート#1デバイスエミュレータ#1 1024、1100からポート#2デバイスエミュレータ#2 1044、1100へデバイスエミュレータ間ネットワーク1031、1051、1105を経由してデータ転送トランザクション終了通知2234を送信し、ステップ2631にて、ポート#1デバイスエミュレータ#1 1024、1100からノード#1ドライバ1523へ同様に、データ転送トランザクション終了通知を送信2233する。   In step 2630, a data transfer transaction end notification 2234 is transmitted from the port # 1 device emulator # 1 1024, 1100 to the port # 2 device emulator # 2 1044, 1100 via the inter-device emulator networks 1031, 1051, 1105. Then, the port # 1 device emulator # 1 1024, 1100 sends a data transfer transaction end notification 2233 to the node # 1 driver 1523 in the same manner.

次に、ステップ2628にてポート#1データコントローラ#1 1026、1200がポート#2データコントローラ#2 1046、1200へデータ転送終了通知を送信2231した後のポート#2データコントローラ#2 1046、1200について説明する。   Next, in step 2628, for port # 2 data controller # 2 1046, 1200 after port 2 data controller # 1 1026, 1200 sends 2231 a data transfer end notification to port # 2 data controller # 2 1046, 1200 explain.

ステップ2632では、ポート#2データコントローラ#2 1046、1200はポート#1データコントローラ#1 1026、1200からデータ転送終了通知を受信2231する。   In step 2632, the port # 2 data controller # 2 1046, 1200 receives the data transfer end notification 2231 from the port # 1 data controller # 1 1026, 1200.

ステップ2633では、ポート#2データコントローラ#1 1046、1200からポート#2デバイスエミュレータ#1 1044、1100を経由して、ノード#2ドライバ1543へデータ転送終了通知を送信2231する。   In step 2633, a data transfer end notification is transmitted 2231 from the port # 2 data controller # 1 1046, 1200 to the node # 2 driver 1543 via the port # 2 device emulator # 1 1044, 1100.

ステップ2634ではポート#2デバイスエミュレータ#2 1044、1100はポート#1デバイスエミュレータ#1 1024、1100からデバイスエミュレータ間ネットワーク1031、1051、1105を経由してデータ転送トランザクション終了通知を受信2234し、ステップ2635にて、ポート#2デバイスエミュレータ#1 1044、1100からノード#2ドライバ1543へ同様に、データ転送トランザクション終了通知を送信2234する。最後にステップ2632にてこれら全ての処理を持ってデータ転送終了となる。   In step 2634, the port # 2 device emulator # 2 1044, 1100 receives the data transfer transaction end notification 2234 from the port # 1 device emulator # 1 1024, 1100 via the inter-device emulator networks 1031, 1051, 1105, and step 2635. Then, the port # 2 device emulator # 1 1044, 1100 transmits a data transfer transaction end notification 2234 to the node # 2 driver 1543 in the same manner. Finally, in step 2632, the data transfer ends with all these processes.

図15で、汎用バス直接結合型ネットワークスイッチ1000を介して、ノード1020、104、1060が通信する際に使用するプロトコルの構成と、そのプロトコルが、汎用バス直接結合型ネットワークスイッチ1000内部のデバイスエミュレータ1024、1044、1064、データコントローラ1026、 1046、 1066、ポートメモリ1028、1048、1068、パケットルータ1030、1050、1070などの各部位にてどのように使用されるかについて説明する。   In FIG. 15, the configuration of the protocol used when the nodes 1020, 104, and 1060 communicate via the general-purpose bus direct coupling type network switch 1000, and the protocol is a device emulator in the general-purpose bus direct coupling type network switch 1000. 1024, 1044, 1064, data controllers 1026, 1046, 1066, port memories 1028, 1048, 1068, packet routers 1030, 1050, 1070 will be described how they are used.

汎用バス直接結合型ネットワークスイッチ1000とノード1020、1040、1060の経路はPCIeで接続されているため、データ転送で使用されるパケットの構造はPCIeのプロトコルに依存し、パケットはPCIeパケットエリア1710と非PCIeパケットエリア1720の2つに分けられる。この時、PCIeの経路上では、PCIeパケットエリア1710の情報だけを参照し、汎用バス直接結合型ネットワークスイッチ1000とノード1020、1040、1060の間のデータ転送を実現する。この時、非PCIeパケットエリアはPCIeバス上でのデータ転送におけるパケットの振る舞いに影響を及ぼさない 。   Since the general-purpose bus direct coupling type network switch 1000 and the paths of the nodes 1020, 1040, and 1060 are connected by PCIe, the packet structure used for data transfer depends on the PCIe protocol, and the packet is connected to the PCIe packet area 1710. The non-PCIe packet area 1720 is divided into two. At this time, only the information of the PCIe packet area 1710 is referred to on the PCIe path, and data transfer between the general-purpose bus direct coupling network switch 1000 and the nodes 1020, 1040, and 1060 is realized. At this time, the non-PCIe packet area does not affect the packet behavior during data transfer on the PCIe bus.

汎用バス直接結合型ネットワークスイッチはポート1022、1042、1062で PCIeのプロトコルに従う電気信号を送受信し、論理信号に変換したパケットをデバイスエミュレータ1024、1044、1064と送受信する。その後、デバイスエミュレータ1024、1044、1064内のPCIe通信部1110にてPCIeのプロトコルに従う信号の処理を行い、PCIeパケットエリア1710を削除した非PCIeパケットエリアのみでトランザクション管理1111とデータ転送を行う。この後のデバイスエミュレータ1024、1044、1064、データコントローラ1026、1046、1066、ポートメモリ1028、1048、1068、パケットルータ1030、1050、1070の間では、非PCIパケットエリアを参照し、データ転送を実現する。   The general-purpose bus direct coupling type network switch transmits and receives electrical signals in accordance with the PCIe protocol at ports 1022, 1042, and 1062, and transmits and receives packets converted to logic signals to and from device emulators 1024, 1044, and 1064. Thereafter, the PCIe communication unit 1110 in the device emulators 1024, 1044, and 1064 performs signal processing in accordance with the PCIe protocol, and performs data transfer with the transaction management 1111 only in the non-PCIe packet area from which the PCIe packet area 1710 is deleted. Data transfer between the device emulators 1024, 1044, 1064, data controllers 1026, 1046, 1066, port memories 1028, 1048, 1068, and packet routers 1030, 1050, 1070 is performed by referring to the non-PCI packet area. To do.

非PCIeパケットエリア2720は、パケットレングス2730、ローカル・トランザクションエリア2740、グローバルトランザクションエリア2750、データエリア2760で構成される。   The non-PCIe packet area 2720 includes a packet length 2730, a local transaction area 2740, a global transaction area 2750, and a data area 2760.

パケットレングス2720は、非PCIeパケットエリア2720のサイズを示す。   The packet length 2720 indicates the size of the non-PCIe packet area 2720.

ローカル・トランザクションエリア2740は、パケットタイプ2741、ステータス2742、リクエスタID2743、リクエスタ・トランザクション識別子2744、コンプリータID2745、コンプリータ・トランザクション識別子2746、信号処理方向識別子2747で構成される。   The local transaction area 2740 includes a packet type 2741, a status 2742, a requester ID 2743, a requester transaction identifier 2744, a completer ID 2745, a completer transaction identifier 2746, and a signal processing direction identifier 2747.

ローカル・トランザクションエリア2740は、汎用バス直接結合型ネットワークスイッチ1000内部のデバイスエミュレータ1024、1044、1064、データコントローラ1026、1046、1066、ポートメモリ1028、1048、1068、パケットルータ1030、1050、1070の信号線で接続された部位間でのデータ転送の制御に使用される。パケットタイプ2741は、パケットがなんの機能のために発行されたかを示す。各デバイスはパケットタイプ2741に従い、パケットを受信したデバイスは挙動を決定する。リクエスタID2743とコンプリータID2745は、パケットを送信するデバイスと受信するデバイスを意味する。リクエスタ・トランザクション識別子2744とコンプリータ・トランザクション識別子2746は、各デバイスがデバイス間のローカルなトランザクションを識別するために使用する。   The local transaction area 2740 includes signals of device emulators 1024, 1044, 1064, data controllers 1026, 1046, 1066, port memories 1028, 1048, 1068 and packet routers 1030, 1050, 1070 inside the general-purpose bus direct coupling type network switch 1000. Used to control data transfer between parts connected by a line. The packet type 2741 indicates what function the packet is issued for. Each device follows the packet type 2741, and the device that receives the packet determines the behavior. The requester ID 2743 and the completer ID 2745 mean a device that transmits and receives a packet. Requester transaction identifier 2744 and completer transaction identifier 2746 are used by each device to identify local transactions between devices.

リクエスタは、パケットをはじめて送信する際にリクエスタ内で固有の値になるようにリクエスタ・トランザクション識別子2744を決定し、コンプリータ・トランザクション識別子2746は未指定パラメータを設定する。コンプリータは受信したパケットに未知のリクエスタ・トランザクション識別子2744と未指定パラメータのコンプリータ・トランザクション識別子2746がある判定した時、リクエスタ内で固有の値になるようにコンプリータ・トランザクション識別子2746を設定する。リクエスタID2743とコンプリータID2745とリクエスタ・トランザクション識別子2744は、ローカルなトランザクションを開始する際に、リクエスタによって決定され、ローカルなトランザクションが終了するまで変更されない。   When the requester transmits a packet for the first time, the requester transaction identifier 2744 is determined so as to have a unique value in the requester, and the completer transaction identifier 2746 sets an unspecified parameter. When the completer determines that there is an unknown requester transaction identifier 2744 and an unspecified parameter completer transaction identifier 2746 in the received packet, the completer sets the completer transaction identifier 2746 so as to have a unique value in the requester. The requester ID 2743, completer ID 2745, and requester transaction identifier 2744 are determined by the requester when starting a local transaction and are not changed until the local transaction ends.

コンプリータ・トランザクション識別子2746はローカルなトランザクションが開始された時、未指定パラメータで、コンプリータが信号の返信を行った際にコンプリータによって決定され、ローカルなトランザクションが終了するまで変更されない。   The completer transaction identifier 2746 is an unspecified parameter when a local transaction is started, and is determined by the completer when the completer returns a signal, and is not changed until the local transaction ends.

信号処理方向識別子2747は、信号の向きを設定する。グローバル・トランザクションエリア2750は、パケットタイプ2751、ステータス2752、リクエスタID2753、リクエスタ・トランザクション識別子2754、コンプリータID2755、コンプリータ・トランザクション識別子2756、信号処理方向識別子2757で構成さる。   The signal processing direction identifier 2747 sets the direction of the signal. The global transaction area 2750 includes a packet type 2751, a status 2752, a requester ID 2753, a requester transaction identifier 2754, a completer ID 2755, a completer transaction identifier 2756, and a signal processing direction identifier 2757.

グローバル・トランザクションエリア2750は、ノード間通信の制御に使用される。   The global transaction area 2750 is used for controlling communication between nodes.

パラメータID2751-2757の使用方法についてはローカルトランザクション・エリアのパラメータ2741-2747と同じである。ただし、グローバル・トランザクションエリア2750のリクエスタID2753とコンプリータID2755はパケットを送信するノードと受信するノードを意味する。   The usage method of the parameter IDs 2751-2757 is the same as the parameters 2741-2747 in the local transaction area. However, the requester ID 2753 and completer ID 2755 of the global transaction area 2750 mean a node that transmits and receives a packet.

データエリア2760はデータレングス2761、データ2762で構成される。   The data area 2760 is composed of a data length 2761 and data 2762.

データレングス2761はデータ2760のサイズを示す。データ2762は、ローカルトランザクションエリアの2740パケットタイプ2741によって内容が異なる。内容については2810〜2826で構成されたデータフォーマット表2800にて示す。   Data length 2761 indicates the size of data 2760. The content of the data 2762 differs depending on the 2740 packet type 2741 in the local transaction area. The contents are shown in a data format table 2800 composed of 2810 to 2826.

図16で、汎用バス直接結合型ネットワークスイッチ1000を介して、ノード1020、104、1060が通信する際に使用するプロトコルにあるデータエリアのデータフォーマットとそのデータがどのように使用されるかについて説明する。
データフォーマット表2800はローカルトランザクションエリアのパケットタイプ2810とデータエリアのデータ2820で対応付けられている。RTS(Request To Send)2811は送信許可要求であり、データ2762には送信データのメモリの読込先の先頭アドレス、サイズ2821がある。CTS(Clear To Send)2812は送信許可通知であり、データ2762には受信データのメモリの書込先の先頭アドレス2822がある。
FIG. 16 explains the data format of the data area in the protocol used when the nodes 1020, 104, and 1060 communicate via the general-purpose bus direct coupling network switch 1000 and how the data is used. To do.
The data format table 2800 is associated with the packet type 2810 in the local transaction area and the data 2820 in the data area. An RTS (Request To Send) 2811 is a transmission permission request, and the data 2762 includes a start address of the reading destination of the memory of the transmission data and a size 2821. A CTS (Clear To Send) 2812 is a transmission permission notification, and the data 2762 has a start address 2822 of the write destination of the memory of received data.

DMAr(DMA read)2813はダイレクトメモリアクセスでの読み出しで、データ2762には送信データのメモリの読込先の先頭アドレス、サイズ2823がある。   A DMAr (DMA read) 2813 is a direct memory access read, and the data 2762 has a start address and a size 2823 of the transmission data memory read destination.

DMAw(DMA write)2814はダイレクトメモリアクセスでの書き込みで、データ2762にはメモリの書き込み先の先頭アドレス、データ2824がある。ACK/NACK2815は処理の成否を意味するAcknowledgement/No-Acknowledgementで、データ2762には成功の可否、シーケンス番号2825がある。   DMAw (DMA write) 2814 is a write by direct memory access, and data 2762 includes a data write destination head address and data 2824. ACK / NACK 2815 is an Acknowledgment / No-Acknowledgement meaning success or failure of processing, and the data 2762 has success / failure and a sequence number 2825.

DATA2816はデータを送信する時に使用し、データ2762にはシーケンス番号、サイズ、データ2826がある。   DATA 2816 is used when data is transmitted, and data 2762 includes a sequence number, a size, and data 2826.

ELSE2817はデバイス固有に必要とする命令のために用意されており、データ2762はデバイス依存2826となる。   The ELSE 2817 is prepared for an instruction necessary for each device, and the data 2762 becomes a device-dependent 2826.

1000…汎用バス直接結合型ネットワークスイッチ
1020、1040、1060…ノード
1022、1042、1062、1102…ポート
1024、1044、1064、1100…デバイスエミュレータ
1026、1046、1066、1200…データコントローラ
1028、1048、1068、1300…ポートメモリ
1030、1050、1070、1400…パケットルータ
1031…デバイスエミュレータ間ネットワーク
1033…パケットルータ間ネットワーク
1051…デバイスエミュレータ間ネットワーク
1053…パケットルータ間ネットワーク
1071…デバイスエミュレータ間ネットワーク
1073…パケットルータ間ネットワーク
1100…デバイスエミュレータ#i
1102…ポート#i 1102
1105…デバイスエミュレータ間ネットワーク
1110…PCIe通信部
1111…トランザクション管理部
1112…デバイスエミュレータ間通信部
1113…ネットワーク管理部
1200…データコントローラ#i
1210…データコントローラ#i 1200に内蔵されるDMAコントローラ
1211…DMAコントローラ#i 1210に内蔵されるバッファ
1212…DMAコントローラ#i 1210に内蔵されるアドレスレジスタ
1213…DMAコントローラ#i 1210に内蔵されるインデックスレジスタ
1215…メモリコントローラ
1300…ポートメモリ#i
1310…サブメモリコントローラ#1
1311…サブメモリコントローラ#2
1314…ポートメモリ#i 1300に内蔵されるローカルメモリ#1
1315…ポートメモリ#i 1300に内蔵されるローカルメモリ#2
1400…パケットルータ#i
1401…パケットルータ間ネットワーク
1410…データルーティング部
1411…バッファ
1412…アドレスレジスタ
1413…インデックスレジスタ
1520…ノード#1ハードウェア
1521…メモリ
1522…OS
1523…ドライバ
1524…ユーザプログラム
1540…ノード#2ハードウェア
1600…バックプレーンボード
1601…スイッチ#1
1620…ノード#1
1621…PCIeソケット#1
1650…ノード#N
1651…PCIeソケット#N
1000: General-purpose bus direct coupling network switch 1020, 1040, 1060 ... Nodes 1022, 1042, 1062, 1102 ... Ports 1024, 1044, 1064, 1100 ... Device emulators 1026, 1046, 1066, 1200 ... Data controllers 1028, 1048, 1068 DESCRIPTION OF SYMBOLS 1300 ... Port memory 1030, 1050, 1070, 1400 ... Packet router 1031 ... Network between device emulators 1033 ... Network between packet routers 1051 ... Network between device emulators 1053 ... Network between packet routers 1071 ... Network between device emulators 1073 ... Between packet routers Network 1100 ... Device emulator #i
1102 ... Port #i 1102
1105: Device emulator network 1110 ... PCIe communication unit 1111 ... Transaction management unit 1112 ... Device emulator communication unit 1113 ... Network management unit 1200 ... Data controller #i
1210: DMA controller 1211 built in data controller #i 1200 ... Buffer 1212 built in DMA controller #i 1210 ... Address register 1213 built in DMA controller #i 1210 ... Index built in DMA controller #i 1210 Register 1215 ... Memory controller 1300 ... Port memory #i
1310: Sub memory controller # 1
1311 ... Sub memory controller # 2
1314: Local memory # 1 built in the port memory #i 1300
1315: Local memory # 2 built in port memory #i 1300
1400: Packet router #i
1401 ... Network between packet routers 1410 ... Data routing unit 1411 ... Buffer 1412 ... Address register 1413 ... Index register 1520 ... Node # 1 hardware 1521 ... Memory 1522 ... OS
1523 ... Driver 1524 ... User program 1540 ... Node # 2 hardware 1600 ... Backplane board 1601 ... Switch # 1
1620 ... Node # 1
1621 ... PCIe socket # 1
1650: Node #N
1651 ... PCIe socket #N

Claims (3)

複数の計算機をネットワークスイッチ経由で接続して各計算機のメモリ間でデータ転送を行う計算機システムにおいて、前記ネットワークスイッチは、各計算機がデバイスと認識するデバイスエミュレータと各計算機のメモリにあるデータを直接操作可能なデータコントローラとデータ転送時にデータを途中で保存するためのポートメモリとネットワークスイッチ内のデータのルーティングを決定するパケットルータを各計算機対応に備え、各デバイスエミュレータは第1のネットワークで相互に接続され、各データコントローラはパケットルータを介して第2のネットワークで相互に接続され、2つの計算機間のデータ転送のセッション構築とセッション解除を前記2つの計算機に対応数する2つのデバイスエミュレータが前記第1のネットワークを介して行い、データ転送の実行を前記2つの計算機に対応数する2つのデータコントローラが前記第2のネットワークを介して行う計算機システムであって、計算機同士のデータ転送の実行時に送信側計算機対応のデバイスエミュレータは、送信側計算機のドライバから、送信データがある送信側計算機のメモリの先頭アドレス、サイズ、送信宛先を取得し、送信側計算機対応のデータコントローラは前記送信側計算機対応のデバイスエミュレータから通知された情報より送信側計算機のメモリからデータを読み出し、受信側計算機対応のデータコントローラは受信側計算機のメモリへデータを書き込み、書き込み終了時に前記送信側計算機対応のデバイスエミュレータが送信側と受信側の計算機にデータ転送を終了したことを通知することを特徴とする計算機システム。   In a computer system in which multiple computers are connected via a network switch to transfer data between the memory of each computer, the network switch directly manipulates the data in the device emulator and the memory of each computer that each computer recognizes as a device. Each device emulator is connected to each other via the first network. A data controller, a port memory for storing data during data transfer, and a packet router that determines the routing of data in the network switch are provided for each computer. Each data controller is connected to each other in a second network via a packet router, and two device emulators corresponding to the two computers for establishing and releasing a session for data transfer between the two computers are provided in the first network. 1 net A computer system in which two data controllers corresponding to the two computers execute data transfer via the second network, and execute data transfer via the second network. The compatible device emulator acquires the start address, size, and transmission destination of the memory of the transmitting computer with the transmission data from the driver of the transmitting computer, and the data controller compatible with the transmitting computer is a device emulator compatible with the transmitting computer. Reads data from the memory of the sending computer from the information notified from the data controller, the data controller compatible with the receiving computer writes the data into the memory of the receiving computer, and the device emulator corresponding to the sending computer receives the data from the sending side when the writing is completed. Confirm that the data transfer has been completed Computer system, characterized by. 前記送信側計算機のドライバは、送信側計算機のOSから要求されたデータ転送において、転送するデータの先頭アドレスとサイズ、送信先の計算機の宛先を前記送信側計算機対応のデバイスエミュレータに通知し、前記送信側計算機対応のデバイスエミュレータによるデータ通信が終了したことの通知を受信し、前記送信側計算機のOSに対してデータ通信が終了したことを通知することを特徴とする請求項1記載の計算機システム。   In the data transfer requested by the OS of the transmitting computer, the driver of the transmitting computer notifies the device emulator corresponding to the transmitting computer of the start address and size of the data to be transferred, and the destination of the destination computer, 2. The computer system according to claim 1, wherein a notification that the data communication by the device emulator corresponding to the transmission side computer is completed is received, and the OS of the transmission side computer is notified that the data communication is completed. . 前記ポートメモリは、前記ネットワークスイッチ内において、前記データコントローラと接続され、前記データコントローラが受信したデータを保管する機能を有することを特徴とする請求項1に記載の計算機システム。   The computer system according to claim 1, wherein the port memory is connected to the data controller in the network switch and has a function of storing data received by the data controller.
JP2013084460A 2013-04-15 2013-04-15 Computing system Pending JP2014206883A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013084460A JP2014206883A (en) 2013-04-15 2013-04-15 Computing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013084460A JP2014206883A (en) 2013-04-15 2013-04-15 Computing system

Publications (1)

Publication Number Publication Date
JP2014206883A true JP2014206883A (en) 2014-10-30

Family

ID=52120379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013084460A Pending JP2014206883A (en) 2013-04-15 2013-04-15 Computing system

Country Status (1)

Country Link
JP (1) JP2014206883A (en)

Similar Documents

Publication Publication Date Title
WO2022105884A1 (en) Data transmission method and apparatus, network device, and storage medium
JP5601601B2 (en) Communication control system, switch node, and communication control method
EP3032787B1 (en) Method, device, system and storage medium for implementing packet transmission in pcie switching network
CN111104775B (en) Network-on-chip topological structure and implementation method thereof
US9842075B1 (en) Presenting multiple endpoints from an enhanced PCI express endpoint device
JP6475625B2 (en) Inter-core communication apparatus and method
CN109933438B (en) High-speed shared memory data receiving and transmitting system
JP3807250B2 (en) Cluster system, computer and program
CN112291293B (en) Task processing method, related equipment and computer storage medium
CN114546913B (en) Method and device for high-speed data interaction between multiple hosts based on PCIE interface
CN110636139B (en) Optimization method and system for cloud load balancing
JP7311280B2 (en) Storage system and its host storage drive and data storage method
CN110119304B (en) Interrupt processing method and device and server
CN113472624A (en) Method for realizing virtual network data packet forwarding based on vDPA and application
US7564860B2 (en) Apparatus and method for workflow-based routing in a distributed architecture router
CN115827524A (en) Data transmission method and device
US20090292856A1 (en) Interserver communication mechanism and computer system
CN112867998B (en) Operation accelerator, switch, task scheduling method and processing system
JP4927104B2 (en) Packet switching for system power mode control
KR20050080704A (en) Apparatus and method of inter processor communication
JP2014206883A (en) Computing system
JP2023529831A (en) Separate switch control path using directly attached dispatch
CN112463680A (en) Data transfer method and device
CN111427813A (en) Inter-core communication method based on serial port, terminal and storage medium
US11698878B1 (en) Highspeed shared-memory optical network interfaces and topology