[go: up one dir, main page]

WO2025057937A1 - Data transfer device and computer system - Google Patents

Data transfer device and computer system Download PDF

Info

Publication number
WO2025057937A1
WO2025057937A1 PCT/JP2024/032360 JP2024032360W WO2025057937A1 WO 2025057937 A1 WO2025057937 A1 WO 2025057937A1 JP 2024032360 W JP2024032360 W JP 2024032360W WO 2025057937 A1 WO2025057937 A1 WO 2025057937A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
destination
units
input
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/JP2024/032360
Other languages
French (fr)
Japanese (ja)
Inventor
勇輝 有川
顕至 田仲
勇介 村中
猛 伊藤
崇宏 川原
直樹 三浦
健 坂本
敦 岸田
竜一 清田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
NTT Inc
Original Assignee
Fujitsu Ltd
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd, Nippon Telegraph and Telephone Corp filed Critical Fujitsu Ltd
Publication of WO2025057937A1 publication Critical patent/WO2025057937A1/en
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven

Definitions

  • Technological innovation is progressing in many fields, including machine learning, artificial intelligence (AI), and the Internet of Things (IoT), and by utilizing various data, services are being actively improved and added value is being provided. These technologies require large amounts of calculations, for which an information processing infrastructure is essential.
  • Non-Patent Document 1 points out that modern computers are unable to keep up with the rapid increase in data, and that in order to achieve further evolution in the future, "post-Moore technology” that goes beyond Moore's Law must be established.
  • the destination specification circuits 41-1 to 41-L are collectively referred to as destination specification circuits 41.
  • the data transfer device 30 further comprises a switch 50 to which each destination specification circuit 41 is connected.
  • the switch 50 has a plurality of input ports 51-1 to 51-L to which the destination specification circuits 41-1 to 41-L are respectively connected.
  • the switch 50 further has output ports 52-1 to 52-N to which the arithmetic circuits 20-1 to 20-N are respectively connected, and one or more output ports 52-N+1 to 52-L for transmitting data to the outside of the computer system 10.
  • the input ports 51-1 to 51-L are also collectively referred to as input ports 51.
  • the output ports 52-1 to 52-L are also collectively referred to as output ports 52.
  • the ports 51 and 52 are physical ports, and may be general input/output interfaces, I/O Ethernet ports, PCIe, etc.
  • target data as pre-processing data to be processed by the data flow is input from the outside to the destination specification circuit 41-L of the computer system 10 (step S11).
  • the target data is also assumed to be data on which arithmetic processing is performed by the first data flow.
  • destination information is added to the target data (see FIG. 3).
  • data to be transferred below, such as the target data may be divided into packets before being transferred. In such a case, the destination information is stored in the header of each packet, and the arithmetic circuit 20 and the like combine the data bodies of each packet to obtain the data to be subjected to arithmetic processing.
  • the destination specification circuit 41-L analyzes the destination information from the input target data and destination information (hereinafter, collectively referred to as input data) and obtains the first arithmetic circuit ID "#1" from among the multiple arithmetic circuit IDs included in the destination information. By obtaining the first arithmetic circuit ID, the arithmetic circuit identified by that arithmetic circuit ID is specified as the next destination of the target data.
  • the arithmetic circuit 20-1 performs a first arithmetic process on the target data among the input data. It also deletes the first arithmetic circuit ID "#1" from the destination information.
  • the arithmetic circuit 20-1 uses the data resulting from the first arithmetic process, i.e., the intermediate data, as new target data, and generates intermediate post-operation data by adding the destination information after deleting the arithmetic circuit ID "#1" to the target data.
  • the arithmetic circuit 20-1 transmits the generated intermediate post-operation data to the destination specification circuit 41-1 connected to this arithmetic circuit 20-1 (step S16).
  • the destination specification circuit 41-1 analyzes the destination information of the received intermediate post-computation data and acquires the first calculation circuit ID "#2" from among the calculation circuit IDs included in the additional data. In other words, the destination specification circuit 41-1 identifies the destination of the current intermediate post-computation data.
  • the destination specification circuit 41-1 refers to its own correspondence table using the acquired calculation circuit ID "#2" as a key, and acquires the port number "52-2" corresponding to the calculation circuit ID "#2".
  • the destination specification circuit 41-1 then controls the switch 50 (S17) and connects the input port 51-1 connected to itself to the output port 52-2 of the acquired port number (S18).
  • the destination specification circuit 41-1 inputs the intermediate post-computation data to the switch 50 after controlling the connection between the input port 51-1 and the output port 52-2 (S19).
  • the intermediate post-operation data is input to the operation circuit 20-2 connected to the output port 52-2 via the switch 50, more specifically, the input port 51-1, the output port 52-2, and the data transfer path connecting both ports (S20).
  • the second intermediate post-operation data output to the destination specification circuit 41-2 is input to the operation circuit 20-3 via the destination specification circuit 41-2 and the switch 50 (steps S22 to S25).
  • the destination specification circuit 41-2 like the destination specification circuit 41-1, references the correspondence table it holds and controls the connection between the input port 51-2 and the output port 52-3.
  • the destination specification circuit 41-3 connects the input port 51-3 of the switch 50 connected to itself to any port among the output ports 52-L+1 to 52-L, here the output port 52-L, in order to transfer the final post-operation data to the outside of the system 10 (steps S27 and S28).
  • the destination specification circuit 41-3 also transmits the final post-operation data, with the destination address of the final post-operation data included at the end of the destination information (e.g., IP address) and the MAC address obtained by referring to a routing table as necessary set in the header as the final destination and the destination of the next device, to the input port 51-3 (step S29).
  • the processing result of the first data flow is finally transmitted to the final destination (step S30).
  • the switch 50 is configured to be able to simultaneously connect multiple pairs of any of the multiple input ports 51-1 to 51-L and any of the multiple output ports 52-1 to 52-L in any combination.
  • the combination of the input port 51-2 and the output port 52-1 and the combination of the input port 51-3 and the output port 52-2 can be simultaneously connected.
  • each of the destination specification circuits 41 can control the switch 50 independently of each other, connect the input port 51 connected to itself and the output port 52 connected to the destination specified by the destination information, and input the target data to the connected input port 51. Therefore, as long as the output port 52 does not overlap, multiple pairs of input ports 51 and output ports 52 can be connected independently, and data transfer is also performed in parallel for each pair.
  • each transfer destination specification circuit 41 holds a correspondence table between the transfer destination and the output port to which this transfer destination is connected, and specifies the output port 52 to connect to the input port 51 by referring to the correspondence table, so that the connection between the input port 51 and the output port 52 can be realized with a simple circuit configuration.
  • the switch 50 is a crossbar switch, which allows parallel data transfer through multiple data flows to be achieved with a simple configuration.
  • the destination specification circuits 41-N+1 to 41-L and the output ports 52-N+1 to 52-L are connected to the outside of the computer system 10, so that data supplied from the outside can also pass through the destination specification circuits 41-N+1 to 41-L.
  • data can be output to the outside from the output ports 52-N+1 to 52-L under the control of the destination specification circuits 41-N+1 to 41-L.
  • the arithmetic circuits 20-1 to 20-N are connected to the destination specification circuits 41-1 to 41-N in a one-to-one relationship, but as shown in the computer system 110 of FIG. 5, the multiple destination specification circuits 41 and the multiple arithmetic circuits 20 may be connected in a one-to-multiple relationship (see the destination specification circuit 41-1 and the multiple arithmetic circuits 20-1 and 20-2).
  • the overall circuit scale of the multiple destination specification circuits 41 can be made smaller than in the one-to-one relationship, and the control cost and implementation cost of the destination specification circuit 41 are reduced.
  • the one-to-one relationship multiple data flows are executed independently without interfering with each other.
  • the system can be isolated, and virtualization is also possible.
  • the impact on other data flows can be suppressed.
  • the correspondence table held by the destination specification circuit 41 may register information on all destinations of the other computer systems (such as arithmetic circuit IDs), or may register information on only some of the destinations. Furthermore, the destinations in the correspondence table may be represented by the addresses of the other computer systems themselves. If the correspondence table contains only a portion of all possible destinations, it is easier to know in advance what should be registered in the correspondence table when setting the target data and destination information that may pass through the destination specification circuit 41 before the start of operation, and the correspondence table can be implemented with less control cost. For example, if the destinations in the correspondence table are the addresses of the other computer systems themselves, the correspondence table does not need to include information on the arithmetic circuits that the other computer systems have, and the correspondence table can be implemented with less control cost.
  • the destination information does not have to be added to the target data and transferred.
  • a configuration may be adopted in which the destination information is transferred via a separate signal line in synchronization with the target data.
  • the destination specification circuit 41 may monitor its own operating status and data flow rate, and may change the correspondence table, i.e., executable data flows, when the operating degree or flow rate exceeds a predetermined threshold.
  • the contents of the change in the correspondence table may be specified from outside. This change reduces the load on a specific destination specification circuit 41 and/or a specific arithmetic circuit 20.

Landscapes

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

Abstract

A data transfer device (30) is provided with a plurality of transfer destination identifying units (41) which accept input of data of interest of a data flow in which a plurality of arithmetic processes are connected, and which identify the next transfer destination of the input data of interest on the basis of transfer destination information of the data of interest. The data transfer device (30) is provided with a switch (50) configured to be capable of simultaneously connecting any of a plurality of input ports (51) and any of a plurality of output ports (52) in any combination. The transfer destination identifying units (41) each control the switch (50) independently of one other, connect the input port (51) connected thereto to the output port (52) connected to the transfer destination identified by the transfer destination identifying unit (41) itself, and input the data of interest to the input port (52).

Description

データ転送装置、及び、コンピュータシステムData transfer device and computer system

 本発明は、データ転送装置、及び、コンピュータシステムに関する。 The present invention relates to a data transfer device and a computer system.

 機械学習、人工知能(AI)及びIoT(Internet of Things)を含む多くの分野で技術革新が進み、様々なデータを活用することで、サービスの高度化・付加価値の提供が盛んに行われている。これらの技術では大量の計算が必要であり、そのための情報処理基盤が必須である。 Technological innovation is progressing in many fields, including machine learning, artificial intelligence (AI), and the Internet of Things (IoT), and by utilizing various data, services are being actively improved and added value is being provided. These technologies require large amounts of calculations, for which an information processing infrastructure is essential.

 例えば、非特許文献1は、急速に増えていくデータに対して現代のコンピュータが対応しきれておらず、今後さらなる進化を遂げていくためには、ムーアの法則を越える「ポストムーア技術」が確立されなければいけないと指摘している。 For example, Non-Patent Document 1 points out that modern computers are unable to keep up with the rapid increase in data, and that in order to achieve further evolution in the future, "post-Moore technology" that goes beyond Moore's Law must be established.

 ポストムーア技術として、例えば、非特許文献2では、フローセントリックコンピューティングという技術が開示されている。フローセントリックコンピューティングは、データのある場所で処理を行うというこれまでのコンピューティングの考えではなく、計算機能が存在する場所にデータを移動して処理を行うという新たな概念を導入している。 As a post-Moore technology, for example, Non-Patent Document 2 discloses a technology called flow-centric computing. Flow-centric computing introduces a new concept that moves data to a location where a computing function is present and processes it there, instead of the conventional computing idea of performing processing where the data is located.

“NTT Technology Report for Smart World 2020,” 日本電信電話株式会社,2020年,https://www.rd.ntt/_assets/pdf/techreport/NTT_TRFSW_2020_EN_W.pdf“NTT Technology Report for Smart World 2020,” Nippon Telegraph and Telephone Corporation, 2020, https://www.rd.ntt/_assets/pdf/techreport/NTT_TRFSW_2020_EN_W.pdf R. Takano and T. Kudoh, “Flow-centric computing leveraged by photonic circuit switching for the post-moore era,” Tenth IEEE/ACM International Symposium on Networks-on-Chip (NOCS), Nara, 2016, pp. 1-3.https://ieeexplore.ieee.org/abstract/document/7579339R. Takano and T. Kudoh, “Flow-centric computing leveraged by photonic circuit switching for the post-moore era,” Tenth IEEE/AC M International Symposium on Networks-on-Chip (NOCS), Nara, 2016, pp. 1-3.https://ieeexplore.ieee.org/abstract/document/7579339

 上記のようなフローセントリックコンピューティングでは、データフローの演算の対象データを次の転送先に転送しなければならないが、この転送の際の遅延の低減が重要となる。 In flow-centric computing like the one described above, the data that is the subject of a data flow operation must be transferred to the next destination, and reducing the delay during this transfer is important.

 本発明は、データフローの演算の対象データの転送の遅延を低減することを課題とする。 The objective of the present invention is to reduce delays in the transfer of target data for data flow calculations.

 上記課題を解決するために、本発明のデータ転送装置は、複数の演算処理を連結させたデータフローの対象データが入力され、入力された当該対象データの次の転送先を当該対象データの転送先情報に基づいて特定する複数の転送先特定部と、複数の入力ポート及び複数の出力ポートを備え、前記複数の入力ポートのいずれかと前記複数の出力ポートのいずれかを任意の組合せで複数組同時に接続可能に構成されたスイッチと、を備え、前記複数の転送先特定部のそれぞれは、互いに独立に前記スイッチを制御して、前記複数の入力ポートのうち自身に接続された入力ポートと前記複数の出力ポートのうち自身が特定した前記転送先に接続された出力ポートとを接続し、前記対象データを前記入力ポートに入力する。 In order to solve the above problem, the data transfer device of the present invention comprises a plurality of destination specification units that receive target data of a data flow in which a plurality of arithmetic processes are linked and specify the next destination of the input target data based on destination information of the target data, and a switch that has a plurality of input ports and a plurality of output ports and is configured to be able to simultaneously connect any combination of any of the plurality of input ports to any of the plurality of output ports, and each of the plurality of destination specification units independently controls the switch to connect an input port of the plurality of input ports connected to itself to an output port of the plurality of output ports connected to the destination specified by itself, and inputs the target data to the input port.

 本発明のコンピュータシステムは、データ転送装置と、前記複数の転送先特定部の少なくとも一部である複数の第1転送先特定部に一対一で接続された複数の演算部と、を備え、前記複数の演算部は、前記スイッチの前記複数の出力ポートの少なくとも一部である複数の第1出力ポートに前記転送先としてそれぞれ接続され、前記複数の演算部のそれぞれは、データフローを構成する演算処理を実行する。 The computer system of the present invention comprises a data transfer device and a plurality of arithmetic units connected in a one-to-one relationship to a plurality of first destination specification units that are at least a part of the plurality of destination specification units, and the plurality of arithmetic units are respectively connected as the destination to a plurality of first output ports that are at least a part of the plurality of output ports of the switch, and each of the plurality of arithmetic units executes a calculation process that constitutes a data flow.

 本発明のコンピュータシステムは、データ転送装置と、前記複数の転送先特定部の少なくとも一部である複数の第1転送先特定部に接続された複数の演算部と、を備え、前記複数の第1転送先特定部と前記複数の演算部とは、1対複数で接続されており、前記複数の演算部は、前記スイッチの前記複数の出力ポートの少なくとも一部である複数の第1出力ポートに前記転送先としてそれぞれ接続され、前記複数の演算部のそれぞれは、データフローを構成する演算処理を実行する。 The computer system of the present invention comprises a data transfer device and a plurality of calculation units connected to a plurality of first destination specification units which are at least a part of the plurality of destination specification units, the plurality of first destination specification units and the plurality of calculation units are connected in a one-to-many relationship, the plurality of calculation units are respectively connected as the destination to a plurality of first output ports which are at least a part of the plurality of output ports of the switch, and each of the plurality of calculation units executes a calculation process which constitutes a data flow.

 本発明によれば、データフローの演算の対象データの転送の遅延が低減される。 The present invention reduces delays in the transfer of data subject to data flow calculations.

図1は、本発明の一実施形態に係るコンピュータシステムの構成を示すブロック図である。FIG. 1 is a block diagram showing the configuration of a computer system according to an embodiment of the present invention. 図2は、図1のコンピュータシステムで転送されるデータの構成例である。FIG. 2 shows an example of the structure of data transferred in the computer system of FIG. 図3は、図1のコンピュータシステムの動作を説明するための図である。FIG. 3 is a diagram for explaining the operation of the computer system of FIG. 図4は、図1のコンピュータシステムで使用される対応表の構成例の図である。FIG. 4 is a diagram showing an example of the structure of a correspondence table used in the computer system of FIG. 図5は、本発明の変形例に係るコンピュータシステムの構成を示すブロック図である。FIG. 5 is a block diagram showing the configuration of a computer system according to a modified example of the present invention.

(実施形態)
 以下、本発明の実施の形態を図面に基づいて詳細に説明するが、本発明は、以下の実施の形態に限定されるものではない。
(Embodiment)
Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings, however, the present invention is not limited to the following embodiment.

 図1に示す第1の実施の形態に係るコンピュータシステム10は、複数の演算処理を連結させたデータフローを実行するように構成されている。 The computer system 10 according to the first embodiment shown in FIG. 1 is configured to execute a data flow that links multiple computational processes.

 コンピュータシステム10は、入力されたデータに対して演算処理を行う演算回路20-1~20-Nと、システム10の外部からのデータ及び演算回路20-1~20-Nのそれぞれからの処理結果のデータを、演算回路20-1~20-Nのいずれか又はシステム10の外部に転送するデータ転送装置30と、を備える。以下では、演算回路20-1~20-Nを総称して演算回路20ともいう。また、演算回路20-1~20-Nにより実行される各演算を、第1~第N演算とそれぞれいう。例えば、演算回路20-1は、第1演算を実行する。 Computer system 10 comprises arithmetic circuits 20-1 to 20-N that perform arithmetic processing on input data, and a data transfer device 30 that transfers data from outside system 10 and data resulting from processing from each of arithmetic circuits 20-1 to 20-N to one of arithmetic circuits 20-1 to 20-N or to the outside of system 10. Hereinafter, arithmetic circuits 20-1 to 20-N are also collectively referred to as arithmetic circuits 20. Furthermore, the operations executed by arithmetic circuits 20-1 to 20-N are referred to as first to Nth operations, respectively. For example, arithmetic circuit 20-1 executes the first operation.

 コンピュータシステム10は、例えば、1台のサーバコンピュータからなる。従って、コンピュータシステム10は、CPU(Central Processing Unit)などのプロセッサ11、メインメモリ12、プロセッサ11により実行されるプログラムなどを記憶する不揮発性のストレージ13なども備える。演算回路20のそれぞれは、アクセラレータとしての1チップのFPGA(Field-Programmable Gate Array)から構成されている。ここでは、1つの演算回路20は、1種類の演算処理を実行する。演算回路20に設けられる、演算処理を実行する実行部は、所望のタイミングで構成又は削除される。所望のタイミングには、コンピュータシステム10の稼働中が含まれる。演算処理の実行部の構成又は削除は、例えば、プロセッサ11により行われる。演算回路20は、ASIC(Application Specific Integrated Circuit)、GPU(Graphics Processing Unit)などであってもよい。演算回路20は、プログラムを実行するプロセッサからなってもよい。 The computer system 10 is, for example, composed of one server computer. Therefore, the computer system 10 also includes a processor 11 such as a CPU (Central Processing Unit), a main memory 12, and a non-volatile storage 13 for storing programs executed by the processor 11. Each of the arithmetic circuits 20 is composed of a one-chip FPGA (Field-Programmable Gate Array) as an accelerator. Here, one arithmetic circuit 20 executes one type of arithmetic processing. The execution unit that executes the arithmetic processing, which is provided in the arithmetic circuit 20, is configured or deleted at a desired timing. The desired timing includes when the computer system 10 is in operation. The execution unit for the arithmetic processing is configured or deleted by, for example, the processor 11. The arithmetic circuit 20 may be an ASIC (Application Specific Integrated Circuit), a GPU (Graphics Processing Unit), or the like. The arithmetic circuit 20 may be composed of a processor that executes a program.

 第1~第N演算処理のそれぞれは、データフローの対象データに対する演算処理であればよい。当該対象データは、データフローに入力される前のデータ(処理前データ)、データフローに含まれる途中の演算処理の処理結果のデータ(中間データ)、データフローの最後の演算処理の処理結果のデータ(最終データ)を含む。第1~第N演算処理のそれぞれは、コンピュータシステム10により少なくとも一部を実行可能な複数のデータフローのうちの少なくとも1つのデータフローを構成する。例えば、第1演算処理~第3演算処理は、連結されることで、第1データフローを構成し、第4演算処理は、他のコンピュータシステムが備える演算回路により実行される演算処理とともに第2データフローを構成する。さらに、例えば、第1演算処理は、第1データフローの他、第5演算とともに第3データフローを構成する。 Each of the first to Nth arithmetic processes may be an arithmetic process on the target data of the data flow. The target data includes data before being input to the data flow (pre-processing data), data resulting from intermediate arithmetic processes included in the data flow (intermediate data), and data resulting from the last arithmetic process of the data flow (final data). Each of the first to Nth arithmetic processes constitutes at least one data flow among a plurality of data flows at least a part of which can be executed by the computer system 10. For example, the first to third arithmetic processes constitute a first data flow when linked together, and the fourth arithmetic process constitutes a second data flow together with an arithmetic process executed by an arithmetic circuit provided in another computer system. Furthermore, for example, the first arithmetic process constitutes a third data flow together with the fifth arithmetic process in addition to the first data flow.

 第1~第N演算処理は、互いに異なる処理であってもよいし、その一部同士が同じ種類の処理であってもよい。データに対して行われる演算処理には、当該データを四則演算する処理の他、エンコードされた映像データをデコードする処理、画像データの画像サイズを縮小又は拡大する処理、画像データから特定の物体を検出する処理、画像データを復号又は暗号化する処理など、対象データに対する加工、集計、結合といった演算処理も含まれる。 The first through Nth arithmetic processes may be different processes from one another, or some of them may be the same type of process. Arithmetic processes performed on data include arithmetic operations on the data, as well as processes such as decoding encoded video data, reducing or enlarging the image size of image data, detecting specific objects in image data, and decrypting or encrypting image data, as well as arithmetic processes such as processing, aggregating, and combining the target data.

 演算回路20-1~20-Nには、自身を識別可能な演算回路IDとして「#1」~「#N」がそれぞれ設定されている。なお、「♯1」~「♯N」のそれぞれは、便宜上表されたものであり、実際には、IPアドレスなどが設定される。 The calculation circuits 20-1 to 20-N are each assigned a calculation circuit ID "#1" to "#N" that identifies the circuit. Note that "#1" to "#N" are simply numbers for convenience, and in reality, IP addresses or the like are assigned.

 データ転送装置30は、演算回路20-1~20-Nにそれぞれ接続された複数の転送先特定回路41-1~41-Nと、コンピュータシステム10の外部から供給されるデータが入力される1以上の転送先特定回路41-N+1~41-L(ただし、LはN+1以上の整数。ここでは、L=N+2)と、を備える。転送先特定回路41-1~41-Lを総称して転送先特定回路41ともいう。データ転送装置30は、さらに、各転送先特定回路41が接続されたスイッチ50も備える。 The data transfer device 30 comprises a plurality of destination specification circuits 41-1 to 41-N respectively connected to the arithmetic circuits 20-1 to 20-N, and one or more destination specification circuits 41-N+1 to 41-L (where L is an integer equal to or greater than N+1; here, L=N+2) to which data supplied from outside the computer system 10 is input. The destination specification circuits 41-1 to 41-L are collectively referred to as destination specification circuits 41. The data transfer device 30 further comprises a switch 50 to which each destination specification circuit 41 is connected.

 転送先特定回路41は、後述のように、入力されたデータの次の転送先、例えば次の演算を行う演算回路20を特定し、当該データを、スイッチ50を介して転送先に転送する。転送先特定回路41-1~41-Lのそれぞれは、FPGA、ASICなどで構成され、かつ、互いに独立して動作可能に構成されている。 As described below, the destination specification circuit 41 specifies the next destination of the input data, for example the calculation circuit 20 that will perform the next calculation, and transfers the data to the destination via the switch 50. Each of the destination specification circuits 41-1 to 41-L is configured with an FPGA, ASIC, etc., and is configured to be able to operate independently of each other.

 スイッチ50は、転送先特定回路41の制御のもとで、転送先特定回路41からのデータを次の転送先に送信する。 Under the control of the destination specification circuit 41, the switch 50 transmits the data from the destination specification circuit 41 to the next destination.

 スイッチ50は、転送先特定回路41-1~41-Lがそれぞれ接続された複数の入力ポート51-1~51-Lを備える。スイッチ50は、さらに、演算回路20-1~20-Nがそれぞれ接続された出力ポート52-1~52-Nと、コンピュータシステム10の外部にデータを送信するための1以上の出力ポート52-N+1~52-Lと、を備える。入力ポート51-1~51-Lを総称して入力ポート51ともいう。出力ポート52-1~52-Lを総称して出力ポート52ともいう。ポート51及び52は、物理ポートであり、一般的な入出力インタフェース、I/Oであるイーサネットのポート、PCIeなどであればよい。 The switch 50 has a plurality of input ports 51-1 to 51-L to which the destination specification circuits 41-1 to 41-L are respectively connected. The switch 50 further has output ports 52-1 to 52-N to which the arithmetic circuits 20-1 to 20-N are respectively connected, and one or more output ports 52-N+1 to 52-L for transmitting data to the outside of the computer system 10. The input ports 51-1 to 51-L are also collectively referred to as input ports 51. The output ports 52-1 to 52-L are also collectively referred to as output ports 52. The ports 51 and 52 are physical ports, and may be general input/output interfaces, I/O Ethernet ports, PCIe, etc.

 スイッチ50は、転送先特定回路41の制御のもと、入力ポート51-1~51-Lのいずれかと、出力ポート52-1~52-Lのいずれかと、を任意の組合せで複数組同時に接続可能に構成されている。このようなスイッチ50は、例えば、クロスバースイッチからなる。 The switch 50 is configured to be able to simultaneously connect any combination of input ports 51-1 to 51-L and any combination of output ports 52-1 to 52-L under the control of the destination specification circuit 41. Such a switch 50 is, for example, a crossbar switch.

 ここで、コンピュータシステム10に外部から入力されるデータフローの対象データについて、図2を参照して説明する。対象データには、当該対象データの転送先情報つまり転送先を特定可能な情報が付加される。転送先情報は、ここでは、対象データの前に付与されたヘッダに格納されるが、対象データに対する転送先情報の位置は任意である。転送先情報は、データ本体に対してデータフローにより複数の演算処理をそれぞれ行う演算回路20又はコンピュータシステム10の外部の演算回路の演算回路IDが、演算処理が行われる順に格納される。例えば、第1演算が行われ、第2演算が行われ、最後に第3演算が行われる上記第1データフローにより演算処理される対象データの転送先情報には、図2に示すように、データの先頭側から、第1演算処理を行う演算回路20-1の演算回路IDである「♯1」、第2演算処理を行う演算回路20-2の演算回路IDである「♯2」、及び、第3演算処理を行う演算回路20-3の演算回路IDである「♯3」が含まれる。また、転送先情報は、その末尾にデータフロー全体の処理結果のデータの送信先を識別する処理結果送信先アドレス(例えば、IPアドレス)も含む。 Here, the target data of the data flow input from the outside to the computer system 10 will be described with reference to FIG. 2. The target data is added with destination information of the target data, that is, information that can identify the destination. Here, the destination information is stored in a header added before the target data, but the position of the destination information relative to the target data is arbitrary. The destination information stores the arithmetic circuit IDs of the arithmetic circuits 20 or external arithmetic circuits of the computer system 10 that perform multiple arithmetic processes on the data body by the data flow, in the order in which the arithmetic processes are performed. For example, the destination information of the target data that is arithmetic processed by the first data flow in which a first arithmetic process is performed, a second arithmetic process is performed, and finally a third arithmetic process includes, from the head of the data, "#1", which is the arithmetic circuit ID of the arithmetic circuit 20-1 that performs the first arithmetic process, "#2", which is the arithmetic circuit ID of the arithmetic circuit 20-2 that performs the second arithmetic process, and "#3", which is the arithmetic circuit ID of the arithmetic circuit 20-3 that performs the third arithmetic process, as shown in FIG. 2. The destination information also includes a processing result destination address (e.g., IP address) at the end that identifies the destination of the data resulting from the processing of the entire data flow.

 つぎにコンピュータシステム10の動作を、図3を参照しながら説明する。ここでは、データフローにより処理される処理前データとしての対象データが、外部からコンピュータシステム10の転送先特定回路41-Lに入力される(ステップS11)。また、対象データは、第1データフローにより演算処理を行うデータとする。上記のように、対象データには送信先情報が付加されている(図3参照)。また、対象データなど、下記で転送されるデータは、パケットに分割されて転送されてもよい。このような場合、各パケットのヘッダに送信先情報が格納され、演算回路20などは、各パケットのデータ本体を組み合わせて、演算処理の対象となるデータを取得する。 Next, the operation of the computer system 10 will be described with reference to FIG. 3. Here, target data as pre-processing data to be processed by the data flow is input from the outside to the destination specification circuit 41-L of the computer system 10 (step S11). The target data is also assumed to be data on which arithmetic processing is performed by the first data flow. As described above, destination information is added to the target data (see FIG. 3). Furthermore, data to be transferred below, such as the target data, may be divided into packets before being transferred. In such a case, the destination information is stored in the header of each packet, and the arithmetic circuit 20 and the like combine the data bodies of each packet to obtain the data to be subjected to arithmetic processing.

 転送先特定回路41-Lは、入力された対象データ及び送信先情報(以下、全体を入力データともいう)のうちの送信先情報を解析して、当該送信先情報に含まれる複数の演算回路IDのうちの先頭の演算回路ID「♯1」を取得する。先頭の演算回路IDの取得により、当該演算回路IDが識別する演算回路が、対象データの次の転送先と特定される。 The destination specification circuit 41-L analyzes the destination information from the input target data and destination information (hereinafter, collectively referred to as input data) and obtains the first arithmetic circuit ID "#1" from among the multiple arithmetic circuit IDs included in the destination information. By obtaining the first arithmetic circuit ID, the arithmetic circuit identified by that arithmetic circuit ID is specified as the next destination of the target data.

 転送先特定回路41-Lは、図4に示す、転送先とこの転送先が接続された出力ポートとの対応表を保持している。対応表において、転送先は、転送先の識別情報つまり演算回路IDにより表されている。出力ポートは、ポート番号(ここでは、出力ポートの符号)により表されている。 The destination specification circuit 41-L holds a correspondence table between the destination and the output port to which the destination is connected, as shown in FIG. 4. In the correspondence table, the destination is represented by the destination's identification information, that is, the calculation circuit ID. The output port is represented by the port number (here, the code of the output port).

 転送先特定回路41-Lは、上記で取得した演算回路ID「♯1」をキーとして、対応表を参照し、当該演算回路ID「♯1」に対応するポート番号「52-1」を取得する。その後、転送先特定回路41-Lは、スイッチ50を制御し(S12)、自身に接続された入力ポート51-Lと、取得したポート番号の出力ポート52-1と、を接続する(S13)。転送先特定回路41-Lは、入力ポート51-Lと出力ポート52-1との接続制御後、入力データをスイッチ50に入力する(S14)。これにより、入力データが入力ポート51-L、出力ポート52-1、両ポートを繋ぐデータ転送路を介して、出力ポート52-1に接続された演算回路20-1に入力される(S15)。これにより、入力データは、転送先特定回路41-Lにより特定された転送先に転送される。 The destination specification circuit 41-L refers to the correspondence table using the arithmetic circuit ID "#1" acquired above as a key, and acquires the port number "52-1" corresponding to the arithmetic circuit ID "#1". After that, the destination specification circuit 41-L controls the switch 50 (S12) to connect the input port 51-L connected to itself to the output port 52-1 of the acquired port number (S13). After controlling the connection between the input port 51-L and the output port 52-1, the destination specification circuit 41-L inputs the input data to the switch 50 (S14). As a result, the input data is input to the arithmetic circuit 20-1 connected to the output port 52-1 via the data transfer path connecting the input port 51-L and the output port 52-1 (S15). As a result, the input data is transferred to the destination specified by the destination specification circuit 41-L.

 なお、対応表に含まれる転送先は、コンピュータシステム10が備える演算回路20のみであってもよい。転送先特定回路41-Lは、上記で取得した演算回路IDが対応表にない場合、例えば、入力ポート51-Lと出力ポート52-Lとを接続して、入力データをそのままシステム10の外部に出力してもよい。また、対応表は、転送先特定回路41-1~41-Lのそれぞれに個別に用意されている。対応表に含まれる転送先が、コンピュータシステム10の外部の演算回路も含む場合、当該転送先の演算回路IDには、コンピュータシステム10の外部に接続された出力ポートのポート番号52-N+1~52-Lのいずれかが対応付けられる。 The transfer destination included in the correspondence table may be only the arithmetic circuit 20 included in the computer system 10. If the arithmetic circuit ID obtained above is not included in the correspondence table, the transfer destination specification circuit 41-L may, for example, connect the input port 51-L and the output port 52-L and output the input data directly to the outside of the system 10. Furthermore, a correspondence table is prepared separately for each of the transfer destination specification circuits 41-1 to 41-L. If the transfer destination included in the correspondence table also includes an arithmetic circuit outside the computer system 10, the arithmetic circuit ID of the transfer destination is associated with one of the port numbers 52-N+1 to 52-L of the output port connected to the outside of the computer system 10.

 演算回路20-1は、入力データのうちの対象データに対して第1演算処理を行う。また、転送先情報に含まれる演算回路IDのうち先頭の演算回路ID「♯1」を、転送先情報から削除する。演算回路20-1は、第1演算処理の処理結果のデータつまり中間データを新たな対象データとし、当該対象データに、演算回路ID「♯1」削除後の転送先情報を付加して中間演算後データを生成する。演算回路20-1は、生成した中間演算後データを、この演算回路20-1に接続された転送先特定回路41-1に送信する(ステップS16)。 The arithmetic circuit 20-1 performs a first arithmetic process on the target data among the input data. It also deletes the first arithmetic circuit ID "#1" from the destination information. The arithmetic circuit 20-1 uses the data resulting from the first arithmetic process, i.e., the intermediate data, as new target data, and generates intermediate post-operation data by adding the destination information after deleting the arithmetic circuit ID "#1" to the target data. The arithmetic circuit 20-1 transmits the generated intermediate post-operation data to the destination specification circuit 41-1 connected to this arithmetic circuit 20-1 (step S16).

 転送先特定回路41-1は、受信した中間演算後データの転送先情報を解析して、当該付加データに含まれる演算回路IDのうちの先頭の演算回路ID「♯2」を取得する。つまり、転送先特定回路41-1は、今回の中間演算後データの転送先を特定する。転送先特定回路41-1は、取得した演算回路ID「♯2」をキーとして、自身が備える対応表を参照し、当該演算回路ID「♯2」に対応するポート番号「52-2」を取得する。その後、転送先特定回路41-1は、スイッチ50を制御し(S17)、自身に接続された入力ポート51-1と、取得したポート番号の出力ポート52-2と、を接続する(S18)。転送先特定回路41-1は、入力ポート51-1と出力ポート52-2との接続制御後、中間演算後データをスイッチ50に入力する(S19)。これにより、中間演算後データがスイッチ50を介して、より具体的には、入力ポート51-1、出力ポート52-2、及び、両ポートを繋ぐデータ転送路を介して、出力ポート52-2に接続された演算回路20-2に入力される(S20)。 The destination specification circuit 41-1 analyzes the destination information of the received intermediate post-computation data and acquires the first calculation circuit ID "#2" from among the calculation circuit IDs included in the additional data. In other words, the destination specification circuit 41-1 identifies the destination of the current intermediate post-computation data. The destination specification circuit 41-1 refers to its own correspondence table using the acquired calculation circuit ID "#2" as a key, and acquires the port number "52-2" corresponding to the calculation circuit ID "#2". The destination specification circuit 41-1 then controls the switch 50 (S17) and connects the input port 51-1 connected to itself to the output port 52-2 of the acquired port number (S18). The destination specification circuit 41-1 inputs the intermediate post-computation data to the switch 50 after controlling the connection between the input port 51-1 and the output port 52-2 (S19). As a result, the intermediate post-operation data is input to the operation circuit 20-2 connected to the output port 52-2 via the switch 50, more specifically, the input port 51-1, the output port 52-2, and the data transfer path connecting both ports (S20).

 これ以降、演算回路20-2は、演算回路20-1と同様に、中間演算後データが含む対象データ(中間データ)に対する第2演算処理、及び、転送先情報からの先頭の演算回路ID「♯2」の削除を行い、第2演算処理後及び演算回路ID削除後の対象データ及び転送先情報を第2の中間演算後データとして、転送先特定回路41-2に出力する(ステップS21)。 After this, like the calculation circuit 20-1, the calculation circuit 20-2 performs a second calculation process on the target data (intermediate data) contained in the intermediate post-calculation data and deletes the leading calculation circuit ID "#2" from the transfer destination information, and outputs the target data and transfer destination information after the second calculation process and after the calculation circuit ID deletion as second intermediate post-calculation data to the transfer destination specification circuit 41-2 (step S21).

 転送先特定回路41-2に出力された第2の中間演算後データは、転送先特定回路41-2及びスイッチ50を介して、演算回路20-3に入力される(ステップS22~S25)。このとき、転送先特定回路41-2では、転送先特定回路41-1と同様に、自身が保持する対応表の参照及び入力ポート51-2と出力ポート52-3とを接続する制御が行われる。 The second intermediate post-operation data output to the destination specification circuit 41-2 is input to the operation circuit 20-3 via the destination specification circuit 41-2 and the switch 50 (steps S22 to S25). At this time, the destination specification circuit 41-2, like the destination specification circuit 41-1, references the correspondence table it holds and controls the connection between the input port 51-2 and the output port 52-3.

 演算回路20-3は、第2の中間演算後データの対象データに対する第3演算処理、及び、転送先情報からの先頭の演算回路ID「♯3」の削除を行い、第3演算処理後及び演算回路ID削除後の対象データ及び送信先情報を第3の中間演算後データとして、転送先特定回路41-3に出力する(ステップS26)。なお、この時点で、転送先情報には、演算回路IDが含まれなくなるので、第3の中間演算後データはここではデータフローによる各演算処理が終了した最終演算後データとなる。 The calculation circuit 20-3 performs a third calculation process on the target data of the second intermediate post-calculation data and deletes the leading calculation circuit ID "#3" from the destination information, and outputs the target data and destination information after the third calculation process and after the calculation circuit ID deletion as the third intermediate post-calculation data to the destination specification circuit 41-3 (step S26). At this point, the destination information no longer includes the calculation circuit ID, so the third intermediate post-calculation data becomes the final post-calculation data after each calculation process by the data flow has been completed.

 転送先特定回路41-3は、最終演算後データの転送先情報に演算回路IDが含まれない場合、最終演算後データ後をシステム10外部に転送するため、自身に接続されたスイッチ50の入力ポート51-3を出力ポート52-L+1~52-Lのうちの任意のポート、ここでは出力ポート52-Lに接続する(ステップS27及びS28)。また、転送先特定回路41-3は、転送先情報の末尾に含まれる、最終演算後データの送信先のアドレス(例えば、IPアドレス)及び必要に応じてルーティングテーブルを参照して得られるMACアドレスを最終的な宛先及び次に転送する装置の宛先としてヘッダなどに設定した最終演算後データを、入力ポート51-3に送信する(ステップS29)。これにより、最終的に第1データフローの処理結果が最終的な転送先に送信される(ステップS30)。 If the destination information of the final post-operation data does not include the operation circuit ID, the destination specification circuit 41-3 connects the input port 51-3 of the switch 50 connected to itself to any port among the output ports 52-L+1 to 52-L, here the output port 52-L, in order to transfer the final post-operation data to the outside of the system 10 (steps S27 and S28). The destination specification circuit 41-3 also transmits the final post-operation data, with the destination address of the final post-operation data included at the end of the destination information (e.g., IP address) and the MAC address obtained by referring to a routing table as necessary set in the header as the final destination and the destination of the next device, to the input port 51-3 (step S29). As a result, the processing result of the first data flow is finally transmitted to the final destination (step S30).

 この実施の形態では、スイッチ50が、複数の入力ポート51-1~51-Lのいずれかと複数の出力ポート52-1~52-Lのいずれかを任意の組合せで複数組同時に接続可能に構成されている。例えば、入力ポート51-2と出力ポート52-1との組み合わせと、入力ポート51-3と出力ポート52-2との組み合わせが同時に接続可能となっている。他方、転送先特定回路41のそれぞれは、互いに独立にスイッチ50を制御でき、自身に接続された入力ポート51と自身が転送先情報により特定した転送先に接続された出力ポート52とを接続し、対象データを前記接続された入力ポート51に入力する。このため、出力ポート52が被らない限り、複数組の入力ポート51と出力ポート52とをそれぞれ独立で接続することができ、データの転送も各組で並行して行われる。従来は、このような並行転送が行われないため、複数種類のデータフローが同時並行で実行されたときに、データが転送時に渋滞してしまう。本実施形態の並行転送は、このような渋滞を解消する。このように、本実施形態によれば、データフローの演算の対象データの転送の遅延が低減される(遅延がなくなることも含む)。 In this embodiment, the switch 50 is configured to be able to simultaneously connect multiple pairs of any of the multiple input ports 51-1 to 51-L and any of the multiple output ports 52-1 to 52-L in any combination. For example, the combination of the input port 51-2 and the output port 52-1 and the combination of the input port 51-3 and the output port 52-2 can be simultaneously connected. On the other hand, each of the destination specification circuits 41 can control the switch 50 independently of each other, connect the input port 51 connected to itself and the output port 52 connected to the destination specified by the destination information, and input the target data to the connected input port 51. Therefore, as long as the output port 52 does not overlap, multiple pairs of input ports 51 and output ports 52 can be connected independently, and data transfer is also performed in parallel for each pair. Conventionally, such parallel transfer is not performed, so when multiple types of data flows are executed simultaneously in parallel, data becomes congested during transfer. The parallel transfer of this embodiment eliminates such congestion. In this way, according to this embodiment, delays in the transfer of target data for data flow calculations are reduced (including elimination of delays).

 この実施の形態では、各転送先特定回路41は、転送先とこの転送先が接続された出力ポートとの対応表を保持し、当該対応表を参照して入力ポート51に接続する出力ポート52を特定するので、簡便な回路構成で入力ポート51と出力ポート52との接続が実現する。 In this embodiment, each transfer destination specification circuit 41 holds a correspondence table between the transfer destination and the output port to which this transfer destination is connected, and specifies the output port 52 to connect to the input port 51 by referring to the correspondence table, so that the connection between the input port 51 and the output port 52 can be realized with a simple circuit configuration.

 この実施の形態では、スイッチ50をクロスバースイッチとすることで、複数のデータフローにより行われるデータの並行転送が、簡便な構成により実現される。 In this embodiment, the switch 50 is a crossbar switch, which allows parallel data transfer through multiple data flows to be achieved with a simple configuration.

 この実施の形態では、転送先特定回路41-N+1~41-Lと、出力ポート52-N+1~52-Lがコンピュータシステム10の外部と接続されることで、外部から供給されるデータも、転送先特定回路41-N+1~41-Lを通過させることができる。また、転送先特定回路41-N+1~41-Lによる制御のもとで、出力ポート52-N+1~52-Lからデータを外部出力できる。 In this embodiment, the destination specification circuits 41-N+1 to 41-L and the output ports 52-N+1 to 52-L are connected to the outside of the computer system 10, so that data supplied from the outside can also pass through the destination specification circuits 41-N+1 to 41-L. In addition, data can be output to the outside from the output ports 52-N+1 to 52-L under the control of the destination specification circuits 41-N+1 to 41-L.

(変形例1)
 上記実施の形態では、演算回路20-1~20-Nが転送先特定回路41-1~41-Nに一対一で接続されているが、図5のコンピュータシステム110に示すように、複数の転送先特定回路41と複数の演算回路20とは、一対複数で接続されてもよい(転送先特定回路41-1と複数の演算回路20-1及び20-2参照)。一対複数の場合、複数の転送先特定回路41全体の回路規模が一対一の場合よりも小さくでき、転送先特定回路41の制御コスト及び実装コストが低減される。一対一の場合、複数のデータフローが互いに干渉せずに独立して実行される。また、複数のデータフローが互いに混ざり合わないため、システムをアイソレーションでき、さらに、仮想化も可能となる。また、特定のデータフローが混雑している場合に、他のデータフローへの影響を抑制できる。
(Variation 1)
In the above embodiment, the arithmetic circuits 20-1 to 20-N are connected to the destination specification circuits 41-1 to 41-N in a one-to-one relationship, but as shown in the computer system 110 of FIG. 5, the multiple destination specification circuits 41 and the multiple arithmetic circuits 20 may be connected in a one-to-multiple relationship (see the destination specification circuit 41-1 and the multiple arithmetic circuits 20-1 and 20-2). In the one-to-multiple relationship, the overall circuit scale of the multiple destination specification circuits 41 can be made smaller than in the one-to-one relationship, and the control cost and implementation cost of the destination specification circuit 41 are reduced. In the one-to-one relationship, multiple data flows are executed independently without interfering with each other. In addition, since multiple data flows do not mix with each other, the system can be isolated, and virtualization is also possible. In addition, when a specific data flow is congested, the impact on other data flows can be suppressed.

(変形例2)
 変形例として、複数のコンピュータシステムが接続されてもよい。つまり、コンピュータシステム10又は110は、1台のコンピュータではなく、複数のコンピュータのそれぞれに設けられた演算回路を含んで構成されてもよい。つまり、コンピュータシステム10又は110は、データ転送装置30とネットワーク、ルータ、ネットワークスイッチなどを介して接続された他のコンピュータの演算回路20を備えてもよい。このような場合、転送先特定回路41は、例えば、所定のルーティングテーブルを参照し、最終的な転送先の演算回路20のIPアドレス及び次に送信する装置のMACアドレスなどの情報を転送対象のデータに含ませる。
(Variation 2)
As a modified example, a plurality of computer systems may be connected. That is, the computer system 10 or 110 may be configured to include an arithmetic circuit provided in each of a plurality of computers, rather than a single computer. That is, the computer system 10 or 110 may include an arithmetic circuit 20 of another computer connected to the data transfer device 30 via a network, a router, a network switch, or the like. In such a case, the transfer destination specification circuit 41 refers to, for example, a predetermined routing table, and includes information such as the IP address of the final transfer destination arithmetic circuit 20 and the MAC address of the next device to send data, in the data to be transferred.

 このような変形例の場合、転送先特定回路41が保持する対応表には、他のコンピュータシステムの全て転送先の情報(演算回路IDなど)が登録されても、転送先の一部の情報が登録されてもよい。また、対応表中の転送先は、他のコンピュータシステム自体のアドレスなどにより表されてもよい。対応表が、転送可能な全転送先の一部のみを有する場合、転送先特定回路41を通過し得る対象データ及び転送先情報を、運用開始前に設定する際に、対応表に何を登録すべきかが予め把握し易く、より少ない制御コストで対応表の実装が可能となる。例えば、対応表中の転送先が、他のコンピュータシステム自体のアドレスなどとする場合には、他のコンピュータシステムが具備する演算回路に関する情報までは対応表に含めなくてよく、より少ない制御コストでの対応表の実装が可能となる。 In such a modified example, the correspondence table held by the destination specification circuit 41 may register information on all destinations of the other computer systems (such as arithmetic circuit IDs), or may register information on only some of the destinations. Furthermore, the destinations in the correspondence table may be represented by the addresses of the other computer systems themselves. If the correspondence table contains only a portion of all possible destinations, it is easier to know in advance what should be registered in the correspondence table when setting the target data and destination information that may pass through the destination specification circuit 41 before the start of operation, and the correspondence table can be implemented with less control cost. For example, if the destinations in the correspondence table are the addresses of the other computer systems themselves, the correspondence table does not need to include information on the arithmetic circuits that the other computer systems have, and the correspondence table can be implemented with less control cost.

 また、転送先特定回路41の機能を、コンピュータシステム同士を接続するネットワークスイッチ又はホストマシンに持たせてもよく、これにより、ネットワークスイッチ又はホストマシンにおいて、他のコンピュータシステムへのデータ転送を行うことができる。 The function of the destination specification circuit 41 may also be provided in a network switch or host machine that connects computer systems together, allowing data to be transferred to other computer systems in the network switch or host machine.

(変形例3)
 上記では、1つの演算回路20ごとに、1つの演算処理の実行部が構成されるが、複数種類の実行部が構成されてもよい。この場合、演算回路IDは、例えば、演算回路20のアドレスの他、演算処理の実行部を識別するデータ(例えば、当該実行部のアドレス)を含む。演算回路20は、当該データが示す実行部により演算処理を行えばよい。
(Variation 3)
In the above, one execution unit for the arithmetic processing is configured for each arithmetic circuit 20, but multiple types of execution units may be configured. In this case, the arithmetic circuit ID includes, for example, the address of the arithmetic circuit 20 as well as data identifying the execution unit for the arithmetic processing (for example, the address of the execution unit). The arithmetic circuit 20 may perform the arithmetic processing using the execution unit indicated by the data.

(変形例4)
 転送先情報は、対象データに付加されて転送されなくてもよい。例えば、対象データと同期させて、転送先情報を別の信号線により転送する構成が採用されてもよい。
(Variation 4)
The destination information does not have to be added to the target data and transferred. For example, a configuration may be adopted in which the destination information is transferred via a separate signal line in synchronization with the target data.

(変形例5)
 対応表は、データフローの実行開始前に設定される。この設定は、所定の制御パケットをコンピュータシステム10に入力し、データフローの実行ラインと同じインラインで行われるか、システム10が具備する管理ポートなどを用いてアウトオブラインで行われてもよい。
(Variation 5)
The correspondence table is set before the execution of the data flow starts. This setting may be performed inline with the execution line of the data flow by inputting a predetermined control packet to the computer system 10, or may be performed out-of-line using a management port or the like that the system 10 has.

(変形例6)
 実行可能なデータフローは、適宜追加、削除可能としてもよい。例えば、追加の場合、全てのデータフローの設定を変更する、つまり、対応表を全部入れ替える必要はなく、追加されたデータフローに関する情報(転送先及び出力ポートの各情報)のみ対応表に追加してもよい。データフローが削除される場合も同様であり、削除されたデータフローに関する情報のみが対応表から削除されてもよい。
(Variation 6)
Executable data flows may be added or deleted as appropriate. For example, when a data flow is added, it is not necessary to change the settings of all data flows, i.e., to replace the entire correspondence table, and only information about the added data flow (information about the transfer destination and output port) may be added to the correspondence table. The same applies when a data flow is deleted, and only information about the deleted data flow may be deleted from the correspondence table.

(変形例7)
 転送先特定回路41は、自身の稼働状況及びデータの流量を監視し、稼働度合い又は流量が所定の閾値を超えた場合に、対応表つまり実行可能なデータフローを変更してもよい。対応表の変更内容は、外部から指定されてもよい。この変更により、特定の転送先特定回路41及び又は特定の演算回路20への負荷が低減される。
(Variation 7)
The destination specification circuit 41 may monitor its own operating status and data flow rate, and may change the correspondence table, i.e., executable data flows, when the operating degree or flow rate exceeds a predetermined threshold. The contents of the change in the correspondence table may be specified from outside. This change reduces the load on a specific destination specification circuit 41 and/or a specific arithmetic circuit 20.

(変形例8)
 転送先特定回路41は、自身が保持する対応表のデータサイズが所定の閾値を超えた場合に、対応表つまり実行可能なデータフローを変更してもよい。このようにして、対応表の参照に要する時間が低減されるとともに、複数のデータフロー間で転送処理に要する時間が均一化される。
(Variation 8)
The destination specification circuit 41 may change the correspondence table, i.e., the executable data flows, when the data size of the correspondence table held by the destination specification circuit 41 exceeds a predetermined threshold value. In this way, the time required for referencing the correspondence table is reduced, and the time required for transfer processing among a plurality of data flows is equalized.

(本発明の範囲)
 本発明は、上記の実施の形態及び変形例に限定されるものではない。例えば、本発明には、本発明の技術思想の範囲内で当業者が理解し得る、上記の実施の形態及び変形例に対する様々な変更が含まれる。上記実施の形態及び変形例に挙げた各構成は、矛盾の無い範囲で適宜組み合わせることができる。また、上記の各構成のうちの任意の構成を削除することも可能である。
(Scope of the present invention)
The present invention is not limited to the above-mentioned embodiment and modified examples. For example, the present invention includes various modifications to the above-mentioned embodiment and modified examples that can be understood by a person skilled in the art within the scope of the technical idea of the present invention. The configurations listed in the above-mentioned embodiment and modified examples can be appropriately combined within a range without contradiction. In addition, it is also possible to delete any of the above-mentioned configurations.

(付記)
 上記実施形態及び変形例により開示される構成を以下に例示する。
(付記1)
 複数の演算処理を連結させたデータフローの対象データが入力され、入力された当該対象データの次の転送先を当該対象データの転送先情報に基づいて特定する複数の転送先特定部と、
 複数の入力ポート及び複数の出力ポートを備え、前記複数の入力ポートのいずれかと前記複数の出力ポートのいずれかを任意の組合せで複数組同時に接続可能に構成されたスイッチと、を備え、
 前記複数の転送先特定部のそれぞれは、互いに独立に前記スイッチを制御して、前記複数の入力ポートのうち自身に接続された入力ポートと前記複数の出力ポートのうち自身が特定した前記転送先に接続された出力ポートとを接続し、前記対象データを前記入力ポートに入力する、
 データ転送装置。
(付記2)
 前記複数の転送先特定部のそれぞれは、転送先とこの転送先が接続された出力ポートとの対応表を保持し、当該対応表を参照して前記入力ポートに接続する前記出力ポートを特定する、
 付記1に記載のデータ転送装置。
(付記3)
 前記スイッチは、クロスバースイッチである、
 付記1又は2に記載のデータ転送装置。
(付記4)
 付記1~3のいずれかに記載のデータ転送装置と、
 前記複数の転送先特定部の少なくとも一部である複数の第1転送先特定部に一対一で接続された複数の演算部と、を備え、
 前記複数の演算部は、前記スイッチの前記複数の出力ポートの少なくとも一部である複数の第1出力ポートに前記転送先としてそれぞれ接続され、
 前記複数の演算部のそれぞれは、データフローを構成する演算処理を実行する、
 コンピュータシステム。
(付記5)
 付記1~3のいずれかに記載のデータ転送装置と、
 前記複数の転送先特定部の少なくとも一部である複数の第1転送先特定部に接続された複数の演算部と、を備え、
 前記複数の第1転送先特定部と前記複数の演算部とは、1対複数で接続されており、 前記複数の演算部は、前記スイッチの前記複数の出力ポートの少なくとも一部である複数の第1出力ポートに前記転送先としてそれぞれ接続され、
 前記複数の演算部のそれぞれは、データフローを構成する演算処理を実行する、
 コンピュータシステム。
(付記6)
 前記複数の転送先特定部は、その一部である前記複数の第1転送先特定部と残りの1以上の第2転送先特定部とからなり、
 前記複数の出力ポートは、その一部である前記複数の第1出力ポートと残りの1以上の第2出力ポートとからなり、
 前記第2転送先特定部及び前記第2出力ポートは、前記コンピュータシステムの外部と接続される、
 付記4又は5に記載のコンピュータシステム。
(Additional Note)
The configurations disclosed in the above-described embodiments and modifications are exemplified below.
(Appendix 1)
a plurality of destination specification units that receive target data of a data flow in which a plurality of arithmetic processes are linked, and specify a next destination of the input target data based on destination information of the target data;
a switch including a plurality of input ports and a plurality of output ports, the switch being configured to be capable of simultaneously connecting any of the plurality of input ports and any of the plurality of output ports in any combination;
each of the plurality of transfer destination specification units independently controls the switch to connect an input port connected to itself among the plurality of input ports to an output port connected to the transfer destination specified by itself among the plurality of output ports, and inputs the target data to the input port;
Data transfer device.
(Appendix 2)
each of the plurality of transfer destination specification units holds a correspondence table between a transfer destination and an output port to which the transfer destination is connected, and specifies the output port to be connected to the input port by referring to the correspondence table;
2. The data transfer device according to claim 1.
(Appendix 3)
The switch is a crossbar switch.
3. The data transfer device according to claim 1 or 2.
(Appendix 4)
A data transfer device according to any one of appendix 1 to 3;
a plurality of calculation units connected one-to-one to a plurality of first destination determination units that are at least a part of the plurality of destination determination units;
the plurality of calculation units are respectively connected as the transfer destinations to a plurality of first output ports which are at least a part of the plurality of output ports of the switch;
Each of the plurality of calculation units executes a calculation process constituting a data flow.
Computer system.
(Appendix 5)
A data transfer device according to any one of appendix 1 to 3;
a plurality of calculation units connected to a plurality of first destination determination units which are at least a part of the plurality of destination determination units;
the first destination specification units and the calculation units are connected in a one-to-multiple manner, and the calculation units are respectively connected as the destinations to a first output port that is at least a part of the output ports of the switch;
Each of the plurality of calculation units executes a calculation process constituting a data flow.
Computer system.
(Appendix 6)
the plurality of forwarding destination determination units are made up of the plurality of first forwarding destination determination units which are a part of the plurality of forwarding destination determination units and one or more second forwarding destination determination units which are the remaining part of the plurality of forwarding destination determination units,
the plurality of output ports include the plurality of first output ports which are a part of the plurality of output ports and one or more second output ports which are the remaining part of the plurality of output ports;
the second destination specification unit and the second output port are connected to an external device of the computer system;
6. The computer system of claim 4 or 5.

10…コンピュータシステム、11…プロセッサ、12…メインメモ、13…ストレージ、20-1~20-N…演算回路、30…データ転送装置、41-1~41-N~41-L…転送先特定回路L、50…スイッチ、51-1~51-N~51-L…入力ポート、52-1~52-N~52-L…出力ポート、110…コンピュータシステム。 10...Computer system, 11...Processor, 12...Main memory, 13...Storage, 20-1 to 20-N...Arithmetic circuits, 30...Data transfer device, 41-1 to 41-N to 41-L...Destination specification circuit L, 50...Switch, 51-1 to 51-N to 51-L...Input ports, 52-1 to 52-N to 52-L...Output ports, 110...Computer system.

Claims (6)

 複数の演算処理を連結させたデータフローの対象データが入力され、入力された当該対象データの次の転送先を当該対象データの転送先情報に基づいて特定する複数の転送先特定部と、
 複数の入力ポート及び複数の出力ポートを備え、前記複数の入力ポートのいずれかと前記複数の出力ポートのいずれかを任意の組合せで複数組同時に接続可能に構成されたスイッチと、を備え、
 前記複数の転送先特定部のそれぞれは、互いに独立に前記スイッチを制御して、前記複数の入力ポートのうち自身に接続された入力ポートと前記複数の出力ポートのうち自身が特定した前記転送先に接続された出力ポートとを接続し、前記対象データを前記入力ポートに入力する、
 データ転送装置。
a plurality of destination specification units that receive target data of a data flow in which a plurality of arithmetic processes are linked, and specify a next destination of the input target data based on destination information of the target data;
a switch including a plurality of input ports and a plurality of output ports, the switch being configured to be capable of simultaneously connecting any of the plurality of input ports and any of the plurality of output ports in any combination;
each of the plurality of transfer destination specification units independently controls the switch to connect an input port connected to itself among the plurality of input ports to an output port connected to the transfer destination specified by itself among the plurality of output ports, and inputs the target data to the input port;
Data transfer device.
 前記複数の転送先特定部のそれぞれは、転送先とこの転送先が接続された出力ポートとの対応表を保持し、当該対応表を参照して前記入力ポートに接続する前記出力ポートを特定する、
 請求項1に記載のデータ転送装置。
each of the plurality of transfer destination specification units holds a correspondence table between a transfer destination and an output port to which the transfer destination is connected, and specifies the output port to be connected to the input port by referring to the correspondence table;
2. The data transfer device according to claim 1.
 前記スイッチは、クロスバースイッチである、
 請求項1に記載のデータ転送装置。
The switch is a crossbar switch.
2. The data transfer device according to claim 1.
 請求項1に記載のデータ転送装置と、
 前記複数の転送先特定部の少なくとも一部である複数の第1転送先特定部に一対一で接続された複数の演算部と、を備え、
 前記複数の演算部は、前記スイッチの前記複数の出力ポートの少なくとも一部である複数の第1出力ポートに前記転送先としてそれぞれ接続され、
 前記複数の演算部のそれぞれは、データフローを構成する演算処理を実行する、
 コンピュータシステム。
The data transfer device according to claim 1 ;
a plurality of calculation units connected one-to-one to a plurality of first destination determination units that are at least a part of the plurality of destination determination units;
the plurality of calculation units are respectively connected as the transfer destinations to a plurality of first output ports which are at least a part of the plurality of output ports of the switch;
Each of the plurality of calculation units executes a calculation process constituting a data flow.
Computer system.
 請求項1に記載のデータ転送装置と、
 前記複数の転送先特定部の少なくとも一部である複数の第1転送先特定部に接続された複数の演算部と、を備え、
 前記複数の第1転送先特定部と前記複数の演算部とは、1対複数で接続されており、 前記複数の演算部は、前記スイッチの前記複数の出力ポートの少なくとも一部である複数の第1出力ポートに前記転送先としてそれぞれ接続され、
 前記複数の演算部のそれぞれは、データフローを構成する演算処理を実行する、
 コンピュータシステム。
The data transfer device according to claim 1 ;
a plurality of calculation units connected to a plurality of first destination determination units which are at least a part of the plurality of destination determination units;
the first destination specification units and the calculation units are connected in a one-to-multiple manner, and the calculation units are respectively connected as the destinations to a first output port that is at least a part of the output ports of the switch;
Each of the plurality of calculation units executes a calculation process constituting a data flow.
Computer system.
 前記複数の転送先特定部は、その一部である前記複数の第1転送先特定部と残りの1以上の第2転送先特定部とからなり、
 前記複数の出力ポートは、その一部である前記複数の第1出力ポートと残りの1以上の第2出力ポートとからなり、
 前記第2転送先特定部及び前記第2出力ポートは、前記コンピュータシステムの外部と接続される、
 請求項4又は5に記載のコンピュータシステム。
the plurality of forwarding destination determination units are made up of the plurality of first forwarding destination determination units which are a part of the plurality of forwarding destination determination units and one or more second forwarding destination determination units which are the remaining part of the plurality of forwarding destination determination units,
the plurality of output ports include the plurality of first output ports which are a part of the plurality of output ports and one or more second output ports which are the remaining part of the plurality of output ports;
the second destination specification unit and the second output port are connected to an external device of the computer system;
6. A computer system according to claim 4 or 5.
PCT/JP2024/032360 2023-09-12 2024-09-10 Data transfer device and computer system Pending WO2025057937A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2023147409 2023-09-12
JP2023-147409 2023-09-12

Publications (1)

Publication Number Publication Date
WO2025057937A1 true WO2025057937A1 (en) 2025-03-20

Family

ID=95021382

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2024/032360 Pending WO2025057937A1 (en) 2023-09-12 2024-09-10 Data transfer device and computer system

Country Status (1)

Country Link
WO (1) WO2025057937A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10161973A (en) * 1996-11-29 1998-06-19 Hitachi Ltd Bus control device and bus unit
JP2005044361A (en) * 2003-07-25 2005-02-17 Internatl Business Mach Corp <Ibm> Self-contained processor subsystem as component for system-on-chip design
WO2023016910A2 (en) * 2021-08-11 2023-02-16 Telefonaktiebolaget Lm Ericsson (Publ) Interconnecting reconfigurable regions in an field programmable gate array

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10161973A (en) * 1996-11-29 1998-06-19 Hitachi Ltd Bus control device and bus unit
JP2005044361A (en) * 2003-07-25 2005-02-17 Internatl Business Mach Corp <Ibm> Self-contained processor subsystem as component for system-on-chip design
WO2023016910A2 (en) * 2021-08-11 2023-02-16 Telefonaktiebolaget Lm Ericsson (Publ) Interconnecting reconfigurable regions in an field programmable gate array

Similar Documents

Publication Publication Date Title
EP3707880B1 (en) Nic with programmable pipeline
US10204070B2 (en) Method, device, system and storage medium for implementing packet transmission in PCIE switching network
JP5610247B2 (en) Network system and policy route setting method
US11563683B2 (en) SRv6 with micro segment identifiers
CN108463989B (en) Business function linking across multiple sub-networks
JP6048505B2 (en) Parallel computer, node device, and parallel computer control method
US10318334B2 (en) Virtio relay
US20150215236A1 (en) Method and apparatus for locality sensitive hash-based load balancing
US10230633B2 (en) Shared memory communication in software defined networking
JP2018185624A (en) Switch program, switching method, and information processing apparatus
CN103081440A (en) Information processing system, relay device, and information processing method
US10171354B2 (en) Communication processing system, communication processing apparatus, communication processing method, and storage medium
WO2025057937A1 (en) Data transfer device and computer system
JPWO2014126094A1 (en) COMMUNICATION SYSTEM, COMMUNICATION METHOD, CONTROL DEVICE, CONTROL DEVICE CONTROL METHOD, AND PROGRAM
US20190356607A1 (en) Merging read requests in network device architecture
US20190028576A1 (en) Network switching with co-resident data-plane and network interface controllers
US9736080B2 (en) Determination method, device and storage medium
US20190020599A1 (en) Determining actions to be immediately performed on a network packet with an application specific integrated circuit
US20160182692A1 (en) Network switching with layer 2 switch coupled co-resident data-plane and network interface controllers
US11888737B1 (en) Implementing network function logic in a virtual switch
US20250365235A1 (en) Incast congestion management
US12380049B2 (en) CXL fabric extensions
EP4580163A1 (en) Systems and methods for communication network load balancing
US20250365350A1 (en) In-network computing using modular switch architecture
US20250358244A1 (en) Packet processing system

Legal Events

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

Ref document number: 24865437

Country of ref document: EP

Kind code of ref document: A1