Data transmission method, device and computer system
By forwarding requests to be transmitted based on preset rules in a shared node, ensuring that they are issued in sequence in order of reception, it solves the possible network blocking problem of routing networks and improves the efficiency and accuracy of data transmission.
Patent Information
- Application Number
- CN202211593090.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-12-13
- Publication Date
- 2025-04-11
- Estimated Expiration
- 2042-12-13
AI Technical Summary
Existing routing networks may experience network blockage, resulting in reduced data transmission efficiency.
In the shared node, the request to be transmitted is obtained and the request is forwarded based on the preset rules to ensure that the request to be transmitted by the initiating device group is issued in sequence in the receiving order.
By controlling the timing of the requests to be transmitted between different initiating devices within the initiating device group, the generation of network blockage is avoided and the efficiency and accuracy of data transmission is ensured.
Smart Images

Figure CN116132352B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present invention relate to the field of computer technology, and in particular to a data transmission method, device and computer system. Background Art
[0002] Modern computing systems are usually composed of multiple devices, such as CPU (central processing unit), GPU (graphics processing unit), network card, etc., and the devices communicate with each other using a routing network. The routing network includes multiple routing nodes, and each device acts as a terminal node to transmit data with the routing nodes in the routing network.
[0003] However, existing routing networks may experience network congestion. How to avoid network congestion is a technical problem that needs to be solved urgently by those skilled in the art. Summary of the invention
[0004] In view of this, an embodiment of the present invention provides a data transmission method, device and computer system to avoid network congestion.
[0005] To achieve the above objectives, the embodiments of the present invention provide the following technical solutions.
[0006] In a first aspect, an embodiment of the present invention provides a data transmission method, which is applied to a shared node, wherein the shared node is a routing node that an initiating device in an initiating device group and a responding device in a responding device group pass through when interacting, and the method includes:
[0007] Acquire a request to be transmitted, the request to be transmitted comprising initiating device information and responding device information, the initiating device information is used to indicate node information initiating the request to be transmitted, and the responding device information is used to indicate node information executing the request to be transmitted;
[0008] The request to be transmitted is forwarded based on preset rules; wherein the preset rules include: when the initiating device information indicates that the request to be transmitted is a request initiated by any initiating device in the initiating device group for initiating data transfer between devices, the request to be transmitted is issued sequentially based on the order of the received request to be transmitted initiated by the initiating device in the initiating device group for initiating data transfer between devices.
[0009] Optionally, the initiating device information and the responding device information include a device identifier;
[0010] When the initiator device information indicates that the request to be transmitted is a request for transmitting data between initiating devices initiated by any initiator device in the initiator device group, the request to be transmitted is issued in sequence based on the order of the received requests to be transmitted initiated by the initiator devices in the initiator device group for transmitting data between initiating devices, including:
[0011] When the device identifier indicates that the initiating device is a peripheral device, the requests to be transmitted are issued in sequence based on the order of the received requests to be transmitted initiated by the initiating devices in the initiating device group for data transmission between the initiating devices.
[0012] Optionally, the request to be transmitted includes a request tag;
[0013] When the initiator device information indicates that the request to be transmitted is a request for transmitting data between initiating devices initiated by any initiator device in the initiator device group, the request to be transmitted is issued in sequence based on the order of the received requests to be transmitted initiated by the initiator devices in the initiator device group for transmitting data between initiating devices, including:
[0014] When the request to be transmitted is a request initiated by a computing core, and when the request tag indicates that the request to be transmitted is a request for initiating data transfer between devices, the requests to be transmitted are issued sequentially based on the order of the received requests to be transmitted initiated by the initiating devices within the initiating device group for initiating data transfer between devices.
[0015] Optionally, the request to be transmitted further includes routing information of the request to be transmitted, and the routing information is used to indicate routing nodes passed by a routing path of the request to be transmitted.
[0016] Optionally, the routing distances from the shared node to the initiating devices in the initiating device group and / or the responding devices in the responding device group are equal.
[0017] Optionally, the initiating device group includes at least one computing core and one peripheral device; the responding device group includes at least one storage device;
[0018] Wherein, a peripheral device is configured with a corresponding shared node, and different peripheral devices have different shared nodes.
[0019] Optionally, the preset rule further includes: sending the request to be transmitted when the initiating device information indicates that the request to be transmitted is not a request initiated by any node in the initiating device group.
[0020] In a second aspect, an embodiment of the present invention further provides a data transmission device, which is applied to a shared node, wherein the shared node is a routing node that an initiating device in an initiating device group and a responding device in a responding device group pass through when interacting, and the device comprises:
[0021] A request acquisition unit, used to acquire a request to be transmitted, wherein the request to be transmitted includes initiating device information and responding device information, wherein the initiating device information is used to indicate node information that initiates the request to be transmitted, and the responding device information is used to indicate node information that executes the request to be transmitted;
[0022] A request forwarding unit, used for forwarding the request to be transmitted based on preset rules; wherein the preset rules include: when the initiating device information indicates that the request to be transmitted is a request initiated by any initiating device in the initiating device group for initiating data transfer between devices, the request to be transmitted is issued sequentially based on the order of the received requests to be transmitted initiated by the initiating devices in the initiating device group for initiating data transfer between devices.
[0023] In a third aspect, an embodiment of the present invention provides a computer system, including:
[0024] A plurality of devices, and a routing network connecting the plurality of devices, the routing network comprising a plurality of routing nodes interconnected in sequence based on a preset topology structure;
[0025] Among them, at least one routing node is a shared node, and the shared node is used to execute the data transmission method described in the embodiment of the present invention.
[0026] Optionally, it also includes: a resource configuration module, which is used to configure an initiating device group and a responding device group; wherein the initiating device group includes a device for initiating a request to be transmitted, among the hardware resources allocated for jointly performing at least one task based on a preset resource allocation rule; the responding device group includes a device for executing the request to be transmitted, among the hardware resources allocated for jointly performing at least one task based on a preset resource allocation rule.
[0027] Optionally, the resource configuration module is further used to configure a shared node; wherein the shared node is a routing node through which all routing paths for interactions between an initiating device in the initiating device group and a responding device in the responding device group pass.
[0028] Optionally, the routing distances from the shared node to the initiating devices in the initiating device group and / or the responding devices in the responding device group are equal.
[0029] Optionally, the device includes a computing core, a peripheral device and a storage device;
[0030] The initiating device group includes at least one computing core and one peripheral device; the responding device group includes at least one storage device.
[0031] Optionally, when allocating storage space for the peripheral device, the resource configuration module allocates the initiating device group and the responding device group based on the peripheral device and the storage space allocated thereto;
[0032] The initiating device group includes the peripheral devices and the computing core, and the responding device group includes storage devices corresponding to the storage space allocated to the peripheral devices.
[0033] Optionally, when allocating storage space to a peripheral device, the resource configuration module determines the corresponding shared node based on the routing path of the storage device corresponding to the peripheral device and the storage space allocated to it, and the routing path of the storage device corresponding to the computing core and the storage space allocated to the peripheral device.
[0034] Optionally, a peripheral device is configured with a corresponding shared node, and the shared nodes of different peripheral devices are different.
[0035] The data transmission method, device and computer system provided by the embodiments of the present invention, the data transmission method is applied to a shared node, the shared node is a routing node that an initiating device in an initiating device group passes through when interacting with a responding device in a responding device group, the method comprises: obtaining a request to be transmitted, the request to be transmitted comprises initiating device information and responding device information, the initiating device information is used to indicate the node information that initiates the request to be transmitted, and the responding device information is used to indicate the node information that executes the request to be transmitted; forwarding the request to be transmitted based on a preset rule; wherein the preset rule comprises: when the initiating device information indicates that the request to be transmitted is a request initiated by any initiating device in the initiating device group for initiating data transfer between devices, the requests to be transmitted are issued in sequence based on the order of the received requests to be transmitted initiated by the initiating devices in the initiating device group for initiating data transfer between devices.
[0036] It can be seen that in the embodiments of the present invention, for the scenario caused by network congestion, the pending transmission requests for data transmission between initiating devices sent by the initiating devices in the initiating device group will be sent out in sequence according to the order of reception in the shared node passed by the initiating devices in the initiating device group when interacting with the responding devices in the responding device group. This can control the timing of sending the pending transmission requests for data transmission between initiating devices between different initiating devices in the initiating device group to the same responding devices, thereby avoiding the situation where the pending transmission request for data transmission between initiating devices sent to the responding device later by an initiating device arrives at the responding device earlier than the pending transmission request for data transmission between initiating devices sent to the responding device earlier by another initiating device, thereby avoiding network congestion. BRIEF DESCRIPTION OF THE DRAWINGS
[0037] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying creative work.
[0038] Figure 1 An alternative architectural diagram for a computer system;
[0039] Figure 2 is an optional flow chart for data transmission;
[0040] Figure 3 An alternative flow chart for another data transmission;
[0041] Figure 4 An optional flow chart of data transmission provided by an embodiment of the present invention;
[0042] Figure 5 An optional architecture diagram of a computer system provided for an embodiment of the present invention;
[0043] Figure 6 An optional flow chart of a data transmission method provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0044] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0045] As described in the background art, existing bus networks may experience network congestion. The following uses an optional data transmission process as an example to analyze the cause of network congestion.
[0046] Next, combine Figure 1 A computer system and Figures 2-3 The data transmission process shown is described in detail.
[0047] refer to Figure 1 An optional architecture diagram of a computer system is shown, wherein the computer system includes multiple devices, which may be, for example, computing cores, peripheral devices, and storage devices, wherein the computing cores, peripheral devices, and storage devices may be connected to routing nodes in a routing network, and the routing nodes are connected based on the topological structure of the routing network, so that each device can transmit data based on a certain routing path (i.e., the connection route of the routing nodes).
[0048] When a computing system executes a task, it may require multiple devices to cooperate and execute the task through processes such as interaction and data transmission between devices. Taking the computing core using an external accelerator (which can be understood as a peripheral device) to process a computing task as an example, the processing flow of the computing task includes: the computing core assigns computing tasks to the accelerator, the accelerator executes the computing task, and transmits the computing result to the computing core. The transmission of the computing result to the computing core can be understood as data transmission between devices. The process of data transmission can be referred to in Figure 2 The optional flow chart of data transmission shown includes: the accelerator writes the calculation result into the storage device 1, and writes the completed flag indicating that the calculation task has been completed into the completion flag bit of the storage device 2, and the computing core polls the storage device 2 to check the completion flag bit in the storage device 2, and when confirming that the completion flag bit is the completed flag, reads the calculation result from the storage device 1.
[0049] However, in the above process, reference Figure 3 In the optional flowchart of another data transmission shown, if the routing path for writing the calculation result to the storage device 1 is too long or the delay is too long, resulting in the calculation result writing not being completed, a write request with a completion mark is issued, and when the computing core confirms that the completion mark is a completed mark, if the process of writing the calculation result to the storage device 1 is still not completed, it will cause network congestion.
[0050] To avoid network congestion, an optional solution is that for initiators that are not computing cores, the next request of the same initiator is executed after the previous request is completed, that is, the requests of the same initiator are strictly sequenced, thereby avoiding possible network congestion. It is understandable that this is a way to sacrifice transmission efficiency and seriously affect the communication performance of the network. Obviously, this method is not suitable for scenarios with high requirements for data transmission efficiency.
[0051] It should be noted that when interacting between devices, it is usually based on conventional communication protocols, such as the PCIe protocol, which complies with the producer consumer protocol and defines corresponding protocol order preservation rules based on this, such as the order preservation scheme proposed in the above-mentioned optional scheme. Obviously, in order to achieve this order preservation function, it will usually lead to a decrease in communication performance.
[0052] In the embodiment of the present invention, the inventors analyzed and believed that the requests initiated by the same initiating device can be divided into requests sent to the same responding device and requests sent to different responding devices based on the routing path. Accordingly, the requests sent to the same responding device must arrive at the responding device in sequence according to the corresponding sending order due to the same routing path, and it is not necessary to strictly maintain the order. The requests sent to different responding devices may cause network congestion only when they match with other initiating devices to complete data transmission and all need to send requests to the same responding device. Therefore, the inventors believe that the network congestion is essentially caused by the timing confusion when the requests for data transmission between different initiating devices are sent to the same responding device, that is, the request for data transmission sent to the responding device by one initiating device later arrives at the responding device earlier than the request for data transmission sent to the responding device by another initiating device earlier. At the same time, after analyzing the data transmission process, the inventor believes that in the transmission path of the initiating device and the responding device that executes the data transmission, a routing node that each transmission path must pass through can be pre-defined as a shared node. In this shared node, the receiving order corresponding to the requests that may cause network congestion must conform to the sending order of the requests. Therefore, the requests can be sent in order based on the shared node, which can ensure the accuracy of the request timing and avoid the occurrence of network congestion.
[0053] Specifically, refer to Figure 4The data transmission process shown is still taking the computing core using the peripheral accelerator for data transmission as an example. The predefined shared node is the routing node that the computing core and the accelerator need to pass through when sending requests to storage device 1 and storage device 2. Then, when the accelerator writes the calculation result to storage device 1 and writes the completed mark that marks the completion of the calculation task to storage device 2, the shared node first receives the calculation result write request, and then receives the completed mark write request. Only after the completed mark write request is completed, the computing core can know that the completion mark is the completed mark, and then issue a result read request to read the calculation result in storage device 1. Correspondingly, the shared node will receive the result read request at this time. It can be seen that in the above interaction process, the order in which the shared node receives the request must be the calculation result write request first and the result read request later. Based on this, the inventor further believes that the order-preserving sending of requests for data transmission based on the shared node can ensure the accuracy of the timing of the requests that cause network congestion, thereby avoiding the generation of network congestion.
[0054] In view of this, an embodiment of the present invention provides a data transmission method, device and computer system, wherein the data transmission method is applied to a shared node, and the shared node is a routing node that an initiating device in an initiating device group passes through when interacting with a responding device in a responding device group. The method includes: obtaining a request to be transmitted, the request to be transmitted includes initiating device information and responding device information, the initiating device information is used to indicate the node information that initiates the request to be transmitted, and the responding device information is used to indicate the node information that executes the request to be transmitted; forwarding the request to be transmitted based on preset rules; wherein the preset rules include: when the initiating device information indicates that the request to be transmitted is a request initiated by any initiating device in the initiating device group for initiating data transfer between devices, based on the order of the received requests to be transmitted initiated by the initiating devices in the initiating device group for initiating data transfer between devices, issuing the requests to be transmitted in sequence.
[0055] It can be seen that in the embodiments of the present invention, for the scenario caused by network congestion, the pending transmission requests for data transmission between initiating devices sent by the initiating devices in the initiating device group will be sent out in sequence according to the order of reception in the shared node passed by the initiating devices in the initiating device group when interacting with the responding devices in the responding device group. This can control the timing of sending the pending transmission requests for data transmission between initiating devices between different initiating devices in the initiating device group to the same responding devices, thereby avoiding the situation where the pending transmission request for data transmission between initiating devices sent to the responding device later by an initiating device arrives at the responding device earlier than the pending transmission request for data transmission between initiating devices sent to the responding device earlier by another initiating device, thereby avoiding network congestion.
[0056] The following is a detailed description of the data transmission method provided by the embodiment of the present invention.
[0057] In an alternative implementation, Figure 5 An optional architecture diagram of a computer system provided by an embodiment of the present invention is exemplarily shown, wherein the computer system includes multiple devices and a routing network connecting the multiple devices, and the routing network is composed of multiple routing nodes interconnected in sequence based on a preset topology structure.
[0058] Among them, the device can be a computing core, a peripheral device, a storage device, etc., wherein the computing core can be understood as a processor core, the processor core can be a processor, or an integrated processor group, the peripheral device is a device connected based on an IO port, the peripheral device can be an accelerator, a graphics processor, etc., the storage device is a device mounted on the routing network for storing data, and the storage device can be, for example, a memory, etc.
[0059] It can be understood that the routing nodes are nodes used to implement data transmission. The routing nodes are connected in sequence according to a preset topology structure, and data transmission on different routing paths is implemented by forwarding data between routing nodes on different routing paths.
[0060] Wherein, in an embodiment of the present invention, the device is further divided into an initiating device group and a responding device group, wherein the initiating device group may include a device for initiating a request to be transmitted from hardware resources allocated for jointly executing at least one task based on a preset resource allocation rule, and the responding device group may include a device for executing the request to be transmitted from hardware resources allocated for jointly executing at least one task based on a preset resource allocation rule. It should be noted that the jointly executing at least one task may specifically refer to a specific task, a certain type of task, or multiple types of tasks under a preset mode. At the same time, the device may be an actual physical device, or a virtual device with preset hardware resources allocated in a computer system.
[0061] Among them, the resource allocation rules can be determined based on hardware resource characteristics, such as the routing distance between hardware resources, the processing speed of hardware resources for different types of tasks, etc., or can be determined based on user instructions. The present invention does not make specific settings here.
[0062] The allocation of the initiating device group and the responding device group can be configured in real time or fixedly set, and the present invention does not make specific limitations here. It should be noted that when the initiating device group and the responding device group are configured in real time, the routing network can be further configured with a resource configuration module for configuring the initiating device group and the responding device group, and the resource configuration module can allocate hardware resources based on a preset resource allocation rule, and configure the allocated hardware resources to the corresponding initiating device group and the responding device group. It can be understood that the resource configuration module can perform the corresponding resource allocation in real time, or it can perform the corresponding resource allocation based on the preset instruction trigger. For example, for a data processing task, the corresponding hardware resources can be configured, and accordingly, the resource configuration module can configure the hardware resources for executing the data processing task to the same initiating device group or responding device group based on the type of request for sending or request response; it can also be based on the triggering of the resource configuration trigger instruction, and the hardware resources for executing the data processing task can be configured to the same initiating device group or responding device group based on the type of request for sending or request response.
[0063] In the routing network, at least one routing node is a shared node, and the shared node is a routing node through which all routing paths for interaction between an initiating device in the initiating device group and a responding device in the responding device group pass. It can be understood that there can be at least two initiating devices in the initiating device group, and at least one responding device in the responding device group. Correspondingly, there are at least two routing paths for interaction between an initiating device in the initiating device group and a responding device in the responding device group. Accordingly, the shared node is a routing node through which the at least two routing paths for interaction between an initiating device in the initiating device group and a responding device in the responding device group pass.
[0064] Among them, there are usually at least two initiating devices in the initiating device group, and when there are at least two responding devices in the responding device group, accordingly, there are at least four routing paths for the interaction between the initiating devices in the initiating device node group and the responding devices in the responding device group, and the shared node is a routing node through which the at least four routing paths for the interaction between the initiating devices in the initiating device group and the responding devices in the responding device group pass.
[0065] In a specific example, the shared node can be an intermediate node in all routing paths in which an initiating device in an initiating device group interacts with a responding device in a responding device group; the intermediate node can be understood as a node located in the middle of a routing path. In this embodiment, the shared node is an intermediate node, which is used to indicate that the routing distances from the shared node to the initiating device in the initiating device group and / or the responding device in the responding device group are equal. By setting the intermediate node as a shared node, data transmission can be performed more efficiently. It should be noted that the routing distance refers to the number of routing nodes that need to be passed through in the routing path, not the actual physical distance.
[0066] Wherein, the shared node can be a fixed setting, or can be configured by a resource configuration module. Specifically, the resource configuration module configures the shared node based on all routing paths for the interaction between the initiating device in the initiating device group and the responding device in the responding device group, wherein the configuration can be pre-configured or configured in real time. In some optional examples, if there is no cross-shared routing node in the corresponding routing path, a routing node can be configured as a shared node, and all routing paths for the interaction between the initiating device in the initiating device group and the responding device in the responding device group are configured to pass through the shared node. In addition, in some specific examples, the routing distances of the shared nodes configured by the resource configuration module to the initiating devices in the initiating device group and / or the responding devices in the responding device group are equal, so that the configured shared nodes are intermediate nodes in all routing paths for the interaction between the initiating devices in the initiating device group and the responding devices in the responding device group.
[0067] It can be understood that data transmission between initiating devices is usually data transmission between a peripheral device and a computing core based on a preset storage device. Accordingly, in an optional example, the initiating device group includes at least one computing core and one peripheral device; the responding device group includes at least one storage device.
[0068] Correspondingly, the resource configuration module configures the initiating device group and the responding device group when allocating storage space for the peripheral device. At this time, the resource configuration module allocates the initiating device group and the responding device group based on the peripheral device and the storage space allocated thereto. The initiating device group includes the peripheral device and the computing core, and the responding device group includes the storage device corresponding to the storage space allocated for the peripheral device.
[0069] Furthermore, the resource configuration module may configure the shared node when allocating storage space to the peripheral device. At this time, the resource configuration module determines the corresponding shared node based on the routing path of the storage device corresponding to the peripheral device and the storage space allocated thereto, and the routing path of the storage device corresponding to the storage space allocated to the computing core and the storage device. It is understandable that in this scenario, a peripheral device is configured with a corresponding shared node. In a further example, in order to avoid network conflicts, different peripheral devices have different shared nodes.
[0070] In an embodiment of the present invention, a routing node configured as a shared node transmits data based on preset rules. Specifically, the preset rules are that when the initiating device information indicates that the request to be transmitted is a request initiated by any initiating device in the initiating device group for initiating data transfer between devices, the request to be transmitted is issued sequentially based on the order of the received requests to be transmitted initiated by the initiating devices in the initiating device group for initiating data transfer between devices.
[0071] It can be seen that for requests for data transfer between initiating devices initiated by an initiating device in the initiating device group, the pending transmission requests can be issued based on the order in which these requests are received by the shared node, thereby achieving order-preserving transmission of the pending transmission requests within the shared node.
[0072] It can be understood that in the embodiment of the present invention, it is only necessary to perform order-preserving sending of requests within a shared node, thereby avoiding network congestion and not reducing data transmission efficiency.
[0073] It should be noted that, for requests from other routing nodes, the shared node may or may not perform the order-preserving sending for the transmission request in the same manner, and the present invention does not make any specific limitation on this.
[0074] In a further embodiment of the present invention, a data transmission method is also provided, referring to Figure 6 An optional flow chart of a data transmission method provided by an embodiment of the present invention is shown, and the data transmission method is applicable to the shared node described in the above embodiment. Figure 6 As shown, the method includes:
[0075] Step S100: obtaining a request to be transmitted, wherein the request to be transmitted includes initiating device information and responding device information, wherein the initiating device information is used to indicate node information initiating the request to be transmitted, and the responding device information is used to indicate node information executing the request to be transmitted;
[0076] Among them, the request to be transmitted may be a request to be transmitted sent by any initiating device in the routing network. It can be understood that the request to be transmitted may include initiating device information and responding device information. The initiating device information is used to indicate the node information that initiates the request to be transmitted, and the responding device information is used to indicate the node information that executes the request to be transmitted, so that the initiating device that sends the request to be transmitted can be determined based on the initiating device information, and the responding device information that executes the request to be transmitted can be determined based on the responding device information.
[0077] It can be understood that, in the peripheral device, the corresponding request in the routing network is a request for data transmission. Accordingly, the device identification D-ID can be configured for the peripheral device in the computer system, wherein different peripheral devices are configured with different device identifications. Accordingly, the initiating device information and the responding device information may include the device identification, so that the specific device type and the corresponding device can be determined based on the device identification, wherein, when the device identification of the initiating device indicates that it is a peripheral device, it can be considered that the requests to be transmitted initiated by it are all requests for data transmission, so that its shared node in the routing network can be determined based on the specific device identification.
[0078] It is further understandable that the number of requests usually issued by the computing core is far greater than that of other devices. Therefore, it is necessary to distinguish whether the request issued by the computing core is for data transfer between devices. In an embodiment of the present invention, the request to be transmitted may further include a request tag, and the request tag may mark whether the request to be transmitted is a request for initiating data transfer between devices. Therefore, when the initiating device is a computing core, it is further determined based on the request tag whether the request to be transmitted is a request for initiating data transfer between devices, so that the intermediate node can implement the order-preserving transmission of the corresponding request to be transmitted based on the preset rules.
[0079] In a further embodiment of the present invention, the request to be transmitted may also include routing information of the request to be transmitted, and the routing information may indicate the routing nodes through which the routing path of the request to be transmitted passes. Specifically, a routing code R-ID may be configured for the routing node, and a specific routing node may be determined based on the routing code R-ID. Accordingly, the routing information includes the routing path and the routing codes of each routing node on the routing path.
[0080] Step S110: forwarding the request to be transmitted based on a preset rule;
[0081] Among them, the preset rules include: when the initiating device information indicates that the request to be transmitted is a request initiated by any initiating device in the initiating device group for initiating data transfer between devices, the request to be transmitted is issued sequentially based on the order of the received request to be transmitted initiated by the initiating device in the initiating device group for initiating data transfer between devices.
[0082] It can be understood that network congestion can be avoided by sending the transmission requests for data transmission between initiating devices initiated by the initiating devices in the initiating device group in an order-preserving manner.
[0083] Among them, when the request to be transmitted includes a device identification D-ID, it indicates that the initiating device is a peripheral device, and accordingly, it is considered that the corresponding requests in the routing network are all requests for data transmission. When the device identification indicates that the peripheral device is an initiating device of an initiating device group, the requests to be transmitted are issued in sequence based on the order of the received requests to be transmitted initiated by the initiating devices in the initiating device group for data transmission between initiating devices.
[0084] Further, based on the fact that the corresponding data transfer is essentially data transfer between a peripheral device and a computing core, when the request to be transferred is a request initiated by the computing core, it is considered to be an initiator device in the initiator device group, and accordingly, it can be determined based on the request tag whether the request to be transferred is a request for initiating data transfer between devices. When the request tag indicates that the request to be transferred is a request for initiating data transfer between devices, the requests to be transferred are issued in sequence based on the order of the received requests to be transferred initiated by the initiator devices in the initiator device group for initiating data transfer between devices.
[0085] In some optional examples, the preset rule may further include sending the request to be transmitted when the initiating device information indicates that the request to be transmitted is not a request initiated by any node in the initiating device group. In other words, when the received request to be transmitted is not a request initiated by the initiating device group, the request to be transmitted may be directly sent without sending it based on the order preservation rule described by the initiating device group.
[0086] It should be noted that data transfer refers to the transfer of data from one device to another device based on a third-party device. It is understandable that some devices cannot interact directly, such as a computing core and a peripheral device, and thus a third-party device accessible to both devices, such as a storage device, is required to achieve the corresponding data transfer, and the data can be information with substantial content (such as calculation results) or a message.
[0087] In addition, in some computer systems, the number of computing cores may be one or more. In the embodiment of the present invention, different computing cores may be distinguished based on the identification of the computing cores to implement the scheme described in the embodiment of the present invention, or the scheme described in the embodiment of the present invention may be used without distinction. The present invention does not make specific limitations here.
[0088] It can be seen that in the embodiments of the present invention, for the scenario caused by network congestion, the pending transmission requests for data transmission between initiating devices sent by the initiating devices in the initiating device group will be sent out in sequence according to the order of reception in the shared node passed by the initiating devices in the initiating device group when interacting with the responding devices in the responding device group. This can control the timing of sending the pending transmission requests for data transmission between initiating devices between different initiating devices in the initiating device group to the same responding devices, thereby avoiding the situation where the pending transmission request for data transmission between initiating devices sent to the responding device later by an initiating device arrives at the responding device earlier than the pending transmission request for data transmission between initiating devices sent to the responding device earlier by another initiating device, thereby avoiding network congestion.
[0089] The above describes multiple implementation schemes provided by the embodiments of the present invention. The various optional methods introduced in the implementation schemes can be combined and cross-referenced with each other without conflict, thereby extending a variety of possible implementation schemes, which can all be considered as implementation schemes disclosed and open in the embodiments of the present invention.
[0090] Although the embodiments of the present invention are disclosed above, the present invention is not limited thereto. Any person skilled in the art can make various changes and modifications without departing from the spirit and scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the scope defined by the claims.
Claims
1. A data transmission method, characterized in that: Applied to a shared node, the shared node being a routing node through which all routing paths formed when an initiating device in an initiating device group interacts with a responding device in a responding device group pass, the number of the initiating devices being at least 2, the number of the responding devices being at least 1, the method comprising: Acquire a request to be transmitted, the request to be transmitted comprising initiating device information and responding device information, the initiating device information is used to indicate node information initiating the request to be transmitted, and the responding device information is used to indicate node information executing the request to be transmitted; The request to be transmitted is forwarded based on preset rules; wherein the preset rules include: when the initiating device information indicates that the request to be transmitted is a request initiated by any initiating device in the initiating device group for initiating data transfer between devices, the request to be transmitted is issued sequentially based on the order of the received request to be transmitted initiated by the initiating device in the initiating device group for initiating data transfer between devices.
2. The data transmission method according to claim 1, characterized in that: The initiating device information and the responding device information include device identification; When the initiator device information indicates that the request to be transmitted is a request for transmitting data between initiating devices initiated by any initiator device in the initiator device group, the request to be transmitted is issued in sequence based on the order of the received requests to be transmitted initiated by the initiator devices in the initiator device group for transmitting data between initiating devices, including: When the device identifier indicates that the initiating device is a peripheral device, the requests to be transmitted are issued in sequence based on the order of the received requests to be transmitted initiated by the initiating devices in the initiating device group for data transmission between the initiating devices.
3. The data transmission method according to claim 1 or 2, characterized in that: The request to be transmitted includes a request tag; When the initiator device information indicates that the request to be transmitted is a request for transmitting data between initiating devices initiated by any initiator device in the initiator device group, the request to be transmitted is issued in sequence based on the order of the received requests to be transmitted initiated by the initiator devices in the initiator device group for transmitting data between initiating devices, including: When the request to be transmitted is a request initiated by a computing core, and when the request tag indicates that the request to be transmitted is a request for initiating data transfer between devices, the requests to be transmitted are issued sequentially based on the order of the received requests to be transmitted initiated by the initiating devices within the initiating device group for initiating data transfer between devices.
4. The data transmission method according to claim 1, characterized in that: The request to be transmitted further includes routing information of the request to be transmitted, where the routing information is used to indicate routing nodes passed by a routing path of the request to be transmitted.
5. The data transmission method according to claim 1, characterized in that: The routing distances from the shared node to the initiating devices in the initiating device group and / or the responding devices in the responding device group are equal.
6. The data transmission method according to claim 1, characterized in that: The initiating device group includes at least one computing core and one peripheral device; the responding device group includes at least one storage device; Wherein, a peripheral device is configured with a corresponding shared node, and different peripheral devices have different shared nodes.
7. The data transmission method according to claim 1, characterized in that: The preset rule further includes: when the initiating device information indicates that the request to be transmitted is not a request initiated by any node in the initiating device group, sending the request to be transmitted.
8. A data transmission device, characterized in that: Applied to a shared node, the shared node is a routing node through which all routing paths formed when an initiating device in an initiating device group interacts with a responding device in a responding device group pass, the number of the initiating devices is at least 2, the number of the responding devices is at least 1, and the device comprises: A request acquisition unit, used to acquire a request to be transmitted, wherein the request to be transmitted includes initiating device information and responding device information, wherein the initiating device information is used to indicate node information that initiates the request to be transmitted, and the responding device information is used to indicate node information that executes the request to be transmitted; A request forwarding unit, used for forwarding the request to be transmitted based on preset rules; wherein the preset rules include: when the initiating device information indicates that the request to be transmitted is a request initiated by any initiating device in the initiating device group for initiating data transfer between devices, the request to be transmitted is issued sequentially based on the order of the received requests to be transmitted initiated by the initiating devices in the initiating device group for initiating data transfer between devices.
9. A computer system, characterized in that: include: A plurality of devices, and a routing network connecting the plurality of devices, the routing network comprising a plurality of routing nodes interconnected in sequence based on a preset topology structure; Wherein, at least one routing node is a shared node, and the shared node is used to execute the data transmission method according to any one of claims 1 to 7.
10. The computer system according to claim 9, characterized in that: Also includes: A resource configuration module, the resource configuration module is used to configure an initiating device group and a responding device group; wherein the initiating device group includes a device for initiating a request to be transmitted from hardware resources allocated based on a preset resource allocation rule for jointly executing at least one task; The responding device group includes devices for executing the request to be transmitted from hardware resources allocated for jointly executing at least one task based on a preset resource allocation rule.
11. The computer system according to claim 10, characterized in that: The resource configuration module is further used to configure a shared node; wherein the shared node is a routing node through which all routing paths for interactions between an initiating device in an initiating device group and a responding device in a responding device group pass.
12. The computer system according to claim 10, characterized in that: The routing distances from the shared node to the initiating devices in the initiating device group and / or the responding devices in the responding device group are equal.
13. The computer system according to claim 10, characterized in that: The device includes a computing core, peripheral devices and storage devices; The initiator device group includes at least one computing core and one peripheral device; The response device group includes at least one storage device.
14. The computer system according to claim 10, characterized in that: When allocating storage space for the peripheral device, the resource configuration module allocates the initiating device group and the responding device group based on the peripheral device and the storage space allocated thereto; The initiating device group includes the peripheral devices and the computing core, and the responding device group includes storage devices corresponding to the storage space allocated to the peripheral devices.
15. The computer system according to claim 11, characterized in that: When allocating storage space to a peripheral device, the resource configuration module determines the corresponding shared node based on the routing path of the peripheral device and the storage device corresponding to the allocated storage space, and the routing path of the computing core and the storage device corresponding to the allocated storage space of the peripheral device.
16. The computer system according to claim 10 or 11, characterized in that: A peripheral device is configured with a corresponding shared node, and different peripheral devices have different shared nodes.