[go: up one dir, main page]

CN113568863B - 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
CN113568863B
CN113568863B CN202110880755.5A CN202110880755A CN113568863B CN 113568863 B CN113568863 B CN 113568863B CN 202110880755 A CN202110880755 A CN 202110880755A CN 113568863 B CN113568863 B CN 113568863B
Authority
CN
China
Prior art keywords
routing node
port
data
offset address
transmitted
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.)
Active
Application number
CN202110880755.5A
Other languages
Chinese (zh)
Other versions
CN113568863A (en
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/CN113568863B/en
Publication of CN113568863A publication Critical patent/CN113568863A/en
Application granted granted Critical
Publication of CN113568863B publication Critical patent/CN113568863B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present disclosure provides a data transmission method, applied to a routing node of a many-core system, comprising: 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; wherein the second port is different from the port 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 plurality of routing nodes. The disclosure also provides a data transmission method, a routing node, a many-core system, a computer readable medium.

Description

Data transmission method, routing node, many-core system and computer readable medium
Technical Field
The disclosure relates to the field of computer technology, and in particular, to a data transmission method, a many-core system, a routing node therein, and a computer readable medium.
Background
A many-core system may be made up of at least one chip, each chip having multiple compute units, the smallest compute unit in each chip that can be independently scheduled and that has full compute power being called a core.
In many-core systems, multiple cores can work in combination, each core can independently run program instructions, the running speed of the program is increased by utilizing the parallel computing capability, and the multi-task processing capability is provided.
In some related art, routing topologies in many-core systems place 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, a routing node therein, and a computer readable medium.
In a first aspect, an embodiment of the present disclosure provides a data transmission method, applied to a routing node of a many-core system, including:
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;
Wherein the second port is different from the port 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 plurality of routing nodes.
In some embodiments, the information of the target routing node includes 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 the 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:
and 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 priorities of the different directions are different; the first offset address comprises a plurality of offset address components which are in one-to-one correspondence with a plurality of directions; the step of determining the second port according to the first offset address includes:
determining a first target direction according to each offset address component and the priority of the direction corresponding to each offset address component;
One of two ports of a current routing node in the first target direction is determined to be the second port.
In some embodiments, the direction in which the first port is located is a first direction, and a direction other than the first direction of 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 each of the offset address components and the priority of the direction corresponding to each of the offset address components includes:
when the second offset address components are all zero, the highest priority one of the second directions is determined as the first target direction.
In some embodiments, the step of determining the first target direction further comprises, according to the respective offset address component and the priority of the direction to which the respective offset address component corresponds:
when the second offset address component which is non-zero exists, the one with the highest priority in the second direction corresponding to the second offset address component which is non-zero is determined as the first target direction.
In some embodiments, each direction includes 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 enables the second offset address component corresponding to the first target direction to be zero in the 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:
A normal one of the two ports in the first target direction is determined 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:
Updating the 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 the 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 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 comprises the following steps:
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 includes an output buffer, and forwarding the data to be transmitted through the second port includes:
writing the data to be transmitted into the output buffer;
forwarding the data to be transmitted in the output buffer according to priority arbitration.
In some embodiments, the data transmission method further comprises:
and marking the port connected with the abnormal routing node in the current routing node as abnormal, wherein the abnormal routing node is one of a plurality of routing nodes connected with the current routing node, which has faults.
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 forwarded by any one of the data transmission methods according to the first aspect of the embodiment of the present disclosure, and the data transmission method includes:
Determining a third port for forwarding data to be transmitted according to a 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 includes 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 the current routing node comprises two ports in each direction; the fourth offset address comprises a plurality of fourth offset address components which are in one-to-one correspondence with a plurality of directions; the first port selection policy includes priorities for selecting a plurality of directions of ports; the step of modifying the first port selection policy to obtain a second port selection policy includes:
and modifying the priorities of the multiple 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;
And 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, embodiments of the present disclosure provide 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 the third aspect of the present disclosure.
In a fifth aspect, embodiments of the present disclosure provide a computer readable medium having stored thereon a computer program which, 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 prior art that hardware such as routing nodes or chips and the like are required to be replaced or the routing of the many-core system is required to be remapped, the cost of the many-core system is reduced, and the performance of the many-core system is improved.
It should be understood that the description in this section is not intended to identify key or critical features of the embodiments of the disclosure, nor is it intended to be used to limit the scope of the disclosure. Other features of the present disclosure will become apparent from the following specification.
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 disclosure, without limitation to the disclosure. The above and other features and advantages will become more readily apparent to those skilled in the art by describing in detail exemplary embodiments 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 of another data transmission method in an embodiment of the present disclosure;
FIG. 3 is a flow chart of some steps in yet another data transmission method in an embodiment of the present disclosure;
FIG. 4 is a schematic diagram of a routing architecture 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 yet another data transmission method in an embodiment of the present disclosure;
FIG. 9 is a flow chart of some steps in yet another data transmission method in an embodiment of the present disclosure;
FIG. 10 is a flow chart of a method of data transmission in an embodiment of the present disclosure;
FIG. 11 is a block diagram of one routing node in an embodiment of the present disclosure;
Fig. 12 is a block diagram of a many-core system in an embodiment of the present disclosure.
Detailed Description
For a better understanding of the technical solutions of the present disclosure, exemplary embodiments of the present disclosure will be described below with reference to the accompanying drawings, in which various details of the embodiments of the present disclosure are included to facilitate understanding, and they should be considered as merely exemplary. Accordingly, one 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 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 "connected," and the like, are not limited 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, 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;
in step S200, forwarding the data to be transmitted through the second port;
Wherein the second port is different from the port 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 plurality of 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 in a case that 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 the ports in the current routing node other than the first port and the port that receives data to be transmitted. The embodiment of the present disclosure is not particularly limited as to how step S100 is performed. In some embodiments, in the event of an anomaly in the first port, the second port is determined by re-selecting the routing path.
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, in fig. 4, any pair of adjacent routing nodes F1 to F9 are connected through a bidirectional port, where the bidirectional port refers to any one segment port in the routing nodes that can be used for receiving or 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 caused by 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 embodiments of the present disclosure are not particularly limited thereto.
In the data transmission method provided by the embodiment of the disclosure, when any one port of the routing node in the 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 prior art that hardware such as routing nodes or chips and the like are required to be replaced or the routing of the many-core system is required to be remapped, the cost of the many-core system is reduced, and the performance of the many-core system is improved.
The embodiment of the present disclosure is not particularly limited as to how step S100 is performed.
In some embodiments, the second port is determined from a positional relationship between the first port, the port receiving data to be transmitted, and other ports in the routing node. In some embodiments, when determining the second port according to the positional relationship between 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 positionally opposite to the abnormal port is not selected. Taking a 2d mesh structure as an example, a port opposite to an abnormal port in position refers to a port 180 ° away from the abnormal port.
For example, referring to fig. 4 and 5, a 2d mesh structure is exemplified. The target routing node is routing node E1.
In the routing node A1, the offset address carried by the data to be transmitted is modified from (1, 1) to (0, 1) and sent to the routing node B1. In the routing node B1, according to the default port for transmitting the data to be transmitted, the routing node B1 should modify the offset address carried by the data to be transmitted into (0, 0) and send the offset address to the routing node E1, but when the second port is determined in the routing node B1 according to the position relationship between the port for receiving the data to be transmitted and the port from the routing node B1 to the routing node E1, the port for receiving the data to be transmitted is not selected, the port from the routing node B1 to the routing node E1 with the exception is not selected, the port 180 degrees with the port from the routing node B1 to the routing node E1 in position is not selected, and finally the port from the routing node B1 to the routing node C1 is determined as the second port. In the routing node B1, the offset address carried by the data to be transmitted is modified to (-1, 1) and sent to the 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 it to the routing node B1. However, since the default port for transmitting data to be transmitted, which is determined in the routing node C1, is the same as the port for receiving data to be transmitted, it is necessary to modify the port selection policy in the routing node C1. According to the modified port selection policy, the port receiving the data to be transmitted will not be selected, but the port from the routing node C1 to the routing node D1 will be determined as the second port. In the routing node C1, the offset address carried by the data to be transmitted is modified to (-1, 0) and sent to the 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 into (0, 0) and 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 can search the target routing node according to the absolute address of the target routing node, and can also search the target routing node according to the relative address of the target routing node. The embodiments of the present disclosure are not particularly limited thereto. 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 includes 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; 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 including two ports in each direction, the priorities of the different directions being different; the first offset address comprises a plurality of offset address components which are in one-to-one correspondence with a plurality of directions; referring to fig. 3, step S110 includes:
in step S111, a first target direction is determined according to each offset address component and the priority of the direction corresponding to each offset address component;
In step S112, one of two ports of the current routing node in the first target direction is determined as the second port.
Steps S111 to S112 will be described with reference to fig. 4 and 6, taking a 2d mesh as an example. As shown in fig. 6, the routing nodes correspond to two directions X and Y, and the priority of the X direction is higher than that of the Y direction. The offset address of the target node is represented by coordinates (x, y). In fig. 6, a routing node E2 is a destination routing node, data to be transmitted is transmitted from the routing node A2 to the routing node E2, and the offset address of the routing node E2 with respect to the routing node A2 is (1, 1); because the priority in the X direction is higher than in the Y direction, routing node A2 transmits data to be transmitted to routing node B2 according to the default port, wherein the offset address of routing node E2 with respect to routing node B2 is (0, 1), and then routing node B2 should transmit data to be transmitted to the destination routing node E2 of offset address (0, 0). But the path between the routing node B2 and the routing node E2 is abnormal, the routing node B2 selects a second port according to the offset address component in the offset address and the priority of the direction, and transmits the data to be transmitted to the routing node C2, wherein the offset address of the routing node E2 relative to the routing node C2 is (-1, 1). The routing node C2 modifies the port selection strategy to make the priority in the Y direction higher than that in the X direction, 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.
Accordingly, in some embodiments, the direction in which the first port is located is a first direction, and a direction other than the first direction of 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 each of the offset address components and the priority of the direction corresponding to each of the offset address components includes: when the second offset address components are all zero, the highest priority one of the second directions is determined as the first target direction.
As shown in fig. 6, when the routing node B2 is the current node and the offset address component X in the routing node B2 is 0 according to the default priority of 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. When the Y-direction port is abnormal, in the embodiment of the present disclosure, the X-direction is determined as the first target direction.
In an alternative embodiment, as shown in fig. 7, the routing nodes correspond to both 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, a routing node M is a current routing node, and a routing node Q is a target routing node. The offset address of the routing node Q relative to the routing node M is (1, 1); since 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 priorities in the directions, wherein the offset address of the routing node Q with respect to the routing node N is (0, 1). The routing node N then transmits the data to be transmitted to the destination routing node Q with offset address (0, 0). But 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 further includes: when the second offset address component which is non-zero exists, the one with the highest priority in the second direction corresponding to the second offset address component which is non-zero is determined 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 enables the second offset address component corresponding to the first target direction to be zero in the 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: a normal one of the two ports in the first target direction is determined as the second port.
As shown in fig. 7, when the routing node M is the current node and the offset address component X is 1 according to the default priority of 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. When the X-direction port is abnormal, in the embodiment of the present disclosure, the Y-direction is determined as the first target direction.
In some embodiments, the offset address component y is 1 in the routing node M, so the port connecting the routing node P is determined as the second port so that the offset address component y goes 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 the normal port exists, the normal port is determined as the second port. For example, in fig. 7, in the routing node M, when the Y direction is determined as the first target direction, the port of the connection routing node P is abnormal and the port of the connection routing node R is normal, the port of the connection 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 the 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 the 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 the 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 approach 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 disclosure, when the node receives the data to be transmitted, if the port selection policy does not need to be modified, the routing node updates the offset address carried by the data to be transmitted according to the 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.
Accordingly, in some embodiments, in the case that the first port used for forwarding the data to be transmitted in the current routing node is abnormal, the step of determining the 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 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 includes an output Buffer (Buffer). The data to be transmitted by a port can be stored in the output buffer of the port and then forwarded according to priority arbitration.
Accordingly, in some embodiments, referring to fig. 9, step S200 includes:
In step S210, the data to be transmitted is written 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 the port connected with the abnormal routing node in the current routing node as abnormal, wherein the abnormal routing node is one of a plurality of routing nodes connected with the current routing node, which has faults.
For example, in fig. 4, if the routing node F5 fails, the ports connected to the routing node F5 need to be marked as abnormal in all of the routing nodes F2, F4, F6, and F8.
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 data to be transmitted in any one of the data transmission methods 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 that receives the data to be transmitted, modifying the first port selection policy to obtain a second port selection policy;
In step S430, a fourth port is determined 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 the current routing node. The first port selection policy may be a default port selection policy configured into the many-core system, or may be a modified port selection policy. The embodiments of the present disclosure are not particularly limited thereto.
In some embodiments, the information of the target routing node includes 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 the current routing node comprises two ports in each direction; the fourth offset address comprises a plurality of offset address components which are in one-to-one correspondence with a plurality of directions; the port selection policy is a priority comprising a plurality of directions for selecting ports; the step of modifying the first port selection policy to obtain a second port selection policy includes: and modifying the priorities of the multiple directions to obtain the second port selection strategy.
Step S410 to step S440 will be described by taking fig. 6 as an example. As shown in fig. 6, the routing nodes correspond to two directions X and Y, and the priority of the X direction is higher than that of the Y direction. The offset address of the target node is represented by coordinates (x, y). In fig. 6, the routing node C2 is a current routing node, the routing node E2 is a target routing node, the data to be transmitted needs to be transmitted from the routing node A2 to the routing node E2, and the offset address of the routing node E2 relative to the routing node A2 is (1, 1); because the priority in the X direction is higher than in the Y direction, according to the first port selection policy, routing node A2 transmits data to routing node B2, where routing node E2 has an offset address of (0, 1) relative to routing node B2, and then routing node B2 should transmit data to the destination routing node E2 having an offset address of (0, 0). But the path between the routing node B2 and the routing node E2 is abnormal, the routing node B2 selects an alternative port according to the offset address component in the offset address and the priority of the direction, the data to be transmitted is transmitted to the routing node C2, wherein the offset address of the routing node E2 relative to the routing node C2 is (-1, 1), the routing node C2 modifies the first port selection policy into the second port selection policy so that the priority of the Y direction is higher than the X direction, and then transmits the data to be transmitted to the routing node D2, 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 the target routing node E2 with the offset address (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;
the storage unit 102 stores one or more programs thereon, which when executed by the one or more processing units 101, cause the one or more processing units 101 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, referring to fig. 12, embodiments of the present disclosure provide a many-core system comprising:
A plurality of processing cores 201 and a network on chip 202; the processing cores 201 are connected with the on-chip network 202, and the on-chip network 202 is used for interacting data among the processing cores and external data; the network on chip 202 includes a plurality of routing nodes according to the third aspect of the present disclosure.
In a fifth aspect, embodiments of the present disclosure provide a computer readable medium having stored thereon a computer program which, 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.
Those of ordinary skill in the art will appreciate that all or some of the steps, systems, functional modules/units in the apparatus, and methods disclosed above may be implemented as software, firmware, hardware, and suitable combinations thereof. In a hardware implementation, the division between the 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 cooperatively by several physical components. 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 both 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 known to those skilled 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 be accessed by a computer. Furthermore, as is well known to those of ordinary skill in the art, 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.
Example embodiments have been disclosed herein, and although specific terms are employed, they are used and should be interpreted in a generic and descriptive sense only and not for purpose of limitation. In some instances, it will be apparent to one skilled in the art that features, characteristics, and/or elements described in connection with a particular embodiment may be used alone or in combination with other embodiments unless explicitly stated otherwise. 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 (13)

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;
wherein the second port is different from the port 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 plurality of routing nodes;
the information of the target routing node comprises a first offset address of the target routing node relative to the current routing node when the data to be transmitted is forwarded through the first port; the step of determining the 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;
The current routing node corresponds to a plurality of directions, and comprises two ports in each direction, and priorities of different directions are different; the first offset address comprises a plurality of offset address components which are in one-to-one correspondence with a plurality of directions; the step of determining the second port according to the first offset address includes:
determining a first target direction according to each offset address component and the priority of the direction corresponding to each offset address component;
One of two ports of a current routing node in the first target direction is determined to be the second port.
2. The data transmission method according to claim 1, wherein the direction in which the first port is located is a first direction, and a direction other than the first direction among a 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 each of the offset address components and the priority of the direction corresponding to each of the offset address components includes:
when the second offset address components are all zero, the highest priority one of the second directions is determined as the first target direction.
3. The data transmission method according to claim 2, wherein the step of determining the first target direction according to the respective offset address components and the priorities of the directions to which the respective offset address components correspond further comprises:
when the second offset address component which is non-zero exists, the one with the highest priority in the second direction corresponding to the second offset address component which is non-zero is determined as the first target direction.
4. A data transmission method according to claim 3, 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 enables the second offset address component corresponding to the first target direction to be zero in the two ports in the first target direction as the second port.
5. The data transmission method according to any one of claims 1 to 4, wherein the step of determining one of two ports of the current routing node in the first target direction as the second port includes:
A normal one of the two ports in the first target direction is determined as the second port.
6. The data transmission method according to any one of claims 1 to 4, wherein, before the step of forwarding the data to be transmitted through the second port, the data transmission method further comprises:
Updating the 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 the 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.
7. The data transmission method according to any one of claims 1 to 4, wherein the routing node includes an output buffer; the step of forwarding the data to be transmitted through the second port includes:
writing the data to be transmitted into the output buffer;
forwarding the data to be transmitted in the output buffer according to priority arbitration.
8. The data transmission method according to any one of claims 1 to 4, wherein the data transmission method further comprises:
and marking the port connected with the abnormal routing node in the current routing node as abnormal, wherein the abnormal routing node is one of a plurality of routing nodes connected with the current routing node, which has faults.
9. A data transmission method applied to a routing node of a many-core system, the routing node being a routing node that receives data to be transmitted forwarded by the data transmission method according to any one of claims 1 to 8, the data transmission method comprising:
Determining a third port for forwarding data to be transmitted according to a 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.
10. The data transmission method of claim 9, wherein the information of the target routing node includes 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 the current routing node comprises two ports in each direction; the fourth offset address comprises a plurality of fourth offset address components which are in one-to-one correspondence with a plurality of directions; the first port selection policy includes priorities for selecting a plurality of directions of ports; the step of modifying the first port selection policy to obtain a second port selection policy includes:
and modifying the priorities of the multiple directions to obtain the second port selection strategy.
11. A routing node, comprising:
One or more processing units;
storage unit having stored thereon one or more programs which, when executed by the one or more processing units, cause the one or more processing units to implement the data transmission method according to any one of claims 1 to 8 and/or the data transmission method according to claim 9 or 10.
12. A many-core system, comprising:
A plurality of processing cores and a network on chip;
the network on chip comprising a plurality of routing nodes according to claim 11.
13. A computer readable medium having stored thereon a computer program which when executed by a processor implements a data transmission method according to any one of claims 1 to 8 and/or a data transmission method according to claim 9 or 10.
CN202110880755.5A 2021-08-02 2021-08-02 Data transmission method, routing node, many-core system and computer readable medium Active CN113568863B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110880755.5A CN113568863B (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 CN113568863B (en) 2021-08-02 2021-08-02 Data transmission method, routing node, many-core system and computer readable medium

Publications (2)

Publication Number Publication Date
CN113568863A CN113568863A (en) 2021-10-29
CN113568863B true CN113568863B (en) 2024-07-26

Family

ID=78169987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110880755.5A Active CN113568863B (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) CN113568863B (en)

Families Citing this family (1)

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841432A (en) * 2010-05-26 2010-09-22 中兴通讯股份有限公司 Port backup method, device and system for service access router
CN109327383A (en) * 2017-07-31 2019-02-12 北京华为数字技术有限公司 A kind of fault handling method and equipment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3512164B2 (en) * 1998-10-27 2004-03-29 松下電器産業株式会社 Communication node, network system, and control method for network system
JP2005260321A (en) * 2004-03-09 2005-09-22 Nec Corp Detour control method for label path network
CN111404822B (en) * 2020-02-28 2022-08-26 华为技术有限公司 Data transmission method, device, equipment and computer readable storage medium
CN112511340A (en) * 2020-11-11 2021-03-16 平安科技(深圳)有限公司 Data transmission method and device, electronic equipment and storage medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841432A (en) * 2010-05-26 2010-09-22 中兴通讯股份有限公司 Port backup method, device and system for service access router
CN109327383A (en) * 2017-07-31 2019-02-12 北京华为数字技术有限公司 A kind of fault handling method and equipment

Also Published As

Publication number Publication date
CN113568863A (en) 2021-10-29

Similar Documents

Publication Publication Date Title
CN111382115B (en) Path creating method and device for network on chip and electronic equipment
US9160617B2 (en) Faulty core recovery mechanisms for a three-dimensional network on a processor array
US9282031B2 (en) Network system and routing method
US20240250906A1 (en) Method for Forwarding Packet in Hybrid Network, Device, and System
CN113824638A (en) A method, device and system for forwarding messages
EP2961108A1 (en) Switch and program
CN110633175B (en) Multi-computer-room data processing method based on micro-service, electronic equipment and storage medium
US10305825B2 (en) Bus control device, relay device, and bus system
CN118612140B (en) Data transmission method, apparatus, computer device, storage medium and program product
CN111382114A (en) Data transmission method and device for network on chip and electronic equipment
CN113568863B (en) Data transmission method, routing node, many-core system and computer readable medium
CN107852344A (en) Store NE Discovery method and device
CN111585821B (en) High-speed interconnection network topology discovery method, device, medium and high-performance computing system
CN111600833A (en) Network operating system and message forwarding method
CN107547374B (en) Aggregation route processing method and device
CN109660458B (en) Routing method and device
WO2012160641A1 (en) Administration device, information processing device, information processing system, data transfer method, path selection program, and transfer request program
US11803506B2 (en) PCIe routing
CN115941392A (en) Method, electronic equipment and computer readable medium for realizing interconnection and intercommunication
US11075835B2 (en) Distributed, packet-mediated, packet routing
CN108390780B (en) Method and apparatus for processing information
CN117880227B (en) Chip routing system, method and related device
CN113872787A (en) Network topology discovery method, device and computer readable storage medium
CN114007152B (en) Port convergence processing method and device for optical fiber switch
CN113824633A (en) Route advertisement method and network device in campus network

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
GR01 Patent grant
GR01 Patent grant