CN109408257B - Data transmission method and device for Network On Chip (NOC) and electronic equipment - Google Patents

Data transmission method and device for Network On Chip (NOC) and electronic equipment Download PDF

Info

Publication number
CN109408257B
CN109408257B CN201811333210.7A CN201811333210A CN109408257B CN 109408257 B CN109408257 B CN 109408257B CN 201811333210 A CN201811333210 A CN 201811333210A CN 109408257 B CN109408257 B CN 109408257B
Authority
CN
China
Prior art keywords
network node
data packet
destination address
coordinate
network
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
CN201811333210.7A
Other languages
Chinese (zh)
Other versions
CN109408257A (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 CN201811333210.7A priority Critical patent/CN109408257B/en
Publication of CN109408257A publication Critical patent/CN109408257A/en
Priority to PCT/CN2019/113429 priority patent/WO2020093887A1/en
Application granted granted Critical
Publication of CN109408257B publication Critical patent/CN109408257B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]

Abstract

The invention provides a data transmission method and device for a Network On Chip (NOC) and electronic equipment, which are used for solving the problems of huge overhead, large power consumption and lower transmission efficiency when a many-core chip adopts the NOC to carry out communication between cores in the prior art. The method comprises the following steps: receiving a data packet by a first network node, wherein the data packet comprises destination addresses for representing the relative positions of a target network node and the first network node in a NOC; in response to determining that the first network node is not the target network node, the first network node modifying the destination address in the data packet according to a preset propagation direction; and the first network node sends the modified data packet to a network node adjacent to the first network node according to the preset propagation direction, wherein the adjacent network node is a new first network node.

Description

Data transmission method and device for Network On Chip (NOC) and electronic equipment
Technical Field
The present invention relates to the field of communications technologies, and in particular, to a data transmission method and apparatus for a network on chip NOC, and an electronic device.
Background
With the development of artificial intelligence technology, the requirement of users on the processing capacity of chips is higher and higher, and the use of many-core chips is wider and wider due to the limited processing capacity of single-core chips. In many-core Chip design, communication between cores is implemented using a Network On Chip (NOC), and therefore, the performance of the NOC is critical to the performance of many-core chips.
In the prior art, many core chips use NOCs for core-to-core communication, such as: a Master data sending unit (Master, M) and a plurality of Slave data receiving units (Slave, S) are cores that need to communicate, and when M multicasts a data packet to a plurality of S, the specific manner is as follows: firstly, M adds multicast flag bit information in the packet header of the data packet to be sent, wherein the multicast flag bit is used for indicating specific destinations to which the data packet needs to be multicast, then M sends the data packet to an intermediate network Node (Node, n) connected with the M, n sends the data packet to a specific intermediate multicast Station (BS) directly or through other intermediate network nodes, wherein the BS can also be called as a multicast Node, after receiving the data packet, the BS searches the address of each multicast destination in the storage area of the BS according to the multicast flag bit information in the packet header, determines the number of the destinations, then the BS copies the data in the data packet according to the number of the destinations, each copied data is packaged with one of the searched addresses of each multicast destination, and multicasts a plurality of packaged data packets to the corresponding destinations in parallel, specifically, the packed data packet may be directly sent to the destination, or may be sent to the destination through an intermediate network node. Specifically, as shown in fig. 1, taking one of the lines as an example, M sends a data packet to BS0 through n0 and n1, BS0 sends a packed data packet to S0 and BS1 through n1 and n2, and BS1 sends a packed data packet to S1 through n3 or directly to S2.
By adopting the method for performing communication between the cores by the NOC in the prior art, extra packet header bits need to be added to data packets, and as for how many possible multicast destinations, as for how many flag bits need to be added, the overhead is huge, and as for the BS to transmit extra packet header information, extra transmission efficiency loss is brought.
Disclosure of Invention
In view of this, the present invention provides a data transmission method and apparatus for a network on chip NOC, and an electronic device, which are used to solve the problems of huge overhead, large power consumption, and low transmission efficiency in the prior art when a many-core chip uses the NOC to perform communication between cores.
According to a first aspect of embodiments of the present invention, there is provided a data transmission method for a network on chip NOC, comprising: a first network node receives a data packet, wherein the data packet comprises a destination address, and the destination address is used for representing the relative positions of a target network node and the first network node in a NOC; in response to determining that the first network node is not the target network node, the first network node modifying the destination address in the data packet according to a preset propagation direction; and the first network node sends the modified data packet to a network node adjacent to the first network node according to the preset propagation direction, wherein the adjacent network node is a new first network node.
In the embodiment of the invention, the data packet only contains the destination address, and extra packet header bits are not required to be added in the data packet, so that the overhead is reduced; and the first network node determines the propagation direction of the data packet according to the destination address, and can realize the multicast of the data without adopting a BS, thereby improving the transmission efficiency and reducing the power consumption.
In one embodiment, the NOC is a one-dimensional network comprising a plurality of network nodes, and the destination address is the relative coordinates of the target network node and the first network node in the one-dimensional network.
In one embodiment, the modifying, by the first network node, the destination address in the data packet according to a preset propagation direction specifically includes: the first network node subtracts 1 from an absolute value of coordinates in a destination address in the data packet according to a propagation direction in the one-dimensional network.
In one embodiment, the NOC is a matrix network comprising a plurality of network nodes, the destination address being a two-dimensional relative coordinate of the target network node and the first network node in the matrix network, the two-dimensional relative coordinate comprising a first direction coordinate x and a second direction coordinate y.
In one embodiment, the modifying, by the first network node, the destination address in the data packet according to a preset propagation direction specifically includes: the first network node responds to that the coordinate value of a first direction coordinate x in the destination address is a positive integer larger than 0, and determines that the propagation direction of the data packet is a first direction and then a second direction according to the preset propagation direction; the first network node subtracts 1 from the absolute value of the coordinate of the first-direction coordinate x in the destination address in the packet, according to the first direction.
In one embodiment, the modifying, by the first network node, the destination address in the data packet according to a preset propagation direction specifically includes: the first network node responds to that the coordinate value of a first direction coordinate x in the destination address is a positive integer larger than 0, and determines that the propagation direction of the data packet is a first direction from a second direction to the first direction according to the preset propagation direction; and the first network node subtracts 1 from the absolute value of the coordinate of the second direction coordinate y in the destination address in the data packet according to the second direction.
In one embodiment, after the first network node receives the data packet, the method further comprises: in response to determining that itself is the target network node, the first network node sends the data packet to a slave data receiving unit connected to the first network node.
In one embodiment, after the first network node determines itself to be the target network node, the method further comprises: and the first network node sends the modified data packet to at least one network node appointed by a register according to a preset register, wherein the at least one network node is a new target network node.
In the embodiment of the invention, the register in the network node can be dynamically configured, so that the routing of the data packet is very flexible, and each network node can decide whether to carry out multicast or not and dynamically configure the destination of the multicast according to the dynamic configuration of the register; the data packet does not need to increase additional zone bits, and the data transmission efficiency is improved.
According to a second aspect of embodiments of the present invention, there is provided a data transmission apparatus for a network on chip NOC, comprising: a receiving unit, configured to receive a data packet, where the data packet includes a destination address, and the destination address is used to characterize relative positions of a target network node and a first network node in the NOC; a processing unit, configured to modify the destination address in the data packet according to a preset propagation direction in response to determining that the destination address is not the target network node; and the sending unit is used for sending the modified data packet to a network node adjacent to the first network node according to the preset propagation direction, wherein the adjacent network node is a new first network node.
In one embodiment, the NOC is a one-dimensional network comprising a plurality of network nodes, and the destination address is the relative coordinates of the target network node and the first network node in the one-dimensional network.
In one embodiment, the processing unit is specifically configured to: subtracting 1 from the absolute value of the coordinates in the destination address in the data packet according to the propagation direction in the one-dimensional network.
In one embodiment, the NOC is a matrix network comprising a plurality of network nodes, the destination address being a two-dimensional relative coordinate of the target network node and the first network node in the matrix network, the two-dimensional relative coordinate comprising a first direction coordinate x and a second direction coordinate y.
In one embodiment, the processing unit is specifically configured to: in response to that the coordinate value of a first direction coordinate x in the destination address is a positive integer greater than 0, determining that the propagation direction of the data packet is a first direction and then a second direction according to the preset propagation direction; and according to the first direction, subtracting 1 from the absolute value of the coordinate of the first direction coordinate x in the destination address in the data packet.
In an embodiment, the processing unit is further specifically configured to: in response to that the coordinate value of a first direction coordinate x in the destination address is a positive integer greater than 0, determining that the propagation direction of the data packet is a first direction from a second direction to the first direction according to the preset propagation direction; and subtracting 1 from the absolute value of the coordinate of the second direction coordinate y in the destination address in the data packet according to the second direction.
In one embodiment, after receiving the data packet, the processing unit is further configured to: the transmitting unit is configured to transmit the data packet to a slave data receiving unit connected to the first network node in response to determining that the transmitting unit is the target network node.
In one embodiment, after determining that the target network node is the target network node, the sending unit is further configured to: and sending the modified data packet to at least one network node appointed by the register according to a preset register, wherein the at least one network node is a new target network node.
According to a third aspect of embodiments of the present invention, there is provided an electronic apparatus including: a plurality of processing cores; and a network on chip configured to interact data among the plurality of processing cores and external data; the plurality of processing cores have stored therein instructions according to which the electronic device performs the method as described in the first aspect or any one of the possibilities of the first aspect.
According to a fourth aspect of embodiments of the present invention, there is provided a computer readable storage medium having stored thereon computer program instructions which, when executed by a processor, implement the method as described in the first aspect or any one of the possibilities of the first aspect.
According to a fifth aspect of embodiments of the present invention there is provided computer program instructions which, when run on a computer, cause the computer to perform a method as described in the first aspect or any one of the possibilities of the first aspect.
The embodiment of the invention has the beneficial effects that: firstly, a first network node receives a data packet, wherein the data packet comprises a destination address, and the destination address is used for representing the relative positions of a target network node and the first network node in a NOC; in response to determining that the first network node is not the target network node, the first network node modifying the destination address in the data packet according to a preset propagation direction; and the first network node sends the modified data packet to a network node adjacent to the first network node according to the preset propagation direction, the adjacent network node is a new first network node, the adjacent network node judges that the adjacent network node is a target network node according to the modified destination address in the received modified data packet, the modified data packet is sent to a slave data receiving unit and other network nodes connected with the adjacent network node, the other network nodes send the modified data packet to other slave data receiving units connected with the adjacent network node, and if the adjacent network node judges that the adjacent network node is not the target network node, the data packet is processed again according to the processing mode. In the embodiment of the invention, because the data packet only contains the destination address, extra packet header digits are not required to be added in the data packet, and the expense is reduced; and the first network node determines the propagation direction of the data packet according to the destination address, and can realize the multicast of the data without adopting a BS, thereby improving the transmission efficiency and reducing the power consumption.
Drawings
The above and other objects, features and advantages of the present invention will become more apparent from the following description of the embodiments of the present invention with reference to the accompanying drawings, in which:
FIG. 1 is a schematic diagram of a data transmission provided in the prior art;
fig. 2 is a flowchart of a data transmission method for a network on chip NOC according to an embodiment of the present invention;
fig. 3 is a schematic structural diagram of data transmission according to an embodiment of the present invention;
fig. 4 is a flowchart of a data transmission method for a network on chip NOC according to another embodiment of the present invention;
FIG. 5 is a schematic diagram of another data transmission structure provided in the embodiment of the present invention;
fig. 6 is a flowchart of a data transmission method for a network on chip NOC according to an embodiment of the present invention;
fig. 7 is a schematic diagram of a data transmission apparatus for a network on chip NOC according to an embodiment of the present invention;
fig. 8 is a schematic structural diagram of an electronic device according to an embodiment of the present invention.
Detailed Description
The present invention will be described below based on examples, but the present invention is not limited to only these examples. In the following detailed description of the present invention, certain specific details are set forth. It will be apparent to one skilled in the art that the present application may be practiced without these specific details. Further, those of ordinary skill in the art will appreciate that the drawings provided herein are for illustration purposes.
Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise", "comprising", and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is, what is meant is "including, but not limited to".
In the description of the present invention, it is to be understood that the terms "first," "second," and the like are used for descriptive purposes only, do not denote any order, and are not to be construed as indicating or implying relative importance. In addition, in the description of the present invention, "a plurality" means two or more unless otherwise specified.
In the prior art, a NOC is adopted by many core chips to perform communication between cores, and for example, a method for transmitting a data packet from a master data transmission unit to a plurality of slave data receiving units in the background art has many disadvantages, specifically as follows: 1) the number of extra header bits needs to be added to the data packet, and if there are many multicast destinations, it needs to add many flag bits, for example, in a many-core chip composed of one thousand cores, any core may multicast the data packet to other cores, so that the header will add the flag bits of all cores except itself, that is, 1000-1 to 999 bits, the overhead is huge, and additional efficiency transmission loss is brought by transmitting extra header information; 2) as the data packet is sent by using the multicast node BS, a special storage area for storing all destination addresses that may be multicast to by the multicast node BS needs to be set in the BS, for example, in a many-core chip composed of one thousand cores, if any multicast node may need to multicast a received data packet to one hundred destination cores, the addresses of the one hundred destination cores need to be stored, which results in huge storage overhead of the BS, and in the whole many-core chip, there may be many multicast nodes, which results in huge storage overhead of the whole many-core chip; 3) the BS uses a special circuit, and the circuit can not be multiplexed with other network nodes, so that extra circuit area is needed; 4) the BS inquires a destination address of the multicast according to the information of the multicast flag bit in the header of the received data packet, and then repacks the destination address and the effective data in the data packet and sends out the repacked destination address and the effective data, so that extra inquiry and packing are added, and the power consumption is increased; 5) in a many-core chip, the number of BSs is limited, and if multiple M's need to be multicast at the same time, the congestion degree of the NOC is increased, and the performance of the whole many-core chip is reduced; 6) when the data packet is sent to some destinations, the adoption of BS multicast brings additional paths, reduces the routing efficiency, increases the time for the data packet to arrive, and increases the power consumption consumed by data transmission.
To solve the problems in the prior art, the data transmission method for a network on chip NOC provided by the present invention specifically includes, as shown in fig. 2:
step S200, a first network node receives a data packet, wherein the data packet comprises a destination address, and the destination address is used for representing the relative positions of a target network node and the first network node in the NOC.
Specifically, the data packet may be sent by the main data sending unit, or may be sent by other network nodes, where the data packet is packed according to a conventional data packet format, and the header of the data packet includes a common destination address and other information, and does not need to add an extra header bit.
Step S201, in response to determining that the first network node is not the target network node, the first network node modifies the destination address in the data packet according to a preset propagation direction.
Specifically, the preset propagation direction is divided into two cases.
Case one, the NOC is a one-dimensional network comprising a plurality of network nodes, and the destination address is the relative coordinates of the target network node and the first network node in the one-dimensional network, for example, assuming the destination address is (a), where the absolute value of a is greater than 0.
In a second aspect, the NOC is a matrix network including a plurality of network nodes, the destination address is a two-dimensional relative coordinate of the target network node and the first network node in the matrix network, the two-dimensional relative coordinate includes a first direction coordinate x and a second direction coordinate y, and the packet travels in a first direction followed by a second direction or in a first direction followed by a second direction.
For example, the destination address is (x, y), where the absolute values of x and y are greater than 0, the absolute values of x and y represent the propagation distance, the sign represents the propagation direction, and the transmission process of the data packet is the process of decreasing the absolute values of x and y. x and y may be set arbitrarily according to the actual relative position, which is not limited in the embodiment of the present invention.
In this embodiment of the present invention, a specific example is performed on the first network node modifying the destination address in the data packet according to the preset propagation direction, which is specifically as follows: for the above case one, assuming that the value of a is 3, that is, the destination address in the data packet is (3), it means that the first network node needs to pass through two intermediate network nodes to reach the target network node (0), and since the case is that the one-dimensional network is fixed and one-way propagation is performed, the first network node modifies the destination address in the data packet to (2).
For the second case, the first case, it is assumed that the propagation direction is determined to be the first direction and then the second direction, x has a value of 3, Y has a value of 2, and the destination address in the packet is (3, 2), where (3, 2) is the relative position between the first network node and the target network node (0, 0), and since the propagation direction is the first direction and then the second direction, the first network node modifies the destination address in the packet to (2, 2); in the second case, it is assumed that the propagation direction is determined to be the first direction after the second direction, and therefore, the first network node modifies the destination address in the packet to (3, 1). In the embodiment of the present invention, when the absolute values of x and y are respectively greater than 0, the propagation direction may be set arbitrarily, which is not limited in the embodiment of the present invention.
Step S202, the first network node sends the modified data packet to a network node adjacent to the first network node according to the preset propagation direction, where the adjacent network node is a new first network node.
For example, for the first case, the modified data packet is sent to the network node adjacent to the first network node according to the preset propagation direction, and the relative position of the adjacent network node and the target network node is (2). In the second and first cases, the modified packet is sent to the neighboring network node with the destination address (2, 2) of the first network node, and the relative position of the neighboring network node and the target network node is (2, 2). In the second and second cases, the modified packet is sent to the adjacent network node with the first network node destination address (3, 1), the relative position between the adjacent network node and the target network node is (3, 1), since the destination address is not 0, it is determined that the adjacent network node is not the target network node, and the adjacent network node is taken as a new first network node, and the process returns to S200 for retransmission.
In the embodiment of the invention, a first network node receives a data packet, wherein the data packet comprises a destination address, and the destination address is used for representing the relative positions of a target network node and the first network node in a NOC; in response to determining that the first network node is not the target network node, the first network node modifies the destination address in the data packet according to a preset propagation direction, the first network node sends the modified data packet to a network node adjacent to the first network node according to the preset propagation direction, the adjacent network node is a new first network node, and because the data packet only contains the destination address, extra packet header bits do not need to be added in the data packet, so that the overhead is reduced; and the first network node determines the propagation direction of the data packet according to the destination address, and can realize the multicast of the data without adopting a BS, thereby improving the transmission efficiency and reducing the power consumption.
Optionally, after step S200, the method further includes: and the first network node judges whether the first network node is the target network node according to the destination address in the data packet.
Optionally, after the step S200, the method further includes: in response to determining that itself is the target network node, the first network node sends the data packet to a slave data receiving unit connected thereto.
Specifically, assuming that the propagation direction of the data packet is fixed unidirectional propagation in the one-dimensional network, and the destination address in the received data packet is (0), it is determined that the data packet is a target network node; assuming that the destination address in the received data packet is (0, 0) from the first direction to the second direction or from the second direction to the first direction in the propagation direction matrix network of the data packet, it is determined that itself is the target network node.
Optionally, the first network node sends the data packet to the slave data receiving and sending unit connected to the first network node, and also sends the data packet to at least one network node specified by the register according to a preset register, where the register may further set whether to change a destination address, and if not, after receiving the data packet, the next network node may send the data packet to the slave data receiving unit connected to the next network node, and simultaneously may send the data packet to other network nodes according to the setting of the register; if the register setting changes the destination address, return to step S200 to continue the processing.
For example, assuming that the register in the first network node has 3 bits and corresponds to 3 network nodes adjacent to the register, when the value of the register is a set value, the received data packet is sent to the network node for comparison without modification, where the set value may be 1 or 0, which is not limited in the embodiment of the present invention. For example: when the value of the register in the first network node is 110, the first network node respectively corresponds to the intermediate nodes A, B and C, the data packets are sent to the intermediate nodes A and B without modification, the intermediate nodes A and C do not send the data packets to the intermediate nodes C, the intermediate nodes A and B serve as new target network nodes after receiving the data packets, and corresponding operations are executed according to the register preset by the intermediate nodes A, B and C.
The following describes in detail a data transmission method for a network on chip NOC according to an embodiment of the present invention with two specific embodiments.
The first embodiment,
Assuming that the propagation direction of the data packet is a fixed one-way propagation, and a specific transmission flow diagram of the data packet is shown, as shown in fig. 3, the master data sending unit M multicasts the data packet to the slave data receiving units S0, S1, and S2, n0 receives the data packet sent by M, sends the data packet to n1, n1 sends the data packet to S0 and n3, n3 sends the data packet to S1 and n4, n4 sends the data packet to S2, and a specific processing flow is shown in fig. 4:
in step S400, the network node n0 receives the first packet sent by M, and determines that the destination address in the first packet is (1).
Step S401, determining that the preset propagation direction of the network node n0 is a fixed one-way propagation.
In step S402, the network node n0 modifies the destination address (0) in the first packet, and determines the packet with the modified address (0) as the second packet.
And step S403, the network node n0 sends the second data packet to the network node n 1.
In step S404, the network node n1 receives the second packet.
In step S405, the network node n1 determines that it is the target network node based on the destination address (0) in the second packet.
Step S406, the network node n1 sends the second packet to S0 connected thereto, and sends the second packet to the network node n3 without modification according to the setting of its own register.
In step S407, the network node n3 determines that it is the target network node based on the destination address (0) in the second packet.
Step S408, the network node n3 sends the second packet to S1 connected thereto, and sends the second packet to the network node n4 without modification according to the setting of its own register.
Wherein the second packet is not sent to network node n2 due to the setting of the register.
In step S409, the network node n4 determines that it is the target network node based on the destination address (0) in the second packet.
Step S410, the network node n4 sends the second packet to S2 connected thereto.
The second embodiment,
Assuming that the core C0 multicasts data to the cores C4, C5 and C7, a specific schematic diagram is shown in fig. 5, where the data to be multicasted may be a processing unit circuit or a main data sending unit M, a propagation direction is first X axis and then Y axis, and a specific processing flow is shown in fig. 6.
In step S600, the network node n0 receives the first packet sent by the core C0, and determines that the destination address in the first packet is (1, 1).
Step S601, determining that the node itself is not the target network node according to the destination address, and determining that the preset propagation direction of the network node n0 is the first X axis.
In step S602, the network node n0 modifies the destination address in the first packet to be (0, 1), and determines the packet with the modified address of (0, 1) as the second packet.
Step S603, the network node n0 sends the second data packet to the network node n 1.
In step S604, the network node n1 receives the second packet.
In step S605, the network node n1 determines that it is not the target network node from the destination address (0, 1) in the second packet.
In step S606, the network node n1 modifies the destination address in the second packet to (0, 0), and determines the packet with the modified address of (0, 0) as the third packet.
Specifically, the network node n1 adopts the policy of X-axis direction transmission after receiving the second packet, but at this time, X of the destination address in the packet header is already 0, so the transmission direction is changed to Y-axis.
In step S607, the network node n4 receives the third packet.
Step S608, the network node n4 determines that it is the target network node according to the destination address (0, 0) in the third packet, transmits the third packet to the core C4 connected thereto, and transmits the third packet to the network node n5 and the network node n7 according to the setting of its own register.
Specifically, the network node n4 determines that the value of the bit corresponding to the network node n5 and the network node n7 in its register is 1, which indicates that the third packet needs to be sent to the network node n5 and the network node n7 without any modification, and since the value of the bit corresponding to the network node n3 in the register of n4 is 0, the packet is not sent to n 3.
In step S609, the network node n5 receives the third packet.
Step S610, the network node n5 determines that the network node n is the target network node according to the destination address (0, 0) in the third data packet, and sends the third data packet to the core C5 connected with the network node n; and the network node n5 determines that the values of the adjacent network nodes are all 0 according to the setting of the register of the network node n5, and stops sending.
In step S611, the network node n7 receives the third packet.
Step S612, the network node n7 determines that it is the target network node according to the destination address (0, 0) in the third packet, and sends the third packet to the core C7 connected to it; the network node n7 determines that the bit value of the adjacent network node n6 is 1 according to the setting of its own register, and the network node n6 repeats the step to continue transmitting.
Step S609 is performed in synchronization with step S611.
The data transmission method for the network on chip NOC provided by the embodiment of the invention also has the following advantages that the control circuit or the core of the many-core chip can dynamically configure the register in the network node at any time, so that the routing of the data packet is very flexible, and each network node can decide whether to perform multicast or not and dynamically configure the destination of the multicast according to the dynamic configuration of the register; therefore, the data packet does not need to be additionally provided with the zone bit, and the data transmission efficiency is improved; the intermediate network node does not need any extra memory address space, so that the chip area is reduced; extra unpacking and packing are not needed during multicast, so that the delay of data transmission is reduced; the data packet does not increase an extra routing path, and the delay of data transmission is reduced; the data packet does not necessarily need to pass through some nodes, and the congestion degree of the many-core chip is reduced.
Fig. 7 is a schematic diagram of a data transmission apparatus for a network on chip NOC according to an embodiment of the present invention. As shown in fig. 7, the data transmission apparatus for a network on chip NOC of the present embodiment includes: a receiving unit 71, a processing unit 72 and a sending unit 73, wherein the receiving unit 71 is configured to receive a data packet, wherein the data packet includes a destination address, and the destination address is used to characterize the relative positions of a target network node and a first network node in the NOC; a processing unit 72, configured to modify the destination address in the data packet according to a preset propagation direction in response to determining that the destination address is not the target network node; a sending unit 73, configured to send the modified data packet to a network node adjacent to the first network node according to the preset propagation direction, where the adjacent network node is a new first network node.
Optionally, the NOC is a one-dimensional network comprising a plurality of network nodes, and the destination address is a relative coordinate of the target network node and the first network node in the one-dimensional network.
Optionally, the processing unit is specifically configured to: subtracting 1 from the absolute value of the coordinates in the destination address in the data packet according to the propagation direction in the one-dimensional network.
Optionally, the NOC is a matrix network comprising a plurality of network nodes, and the destination address is a two-dimensional relative coordinate of the target network node and the first network node in the matrix network, the two-dimensional relative coordinate comprising a first direction coordinate x and a second direction coordinate y.
Optionally, the processing unit is specifically configured to: in response to that the coordinate value of a first direction coordinate x in the destination address is a positive integer greater than 0, determining that the propagation direction of the data packet is a first direction and then a second direction according to the preset propagation direction; and according to the first direction, subtracting 1 from the absolute value of the coordinate of the first direction coordinate x in the destination address in the data packet.
Optionally, the processing unit is further specifically configured to: in response to that the coordinate value of a first direction coordinate x in the destination address is a positive integer greater than 0, determining that the propagation direction of the data packet is a first direction from a second direction to the first direction according to the preset propagation direction; and subtracting 1 from the absolute value of the coordinate of the second direction coordinate y in the destination address in the data packet according to the second direction.
Optionally, after receiving the data packet, the processing unit is further configured to: the transmitting unit is configured to transmit the data packet to a slave data receiving unit connected to the first network node in response to determining that the transmitting unit is the target network node.
Optionally, after determining that the target network node is the target network node, the sending unit is further configured to: and sending the modified data packet to at least one network node appointed by the register according to a preset register, wherein the at least one network node is a new target network node.
Fig. 8 is a schematic structural diagram of an electronic device according to an embodiment of the present invention. As shown in fig. 8, the electronic device of the present embodiment includes a processing core 11-1N and a network on chip 14. The processing cores 11-1N are each connected to a network-on-chip 14. The network on chip 14 is configured to interact data between the N processing cores and external data. The N processing cores store instructions, and the electronic equipment executes the following operations according to the instructions: a first network node receives a data packet, wherein the data packet comprises a destination address, and the destination address is used for representing the relative positions of a target network node and the first network node in a NOC; in response to determining that the first network node is not the target network node, the first network node modifying the destination address in the data packet according to a preset propagation direction; and the first network node sends the modified data packet to a network node adjacent to the first network node according to the preset propagation direction, wherein the adjacent network node is a new first network node.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, various aspects of embodiments of the invention may take the form of: an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit," module "or" system. Furthermore, various aspects of embodiments of the invention may take the form of: a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
Any combination of one or more computer-readable media may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of embodiments of the present invention, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to: electromagnetic, optical, or any suitable combination thereof. The computer readable signal medium may be any of the following computer readable media: is not a computer readable storage medium and may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of embodiments of the present invention may be written in any combination of one or more programming languages, including: object oriented programming languages such as Java, Smalltalk, C + +, and the like; and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package; executing in part on a user computer and in part on a remote computer; or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
The flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention described above describe various aspects of embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention, and various modifications and changes may be made by those skilled in the art. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims (19)

1. A data transmission method for a network on chip NOC, comprising:
a first network node receives a data packet, wherein the data packet comprises a destination address, the destination address is used for representing the relative positions of a target network node and the first network node in a NOC, and the data packet does not comprise propagation direction information and multicast information;
in response to determining that the first network node is not the target network node, the first network node modifying the destination address in the data packet according to a preset propagation direction;
the first network node sends the modified data packet to a network node adjacent to the first network node according to the preset propagation direction, wherein the adjacent network node is a new first network node;
the first network node may determine whether to perform multicast and a destination of the multicast according to dynamic configuration of a register, where the register belongs to the first network node, and the register may be dynamically configured at any time through a control circuit or a core of a many-core chip.
2. The method of claim 1, wherein the NOC is a one-dimensional network comprising a plurality of network nodes, and wherein the destination address is a relative coordinate of the target network node and the first network node in the one-dimensional network.
3. The method of claim 2, wherein the first network node modifying the destination address in the data packet according to a predetermined propagation direction comprises:
the first network node subtracts 1 from an absolute value of coordinates in a destination address in the data packet according to a propagation direction in the one-dimensional network.
4. The method of claim 1, wherein the NOC is a matrix network comprising a plurality of network nodes, the destination address being a two-dimensional relative coordinate of the target network node and the first network node in the matrix network, the two-dimensional relative coordinate comprising a first direction coordinate x and a second direction coordinate y.
5. The method of claim 4, wherein the first network node modifying the destination address in the data packet according to a predetermined propagation direction comprises:
the first network node responds to that the coordinate value of a first direction coordinate x in the destination address is a positive integer larger than 0, and determines that the propagation direction of the data packet is a first direction and then a second direction according to the preset propagation direction;
the first network node subtracts 1 from the absolute value of the coordinate of the first-direction coordinate x in the destination address in the packet, according to the first direction.
6. The method of claim 4, wherein the first network node modifying the destination address in the data packet according to a predetermined propagation direction comprises:
the first network node responds to that the coordinate value of a first direction coordinate x in the destination address is a positive integer larger than 0, and determines that the propagation direction of the data packet is a first direction from a second direction to the first direction according to the preset propagation direction;
and the first network node subtracts 1 from the absolute value of the coordinate of the second direction coordinate y in the destination address in the data packet according to the second direction.
7. The method of claim 1, wherein after the first network node receives the data packet, the method further comprises:
in response to determining that itself is the target network node, the first network node sends the data packet to a slave data receiving unit connected to the first network node.
8. The method of claim 7, wherein after the first network node determines itself to be the target network node, the method further comprises:
and the first network node sends the modified data packet to at least one network node appointed by a register according to a preset register, wherein the at least one network node is a new target network node.
9. A data transmission device for a network on chip NOC, comprising:
a receiving unit, configured to receive a data packet, where the data packet includes a destination address, the destination address is used to characterize relative positions of a target network node and a first network node in a NOC, and the data packet does not include propagation direction information and multicast information;
a processing unit, configured to modify the destination address in the data packet according to a preset propagation direction in response to determining that the destination address is not the target network node;
a sending unit, configured to send the modified data packet to a network node adjacent to the first network node according to the preset propagation direction, where the adjacent network node is a new first network node;
the first network node may determine whether to perform multicast and a destination of the multicast according to dynamic configuration of a register, where the register belongs to the first network node, and the register may be dynamically configured at any time through a control circuit or a core of a many-core chip.
10. The apparatus of claim 9, wherein the NOC is a one-dimensional network comprising a plurality of network nodes, and wherein the destination address is relative coordinates of the target network node and the first network node in the one-dimensional network.
11. The apparatus as claimed in claim 10, wherein said processing unit is specifically configured to:
subtracting 1 from the absolute value of the coordinates in the destination address in the data packet according to the propagation direction in the one-dimensional network.
12. The apparatus of claim 9, wherein the NOC is a matrix network comprising a plurality of network nodes, wherein the destination address is a two-dimensional relative coordinate of the target network node and the first network node in the matrix network, the two-dimensional relative coordinate comprising a first direction coordinate x and a second direction coordinate y.
13. The apparatus as claimed in claim 12, wherein said processing unit is specifically configured to:
in response to that the coordinate value of a first direction coordinate x in the destination address is a positive integer greater than 0, determining that the propagation direction of the data packet is a first direction and then a second direction according to the preset propagation direction;
and according to the first direction, subtracting 1 from the absolute value of the coordinate of the first direction coordinate x in the destination address in the data packet.
14. The apparatus as recited in claim 12, wherein said processing unit is further specifically configured to:
in response to that the coordinate value of a first direction coordinate x in the destination address is a positive integer greater than 0, determining that the propagation direction of the data packet is a first direction from a second direction to the first direction according to the preset propagation direction;
and subtracting 1 from the absolute value of the coordinate of the second direction coordinate y in the destination address in the data packet according to the second direction.
15. The apparatus as claimed in claim 9, wherein said processing unit, after receiving said packet, is further configured to:
the transmitting unit is configured to transmit the data packet to a slave data receiving unit connected to the first network node in response to determining that the transmitting unit is the target network node.
16. The apparatus of claim 15, wherein the sending unit, in response to determining itself to be the target network node, is further to:
and sending the modified data packet to at least one network node appointed by the register according to a preset register, wherein the at least one network node is a new target network node.
17. An electronic device, characterized in that the electronic device comprises:
a plurality of processing cores; and
a network on chip configured to interact data among the plurality of processing cores and external data;
the plurality of processing cores have stored therein instructions according to which the electronic device performs the method of any of claims 1-8.
18. A computer-readable storage medium on which computer program instructions are stored, which, when executed by a processor, implement the method of any one of claims 1-8.
19. Computer program instructions, characterized in that the computer program instructions, when run on a computer, cause the computer to perform the method according to any of claims 1-8.
CN201811333210.7A 2018-11-09 2018-11-09 Data transmission method and device for Network On Chip (NOC) and electronic equipment Active CN109408257B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811333210.7A CN109408257B (en) 2018-11-09 2018-11-09 Data transmission method and device for Network On Chip (NOC) and electronic equipment
PCT/CN2019/113429 WO2020093887A1 (en) 2018-11-09 2019-10-25 Data transmission method and device for network-on-chip (noc) and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811333210.7A CN109408257B (en) 2018-11-09 2018-11-09 Data transmission method and device for Network On Chip (NOC) and electronic equipment

Publications (2)

Publication Number Publication Date
CN109408257A CN109408257A (en) 2019-03-01
CN109408257B true CN109408257B (en) 2021-04-13

Family

ID=65472441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811333210.7A Active CN109408257B (en) 2018-11-09 2018-11-09 Data transmission method and device for Network On Chip (NOC) and electronic equipment

Country Status (2)

Country Link
CN (1) CN109408257B (en)
WO (1) WO2020093887A1 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408257B (en) * 2018-11-09 2021-04-13 北京灵汐科技有限公司 Data transmission method and device for Network On Chip (NOC) and electronic equipment
CN112835510B (en) * 2019-11-25 2022-08-26 北京灵汐科技有限公司 Method and device for controlling storage format of on-chip storage resource
CN112988653B (en) * 2019-12-16 2024-04-12 广州希姆半导体科技有限公司 Data processing circuit, device and method
CN114095289B (en) * 2020-08-07 2023-05-12 北京希姆计算科技有限公司 Data multicast circuit, method, electronic device, and computer-readable storage medium
CN114363246A (en) * 2020-09-30 2022-04-15 北京灵汐科技有限公司 Many-core network-on-chip data transmission method, device, equipment and medium
CN112822127B (en) * 2020-12-29 2023-07-04 北京灵汐科技有限公司 Data broadcasting method, device, chip and medium of network-on-chip
CN112650705A (en) * 2020-12-31 2021-04-13 清华大学 Routing control method and artificial intelligence processor
CN112887214B (en) * 2021-01-08 2022-10-25 北京灵汐科技有限公司 Broadcasting method, first node, network on chip, transmission method, device and medium
CN113570049A (en) * 2021-07-23 2021-10-29 上海新氦类脑智能科技有限公司 Relative addressing method, device, equipment and medium for interconnection of multiple SNN chips
CN114697187B (en) * 2022-04-25 2022-12-02 沐曦科技(北京)有限公司 Master selection method
CN114546095B (en) * 2022-04-25 2022-07-01 沐曦科技(北京)有限公司 Master selection method based on multiple computing devices

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006513843A (en) * 2003-02-05 2006-04-27 エクソンモービル・ケミカル・パテンツ・インク Mixed cracking and selective hydrogen combustion for catalytic cracking
CN101383712B (en) * 2008-10-16 2010-12-22 电子科技大学 Routing node microstructure for on-chip network
CN101945341B (en) * 2010-09-16 2013-01-23 西北大学 Point-to-point transmission protocol of wireless sensor network
CN104683242B (en) * 2015-03-15 2018-05-25 西安电子科技大学 A kind of topological structure and method for routing of two dimension network-on-chip
CN106302209B (en) * 2015-06-12 2019-11-29 华为技术有限公司 A kind of network-on-chip NoC and the method for data transmission
CN106341331B (en) * 2016-09-20 2019-07-09 清华大学 Routing multicast method and system based on 2D mesh network
CN109408257B (en) * 2018-11-09 2021-04-13 北京灵汐科技有限公司 Data transmission method and device for Network On Chip (NOC) and electronic equipment

Also Published As

Publication number Publication date
CN109408257A (en) 2019-03-01
WO2020093887A1 (en) 2020-05-14

Similar Documents

Publication Publication Date Title
CN109408257B (en) Data transmission method and device for Network On Chip (NOC) and electronic equipment
US9571420B2 (en) Integrated NoC for performing data communication and NoC functions
US8819616B2 (en) Asymmetric mesh NoC topologies
KR101707655B1 (en) Automatic pipelining of NoC channels to meet timing and/or performance
US9294354B2 (en) Using multiple traffic profiles to design a network on chip
US9529400B1 (en) Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements
CN108270676B (en) Network data processing method and device based on Intel DPDK
US9253085B2 (en) Hierarchical asymmetric mesh with virtual routers
CN111382114B (en) Data transmission method and device for network on chip and electronic equipment
CN104395895A (en) Systems and methods for input/output virtualization
CN111382115B (en) Path creating method and device for network on chip and electronic equipment
JP5703909B2 (en) Information processing apparatus, parallel computer system, and control method of parallel computer system
US20080222303A1 (en) Latency hiding message passing protocol
KR20160102445A (en) Cache coherent not with flexible number of cores, i/o devices, directory structure and coherency points
CN107800627A (en) The wiring method and device of three-state content addressing memory TCAM tables
US10547514B2 (en) Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US9762474B2 (en) Systems and methods for selecting a router to connect a bridge in the network on chip (NoC)
KR102280343B1 (en) Internet Of Things Device with pairs of ethernet port
US20180198682A1 (en) Strategies for NoC Construction Using Machine Learning
Bui et al. Improving data movement performance for sparse data patterns on the blue gene/q supercomputer
US10084725B2 (en) Extracting features from a NoC for machine learning construction
CN112437021B (en) Routing control method, device, routing equipment and storage medium
TW201626222A (en) Method, device and system for deciding on a distribution path of a task
US20130107880A1 (en) Method and Apparatus for Scalable Network Transaction Identifier for Interconnects

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