Processing device, data transmission method and data processing system
Patent Information
- Application Number
- CN202611231725.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-08-14
- Publication Date
- 2026-09-22
AI Technical Summary
[0007]本公开实施例所提供的处理设备,包括多个端口、端口重映射模块以及拓扑网络,拓扑网络用于连接端口组,每个端口组包括多个端口中与同一目标设备通信的端口。在处理设备的第一端口发生链路故障时,第一端口将第一数据(包括第一端口缓存的数据和/或新接收的数据)发送至端口重映射模块;端口重映射模块在接收到第一数据时,确定第一端口所在的目标端口组,并从目标端口组中确定第二端口,然后通过拓扑网络将第一数据转发至第二端口,以通过第二端口将第一数据传输到目标设备,从而能够在处理设备的多个端口中的任一端口发生链路故障的情况下,通过端口重映射模块将发生链路故障的端口的数据,转发至同一端口组中的其他端口进行传输(即实现数据的换端口传输),而无需等待重建链路后的重传,使得数据能够在短时间内完成传输,有效降低了端口链路故障时的数据传输延时,提高了数据传输效率,进而降低了出现系统超时或应用层超时的概率。
Smart Images

Figure CN122802383A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of computer technology, and in particular to a processing device, a data transmission method, and a data processing system. Background Technology
[0002] In related technologies, interconnection technology is typically used to achieve ultra-high bandwidth, low latency data transmission between processing devices (such as central processing units (CPUs) and graphics processing units (GPUs). When multiple processing devices are interconnected, communication links between them may fail due to network instability, physical layer connection instability, signal quality fluctuations, electromagnetic interference, etc., leading to data transmission failure. In this case, the processing devices need to re-establish the communication link and perform data retransmission. However, this process is time-consuming and prone to errors such as system timeouts and application layer timeouts. Summary of the Invention
[0003] This disclosure provides a processing device, a data transmission method, and a data processing system.
[0004] In a first aspect, this disclosure provides a processing device comprising multiple ports, a port remapping module, and a topology network. The topology network is used to connect port groups, each port group including ports among the multiple ports that communicate with the same target device, the target device being other processing devices in a data processing system. A first port is used to: send first data to the port remapping module in the event of a link failure at the first port; wherein the first data is data cached at the first port and / or data sent by the processing device to the first port after a link failure; the first port is any one of the multiple ports; the port remapping module is used to: upon receiving the first data, determine the target port group to which the first port belongs; determine a second port from the target port group, and forward the first data to the second port through the topology network, so as to transmit the first data to the target device through the second port.
[0005] Secondly, this disclosure provides a data transmission method applied to a processing device, the processing device including multiple ports, a port remapping module, and a topology network, the topology network being used to connect port groups, each port group including ports among the multiple ports that communicate with the same target device, the target device being other processing devices in a data processing system; the method includes: sending first data to the port remapping module through a first port in the event of a link failure at the first port; wherein the first data is data cached at the first port and / or data sent by the processing device to the first port after a link failure; the first port is any one of the multiple ports; upon receiving the first data through the port remapping module, determining the target port group to which the first port belongs; and through the port remapping module, determining a second port from the target port group and forwarding the first data to the second port through the topology network, so as to transmit the first data to the target device through the second port.
[0006] Thirdly, this disclosure provides a data processing system including multiple processing devices connected via interconnection devices, wherein the processing devices are those described above.
[0007] The processing device provided in this embodiment includes multiple ports, a port remapping module, and a topology network. The topology network connects port groups, and each port group includes ports that communicate with the same target device. When a link failure occurs at a first port of the processing device, the first port sends first data (including data cached by the first port and / or newly received data) to the port remapping module. Upon receiving the first data, the port remapping module determines the target port group where the first port is located, identifies a second port from the target port group, and then forwards the first data to the second port through the topology network. This allows the first data to be transmitted to the target device through the second port. Thus, even if a link failure occurs at any of the multiple ports of the processing device, the port remapping module can forward the data from the port with the link failure to other ports in the same port group for transmission (i.e., achieve port-switching data transmission) without waiting for retransmission after link reconstruction. This enables data transmission to be completed in a short time, effectively reducing data transmission latency during port link failures, improving data transmission efficiency, and consequently reducing the probability of system timeouts or application layer timeouts.
[0008] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0009] The accompanying drawings are provided to further illustrate the present disclosure and form part of the specification. They are used together with the embodiments of the present disclosure to explain the disclosure and do not constitute a limitation thereof. The above and other features and advantages will become more apparent to those skilled in the art from the description of detailed exemplary embodiments with reference to the accompanying drawings, which are described below.
[0010] Figure 1 This is a schematic diagram of a processing device interconnection provided in an embodiment of the present disclosure.
[0011] Figure 2 This is a schematic diagram of a processing device interconnection provided in an embodiment of the present disclosure.
[0012] Figure 3 This is a block diagram of a processing device provided in an embodiment of the present disclosure.
[0013] Figure 4 This is a schematic diagram of a first port in a processing device provided in an embodiment of the present disclosure.
[0014] Figure 5 This is a schematic diagram of a processing device provided in an embodiment of the present disclosure.
[0015] Figure 6 A flowchart illustrating a data transmission method provided in an embodiment of this disclosure. Detailed Implementation
[0016] To enable those skilled in the art to better understand the technical solutions of this disclosure, exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments of this disclosure to aid understanding. These should be considered merely exemplary. Therefore, those skilled in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of this disclosure. Similarly, for clarity and conciseness, descriptions of well-known functions and structures are omitted in the following description.
[0017] Where there is no conflict, the various embodiments of this disclosure and the features thereof in the embodiments may be combined with each other.
[0018] As used herein, the term “and / or” includes any and all combinations of one or more related enumerated entries.
[0019] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit this disclosure. As used herein, the singular forms “a” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that when the terms “comprising” and / or “made of” are used in this specification, the presence of the stated feature, integral, step, operation, element, and / or component is specified, but the presence or addition of one or more other features, integrals, steps, operations, elements, components, and / or groups thereof is not excluded. Words such as “connected” or “linked” are not limited to physical or mechanical connections but can include electrical connections, whether direct or indirect.
[0020] Unless otherwise specified, all terms used herein (including technical and scientific terms) have the same meaning as commonly understood by one of ordinary skill in the art. It will also be understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant art and this disclosure, and will not be interpreted as having an idealized or overly formal meaning, unless expressly so defined herein.
[0021] As mentioned earlier, when multiple processing devices are interconnected, if a communication link failure causes data transmission failure, the processing devices need to re-establish the communication link and then retransmit the data after the communication link is successfully established. This process is time-consuming and prone to timeout errors.
[0022] To address the aforementioned technical problems, embodiments of this disclosure provide a processing device, including multiple ports, a port remapping module, and a topology network. The topology network connects port groups, each port group including ports among the multiple ports that communicate with the same target device, the target device being other processing devices in a data processing system. A first port is used to: send first data to the port remapping module in the event of a link failure at the first port; wherein the first data is data cached at the first port and / or data sent to the first port by the processing device after a link failure; the first port is any one of the multiple ports; the port remapping module is used to: upon receiving the first data, determine the target port group to which the first port belongs; determine a second port from the target port group, and forward the first data to the second port through the topology network, so as to transmit the first data to the target device through the second port.
[0023] The processing device of this disclosure includes multiple ports, a port remapping module, and a topology network. The topology network connects port groups, and each port group includes ports among the multiple ports that communicate with the same target device. When a link failure occurs at a first port of the processing device, the first port sends first data (including data cached by the first port and / or newly received data) to the port remapping module. Upon receiving the first data, the port remapping module determines the target port group where the first port is located, identifies a second port from the target port group, and then forwards the first data to the second port through the topology network. This allows the first data to be transmitted to the target device through the second port. Thus, even if a link failure occurs at any of the multiple ports of the processing device, the port remapping module can forward the data from the port with the link failure to other ports in the same port group for transmission (i.e., achieve port-switching data transmission) without waiting for retransmission after link reconstruction. This enables data transmission to be completed in a short time, effectively reducing data transmission latency during port link failures, improving data transmission efficiency, and thereby reducing the probability of system timeouts or application layer timeouts.
[0024] In some possible implementations, the processing device of this disclosure can be applied to an electronic device. The processing device can be a graphics processing unit (GPU), a general-purpose graphics processing unit (GPGPU), a central processing unit (CPU), etc., and this disclosure does not limit the specific type of processing device. The electronic device can be a terminal device or a server. The terminal device can be user equipment (UE), a mobile device, a user terminal, a personal digital assistant (PDA), a handheld device, a computing device, an in-vehicle device, a wearable device, etc., and this disclosure does not limit the specific type of terminal device.
[0025] In some possible implementations, the electronic device may include multiple processing devices. These multiple processing devices can be interconnected via a switching device to transmit data. For example, multiple processing devices can be interconnected via a switch, which enables ultra-high bandwidth, low latency data transmission between them.
[0026] Figure 1 This is a schematic diagram illustrating an interconnection of processing devices according to an embodiment of this disclosure. (Refer to...) Figure 1The four processing devices, GPU0, GPU1, GPU2, and GPU3, are interconnected via a switch. There are two physical paths between any two processing devices. For example, there is a path between processing device GPU0 and processing device GPU3. Figure 1 The two physical pathways shown are ① and ②.
[0027] Figure 2 This is a schematic diagram illustrating an interconnection of processing devices according to an embodiment of this disclosure. (Refer to...) Figure 2 The eight processing devices, GPU0, GPU1, GPU2, GPU3, GPU4, GPU5, GPU6, and GPU7, are interconnected via two switches. There are two physical paths between any two processing devices. For example, there is a physical path between processing device GPU0 and processing device GPU3. Figure 2 The two physical pathways shown are ③ and ④.
[0028] Figure 3 This is a block diagram of a processing apparatus provided according to an embodiment of the present disclosure. (Refer to...) Figure 3 The processing device 300 includes multiple ports 310, a port remapping module 320, and a topology network 330. The topology network 330 is used to connect port groups. Each port group includes multiple ports 310 that communicate with the same target device. The target device is other processing devices in the data processing system.
[0029] Each port 310 of the processing device 300 can be used to receive and / or transmit data. Multiple ports 310 are divided into at least one port group, and each port group includes at least two ports 310. Ports in each port group are used to communicate with the same target device in the data processing system. That is, there are at least two physical paths between the processing device 300 and the target device. For example, if the processing device 300 is GPU1 and the target device is GPU2, the port group for communication between GPU1 and GPU2 includes two ports, and based on these two ports, there are two physical paths between GPU1 and GPU2.
[0030] Ports 310 in each port group are connected via topology network 330. Each port group can be connected using an independent topology network 330, that is, port groups are not connected to each other; or multiple port groups can be connected using a single topology network 330, as long as data forwarding within the same port group can be achieved. This disclosure does not limit the specific connection method of the topology network 330.
[0031] In one example, the topology network 330 can be a ring network. Since multiple ports of the processing device are typically arranged in adjacent physical spaces, setting the topology network as a ring network not only provides better adaptation to the physical arrangement of the multiple ports of the processing device, but also reduces hardware overhead, thereby reducing hardware costs.
[0032] When the communication link of port 310 (hereinafter referred to as the link) is normal, the processing device 300 sends data directly through port 310 when receiving or sending data, without using the port remapping module 320 and the topology network 330.
[0033] Any one of the multiple ports 310 of the processing device 300 can be considered as the first port. A link failure can be determined to have occurred on the first port if one or more of the following occurs: data transmission failure, link training failure, or the port status is in a first state indicating a port failure. That is, a link failure on the first port includes at least one of the following: data transmission failure, link training failure, or the port status being in a first state indicating a port failure. It should be noted that the port status of the first port includes both a first state indicating a port failure and a second state indicating a port failure.
[0034] In the event of a link failure at the first port, the first port can send first data to the port remapping module 320. This first data consists of data buffered at the first port and / or data sent to the first port by the post-link failure processing device. In other words, the first data comprises two parts: one part is data that reached the first port before the link failure but was buffered and not sent by the first port; the other part is data sent to the first port by the post-link failure processing device. This is because although the first port has experienced a link failure, it does not have a fault-handling device that will still send data to the first port.
[0035] Upon receiving the first data, the port remapping module 320 first determines the target port group containing the first port from at least one port group. For example, processing device D1 includes four ports: port 0, port 1, port 2, and port 3. Processing device D1 transmits data with processing device D2 through ports 0 and 1, and with processing device D3 through ports 2 and 3. Therefore, the four ports of processing device D1 can be divided into two groups: ports 0 and 1 form the first port group, and ports 2 and 3 form the second port group. In the event of a link failure at port 0, the target port group containing port 0 is determined to be the first port group.
[0036] For example, processing device D1 includes four ports: port 0, port 1, port 2, and port 3. Processing device D1 transmits data with processing device D4 through these four ports, and also transmits data with processing device D5 through these four ports. Therefore, the four ports of processing device D1 can be grouped together, with ports 0, 1, 2, and 3 forming the first port group. In the event of a link failure at port 0, the target port group containing port 0 is determined to be the first port group.
[0037] After determining the target port group containing the first port, the port remapping module 320 can determine the second port from the target port group. The second port can be one or more. For example, in the first example above, the target port group includes ports 0 and 1, so port 1 can be determined as the second port. As another example, in the second example above, the target port group includes ports 0, 1, 2, and 3, so ports 1, 2, and 3 can all be determined as the second port, or one or two of ports 1, 2, and 3 can be selected as the second port. This disclosure does not limit the number or selection method of the second port.
[0038] After identifying the second port, the port remapping module 320 can forward the first data to the second port via the topology network 330, thereby transmitting the first data to the target device through the second port. If there is only one second port, the port remapping module 320 can forward all the first data to the second port via the topology network 330. If there are multiple second ports, the port remapping module 320 can distribute the first data to each of the second ports via the topology network 330. For example, in the first example above, if the second port is port 1, the port remapping module 320 can forward all the first data to port 1 via the topology network 330. In the second example above, if the second ports are port 1, port 2, and port 3, the port remapping module 320 can distribute the first data to each of these ports via the topology network 330. After receiving the first data, the second port can transmit the first data to the target device via the communication link between the second port and the target device, thus achieving port-switched retransmission of the first data.
[0039] For example, refer to Figure 1There are two physical channels, ① and ②, between processing devices GPU0 and GPU3, and a communication link can be established on each physical channel. GPU0 can transmit data with GPU3 through these two communication links. The ports of GPU0 include the port corresponding to physical channel ① and the port corresponding to physical channel ②, which form a port group and are interconnected via a topology network. In the event of a failure in the communication link on physical channel ①, the port corresponding to physical channel ① can send its buffered data and / or data sent by GPU0 to that port after the link failure to the port of GPU0, to the port remapping module of GPU0. Upon receiving the data sent from the port corresponding to physical channel ①, the port remapping module forwards the data to the port corresponding to physical channel ② via the topology network, so that the data can be transmitted to GPU3 through the communication link between the port corresponding to physical channel ② and GPU3.
[0040] The processing device provided in this embodiment includes multiple ports, a port remapping module, and a topology network. The topology network connects port groups, and each port group includes ports that communicate with the same target device. When a link failure occurs at a first port of the processing device, the first port sends first data (including data cached by the first port and / or newly received data) to the port remapping module. Upon receiving the first data, the port remapping module determines the target port group where the first port is located, identifies a second port from the target port group, and then forwards the first data to the second port through the topology network. This allows the first data to be transmitted to the target device through the second port. Thus, even if a link failure occurs at any of the multiple ports of the processing device, the port remapping module can forward the data from the port with the link failure to other ports in the same port group for transmission (i.e., achieve port-switching data transmission) without waiting for retransmission after link reconstruction. This enables data transmission to be completed in a short time, effectively reducing data transmission latency during port link failures, improving data transmission efficiency, and consequently reducing the probability of system timeouts or application layer timeouts.
[0041] The data transmission method according to embodiments of this disclosure will now be described in detail.
[0042] As previously mentioned, the port remapping module can be used to determine a second port from a target port group. In some possible implementations, the port remapping module is specifically used to perform any of the following: if there is only one other port in the target port group besides the first port, determine that other port as the second port; if there are multiple other ports in the target port group besides the first port, determine the port with the lowest load among the other ports as the second port; if there are multiple other ports in the target port group besides the first port, determine one or more ports randomly selected from the other ports as the second port.
[0043] When the port remapping module determines the second port from the target port group, it can first determine the other ports in the target port group besides the first port. If there is only one other port, it can be directly determined as the second port. For example, if the target port group includes two ports, port 0 and port 1, and port 0 is the first port, then port 1 is the other port, and the port remapping module can directly determine port 1 as the second port.
[0044] When there are multiple ports in the target port group other than the first port, the number of second ports can be determined first. If there is only one second port, the port with the lowest load (e.g., the amount of data to be transmitted) among the other ports can be designated as the second port. This helps reduce data transmission latency and promotes load balancing across ports. For example, if the target port group includes four ports: port 0, port 1, port 2, and port 3, with port 0 as the first port and the other ports being port 1, port 2, and port 3, and port 2 has the lowest load, then port 2 can be designated as the second port. Alternatively, if there is only one second port, a port can be randomly selected from the other ports and designated as the second port. This method improves the efficiency of determining the second port. For example, if the target port group includes four ports: port 0, port 1, port 2, and port 3, with port 0 as the first port and the other ports being port 1, port 2, and port 3, then a port can be randomly selected from port 1, port 2, and port 3 (e.g., port 3) as the second port.
[0045] When the number of second ports is greater than one, for example, if the number of second ports is two, two ports can be randomly selected from the other ports and designated as the second ports. This method can improve the processing efficiency when determining the second ports. For example, if the target port group includes four ports: port 0, port 1, port 2, and port 3, with port 0 as the first port and the other ports including port 1, port 2, and port 3, and the number of second ports is two, then two ports (e.g., port 1 and port 3) can be randomly selected from port 1, port 2, and port 3 to be designated as the second ports.
[0046] When the number of second ports is greater than one, all other ports can be designated as second ports. This method is convenient, fast, and can improve processing efficiency. For example, if the target port group includes four ports: port 0, port 1, port 2, and port 3, with port 0 as the first port and the other ports including port 1, port 2, and port 3, and there is no limit to the number of second ports, then all other ports (port 1, port 2, and port 3) can be designated as second ports.
[0047] In some possible implementations, the first port is further used to: transmit a second data to the target device in the event that the link at the first port is restored; wherein the second data is the data sent by the processing device to the first port after the link is restored.
[0048] In the event of a link failure at the first port, the processing device will initiate the reconstruction process of the communication link between the first port and the target device. If the communication link is successfully reconstructed, the processing device determines that the link at the first port has returned to normal and sends the information indicating that the link has been restored to normal to the first port. After receiving the information indicating that the link has been restored to normal, the first port can directly transmit the data sent to it by the processing device (i.e., the second data) to the target device, without forwarding the data through the second port.
[0049] In the embodiments of this disclosure, after the link at the first port is restored, the data sent by the processing device to the first port can be directly transmitted to the target device. This allows the forwarding of data to the second port to be automatically stopped after the link at the first port is restored, and data transmission can be performed through the first port, thereby improving data transmission efficiency.
[0050] In some possible implementations, if the link at the first port is restored, the return data corresponding to the first data sent via the topology network and the second port during the link failure—such as read data acknowledgment signals and write data acknowledgment signals—is still transmitted to the processing device via the topology network and the second port. In this way, the return data corresponding to the sent data can be returned along the original path, achieving a closed loop in data transmission and improving the traceability of data transmission.
[0051] In some possible implementations, the first port of the processing device may include a buffer, a first data distributor, a second data distributor, and a data selector; wherein, the first data distributor is used to receive data from the processing device and store the received data in the buffer, or send the received data to the data selector; the second data distributor is used to send the data in the buffer to the target device, or send the data in the buffer to the data selector; the data selector is used to output the received data to the port remapping module.
[0052] The first port of the processing device includes a buffer, a first data distributor, a second data distributor, and a data selector. The buffer stores data received at the first port. The first data distributor receives data from the processing device and stores it in the buffer, awaiting transmission via the second data distributor, or sends the received data to the data selector for transmission to the port remapping module for port switching. The second data distributor sends the data in the buffer to the target device, or sends the data in the buffer to the data selector for transmission to the port remapping module for port switching. The data selector receives two data streams: data from the first data distributor and data from the second data distributor. The data selector can output these two data streams to the port remapping module.
[0053] In the embodiments of this disclosure, the first port of the processing device includes a buffer, a first data distributor, a second data distributor, and a data selector, thereby enabling normal data transmission when the link is normal and port-switched data transmission when the link fails, based on the first data distributor, the second data distributor, and the data selector, thus improving the data transmission efficiency of the first port.
[0054] In some possible implementations, the first data distributor is specifically used to: send the received data to the data selector in the event of a link failure at the first port; the second data distributor is specifically used to: send the data in the buffer to the data selector in the event of a link failure at the first port; and the data selector is specifically used to: arbitrate the two received data streams and output the arbitrated selected data to the port remapping module.
[0055] When the link at the first port is normal, the first data distributor stores the received data from the processing device into a buffer, and the second data distributor reads the data from the buffer and sends the read data to the target device.
[0056] In the event of a link failure at the first port, the first data distributor sends the received data from the processing device to the data selector, and the second data distributor sends the data in its buffer to the data selector. Upon receiving the two input data streams, the data selector performs arbitration on the two streams and outputs the arbitration-selected data to the port remapping module.
[0057] In the embodiments of this disclosure, based on the first data distributor, the second data distributor, and the data selector in the port, data can be sent to a different port when the link fails, thereby improving the data transmission efficiency when the port link fails.
[0058] Figure 4 This is a schematic diagram of a first port in a processing device provided according to an embodiment of the present disclosure. (Refer to...) Figure 4 The first port includes a buffer 410, a first data distributor 420, a second data distributor 430, and a data selector 440.
[0059] When the first port receives data 400 from the processing device, it stores the received data in a buffer 410 through a first data distributor 420, and then outputs the data in the buffer 410 to the communication link of the first port through a second data distributor 430, and then sends it to the target device 450.
[0060] In the event of a link failure at the first port, the first port can send the data in the buffer 410 to the data selector 440 via the second data distributor 430 (the data transmission path is shown by the thick black arrow in the figure), and then send the data to the port remapping module 320 via the data selector 440 so that the data can be forwarded through the second port.
[0061] After a link failure occurs at the first port, the received data 400 from the processing device is no longer stored in the buffer 410 (as shown by the dashed arrow in the figure). Instead, the data is sent directly to the data selector 440 through the first data distributor 420, and then sent to the port remapping module 320 through the data selector 440 so that the data can be forwarded through the second port.
[0062] It should be noted that, Figure 4 The illustration only shows a scenario where the first port sends data. In actual applications, the first port can also receive data. Those skilled in the art can configure it according to the actual situation, and this disclosure does not impose any restrictions on it.
[0063] The data transmission process of the processing device of an embodiment of this disclosure will now be described with reference to examples.
[0064] Figure 5This is a schematic diagram of a processing device provided in an embodiment of the present disclosure.
[0065] Reference Figure 5 The processing device is a graphics processing unit (GPU), and the target device is a target GPU. The GPU transmits data to the target GPU. The GPU includes a GPU port remapping module 520, a GPU topology network 530, and four ports: port A 510, port B 511, port C 512, and port D 513. The port group information is "A, B, C, D", indicating that these four ports form a port group and are interconnected through the GPU topology network 530. When the GPU transmits data to the target GPU, the data transmission requests are evenly distributed across these four ports.
[0066] The data transmission requests in the buffer of port A 510 are R0-1, R0-2, R0-3, R0-4, and R0-5, respectively. When the communication link between port A 510 and the target GPU fails, port A 510 can send data transmission requests R0-1, R0-2, R0-3, R0-4, and R0-5 to the GPU port remapping module 520. The GPU port remapping module 520, based on the port group, designates ports B 511, C 512, and D 513 as second ports, and forwards data transmission requests R0-1, R0-2, R0-3, R0-4, and R0-5 to these second ports via the GPU topology network 530.
[0067] During forwarding, to achieve load balancing, a round-robin approach can be used, forwarding R0-1 to port B 511, R0-2 to port C 512, R0-3 to port D 513, R0-4 to port B 511, and R0-5 to port C 512. Then, data transmission requests from port A 510 are sequentially forwarded to port D 513, port B 511, port C 512, and so on.
[0068] Port B 511 arbitrates data transfer requests (R0-1, R0-4...) from the GPU topology network 530 and data transfer requests (R1-1, R1-2...) from the graphics processing device, selecting one to process. That is, the data is sent to the target GPU through the communication link between port B 511 and the target GPU. Based on this, the order in which port B 511 processes data transfer requests might be: R1-1, R0-1, R1-2, R0-4... Ports C 512 and D 513 process data transfer requests in a similar manner to port B 511, and will not be described further here.
[0069] Once the communication link between port A 510 and the target GPU is restored, port A 510 can handle data transfer requests from the graphics processor without forwarding them to the second port.
[0070] It should be noted that, Figure 5 In the example shown, there is one port group, meaning all ports are in one port group. In other examples, there might be two port groups; for example, ports A and B form one port group, and ports C and D form another. The data transmission process is the same as... Figure 5 Similarly, this will not be repeated here. This disclosure does not impose any restrictions on the number of port groups or the specific grouping method of the ports.
[0071] The processing device of this disclosure can maintain reduced-speed operation even when a port link failure occurs, without causing system timeout or hang. Furthermore, the multiple ports of the processing device are widely deployed in adjacent physical spaces, resulting in good compatibility with ring networks and lower hardware overhead. In addition, because the processing device has a low link failure rate, in a ring network, often only one port is in a faulty state, requiring data forwarding. Therefore, the bandwidth consumption problem of long-distance transmission between multiple nodes, which is prone to occur in ring networks, is also avoided.
[0072] In addition, this disclosure also provides a data transmission method and a data processing system. The corresponding technical solutions and descriptions can be found in the relevant records of the above-mentioned processing equipment, and will not be repeated here.
[0073] Figure 6 A flowchart illustrating a data transmission method provided in an embodiment of this disclosure.
[0074] Reference Figure 6 This disclosure provides a data transmission method applied to a processing device. The processing device includes multiple ports, a port remapping module, and a topology network. The topology network is used to connect port groups. Each port group includes ports among the multiple ports that communicate with the same target device. The target device is another processing device in a data processing system. The method includes steps S61, S62, and S63.
[0075] In step S61, first data is sent to the port remapping module via the first port in the event of a link failure at the first port. The first data is the data cached at the first port and / or the data sent to the first port by the processing device after a link failure; the first port is any one of the plurality of ports.
[0076] In step S62, the port remapping module determines the target port group where the first port is located upon receiving the first data.
[0077] In step S63, the second port is determined from the target port group by the port remapping module, and the first data is forwarded to the second port through the topology network so as to transmit the first data to the target device through the second port.
[0078] In some possible implementations, the method further includes: transmitting a second data to the target device via the first port, provided that the link at the first port is restored; wherein the second data is the data sent by the processing device to the first port after the link is restored.
[0079] In some possible implementations, the return data corresponding to the first data is transmitted to the processing device through the topology network and the second port.
[0080] In some possible implementations, the first port includes a buffer, a first data distributor, a second data distributor, and a data selector; wherein, the first data distributor is used to receive data from the processing device and store the received data in the buffer, or send the received data to the data selector; the second data distributor is used to send the data in the buffer to the target device, or send the data in the buffer to the data selector; the data selector is used to output the received data to the port remapping module.
[0081] In some possible implementations, forwarding the first data to the second port through the topology network includes: in the event of a link failure at the first port, sending the received data to the data selector through the first data distributor; sending the data in the buffer to the data selector through the second data distributor; and arbitrating the two received data streams through the data selector, and outputting the arbitrated selected data to the port remapping module.
[0082] In some possible implementations, determining the second port from the target port group includes any of the following:
[0083] If there is only one port other than the first port in the target port group, then the other port is identified as the second port.
[0084] If there are multiple ports in the target port group other than the first port, the port with the lowest load among the other ports shall be determined as the second port.
[0085] If there are multiple ports other than the first port in the target port group, one or more ports will be randomly selected from the other ports and determined as the second port.
[0086] In some possible implementations, a link failure at the first port includes at least one of the following: data transmission failure at the first port, link training failure at the first port, or the port state of the first port being a first state indicating a port failure.
[0087] In some possible implementations, the topology network is a ring network.
[0088] It is understood that the various method embodiments mentioned above in this disclosure can be combined with each other to form combined embodiments without violating the principle and logic. Due to space limitations, this disclosure will not elaborate further. Those skilled in the art will understand that in the above methods of specific implementation, the specific execution order of each step should be determined by its function and possible internal logic.
[0089] Embodiments of this disclosure also provide a data processing system including a plurality of processing devices connected via interconnection devices, wherein the processing devices are the processing devices described in any of the above embodiments.
[0090] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those shown in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0091] Example embodiments have been disclosed herein, and while specific terminology has been used, it is for illustrative purposes only and should be construed as such, and is not intended to be limiting. In some instances, it will be apparent to those skilled in the art that features, characteristics, and / or elements described in connection with particular embodiments may be used alone, or in combination with features, characteristics, and / or elements described in connection with other embodiments, unless otherwise expressly indicated. Therefore, those skilled in the art will understand that various changes in form and detail may be made without departing from the scope of this disclosure as set forth by the appended claims.
Claims
1. A processing device, characterized in that, It includes multiple ports, a port remapping module, and a topology network. The topology network is used to connect port groups. Each port group includes ports among the multiple ports that communicate with the same target device. The target device is other processing devices in the data processing system. The first port is used to: send first data to the port remapping module in the event of a link failure at the first port; wherein the first data is data cached at the first port and / or data sent to the first port by the processing device after a link failure; the first port is any one of the plurality of ports; The port remapping module is used to: upon receiving the first data, determine the target port group in which the first port is located; determine a second port from the target port group, and forward the first data to the second port through the topology network, so as to transmit the first data to the target device through the second port.
2. The processing apparatus according to claim 1, characterized in that, The first port is also used for: If the link at the first port is restored, the second data is transmitted to the target device; wherein the second data is the data sent by the processing device to the first port after the link is restored.
3. The processing apparatus according to claim 1, characterized in that, The returned data corresponding to the first data is transmitted to the processing device through the topology network and the second port.
4. The processing apparatus according to claim 1, characterized in that, The first port includes a buffer, a first data distributor, a second data distributor, and a data selector; The first data distributor is used to receive data from the processing device and store the received data in the buffer, or send the received data to the data selector. The second data allocator is used to send the data in the buffer to the target device, or to send the data in the buffer to the data selector; The data selector is used to output the received data to the port remapping module.
5. The processing apparatus according to claim 4, characterized in that, The first data distributor is specifically used to: send the received data to the data selector in the event of a link failure at the first port; The second data distributor is specifically used to: send the data in the buffer to the data selector in the event of a link failure at the first port; The data selector is specifically used to: arbitrate the two received data streams and output the data selected by the arbitration to the port remapping module.
6. The processing apparatus according to claim 1, characterized in that, The port remapping module is specifically used to perform any of the following: If there is only one port other than the first port in the target port group, then the other port is identified as the second port. If there are multiple ports in the target port group other than the first port, the port with the lowest load among the other ports shall be determined as the second port. If there are multiple ports other than the first port in the target port group, one or more ports will be randomly selected from the other ports and determined as the second port.
7. The processing apparatus according to claim 1, characterized in that, The first port link failure includes at least one of the following: the first port data transmission fails, the first port link training fails, and the first port state is a first state indicating a port failure.
8. The processing apparatus according to any one of claims 1-7, characterized in that, The topology network is a ring network.
9. A data transmission method, characterized in that, The invention is applied to a processing device, which includes multiple ports, a port remapping module, and a topology network. The topology network is used to connect port groups, and each port group includes ports among the multiple ports that communicate with the same target device, which is another processing device in the data processing system. The method includes: In the event of a link failure at the first port, first data is sent to the port remapping module via the first port; wherein, the first data is data cached at the first port and / or data sent to the first port by the processing device after a link failure; the first port is any one of the plurality of ports; Upon receiving the first data, the port remapping module determines the target port group to which the first port belongs. The port remapping module determines a second port from the target port group and forwards the first data to the second port through the topology network, so as to transmit the first data to the target device through the second port.
10. A data processing system, characterized in that, It includes multiple processing devices connected via interconnection devices, wherein the processing devices are the processing devices according to any one of claims 1-8.