WO2020093887A1 - Data transmission method and device for network-on-chip (noc) and electronic device - Google Patents

Data transmission method and device for network-on-chip (noc) and electronic device Download PDF

Info

Publication number
WO2020093887A1
WO2020093887A1 PCT/CN2019/113429 CN2019113429W WO2020093887A1 WO 2020093887 A1 WO2020093887 A1 WO 2020093887A1 CN 2019113429 W CN2019113429 W CN 2019113429W WO 2020093887 A1 WO2020093887 A1 WO 2020093887A1
Authority
WO
WIPO (PCT)
Prior art keywords
network node
data packet
destination address
network
coordinate
Prior art date
Application number
PCT/CN2019/113429
Other languages
French (fr)
Chinese (zh)
Inventor
冯杰
Original Assignee
北京灵汐科技有限公司
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 北京灵汐科技有限公司 filed Critical 北京灵汐科技有限公司
Publication of WO2020093887A1 publication Critical patent/WO2020093887A1/en

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]

Definitions

  • the present invention relates to the field of communication technology, and in particular, to a data transmission method, device, and electronic device for network-on-chip NOC.
  • NOC Networks on Chip
  • M adds the information of the multicast flag in the header of the data packet that it needs to send, where the multicast flag is used to indicate the To which specific destinations the data packet needs to be multicast, then M sends the data packet to the intermediate network node (Node, n) connected to it, n sends the data packet to the specific intermediate multicast directly or through other intermediate network nodes Broadcasting Station (BS), where the BS can also be called a multicast node, and after receiving the data packet, the BS searches for each in the storage area of the BS according to the information of the multicast flag in the packet header Multicast destination address, determine the number of destinations, and then the BS copies the data in the data packet according to the number of destinations, each
  • BS Broadcasting Station
  • M sends the data packet to BS0 through n0 and n1
  • BS0 sends the packaged data packet to S0 and BS1 through n1 and n2
  • BS1 passes the packaged data through n3 is sent to S1, or directly to S2.
  • the data packet needs to increase the number of additional headers.
  • the number of flags needs to be added.
  • the overhead is huge, and the BS needs Transmitting additional packet header information will bring additional loss of transmission efficiency.
  • the number of BSs is limited. If multiple Ms need to be multicast at the same time, sending data packets to S must be sent to BS first. Will increase the congestion of NOC, reduce the performance of many core chips, and will also bring additional paths, reduce transmission efficiency, and increase power consumption.
  • the present invention provides a data transmission method, device and electronic device for network-on-chip NOC, which is used to solve the problem that when many core chips use NOC for core-to-core communication in the prior art, the overhead is huge 1. Large power consumption and low transmission efficiency.
  • a data transmission method for an on-chip network NOC including: a first network node receives a data packet, wherein the data packet includes a destination address and the destination The ground address is used to characterize the relative position of the target network node and the first network node in the NOC; in response to determining that it is not the target network node, the first network node modifies the data according to a preset propagation direction The destination address in the packet; the first network node sends the modified data packet to the network node adjacent to the first network node according to the preset propagation direction, the adjacent network The node is the new first network node.
  • the data packet contains only the destination address, and there is no need to add an extra number of headers in the data packet, which reduces overhead; and the first network node determines the propagation direction of the data packet according to the destination address.
  • BS can achieve data multicast, improve transmission efficiency and reduce power consumption.
  • the NOC is a one-dimensional network including multiple network nodes
  • the destination address is the relative coordinates of the target network node and the first network node in the one-dimensional network.
  • the first network node modifies the destination address in the data packet according to a preset propagation direction, which specifically includes: the first network node according to the propagation direction in the one-dimensional network, The absolute value of the coordinates in the destination address in the data packet is decreased by one.
  • the NOC is a matrix network including multiple network nodes
  • the destination address is the two-dimensional relative coordinates of the target network node and the first network node in the matrix network.
  • the two-dimensional relative coordinates include a first direction coordinate x and a second direction coordinate y.
  • the first network node modifies the destination address in the data packet according to a preset propagation direction, which specifically includes: the first network node responds to the first The coordinate value of the one-direction coordinate x is a positive integer greater than 0, and the propagation direction of the data packet is determined as the first direction and then the second direction according to the preset propagation direction; the first network node is based on the first In one direction, the absolute value of the coordinate x in the first direction in the destination address in the data packet is decreased by one.
  • the first network node modifies the destination address in the data packet according to a preset propagation direction, which specifically includes: the first network node responds to the first The coordinate value of the one-direction coordinate x is a positive integer greater than 0, and the propagation direction of the data packet is determined as the second direction and then the first direction according to the preset propagation direction; the first network node is based on the first In the two directions, the absolute value of the coordinate of the second direction coordinate y in the destination address in the data packet is decreased by 1.
  • the method further includes: in response to determining that it is the target network node, the first network node sends the data packet to the first network node.
  • a slave data receiving unit connected to a network node.
  • the method further includes: the first network node sends the modified data packet to the site according to a preset register At least one network node specified by the register, the at least one network node being the new target network node.
  • the register in the network node can be dynamically configured to make the routing of the data packet very flexible.
  • Each network node can decide whether to perform multicast according to the dynamic configuration of the register, and dynamically configure the destination of the multicast; data The packet does not need to add additional flag bits, which improves the data transmission efficiency.
  • a data transmission device for an on-chip network NOC including: a receiving unit for receiving a data packet, wherein the data packet includes a destination address, the The destination address is used to characterize the relative position of the target network node and the first network node in the NOC; the processing unit is configured to modify the data packet according to a preset propagation direction in response to determining that it is not the target network node The destination address; 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, the adjacent network node is new The first network node.
  • the NOC is a one-dimensional network including multiple network nodes
  • the destination address is the relative coordinates of the target network node and the first network node in the one-dimensional network.
  • the processing unit is specifically configured to: reduce the absolute value of the coordinates in the destination address in the data packet by 1 according to the propagation direction in the one-dimensional network.
  • the NOC is a matrix network including multiple network nodes
  • the destination address is the two-dimensional relative coordinates of the target network node and the first network node in the matrix network.
  • the two-dimensional relative coordinates include a first direction coordinate x and a second direction coordinate y.
  • the processing unit is specifically configured to: in response to the coordinate value of the first direction coordinate x in the destination address being a positive integer greater than 0, determine the data according to the preset propagation direction The propagation direction of the packet is the first direction and then the second direction; according to the first direction, the absolute value of the coordinate x of the first direction coordinate in the destination address in the data packet is decreased by 1.
  • the processing unit is further specifically configured to: in response to the coordinate value of the first direction coordinate x in the destination address being a positive integer greater than 0, determine the The propagation direction of the data packet is the second direction before the first direction; according to the second direction, the absolute value of the coordinate of the second direction coordinate y in the destination address in the data packet is decreased by 1.
  • the processing unit is further configured to: in response to determining that it is the target network node, the sending unit to send the data packet to the first A slave data receiving unit connected to a network node.
  • the sending unit is further configured to: according to a preset register, send the modified data packet to at least the register specified at least One network node, the at least one network node is a new target network node.
  • an electronic device including: a plurality of processing cores; and an on-chip network configured to interact with data between the plurality of processing cores and external data;
  • An instruction is stored in the plurality of processing cores, and according to the instruction, the electronic device executes the method as described in the first aspect or any possible aspect of the first aspect.
  • a computer-readable storage medium on which computer program instructions are stored, and when executed by a processor, the computer program instructions implement the first aspect or any one of the first aspects Possible methods.
  • a computer program instruction which when executed on a computer, causes the computer to execute the first aspect or any possible aspect of the first aspect method.
  • the beneficial effects of the embodiments of the present invention include: first, the first network node receives a data packet, wherein the data packet includes a destination address, and the destination address is used to characterize the target network node and the first network node. Relative position in the NOC; in response to determining that it 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 will modify The subsequent data packet is sent 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 the adjacent network node is based on The modified destination address in the received modified data packet determines that it is the target network node, and sends the modified data packet to the slave data receiving unit and other network nodes connected to it, and the other network nodes will modify After the data packet is sent to other slave data receiving unit connected to itself, if the adjacent network node determines that it is not the target network node Process again according
  • the data packet contains only the destination address, there is no need to add an extra number of headers in the data packet, which reduces overhead; and the first network node determines the direction of the data packet according to the destination address, not BS can be used to achieve data multicast, improve transmission efficiency, and reduce power consumption.
  • FIG. 1 is a schematic structural diagram of a data transmission provided by the prior art
  • FIG. 2 is a flowchart of a data transmission method for an on-chip network NOC provided by an embodiment of the present invention
  • FIG. 3 is a schematic structural diagram of a data transmission provided by an embodiment of the present invention.
  • FIG. 5 is a schematic structural diagram of another data transmission provided by an embodiment of the present invention.
  • FIG. 6 is a flowchart of a data transmission method for an on-chip network NOC provided by an embodiment of the present invention.
  • FIG. 7 is a schematic diagram of a data transmission device for an on-chip network NOC provided by 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.
  • the BS uses a dedicated circuit, and it cannot reuse the circuit with other network nodes. Circuit area; 4) The BS inquires the destination address of the multicast according to the information of the multicast flag in the header of the received data packet, and then repackages the destination address with the valid data in the data packet and sends it out.
  • the present invention provides a data transmission method for network-on-chip NOC, as shown in FIG. 2, specifically including:
  • Step S200 The first network node receives a data packet, where the data packet includes a destination address, and the destination address is used to characterize the relative position of the target network node and the first network node in the NOC.
  • the data packet may be sent by the main data sending unit, or may be sent by another network node.
  • the above data packet is packaged according to a conventional data packet format, and the data packet header contains the ordinary destination address and other Information, there is no need to increase the number of additional headers.
  • Step S201 In response to determining that it 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 preset propagation direction is divided into two cases.
  • the NOC is a one-dimensional network including multiple 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, suppose The destination address is (a), where the absolute value of a is greater than 0.
  • the NOC is a matrix network including multiple 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 relative coordinates include a first direction coordinate x and a second direction coordinate y.
  • the propagation direction of the data packet is the first direction and then the second direction, or the second direction and then the first direction.
  • the destination address is (x, y), where the absolute values of x and y are greater than 0, respectively.
  • the absolute values of x and y represent the distance traveled, and the symbols represent the direction of propagation.
  • the transmission process is the process of decreasing the absolute value of x and y.
  • X and y can be arbitrarily set according to actual relative positions, which is not limited in the embodiment of the present invention.
  • the first network node modifies the destination address in the data packet to (2).
  • the propagation direction is determined to be the first direction and then the second direction
  • the value of x is 3
  • the value of Y is 2
  • the destination address in the data packet is (3, 2), where , (3, 2) is the relative position of the first network node and the target network node (0, 0). Since the propagation direction is the first direction and then the second direction, the first network node converts the destination in the data packet.
  • the address is modified to (2, 2); in the second case, it is assumed that the propagation direction is determined to be the second direction before the first direction. Therefore, the first network node modifies the destination address in the data packet to (3, 1).
  • the propagation direction can be arbitrarily set, 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, and the adjacent network node is a new first Network node.
  • the modified data packet is sent to a network node adjacent to the first network node according to a preset propagation direction, and the relative position of the adjacent network node and the target network node is (2) .
  • the modified data packet is sent to the adjacent network node with the destination address (2, 2) of the first network node, the adjacent network node and the target network node The relative position is (2, 2).
  • the first network node receives a data packet, wherein the data packet includes a destination address, and the destination address is used to characterize the target network node and the first network node in the NOC Relative position; in response to determining that it 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 translates the modified data packet according to The preset propagation direction is sent to a network node adjacent to the first network node.
  • the adjacent network node is a new first network node.
  • the data packet contains only the destination address, the data packet There is no need to increase the number of additional packet headers, reducing overhead; and the first network node determines the direction of data packet propagation based on the destination address, without using BS to achieve data multicast, improve transmission efficiency, reduce power consumption .
  • the method further includes: the first network node determining whether it is the target network node according to the destination address in the data packet.
  • the method further includes: in response to determining that it is the target network node, the first network node sends the data packet to a slave data receiving unit connected thereto.
  • the propagation direction of the data packet is fixed unidirectional propagation in a one-dimensional network
  • the destination address in the received data packet is (0)
  • it is determined that it is the target network node assuming the propagation direction matrix of the data packet In the network, the first direction is followed by the second direction or the second direction is followed by the first direction. If the destination address in the received data packet is (0, 0), it is determined that it is the target network node.
  • the first network node while the first network node sends the data packet to the slave data transfer unit connected thereto, it also includes sending the data packet to at least one network node designated by the register according to a preset register, Among them, the register can also set whether to change the destination address, if it does not change, the next network node can send the data packet to the slave data receiving unit connected to it after receiving the data packet, and can also send the data packet according to the setting of the register Send to other network nodes; if the register setting changes the destination address, return to step S200 to continue processing.
  • the register can also set whether to change the destination address, if it does not change, the next network node can send the data packet to the slave data receiving unit connected to it after receiving the data packet, and can also send the data packet according to the setting of the register Send to other network nodes; if the register setting changes the destination address, return to step S200 to continue processing.
  • the register in the first network node is 3 digits, corresponding to the three network nodes adjacent to it.
  • the set value may be 1 or 0, which is not limited in the embodiment of the present invention. For example, if the setting value is 1, it means that it needs to be sent to the corresponding network node. If the setting value is 0, it means that it does not need to be sent to the corresponding network node.
  • the value of the register in the first network node is 110, it corresponds to the middle Nodes A, B, and C indicate that the data packets are sent to A and B without modification, and the data packets are not sent to C. After receiving the data packets, A and B serve as new target network nodes, and perform corresponding actions according to their pre-set registers. Operation.
  • the following uses two specific embodiments to describe in detail a data transmission method for an on-chip network NOC provided by an embodiment of the present invention.
  • the master data sending unit M multicasts the data packet to the slave data receiving units S0, S1 and S2, n0 receives To the data packet sent by M, send the data packet to n1, n1 send the data packet to S0 and n3, n3 send the data packet to S1 and n4, n4 send the data packet to S2, the specific processing flow As shown in Figure 4:
  • Step S400 The network node n0 receives the first data packet sent by M, and determines that the destination address in the first data packet is (1).
  • Step S401 Determine that the preset propagation direction of the network node n0 is fixed one-way propagation.
  • Step S402 The network node n0 modifies the destination address in the first data packet to (0), and determines the data packet with the modified address (0) as the second data packet.
  • Step S403 The network node n0 sends the second data packet to the network node n1.
  • Step S404 The network node n1 receives the second data packet.
  • Step S405 The network node n1 determines that it is the target network node according to the destination address (0) in the second data packet.
  • Step S406 The network node n1 sends the second data packet to the connected S0, and sends the second data packet to the network node n3 without modification according to the setting of its own register.
  • Step S407 The network node n3 determines that it is the target network node according to the destination address (0) in the second data packet.
  • Step S408 The network node n3 sends the second data packet to S1 connected thereto, and sends the second data packet to the network node n4 without modification according to the setting of its own register.
  • the second data packet is not sent to the network node n2.
  • Step S409 The network node n4 determines that it is the target network node according to the destination address (0) in the second data packet.
  • Step S410 The network node n4 sends the second data packet to S2 connected thereto.
  • the specific schematic diagram is shown in FIG. 5, wherein the multicast data may be the processing unit circuit or the main data sending unit M, and the propagation direction is the first X axis After the Y axis, the specific processing flow is shown in Figure 6.
  • Step S600 The network node n0 receives the first data packet sent by the core C0, and determines that the destination address in the first data packet is (1, 1).
  • Step S601 Determine that it is not the target network node according to the destination address, and determine that the preset propagation direction of the network node n0 is the first X axis.
  • Step S602 The network node n0 modifies the destination address in the first data packet to (0, 1), and determines the modified data packet with the address (0, 1) as the second data packet.
  • Step S603 The network node n0 sends the second data packet to the network node n1.
  • Step S604 The network node n1 receives the second data packet.
  • Step S605 The network node n1 determines that it is not the target network node according to the destination address (0, 1) in the second data packet.
  • Step S606 The network node n1 modifies the destination address in the second data packet to (0, 0), and determines the modified data packet with the address (0, 0) as the third data packet.
  • the network node n1 after receiving the second data packet, the network node n1 first adopts the strategy of transmitting in the X-axis direction, but at this time, the X of the destination address in the packet header is already 0, so the transmission direction is changed to the Y-axis.
  • Step S607 The network node n4 receives the third data 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 data packet, sends the third data packet to the core C4 connected to it, and sends the third data packet according to the setting of its own register Three data packets are sent to network node n5 and network node n7.
  • 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, indicating that the third data packet needs to be sent to the network node n5 and the network node n7 without any modification.
  • the value of the bit corresponding to the network node n3 in the register is 0, so no data packet is sent to n3.
  • Step S609 The network node n5 receives the third data packet.
  • Step S610 The network node n5 determines that it 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 to it; the network node n5 according to the setting of its own register It is determined that the values of the adjacent network nodes are all 0, and then the transmission is stopped.
  • Step S611 The network node n7 receives the third data 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 data packet, and sends the third data packet to the core C7 connected to it; the network node n7 according to the setting of its own register Judging that the value of the bit of the adjacent network node n6 is 1, the network node n6 repeats this step to continue sending.
  • step S609 and step S611 are performed simultaneously.
  • the data transmission method for the on-chip network NOC proposed by the embodiment of the present invention also has the following advantages.
  • the control circuit or core of the many-core chip can dynamically configure the registers in the network node at any time, making the routing of data packets very flexible.
  • Network nodes can decide whether to perform multicast and dynamically configure the destination of multicast according to the dynamic configuration of registers; therefore, data packets do not need to add additional flag bits, which improves data transmission efficiency; intermediate network nodes do not require any additional storage addresses Space reduces the chip area; no additional unpacking and packaging is required during multicast, which reduces the delay of data transmission; data packets do not add additional routing paths, reducing the delay of data transmission; data packets do not Certain nodes must be passed to reduce the congestion of many-core chips.
  • the data transmission device for the on-chip network NOC of this embodiment includes: a receiving unit 71, a processing unit 72, and a sending unit 73, wherein the receiving unit 71 is used to receive a data packet, wherein the data The packet contains a destination address, which is used to characterize the relative position of the target network node and the first network node in the NOC; the processing unit 72 is used to respond to determining that it is not the target network node, according to The set propagation direction modifies the destination address in the data packet; the sending unit 73 is configured to send the modified data packet to a network adjacent to the first network node according to the preset propagation direction Node, the adjacent network node is a new first network node.
  • the NOC is a one-dimensional network including multiple 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.
  • the processing unit is specifically configured to: reduce the absolute value of the coordinates in the destination address in the data packet by 1 according to the propagation direction in the one-dimensional network.
  • the NOC is a matrix network including multiple 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 dimensional relative coordinates include a first direction coordinate x and a second direction coordinate y.
  • the processing unit is specifically configured to: in response to the coordinate value of the first direction coordinate x in the destination address being a positive integer greater than 0, determine the data packet's The propagation direction is the first direction before the second direction; according to the first direction, the absolute value of the coordinate x of the first direction coordinate in the destination address in the data packet is decreased by 1.
  • the processing unit is further specifically configured to: in response to the coordinate value of the first direction coordinate x in the destination address being a positive integer greater than 0, determine the data packet according to the preset propagation direction The propagation direction of is the second direction before the first direction; according to the second direction, the absolute value of the coordinate of the second direction coordinate y in the destination address in the data packet is decreased by 1.
  • the processing unit is further configured to: in response to determining that it is the target network node, the sending unit to send the data packet to the first network node Connected slave data receiving unit.
  • the sending unit is further configured to send the modified data packet to at least one network specified by the register according to a preset register Node, the at least one network node is a new target network node.
  • the electronic device of this embodiment includes a processing core 11-1N and a network on chip 14.
  • the processing cores 11-1N are all connected to the on-chip network 14.
  • the on-chip network 14 is used to exchange data between the N processing cores and external data.
  • the N processing cores store instructions, and according to the instructions, the electronic device performs the following operations: a first network node receives a data packet, where the data packet includes a destination address, and the destination address is used for Characterize the relative position of the target network node and the first network node in the NOC; in response to determining that it is not the target network node, the first network node modifies the data in the data packet according to a preset propagation direction Destination address; the first network node sends the modified data packet to the network node adjacent to the first network node according to the preset propagation direction, the adjacent network node is a new A network node.
  • aspects of embodiments of the present invention may be implemented as a system, method, or computer program product. Therefore, various aspects of the embodiments of the present invention may take the form of a complete hardware implementation mode, a complete software implementation mode (including firmware, resident software, microcode, etc.) or generally referred to as “circuits" or “modules” herein. “Or” system “that combines software aspects with hardware aspects.
  • various aspects of embodiments of the present invention may take the form of a computer program product implemented in one or more computer-readable media, the computer-readable medium having computer-readable program code implemented thereon.
  • the computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium.
  • the computer-readable storage medium may be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or devices, or any suitable combination of the foregoing.
  • a more specific example (not an exhaustive list) of computer-readable storage media will include the following: electrical connection with one or more wires, floppy disk for portable computer, hard disk, random access memory (RAM), read-only memory ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the foregoing.
  • a computer-readable storage medium may be any tangible medium that can contain or store a program used by or in conjunction with an instruction execution system, device, or device.
  • the computer-readable signal medium may include a propagated data signal having computer-readable program code implemented therein as in baseband or as part of a carrier wave. Such a propagated signal can 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 computer-readable medium that is not a computer-readable storage medium and that can communicate and propagate programs used by or in conjunction with an instruction execution system, device, or device Or transmission.
  • the program code implemented on the 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 performing operations directed to various 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 ++, etc .; And conventional process programming languages such as the "C" programming language or similar programming languages.
  • the program code may be executed entirely on the user's computer, partly on the user's computer as an independent software package; partly on the user's computer and partly on a remote computer; or entirely on the remote computer or server.
  • the remote computer can 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 can be connected to an external computer (for example, by using the Internet service provider's Internet) .
  • LAN local area network
  • WAN wide area network
  • Internet service provider's Internet for example, by using the Internet service provider's Internet
  • These computer program instructions can also be stored in a computer-readable medium that can instruct a computer, other programmable data processing device, or other apparatus to operate in a specific manner, so that the generation of instructions stored in the computer-readable medium includes implementation in flowcharts and / Or block diagrams or artifacts of specified functions / actions in the blocks.
  • Computer program instructions can also be loaded onto a computer, other programmable data processing device, or other device to cause a series of operable steps to be performed on the computer, other programmable device, or other device to produce a computer-implemented process so that the computer
  • the instructions executed on other programmable devices provide procedures for implementing the functions / acts specified in the flowchart and / or block diagram blocks or blocks.

Landscapes

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

Abstract

Disclosed are a data transmission method and device for network-on-chip (NOC) and an electronic device, used for solving the problems of high expenditure, high power consumption and low transmission efficiency when a many-core chip uses NOC for core-to-core communication. The method comprises the following steps: a first network node receives a data package comprising a destination address for representing the relative position of a target network node and a first network node in NOC (S200); in response to the determination of not being the target network node, the first network node amends the destination address in the data package according to a preset propagation direction (S201); the first network node sends the amended data package to a network node adjacent to the first network node according to the preset propagation direction, and the adjacent network node becomes a new first network node (S202).

Description

用于片上网络NOC的数据传输方法、装置及电子设备Data transmission method, device and electronic equipment for network on chip NOC
本申请要求了2018年11月09日提交的、申请号为201811333210.7、发明名称为“用于片上网络NOC的数据传输方法、装置及电子设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application filed on November 09, 2018 with the application number 201811333210.7 and the invention titled "Data transmission method, device and electronic equipment for network-on-chip NOC", the entire content of which is cited by reference Incorporated in this application.
技术领域Technical field
本发明涉及通信技术领域,尤其涉及一种用于片上网络NOC的数据传输方法、装置及电子设备。The present invention relates to the field of communication technology, and in particular, to a data transmission method, device, and electronic device for network-on-chip NOC.
背景技术Background technique
随着人工智能技术的发展,用户对芯片处理能力的要求越来越高,由于单核芯片的处理能力有限,因此众核芯片的使用越来越广泛。在众核芯片设计中,使用片上网络(Networks on Chip,NOC)实现核与核之间的通信,因此,NOC的性能是众核芯片性能的关键。With the development of artificial intelligence technology, users have higher and higher requirements on chip processing capabilities. Due to the limited processing power of single-core chips, many-core chips are more and more widely used. In the design of many-core chips, Networks on Chip (NOC) is used to realize communication between cores. Therefore, the performance of NOC is the key to the performance of many-core chips.
在现有技术中,众核芯片采用NOC进行核与核之间的通信,举例说明:主数据发送单元(Master,M)和多个从数据接收单元(Slave,S)是需要进行通信的核,M将数据包多播给多个S时,具体方式如下:首先M在其需要发送的数据包的包头中添加多播标志位的信息,其中,所述多播标志位用于表示所述数据包需要多播给哪些特定的目的地,然后M将数据包发送给与自己相连的中间网络节点(Node,n),n将数据包直接或者通过其他中间网络节点发送给特定的中间多播站(Broadcasting Station,BS),其中,所述BS也可以称为多播节点,所述BS收到数据包后,根据数据包包头中的多播标志位的信息在BS的存储区中查找各多播目的地的地址,确定目的地的个数,然后所述BS按照目的地的个数将数据包中的数据进行复制,每份复制的数据与查找到的各多播目的地的地址中的一个打包,将多个打包好的数据包并行多播给其对应的目的地,具体的,可以直接将打包好的数据包发送给目的地,也可以通过中间网络节点发送给目的地。具体如图1所示,以其中一条线路为例,M通过n0和n1将数据包发送给BS0,BS0通过n1和n2将打包好的数据包发送给S0以及BS1,BS1将打包好的数据通过n3发送给S1,或者直接发送给S2。In the prior art, many-core chips use NOC for core-to-core communication. For example, the master data sending unit (Master, M) and multiple slave data receiving units (Slave, S) are the cores that need to communicate. When M multicasts a data packet to multiple S, the specific method is as follows: First, M adds the information of the multicast flag in the header of the data packet that it needs to send, where the multicast flag is used to indicate the To which specific destinations the data packet needs to be multicast, then M sends the data packet to the intermediate network node (Node, n) connected to it, n sends the data packet to the specific intermediate multicast directly or through other intermediate network nodes Broadcasting Station (BS), where the BS can also be called a multicast node, and after receiving the data packet, the BS searches for each in the storage area of the BS according to the information of the multicast flag in the packet header Multicast destination address, determine the number of destinations, and then the BS copies the data in the data packet according to the number of destinations, each copy of the data and the address of each multicast destination found One of the packages, Good packetizing the plurality of parallel corresponding to the multicast destination, specific, can be directly packaged data packet to the destination, may be transmitted to a destination via an intermediate network node. Specifically, as shown in Figure 1, taking one of the lines as an example, M sends the data packet to BS0 through n0 and n1, BS0 sends the packaged data packet to S0 and BS1 through n1 and n2, and BS1 passes the packaged data through n3 is sent to S1, or directly to S2.
采用现有技术中NOC进行核与核之间的通信的方法,数据包需要增加额外的包头 位数,有多少个可能的多播目的地的,就需要增加多少标志位,开销巨大,BS需要传输额外的包头信息,会带来额外的传输效率损失,并且在众核芯片中,BS的数量有限,若多个M同时需要进行多播,发送数据包给S,都需要先发送给BS,会增加NOC的拥塞度,降低众核芯片的性能,也会因此带来额外的路径,降低传输效率,增加功耗。Using the NOC in the existing technology for core-to-core communication, the data packet needs to increase the number of additional headers. As many possible multicast destinations, the number of flags needs to be added. The overhead is huge, and the BS needs Transmitting additional packet header information will bring additional loss of transmission efficiency. In many-core chips, the number of BSs is limited. If multiple Ms need to be multicast at the same time, sending data packets to S must be sent to BS first. Will increase the congestion of NOC, reduce the performance of many core chips, and will also bring additional paths, reduce transmission efficiency, and increase power consumption.
发明内容Summary of the invention
有鉴于此,本发明提供了一种用于片上网络NOC的数据传输方法、装置及电子设备,用于解决现有技术中在众核芯片采用NOC进行核与核之间的通信时,开销巨大、功耗大,传输效率较低的问题。In view of this, the present invention provides a data transmission method, device and electronic device for network-on-chip NOC, which is used to solve the problem that when many core chips use NOC for core-to-core communication in the prior art, the overhead is huge 1. Large power consumption and low transmission efficiency.
根据本发明实施例的第一个方面,提供了一种用于片上网络NOC的数据传输方法,包括:第一网络节点接收数据包,其中,所述数据包中包含目的地地址,所述目的地地址为用于表征目标网络节点和所述第一网络节点在NOC中的相对位置;响应于确定自身不是所述目标网络节点,所述第一网络节点根据预设的传播方向修改所述数据包中的所述目的地地址;所述第一网络节点将修改后的数据包按照所述预设的传播方向发送给与所述第一网络节点相邻的网络节点,所述相邻的网络节点为新的第一网络节点。According to a first aspect of the embodiments of the present invention, there is provided a data transmission method for an on-chip network NOC, including: a first network node receives a data packet, wherein the data packet includes a destination address and the destination The ground address is used to characterize the relative position of the target network node and the first network node in the NOC; in response to determining that it is not the target network node, the first network node modifies the data according to a preset propagation direction The destination address in the packet; the first network node sends the modified data packet to the network node adjacent to the first network node according to the preset propagation direction, the adjacent network The node is the new first network node.
本发明实施例中,数据包中只包含目的地地址,数据包中不需要增加额外的包头位数,减小了开销;并且第一网络节点根据目的地地址确定数据包的传播方向,不需要采用BS即可实现数据的多播,提高传输效率,减小功耗。In the embodiment of the present invention, the data packet contains only the destination address, and there is no need to add an extra number of headers in the data packet, which reduces overhead; and the first network node determines the propagation direction of the data packet according to the destination address. Using BS can achieve data multicast, improve transmission efficiency and reduce power consumption.
在一个实施例中,所述NOC为包括多个网络节点的一维网络,所述目的地地址为所述目标网络节点和所述第一网络节点在所述一维网络中的相对坐标。In one embodiment, the NOC is a one-dimensional network including multiple 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.
在一个实施例中,所述第一网络节点根据预设的传播方向修改所述数据包中的目的地地址,具体包括:所述第一网络节点根据在所述一维网络中的传播方向,将所述数据包中的目的地地址中的坐标的绝对值减1。In one embodiment, the first network node modifies the destination address in the data packet according to a preset propagation direction, which specifically includes: the first network node according to the propagation direction in the one-dimensional network, The absolute value of the coordinates in the destination address in the data packet is decreased by one.
在一个实施例中,所述NOC为包括多个网络节点的矩阵网络,所述目的地地址为所述目标网络节点和所述第一网络节点在所述矩阵网络中的二维相对坐标,所述二维相对坐标包括第一方向坐标x和第二方向坐标y。In one embodiment, the NOC is a matrix network including multiple network nodes, and the destination address is the two-dimensional relative coordinates of the target network node and the first network node in the matrix network. The two-dimensional relative coordinates include a first direction coordinate x and a second direction coordinate y.
在一个实施例中,所述第一网络节点根据预设的传播方向修改所述数据包中的所述目的地地址,具体包括:所述第一网络节点响应于所述目的地地址中的第一方向坐标x的坐标值为大于0的正整数,根据所述预设的传播方向确定所述数据包的传播方 向为先第一方向后第二方向;所述第一网络节点根据所述第一方向,将所述数据包中的目的地地址中的第一方向坐标x的坐标的绝对值减1。In one embodiment, the first network node modifies the destination address in the data packet according to a preset propagation direction, which specifically includes: the first network node responds to the first The coordinate value of the one-direction coordinate x is a positive integer greater than 0, and the propagation direction of the data packet is determined as the first direction and then the second direction according to the preset propagation direction; the first network node is based on the first In one direction, the absolute value of the coordinate x in the first direction in the destination address in the data packet is decreased by one.
在一个实施例中,所述第一网络节点根据预设的传播方向修改所述数据包中的所述目的地地址,具体包括:所述第一网络节点响应于所述目的地地址中的第一方向坐标x的坐标值为大于0的正整数,根据所述预设的传播方向确定所述数据包的传播方向为先第二方向后第一方向;所述第一网络节点根据所述第二方向,将所述数据包中的目的地地址中的第二方向坐标y的坐标的绝对值减1。In one embodiment, the first network node modifies the destination address in the data packet according to a preset propagation direction, which specifically includes: the first network node responds to the first The coordinate value of the one-direction coordinate x is a positive integer greater than 0, and the propagation direction of the data packet is determined as the second direction and then the first direction according to the preset propagation direction; the first network node is based on the first In the two directions, the absolute value of the coordinate of the second direction coordinate y in the destination address in the data packet is decreased by 1.
在一个实施例中,所述第一网络节点接收数据包之后,该方法还包括:响应于确定自身是所述目标网络节点,所述第一网络节点将所述数据包发送给与所述第一网络节点相连的从数据接收单元。In one embodiment, after the first network node receives the data packet, the method further includes: in response to determining that it is the target network node, the first network node sends the data packet to the first network node. A slave data receiving unit connected to a network node.
在一个实施例中,所述第一网络节点确定自身是所述目标网络节点之后,该方法还包括:所述第一网络节点根据预先设置的寄存器,将所述修改后的数据包发送给所述寄存器指定的至少一个网络节点,所述至少一个网络节点为新的所述目标网络节点。In one embodiment, after the first network node determines that it is the target network node, the method further includes: the first network node sends the modified data packet to the site according to a preset register At least one network node specified by the register, the at least one network node being the new target network node.
本发明实施例中,可以通过动态配置网络节点中的寄存器,使数据包的路由非常灵活,每一个网络节点均可根据寄存器动态配置决定是否进行多播,以及动态配置多播的目的地;数据包不需要增加额外的标志位,提高了数据传输效率。In the embodiment of the present invention, the register in the network node can be dynamically configured to make the routing of the data packet very flexible. Each network node can decide whether to perform multicast according to the dynamic configuration of the register, and dynamically configure the destination of the multicast; data The packet does not need to add additional flag bits, which improves the data transmission efficiency.
根据本发明实施例的第二个方面,提供了一种用于片上网络NOC的数据传输装置,包括:接收单元,用于接收数据包,其中,所述数据包中包含目的地地址,所述目的地地址为用于表征目标网络节点和第一网络节点在NOC中的相对位置;处理单元,用于响应于确定自身不是所述目标网络节点,根据预设的传播方向修改所述数据包中的所述目的地地址;发送单元,用于将修改后的数据包按照所述预设的传播方向发送给与所述第一网络节点相邻的网络节点,所述相邻的网络节点为新的第一网络节点。According to a second aspect of the embodiments of the present invention, there is provided a data transmission device for an on-chip network NOC, including: a receiving unit for receiving a data packet, wherein the data packet includes a destination address, the The destination address is used to characterize the relative position of the target network node and the first network node in the NOC; the processing unit is configured to modify the data packet according to a preset propagation direction in response to determining that it is not the target network node The destination address; 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, the adjacent network node is new The first network node.
在一个实施例中,所述NOC为包括多个网络节点的一维网络,所述目的地地址为所述目标网络节点和所述第一网络节点在所述一维网络中的相对坐标。In one embodiment, the NOC is a one-dimensional network including multiple 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.
在一个实施例中,所述处理单元具体用于:根据在所述一维网络中的传播方向,将所述数据包中的目的地地址中的坐标的绝对值减1。In one embodiment, the processing unit is specifically configured to: reduce the absolute value of the coordinates in the destination address in the data packet by 1 according to the propagation direction in the one-dimensional network.
在一个实施例中,所述NOC为包括多个网络节点的矩阵网络,所述目的地地址为所述目标网络节点和所述第一网络节点在所述矩阵网络中的二维相对坐标,所述二维相对坐标包括第一方向坐标x和第二方向坐标y。In one embodiment, the NOC is a matrix network including multiple network nodes, and the destination address is the two-dimensional relative coordinates of the target network node and the first network node in the matrix network. The two-dimensional relative coordinates include a first direction coordinate x and a second direction coordinate y.
在一个实施例中,所述处理单元具体用于:响应于所述目的地地址中的第一方向 坐标x的坐标值为大于0的正整数,根据所述预设的传播方向确定所述数据包的传播方向为先第一方向后第二方向;根据所述第一方向,将所述数据包中的目的地地址中第一方向坐标x的坐标的绝对值减1。In one embodiment, the processing unit is specifically configured to: in response to the coordinate value of the first direction coordinate x in the destination address being a positive integer greater than 0, determine the data according to the preset propagation direction The propagation direction of the packet is the first direction and then the second direction; according to the first direction, the absolute value of the coordinate x of the first direction coordinate in the destination address in the data packet is decreased by 1.
在一个实施例中,所述处理单元具体还用于:响应于所述目的地地址中的第一方向坐标x的坐标值为大于0的正整数,根据所述预设的传播方向确定所述数据包的传播方向为先第二方向后第一方向;根据所述第二方向,将所述数据包中的目的地地址中的第二方向坐标y的坐标的绝对值减1。In an embodiment, the processing unit is further specifically configured to: in response to the coordinate value of the first direction coordinate x in the destination address being a positive integer greater than 0, determine the The propagation direction of the data packet is the second direction before the first direction; according to the second direction, the absolute value of the coordinate of the second direction coordinate y in the destination address in the data packet is decreased by 1.
在一个实施例中,所述接收数据包之后,所述处理单元还用于:响应于确定自身是所述目标网络节点,所述发送单元用于将所述数据包发送给与所述第一网络节点相连的从数据接收单元。In one embodiment, after the data packet is received, the processing unit is further configured to: in response to determining that it is the target network node, the sending unit to send the data packet to the first A slave data receiving unit connected to a network node.
在一个实施例中,所述响应于确定自身是所述目标网络节点之后,所述发送单元还用于:据预先设置的寄存器,将所述修改后的数据包发送给所述寄存器指定的至少一个网络节点,所述至少一个网络节点为新的目标网络节点。In one embodiment, after the response determines that it is the target network node, the sending unit is further configured to: according to a preset register, send the modified data packet to at least the register specified at least One network node, the at least one network node is a new target network node.
根据本发明实施例的第三个方面,提供了一种电子设备,所述电子设备包括:多个处理核;以及片上网络,被配置为交互所述多个处理核间的数据和外部数据;所述多个处理核中存储指令,根据所述指令所述电子设备执行如第一方面或第一方面任一种可能所述的方法。According to a third aspect of the embodiments of the present invention, there is provided an electronic device including: a plurality of processing cores; and an on-chip network configured to interact with data between the plurality of processing cores and external data; An instruction is stored in the plurality of processing cores, and according to the instruction, the electronic device executes the method as described in the first aspect or any possible aspect of the first aspect.
根据本发明实施例的第四个方面,提供了一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第一方面或第一方面任一种可能所述的方法。According to a fourth aspect of the embodiments of the present invention, there is provided a computer-readable storage medium on which computer program instructions are stored, and when executed by a processor, the computer program instructions implement the first aspect or any one of the first aspects Possible methods.
根据本发明实施例的第五个方面,提供了一种计算机程序指令,所述计算机程序指令在计算机上运行时,使得所述计算机执行如第一方面或第一方面任一种可能所述的方法。According to a fifth aspect of the embodiments of the present invention, there is provided a computer program instruction, which when executed on a computer, causes the computer to execute the first aspect or any possible aspect of the first aspect method.
本发明实施例的有益效果包括:首先第一网络节点接收数据包,其中,所述数据包中包含目的地地址,所述目的地地址为用于表征目标网络节点和所述第一网络节点在NOC中的相对位置;响应于确定自身不是所述目标网络节点,所述第一网络节点根据预设的传播方向修改所述数据包中的所述目的地地址;所述第一网络节点将修改后的数据包按照所述预设的传播方向发送给与所述第一网络节点相邻的网络节点,所述相邻的网络节点为新的第一网络节点,所述相邻的网络节点根据接收到的修改后的数据包中的修改后的目的地地址判断自身是目标网络节点,将所述修改后的数据包发送 给与其相连的从数据接收单元和其它网络节点,其它网络节点将修改后的数据包再发送给与自身相连的其他从数据接收单元,若所述相邻的网络节点判断自身不是目标网络节点再次根据上述处理方式进行处理。本发明实施例中,由于数据包中只包含目的地地址,数据包中不需要增加额外的包头位数,减小了开销;并且第一网络节点根据目的地地址确定数据包的传播方向,不需要采用BS即可实现数据的多播,提高传输效率,减小功耗。The beneficial effects of the embodiments of the present invention include: first, the first network node receives a data packet, wherein the data packet includes a destination address, and the destination address is used to characterize the target network node and the first network node. Relative position in the NOC; in response to determining that it 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 will modify The subsequent data packet is sent 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 the adjacent network node is based on The modified destination address in the received modified data packet determines that it is the target network node, and sends the modified data packet to the slave data receiving unit and other network nodes connected to it, and the other network nodes will modify After the data packet is sent to other slave data receiving unit connected to itself, if the adjacent network node determines that it is not the target network node Process again according to the above processing method. In the embodiment of the present invention, since the data packet contains only the destination address, there is no need to add an extra number of headers in the data packet, which reduces overhead; and the first network node determines the direction of the data packet according to the destination address, not BS can be used to achieve data multicast, improve transmission efficiency, and reduce power consumption.
附图说明BRIEF DESCRIPTION
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:The above and other objects, features and advantages of the present invention will be more clear through the following description of the embodiments of the present invention with reference to the drawings, in the drawings:
图1是现有技术提供的一种数据传输的结构示意图;FIG. 1 is a schematic structural diagram of a data transmission provided by the prior art;
图2是本发明实施例提供的一种用于片上网络NOC的数据传输方法流程图;2 is a flowchart of a data transmission method for an on-chip network NOC provided by an embodiment of the present invention;
图3是本发明实施例提供的一种数据传输的结构示意图;3 is a schematic structural diagram of a data transmission provided by an embodiment of the present invention;
图4是本发明实施例提供的再一种用于片上网络NOC的数据传输方法流程图;4 is a flowchart of yet another data transmission method for an on-chip network NOC provided by an embodiment of the present invention;
图5是本发明实施例提供的另一种数据传输的结构示意图;5 is a schematic structural diagram of another data transmission provided by an embodiment of the present invention;
图6是本发明实施例提供的一种用于片上网络NOC的数据传输方法流程图;6 is a flowchart of a data transmission method for an on-chip network NOC provided by an embodiment of the present invention;
图7是本发明实施例提供的一种用于片上网络NOC的数据传输装置示意图;7 is a schematic diagram of a data transmission device for an on-chip network NOC provided by an embodiment of the present invention;
图8是本发明实施例提供的一种电子设备结构示意图。8 is a schematic structural diagram of an electronic device according to an embodiment of the present invention.
具体实施方式detailed description
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的。The present invention is described below based on examples, but the present invention is not limited to these examples. In the following detailed description of the present invention, some specific details are described in detail. Those skilled in the art can fully understand the application without the description of these details. In addition, those of ordinary skill in the art should understand that the drawings provided herein are for illustrative purposes.
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。Unless the context clearly requires it, the words "including", "including" and the like in the entire specification and claims should be interpreted as the meaning of inclusive rather than exclusive or exhaustive meaning; that is, "including but not limited to" Meaning.
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,不代表顺序,且不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。In the description of the present invention, it should be understood that the terms "first", "second", etc. are for descriptive purposes only, do not represent order, and cannot be understood as indicating or implying relative importance. In addition, in the description of the present invention, unless otherwise stated, the meaning of "plurality" is two or more.
在现有技术中,众核芯片采用NOC进行核与核之间的通信,以背景技术中将数据包从主数据发送单元发送至多个从数据接收单元的方法为例,存在很多缺点,具体如下:1)数据包中需要增加额外的包头位数,有多少个多播目的地的可能,就需要增加多少标志位,例如,由一千个核组成的众核芯片中,任一个核都可能将数据包多播给其他核,那么包头将增加除自己以外的其他所有核的标志位,也就是1000-1=999位,开销巨大,并且传输额外的包头信息会带来额外的效率传输损失;2)由于采用多播节点BS发送所述数据包,因此BS中需要设置用于存储该多播节点所有可能多播到的目的地地址的专门的存储区,例如,由一千个核组成的众核芯片中,若任一个多播节点可能需要将接收的数据包多播给一百个目的核,则需要保存这一百个目的核的地址,导致该BS的存储开销巨大,在整个众核芯片中,可能存在很多个上述多播节点,导致整个众核芯片的存储开销更加巨大;3)BS使用专门的电路,与其它网络节点不能复用电路,需要额外的电路面积;4)BS根据接收到的数据包的包头中的多播标志位的信息,查询多播的目的地地址,然后将目的地地址与数据包中的有效数据重新打包,再发送出去,增加了额外的查询和打包,增加了功耗;5)在一个众核芯片中,BS的数量是有限的,若同时有多个M需要进行多播,会增加NOC的拥塞度,降低整个众核芯片的性能;6)将数据包发送到某些目的地时,采用BS多播会带来额外的路径,降低了路由的效率,增加了数据包送达的时间,增加了数据传输所消耗的功耗。In the prior art, many-core chips use NOC for core-to-core communication. Taking the method of sending data packets from the master data sending unit to multiple slave data receiving units in the background art as an example, there are many shortcomings, as follows : 1) Extra packet header digits need to be added to the data packet. As many multicast destinations are possible, as many flag bits need to be added. For example, any core in a multi-core chip composed of a thousand cores may be Multicast the data packet to other cores, then the packet header will increase the flag bit of all other cores except itself, that is 1000-1 = 999 bits, the overhead is huge, and the transmission of additional packet header information will bring additional efficiency transmission loss ; 2) Since the multicast node BS is used to send the data packet, a special storage area for storing all possible destination addresses of the multicast node needs to be set in the BS, for example, consisting of a thousand cores Among the many-core chips, if any multicast node may need to multicast the received data packet to one hundred destination cores, the address of the one hundred destination cores needs to be saved, resulting in the storage of the BS The overhead is huge. In the entire many-core chip, there may be many of the above-mentioned multicast nodes, which leads to a greater storage overhead for the entire many-core chip; 3) The BS uses a dedicated circuit, and it cannot reuse the circuit with other network nodes. Circuit area; 4) The BS inquires the destination address of the multicast according to the information of the multicast flag in the header of the received data packet, and then repackages the destination address with the valid data in the data packet and sends it out. Added additional query and packaging, increased power consumption; 5) In a many-core chip, the number of BS is limited, if there are multiple M need to be multicast at the same time, it will increase the NOC congestion and reduce the entire crowd The performance of the core chip; 6) When sending data packets to certain destinations, the use of BS multicast will bring additional paths, reduce the efficiency of routing, increase the time of data packet delivery, and increase the consumption of data transmission Power consumption.
为解决现有技术的问题,本发明提供的一种用于片上网络NOC的数据传输方法,具体如图2所示,具体包括:In order to solve the problems of the prior art, the present invention provides a data transmission method for network-on-chip NOC, as shown in FIG. 2, specifically including:
步骤S200、第一网络节点接收数据包,其中,所述数据包中包含目的地地址,所述目的地地址为用于表征目标网络节点和所述第一网络节点在NOC中的相对位置。Step S200: The first network node receives a data packet, where the data packet includes a destination address, and the destination address is used to characterize the relative position of the 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 another network node. The above data packet is packaged according to a conventional data packet format, and the data packet header contains the ordinary destination address and other Information, there is no need to increase the number of additional headers.
步骤S201、响应于确定自身不是所述目标网络节点,所述第一网络节点根据预设的传播方向修改所述数据包中的所述目的地地址。Step S201: In response to determining that it 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.
情况一、所述NOC为包括多个网络节点的一维网络,所述目的地地址为所述目标网络节点和所述第一网络节点在所述一维网络中的相对坐标,举例说明,假设所述目的地地址为(a),其中,a的绝对值大于0。Case 1: The NOC is a one-dimensional network including multiple 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, suppose The destination address is (a), where the absolute value of a is greater than 0.
情况二、所述NOC为包括多个网络节点的矩阵网络,所述目的地地址为所述目标网络节点和所述第一网络节点在所述矩阵网络中的二维相对坐标,所述二维相对坐标包括第一方向坐标x和第二方向坐标y,所述数据包的传播方向为先第一方向后第二方向,或先第二方向后第一方向。Case 2: The NOC is a matrix network including multiple 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 relative coordinates include a first direction coordinate x and a second direction coordinate y. The propagation direction of the data packet is the first direction and then the second direction, or the second direction and then the first direction.
举例说明,所述目的地地址为(x,y),其中,x和y的绝对值分别大于0,x和y的绝对值代表的是传播的距离,符号代表的是传播方向,数据包的传输过程就是x和y的绝对值减小的过程。x和y根据实际相对位置,可以任意设置,本发明实施例对此不做限定。For example, the destination address is (x, y), where the absolute values of x and y are greater than 0, respectively. The absolute values of x and y represent the distance traveled, and the symbols represent the direction of propagation. The transmission process is the process of decreasing the absolute value of x and y. X and y can be arbitrarily set according to actual relative positions, which is not limited in the embodiment of the present invention.
本发明实施例中,对所述第一网络节点根据所述预设的传播方向修改所述数据包中的目的地地址进行了具体的举例说明,具体如下:针对上述情况一,假设a的值为3,即数据包中的目的地地址为(3),说明第一网络节点需要通过两个中间网络节点才能到达目标网络节点(0),由于情况一是在一维网络中固定单向传播,因此第一网络节点将数据包中的目的地地址修改为(2)。In the embodiment of the present invention, a specific example is given for the first network node to modify the destination address in the data packet according to the preset propagation direction, which is as follows: For the first case above, assume the value of a Is 3, that is, the destination address in the data packet is (3), indicating that the first network node needs to pass through two intermediate network nodes to reach the target network node (0), because the situation one is fixed unidirectional propagation in a one-dimensional network Therefore, the first network node modifies the destination address in the data packet to (2).
针对上述情况二,第一种情况,假设确定传播方向为先第一方向后第二方向,x的值为3,Y的值2,数据包中的目的地地址为(3,2),其中,(3,2)为第一网络节点与目标网络节点(0,0)的相对位置,由于传播方向为先第一方向后第二方向,因此,第一网络节点将数据包中的目的地地址修改为(2,2);第二种情况,假设确定传播方向为先第二方向后第一方向,因此,第一网络节点将数据包中的目的地地址修改为(3,1)。本发明实施例中,当x和y的绝对值分别大于0时,传播方向可以任意设置,本发明实施例对其不做限定。For the second case and the first case, suppose that the propagation direction is determined to be the first direction and then the second direction, the value of x is 3, the value of Y is 2, and the destination address in the data packet is (3, 2), where , (3, 2) is the relative position of the first network node and the target network node (0, 0). Since the propagation direction is the first direction and then the second direction, the first network node converts the destination in the data packet. The address is modified to (2, 2); in the second case, it is assumed that the propagation direction is determined to be the second direction before the first direction. Therefore, the first network node modifies the destination address in the data 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 can be arbitrarily set, which is not limited in the embodiment of the present invention.
步骤S202、所述第一网络节点将修改后的数据包按照所述预设的传播方向发送给与所述第一网络节点相邻的网络节点,所述相邻的网络节点为新的第一网络节点。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, and the adjacent network node is a new first Network node.
举例说明,针对上述情况一,将修改后的数据包按照预设的传播方向发送给与第一网络节点相邻的网络节点,该相邻的网络节点与目标网络节点的相对位置为(2)。针对上述情况二、第一种情况,将修改后的数据包发送给与第一网络节点目的地地址为(2,2)的相邻的网络节点,该相邻的网络节点与目标网络节点的相对位置为(2,2)。针对上述情况二、第二种情况,将修改后的数据包发送给与第一网络节点目的地地址为(3,1)的相邻的网络节点,该相邻的网络节点与目标网络节点的相对位置为(3,1),由于目的地地址不为0,说明所述相邻的网络节点不是目标网络节点,所述相邻的网络节点作为新的第一网络节点,返回S200重新传输。For example, for the first case above, the modified data packet is sent to a network node adjacent to the first network node according to a preset propagation direction, and the relative position of the adjacent network node and the target network node is (2) . For the second case and the first case, the modified data packet is sent to the adjacent network node with the destination address (2, 2) of the first network node, the adjacent network node and the target network node The relative position is (2, 2). For the second and second cases above, send the modified data packet to the adjacent network node with the destination address (3, 1) of the first network node, the adjacent network node and the target network node The relative position is (3, 1), and since the destination address is not 0, it means that the adjacent network node is not the target network node, and the adjacent network node serves as a new first network node and returns to S200 for retransmission.
本发明实施例中,首先第一网络节点接收数据包,其中,所述数据包中包含目的地地址,所述目的地地址为用于表征目标网络节点和所述第一网络节点在NOC中的相对位置;响应于确定自身不是目标网络节点,所述第一网络节点根据预设的传播方向修改所述数据包中的所述目的地地址,所述第一网络节点将修改后的数据包按照所述预设的传播方向发送给与所述第一网络节点相邻的网络节点,所述相邻的网络节点为新的第一网络节点,由于数据包中只包含目的地地址,数据包中不需要增加额外的包头位数,减小了开销;并且第一网络节点根据目的地地址确定数据包的传播方向,不需要采用BS即可实现数据的多播,提高传输效率,减小功耗。In the embodiment of the present invention, first, the first network node receives a data packet, wherein the data packet includes a destination address, and the destination address is used to characterize the target network node and the first network node in the NOC Relative position; in response to determining that it 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 translates the modified data packet according to The preset propagation direction is sent to a network node adjacent to the first network node. The adjacent network node is a new first network node. Since the data packet contains only the destination address, the data packet There is no need to increase the number of additional packet headers, reducing overhead; and the first network node determines the direction of data packet propagation based on the destination address, without using BS to achieve data multicast, improve transmission efficiency, reduce power consumption .
可选的,所述步骤S200之后,该方法还包括:所述第一网络节点根据所述数据包中的目的地地址判断自身是否为所述目标网络节点。Optionally, after step S200, the method further includes: the first network node determining whether it is the target network node according to the destination address in the data packet.
可选的,在所述步骤S200之后,该方法还包括:响应于确定自身是所述目标网络节点,所述第一网络节点将所述数据包发送给与其相连的从数据接收单元。Optionally, after step S200, the method further includes: in response to determining that it is the target network node, the first network node sends the data packet to a slave data receiving unit connected thereto.
具体的,假设数据包的传播方向为一维网络中的固定单向传播,接收到的数据包中的目的地地址为(0),则确定自身是目标网络节点;假设数据包的传播方向矩阵网络中的先第一方向后第二方向或第二方向后第一方向,接收到的数据包中的目的地地址为(0,0),则确定自身是目标网络节点。Specifically, assuming that the propagation direction of the data packet is fixed unidirectional propagation in a one-dimensional network, and the destination address in the received data packet is (0), it is determined that it is the target network node; assuming the propagation direction matrix of the data packet In the network, the first direction is followed by the second direction or the second direction is followed by the first direction. If the destination address in the received data packet is (0, 0), it is determined that it is the target network node.
可选的,所述第一网络节点将数据包发送给与其相连的从数据接送单元的同时,还包括根据预先设置的寄存器,将所述数据包发送给所述寄存器指定的至少一个网络节点,其中,所述寄存器还可以设置是否改变目的地地址,若不改变,下一个网络节点接收数据包后可以将数据包发送给与其相连的从数据接收单元,同时也可以根据寄存器的设置将数据包发送给其它网络节点;若所述寄存器设置改变目的地地址,则返回步骤S200继续处理。Optionally, while the first network node sends the data packet to the slave data transfer unit connected thereto, it also includes sending the data packet to at least one network node designated by the register according to a preset register, Among them, the register can also set whether to change the destination address, if it does not change, the next network node can send the data packet to the slave data receiving unit connected to it after receiving the data packet, and can also send the data packet according to the setting of the register Send to other network nodes; if the register setting changes the destination address, return to step S200 to continue processing.
举例说明,假设第一网络节点中的寄存器为3位数,分别对应与其相邻的3个网络节点,当寄存器的值为设定值时,将接收到的数据包不做修改的发送给对用的网络节点,其中,所述设定值可以为1或0,本发明实施例对其不做限定。例如:设定值为1,则表示需要发送给对应的网络节点,设定值为0,则表示不需要发送给对应的网络节点,当第一网络节点中寄存器的值为110,分别对应中间节点A,B,C,表示将数据包不做修改的发送给A和B,不发送数据包给C,A和B接收数据包后作为新的目标网络节点,根据自身预先设置的寄存器执行相应的操作。For example, suppose that the register in the first network node is 3 digits, corresponding to the three network nodes adjacent to it. When the value of the register is the set value, the received data packet is sent to the pair without modification For a network node used, the set value may be 1 or 0, which is not limited in the embodiment of the present invention. For example, if the setting value is 1, it means that it needs to be sent to the corresponding network node. If the setting value is 0, it means that it does not need to be sent to the corresponding network node. When the value of the register in the first network node is 110, it corresponds to the middle Nodes A, B, and C indicate that the data packets are sent to A and B without modification, and the data packets are not sent to C. After receiving the data packets, A and B serve as new target network nodes, and perform corresponding actions according to their pre-set registers. Operation.
下面通过两个具体实施例,对本发明实施例提出的一种用于片上网络NOC的数据 传输方法进行详细说明。The following uses two specific embodiments to describe in detail a data transmission method for an on-chip network NOC provided by an embodiment of the present invention.
具体实施例一、Specific example one
假设数据包的传播方向为固定的单向传播,数据包的具体发送流程示意图,如图3所示,主数据发送单元M将数据包多播给从数据接收单元S0、S1和S2,n0接收到M发送的数据包,将该数据包发送给n1,n1将该数据包发送给S0和n3,n3将该数据包发送给S1和n4,n4将该数据包发送给S2,具体的处理流程如图4所示:Assuming that the propagation direction of the data packet is a fixed one-way propagation, a schematic diagram of the specific sending process of the data packet. 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 To the data packet sent by M, send the data packet to n1, n1 send the data packet to S0 and n3, n3 send the data packet to S1 and n4, n4 send the data packet to S2, the specific processing flow As shown in Figure 4:
步骤S400、网络节点n0接收到M发送的第一数据包,确定第一数据包中的目的地地址为(1)。Step S400: The network node n0 receives the first data packet sent by M, and determines that the destination address in the first data packet is (1).
步骤S401、确定网络节点n0的预设传播方向为固定单向传播。Step S401: Determine that the preset propagation direction of the network node n0 is fixed one-way propagation.
步骤S402、网络节点n0修改第一数据包中的目的地地址为(0),将修改后的地址为(0)的数据包确定为第二数据包。Step S402: The network node n0 modifies the destination address in the first data packet to (0), and determines the data packet with the modified address (0) as the second data packet.
步骤S403、网络节点n0将所述第二数据包发送给网络节点n1。Step S403: The network node n0 sends the second data packet to the network node n1.
步骤S404、网络节点n1接收到第二数据包。Step S404: The network node n1 receives the second data packet.
步骤S405、网络节点n1根据第二数据包中的目的地地址(0),确定自身是目标网络节点。Step S405: The network node n1 determines that it is the target network node according to the destination address (0) in the second data packet.
步骤S406、网络节点n1将第二数据包发送给与其相连接的S0,并且根据自身寄存器的设置将第二数据包不做修改的发送给网络节点n3。Step S406: The network node n1 sends the second data packet to the connected S0, and sends the second data packet to the network node n3 without modification according to the setting of its own register.
步骤S407、网络节点n3根据第二数据包中的目的地地址(0),确定自身是目标网络节点。Step S407: The network node n3 determines that it is the target network node according to the destination address (0) in the second data packet.
步骤S408、网络节点n3将第二数据包发送给与其相连接的S1,并且根据自身寄存器的设置将第二数据包不做修改的发送给网络节点n4。Step S408: The network node n3 sends the second data packet to S1 connected thereto, and sends the second data packet to the network node n4 without modification according to the setting of its own register.
其中,由于寄存器的设置,所以不将第二数据包发送给网络节点n2。Wherein, due to the setting of the register, the second data packet is not sent to the network node n2.
步骤S409、网络节点n4根据第二数据包中的目的地地址(0),确定自身是目标网络节点。Step S409: The network node n4 determines that it is the target network node according to the destination address (0) in the second data packet.
步骤S410、网络节点n4将第二数据包发送给与其相连接的S2。Step S410: The network node n4 sends the second data packet to S2 connected thereto.
具体实施例二、Specific embodiment two
假设核C0向核C4、C5和C7多播数据,具体示意图如图5所示,其中,所述需要多播数据的可以为处理单元电路、或者主数据发送单元M,传播方向为先X轴后Y轴,具体处理流程如图6所示。Assuming that the core C0 multicasts data to the cores C4, C5 and C7, the specific schematic diagram is shown in FIG. 5, wherein the multicast data may be the processing unit circuit or the main data sending unit M, and the propagation direction is the first X axis After the Y axis, the specific processing flow is shown in Figure 6.
步骤S600、网络节点n0接收到核C0发送的第一数据包,确定第一数据包中的目 的地地址为(1,1)。Step S600: The network node n0 receives the first data packet sent by the core C0, and determines that the destination address in the first data packet is (1, 1).
步骤S601、根据目的地地址确定自身不是目标网络节点,确定网络节点n0的预设传播方向为先X轴。Step S601: Determine that it is not the target network node according to the destination address, and determine that the preset propagation direction of the network node n0 is the first X axis.
步骤S602、网络节点n0修改第一数据包中的目的地地址为(0,1),将修改后的地址为(0,1)的数据包确定为第二数据包。Step S602: The network node n0 modifies the destination address in the first data packet to (0, 1), and determines the modified data packet with the address (0, 1) as the second data packet.
步骤S603、网络节点n0将所述第二数据包发送给网络节点n1。Step S603: The network node n0 sends the second data packet to the network node n1.
步骤S604、网络节点n1接收到第二数据包。Step S604: The network node n1 receives the second data packet.
步骤S605、网络节点n1根据第二数据包中的目的地地址(0,1)确定自身不是目标网络节点。Step S605: The network node n1 determines that it is not the target network node according to the destination address (0, 1) in the second data packet.
步骤S606、网络节点n1修改第二数据包中的目的地地址为(0,0),将修改后的地址为(0,0)的数据包确定为第三数据包。Step S606: The network node n1 modifies the destination address in the second data packet to (0, 0), and determines the modified data packet with the address (0, 0) as the third data packet.
具体的,网络节点n1收到第二数据包后先采用X轴方向传的策略,但此时数据包包头中的目的地地址的X已经为0,因此改变传输方向为Y轴。Specifically, after receiving the second data packet, the network node n1 first adopts the strategy of transmitting in the X-axis direction, but at this time, the X of the destination address in the packet header is already 0, so the transmission direction is changed to the Y-axis.
步骤S607、网络节点n4接收到第三数据包。Step S607: The network node n4 receives the third data packet.
步骤S608、网络节点n4根据第三数据包中的目的地地址(0,0),确定自身是目标网络节点,将第三数据包发送给与其相连的核C4,并根据自身寄存器的设置将第三数据包发送给网络节点n5和网络节点n7。Step S608: The network node n4 determines that it is the target network node according to the destination address (0, 0) in the third data packet, sends the third data packet to the core C4 connected to it, and sends the third data packet according to the setting of its own register Three data packets are sent to network node n5 and network node n7.
具体的,网络节点n4确定自身寄存器中对应网络节点n5和网络节点n7的位的数值为1,表示需要将第三数据包不做任何修改的发送给网络节点n5和网络节点n7,由于n4的寄存器中与网络节点n3对应的位的数值为0,因此不向n3发送数据包。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, indicating that the third data packet needs to be sent to the network node n5 and the network node n7 without any modification. The value of the bit corresponding to the network node n3 in the register is 0, so no data packet is sent to n3.
步骤S609、网络节点n5接收到第三数据包。Step S609: The network node n5 receives the third data packet.
步骤S610、网络节点n5根据第三数据包中的目的地地址(0,0),确定自身是目标网络节点,将第三数据包发送给与其相连的核C5;网络节点n5根据自身寄存器的设置确定相邻网络节点的数值均为0,则停止发送。Step S610: The network node n5 determines that it 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 to it; the network node n5 according to the setting of its own register It is determined that the values of the adjacent network nodes are all 0, and then the transmission is stopped.
步骤S611、网络节点n7接收到第三数据包。Step S611: The network node n7 receives the third data packet.
步骤S612、网络节点n7根据第三数据包中的目的地地址(0,0),确定自身是目标网络节点,将第三数据包发送给与其相连的核C7;网络节点n7根据自身寄存器的设置判断相邻的网络节点n6的位的数值为1,则网络节点n6重复本步骤继续发送。Step S612, the network node n7 determines that it 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 C7 connected to it; the network node n7 according to the setting of its own register Judging that the value of the bit of the adjacent network node n6 is 1, the network node n6 repeats this step to continue sending.
其中,步骤S609与步骤S611同步进行。Among them, step S609 and step S611 are performed simultaneously.
本发明实施例提出的一种用于片上网络NOC的数据传输方法还具有以下优点,众 核芯片的控制电路或者核可以随时动态配置网络节点中的寄存器,使数据包的路由非常灵活,每一个网络节点均可根据寄存器动态配置决定是否进行多播,以及动态配置多播的目的地;因此数据包不需要增加额外的标志位,提高了数据传输效率;中间网络节点不需要任何额外的存储地址空间,减小了芯片面积;多播时不需要额外的拆包打包,减小了数据传输的延时;数据包不会增加额外的路由路径,减小数据传输的延时;数据包不会一定需要通过某些节点,减小了众核芯片的拥塞度。The data transmission method for the on-chip network NOC proposed by the embodiment of the present invention also has the following advantages. The control circuit or core of the many-core chip can dynamically configure the registers in the network node at any time, making the routing of data packets very flexible. Network nodes can decide whether to perform multicast and dynamically configure the destination of multicast according to the dynamic configuration of registers; therefore, data packets do not need to add additional flag bits, which improves data transmission efficiency; intermediate network nodes do not require any additional storage addresses Space reduces the chip area; no additional unpacking and packaging is required during multicast, which reduces the delay of data transmission; data packets do not add additional routing paths, reducing the delay of data transmission; data packets do not Certain nodes must be passed to reduce the congestion of many-core chips.
图7是本发明实施例提供的一种用于片上网络NOC的数据传输装置示意图。如图7所示,本实施例的用于片上网络NOC的数据传输装置包括:接收单元71、处理单元72和发送单元73,其中,接收单元71,用于接收数据包,其中,所述数据包中包含目的地地址,所述目的地地址为用于表征目标网络节点和第一网络节点在NOC中的相对位置;处理单元72,用于响应于确定自身不是所述目标网络节点,根据预设的传播方向修改所述数据包中的所述目的地地址;发送单元73,用于将修改后的数据包按照所述预设的传播方向发送给与所述第一网络节点相邻的网络节点,所述相邻的网络节点为新的第一网络节点。7 is a schematic diagram of a data transmission device for an on-chip network NOC provided by an embodiment of the present invention. As shown in FIG. 7, the data transmission device for the on-chip network NOC of this embodiment includes: a receiving unit 71, a processing unit 72, and a sending unit 73, wherein the receiving unit 71 is used to receive a data packet, wherein the data The packet contains a destination address, which is used to characterize the relative position of the target network node and the first network node in the NOC; the processing unit 72 is used to respond to determining that it is not the target network node, according to The set propagation direction modifies the destination address in the data packet; the sending unit 73 is configured to send the modified data packet to a network adjacent to the first network node according to the preset propagation direction Node, the adjacent network node is a new first network node.
可选的,所述NOC为包括多个网络节点的一维网络,所述目的地地址为所述目标网络节点和所述第一网络节点在所述一维网络中的相对坐标。Optionally, the NOC is a one-dimensional network including multiple 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.
可选的,所述处理单元具体用于:根据在所述一维网络中的传播方向,将所述数据包中的目的地地址中的坐标的绝对值减1。Optionally, the processing unit is specifically configured to: reduce the absolute value of the coordinates in the destination address in the data packet by 1 according to the propagation direction in the one-dimensional network.
可选的,所述NOC为包括多个网络节点的矩阵网络,所述目的地地址为所述目标网络节点和所述第一网络节点在所述矩阵网络中的二维相对坐标,所述二维相对坐标包括第一方向坐标x和第二方向坐标y。Optionally, the NOC is a matrix network including multiple 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 dimensional relative coordinates include a first direction coordinate x and a second direction coordinate y.
可选的,所述处理单元具体用于:响应于所述目的地地址中的第一方向坐标x的坐标值为大于0的正整数,根据所述预设的传播方向确定所述数据包的传播方向为先第一方向后第二方向;根据所述第一方向,将所述数据包中的目的地地址中第一方向坐标x的坐标的绝对值减1。Optionally, the processing unit is specifically configured to: in response to the coordinate value of the first direction coordinate x in the destination address being a positive integer greater than 0, determine the data packet's The propagation direction is the first direction before the second direction; according to the first direction, the absolute value of the coordinate x of the first direction coordinate in the destination address in the data packet is decreased by 1.
可选的,所述处理单元具体还用于:响应于所述目的地地址中的第一方向坐标x的坐标值为大于0的正整数,根据所述预设的传播方向确定所述数据包的传播方向为先第二方向后第一方向;根据所述第二方向,将所述数据包中的目的地地址中的第二方向坐标y的坐标的绝对值减1。Optionally, the processing unit is further specifically configured to: in response to the coordinate value of the first direction coordinate x in the destination address being a positive integer greater than 0, determine the data packet according to the preset propagation direction The propagation direction of is the second direction before the first direction; according to the second direction, the absolute value of the coordinate of the second direction coordinate y in the destination address in the data packet is decreased by 1.
可选的,所述接收数据包之后,所述处理单元还用于:响应于确定自身是所述目 标网络节点,所述发送单元用于将所述数据包发送给与所述第一网络节点相连的从数据接收单元。Optionally, after receiving the data packet, the processing unit is further configured to: in response to determining that it is the target network node, the sending unit to send the data packet to the first network node Connected slave data receiving unit.
可选的,所述响应于确定自身是所述目标网络节点之后,所述发送单元还用于:根据预先设置的寄存器,将所述修改后的数据包发送给所述寄存器指定的至少一个网络节点,所述至少一个网络节点为新的目标网络节点。Optionally, after the response determines that it is the target network node, the sending unit is further configured to send the modified data packet to at least one network specified by the register according to a preset register Node, the at least one network node is a new target network node.
图8是本发明实施例的电子设备的结构示意图。如图8所示,本实施例的电子设备包括处理核11-1N以及片上网络14。处理核11-1N均与片上网络14连接。片上网络14用于交互所述N个处理核间的数据和外部数据。所述N个处理核中存储指令,根据所述指令所述电子设备执行如下操作:第一网络节点接收数据包,其中,所述数据包中包含目的地地址,所述目的地地址为用于表征目标网络节点和所述第一网络节点在NOC中的相对位置;响应于确定自身不是所述目标网络节点,所述第一网络节点根据预设的传播方向修改所述数据包中的所述目的地地址;所述第一网络节点将修改后的数据包按照所述预设的传播方向发送给与所述第一网络节点相邻的网络节点,所述相邻的网络节点为新的第一网络节点。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 this embodiment includes a processing core 11-1N and a network on chip 14. The processing cores 11-1N are all connected to the on-chip network 14. The on-chip network 14 is used to exchange data between the N processing cores and external data. The N processing cores store instructions, and according to the instructions, the electronic device performs the following operations: a first network node receives a data packet, where the data packet includes a destination address, and the destination address is used for Characterize the relative position of the target network node and the first network node in the NOC; in response to determining that it is not the target network node, the first network node modifies the data in the data packet according to a preset propagation direction Destination address; the first network node sends the modified data packet to the network node adjacent to the first network node according to the preset propagation direction, the adjacent network node is a new A network node.
如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明实施例的各个方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。As those skilled in the art will appreciate, various aspects of embodiments of the present invention may be implemented as a system, method, or computer program product. Therefore, various aspects of the embodiments of the present invention may take the form of a complete hardware implementation mode, a complete software implementation mode (including firmware, resident software, microcode, etc.) or generally referred to as "circuits" or "modules" herein. "Or" system "that combines software aspects with hardware aspects. In addition, various aspects of embodiments of the present invention may take the form of a computer program product implemented in one or more computer-readable media, the computer-readable medium having computer-readable program code implemented thereon.
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。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. The computer-readable storage medium may be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or devices, or any suitable combination of the foregoing. A more specific example (not an exhaustive list) of computer-readable storage media will include the following: electrical connection with one or more wires, floppy disk for portable computer, hard disk, random access memory (RAM), read-only memory ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the foregoing. In the context of an embodiment of the present invention, a computer-readable storage medium may be any tangible medium that can contain or store a program used by or in conjunction with an instruction execution system, device, or device.
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中 如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。The computer-readable signal medium may include a propagated data signal having computer-readable program code implemented therein as in baseband or as part of a carrier wave. Such a propagated signal can 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 computer-readable medium that is not a computer-readable storage medium and that can communicate and propagate programs used by or in conjunction with an instruction execution system, device, or device Or transmission.
可以使用包括但不限于无线、有线、光纤电缆、RF等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。The program code implemented on the 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.
用于执行针对本发明实施例各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。Computer program code for performing operations directed to various 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 ++, etc .; And conventional process programming languages such as the "C" programming language or similar programming languages. The program code may be executed entirely on the user's computer, partly on the user's computer as an independent software package; partly on the user's computer and partly on a remote computer; or entirely on the remote computer or server. In the latter case, the remote computer can 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 can be connected to an external computer (for example, by using the Internet service provider's Internet) .
上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图图例和/或框图描述了本发明实施例的各个方面。将要理解的是,流程图图例和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。The above-mentioned flowchart illustrations and / or block diagrams of the method, device (system) and computer program product according to the embodiments of the present invention describe various aspects of the embodiments of the present invention. It will be understood that each block of the flowchart illustration and / or block diagram and a combination of blocks in the flowchart illustration and / or block diagram can be implemented by computer program instructions. These computer program instructions may be provided to the processor of a general-purpose computer, special-purpose computer, or other programmable data processing device to produce a machine so that instructions (executed via the processor of the computer or other programmable data processing device) are created for implementation Flowchart and / or block diagram block or means of function / action specified in the block.
还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。These computer program instructions can also be stored in a computer-readable medium that can instruct a computer, other programmable data processing device, or other apparatus to operate in a specific manner, so that the generation of instructions stored in the computer-readable medium includes implementation in flowcharts and / Or block diagrams or artifacts of specified functions / actions in the blocks.
计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。Computer program instructions can also be loaded onto a computer, other programmable data processing device, or other device to cause a series of operable steps to be performed on the computer, other programmable device, or other device to produce a computer-implemented process so that the computer The instructions executed on other programmable devices provide procedures for implementing the functions / acts specified in the flowchart and / or block diagram blocks or blocks.
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、 等同替换、改进等,均应包含在本发明的保护范围之内。The above are only preferred embodiments of the present invention and are not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and changes. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims (19)

  1. 一种用于片上网络NOC的数据传输方法,其特征在于,包括:A data transmission method for network-on-chip NOC, characterized in that it includes:
    第一网络节点接收数据包,其中,所述数据包中包含目的地地址,所述目的地地址为用于表征目标网络节点和所述第一网络节点在NOC中的相对位置;The first network node receives a data packet, where the data packet includes a destination address, where the destination address is used to characterize the relative position of the target network node and the first network node in the NOC;
    响应于确定自身不是所述目标网络节点,所述第一网络节点根据预设的传播方向修改所述数据包中的所述目的地地址;In response to determining that it 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, and the adjacent network node is a new first network node.
  2. 如权利要求1所述的方法,其特征在于,所述NOC为包括多个网络节点的一维网络,所述目的地地址为所述目标网络节点和所述第一网络节点在所述一维网络中的相对坐标。The method according to claim 1, wherein the NOC is a one-dimensional network including a plurality of network nodes, and the destination address is the target network node and the first network node in the one-dimensional Relative coordinates in the network.
  3. 如权利要求2所述的方法,其特征在于,所述第一网络节点根据预设的传播方向修改所述数据包中的目的地地址,具体包括:The method according to claim 2, wherein the first network node modifies the destination address in the data packet according to a preset propagation direction, specifically including:
    所述第一网络节点根据在所述一维网络中的传播方向,将所述数据包中的目的地地址中的坐标的绝对值减1。The first network node decrements the absolute value of the coordinates in the destination address in the data packet according to the direction of propagation in the one-dimensional network.
  4. 如权利要求1所述的方法,其特征在于,所述NOC为包括多个网络节点的矩阵网络,所述目的地地址为所述目标网络节点和所述第一网络节点在所述矩阵网络中的二维相对坐标,所述二维相对坐标包括第一方向坐标x和第二方向坐标y。The method of claim 1, wherein the NOC is a matrix network including a plurality of network nodes, and the destination address is the target network node and the first network node in the matrix network The two-dimensional relative coordinates of, the two-dimensional relative coordinates include a first direction coordinate x and a second direction coordinate y.
  5. 如权利要求4所述的方法,其特征在于,所述第一网络节点根据预设的传播方向修改所述数据包中的所述目的地地址,具体包括:The method according to claim 4, wherein the first network node modifies the destination address in the data packet according to a preset propagation direction, specifically including:
    所述第一网络节点响应于所述目的地地址中的第一方向坐标x的坐标值为大于0的正整数,根据所述预设的传播方向确定所述数据包的传播方向为先第一方向后第二方向;In response to the coordinate value of the first direction coordinate x in the destination address being a positive integer greater than 0, the first network node determines that the propagation direction of the data packet is first according to the preset propagation direction The second direction after the direction;
    所述第一网络节点根据所述第一方向,将所述数据包中的目的地地址中的第一方向坐标x的坐标的绝对值减1。According to the first direction, the first network node decrements the absolute value of the coordinate x of the first direction coordinate x in the destination address in the data packet.
  6. 如权利要求4所述的方法,其特征在于,所述第一网络节点根据预设的传播方向修改所述数据包中的所述目的地地址,具体包括:The method according to claim 4, wherein the first network node modifies the destination address in the data packet according to a preset propagation direction, specifically including:
    所述第一网络节点响应于所述目的地地址中的第一方向坐标x的坐标值为大于0的正整数,根据所述预设的传播方向确定所述数据包的传播方向为先第二方向后第一方向;In response to the coordinate value of the first direction coordinate x in the destination address being a positive integer greater than 0, the first network node determines that the propagation direction of the data packet is first according to the preset propagation direction The first direction after the direction;
    所述第一网络节点根据所述第二方向,将所述数据包中的目的地地址中的第二方向坐标y的坐标的绝对值减1。The first network node decrements 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. 如权利要求1所述的方法,其特征在于,所述第一网络节点接收数据包之后,该方法还包括:The method according to claim 1, wherein after the first network node receives the data packet, the method further comprises:
    响应于确定自身是所述目标网络节点,所述第一网络节点将所述数据包发送给与所述第一网络节点相连的从数据接收单元。In response to determining that it is the target network node, the first network node sends the data packet to the slave data receiving unit connected to the first network node.
  8. 如权利要求7所述的方法,其特征在于,所述第一网络节点确定自身是所述目标网络节点之后,该方法还包括:The method according to claim 7, wherein after the first network node determines that it is the target network node, the method further comprises:
    所述第一网络节点根据预先设置的寄存器,将所述修改后的数据包发送给所述寄存器指定的至少一个网络节点,所述至少一个网络节点为新的所述目标网络节点。The first network node sends the modified data packet to at least one network node specified by the register according to a preset register, and the at least one network node is the new target network node.
  9. 一种用于片上网络NOC的数据传输装置,其特征在于,包括:A data transmission device for network-on-chip NOC, characterized in that it includes:
    接收单元,用于接收数据包,其中,所述数据包中包含目的地地址,所述目的地地址为用于表征目标网络节点和第一网络节点在NOC中的相对位置;A receiving unit, configured to receive a data packet, wherein the data packet includes a destination address, and the destination address is used to characterize the relative position of the target network node and the 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 it is not the target network node;
    发送单元,用于将修改后的数据包按照所述预设的传播方向发送给与所述第一网络节点相邻的网络节点,所述相邻的网络节点为新的第一网络节点。The sending unit is configured to send the modified data packet to a network node adjacent to the first network node according to the preset propagation direction, and the adjacent network node is a new first network node.
  10. 如权利要求9所述的装置,其特征在于,所述NOC为包括多个网络节点的一维网络,所述目的地地址为所述目标网络节点和所述第一网络节点在所述一维网络中的相对坐标。The apparatus according to claim 9, wherein the NOC is a one-dimensional network including a plurality of network nodes, and the destination address is the target network node and the first network node in the one-dimensional Relative coordinates in the network.
  11. 如权利要求10所述的装置,其特征在于,所述处理单元具体用于:The apparatus of claim 10, wherein the processing unit is specifically configured to:
    根据在所述一维网络中的传播方向,将所述数据包中的目的地地址中的坐标的绝对值减1。According to the propagation direction in the one-dimensional network, the absolute value of the coordinates in the destination address in the data packet is decreased by one.
  12. 如权利要求9所述的装置,其特征在于,所述NOC为包括多个网络节点的矩阵网络,所述目的地地址为所述目标网络节点和所述第一网络节点在所述矩阵网络中的二维相对坐标,所述二维相对坐标包括第一方向坐标x和第二方向坐标y。The apparatus according to claim 9, wherein the NOC is a matrix network including a plurality of network nodes, and the destination address is the target network node and the first network node in the matrix network The two-dimensional relative coordinates of, the two-dimensional relative coordinates include a first direction coordinate x and a second direction coordinate y.
  13. 如权利要求12所述的装置,其特征在于,所述处理单元具体用于:The apparatus of claim 12, wherein the processing unit is specifically configured to:
    响应于所述目的地地址中的第一方向坐标x的坐标值为大于0的正整数,根据所述预设的传播方向确定所述数据包的传播方向为先第一方向后第二方向;In response to the coordinate value of the first direction coordinate x in the destination address being a positive integer greater than 0, determining the propagation direction of the data packet as the first direction and then the second direction according to the preset propagation direction;
    根据所述第一方向,将所述数据包中的目的地地址中第一方向坐标x的坐标的绝 对值减1。According to the first direction, the absolute value of the coordinate x of the first direction in the destination address in the data packet is decreased by one.
  14. 如权利要求12所述的装置,其特征在于,所述处理单元具体还用于:The apparatus according to claim 12, wherein the processing unit is further configured to:
    响应于所述目的地地址中的第一方向坐标x的坐标值为大于0的正整数,根据所述预设的传播方向确定所述数据包的传播方向为先第二方向后第一方向;In response to the coordinate value of the first direction coordinate x in the destination address being a positive integer greater than 0, determine that the propagation direction of the data packet is the second direction before the first direction according to the preset propagation direction;
    根据所述第二方向,将所述数据包中的目的地地址中的第二方向坐标y的坐标的绝对值减1。According to the second direction, the absolute value of the coordinate of the second direction coordinate y in the destination address in the data packet is decreased by 1.
  15. 如权利要求9所述的装置,其特征在于,所述接收数据包之后,所述处理单元还用于:The apparatus according to claim 9, wherein after the data packet is received, the processing unit is further configured to:
    响应于确定自身是所述目标网络节点,所述发送单元用于将所述数据包发送给与所述第一网络节点相连的从数据接收单元。In response to determining that it is the target network node, the sending unit is configured to send the data packet to a slave data receiving unit connected to the first network node.
  16. 如权利要求15所述的装置,其特征在于,所述响应于确定自身是所述目标网络节点之后,所述发送单元还用于:The apparatus of claim 15, wherein after the response determines that it is the target network node, the sending unit is further configured to:
    根据预先设置的寄存器,将所述修改后的数据包发送给所述寄存器指定的至少一个网络节点,所述至少一个网络节点为新的目标网络节点。Sending the modified data packet to at least one network node designated by the register according to a preset register, where the at least one network node is a new target network node.
  17. 一种电子设备,其特征在于,所述电子设备包括:An electronic device, characterized in that the electronic device includes:
    多个处理核;以及Multiple processing cores; and
    片上网络,被配置为交互所述多个处理核间的数据和外部数据;The on-chip network is configured to interact with the data between the multiple processing cores and external data;
    所述多个处理核中存储指令,根据所述指令所述电子设备执行如权利要求1-8中任一项所述的方法。An instruction is stored in the plurality of processing cores, and the electronic device executes the method according to any one of claims 1-8 according to the instruction.
  18. 一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-8中任一项所述的方法。A computer-readable storage medium on which computer program instructions are stored, characterized in that, when executed by a processor, the computer program instructions implement the method according to any one of claims 1-8.
  19. 一种计算机程序指令,其特征在于,所述计算机程序指令在计算机上运行时,使得所述计算机执行如权利要求1-8中任一项所述的方法。A computer program instruction, characterized in that, when the computer program instruction runs on a computer, it causes the computer to execute the method according to any one of claims 1-8.
PCT/CN2019/113429 2018-11-09 2019-10-25 Data transmission method and device for network-on-chip (noc) and electronic device WO2020093887A1 (en)

Applications Claiming Priority (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
CN201811333210.7 2018-11-09

Publications (1)

Publication Number Publication Date
WO2020093887A1 true WO2020093887A1 (en) 2020-05-14

Family

ID=65472441

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/113429 WO2020093887A1 (en) 2018-11-09 2019-10-25 Data transmission method and device for network-on-chip (noc) and electronic device

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112822127A (en) * 2020-12-29 2021-05-18 北京灵汐科技有限公司 Data broadcasting method, device, chip and medium of network on chip

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
CN114363245B (en) * 2020-09-30 2024-04-26 北京灵汐科技有限公司 Multi-core network-on-chip data transmission method, device, equipment and medium
CN112650705B (en) * 2020-12-31 2024-08-20 清华大学 Route control method and artificial intelligent processor
CN112887214B (en) * 2021-01-08 2022-10-25 北京灵汐科技有限公司 Broadcasting method, first node, network on chip, transmission method, device and medium
CN113570049B (en) * 2021-07-23 2024-05-28 上海新氦类脑智能科技有限公司 Relative addressing method, device, equipment and medium for interconnection of multiple SNN chips
CN114546095B (en) * 2022-04-25 2022-07-01 沐曦科技(北京)有限公司 Master selection method based on multiple computing devices
CN114697187B (en) * 2022-04-25 2022-12-02 沐曦科技(北京)有限公司 Master selection method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383712A (en) * 2008-10-16 2009-03-11 电子科技大学 Routing node microstructure for on-chip network
CN104683242A (en) * 2015-03-15 2015-06-03 西安电子科技大学 Two-dimensional network-on-chip topological structure and routing method
CN106302209A (en) * 2015-06-12 2017-01-04 华为技术有限公司 A kind of network-on-chip NoC and the method for data transmission
CN109408257A (en) * 2018-11-09 2019-03-01 北京灵汐科技有限公司 Data transmission method, device and electronic equipment for network-on-chip NOC

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7122495B2 (en) * 2003-02-05 2006-10-17 Exxonmobil Chemical Patents Inc. Combined cracking and selective hydrogen combustion for catalytic cracking
CN101945341B (en) * 2010-09-16 2013-01-23 西北大学 Point-to-point transmission protocol of wireless sensor network
CN106341331B (en) * 2016-09-20 2019-07-09 清华大学 Routing multicast method and system based on 2D mesh network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383712A (en) * 2008-10-16 2009-03-11 电子科技大学 Routing node microstructure for on-chip network
CN104683242A (en) * 2015-03-15 2015-06-03 西安电子科技大学 Two-dimensional network-on-chip topological structure and routing method
CN106302209A (en) * 2015-06-12 2017-01-04 华为技术有限公司 A kind of network-on-chip NoC and the method for data transmission
CN109408257A (en) * 2018-11-09 2019-03-01 北京灵汐科技有限公司 Data transmission method, device and electronic equipment for network-on-chip NOC

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112822127A (en) * 2020-12-29 2021-05-18 北京灵汐科技有限公司 Data broadcasting method, device, chip and medium of network on chip
CN112822127B (en) * 2020-12-29 2023-07-04 北京灵汐科技有限公司 Data broadcasting method, device, chip and medium of network-on-chip

Also Published As

Publication number Publication date
CN109408257A (en) 2019-03-01
CN109408257B (en) 2021-04-13

Similar Documents

Publication Publication Date Title
WO2020093887A1 (en) Data transmission method and device for network-on-chip (noc) and electronic device
US9025495B1 (en) Flexible routing engine for a PCI express switch and method of use
CN102334112B (en) Method and system for virtual machine networking
CN108270676B (en) Network data processing method and device based on Intel DPDK
US11847091B2 (en) Data transmission method and device for network on chip and electronic apparatus
US8848703B2 (en) On-chip router and multi-core system using the same
WO2020134827A1 (en) Path creation method and apparatus for network-on-chip and electronic device
CN107925623A (en) The interconnection of overlay network
US8756270B2 (en) Collective acceleration unit tree structure
CN114138707B (en) Data transmission system based on FPGA
US11822811B2 (en) Method, electronic device and computer program product for processing data
WO2021114768A1 (en) Data processing device and method, chip, processor, apparatus, and storage medium
WO2021147721A1 (en) Network-on-chip interconnection structure of many-core system, data transmission method, board card, electronic device, and computer-readable storage medium
US10637739B2 (en) Network topology system and building method for topologies and routing tables thereof
CN116915708A (en) Method for routing data packets, processor and readable storage medium
CN102760114A (en) Communication emulation method, engine and system for multi-processor system
WO2023179457A1 (en) Method, apparatus and system for identifying service connection, and storage medium
Sikder et al. Exploring wireless technology for off-chip memory access
WO2022178675A1 (en) Interconnection system, data transmission method, and chip
US11657203B2 (en) Multi-phase topology synthesis of a network-on-chip (NoC)
US11115312B1 (en) File control for data packet routers using consensus and inter-planetary file system (IPFS)
Klilou et al. Performance optimization of high-speed Interconnect Serial RapidIO for onboard processing
CN114363246A (en) Many-core network-on-chip data transmission method, device, equipment and medium
US10084725B2 (en) Extracting features from a NoC for machine learning construction
CN110166373B (en) Method, device, medium and system for sending data from source physical machine to destination physical machine

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19882368

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19882368

Country of ref document: EP

Kind code of ref document: A1