Network control apparatus

WO2026202997A1PCT designated stage Publication Date: 2026-10-01NT T INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/011344
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-03-24
Publication Date
2026-10-01

Smart Images

  • Figure JP2025011344_01102026_PF_FP_ABST
    Figure JP2025011344_01102026_PF_FP_ABST
Patent Text Reader

Abstract

A network control apparatus (10) comprises: a reception device (20) that allocates a credit indicating data transmission permission in response to a request from another transmission device, and receives data transmitted from the other transmission device; and a transmission device (30) that transmits data transmitted from a device connected to a previous stage to a device connected to a subsequent stage, and controls, on the basis of a credit allocated from another reception device connected to the subsequent stage, the transmission of the data to the other reception device. The transmission device (30) is configured to start the transmission of the data to the other reception device before the credit is allocated.
Need to check novelty before this filing date? Find Prior Art

Description

Network control device

[0001] The present invention relates to a control device for a network connecting arithmetic devices to each other in a data center.

[0002] Technological innovation has progressed in many fields such as machine learning, artificial intelligence (AI), and IoT (Internet of Things), and the sophistication of services and provision of added value are actively performed by utilizing various types of information and data. Such processing requires a large amount of computation, and an information processing infrastructure therefor is essential.

[0003] In the information processing infrastructure, a large number of arithmetic devices are generally connected via a hierarchical network, and one implementation form thereof is DSF (Disaggregated Scheduled fabric). DSF is a schedule-based fabric in which a transmission side starts data transmission triggered by a transmission permission (credit) from a reception side. In order to configure DSF, a network control device configuring the information processing infrastructure includes functions such as VoQ (Virtual output Queue), Cell switching, and Spraying / Reodering.

[0004] VoQ is a mechanism that prepares dedicated virtual queues for each input port, traffic class, and destination port in an ingress packet buffer, and avoids transfer of input traffic unrelated to a specific output port due to congestion of the output port (the Head of Line blocking problem), and generally uses Deep Buffer. In addition, in Cell switching, a packet is divided into fixed lengths (e.g., 256 Bytes) called cells, and switching is performed in cell units. Spraying is a mechanism that distributes traffic to all valid links of a network, and cells that randomly arrive at a reception side are rearranged by the Reodering function.

[0005] The entire fabric, composed of multiple network switches, operates like a single network element with congestion prevention mechanisms such as virtual output queues (VoQ) and credit-based scheduling, hence it is called a DSF (Digital Strategic Fabric). The basic scheme of such a DSF is disclosed in Non-Patent Document 1.

[0006] Figure 17 is a block diagram showing the configuration of a conventional transmitting device. Figure 18 shows the operation sequence of a conventional network control device. In the network control device, scheduling is performed at the output stage of the fabric adapter (FA). The source FA (VoQ) requests permission to transmit traffic from the destination FA.

[0007] The destination FA (Fast Attorney) is aware of all source FAs (VoQs) destined for it and generates credits to ensure that the destination FA's capacity is not exceeded. Source FAs (VoQs) dequeue packets up to the permitted credit size. At this time, the amount of excess data is stored for later calculation. Source FAs (VoQs) select which VOQs to send based on the order of credit arrival and priority.

[0008] Noa Zilberman, Gabi Bracha, Golan Schzukin, “Stardust: Divide and Conquer in the Data Center Network,” NSDI 2019, 141-160.<https: / / www.usenix.org / conference / nsdi19 / presentation / zilberman>

[0009] Unlike reactive congestion notification and response, DSF can guarantee proactive congestion avoidance within the fabric, enabling the creation of a congestion-free fabric that avoids major problems such as flow collisions and link failures. On the other hand, in a schedule-based fabric, the sender initiates data transmission only after the receiver grants permission (credit), which can affect the network's processing capacity as time is required from receiving data from the upstream device to completing transmission.

[0010] The present invention was made to solve the above-mentioned problems, and aims to provide a network control device that can improve the processing capacity of a network connecting computing devices.

[0011] To solve the above problems, the network control device of the present invention is a network control device comprising a receiving device and a transmitting device, wherein the receiving device comprises a receiving unit for receiving data transmitted from other transmitting devices and an allocation unit for allocating credits indicating permission to transmit data in response to a request from other transmitting devices, the transmitting device comprises a buffer unit for storing data transmitted from a device connected upstream of the transmitting device, a transmitting unit for transmitting the data stored in the buffer unit to a device connected downstream of the transmitting device, a scheduling unit for requesting the allocation of credits from other receiving devices connected downstream of the transmitting device and controlling the transmission of data to the other receiving devices based on the credits allocated by the other receiving devices, and a transmission processing unit for controlling the transmission of data in the transmitting unit so as to start transmitting data to the other receiving devices before the credits are allocated.

[0012] To solve the above problems, the network control device of the present invention is a network control device comprising a receiving device, a transmitting device, and a management device for managing credit information indicating permission to transmit data, wherein the receiving device comprises a receiving unit for receiving data transmitted from other transmitting devices and an information registration unit for registering the credit information in the management device, the transmitting device comprises a buffer unit for storing data transmitted from a device connected upstream of the transmitting device, a transmitting unit for transmitting the data stored in the buffer unit to a device connected downstream of the transmitting device, an information acquisition unit for acquiring credit information for other receiving devices connected downstream of the transmitting device from the management device, and a scheduling unit for controlling the transmission of data to the other receiving devices based on the credit acquired by the information acquisition unit.

[0013] According to the present invention, it is possible to provide a network control device and a control method therefor that can improve the processing capacity of a network connecting computing devices.

[0014] This is a system configuration diagram including a network control device according to an embodiment of the present invention. This is a block diagram showing the configuration of a receiving device according to the first embodiment. This is a block diagram showing the configuration of a transmitting device according to the first embodiment. This is the operation sequence of the network control device according to the first embodiment. This is a block diagram showing the configuration of a receiving device according to the second embodiment. This is a block diagram showing the configuration of a transmitting device according to the second embodiment. This is the operation sequence of the network control device according to the second embodiment. This is a block diagram showing the configuration of a receiving device according to the third embodiment. This is a block diagram showing the configuration of a transmitting device according to the third embodiment. This is the operation sequence of the network control device according to the third embodiment. This is a block diagram showing the configuration of a receiving device according to the fourth embodiment. This is a block diagram showing the configuration of a transmitting device according to the fourth embodiment. This is a diagram showing an example of a management table according to the fourth embodiment. This is a block diagram showing the configuration of a management device according to the fourth embodiment. This is the operation sequence of the network control device according to the fourth embodiment. This is a system configuration diagram including a network control device according to the fifth embodiment. This is a block diagram showing the configuration of a conventional transmitting device. This is the operation sequence of a conventional network control device.

[0015] Embodiments of the present invention will be described below with reference to the drawings. However, the present invention can be implemented in many different ways and should not be interpreted as being limited to the embodiments of the present invention described below.

[0016] <First Embodiment> <Network Control Device Configuration> The configuration of the network control device 10 according to the first embodiment will be described with reference to Figure 1-3. Figure 1 is a system configuration diagram including the network control device according to an embodiment of the present invention. Figure 2 is a block diagram showing the configuration of the receiving device according to the first embodiment. Figure 3 is a block diagram showing the configuration of the transmitting device according to the first embodiment.

[0017] As shown in Figure 1, the network control devices (10-1, 10-2) of this embodiment consist of receiving devices (20-1, 20-2) and transmitting devices (30-1, 30-2). The network control devices (10-1, 10-2) connect a large number of computing devices by forming a hierarchical network via network devices 100 such as network switches.

[0018] The network control devices (10-1, 10-2) in this embodiment can be implemented in various forms. For example, the functions of the network control devices (10-1, 10-2) may be implemented in hardware using FPGAs (Field-Programmable Gate Arrays) and ASICs (Application Specific Integrated Circuits). Alternatively, the functions of the network control device 10 may be implemented using a computer equipped with a CPU (Central Processing Unit), a storage device, and an external interface, and a program that controls these hardware resources.

[0019] DSF is known as an implementation for connecting a large number of computing units using a hierarchical network. DSF is a schedule-based network fabric in which transmitting devices (30-1, 30-2) initiate data transmission when receiving devices (20-1, 20-2) grant permission to transmit (credit).

[0020] To configure the DSF, the network control units (10-1, 10-2) are equipped with functions such as VoQ (Virtual Output Queue), Cell switching, and Spraying / Reordering. VoQ is a mechanism that prepares a dedicated virtual queue for each input port, traffic class, and destination port in the Ingress packet buffer, and avoids the forwarding of input traffic unrelated to a particular output port (Head of Line blocking problem) due to congestion on that output port. Generally, a Deep Buffer is used.

[0021] Cell switching divides packets into fixed-length units called Cells (e.g., 2256 KB) and switches them on a Cell-by-Cell basis. Spraying is a mechanism that distributes traffic across all active links in the network, and the reordering function rearranges the randomly arriving Cells at the receiving end. In DSF, the entire fabric, composed of multiple network switches, operates like a single network element with congestion prevention mechanisms such as virtual output queues (VoQ) and credit-based scheduling.

[0022] Unlike reactive congestion notification and response, DSF can guarantee proactive congestion avoidance within the fabric, enabling the creation of a congestion-free fabric that avoids major problems such as flow collisions and link failures. On the other hand, in a schedule-based fabric, the sender starts transmitting data only after the receiver grants permission (credit), so the time from receiving data from the upstream device to completing transmission can affect the network's processing capacity.

[0023] In the network control devices (10-1, 10-2) of this embodiment, the transmitting devices (30-1, 30-2) start transmitting data packets prior to credit allocation, thereby shortening the time from data reception from the preceding device to the completion of transmission, and improving the processing capacity of the network connecting computing units in the data center.

[0024] <Configuration of the receiving device> As shown in Figure 2, the receiving device 20 includes a control unit 21 that performs transmission control with the transmitting device 30, and a buffer unit 22 and a receiving unit 23 that receive data packets input from the transmitting device 30 via the network.

[0025] The control unit 21 of the receiving device 20 includes an allocation unit (21-1) that allocates credits indicating permission to transmit. The credit allocation unit (21-1) of the control unit 21 of the receiving device 20 allocates the amount of data that the transmitting device 30 can transmit, i.e., credits, in response to a permission to transmit request from the transmitting device 30. In order to allocate credits, the allocation unit (21-1) refers to the amount of data stored in the buffer unit 22 of the receiving device 20 and calculates the amount of data that can be received from the transmitting device 30. The transmitting device 30 divides the data into cells and distributes (spraying) each to multiple available links and transmits them based on the allocated credits. When allocating credits, the allocation unit (21-1) of the receiving device 20 can also take into account the amount of data already transmitted in advance when allocating credits.

[0026] The configuration of the receiving device 20 is not limited to those described above. In DSF, the credits allocated to the transmitting device 30 are generally divided into cells and distributed (sprayed) to multiple available links for transmission. In this case, the order in which data arrives at the receiving device 20 does not necessarily match the transmission order of the transmitting device 30, so it may be equipped with a function to rearrange the order of data (reordering).

[0027] <Configuration of the transmitting device> As shown in Figure 3, the transmitting device 30 includes a buffer unit 32 that temporarily stores data packets from a device connected upstream of the transmitting device 30, a transmitting unit that transmits data packets to a downstream receiving device 20 connected to the transmitting device 30 via a network, and a control unit that performs transmission control between the transmitting device 30 and the receiving device 20.

[0028] The buffer unit 32 of the transmitting device 30 uses a mechanism called VoQ, which configures a dedicated virtual queue for each input port, traffic class, and destination port. VoQ is a mechanism to overcome the head-of-line blocking problem in network devices, where congestion at a specific output port affects the transfer of input data unrelated to that output port. This enables fair and data-free data transfer in network devices.

[0029] In DSF, for example, the transmitting unit of the transmitting device 30 divides packets into fixed-length units called Cells (e.g., 256 bytes) and performs switching on a Cell-by-Cell basis. Therefore, the transmitting device 30 divides packets into fixed-length units called Cells (e.g., 256 bytes) and transmits them. In addition, DSF may utilize a mechanism (Spraying) that distributes traffic across all active links in the network. In this case, the receiving device 20 may have a function to rearrange Cells (Reordering) because the data arrives randomly.

[0030] The control unit of the transmitting device 30 includes a scheduling unit (31-1) that sends a transmission permission request to the credit allocation unit (21-1) of the receiving device 20 and starts transmitting data upon receiving a credit notification from the receiving device 20, and a transmission processing unit (31-2) that starts transmitting data packets prior to receiving a credit notification from the receiving device 20.

[0031] The scheduling unit (31-1) in the control unit of the transmitting device 30 sends a transmission permission request to the credit allocation unit (21-1) in the receiving device 20, and starts transmitting data upon receiving a credit notification from the receiving device 20. When requesting a transmission permission request, the transmitting device 30 can obtain the desired credit by notifying the receiving device 20 of the amount of data it wants to transmit.

[0032] The transmission processing unit (31-2) of the control unit of the transmission device 30 starts transmitting data packets prior to receiving a credit notification from the receiving device 20. The amount of data to be transmitted in advance may be a pre-set value, or it may be dynamically changed based on the degree of congestion of the fabric. For example, compared to a pre-set initial value, the amount of data to be transmitted in advance may be increased when the degree of congestion of the fabric is low, and the amount of data to be transmitted in advance may be decreased when the degree of congestion of the fabric is high.

[0033] The transmission processing unit (31-2) may use a different link for the advance transmission than the link used for the transmission based on the credit notification. For example, the transmission processing unit (31-2) may obtain the usage rate of the link to be used for the advance transmission and use only the link whose usage rate is below a predetermined standard.

[0034] The scheduling unit of the transmitting device 30 transmits data based on the credits allocated by the receiving device 20 after the credits have been allocated. For example, if the allocated credits are insufficient for the amount of data requested to be transmitted, the scheduling unit of the transmitting device 30 can either stop transmitting data after the initial transmission or reduce the amount of subsequent data to be transmitted based on the allocated credits. Furthermore, since there is a possibility that the reception of data that has been transmitted in advance may not be guaranteed, the transmitting device 30 may also be equipped with a retransmission buffer to hold data for retransmission.

[0035] In the network device of this embodiment, the difference from the conventional configuration is that the control unit of the transmitting device 30 has a transmission processing unit (31-2) that transmits data before receiving credit. As a result, the transmitting device 30 can issue a transmission permission request to the receiving device 20 prior to receiving data from the preceding device, thereby allowing the transmission to start earlier and shortening the time from the transmission permission request to the completion of transmission.

[0036] <Operation of the Network Control Device> The operation of the network control device 10 according to the first embodiment will be described with reference to Figure 4. Figure 4 is the operation sequence of the network control device according to the first embodiment. The network control device 10 of this embodiment, as a whole, performs a data transmission and reception method involving scheduling processing between the transmitting device 30 and the receiving device 20.

[0037] The transmitting device 30 receives data (X bytes) from the preceding device and stores it in the buffer unit 32. The preceding device is, for example, a computing device such as a computer, or a network device such as a switch or router.

[0038] The transmitting device 30 sends a transmission permission request (X bytes) to the receiving device 20 in order to transmit the data received from the preceding device to the receiving device 20. The trigger or timing for the transmitting device 30 to send the transmission permission request is not particularly limited. The transmitting device 30 may send the transmission permission request while receiving data from the preceding device or after completing data reception.

[0039] Upon receiving a transmission permission request, the receiving device 20 generates and transmits a credit to the transmitting device 30 that sent the transmission permission request, which contains information about the amount of data that the transmitting device 30 is permitted to transmit. In this embodiment, the transmitting device 30 issues a transmission permission request and transmits data in advance. That is, the transmitting device 30 transmits data in advance before the credit is allocated. Here, the timing of transmitting the advance data does not have to be after the transmission permission request has been sent. The transmitting device 30 may transmit the data to be transmitted in advance before sending the transmission permission request.

[0040] The amount of preceding data to be transmitted (X1 byte) can be an externally configured value or a value notified in advance by the receiving device 20. Furthermore, the transmitting device 30 may monitor the buffer storage amount and load of the device and reduce the amount of preceding data transmitted when traffic is high to minimize the impact on the system. Also, preceding data transmission does not necessarily have to be applied to all traffic. It may be applied only to traffic providing low-latency services, or it may be applied to any traffic or any VoQ.

[0041] The link used to transmit the preceding data may be a link permitted in the external settings or a link that has been notified in advance by the receiving device 20. The transmitting device 30 may also monitor its transmission port and use only links with low load to transmit the preceding data.

[0042] If the transmitting device 30 is allocated credits (Y bytes), it transmits the data allocated according to those credits (X2 bytes). If the allocated credits are less than X bytes, it transmits the amount of data remaining after subtracting the previously transmitted X1 bytes (Y - X1 bytes). If the allocated credits are less than X2 bytes, it is possible that the previously transmitted data (X1 bytes) was not received. In that case, the data may be retransmitted when X bytes of credits are allocated. Also, if no credits are allocated, or if there is a link where the allocated credits are insufficient to cover the amount of data transmitted previously, the data may be retransmitted to a link to which credits have been allocated.

[0043] <Effects of the First Embodiment> As described above, the network control device 10 of this embodiment is a network control device 10 in which the transmitting device 30 transmits data packets to the receiving device 20 based on credits allocated at the request of the receiving device 20. The transmitting device 30 is configured to start transmitting data packets prior to the allocation of credits.

[0044] In the network control device 10 of the present embodiment, the transmitting device 30 starts transmitting data packets prior to credit allocation, thereby shortening the time from receiving data from a preceding device to completing transmission, and making it possible to improve the processing capacity of a network connecting arithmetic devices to each other in a data center.

[0045] <Second Embodiment> <Configuration of Network Control Device> The configuration of a network control device 10 according to a second embodiment will be described with reference to FIGS. 5 and 6. FIG. 5 is a block diagram showing the configuration of a receiving device according to the second embodiment. FIG. 6 is a block diagram showing the configuration of a transmitting device according to the second embodiment.

[0046] <Configuration of Receiving Device> As shown in FIG. 5, the receiving device 20 includes a control unit 21 that performs transmission control with the transmitting device 30, a buffer unit 22 and a receiving unit 23 that receive data packets input from the transmitting device 30 via a network. The configuration of the control unit 21 of the receiving device 20 is the same as that of the first embodiment.

[0047] As shown in FIG. 5, the control unit of the receiving device 20 includes an allocation unit (21-1) that allocates credits indicating transmission permission. The credit allocation unit (21-1) included in the control unit of the receiving device 20 allocates, in response to a transmission permission request from the transmitting device 30, an amount of data that the transmitting device 30 can transmit, that is, a credit. To allocate a credit, the allocation unit (21-1) refers to the data accumulation amount of the buffer unit 22 of the receiving device 20 and calculates the amount of data that can be received from the transmitting device 30.

[0048] <Configuration of Transmitting Device> As shown in FIG. 6, the transmitting device 30 includes a buffer unit 32 that temporarily accumulates data packets from a preceding device connected to the device, a transmitting unit that transmits data packets to a subsequent device connected to the device via a network for transmitting data to the receiving device side, and a control unit that performs transmission control between the device and the receiving device 20.

[0049] The control unit of the transmitting device 30 includes a scheduling unit (31-1) that sends a transmission permission request to the credit allocation unit (21-1) of the receiving device 20 and initiates transmission upon receiving a credit notification from the receiving device 20, a transmission processing unit (31-2) that initiates the transmission of data packets prior to receiving the credit notification from the receiving device 20, an information acquisition unit (31-3) that monitors the amount of data to be received, the presence or absence of data, and the timing of data reception for the device preceding the transmitting device 30, and a request processing unit (31-4) that refers to the status of the preceding device acquired by the information acquisition unit (31-3) and issues a transmission permission request to the receiving device 20 prior to receiving data. Compared to the first embodiment, the configuration of the control unit of the transmitting device 30 includes the addition of the information acquisition unit (31-3) and the request processing unit (31-4).

[0050] The information acquisition unit (31-3) in the control unit of the transmitting device 30 monitors the preceding device of the transmitting device 30, that is, the amount of data received from the preceding device, whether or not data is present, and the timing of data reception.

[0051] The request processing unit (31-4) of the control unit of the transmitting device 30 refers to the status of the preceding device acquired by the information acquisition unit (31-3) and issues a transmission permission request to the receiving device 20 prior to receiving data.

[0052] In the network control device 10 of the second embodiment, the difference from the first embodiment is that the control unit of the transmitting device 30 includes an information acquisition unit (31-3) and a request processing unit (31-4). As a result, the transmitting device 30 can issue a transmission permission request to the receiving device 20 prior to receiving data from the preceding device, thereby accelerating the start time of transmission and shortening the time from the transmission permission request to the completion of transmission.

[0053] Furthermore, compared to the first embodiment, the transmitting device 30 can issue a transmission permission request before data arrives from the preceding device, thus shortening the buffer accumulation time in the transmitting device 30 and allowing for an earlier transmission start time, thus reducing the time until credit is received. In addition, even if the amount of data transmitted in advance is less than in the first embodiment, the issuance of the transmission permission request and the allocation of credit can be accelerated, shortening the time until transmission is completed and reducing the amount of data transmitted in advance. This reduces data loss and improves network reliability.

[0054] <Operation of the Network Control Device> The operation of the network control device 10 according to the second embodiment will be described with reference to Figure 7. Figure 7 is the operation sequence of the network control device according to the second embodiment. The network control device 10 of this embodiment is, as a whole, a data transmission and reception method involving scheduling processing between the transmitting device 30 and the receiving device 20.

[0055] The transmitting device 30 checks the amount of data received from the preceding device and whether or not data exists, and monitors the timing of data reception.

[0056] The transmitting device 30 refers to information obtained by checking the amount of data to be received from the preceding device, confirming the presence or absence of data, and monitoring the timing of data reception, and issues a transmission permission request to the receiving device 20 prior to receiving data. The trigger for issuing the transmission permission request may be a notification such as a prior request from the preceding device, the result of monitoring the progress of calculations in the preceding device, or the result of monitoring the transmission buffer of the preceding device. The transmitting device 30 may also be configured to issue a transmission permission request when the amount of data stored in the transmission buffer of the preceding device exceeds a preset threshold.

[0057] The transmitting device 30 receives data (X bytes) from the preceding device and stores it in the buffer unit 32. The preceding device is, for example, a computing device such as a computer, or a network device such as a switch or router.

[0058] The transmitting device 30 sends a transmission permission request (X bytes) to the receiving device 20 in order to transmit the data received from the preceding device to the receiving device 20. The trigger or timing for the transmitting device 30 to send the transmission permission request is not particularly limited. The transmitting device 30 may send the transmission permission request while receiving data from the preceding device or after completing data reception.

[0059] Upon receiving a transmission permission request, the receiving device 20 generates and transmits a credit to the transmitting device 30 that sent the transmission permission request, which contains information about the amount of data that the transmitting device 30 is permitted to transmit. In this embodiment, the transmitting device 30 issues a transmission permission request and transmits data in advance. That is, the transmitting device 30 transmits data in advance before the credit is allocated. Here, the timing of transmitting the advance data does not have to be after the transmission permission request has been sent. The transmitting device 30 may transmit the data to be transmitted in advance before sending the transmission permission request.

[0060] The amount of preceding data to be transmitted (X1 byte) can be an externally configured value or a value notified in advance by the receiving device 20. Furthermore, the transmitting device 30 may monitor the buffer storage amount and load of the device and reduce the amount of preceding data transmitted when traffic is high to minimize the impact on the system. Also, preceding data transmission does not necessarily have to be applied to all traffic. It may be applied only to traffic providing low-latency services, or it may be applied to any traffic or any VoQ.

[0061] Furthermore, the links used for sending advance data may include links permitted by external settings, links notified in advance by the receiving device 20, or the transmitting device 30 may monitor its transmission port and use only links with low load to send advance data.

[0062] If the transmitting device 30 is allocated credits (Y bytes), it transmits the data allocated according to those credits (X2 bytes). If the allocated credits are less than X bytes, it transmits the amount of data remaining after subtracting the previously transmitted X1 bytes (Y - X1 bytes). If the allocated credits are less than X2 bytes, it is possible that the previously transmitted data (X1 bytes) was not received. In that case, the data may be retransmitted when X bytes of credits are allocated. Also, if no credits are allocated, or if there is a link where the allocated credits are insufficient to cover the amount of data transmitted previously, the data may be retransmitted to a link to which credits have been allocated.

[0063] <Effects of the Second Embodiment> As described above, the network control device 10 of this embodiment is a network control device 10 in which the transmitting device 30 transmits data packets to the receiving device 20 based on credits allocated at the request of the receiving device 20. The transmitting device 30 is configured to start transmitting data packets prior to the allocation of credits.

[0064] In the network control device 10 of this embodiment, the transmitting device 30 starts transmitting data packets prior to credit allocation, thereby shortening the time from data reception from the preceding device to the completion of transmission, and improving the processing capacity of the network connecting computing devices in the data center.

[0065] Furthermore, compared to the first embodiment, the transmitting device 30 can send a transmission permission request to the receiving device 20 prior to receiving data from the preceding device, thus enabling an earlier start time for data transmission and shortening the time from the transmission permission request to the completion of transmission. Because the transmitting device 30 can issue a transmission permission request before the data arrives from the preceding device, the buffer accumulation time in the transmitting device 30 can be shortened, and the transmission start time can be brought earlier, thus shortening the time until credit is received.

[0066] Furthermore, even if the amount of data transmitted in advance is less than in the first embodiment, the issuance of transmission permission requests and credit allocation can be accelerated, thus shortening the time until transmission is completed and reducing the amount of data transmitted in advance. This helps to suppress data loss and improve network reliability.

[0067] Furthermore, compared to the first embodiment, since redeployment of calculation processing is permitted when setting up the communication path takes time, the time until data transmission can be started can be further reduced.

[0068] <Third Embodiment> <Network Control Device Configuration> Referring to Figures 8 and 9, the configuration of the network control device 10 according to the third embodiment of this embodiment will be described. Figure 8 is a block diagram showing the configuration of the receiving device according to the third embodiment. Figure 9 is a block diagram showing the configuration of the transmitting device according to the third embodiment.

[0069] <Configuration of the receiving device> As shown in Figure 8, the receiving device 20 includes a control unit 21 that performs transmission control with the transmitting device 30, and a buffer unit 22 and a receiving unit 23 that receive data packets input from the transmitting device 30 via the network.

[0070] The control unit 21 of the receiving device 20 includes a credit allocation unit (21-1) and an information sharing unit (21-2) for sharing credit information. Compared to the first embodiment, the configuration of the control unit of the receiving device 20 includes an additional information sharing unit (21-2) for supplying credit information.

[0071] The information sharing unit (21-2) that supplies credit information, which is provided in the control unit of the receiving device 20, discloses or shares information about the credits that the receiving device 20 will assign to the transmitting device 30, which may receive data. The transmitting device 30 issues a transmission permission request and, based on the disclosed or shared credit information (second credit), starts transmitting data in advance of the credits (first credits) sent from the receiving device 20 in response to the transmission permission request.

[0072] The receiving device 20 can also publish or share the amount of data allowed for advance transmission and the links that allow for advance transmission. In addition, credit information, the amount of data allowed for advance transmission, and the links that allow for advance transmission are updated periodically and may also be changed dynamically. Furthermore, a priority can be assigned to each VoQ, and the amount of data allowed for advance transmission and the links can be changed based on the priority. For example, it is possible to reduce the amount of data allowed for advance transmission and the number of links that allow for advance transmission for low-priority data, while increasing the amount of data allowed for advance transmission and the number of links that allow for advance transmission for high-priority data.

[0073] <Configuration of the transmitting device> As shown in Figure 9, the transmitting device 30 includes a buffer unit 32 that temporarily stores data packets from a preceding device connected to the transmitting device, a transmitting unit that transmits data packets to a subsequent device connected to the transmitting device via a network in order to transmit data to the receiving device 20, and a control unit that performs transmission control between the transmitting device and the receiving device 20.

[0074] The configuration of the control unit of the transmitting device 30 is the same as in the first embodiment. As shown in Figure 9, the control unit of the transmitting device 30 includes a scheduling unit (31-1) that sends a transmission permission request to the credit allocation unit (21-1) of the receiving device 20 and starts transmission upon receiving a credit notification (second credit) from the receiving device 20, and a transmission processing unit (31-2) that starts transmitting data packets prior to receiving a credit notification (first credit) from the receiving device 20.

[0075] In the network control device 10 of this embodiment, the difference from the first embodiment is that the control unit of the receiving device 20 has an information sharing unit (21-2) that shares credit information. Based on the credit information shared by the receiving device 20, the transmitting device 30 can send a transmission permission request to the receiving device 20 prior to receiving data from the preceding device. This makes it possible to start the data transmission earlier and shorten the time from the transmission permission request to the completion of transmission. Furthermore, compared to the first embodiment, the transmitting device 30 can send the transmission permission request earlier, thus shortening the transmission start time and the time until credit is received. In addition, compared to the first embodiment, the transmitting device 30 performs advance transmission based on the credit information made public or shared by the receiving device 20, so it is possible to control the amount of data transmitted in advance and suppress data loss or discarding in the data transmitted in advance.

[0076] <Operation of the Network Control Device> Referring to Figure 10, the operation of the network control device 10 according to the third embodiment will be described. Figure 10 is the operation sequence of the network control device according to the third embodiment. The network control device 10 of this embodiment, as a whole, performs a data transmission and reception method involving scheduling processing between the transmitting device 30 and the receiving device 20.

[0077] The receiving device 20 discloses or shares information about the credits to which the receiving device 20 will be assigned to a transmitting device 30 that may receive data. The transmitting device 30 issues a transmission permission request and, based on the disclosed or shared credit information (second credits), begins transmitting data in advance.

[0078] The receiving device 20 can also publish or share the amount of data allowed for advance transmission and the links that allow for advance transmission. In addition, credit information, the amount of data allowed for advance transmission, and the links that allow for advance transmission are updated periodically and may also be changed dynamically. Furthermore, a priority can be assigned to each VoQ, and the amount of data allowed for advance transmission and the links can be changed based on the priority. For example, it is possible to reduce the amount of data allowed for advance transmission and the number of links that allow for advance transmission for low-priority data, while increasing the amount of data allowed for advance transmission and the number of links that allow for advance transmission for high-priority data.

[0079] The transmitting device 30 receives data (X bytes) from the preceding device and stores it in the buffer unit 32. The preceding device is, for example, a computing device such as a computer, or a network device such as a switch or router.

[0080] The transmitting device 30 sends a transmission permission request (X bytes) to the receiving device 20 in order to transmit the data received from the preceding device to the receiving device 20. The trigger or timing for the transmitting device 30 to send the transmission permission request is not particularly limited. The transmitting device 30 may send the transmission permission request while receiving data from the preceding device or after completing data reception.

[0081] Upon receiving a transmission permission request, the receiving device 20 generates and transmits a credit (first credit) containing information about the amount of data that the transmitting device 30 is permitted to transmit to the transmitting device 30 that sent the transmission permission request. In this embodiment, the transmitting device 30 issues a transmission permission request and transmits data in advance. That is, the transmitting device 30 transmits data in advance before the credit (first credit) is assigned. Here, the timing of transmitting the advance data does not have to be after the transmission permission request has been sent. The transmitting device 30 may transmit the data to be transmitted in advance before sending the transmission permission request.

[0082] The amount of preceding data to be transmitted (X1 byte) can be an externally configured value or a value notified in advance by the receiving device 20. Furthermore, the transmitting device 30 may monitor the buffer storage amount and load of the device and reduce the amount of preceding data transmitted when traffic is high to minimize the impact on the system. Also, preceding data transmission does not necessarily have to be applied to all traffic. It may be applied only to traffic providing low-latency services, or it may be applied to any traffic or any VoQ.

[0083] Furthermore, the links used for sending advance data may include links permitted by external settings, links notified in advance by the receiving device 20, or the transmitting device 30 may monitor its transmission port and use only links with low load to send advance data.

[0084] If the transmitting device 30 is allocated credits (Y bytes), it transmits the data allocated according to those credits (X2 bytes). If the allocated credits are less than X bytes, it transmits the amount of data remaining after subtracting the previously transmitted X1 bytes (Y - X1 bytes). If the allocated credits are less than X2 bytes, it is possible that the previously transmitted data (X1 bytes) was not received. In that case, the data may be retransmitted when X bytes of credits are allocated. Also, if no credits are allocated, or if there is a link where the allocated credits are insufficient to cover the amount of data transmitted previously, the data may be retransmitted to a link to which credits have been allocated.

[0085] <Effects of the Third Embodiment> As described above, the network control device 10 of this embodiment is a network control device 10 in which the transmitting device 30 transmits data packets to the receiving device 20 based on credits allocated at the request of the receiving device 20. The transmitting device 30 is configured to start transmitting data packets prior to the allocation of credits.

[0086] In the network control device 10 of this embodiment, the transmitting device 30 starts transmitting data packets prior to credit allocation, thereby shortening the time from data reception from the preceding device to the completion of transmission, and improving the processing capacity of the network connecting computing devices in the data center.

[0087] Furthermore, compared to the first embodiment, the control unit of the receiving device 20 includes an information sharing unit (21-2) that shares credit information, so the transmitting device 30 can send a transmission permission request to the receiving device 20 prior to receiving data from the preceding device. As a result, the transmitting device 30 can start transmission earlier, thus shortening the time from the transmission permission request to the completion of transmission. Furthermore, compared to the first embodiment, the transmitting device 30 can send the transmission permission request earlier, making it possible to start data transmission earlier and shortening the time until credit is received. In addition, compared to the first embodiment, the transmitting device 30 performs advance transmission based on credit information made public or shared by the receiving device 20, so it is possible to control the amount of data transmitted in advance and suppress data loss or discarding in the data transmitted in advance.

[0088] Furthermore, compared to the first embodiment, since redeployment of calculation processing is permitted when setting up the communication path takes time, the time until data transmission can be started can be further reduced.

[0089] <Fourth Embodiment> <Network Control Device Configuration> Referring to Figures 11-14, the configuration of the network control device 10 according to the fourth embodiment of this embodiment will be described. Figure 11 is a block diagram showing the configuration of the receiving device according to the fourth embodiment. Figure 12 is a block diagram showing the configuration of the transmitting device according to the fourth embodiment. Figure 13 is a block diagram showing an example of a management table according to the fourth embodiment. Figure 14 is a block diagram showing the configuration of the management device according to the fourth embodiment.

[0090] The network control device 10 of this embodiment consists of a receiving device 20, a transmitting device 30, and a credit management device 40. In this embodiment, credits are allocated to the transmitting device 30 via the credit management device 40.

[0091] A control link may be provided between the credit management device 40 and the receiving device 20 and transmitting device 30, separate from the link used for transmitting and receiving data of the main signal. For example, the transmitting device 30 can use the control link to query the credit management device 40 for credit information and to acquire credits. The receiving device 20 can use the control link to periodically update the credit information provided to the credit management device 40.

[0092] <Configuration of the receiving device> As shown in Figure 11, the receiving device 20 includes a control unit 21 that performs transmission control with the transmitting device 30, and a buffer unit 22 and a receiving unit 23 that receive data packets input from the transmitting device 30 via the network.

[0093] As shown in Figure 11, the control unit 21 of the receiving device 20 includes an allocation unit (21-1) that allocates credits indicating permission to transmit, and an information registration unit that registers credit information with the credit management device 40. Compared to the first embodiment, the configuration of the receiving device 20 includes an additional information registration unit that registers credit information with the credit management device 40.

[0094] The allocation unit (21-1) of the control unit of the receiving device 20, which allocates credits indicating permission to transmit, allocates the amount of data that the transmitting device 30 can transmit, i.e., credits, in response to a permission to transmit request from the transmitting device 30. In order to allocate credits, the allocation unit (21-1) refers to the amount of data stored in the buffer unit 22 of the receiving device 20 and calculates the amount of data that can be received from the transmitting device 30.

[0095] The transmitting device 30 divides the allocated credit into cells and distributes (sprays) each cell to multiple available links for transmission. In this embodiment, the allocation of credits to the transmitting device 30 is performed via the credit management device 40.

[0096] The information registration unit in the control unit of the receiving device 20, which registers credit information, can register and update information contained in the credit management table of the credit management device 40, that is, the amount of data that the receiving device 20 can receive, i.e., credit information, information about links that the transmitting device 30 can use, and information about the status of credits.

[0097] The credit management table 41 in the credit management device 40 includes the amount of data that the receiving device 20 can receive, i.e., credit information, information about links that the transmitting device 30 can use, and information about the status of the credit and link, such as whether they are available or already in use. The receiving device 20 monitors this information and notifies the management device 40 of information for registering and updating the credit management table. The transmitting device 30 can obtain the credit information from the credit management table 41.

[0098] The receiving device 20 may register the amount of data allowed to be transmitted in advance and the links that are allowed to be transmitted in advance in the credit management table 41. Furthermore, a priority can be assigned to each VoQ, and the amount of data allowed to be transmitted in advance and the links that are allowed to be transmitted in advance can be changed based on the priority. For example, for low-priority data, the amount of data allowed to be transmitted in advance and the links that are allowed to be transmitted in advance can be reduced, while for high-priority data, the amount of data allowed to be transmitted in advance and the links that are allowed to be transmitted in advance can be increased. Additionally, the credit management table 41 that can be accessed can be restricted for each receiving device 20, for each link, or for each user.

[0099] <Configuration of the transmitting device> As shown in Figure 12, the transmitting device 30 includes a buffer unit 32 that temporarily stores data packets from a preceding device connected to the device, a transmitting unit 33 that transmits data packets to a subsequent device connected to the device via a network in order to transmit data to the receiving device 20, and a control unit 31 that performs transmission control with the receiving device 20.

[0100] The control unit 31 of the transmitting device 30 includes a credit acquisition unit (31-5) that acquires credits by referring to a credit management table provided by the credit management device 40, a scheduling unit (31-1) that starts transmission based on the credits acquired from the credit management device 40, and a transmission processing unit (31-2) that starts transmitting data packets prior to acquiring credits from the credit management device 40. Compared to the first embodiment, the configuration of the control unit of the transmitting device 30 includes an additional credit acquisition unit (31-5) that acquires credits.

[0101] The scheduling unit (31-1) in the control unit of the transmitting device 30 determines the credits that the credit acquisition unit (31-5) should acquire, and starts transmitting data based on the credits acquired from the credit management device 40. When determining the credits to acquire, the scheduling unit (31-1) determines the amount of data that the transmitting device 30 wants to transmit and acquires the desired credits based on that.

[0102] The credit acquisition unit (31-5) of the control unit of the transmitting device 30 acquires credits by referring to the credit management table 41 of the management device 40. If multiple transmitting devices 30 attempt to acquire credits, there is a possibility of a conflict in credit acquisition, but in such cases, the information acquisition arbitration unit 42 of the management device 40 will mediate the dispute.

[0103] In this embodiment, an example was shown in which the receiving device 20 monitors the credit status in the credit management table and updates the credit status when the transmitting device 30 acquires a credit. However, the method of updating the credit management table is not limited to this. For example, the transmitting device 30 may refer to the credit management table to notify the receiving device 20 that it has acquired a credit, and the receiving device 20 may update the status of the credit management table in accordance with the notification from the transmitting device 30.

[0104] In this embodiment, an example was shown in which the transmitting device 30 obtains credits by referring to a credit management table, but the method of referring to the credit management table is not limited to this. For example, the amount of credits allocated according to the priority of VoQ may be controlled by limiting the credit management table that can be referred to and the upper limit of the credits that can be obtained.

[0105] If multiple transmitters 30 have conflicts in accessing the credit management table, tickets may be set up to prevent them from being unable to access the credit management table, and access to the credit management table 41 may be performed in the order of those tickets.

[0106] If the transmitting device 30 consults the credit management table 41 and finds that it cannot acquire credit, the transmitting device 30 may send a transmission permission request, as shown in the first embodiment, to acquire credit. In this case, the receiving device 20 can update the credit management table 41 to accommodate the transmission permission request and assign credit to the transmitting device 30 that sent the transmission permission request.

[0107] <Configuration of the credit management device> As shown in Figure 14, the management device 40 includes a credit management table 41 which contains information about credits that the receiving device 20 can receive, links that the transmitting device 30 can use, and information about the status of the credits; an information acquisition and arbitration unit 42 which arbitrates for the transmitting device 30 to acquire credits by referring to the credit management table; and an information update unit 43 for the receiving device 20 to update the credit management table 41.

[0108] As shown in Figure 13, the credit management table 41 provided by the management device 40 includes information on the amount of data that the receiving device 20 can receive, i.e., credits, information on links that the transmitting device 30 can use, and information on the status of the links, such as whether the credits and links are available or already in use.

[0109] In Figure 13, for example, when VoQ#1 of transmitter 30#1 transmits data to receiver 20#1, 256KB of data can be transmitted. In this case, links #1, #2, #3, and #5 are available, and their credits and link status are available, so transmitter 30#1 can acquire credits.

[0110] The credit information acquisition and arbitration unit 42 in the management device 40 arbitrates when a credit conflict occurs so that the transmitting device 30 can acquire credits by referring to the credit management table 41. The information acquisition and arbitration unit 42 arbitrates the conflict when multiple transmitting devices 30 attempt to acquire credits, as there is a possibility of a conflict in credit acquisition.

[0111] The information acquisition mediation unit 42 may control the system to prioritize the acquisition of credits for VoQs with higher priority. If the transmitting device 30 is able to acquire a credit as a result of mediating the acquisition of a credit, the status of that credit is updated in the credit management table 41.

[0112] The credit information update unit 43 of the management device 40 performs processing such as updating the status of credits and changing the amount of data allocated by credits, based on the result of the receiving device 20 referring to the status of the credit management table 41. The receiving device 20 periodically monitors the information in the credit management table 41 and can update the information to the information update unit 43 so as not to deviate from the receiving device 20's readiness state.

[0113] In this embodiment, an example was described in which the receiving device 20 monitors credit information and, triggered by an update of credit information, performs a credit update on the credit management device 40. However, the method of updating credit is not limited to this. For example, when the transmitting device 30 acquires credit, the credit management device 40 updates the credit information, and the credit management device 40 notifies the transmitting device 30 of the update.

[0114] In this embodiment, an example was shown in which the transmitting device 30 obtains credits by referring to the credit management table 41 provided by the management device 40. However, restrictions may be placed on the credit management table 41 that can be referenced. For example, the referenced management table 41 may be separated for each service or priority, or the area of ​​the referenced management table 41 may be defined.

[0115] In this embodiment, if multiple transmitting devices 30 refer to the credit management table 41 of the management device 40 and there is a conflict in acquiring credits, the management device 40 performs mediation. If multiple transmitting devices 30 refer to the credit management table 41 and there is a conflict, access to the management table 41 by one of the transmitting devices 30 may be delayed. To suppress this, the management device 40 may avoid conflicts in acquiring credits by granting tickets to the transmitting devices 30 for acquiring credits, thereby controlling the referencing of the credit management table 41.

[0116] In this embodiment, the difference from the first embodiment is that the transmitting device 30 and the receiving device 20 exchange credits via a management device 40 that manages credit information. As a result, the transmitting device 30 can acquire credits at any trigger or timing, and can acquire credits prior to receiving data from the preceding device, thus allowing the start time of data transmission to be advanced, and thus shortening the time from the transmission permission request to the completion of transmission. Furthermore, compared to the first embodiment, the transmitting device 30 can proactively acquire credits, making it possible to advance the start time of transmission. Also, compared to the first embodiment, the transmitting device 30 can execute data transmission based on credit information registered or updated in the management device 40, which has the effect of suppressing data loss or discarding in the transmitted data.

[0117] <Operation of the Network Control Device> The operation of the network control device 10 according to the fourth embodiment will be described with reference to Figure 15. Figure 15 is the operation sequence of the network control device according to the fourth embodiment. The network control device 10 of this embodiment, as a whole, performs a data transmission and reception method involving scheduling processing between the transmitting device 30, the receiving device 20, and the credit management device 40.

[0118] The receiving device 20 notifies the credit management device 40 of credit information for registering information in the credit management table 41 provided by the credit management device 40. The credit information includes credits that the receiving device 20 can receive, information about links that the transmitting device 30 can use, and information about the status of those credits. The credit management table 41 provided by the credit management device 40 includes information about the amount of data that the receiving device 20 can receive, i.e., information about credits, information about links that the transmitting device 30 can use, and information about the status of those credits and links, such as whether they are available or already in use.

[0119] The receiving device 20 can also register the amount of data allowed for advance transmission and the links allowed for advance transmission in the credit management table 41. Furthermore, it can assign a priority to each VoQ and change the amount of data and links allowed for advance transmission based on that priority. For example, it is possible to reduce the amount of data and links allowed for advance transmission for low-priority data, while increasing the amount of data and links allowed for advance transmission for high-priority data. In addition, it is possible to restrict which credit management tables 41 can be accessed for each receiving device 20, each link, or each user.

[0120] The receiving device 20 monitors the credit information registered in the credit management table 41. For example, the receiving device 20 can monitor the credit information at predetermined intervals, or it can change the monitoring interval depending on the operating status of the network system. When the system is operating at a high rate, it is necessary to update the information in the management table 41 frequently, so the monitoring interval should be shortened. On the other hand, when the system is operating at a low rate, the frequency of updating the information in the management table 41 is relatively low, so the monitoring interval should be lengthened.

[0121] If a discrepancy occurs between the credit information registered in the credit management table 41 and the credit information of the receiving device 20, the receiving device 20 notifies the credit management device 40 of the credit information necessary to update the credit management table 41, thereby updating the credit management table 41. By monitoring and updating the credit management table 41, the discrepancy between the credit management table 41 and the credit information of the receiving device 20 can be reduced.

[0122] The transmitting device 30 receives data (X bytes) from the preceding device and stores it in the buffer unit 32. The preceding device is, for example, a computing device such as a computer, or a network device such as a switch or router.

[0123] The transmitting device 30 refers to the credit information in the credit management table 41 provided by the credit management device 40 and acquires credits (X bytes). The trigger or timing for the transmitting device 30 to refer to the credit information in the credit management table 41 is not particularly limited. The transmitting device 30 may acquire credits while receiving data from the preceding device, or it may acquire credits after completing data reception.

[0124] The transmitting device 30 transmits the data (X bytes) allocated with the acquired credits when it obtains credits from the credit management device 40. If the acquired credits (Y bytes) are less than X bytes, the transmitting device 30 can obtain credits again to transmit the amount of data that has not been transmitted (X - Y bytes).

[0125] <Effects of the Fourth Embodiment> The network control device 10 of this embodiment is a network control device 10 in which the receiving device 20 registers and updates credit information with the credit management device 40, and the transmitting device 30 transmits data packets to the receiving device 20 based on the credits it acquires. The transmitting device 30 and the receiving device 20 exchange credits using the credit management device 40.

[0126] As a result, the transmitting device 30 can acquire credits at any trigger or timing, and can acquire credits prior to receiving data from the preceding device, thus allowing the start time of data transmission to be advanced, and thus shortening the time from the transmission permission request to the completion of transmission.

[0127] Furthermore, compared to the first embodiment, the transmitting device 30 can proactively acquire credits, making it possible to start the transmission earlier. Also, compared to the first embodiment, the transmitting device 30 can perform data transmission based on credit information registered or updated in the management device 40, thus reducing data loss or discarding in the transmitted data.

[0128] <Fifth Embodiment> Referring to Figure 16, the configuration of the network control device 10 according to the fifth embodiment of this embodiment will be described. Figure 16 is a system configuration diagram including the network control device according to the fifth embodiment.

[0129] The network control devices (10-1 to 10-4) in this embodiment are connected via a multi-stage network that relays network devices. The arithmetic units (50-1 to 50-8) connected under the network control devices (10-1 to 10-4) are connected via a multi-stage network that relays one or more network devices.

[0130] Network devices that make up a multi-stage network include, for example, network switches (100-1 to 100-3). In data centers, TOR (Top of Rack) switches, leaf switches, spine switches, etc., are generally used. The multi-stage network that relays network devices may also be composed of optical circuit switches.

[0131] DSF is known as an implementation for connecting a large number of computing devices using a hierarchical network. DSF is a schedule-based network fabric in which a transmitting device 30 starts transmitting data when a receiving device 20 grants permission to transmit (credit).

[0132] To configure the DSF, the network control devices (10-1 to 10-4) are equipped with functions such as VoQ (Virtual Output Queue), cell switching, and spraying / reordering.

[0133] In DSF, the entire fabric, comprised of multiple network switches, behaves like a single network element with congestion prevention mechanisms such as virtual output queues (VoQ) and credit-based scheduling.

[0134] Unlike reactive congestion notification and response, DSF can guarantee proactive congestion avoidance within the fabric, enabling the creation of a congestion-free fabric that avoids major problems such as flow collisions and link failures.

[0135] On the other hand, in a schedule-based fabric, the sender initiates data transmission only after the receiver grants permission (credit), which can affect the network's processing capacity as it takes from receiving data from the upstream device to completing the transmission.

[0136] In a multi-stage network like the one shown in Figure 16, by applying network control devices (10-1 to 10-4) as described in Embodiment 1-4, it becomes possible to reduce the time required for data transmission between the arithmetic units (50-1 to 50-8) and the network control devices (10-1 to 10-4) connected to them, thereby improving the processing capacity of the network.

[0137] <Embodiments of the present invention> <Initiating data transmission before receiving credits> The network control device 10 of the first embodiment consists of a receiving device 20 and a transmitting device 30. The receiving device 20 includes a receiving unit that receives data packets input from the transmitting device 30 via the network, and a control unit that performs transmission control between the receiving device and the receiving device 20. The transmitting device 30 includes a buffer unit that temporarily stores data packets from a preceding device connected to the receiving device, a transmitting unit that transmits data packets to a subsequent device connected to the receiving device 20 via the network in order to transmit data to the receiving device 20, and a control unit that performs transmission control between the receiving device and the receiving device 20. The control unit of the transmitting device 30 includes a scheduling unit (31-1) that transmits a transmission permission request to the credit allocation unit of the receiving device 20 and initiates transmission upon receiving a credit notification from the receiving device 20, and a transmission processing unit that initiates the transmission of data packets prior to receiving a credit notification from the receiving device 20.

[0138] The network control device 10 in the first embodiment is a network control device 10 that transmits data packets to the receiving device 20 based on credits allocated by the transmitting device 30 at the request of the receiving device 20, and the transmitting device 30 starts transmitting data packets prior to the allocation of credits. As a result, the transmitting device 30 can transmit data to the receiving device 20 prior to the allocation of credits, so the transmission start time can be made earlier and the time from the transmission permission request to the completion of transmission can be shortened.

[0139] <Detecting buffering in the preceding device and requesting credit> The network control device 10 of the second embodiment consists of a receiving device 20 and a transmitting device 30, the receiving device 20 includes a receiving unit that receives data packets input from the transmitting device 30 via the network and a control unit that performs transmission control between the receiving device and the receiving device 20, the transmitting device 30 includes a buffer unit that temporarily stores data packets from a preceding device connected to the receiving device, a transmitting unit that transmits data packets to a subsequent device connected to the receiving device 20 via the network in order to transmit data to the receiving device 20, and a control unit that performs transmission control between the receiving device and the receiving device 20, the control unit of the transmitting device 30 is The system includes a scheduling unit that sends a transmission permission request to the credit allocation unit of the receiving device 20 and initiates transmission upon receiving a credit notification from the receiving device 20, a transmission processing unit that initiates transmission of data packets prior to receiving a credit notification from the receiving device 20, an information acquisition unit in the control unit of the transmitting device 30 that monitors the preceding device of the transmitting device 30, i.e., the amount of data to be received from the preceding device, whether or not data is available, and the timing of data reception, and a request processing unit in the control unit of the transmitting device 30 that refers to the status of the preceding device acquired by the information acquisition unit and issues a transmission permission request to the receiving device 20 prior to receiving data.

[0140] According to the network control device 10 of the second embodiment, the transmitting device 30 can issue a transmission permission request to the receiving device 20 prior to receiving data from the preceding device, thereby enabling an earlier transmission start time and shortening the time from the transmission permission request to the completion of transmission. Because the transmitting device 30 can issue a transmission permission request before the arrival of data from the preceding device, the buffer accumulation time in the transmitting device 30 can be shortened, the transmission start time can be shortened, and the time until credits are received can be shortened. Furthermore, even if the amount of advance transmission is less than in the first embodiment, the issuance of the transmission permission request and the allocation of credits are faster, thus shortening the time until the completion of transmission. In addition, since the amount of data that is not credit-based advance transmission is reduced, data loss can be suppressed and network reliability can be improved. When setting up the communication path takes time, the redeployment of calculation processing is permitted, which further shortens the time until the data flow can be started.

[0141] <Request credit based on shared credit information> The network control device 10 of the third embodiment comprises a receiving device 20 and a transmitting device 30. The receiving device 20 includes a receiving unit that receives data packets input from the transmitting device 30 via the network, and a control unit that performs transmission control between the receiving device and the receiving device 20. The transmitting device 30 includes a buffer unit that temporarily stores data packets from a preceding device connected to the receiving device, a transmitting unit that transmits data packets to a subsequent device connected to the receiving device 20 via the network in order to transmit data to the receiving device 20, and a control unit that performs transmission control between the receiving device and the receiving device 20. The control unit of the transmitting device 30 includes a scheduling unit that sends a transmission permission request to a credit allocation unit (21-1) of the receiving device 20 and initiates transmission upon receiving a credit notification from the receiving device 20, a transmission processing unit that initiates the transmission of data packets prior to receiving a credit notification from the receiving device 20, and a credit information sharing function that discloses or shares information regarding the credits to which the receiving device 20 is allocated to the transmitting device 30, which may receive data.

[0142] According to the network control device 10 of the third embodiment, since the control unit of the receiving device 20 has a credit information sharing function, the transmitting device 30 can issue a transmission permission request to the receiving device 20 prior to receiving data from the preceding device, thereby allowing for an earlier transmission start time and shortening the time from the transmission permission request to the completion of transmission. Furthermore, compared to the first embodiment, the transmitting device 30 can issue a transmission permission request even earlier, allowing for an earlier transmission start time and shortening the time until credit is received. Also, compared to the first embodiment, since the receiving device 20 performs advance transmission based on publicly available or shared credit information, the effect of suppressing data loss or discarding of advance transmissions can be obtained.

[0143] <Acquiring credit information from the credit management device> The network control device 10 of the fourth embodiment consists of a receiving device 20, a transmitting device 30, and a credit management device. The receiving device 20 includes a receiving unit that receives data packets input from the transmitting device 30 via the network, and a control unit that performs transmission control between the receiving device and the receiving device 20. The transmitting device 30 includes a buffer unit that temporarily stores data packets from upstream devices connected to the receiving device, a transmitting unit that transmits data packets to downstream devices connected to the receiving device 20 via the network in order to transmit data to the receiving device 20, and a control unit that performs transmission control between the receiving device and the receiving device 20. The credit management device includes a credit management table 41 that includes information on credits that the receiving device 20 can receive, links that the transmitting device 30 can use, and information on the status of the credits, and the transmitting device 30 refers to the credit management table 41. A network control device 10 is equipped with a credit acquisition mediation function and a credit renewal function for acquiring credits, wherein the credit management device includes a credit management table 41 that includes information on the amount of data that the receiving device 20 can receive, i.e., information on credits, information on links that the transmitting device 30 can use, and information on the status of the credits and links, such as whether they are available or already in use; a credit acquisition mediation function that mediates so that the transmitting device 30 can acquire credits by referring to the credit management table 41; and a credit renewal function that allows the receiving device 20 to refer to the status of the credit management table 41 and update the status of the credits, or change information on credits, such as the amount of data to be allocated with the credits.

[0144] According to the fourth embodiment, by having the transmitting device 30 and the receiving device 20 exchange credits using a credit management device, the transmitting device 30 can acquire credits at any trigger or timing, and acquires credits prior to receiving data from the preceding device, thus allowing for an earlier start time for transmission and shortening the time from the transmission permission request to the completion of transmission.

[0145] [Expansion of Embodiments] Although this embodiment has been described above with reference to the embodiments, this embodiment is not limited to the embodiments described above. Various modifications to the configuration and details of this embodiment can be made within the scope of this embodiment, which will be understood by those skilled in the art. Furthermore, each embodiment can be implemented in any combination as long as it is not contradictory.

[0146] Some or all of the embodiments described above may also be described as follows, but are not limited to these.

[0147] (Note 1) A network control device comprising a receiving device and a transmitting device, wherein the receiving device comprises a receiving unit for receiving data transmitted from another transmitting device and an allocation unit for allocating a first credit indicating permission to transmit data in response to a request from another transmitting device, the transmitting device comprises a buffer unit for storing data transmitted from a device connected upstream of the transmitting device, a transmitting unit for transmitting the data stored in the buffer unit to a device connected downstream of the transmitting device, a scheduling unit for requesting the allocation of the first credit from another receiving device connected downstream of the transmitting device and controlling the transmission of data to the other receiving device based on the first credit allocated by the other receiving device, and a transmission processing unit for controlling the transmission of data in the transmitting unit so as to start transmitting data to the other receiving device before the first credit is allocated.

[0148] (Note 2) The network control device according to Note 1, wherein the transmitting device comprises an information acquisition unit that acquires information indicating the data buffering state from a device connected upstream of the transmitting device, and a request processing unit that requests the other receiving device to allocate the first credit before transmitting data to the other receiving device based on the information indicating the buffering state.

[0149] (Note 3) The network control device according to Note 1, wherein the receiving device includes an information sharing unit that shares information of a second credit to be assigned by the receiving device with transmitting devices that may transmit data to the receiving device, and the scheduling unit is configured to request the assignment of the first credit from the other receiving device and to start transmitting data to the other receiving device based on the information of the second credit shared by the other receiving device before the first credit is assigned.

[0150] (Note 4) The network control device described in Note 3, wherein the second credit information shared from the other receiving device includes information on the amount of data that can be received and the number of links that can be used to transmit the data, and the information on the amount of data that can be received and the number of links that can be used to transmit the data is adjusted according to the priority of the data to be transmitted.

[0151] (Note 5) A network control device comprising a receiving device, a transmitting device, and a management device for managing credit information indicating permission to transmit data, wherein the receiving device comprises a receiving unit for receiving data transmitted from other transmitting devices and an information registration unit for registering the credit information with the management device, the transmitting device comprises a buffer unit for storing data transmitted from a device connected upstream of the transmitting device, a transmitting unit for transmitting the data stored in the buffer unit to a device connected downstream of the transmitting device, an information acquisition unit for acquiring credit information for other receiving devices connected downstream of the transmitting device from the management device, and a scheduling unit for controlling the transmission of data to the other receiving devices based on the credit acquired by the information acquisition unit.

[0152] (Note 6) The network control device according to Note 5, wherein the management device comprises a management table for managing the credit information, the credit information registered in the management table includes information on the amount of data that can be received and the number of links that can be used to transmit the data, and the information registration unit is configured to change at least one of the amount of data that can be received and the number of links that can be used to transmit the data of the credit registered in the management table according to the priority of the data to be transmitted. (Note 7) The network control device according to Note 6, wherein the information registration unit monitors the credit information registered in the management table at predetermined intervals and is configured to change the predetermined interval for monitoring the credit information according to the usage status of the credit. (Note 8) The network control device according to any one of Notes 1 to 7 for performing network control in a Disaggregated Scheduled Fabric. (Note 9) A controller comprising a receiving device and a transmitting device, wherein the receiving device comprises a receiving unit for receiving data transmitted from another transmitting device and an allocation unit for allocating a first credit indicating permission to transmit data in response to a request from another transmitting device, the transmitting device comprises a buffer unit for storing data transmitted from a device connected upstream of the transmitting device, a transmitting unit for transmitting the data stored in the buffer unit to a device connected downstream of the transmitting device, a scheduling unit for requesting the allocation of the first credit from another receiving device connected downstream of the transmitting device and controlling the transmission of data to the other receiving device based on the first credit allocated by the other receiving device, and a transmission processing unit for controlling the transmission of data in the transmitting unit so as to start transmitting data to the other receiving device before the first credit is allocated.

[0153] (Note 10) The controller according to Note 9, wherein the transmitting device comprises an information acquisition unit that acquires information indicating the data buffering state from a device connected upstream of the transmitting device, and a request processing unit that requests the other receiving device to allocate the first credit before transmitting data to the other receiving device based on the information indicating the buffering state.

[0154] (Note 11) The controller according to Note 9, wherein the receiving device includes an information sharing unit that shares information of a second credit to be assigned by the receiving device with transmitting devices that may transmit data to the receiving device, and the scheduling unit is configured to request the assignment of the first credit from the other receiving device and to start transmitting data to the other receiving device based on the information of the second credit shared by the other receiving device before the first credit is assigned.

[0155] (Note 12) The controller according to Note 11, wherein the second credit information shared from the other receiving device includes information on the amount of data that can be received and the number of links that can be used to transmit the data, and the information on the amount of data that can be received and the number of links that can be used to transmit the data is adjusted according to the priority of the data to be transmitted.

[0156] (Note 13) A controller comprising a receiving device, a transmitting device, and a management device for managing credit information indicating permission to transmit data, wherein the receiving device comprises a receiving unit for receiving data transmitted from other transmitting devices and an information registration unit for registering the credit information in the management device, the transmitting device comprises a buffer unit for storing data transmitted from a device connected upstream of the transmitting device, a transmitting unit for transmitting the data stored in the buffer unit to a device connected downstream of the transmitting device, an information acquisition unit for acquiring credit information for other receiving devices connected downstream of the transmitting device from the management device, and a scheduling unit for controlling the transmission of data to the other receiving devices based on the credit acquired by the information acquisition unit.

[0157] (Note 14) The controller according to Note 13, wherein the management device comprises a management table for managing the credit information, the credit information registered in the management table includes information on the amount of data that can be received and the number of links that can be used to transmit the data, and the information registration unit is configured to change at least one of the amount of data that can be received and the number of links that can be used to transmit the data of the credit registered in the management table according to the priority of the data to be transmitted. (Note 15) The controller according to Note 14, wherein the information registration unit monitors the credit information registered in the management table at predetermined intervals and is configured to change the predetermined interval for monitoring the credit information according to the usage status of the credit. (Note 16) The controller according to any one of Notes 9 to 15 that performs network control in a Disaggregated Scheduled Fabric.

[0158] The present invention can be applied to a network control device that connects a large number of computing devices in a data center.

[0159] 10, 10-1 to 10-4... Network control device, 20, 20-1 to 20-4... Receiving device, 21... Control unit, 22... Buffer unit, 23... Receiving unit, 30, 30-1 to 30-4... Transmitting device, 31... Control unit, 32... Buffer unit, 33... Transmitting unit, 40... Management device, 41... Management table, 42... Information acquisition and arbitration unit, 43... Information update unit, 50-1 to 50-8... Calculation unit, 100-1 to 100-3... Network switch.

Claims

1. A network control device comprising a receiving device and a transmitting device, wherein the receiving device comprises a receiving unit for receiving data transmitted from another transmitting device and an allocation unit for allocating a first credit indicating permission to transmit data in response to a request from another transmitting device, the transmitting device comprises a buffer unit for storing data transmitted from a device connected upstream of the transmitting device, a transmitting unit for transmitting the data stored in the buffer unit to a device connected downstream of the transmitting device, a scheduling unit for requesting the allocation of the first credit from another receiving device connected downstream of the transmitting device and controlling the transmission of data to the other receiving device based on the first credit allocated by the other receiving device, and a transmission processing unit for controlling the transmission of data in the transmitting unit so as to start transmitting data to the other receiving device before the first credit is allocated.

2. The network control device according to claim 1, comprising: an information acquisition unit that acquires information indicating the data buffering status from a device connected upstream of the transmitting device; and a request processing unit that requests the other receiving device to allocate the first credit before transmitting data to the other receiving device based on the information indicating the buffering status.

3. The network control device according to claim 1, wherein the receiving device includes an information sharing unit that shares information of a second credit to be assigned by the receiving device with transmitting devices that may transmit data to the receiving device, and the scheduling unit is configured to request the assignment of the first credit from the other receiving device and to start transmitting data to the other receiving device based on the information of the second credit shared by the other receiving device before the first credit is assigned.

4. The network control device according to claim 3, wherein the second credit information shared from the other receiving device includes information on the amount of data that can be received and the number of links that can be used to transmit the data, and the information on the amount of data that can be received and the number of links that can be used to transmit the data is adjusted according to the priority of the data to be transmitted.

5. A network control device comprising a receiving device, a transmitting device, and a management device for managing credit information indicating permission to transmit data, wherein the receiving device comprises a receiving unit for receiving data transmitted from other transmitting devices and an information registration unit for registering the credit information with the management device, the transmitting device comprises a buffer unit for storing data transmitted from a device connected upstream of the transmitting device, a transmitting unit for transmitting the data stored in the buffer unit to a device connected downstream of the transmitting device, an information acquisition unit for acquiring credit information for other receiving devices connected downstream of the transmitting device from the management device, and a scheduling unit for controlling the transmission of data to the other receiving devices based on the credit acquired by the information acquisition unit.

6. The network control device according to claim 5, wherein the management device comprises a management table for managing the credit information, the credit information registered in the management table includes information on the amount of data that can be received and the number of links that can be used to transmit the data, and the information registration unit is configured to change at least one of the amount of data that can be received and the number of links that can be used to transmit the data of the credit registered in the management table according to the priority of the data to be transmitted.

7. The network control device according to claim 6, wherein the information registration unit is configured to monitor the credit information registered in the management table at predetermined intervals and to change the predetermined interval for monitoring the credit information according to the credit usage status.

8. A network control device according to any one of claims 1 to 7, which performs network control in a Disaggregated Scheduled Fabric.