CN113568863A - Data transmission method, routing node, many-core system and computer readable medium - Google Patents

Data transmission method, routing node, many-core system and computer readable medium Download PDF

Info

Publication number
CN113568863A
CN113568863A CN202110880755.5A CN202110880755A CN113568863A CN 113568863 A CN113568863 A CN 113568863A CN 202110880755 A CN202110880755 A CN 202110880755A CN 113568863 A CN113568863 A CN 113568863A
Authority
CN
China
Prior art keywords
routing node
port
data
transmitted
offset address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110880755.5A
Other languages
Chinese (zh)
Inventor
吴臻志
金罗军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Lynxi Technology Co Ltd
Original Assignee
Beijing Lynxi Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Lynxi Technology Co Ltd filed Critical Beijing Lynxi Technology Co Ltd
Priority to CN202110880755.5A priority Critical patent/CN113568863A/en
Publication of CN113568863A publication Critical patent/CN113568863A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all

Abstract

The present disclosure provides a data transmission method, which is applied to a routing node of a many-core system, and includes: under the condition that a first port used for forwarding data to be transmitted in a current routing node is abnormal, determining a second port used for forwarding the data to be transmitted in the current routing node according to information of a target routing node carried by the data to be transmitted; forwarding the data to be transmitted through the second port; the second port is different from the port for receiving the data to be transmitted; the many-core system comprises a plurality of routing nodes, and the target routing node is one of the routing nodes. The disclosure also provides a data transmission method, a routing node, a many-core system and a computer readable medium.

Description

Data transmission method, routing node, many-core system and computer readable medium
Technical Field
The present disclosure relates to the field of computer technologies, and in particular, to a data transmission method, a many-core system, a routing node in the many-core system, and a computer-readable medium.
Background
The many-core system may be made up of at least one chip, each chip having multiple computational units, the smallest computational unit in each chip that can be independently scheduled and has full computational power being referred to as a core.
In the many-core system, a plurality of cores can work jointly, each core can respectively and independently run program instructions, the running speed of a program is accelerated by utilizing the parallel computing capability, and the multitask processing capability is provided.
In some related techniques, the routing topology in many-core systems imposes constraints on the performance and cost of many-core systems.
Disclosure of Invention
The present disclosure provides a data transmission method, a many-core system and a routing node therein, a computer readable medium.
In a first aspect, an embodiment of the present disclosure provides a data transmission method, which is applied to a routing node of a many-core system, and includes:
under the condition that a first port used for forwarding data to be transmitted in a current routing node is abnormal, determining a second port used for forwarding the data to be transmitted in the current routing node according to information of a target routing node carried by the data to be transmitted;
forwarding the data to be transmitted through the second port;
the second port is different from the port for receiving the data to be transmitted; the many-core system comprises a plurality of routing nodes, and the target routing node is one of the routing nodes.
In some embodiments, the information of the target routing node comprises a first offset address of the target routing node relative to a current routing node when forwarding the data to be transmitted through the first port; the step of determining a second port used for forwarding the data to be transmitted in the current routing node according to the information of the target routing node carried by the data to be transmitted comprises the following steps:
determining the second port according to the first offset address.
In some embodiments, the current routing node corresponds to multiple directions, the current routing node includes two ports in each direction, and the priorities in different directions are different; the first offset address includes a plurality of offset address components in one-to-one correspondence with a plurality of directions; the step of determining the second port based on the first offset address comprises:
determining a first target direction according to the offset address components and the priorities of the directions corresponding to the offset address components;
determining one of two ports of a current routing node in the first destination direction as the second port.
In some embodiments, the direction of the first port is a first direction, and the directions other than the first direction are second directions; the offset address component corresponding to the first direction is a first offset address component, and the offset address component corresponding to the second direction is a second offset address component; the step of determining a first target direction according to the respective offset address components and the priorities of the directions corresponding to the respective offset address components comprises:
when the second offset address components are all zero, determining the highest priority one of the second directions as the first target direction.
In some embodiments, the step of determining a first target direction according to the priority of each offset address component and the direction corresponding to each offset address component further comprises:
when the non-zero second offset address component exists, determining one with the highest priority in a second direction corresponding to the non-zero second offset address component as the first target direction.
In some embodiments, each direction comprises two sub-directions; the step of determining one of the two ports of the current routing node in the first target direction as the second port comprises:
and determining one corresponding to a sub-direction which makes a second offset address component corresponding to the first target direction tend to zero in two ports in the first target direction as the second port.
In some embodiments, the step of determining one of the two ports of the current routing node in the first target direction as the second port comprises:
determining a normal one of the two ports in the first target direction as the second port.
In some embodiments, before the step of forwarding the data to be transmitted through the second port, the data transmission method further includes:
and updating a first offset address carried by the data to be transmitted into a third offset address according to the second port, wherein the third offset address is an offset address of the target routing node relative to a next hop routing node, and the next hop routing node is connected with the current routing node through the second port.
In some embodiments, the information of the target routing node comprises an absolute address of the target routing node; the step of determining the second port according to the information of the target routing node carried by the data to be transmitted includes:
and determining the second port according to the absolute address of the current routing node and the absolute address of the target routing node.
In some embodiments, the routing node comprises an output buffer, and the step of forwarding the data to be transmitted through the second port comprises:
writing the data to be transmitted into the output buffer;
and arbitrating and forwarding the data to be transmitted in the output buffer according to the priority.
In some embodiments, the data transmission method further comprises:
and marking a port connected with an abnormal routing node in the current routing node as abnormal, wherein the abnormal routing node is one of the plurality of routing nodes connected with the current routing node which has a fault.
In a second aspect, an embodiment of the present disclosure provides a data transmission method, which is applied to a routing node of a many-core system, where the routing node is a routing node that receives data to be transmitted, which is forwarded according to any one of the data transmission methods described in the first aspect of the present disclosure, and the data transmission method includes:
determining a third port for forwarding the data to be transmitted according to the first port selection strategy and information of a target routing node carried by the data to be transmitted;
when the third port is the same as the port for receiving the data to be transmitted, modifying the first port selection strategy to obtain a second port selection strategy;
determining a fourth port according to the information of the target routing node and the second port selection strategy;
forwarding the data to be transmitted through the fourth port;
the many-core system comprises a plurality of routing nodes, and the target routing node is one of the routing nodes.
In some embodiments, the information of the target routing node comprises a fourth offset address of the target routing node relative to a current routing node when forwarding the data to be transmitted through the third port; the current routing node corresponds to a plurality of directions and comprises two ports in each direction; the fourth offset address includes a plurality of fourth offset address components in one-to-one correspondence with a plurality of directions; the first port selection policy comprises priorities for selecting a plurality of directions of ports; modifying the first port selection policy to obtain a second port selection policy, comprising:
and modifying the priorities of the plurality of directions to obtain the second port selection strategy.
In a third aspect, an embodiment of the present disclosure provides a routing node, including:
one or more processing units;
a storage unit, on which one or more programs are stored, which, when executed by the one or more processing units, cause the one or more processing units to implement any one of the data transmission methods described in the first aspect of the embodiments of the present disclosure and/or any one of the data transmission methods described in the second aspect of the embodiments of the present disclosure.
In a fourth aspect, an embodiment of the present disclosure provides a many-core system, including:
a plurality of processing cores and a network on chip;
the network on chip comprises a plurality of routing nodes according to the third aspect of the present disclosure.
In a fifth aspect, the embodiments of the present disclosure provide a computer-readable medium, on which a computer program is stored, where the program, when executed by a processor, implements any one of the data transmission methods described in the first aspect of the embodiments of the present disclosure and/or any one of the data transmission methods described in the second aspect of the embodiments of the present disclosure.
In the embodiment of the disclosure, when any one port of a routing node in a many-core system is abnormal, the routing node automatically selects an alternative port and forwards data to be transmitted through the alternative port. Compared with the related technologies in which hardware such as routing nodes or chips needs to be replaced or the routing of the many-core system needs to be remapped, the method and the device are beneficial to reducing the cost of the many-core system and improving the performance of the many-core system.
It should be understood that the statements in this section do not necessarily identify key or critical features of the embodiments of the present disclosure, nor do they limit the scope of the present disclosure. Other features of the present disclosure will become apparent from the following description.
Drawings
The accompanying drawings are included to provide a further understanding of the disclosure and are incorporated in and constitute a part of this specification, illustrate embodiments of the disclosure and together with the description serve to explain the principles of the disclosure and not to limit the disclosure. The above and other features and advantages will become more apparent to those skilled in the art by describing in detail exemplary embodiments thereof with reference to the attached drawings, in which:
FIG. 1 is a flow chart of a data transmission method in an embodiment of the present disclosure;
FIG. 2 is a flow chart of some steps in another data transmission method in accordance with an embodiment of the present disclosure;
FIG. 3 is a flow chart of some steps in another data transmission method according to the disclosed embodiment;
FIG. 4 is a schematic diagram of a routing structure in an embodiment of the present disclosure;
FIG. 5 is a schematic diagram of a data transmission in an embodiment of the present disclosure;
FIG. 6 is a schematic diagram of another data transmission in an embodiment of the present disclosure;
FIG. 7 is a schematic diagram of yet another data transmission in an embodiment of the present disclosure;
FIG. 8 is a flow chart of some steps in a method of data transmission according to yet another embodiment of the present disclosure;
FIG. 9 is a flow chart of some steps in a method of data transmission according to yet another embodiment of the present disclosure;
FIG. 10 is a flow chart of a data transmission method in an embodiment of the disclosure;
FIG. 11 is a block diagram illustrating components of a routing node according to one embodiment of the present disclosure;
FIG. 12 is a block diagram of a many-core system in accordance with an embodiment of the disclosure.
Detailed Description
To facilitate a better understanding of the technical aspects of the present disclosure, exemplary embodiments of the present disclosure are described below in conjunction with the accompanying drawings, wherein various details of the embodiments of the present disclosure are included to facilitate an understanding, and they should be considered as merely exemplary. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the present disclosure. Also, descriptions of well-known functions and constructions are omitted in the following description for clarity and conciseness.
Embodiments of the present disclosure and features of embodiments may be combined with each other without conflict.
As used herein, the term "and/or" includes any and all combinations of one or more of the associated listed items.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and/or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. The terms "connected" or "coupled" and the like are not restricted to physical or mechanical connections, but may include electrical connections, whether direct or indirect.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and the present disclosure, and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
In a first aspect, referring to fig. 1, an embodiment of the present disclosure provides a data transmission method applied to a routing node of a many-core system, including:
in step S100, when a first port used for forwarding data to be transmitted in a current routing node is abnormal, determining a second port used for forwarding the data to be transmitted in the current routing node according to information of a target routing node carried by the data to be transmitted;
in step S200, forwarding the data to be transmitted through the second port;
the second port is different from the port for receiving the data to be transmitted; the many-core system comprises a plurality of routing nodes, and the target routing node is one of the routing nodes.
In some embodiments, the first port is a port corresponding to a default routing path from the current routing node to the target routing node, that is, a default port for forwarding data to be transmitted when each port of the current routing node is normal. In some embodiments, the default routing path is preconfigured in the many-core system.
In some embodiments, the second port is an alternative port to the first port, and the second port may be any one of ports of the current routing node except the first port and the port receiving the data to be transmitted. The embodiment of the present disclosure does not particularly limit how to perform step S100. In some embodiments, the second port is determined by rerouting the path in the event of an anomaly in the first port.
It should be noted that, in the embodiment of the present disclosure, the structure of the plurality of routing nodes in the many-core system is not particularly limited. For example, the many-core system includes a plurality of routing nodes, each routing node is connected to a processing core in the many-core system, each routing node includes a plurality of ports, and each routing node is connected to each other to form a 2d mesh structure or a 3d mesh structure. Fig. 4 is a schematic diagram of a 2d mesh structure, and in fig. 4, any pair of adjacent routing nodes from routing nodes F1 to F9 are connected through a bidirectional port, where the bidirectional port means that any one segment port in the routing nodes can be used for both receiving and transmitting.
In the embodiment of the present disclosure, the cause of the first port abnormality is not particularly limited. For example, the first port anomaly is due to routing node damage or path damage between routing nodes.
It should be further noted that, in the embodiment of the present disclosure, the data to be transmitted may be received through any one port of the current routing node, the target routing node may be any one routing node in the many-core system, and correspondingly, the first port may also be any one port of the current routing node; the target routing node may or may not be adjacent to the current routing node. The embodiment of the present disclosure is not particularly limited in this regard.
In the data transmission method provided by the embodiment of the disclosure, when any one port of a routing node in a many-core system is abnormal, the routing node automatically selects an alternative port and forwards data to be transmitted through the alternative port. Compared with the related technologies in which hardware such as routing nodes or chips needs to be replaced or the routing of the many-core system needs to be remapped, the method and the device are beneficial to reducing the cost of the many-core system and improving the performance of the many-core system.
The embodiment of the present disclosure does not particularly limit how to perform step S100.
In some embodiments, the second port is determined according to a positional relationship among the first port, the port receiving the data to be transmitted, and other ports in the routing node. In some embodiments, when the second port is determined according to the position relationship among the first port, the port receiving the data to be transmitted, and other ports in the routing node, the abnormal port is not selected, the port receiving the data to be transmitted is not selected, and the port opposite to the abnormal port in position is not selected. Here, taking the 2d mesh structure as an example, the port located opposite to the abnormal port is a port that is 180 ° from the abnormal port.
For example, referring to fig. 4 and 5, a 2d mesh structure is taken as an example. The destination routing node is routing node E1.
In routing node a1, the offset address carried by the data to be transmitted is modified from (1,1) to (0,1) and sent to routing node B1. In routing node B1, according to the default port for transmitting the data to be transmitted, routing node B1 should modify the offset address carried by the data to be transmitted to (0,0) and send the modified offset address to routing node E1, but because the port from routing node B1 to routing node E1 is abnormal, when determining the second port in routing node B1 according to the positional relationship between the port for receiving the data to be transmitted and the port from routing node B1 to routing node E1, the port for receiving the data to be transmitted is not selected, the abnormal port from routing node B1 to routing node E1 is not selected, the port at a position 180 ° from routing node B1 to routing node E1 is also selected, and finally the port from routing node B1 to routing node C1 is determined to be the second port. In routing node B1, the offset address carried by the data to be transmitted is modified to (-1,1) and sent to routing node C1.
In the routing node C1, according to the default port for transmitting the data to be transmitted, the routing node C1 should modify the offset address carried by the data to be transmitted to (0,1) and send the modified offset address to the routing node B1. However, since the default port for sending data to be transmitted is determined in routing node C1 to be the same as the port for receiving data to be transmitted, the port selection policy in routing node C1 needs to be modified. According to the modified port selection policy, the port for receiving the data to be transmitted is not selected, and the port from routing node C1 to routing node D1 is determined as the second port. In routing node C1, the offset address carried by the data to be transmitted is modified to (-1,0) and sent to routing node D1.
In the routing node D1, according to the default port for transmitting the data to be transmitted, the offset address carried by the data to be transmitted is modified to (0,0) and is sent to the routing node E1, that is, the data to be transmitted is finally transmitted to the target routing node E1.
In the embodiment of the disclosure, the routing node in the many-core system may search for the target routing node according to the absolute address of the target routing node, or may search for the target routing node according to the relative address of the target routing node. The embodiment of the present disclosure is not particularly limited in this regard. In some embodiments, the relative address is an offset address.
In some embodiments, the second port is determined from an offset address carried by the data to be transmitted.
Accordingly, in some embodiments, the information of the target routing node comprises a first offset address of the target routing node relative to a current routing node when the data to be transmitted is forwarded through the first port; referring to fig. 2, step S100 includes:
in step S110, the second port is determined according to the first offset address.
In some embodiments, the current routing node corresponds to multiple directions, the current routing node includes two ports in each direction, and the priorities of different directions are different; the first offset address includes a plurality of offset address components in one-to-one correspondence with a plurality of directions; referring to fig. 3, step S110 includes:
in step S111, determining a first target direction according to the priority of each offset address component and the direction corresponding to each offset address component;
in step S112, one of the two ports of the current routing node in the first destination direction is determined as the second port.
Steps S111 to S112 will be described with reference to fig. 4 and 6, taking 2d mesh as an example. As shown in fig. 6, the routing nodes correspond to both the X and Y directions, with the X direction having a higher priority than the Y direction. The offset address of the target node is represented by coordinates (x, y). In fig. 6, routing node E2 is the target routing node, the data to be transmitted is transmitted to routing node E2 by routing node a2, and the offset address of routing node E2 with respect to routing node a2 is (1, 1); because the priority in the X direction is higher than the priority in the Y direction, routing node a2 transmits the data to be transmitted to routing node B2 according to the default port, where the offset address of routing node E2 with respect to routing node B2 is (0,1), and then routing node B2 should transmit the data to be transmitted to target routing node E2 at offset address (0, 0). However, the path between routing node B2 and routing node E2 is abnormal, and routing node B2 selects the second port according to the priority of the offset address component and direction in the offset address, and transmits the data to be transmitted to routing node C2, where the offset address of routing node E2 relative to routing node C2 is (-1, 1). The routing node C2 makes the priority of the Y direction higher than that of the X direction by modifying the port selection strategy, and then transmits the data to be transmitted to the routing node D2, wherein the offset address of the routing node E2 relative to the routing node D2 is (-1,0), and the routing node D2 transmits the data to be transmitted to the target routing node E2 according to the default port.
Correspondingly, in some embodiments, the direction in which the first port is located is a first direction, and the direction other than the first direction in the plurality of directions is a second direction; the offset address component corresponding to the first direction is a first offset address component, and the offset address component corresponding to the second direction is a second offset address component; the step of determining a first target direction according to the respective offset address components and the priorities of the directions corresponding to the respective offset address components comprises: when the second offset address components are all zero, determining the highest priority one of the second directions as the first target direction.
As shown in fig. 6, when the routing node B2 is a current node and the offset address component X in the routing node B2 is 0 according to the default priority in each direction, the data to be transmitted should be transmitted along the Y direction, which is the first direction, and the X direction is the second direction. In the event of a Y-direction port anomaly, in the disclosed embodiment, the X-direction is determined to be the first target direction.
In an alternative embodiment, as shown in FIG. 7, the routing nodes correspond to both the X and Y directions, with the X direction having a higher priority than the Y direction. The offset address of the target node is represented by coordinates (x, y). In fig. 7, the routing node M is the current routing node, and the routing node Q is the destination routing node. The offset address of routing node Q with respect to routing node M is (1, 1); because the priority in the X direction is higher than that in the Y direction, the routing node M should transmit data to be transmitted to the routing node N according to the default priority in each direction, where the offset address of the routing node Q with respect to the routing node N is (0, 1). Routing node N then transmits the data to be transmitted to destination routing node Q with an offset address of (0, 0). However, the path between the routing node M and the routing node N is abnormal, the routing node M transmits the data to be transmitted to the routing node P of (1,0) by selecting the second port, and the routing node P transmits the data to be transmitted to the routing node Q of (0, 0).
Accordingly, in some embodiments, the step of determining the first target direction according to the priority of each offset address component and the direction corresponding to each offset address component further comprises: when the non-zero second offset address component exists, determining one with the highest priority in a second direction corresponding to the non-zero second offset address component as the first target direction.
Accordingly, in some embodiments, the step of determining one of the two ports of the current routing node in the first target direction as the second port comprises: and determining one corresponding to a sub-direction which makes a second offset address component corresponding to the first target direction tend to zero in two ports in the first target direction as the second port.
In some embodiments, the step of determining one of the two ports of the current routing node in the first target direction as the second port comprises: determining a normal one of the two ports in the first target direction as the second port.
As shown in fig. 7, when the routing node M is a current node, and the offset address component X is 1 according to the default priority in each direction, the data to be transmitted should be transmitted along the X direction, where the X direction is the first direction, and the Y direction is the second direction. In the event of an X-direction port anomaly, in the disclosed embodiment, the Y-direction is determined as the first target direction.
In some embodiments, the offset address component y is 1 in routing node M, so the port connecting routing node P is determined to be the second port, so that the offset address component y tends to zero.
In some embodiments, after determining the first target direction, it is further determined whether a normal port exists in the two ports in the first target direction, and when a normal port exists, the normal port is determined as the second port. For example, in fig. 7, in the routing node M, the Y direction is determined as the first destination direction, and when the port connected to the routing node P is abnormal and the port connected to the routing node R is normal, the port connected to the routing node R is determined as the second port.
In some embodiments, when the current routing node receives data to be transmitted, the data to be transmitted carries an offset address of a target routing node relative to the current routing node; when the data to be transmitted is forwarded, the current routing node recalculates the offset address of the target routing node relative to the next hop routing node, and repacks the data to be transmitted so that the data to be transmitted carries the offset address of the target routing node relative to the next hop routing node. For example, as shown in fig. 6, when the routing node B2 receives data to be transmitted, the offset address of the routing node E2 carried by the data to be transmitted relative to the routing node B2 is (0,1), and when the routing node B2 forwards the data to be transmitted to the routing node C2, the offset address carried by the data to be transmitted is updated to (-1,1), that is, the offset address of the routing node E2 relative to the routing node 2C.
It should be noted that, in the embodiment of the present disclosure, when the routing node receives data to be transmitted, if the port selection policy needs to be modified, the routing node updates the offset address carried by the data to be transmitted according to the modified port selection policy. For example, as shown in fig. 6, the offset address carried by the data to be transmitted received by the routing node C2 is (-1,1), the port selection policy needs to be modified in the routing node C2 to make the offset address component in the Y direction go to zero first, and according to the modified port selection policy, the routing node C2 updates the offset address carried by the data to be transmitted to the offset address (-1,0) of the routing node E2 relative to the routing node D2. In the embodiment of the present disclosure, when a node receives data to be transmitted, if a port selection policy does not need to be modified, the routing node updates an offset address carried by the data to be transmitted according to a current port selection policy. For example, as shown in fig. 7, the offset address carried by the data to be transmitted received by the routing node P is (1,0), and according to the current port selection policy, the routing node P updates the offset address carried by the data to be transmitted to (0,0) and sends the updated offset address to the routing node Q.
Accordingly, in some embodiments, referring to fig. 8, before step S100, the data transmission method further includes:
in step S300, the first offset address carried by the data to be transmitted is updated to a third offset address according to the second port, where the third offset address is an offset address of the target routing node relative to a next-hop routing node, and the next-hop routing node is connected to the current routing node through the second port.
In some embodiments, the network on chip of the many-core system also supports absolute addresses.
Correspondingly, in some embodiments, when a first port used for forwarding data to be transmitted in a current routing node is abnormal, determining a second port used for forwarding the data to be transmitted in the current routing node according to information of a target routing node carried by the data to be transmitted includes: and determining the second port according to the absolute address of the current routing node and the absolute address of the target routing node.
As an alternative embodiment, each port of the routing node comprises an output Buffer (Buffer). Data to be transmitted by a port may be stored in an output buffer of the port and then arbitrated for forwarding according to priority.
Accordingly, in some embodiments, referring to fig. 9, step S200 comprises:
in step S210, writing the data to be transmitted into an output buffer;
in step S220, the data to be transmitted in the output buffer is forwarded according to priority arbitration.
In some embodiments, the data transmission method further comprises: and marking a port connected with an abnormal routing node in the current routing node as abnormal, wherein the abnormal routing node is one of the plurality of routing nodes connected with the current routing node which has a fault.
For example, in fig. 4, if the routing node F5 fails, all of the routing nodes F2, F4, F6, and F8 need to mark the port connected to the routing node F5 as abnormal.
In a second aspect, referring to fig. 10, an embodiment of the present disclosure provides a data transmission method, which is applied to a routing node of a many-core system, where the routing node is a routing node that receives to-be-transmitted data of any one data transmission method described in the first aspect of the present disclosure, and includes:
in step S410, determining a third port for forwarding the data to be transmitted according to the first port selection policy and information of the target routing node carried by the data to be transmitted;
in step S420, when the third port is the same as the port receiving the data to be transmitted, modifying the first port selection policy to obtain a second port selection policy;
in step S430, determining a fourth port according to the information of the target routing node and the second port selection policy;
in step S440, forwarding the data to be transmitted through the fourth port;
the many-core system comprises a plurality of routing nodes, and the target routing node is one of the routing nodes.
In some embodiments, the first port selection policy is a port selection policy currently employed in a current routing node. The first port selection policy may be a default port selection policy configured in the many-core system, or may be a modified port selection policy. The embodiment of the present disclosure is not particularly limited in this regard.
In some embodiments, the information of the target routing node comprises a fourth offset address of the target routing node relative to a current routing node when forwarding the data to be transmitted through the third port; the current routing node corresponds to a plurality of directions and comprises two ports in each direction; the fourth offset address includes a plurality of offset address components in one-to-one correspondence with a plurality of directions; the port selection policy is a priority comprising a plurality of directions for selecting a port; modifying the first port selection policy to obtain a second port selection policy, comprising: and modifying the priorities of the plurality of directions to obtain the second port selection strategy.
Step S410 to step S440 will be described with reference to fig. 6 as an example. As shown in fig. 6, the routing nodes correspond to both the X and Y directions, with the X direction having a higher priority than the Y direction. The offset address of the target node is represented by coordinates (x, y). In fig. 6, routing node C2 is the current routing node, routing node E2 is the target routing node, the data to be transmitted needs to be transmitted to routing node E2 by routing node a2, and the offset address of routing node E2 with respect to routing node a2 is (1, 1); because the X direction has priority over the Y direction, routing node A2 transfers data to routing node B2, where routing node E2 has an offset address of (0,1) relative to routing node B2, according to a first port selection policy, and then routing node B2 should transfer the data to the target routing node E2, which has an offset address of (0, 0). However, the path between routing node B2 and routing node E2 is abnormal, routing node B2 selects an alternative port according to the offset address component in the offset address and the priority of the direction, transmits data to be transmitted to routing node C2, wherein the offset address of routing node E2 relative to routing node C2 is (-1,1), routing node C2 transmits data to be transmitted to routing node D2 by modifying the first port selection policy to the second port selection policy so that the priority of the Y direction is higher than the X direction, wherein the offset address of routing node E2 relative to routing node D2 is (-1,0), and routing node D2 transmits data to target routing node E2 with the offset address of (0,0) according to the first port selection policy.
In a third aspect, referring to fig. 11, an embodiment of the present disclosure provides a routing node, including:
one or more processing units 101;
a storage unit 102, on which one or more programs are stored, when the one or more programs are executed by the one or more processing units 101, so that the one or more processing units 101 implement any data transmission method described in the first aspect of the embodiments of the present disclosure and/or any data transmission method described in the second aspect of the embodiments of the present disclosure.
In a fourth aspect, referring to fig. 12, an embodiment of the disclosure provides a many-core system, comprising:
a plurality of processing cores 201 and a network on chip 202; the plurality of processing cores 201 are all connected with the network on chip 202, and the network on chip 202 is used for interacting data among the plurality of processing cores and external data; the network on chip 202 comprises a plurality of routing nodes according to the third aspect of the present disclosure.
In a fifth aspect, the embodiments of the present disclosure provide a computer-readable medium, on which a computer program is stored, where the program, when executed by a processor, implements any one of the data transmission methods described in the first aspect of the embodiments of the present disclosure and/or any one of the data transmission methods described in the second aspect of the embodiments of the present disclosure.
It will be understood by those of ordinary skill in the art that all or some of the steps of the methods, systems, functional modules/units in the devices disclosed above may be implemented as software, firmware, hardware, and suitable combinations thereof. In a hardware implementation, the division between functional modules/units mentioned in the above description does not necessarily correspond to the division of physical components; for example, one physical component may have multiple functions, or one function or step may be performed by several physical components in cooperation. Some or all of the physical components may be implemented as software executed by a processor, such as a central processing unit, digital signal processor, or microprocessor, or as hardware, or as an integrated circuit, such as an application specific integrated circuit. Such software may be distributed on computer readable media, which may include computer storage media (or non-transitory media) and communication media (or transitory media). The term computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data, as is well known to those of ordinary skill in the art. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by a computer. In addition, communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media as known to those skilled in the art.
Example embodiments have been disclosed herein, and although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation. In some instances, features, characteristics and/or elements described in connection with a particular embodiment may be used alone or in combination with features, characteristics and/or elements described in connection with other embodiments, unless expressly stated otherwise, as would be apparent to one skilled in the art. Accordingly, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the disclosure as set forth in the appended claims.

Claims (16)

1. A data transmission method is applied to a routing node of a many-core system, and comprises the following steps:
under the condition that a first port used for forwarding data to be transmitted in a current routing node is abnormal, determining a second port used for forwarding the data to be transmitted in the current routing node according to information of a target routing node carried by the data to be transmitted;
forwarding the data to be transmitted through the second port;
the second port is different from the port for receiving the data to be transmitted; the many-core system comprises a plurality of routing nodes, and the target routing node is one of the routing nodes.
2. The data transmission method according to claim 1, wherein the information of the target routing node includes a first offset address of the target routing node with respect to a current routing node when the data to be transmitted is forwarded through the first port; the step of determining a second port used for forwarding the data to be transmitted in the current routing node according to the information of the target routing node carried by the data to be transmitted comprises the following steps:
determining the second port according to the first offset address.
3. The data transmission method according to claim 2, wherein the current routing node corresponds to a plurality of directions, the current routing node includes two ports in each direction, and priorities in different directions are different; the first offset address includes a plurality of offset address components in one-to-one correspondence with a plurality of directions; the step of determining the second port based on the first offset address comprises:
determining a first target direction according to the offset address components and the priorities of the directions corresponding to the offset address components;
determining one of two ports of a current routing node in the first destination direction as the second port.
4. The data transmission method according to claim 3, wherein the direction in which the first port is located is a first direction, and the direction other than the first direction among the plurality of directions is a second direction; the offset address component corresponding to the first direction is a first offset address component, and the offset address component corresponding to the second direction is a second offset address component; the step of determining a first target direction according to the respective offset address components and the priorities of the directions corresponding to the respective offset address components comprises:
when the second offset address components are all zero, determining the highest priority one of the second directions as the first target direction.
5. The data transmission method according to claim 4, wherein the step of determining the first target direction according to the priority of each offset address component and the direction corresponding to each offset address component further comprises:
when the non-zero second offset address component exists, determining one with the highest priority in a second direction corresponding to the non-zero second offset address component as the first target direction.
6. The data transmission method of claim 5, wherein each direction comprises two sub-directions; the step of determining one of the two ports of the current routing node in the first target direction as the second port comprises:
and determining one corresponding to a sub-direction which makes a second offset address component corresponding to the first target direction tend to zero in two ports in the first target direction as the second port.
7. The data transmission method according to any one of claims 3 to 5, wherein the step of determining one of two ports of a current routing node in the first destination direction as the second port comprises:
determining a normal one of the two ports in the first target direction as the second port.
8. The data transmission method according to any one of claims 2 to 6, wherein, before the step of forwarding the data to be transmitted through the second port, the data transmission method further comprises:
and updating a first offset address carried by the data to be transmitted into a third offset address according to the second port, wherein the third offset address is an offset address of the target routing node relative to a next hop routing node, and the next hop routing node is connected with the current routing node through the second port.
9. The data transmission method according to claim 1, wherein the information of the target routing node includes an absolute address of the target routing node; the step of determining the second port according to the information of the target routing node carried by the data to be transmitted includes:
and determining the second port according to the absolute address of the current routing node and the absolute address of the target routing node.
10. The data transmission method according to any one of claims 1 to 6 or 9, wherein the routing node comprises an output buffer; the step of forwarding the data to be transmitted through the second port comprises:
writing the data to be transmitted into the output buffer;
and arbitrating and forwarding the data to be transmitted in the output buffer according to the priority.
11. The data transmission method according to any one of claims 1 to 6 or 9, wherein the data transmission method further comprises:
and marking a port connected with an abnormal routing node in the current routing node as abnormal, wherein the abnormal routing node is one of the plurality of routing nodes connected with the current routing node which has a fault.
12. A data transmission method applied to a routing node of a many-core system, where the routing node is a routing node that receives data to be transmitted forwarded by the data transmission method according to any one of claims 1 to 11, and the data transmission method includes:
determining a third port for forwarding the data to be transmitted according to the first port selection strategy and information of a target routing node carried by the data to be transmitted;
when the third port is the same as the port for receiving the data to be transmitted, modifying the first port selection strategy to obtain a second port selection strategy;
determining a fourth port according to the information of the target routing node and the second port selection strategy;
forwarding the data to be transmitted through the fourth port;
the many-core system comprises a plurality of routing nodes, and the target routing node is one of the routing nodes.
13. The data transmission method according to claim 12, wherein the information of the target routing node includes a fourth offset address of the target routing node with respect to the current routing node when the data to be transmitted is forwarded through the third port; the current routing node corresponds to a plurality of directions and comprises two ports in each direction; the fourth offset address includes a plurality of fourth offset address components in one-to-one correspondence with a plurality of directions; the first port selection policy comprises priorities for selecting a plurality of directions of ports; modifying the first port selection policy to obtain a second port selection policy, comprising:
and modifying the priorities of the plurality of directions to obtain the second port selection strategy.
14. A routing node, comprising:
one or more processing units;
a storage unit having one or more programs stored thereon which, when executed by the one or more processing units, cause the one or more processing units to implement the data transmission method of any one of claims 1 to 11 and/or the data transmission method of claim 12 or 13.
15. A many-core system, comprising:
a plurality of processing cores and a network on chip;
the network on chip comprises a plurality of routing nodes according to claim 14.
16. A computer-readable medium, on which a computer program is stored which, when being executed by a processor, carries out the data transmission method according to any one of claims 1 to 11 and/or the data transmission method according to claim 12 or 13.
CN202110880755.5A 2021-08-02 2021-08-02 Data transmission method, routing node, many-core system and computer readable medium Pending CN113568863A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110880755.5A CN113568863A (en) 2021-08-02 2021-08-02 Data transmission method, routing node, many-core system and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110880755.5A CN113568863A (en) 2021-08-02 2021-08-02 Data transmission method, routing node, many-core system and computer readable medium

Publications (1)

Publication Number Publication Date
CN113568863A true CN113568863A (en) 2021-10-29

Family

ID=78169987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110880755.5A Pending CN113568863A (en) 2021-08-02 2021-08-02 Data transmission method, routing node, many-core system and computer readable medium

Country Status (1)

Country Link
CN (1) CN113568863A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116578522A (en) * 2023-07-13 2023-08-11 中电海康集团有限公司 Data processing method, device, equipment and storage medium based on many-core architecture

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116578522A (en) * 2023-07-13 2023-08-11 中电海康集团有限公司 Data processing method, device, equipment and storage medium based on many-core architecture
CN116578522B (en) * 2023-07-13 2023-12-01 中电海康集团有限公司 Data processing method, device, equipment and storage medium based on many-core architecture

Similar Documents

Publication Publication Date Title
EP3672168B1 (en) Link state advertisement (lsa) transmission method, device, and system
US5898826A (en) Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network
US9282031B2 (en) Network system and routing method
KR102640600B1 (en) Method for forwarding packet in hybrid network, device, and system
CN113300949B (en) Method for forwarding message, method, device and system for releasing routing information
CN112448900A (en) Data transmission method and device
CN113824638A (en) Method, equipment and system for forwarding message
US10305825B2 (en) Bus control device, relay device, and bus system
CN111382115B (en) Path creating method and device for network on chip and electronic equipment
CN113872868A (en) Notification message transmission method, device and system and storage medium
CN113568863A (en) Data transmission method, routing node, many-core system and computer readable medium
JP6191703B2 (en) Communication control system, communication control method, and communication control program
CN116915708A (en) Method for routing data packets, processor and readable storage medium
CN112187635B (en) Message forwarding method and device
CN114760165A (en) Message transmission method, device and system
CN104348737A (en) Multicast message transmission method and switches
CN116471224A (en) Communication system, method and related device
CN107181678B (en) Method and device for route convergence
CN113824633B (en) Method for releasing route in campus network and network equipment
CN110825689B (en) Electronic chip and implementation method thereof
CN108390780B (en) Method and apparatus for processing information
CN111464443A (en) Message forwarding method, device, equipment and storage medium based on service function chain
CN113079128A (en) Information plugging method and device, computing equipment and computer storage medium
US9742670B2 (en) Non-eligible distance vector protocol paths as backup paths
CN113691446B (en) Method and device for sending message

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination