WO2020134827A1 - 一种用于片上网络的路径创建方法、装置及电子设备 - Google Patents

一种用于片上网络的路径创建方法、装置及电子设备 Download PDF

Info

Publication number
WO2020134827A1
WO2020134827A1 PCT/CN2019/121519 CN2019121519W WO2020134827A1 WO 2020134827 A1 WO2020134827 A1 WO 2020134827A1 CN 2019121519 W CN2019121519 W CN 2019121519W WO 2020134827 A1 WO2020134827 A1 WO 2020134827A1
Authority
WO
WIPO (PCT)
Prior art keywords
identification information
network node
data packet
free
address identification
Prior art date
Application number
PCT/CN2019/121519
Other languages
English (en)
French (fr)
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 北京灵汐科技有限公司
Priority to US17/418,336 priority Critical patent/US11398981B2/en
Publication of WO2020134827A1 publication Critical patent/WO2020134827A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags

Definitions

  • the present invention relates to the field of communication technology, and in particular, to a path creation method, device, and electronic device for an on-chip network.
  • NOC network-on-chip
  • the specific method for the master data sending unit (Master, M) to send data packets to the slave data receiving unit (Slave, S) is as follows : First, M adds the address of the destination core in the packet header, and then M sends the data packet to the intermediate network node (Node, n) connected to it according to the path routing table saved by itself, and n sends the data according to the path routing table saved by itself. The packet is sent to S directly or through other intermediate network nodes.
  • All cores need to be addressed uniformly.
  • Each core needs to save a pre-configured static path routing table.
  • the above path routing table needs to be simultaneously Support the routing requirements of all scenarios, therefore, the cost of the path routing table is huge.
  • the present invention provides a path creation method, device and electronic device for an on-chip network, which is used to solve the path routing table in the prior art when many core chips use NOC for core-to-core communication The problem of huge overhead.
  • a path creation method for an on-chip network including: a second network node receives a first data packet sent by a first network node, wherein the first data The packet carries first free address identification information, destination network node address and path creation identification information, and the first free address identification information is used to indicate the first free location in the first path routing table of the first network node, The path creation identification information is used to indicate the creation of the path; the second network node stores the first free address identification information into a second free location of its second path routing table, and determines the second free address identification information, Wherein, the second free address identification information is address information of the second free location in the second network node; the second network node determines the second data packet according to the second free address identification information; The second network node sends the second data packet.
  • the method before the second network node stores the first free address identification information in a second free location of its second path routing table, and before determining the second free address identification information, the method further includes: The second network node determines the second free location in its second path routing table.
  • determining the second free location in the second path routing table can determine the location where the first free address identification information is stored.
  • the second network node determining the second data packet according to the second idle address identification information specifically includes: the second network node uses the second idle address identification information and the destination network The node address and the path creation identification information are determined as the second data packet.
  • the second network node sending the second data packet specifically includes: the second network node determining the transmission direction of the second data packet according to the destination network node address; the first Two network nodes send the second data packet according to the transmission direction.
  • the transmission direction of the second data packet is determined, that is, the next network node of the new path is determined.
  • the method further includes: the second network node receives a third data packet sent by a third network node, wherein the first The three data packets carry third free address identification information, second free address identification information, and response identification information, and the third free address identification information is used to indicate the third in the third path routing table of the third network node An idle position, the response identification information is used to indicate an identification is created in response to the path; the second network node determines a second free position according to the second idle address identification information; the second network node uses the third The idle address identification information is stored in a second idle location of its own second path routing table; the second network node determines a fourth data packet according to the second idle location; the second network node sends the fourth data package.
  • the second network node is notified of the free position of the third network node occupied by the determined new path, that is, the new path is determined, and the transmission path can be directly determined when a new data packet is transmitted.
  • the second network node determining the fourth data packet according to the second free location specifically includes: the second network node according to the first free address identification information stored in the second free location Determine the fourth packet.
  • the second network node determining the fourth data packet according to the first idle address identification information stored in the second idle location specifically includes: the second network node assigns the first idle address The identification information, the second free address identification information, and the response identification information are determined to be the fourth data packet.
  • the path routing table is stored in a register or in random access memory.
  • a path creation device for an on-chip network, including: a receiving unit for receiving a first data packet sent by a first network node, wherein the first The data packet carries first free address identification information, destination network node address and path creation identification information, and the first free address identification information is used to indicate the first free location in the first path routing table of the first network node , The path creation identification information is used to indicate the creation of the path; the saving unit is used to store the first free address identification information into a second free location of its own second path routing table, and determine the second free address identification information , Wherein the second free address identification information is address information of the second free location in the second network node; a determining unit is configured to determine a second data packet according to the second free address identification information; The sending unit is configured to send the second data packet.
  • the receiving unit is further configured to receive a third data packet sent by a third network node, where the third data packet carries third free address identification information and second free address identification information And response identification information, the third free address identification information is used to indicate a third free location in the third path routing table of the third network node, and the response identification information is used to indicate a response to the path creation identification;
  • the determining unit is also used to determine a second free location according to the second free address identification information;
  • the saving unit is also used to store the third free address identification information in its own in the second network node The second free location of the second path routing table;
  • the determining unit is further configured to determine a fourth data packet according to the second free location; and the sending unit is further configured to send the fourth data packet.
  • 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;
  • the multiple processing cores store instructions, and according to the instructions, the electronic device executes the method according to the first aspect or any one of the first aspects.
  • 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 product which, when run on a computer, causes the computer to execute as described in the first aspect or any one of the first aspect method.
  • the beneficial effects of the embodiments of the present invention include: first, the second network node receives the first data packet sent by the first network node, where the first data packet carries first idle address identification information, destination network node address and path Create identification information, the first free address identification information is used to indicate the first free location in the first path routing table of the first network node, the path creation identification information is used to indicate the creation of the path, and then the first The second network node stores the first free address identification information in a second free location of its second path routing table and determines second free address identification information, where the second free address identification information is the second Address information of the free location in the second network node, then the second network node determines a second data packet according to the second free address identification information, and finally the second network node sends the second data packet .
  • the free position of the path routing table can be used to establish a new path, and the free position of the path routing table can be reused, reducing the path routing table
  • FIG. 1 is a flowchart of a path creation method for an on-chip network provided by an embodiment of the present invention
  • FIG. 2 is a schematic diagram of a state of a path routing table provided by an embodiment of the present invention.
  • FIG. 3 is a schematic diagram of a state of another path routing table provided by an embodiment of the present invention.
  • FIG. 4 is a flowchart of another path creation method for an on-chip network provided by an embodiment of the present invention.
  • FIG. 5 is a schematic diagram of a state of another path routing table provided by an embodiment of the present invention.
  • FIG. 6 is a flowchart of another method for creating a path for an on-chip network provided by an embodiment of the present invention.
  • FIG. 7 is a schematic diagram of a state of another path routing table provided by an embodiment of the present invention.
  • FIG. 8 is a flowchart of yet another method for creating a path for an on-chip network provided by an embodiment of the present invention.
  • FIG. 9 is a schematic diagram of a state of another path routing table provided by an embodiment of the present invention.
  • FIG. 10 is a schematic diagram of a data transmission provided by an embodiment of the present invention.
  • FIG. 11 is a schematic diagram of a path creation device for an on-chip network provided by an embodiment of the present invention.
  • FIG. 12 is a schematic structural diagram of an electronic device according to an embodiment of the present invention.
  • the method for creating a path for an on-chip network provided by the present invention, as shown in FIG. 1, specifically includes:
  • Step S100 The second network node receives the first data packet sent by the first network node, where the first data packet carries first idle address identification information, destination network node address, and path creation identification information.
  • a free address identification information is used to indicate a first free location in the first path routing table of the first network node, and the path creation identification information is used to indicate a path creation.
  • the second network node may be an intermediate network node or a slave data receiving unit
  • the first network node may be an intermediate network node or a master data sending unit.
  • the first path routing table has a free position
  • the first data packet can be sent to create a new path for data transmission. After the data transmission is completed, the created new path releases the free position occupied by it to make the free position It can be used to create other paths for data transmission.
  • the path routing table of M0 is assumed to be the first path routing table, as shown in Table 1 below:
  • Table 1 above is the path routing table before configuration.
  • the path routing table is stored in a register or in a random access memory; the value of the address identification information may be multiple, depending on the hardware situation It is determined that the address identification information corresponding to several exits is determined according to actual conditions, and the present invention does not limit it.
  • the address identification information in the first path routing table mentioned above will appear to be in an idle state.
  • the address identification information in the idle state is referred to as idle address identification information in the present invention, and there are 4 configurable address identification information in the first path routing table
  • the state schematic diagram of a specific path routing table may be as shown in FIG. 2, the location with address identification information of 0 and 2 is an idle position, and the location with address identification information of 1 and 3 is a busy position, The busy address identification information is used to indicate that a path occupies the location.
  • only the free address identification information of the free location can be called when creating a path.
  • the above Table 1 is determined according to the situation in FIG. 2. Since the positions 1 and 3 are busy, it means that the path has been set, so it will determine which exit sends data and corresponding address identification information.
  • the embodiment of the present invention is based on idle Create a new path for the location. When the location with the address identification information of 0 and 2 is a free location, you need to configure the exit corresponding to 0 and 2 in Table 1 and the address identification information corresponding to the exit after the new path is created. , According to the configuration of Table 1 for data transmission.
  • Step S101 The second network node stores the first free address identification information in a second free location of its second path routing table, and determines the second free address identification information.
  • the method further includes the second network node determining a second free location in its second path routing table.
  • the second network node is an intermediate network node N1
  • the first network node is the main data sending unit M0
  • N1 determines the free location of its own path routing table after receiving the first data packet, and randomly selects a free location to store
  • the first idle address identification information in the first data packet the selected idle position is called a second idle position
  • the address identification information corresponding to the second idle position is called second idle address identification information, through the path routing table of FIG.
  • the schematic diagram of the state shows the above process, as follows: M0 selects 0 in its own path routing table as the first free address identification information used to create a new path, so that the free position corresponding to 0 is in a hold state, and N1 selects its own free position 3 Receive the first data packet, and store the M0 first free address identification information in its own free position 3. For convenience, the first data packet is called A, and A carries 0 to N1.
  • Step S102 The second network node determines a second data packet according to the second idle address identification information.
  • the second network node determines the second idle address identification information and the path creation identification information as the second data packet.
  • the 3 of N1 in FIG. 3 is substituted for the 0 of M0 and the path creation identification information as a new data packet.
  • Step S103 The second network node sends the second data packet.
  • the second network node determines the transmission direction of the second data packet according to the destination network node address; the second network node sends the second data packet according to the transmission direction, wherein, the The second path routing table is similar to Table 1 above, and has a data transmission direction.
  • the intermediate network node passing through may be determined by any addressing method in the prior art, for example, the destination network node address is the first network node and the destination network node Relative address, the destination network node address is modified once by an intermediate network node each time until the destination network node address is modified to a preset value, the slave data receiving unit connected to the intermediate network node corresponding to the preset value is the destination Network node.
  • the second network node receives the first data packet sent by the first network node, where the first data packet carries first idle address identification information and path creation identification information, and the first The idle address identification information is used to indicate the first free location in the first path routing table of the first network node, the path creation identification information is used to indicate the creation of the path, and then the second network node uses the first Storing the free address identification information into a second free location of its own second path routing table, and determining the second free address identification information, and then the second network node determines the second data packet according to the second free address identification information, Finally, the second network node sends the second data packet.
  • the above method can flexibly use the free location in the path routing table, without configuring all paths into the path routing table, and create a path through the free location before data transmission, reducing the cost of storing the path routing table in each node .
  • Step S400 M0 sends path creation data packets A to N1, where the path creation data packet A carries the first free address identification information 0 and path creation identification information in the path routing table of M0.
  • Step S401 N1 stores the first free address identification information 0 in its own free position, wherein the second free address identification information corresponding to the free position of N1 itself is 3, that is, the first free address identification information 0 is stored in the first 2.
  • Step S402 N1 determines a path creation data packet B, where the path creation data packet B includes second free address identification information 3 and path creation identification information.
  • Step S403, N1 sends the path creation data packet B to N2.
  • Step S404 N2 stores the second free address identification information 3 in its own free position, wherein the third free address identification information corresponding to the free position of N2 is 2, that is, the second free address identification information 3 is stored in the second Three free addresses corresponding to the free address identification information 2.
  • Step S405 N2 determines a path creation data packet C, where the path creation data packet C includes third free address identification information 2 and path creation identification information.
  • Step S406, N2 sends the path creation data packet C to S1.
  • Steps S407, S1 store the third free address identification information 2 into its own free position, wherein the fourth free address identification information 1 corresponding to the free position of S1 itself, that is, store the fourth free address identification information 1 into the fourth The free location corresponding to the free address identification information 1.
  • the above process can also be represented by the state schematic diagram of the path routing tables of M0, N1, N2 and S1 in FIG. 5.
  • the data receiving unit after receiving the path creation data packet, the data receiving unit sends a response data packet to the main data receiving unit, and the response data packet is sent to the main data receiving unit through the intermediate network node.
  • the data receiving unit after receiving the path creation data packet, the data receiving unit sends a response data packet to the main data receiving unit, and the response data packet is sent to the main data receiving unit through the intermediate network node.
  • Step S600 The second network node receives a third data packet sent by a third network node, where the third data packet carries third idle address identification information, second idle address identification information, and response identification information,
  • the third free address identification information is used to indicate a third free location in the third path routing table of the third network node, and the response identification information is used to respond to the path creation identification information.
  • the second network node is an intermediate network node or a master data receiving unit
  • the third network node is an intermediate network node or a slave data receiving unit.
  • the second network node is an intermediate network node and the third network node is a slave data receiving unit
  • a schematic diagram of the state of the path routing table of the third network node is shown in FIG. 7, because the path is received from an idle position of the data receiving unit
  • the free address identification information carried in the path creation data packet is stored when the data packet is created.
  • two free address identification information can be determined from the state schematic diagram of the path routing table of the third network node, assuming that the received path creation data
  • the free address identification information carried in the packet is 2
  • the free address identification information of the third network node itself is 1
  • the above 2, 1 and the response identification information are determined as the response data packet is sent to the intermediate network node connected thereto according to the transmission direction
  • the transmission direction is determined according to the path routing table similar to Table 1.
  • Step S601 The second network node determines a second free location according to the second free address identification information.
  • the second network node finds its corresponding second free location according to the second free address identification information.
  • Step S602 The second network node stores the third idle address identification information in a second idle location of its second path routing table.
  • Step S603 The second network node determines a fourth data packet according to the second idle location.
  • the second network node determines a fourth data packet according to the first free address identification information stored in the second free location, where the fourth data packet includes the first free address identification information and the second Free address identification information and the response identification information.
  • Step S604 The second network node sends the fourth data packet.
  • the transmission process of the response data packet is the reverse of the transmission process of the path creation data packet described in the specific embodiment one.
  • the response process is described in detail on the basis of the specific embodiment one .
  • S1 initiates the response packet, and then sends it to M0 through intermediate nodes N2 and N1.
  • the transmission direction is determined according to the path routing tables of S1, N2, and N1. This part will not be described again in the description of the response packet transmission, and the response data is mainly described.
  • Packet transmission as shown in Figure 8, the process is as follows:
  • Step S800 S1 sends a response data packet D to N2, where the response data packet D carries the free address identification information 1 in the path routing table of S1, the free address identification information 2 and the response identification information in the path routing table of N2 .
  • Step S801 N2 stores the free address identification information 1 in the path routing table of S1 into the free location corresponding to the free address identification information 2 in the path routing table of N2.
  • Step S802 determines the response data packet E, wherein the response data packet E includes free address identification information 2 in the path routing table of N2, free address identification information 3 and path creation identification in the path routing table of N1 information.
  • Step S803, N2 sends the response data packet E to N1.
  • Step S804 N1 stores the free address identification information 2 in the path routing table of N2 into the free location corresponding to the free address identification information 3 in the path routing table of N1.
  • Step S805 N1 determines the response data packet F, wherein the response data packet F includes free address identification information 3 in the path routing table of N1, free address identification information 0 and path creation identification in the path routing table of M0 information.
  • Step S806, N1 sends the response data packet F to M0.
  • Step S807 M0 stores the free address identification information 3 in the path routing table of N1 into the free location corresponding to the free address identification information 0 in the path routing table of M0.
  • the above process can also be represented by the state schematic diagram of the path routing tables of S1, N2, N1 and M0 in FIG.
  • the transmission process of the path creation data packet and the response data packet of the foregoing specific embodiment 1 and specific embodiment 2 may also be represented by FIG. 10.
  • the above process successfully creates a new path, so the path routing table of each network node is also updated.
  • the path routing table of each network node is also updated.
  • N1 is the exit of M0 1.
  • the configured path routing table is shown in Table 2:
  • the exit 2 corresponding to the address identification information 0 is not shown in FIG. 10 of the embodiment of the present invention. It is assumed to exist, for example, N5, and has the corresponding address identification information 2.
  • FIG. 11 is a schematic diagram of a path creation device for an on-chip network provided by an embodiment of the present invention.
  • the path creation device for an on-chip network of this embodiment includes: a receiving unit 1101, a saving unit 1102, a determining unit 1103, and a sending unit 1104.
  • the receiving unit 1101 is configured to receive a first data packet sent by a first network node, where the first data packet carries first idle address identification information and path creation identification information, and the first idle
  • the address identification information is used to indicate the first free location in the first path routing table of the first network node, the path creation identification information is used to indicate the path creation;
  • the saving unit 1102 is used to store the first free address
  • the identification information is stored in the second free location of its own second path routing table, and the second free address identification information is determined;
  • the determining unit 1103 is used to determine the second data packet according to the second free address identification information;
  • the sending unit 1104 For sending the second data packet.
  • the receiving unit is further configured to receive a third data packet sent by a third network node, where the third data packet carries third free address identification information and second free address identification information And response identification information, the third free address identification information is used to indicate a third free location in the third path routing table of the third network node, and the response identification information is used to indicate a response to the path creation identification;
  • the determining unit is also used to determine a second free location according to the second free address identification information;
  • the saving unit is also used to store the third free address identification information in its own in the second network node The second free location of the second path routing table;
  • the determining unit is further configured to determine a fourth data packet according to the second free location; and the sending unit is further configured to send the fourth data packet.
  • 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 interact with the data between the N processing cores and external data.
  • An instruction is stored in the N processing cores, and according to the instruction, the electronic device performs the following operation: the second network node receives the first data packet sent by the first network node, where the first data packet carries the first A free address identification information, a destination network node address and path creation identification information, the first free address identification information is used to indicate a first free location in the first path routing table of the first network node, the path creation The identification information is used to indicate the creation of the path; the second network node stores the first free address identification information in a second free location of its second path routing table, and determines the second free address identification information, wherein, the The second free address identification information is address information of the second free location in the second network node; the second network node determines a second data packet according to the second free address identification information; the second The network node sends the second data packet.
  • 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, a complete software implementation (including firmware, resident software, microcode, etc.) or may generally be 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, for example, but 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.; As well as 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 an Internet service provider's Internet) .
  • LAN local area network
  • WAN wide area network
  • Internet service provider's Internet for example, by using an 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.

Abstract

本发明提供了一种用于片上网络的路径创建方法、装置及电子设备,用于解决现有技术中在众核芯片采用NOC进行核与核之间的通信时,路径路由表的开销巨大的问题。包括:第二网络节点接收到第一网络节点发送的第一数据包,其中,所述第一数据包中携带第一空闲地址标识信息和路径创建标识信息,所述第一空闲地址标识信息用于指示所述第一网络节点的第一路径路由表中的第一空闲位置,所述路径创建标识信息用于指示创建路径;所述第二网络节点将所述第一空闲地址标识信息存入自身的第二路径路由表的第二空闲位置,并确定第二空闲地址标识信息;所述第二网络节点根据所述第二空闲地址标识信息确定第二数据包;所述第二网络节点发送所述第二数据包。

Description

一种用于片上网络的路径创建方法、装置及电子设备
本申请要求了2018年12月28日提交的、申请号为201811619532.8、发明名称为“一种用于片上网络的路径创建方法、装置及电子设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及通信技术领域,尤其涉及一种用于片上网络的路径创建方法、装置及电子设备。
背景技术
随着人工智能技术的发展,用户对芯片处理能力的要求越来越高,由于单核芯片的处理能力有限,因此众核芯片的使用越来越广泛。在众核芯片设计中,使用片上网络(Networks on Chip,NOC)实现核与核之间的通信,因此,NOC的性能是众核芯片性能的关键。
在现有技术中,众核芯片采用NOC进行核与核之间的通信,举例说明:主数据发送单元(Master,M)将数据包发送给从数据接收单元(Slave,S)的具体方式如下:首先M在数据包包头添加目的核的地址,然后M根据自身保存的路径路由表将数据包发送给与自己相连的中间网络节点(Node,n),n根据自身保存的路径路由表将数据包直接或者通过其他中间网络节点发送给S,在进行上述数据传输时需要对所有的核进行统一编址,每个核中都需要保存预先配置的静态的路径路由表,上述路径路由表需要同时支持所有场景的路由需求,因此,路径路由表的开销巨大。
发明内容
有鉴于此,本发明提供了一种用于片上网络的路径创建方法、装置及电子设备,用于解决现有技术中在众核芯片采用NOC进行核与核之间的通信时,路径路由表的开销巨大的问题。
根据本发明实施例的第一个方面,提供了一种用于片上网络的路径创建方法,包括:第二网络节点接收到第一网络节点发送的第一数据包,其中,所述第一数据包中携带第一空闲地址标识信息、目的网络节点地址和路径创建标识信息,所述第一空闲 地址标识信息用于指示所述第一网络节点的第一路径路由表中的第一空闲位置,所述路径创建标识信息用于指示创建路径;所述第二网络节点将所述第一空闲地址标识信息存入自身第二路径路由表的第二空闲位置,并确定第二空闲地址标识信息,其中,所述第二空闲地址标识信息为所述第二空闲位置在所述第二网络节点中的地址信息;所述第二网络节点根据所述第二空闲地址标识信息确定第二数据包;所述第二网络节点发送所述第二数据包。
通过上述方法,采用路径路由表的空闲位置建立新的路径,可以减小路径路由表的开销。
在一个实施例中,所述第二网络节点将所述第一空闲地址标识信息存入自身第二路径路由表的第二空闲位置,并确定第二空闲地址标识信息之前,该方法还包括:所述第二网络节点确定自身第二路径路由表中的所述第二空闲位置。
通过该方法,确定第二路径路由表中的所述第二空闲位置可以确定第一空闲地址标识信息存入位置。
在一个实施例中,所述第二网络节点根据所述第二空闲地址标识信息确定第二数据包,具体包括:所述第二网络节点将所述第二空闲地址标识信息、所述目的网络节点地址和所述路径创建标识信息确定为所述第二数据包。
通过该方法,确定出了新的携带第二空闲地址标识信息新的数据包。
在一个实施例中,所述第二网络节点发送所述第二数据包,具体包括:所述第二网络节点根据所述目的网络节点地址确定所述第二数据包的传输方向;所述第二网络节点根据所述传输方向发送所述第二数据包。
通过该方法,确定了第二数据包的传输方向,即确定了新的路径的下一个网络节点。
在一个实施例中,所述第二网络节点发送所述第二数据包之后,该方法还包括:所述第二网络节点接收到第三网络节点发送的第三数据包,其中,所述第三数据包中携带第三空闲地址标识信息、第二空闲地址标识信息和应答标识信息,所述第三空闲地址标识信息用于指示所述第三网络节点的第三路径路由表中的第三空闲位置,所述应答标识信息用于指示响应所述路径创建标识;所述第二网络节点根据所述第二空闲地址标识信息确定第二空闲位置;所述第二网络节点将所述第三空闲地址标识信息存入自身的第二路径路由表的第二空闲位置;所述第二网络节点根据所述第二空闲位置确定第四数据包;所述第二网络节点发送所述第四数据包。
通过该方法,将确定出的新的路径所占用的第三网络节点空闲位置告知第二网络节点,即确定出了新的路径,当进行新的数据包传输时可以直接确定以传输路径。
在一个实施例中,所述第二网络节点根据所述第二空闲位置确定第四数据包,具体包括:所述第二网络节点根据所述第二空闲位置中存储的第一空闲地址标识信息确定第四数据包。
通过该方法,确定出了新的应答数据包。
在一个实施例中,所述第二网络节点根据所述第二空闲位置中存储的第一空闲地址标识信息确定第四数据包,具体包括:所述第二网络节点将所述第一空闲地址标识信息、第二空闲地址标识信息和所述应答标识信息确定为所述第四数据包。
在一个实施例中,所述路径路由表存储在寄存器中,或者存储在随机存取存贮器中。
根据本发明实施例的第二个方面,提供了一种用于片上网络的路径创建装置,包括:接收单元,用于接收到第一网络节点发送的第一数据包,其中,所述第一数据包中携带第一空闲地址标识信息、目的网络节点地址和路径创建标识信息,所述第一空闲地址标识信息用于指示所述第一网络节点的第一路径路由表中的第一空闲位置,所述路径创建标识信息用于指示创建路径;保存单元,用于将所述第一空闲地址标识信息存入自身的第二路径路由表的第二空闲位置,并确定第二空闲地址标识信息,其中,所述第二空闲地址标识信息为所述第二空闲位置在所述第二网络节点中的地址信息;确定单元,用于根据所述第二空闲地址标识信息确定第二数据包;发送单元,用于发送所述第二数据包。
在一个实施例中,所述接收单元还用于,接收到第三网络节点发送的第三数据包,其中,所述第三数据包中携带第三空闲地址标识信息、第二空闲地址标识信息和应答标识信息,所述第三空闲地址标识信息用于指示所述第三网络节点的第三路径路由表中的第三空闲位置,所述应答标识信息用于指示响应所述路径创建标识;所述确定单元还用于,根据所述第二空闲地址标识信息确定第二空闲位置;所述保存单元还用于,所述第二网络节点将所述第三空闲地址标识信息存入自身的第二路径路由表的第二空闲位置;所述确定单元还用于,根据所述第二空闲位置确定第四数据包;所述发送单元还用于,发送所述第四数据包。
根据本发明实施例的第三个方面,提供了一种电子设备,所述电子设备包括:多个处理核;以及片上网络,被配置为交互所述多个处理核间的数据和外部数据;所述 多个处理核中存储指令,根据所述指令所述电子设备执行如第一方面或第一方面任一种可能所述的方法。
根据本发明实施例的第四个方面,提供了一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第一方面或第一方面任一种可能所述的方法。
根据本发明实施例的第五个方面,提供了一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面或第一方面任一种可能所述的方法。
本发明实施例的有益效果包括:首先第二网络节点接收到第一网络节点发送的第一数据包,其中,所述第一数据包中携带第一空闲地址标识信息、目的网络节点地址和路径创建标识信息,所述第一空闲地址标识信息用于指示所述第一网络节点的第一路径路由表中的第一空闲位置,所述路径创建标识信息用于指示创建路径,然后所述第二网络节点将所述第一空闲地址标识信息存入自身第二路径路由表的第二空闲位置,并确定第二空闲地址标识信息,其中,所述第二空闲地址标识信息为所述第二空闲位置在所述第二网络节点中的地址信息,接着所述第二网络节点根据所述第二空闲地址标识信息确定第二数据包,最后所述第二网络节点发送所述第二数据包。通过上述方法,可以在众核芯片采用NOC进行核与核之间的通信时,采用路径路由表的空闲位置建立新的路径,可以重复利用路径路由表的空闲位置,减小了路径路由表的开销。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本发明实施例提供的一种用于片上网络的路径创建方法流程图;
图2是本发明实施例提供的一种路径路由表的状态示意图;
图3是本发明实施例提供的另一种路径路由表的状态示意图;
图4是本发明实施例提供的另一种用于片上网络的路径创建方法流程图;
图5是本发明实施例提供的再一种路径路由表的状态示意图;
图6是本发明实施例提供的再一种用于片上网络的路径创建方法流程图;
图7是本发明实施例提供的另一种路径路由表的状态示意图;
图8是本发明实施例提供的再一种用于片上网络的路径创建方法流程图;
图9是本发明实施例提供的再一种路径路由表的状态示意图;
图10是本发明实施例提供的一种数据传输示意图;
图11是本发明实施例提供的一种用于片上网络的路径创建装置示意图;
图12是本发明实施例提供的一种电子设备结构示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的。
除非上下文明确要求,否则整个申请文件中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,不代表顺序,也不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本发明提供的一种用于片上网络的路径创建方法,具体如图1所示,包括:
步骤S100、第二网络节点接收到第一网络节点发送的第一数据包,其中,所述第一数据包中携带第一空闲地址标识信息、目的网络节点地址和路径创建标识信息,所述第一空闲地址标识信息用于指示所述第一网络节点的第一路径路由表中的第一空闲位置,所述路径创建标识信息用于指示创建路径。
具体的,所述第二网络节点可以为中间网络节点,也可以为从数据接收单元,所述第一网络节点可以为中间网络节点,也可以为主数据发送单元。所述第一路径路由表中具有空闲位置时,可以发出第一数据包,创建一条新的路径,进行数据传输,创建的新路径在数据传输结束后,释放其占用的空闲位置,使空闲位置可以用于创建其他的路径进行数据传输。
举例说明,所述假设M0的路径路由表为第一路径路由表,如下表1所示:
表1
Figure PCTCN2019121519-appb-000001
Figure PCTCN2019121519-appb-000002
其中,上表1是配置前的路径路由表,所述路径路由表存储在寄存器中,或者存储在随机存取存贮器中;所述地址标识信息的值可以为多个,具体根据硬件情况确定,地址标识信息对应几个出口根据实际情况确定,本发明对其不做限定。
上述第一路径路由表中的地址标识信息会出现空闲的状态,空闲状态的地址标识信息在本发明中称为空闲地址标识信息,以第一路径路由表中存在4个可配置的地址标识信息为例,具体的路径路由表的状态示意图可以如图2所示,地址标识信息为0、2的位置为空闲(idle)位置,地址标识信息为1、3的位置为忙碌(busy)位置,忙碌的地址标识信息用于表示有路径占用该位置,本发明实施例中在创建路径时只能调用空闲位置的空闲地址标识信息。
上述表1是根据图2的情况确定的,由于1、3的位置为忙碌,说明已经设置好了路径,因此会确定由哪个出口发出数据以及对应的地址标识信息,本发明实施例是根据空闲位置创建新的路径,当地址标识信息为0、2的位置为空闲位置时,需要在新的路径创建后,才能对表1中的0,2对应的出口以及出口对应的地址标识信息进行配置,根据配置后的表1进行数据传输。
步骤S101、所述第二网络节点将所述第一空闲地址标识信息存入自身的第二路径路由表的第二空闲位置,并确定第二空闲地址标识信息。
可选的,在步骤S101之前,该方法还包括所述第二网络节点确定自身的第二路径路由表中的第二空闲位置。
举例说明,假设所述第二网络节点为中间网络节点N1,第一网络节点为主数据发送单元M0,N1接收到第一数据包之后确定自身路径路由表的空闲位置,任意选择一个空闲位置存储第一数据包中的第一空闲地址标识信息,所选择的空闲位置称为第二空闲位置,第二空闲位置对应的地址标识信息称为第二空闲地址标识信息,通过图3 的路径路由表的状态示意图表示上述过程,具体如下:M0选择自身路径路由表的0作为创建新路径使用的第一空闲地址标识信息,使0对应的空闲位置处于保持(hold)状态,N1选择自身的空闲位置3接收第一数据包,并保存M0第一空闲地址标识信息在自身的空闲位置3,为了方便示意,第一数据包称为A,A携带0发送给N1。
步骤S102、所述第二网络节点根据所述第二空闲地址标识信息确定第二数据包。
具体的,所述第二网络节点将所述第二空闲地址标识信息和所述路径创建标识信息确定为所述第二数据包。
例如,将图3中N1的3代替M0的0与路径创建标识信息确定为新的数据包。
步骤S103、所述第二网络节点发送所述第二数据包。
具体的,所述第二网络节点根据所述目的网络节点地址确定所述第二数据包的传输方向;所述第二网络节点根据所述传输方向发送所述第二数据包,其中,所述第二路径路由表与上述表1类似,具有数据传输方向。
可选的,根据目的网络节点地址确定传输方向时可以通过现有技术中的任一种寻址方法确定经过的中间网络节点,例如,所述目的网络节点地址为第一网络节点与目的网络节点的相对地址,每次经过一个中间网络节点修改一次目的网络节点地址,直到所述目的网络节点地址修改为预先设置的值,与预先设置的值对应的中间网络节点连接的从数据接收单元即目的网络节点。
本发明实施例中,首先第二网络节点接收到第一网络节点发送的第一数据包,其中,所述第一数据包中携带第一空闲地址标识信息和路径创建标识信息,所述第一空闲地址标识信息用于指示所述第一网络节点的第一路径路由表中的第一空闲位置,所述路径创建标识信息用于指示创建路径,然后所述第二网络节点将所述第一空闲地址标识信息存入自身的第二路径路由表的第二空闲位置,并确定第二空闲地址标识信息,接着所述第二网络节点根据所述第二空闲地址标识信息确定第二数据包,最后所述第二网络节点发送所述第二数据包。通过上述方法可以灵活使用路径路由表中的空闲位置,不需要将所有的路径配置到路径路由表中,在进行数据传输之前通过空闲位置创建路径,减小了各节点中存储路径路由表的开销。
下面通过具体实施例一描述路径创建数据包的传输过程,假设M0发起路径创建数据包,经过中间节点N1、N2,最终发送给S1,传输方向是根据M0、N1和N2的路径路由表确定,路径创建数据包的传输过程具体如图4所示:
步骤S400、M0发送路径创建数据包A至N1,其中,所述路径创建数据包A携带 M0的路径路由表中的第一空闲地址标识信息0和路径创建标识信息。
步骤S401、N1将所述第一空闲地址标识信息0存入自身的空闲位置,其中,N1自身的空闲位置对应的第二空闲地址标识信息为3,即将第一空闲地址标识信息0存入第二空闲地址标识信息3对应的空闲位置。
步骤S402、N1确定路径创建数据包B,其中,所述路径创建数据包B中包括第二空闲地址标识信息3和路径创建标识信息。
步骤S403、N1将所述路径创建数据包B发送至N2。
步骤S404、N2将所述第二空闲地址标识信息3存入自身的空闲位置,其中,N2自身的空闲位置对应的第三空闲地址标识信息为2,即将第二空闲地址标识信息3存入第三空闲地址标识信息2对应的空闲位置。
步骤S405、N2确定路径创建数据包C,其中,所述路径创建数据包C中包括第三空闲地址标识信息2和路径创建标识信息。
步骤S406、N2将所述路径创建数据包C发送至S1。
步骤S407、S1将所述第三空闲地址标识信息2存入自身的空闲位置,其中,S1自身的空闲位置对应的第四空闲地址标识信息1,即将第四空闲地址标识信息1存入第四空闲地址标识信息1对应的空闲位置。
上述过程也可以通过图5中M0、N1、N2和S1的路径路由表的状态示意图表示。
本发明实施例中,当数据接收单元接收到路径创建数据包后,向主数据接收单元发送应答数据包,应答数据包经过中间网络节点发送至主数据接收单元。为此,本发明提供的另一种用于片上网络的路径创建方法,具体如图6所示,包括:
步骤S600、所述第二网络节点接收到第三网络节点发送的第三数据包,其中,所述第三数据包中携带第三空闲地址标识信息、第二空闲地址标识信息和应答标识信息,所述第三空闲地址标识信息用于指示所述第三网络节点的第三路径路由表中的第三空闲位置,所述应答标识信息用于响应所述路径创建标识信息。
具体的,所述第二网络节点为中间网络节点、或为主数据接收单元,第三网络节点为中间网络节点、或为从数据接收单元。
假设第二网络节点为中间网络节点,第三网络节点为从数据接收单元,所述第三网络节点的路径路由表的状态示意图如图7所示,由于从数据接收单元的空闲位置接收到路径创建数据包时存储了路径创建数据包中携带的空闲地址标识信息,因此,可以通过第三网络节点的路径路由表的状态示意图中确定出两个空闲地址标识信息,假 设接收到的路径创建数据包中携带的空闲地址标识信息为2,第三网络节点自身的空闲地址标识信息为1,将上述2、1以及应答标识信息确定为应答数据包按照传输方向发送给与其相连的中间网络节点,所述传输方向根据类似表1的路径路由表确定。
步骤S601、所述第二网络节点根据所述第二空闲地址标识信息确定第二空闲位置。
具体的,所述第二网络节点根据第二空闲地址标识信息查找到其对应的第二空闲位置。
步骤S602、所述第二网络节点将所述第三空闲地址标识信息存入自身的第二路径路由表的第二空闲位置。
步骤S603、所述第二网络节点根据所述第二空闲位置确定第四数据包。
具体的,所述第二网络节点根据所述第二空闲位置中存储的第一空闲地址标识信息确定第四数据包,所述第四数据包中包括所述第一空闲地址标识信息、第二空闲地址标识信息和所述应答标识信息。
步骤S604、所述第二网络节点发送所述第四数据包。
下面通过具体实施例二描述应答数据包的传输过程,应答数据包的传输过程与具体实施例一描述路径创建数据包的传输过程为反向,在具体实施例一的基础上详细描述应答的过程。
S1发起应答数据包,经过中间节点N2、N1,最终发送给M0,传输方向是根据S1、N2和N1的路径路由表确定,在描述应答数据包传输中不再赘述这一部分,主要描述应答数据包的传输,具体如图8所示,过程如下:
步骤S800、S1发送应答数据包D至N2,其中,所述应答数据包D携带S1的路径路由表中的空闲地址标识信息1、N2的路径路由表中的空闲地址标识信息2和应答标识信息。
步骤S801、N2将所述S1的路径路由表中的空闲地址标识信息1存入N2的路径路由表中的空闲地址标识信息2对应的空闲位置。
步骤S802、N2确定应答数据数据包E,其中,所述应答数据包E中包括N2的路径路由表中的空闲地址标识信息2、N1的路径路由表中的空闲地址标识信息3和路径创建标识信息。
步骤S803、N2将所述应答数据包E发送至N1。
步骤S804、N1将所述N2的路径路由表中的空闲地址标识信息2存入N1的路径路由表中的空闲地址标识信息3对应的空闲位置。
步骤S805、N1确定应答数据数据包F,其中,所述应答数据包F中包括N1的路径路由表中的空闲地址标识信息3、M0的路径路由表中的空闲地址标识信息0和路径创建标识信息。
步骤S806、N1将所述应答数据包F发送至M0。
步骤S807、M0将所述N1的路径路由表中的空闲地址标识信息3存入M0的路径路由表中的空闲地址标识信息0对应的空闲位置。
上述过程也可以通过图9中S1、N2、N1和M0的路径路由表的状态示意图表示。
本发明实施例中,还可以通过图10表示上述具体实施例一和具体实施例二的路径创建数据包和应答数据包的传输过程。
本发明实施例中,上述过程成功创建了一条新的路径,因此各网络节点的路径路由表也进行了更新,以M0的第一路径路由表(表1)为例,假设N1为M0的出口1,创建上述新的路径时,占用N1的3空闲位置,因此配置后的路径路由表如表2所示:
表2
Figure PCTCN2019121519-appb-000003
其中,地址标识信息0对应的出口2本发明实施例的图10中没有显示,假设存在,例如N5,并具有对应的地址标识信息2。
图11是本发明实施例提供的一种用于片上网络的路径创建装置示意图。如图11所示,本实施例的用于片上网络的路径创建装置包括:接收单元1101、保存单元1102、确定单元1103和发送单元1104。其中,所述接收单元1101,用于接收到第一网络节点发送的第一数据包,其中,所述第一数据包中携带第一空闲地址标识信息和路径创建标识信息,所述第一空闲地址标识信息用于指示所述第一网络节点的第一路径路由表中的第一空闲位置,所述路径创建标识信息用于指示创建路径;保存单元1102,用 于将所述第一空闲地址标识信息存入自身的第二路径路由表的第二空闲位置,并确定第二空闲地址标识信息;确定单元1103,用于根据所述第二空闲地址标识信息确定第二数据包;发送单元1104,用于发送所述第二数据包。
在一个实施例中,所述接收单元还用于,接收到第三网络节点发送的第三数据包,其中,所述第三数据包中携带第三空闲地址标识信息、第二空闲地址标识信息和应答标识信息,所述第三空闲地址标识信息用于指示所述第三网络节点的第三路径路由表中的第三空闲位置,所述应答标识信息用于指示响应所述路径创建标识;所述确定单元还用于,根据所述第二空闲地址标识信息确定第二空闲位置;所述保存单元还用于,所述第二网络节点将所述第三空闲地址标识信息存入自身的第二路径路由表的第二空闲位置;所述确定单元还用于,根据所述第二空闲位置确定第四数据包;所述发送单元还用于,发送所述第四数据包。
图12是本发明实施例的电子设备的结构示意图。如图12所示,本实施例的电子设备包括处理核11-1N以及片上网络14。处理核11-1N均与片上网络14连接。片上网络14用于交互所述N个处理核间的数据和外部数据。所述N个处理核中存储指令,根据所述指令所述电子设备执行如下操作:第二网络节点接收到第一网络节点发送的第一数据包,其中,所述第一数据包中携带第一空闲地址标识信息、目的网络节点地址和路径创建标识信息,所述第一空闲地址标识信息用于指示所述第一网络节点的第一路径路由表中的第一空闲位置,所述路径创建标识信息用于指示创建路径;所述第二网络节点将所述第一空闲地址标识信息存入自身第二路径路由表的第二空闲位置,并确定第二空闲地址标识信息,其中,所述第二空闲地址标识信息为所述第二空闲位置在所述第二网络节点中的地址信息;所述第二网络节点根据所述第二空闲地址标识信息确定第二数据包;所述第二网络节点发送所述第二数据包。
如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明实施例的各个方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子 的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。
可以使用包括但不限于无线、有线、光纤电缆、RF等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。
用于执行针对本发明实施例各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图图例和/或框图描述了本发明实施例的各个方面。将要理解的是,流程图图例和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备 或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。
计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

  1. 一种用于片上网络的路径创建方法,其特征在于,包括:
    第二网络节点接收到第一网络节点发送的第一数据包,其中,所述第一数据包中携带第一空闲地址标识信息、目的网络节点地址和路径创建标识信息,所述第一空闲地址标识信息用于指示所述第一网络节点的第一路径路由表中的第一空闲位置,所述路径创建标识信息用于指示创建路径;
    所述第二网络节点将所述第一空闲地址标识信息存入自身第二路径路由表的第二空闲位置,并确定第二空闲地址标识信息,其中,所述第二空闲地址标识信息为所述第二空闲位置在所述第二网络节点中的地址信息;
    所述第二网络节点根据所述第二空闲地址标识信息确定第二数据包;
    所述第二网络节点发送所述第二数据包。
  2. 如权利要求1所述的方法,其特征在于,所述第二网络节点将所述第一空闲地址标识信息存入自身第二路径路由表的第二空闲位置,并确定第二空闲地址标识信息之前,该方法还包括:
    所述第二网络节点确定自身第二路径路由表中的所述第二空闲位置。
  3. 如权利要求1或2所述的方法,其特征在于,所述第二网络节点根据所述第二空闲地址标识信息确定第二数据包,具体包括:
    所述第二网络节点将所述第二空闲地址标识信息、所述目的网络节点地址和所述路径创建标识信息确定为所述第二数据包。
  4. 如权利要求1-3任一项所述的方法,其特征在于,所述第二网络节点发送所述第二数据包,具体包括:
    所述第二网络节点根据所述目的网络节点地址确定所述第二数据包的传输方向;
    所述第二网络节点根据所述传输方向发送所述第二数据包。
  5. 如权利要求1-4任一项所述的方法,其特征在于,所述第二网络节点发送所述第二数据包之后,该方法还包括:
    所述第二网络节点接收到第三网络节点发送的第三数据包,其中,所述第三数据包中携带第三空闲地址标识信息、第二空闲地址标识信息和应答标识信息,所述第三空闲地址标识信息用于指示所述第三网络节点的第三路径路由表中的第三空闲位置,所述应答标识信息用于指示响应所述路径创建标识;
    所述第二网络节点根据所述第二空闲地址标识信息确定第二空闲位置;
    所述第二网络节点将所述第三空闲地址标识信息存入自身的第二路径路由表的第二空闲位置;
    所述第二网络节点根据所述第二空闲位置确定第四数据包;
    所述第二网络节点发送所述第四数据包。
  6. 如权利要求5所述的方法,其特征在于,所述第二网络节点根据所述第二空闲位置确定第四数据包,具体包括:
    所述第二网络节点根据所述第二空闲位置中存储的第一空闲地址标识信息确定第四数据包。
  7. 如权利要求6所述的方法,其特征在于,所述第二网络节点根据所述第二空闲位置中存储的第一空闲地址标识信息确定第四数据包,具体包括:
    所述第二网络节点将所述第一空闲地址标识信息、第二空闲地址标识信息和所述应答标识信息确定为所述第四数据包。
  8. 如权利要求1-7任一项所述的方法,其特征在于,所述路径路由表存储在寄存器中,或者存储在随机存取存贮器中。
  9. 一种用于片上网络的路径创建装置,其特征在于,包括:
    接收单元,用于接收到第一网络节点发送的第一数据包,其中,所述第一数据包中携带第一空闲地址标识信息、目的网络节点地址和路径创建标识信息,所述第一空闲地址标识信息用于指示所述第一网络节点的第一路径路由表中的第一空闲位置,所述路径创建标识信息用于指示创建路径;
    保存单元,用于将所述第一空闲地址标识信息存入自身的第二路径路由表的第二空闲位置,并确定第二空闲地址标识信息,其中,所述第二空闲地址标识信息为所述第二空闲位置在所述第二网络节点中的地址信息;
    确定单元,用于根据所述第二空闲地址标识信息确定第二数据包;
    发送单元,用于发送所述第二数据包。
  10. 如权利要求9所述的装置,其特征在于,所述接收单元还用于,接收到第三网络节点发送的第三数据包,其中,所述第三数据包中携带第三空闲地址标识信息、第二空闲地址标识信息和应答标识信息,所述第三空闲地址标识信息用于指示所述第三网络节点的第三路径路由表中的第三空闲位置,所述应答标识信息用于指示响应所述路径创建标识;
    所述确定单元还用于,根据所述第二空闲地址标识信息确定第二空闲位置;
    所述保存单元还用于,所述第二网络节点将所述第三空闲地址标识信息存入自身的第二路径路由表的第二空闲位置;
    所述确定单元还用于,根据所述第二空闲位置确定第四数据包;
    所述发送单元还用于,发送所述第四数据包。
  11. 一种电子设备,其特征在于,所述电子设备包括:
    多个处理核;以及
    片上网络,被配置为交互所述多个处理核间的数据和外部数据;
    所述多个处理核中存储指令,根据所述指令所述电子设备执行如权利要求1-8中任一项所述的方法。
  12. 一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-8中任一项所述的方法。
  13. 一种计算机程序产品,其特征在于,所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-8中任一项所述的方法。
PCT/CN2019/121519 2018-12-28 2019-11-28 一种用于片上网络的路径创建方法、装置及电子设备 WO2020134827A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/418,336 US11398981B2 (en) 2018-12-28 2019-11-28 Path creation method and device for network on chip and electronic apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811619532.8 2018-12-28
CN201811619532.8A CN111382115B (zh) 2018-12-28 2018-12-28 一种用于片上网络的路径创建方法、装置及电子设备

Publications (1)

Publication Number Publication Date
WO2020134827A1 true WO2020134827A1 (zh) 2020-07-02

Family

ID=71126893

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/121519 WO2020134827A1 (zh) 2018-12-28 2019-11-28 一种用于片上网络的路径创建方法、装置及电子设备

Country Status (3)

Country Link
US (1) US11398981B2 (zh)
CN (1) CN111382115B (zh)
WO (1) WO2020134827A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095289B (zh) * 2020-08-07 2023-05-12 北京希姆计算科技有限公司 数据多播电路、方法、电子设备及计算机可读存储介质
US11853250B2 (en) 2021-09-28 2023-12-26 Shanghai Zhaoxin Semiconductor Co., Ltd. Interconnect interface
CN116627846B (zh) * 2023-07-20 2023-09-22 北京云枢创新软件技术有限公司 确定目标调用标识的位置信息的方法、电子设备和介质
CN117135103B (zh) * 2023-10-25 2024-02-23 苏州元脑智能科技有限公司 片上网络的路由方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010025377A1 (en) * 1999-12-30 2001-09-27 Hinderks Larry W. High bandwidth transmission system and method having local insertion, delay play and demand play
CN101233731A (zh) * 2005-05-18 2008-07-30 99有限公司 动态地址映射
CN104202253A (zh) * 2014-08-06 2014-12-10 长春理工大学 基于动态路由表的片上网络拥塞控制方法
CN104539533A (zh) * 2014-12-22 2015-04-22 合肥工业大学 依据3D NoC中每一层TSV连接状况建立通道表的方法及其应用
CN105450555A (zh) * 2014-09-26 2016-03-30 杭州华为数字技术有限公司 一种片上网络系统,及片上网络通信链路的建立方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1040655A (zh) 1989-09-09 1990-03-21 王立 内外转子同心同向旋转式发动机
US8185896B2 (en) * 2007-08-27 2012-05-22 International Business Machines Corporation Method for data processing using a multi-tiered full-graph interconnect architecture
CN101488922B (zh) * 2009-01-08 2011-01-26 浙江大学 具备自适应路由能力的片上网络路由器及其实现方法
JP2012146201A (ja) * 2011-01-13 2012-08-02 Toshiba Corp オンチップルータ及びそれを用いたマルチコアシステム
US9244880B2 (en) * 2012-08-30 2016-01-26 Netspeed Systems Automatic construction of deadlock free interconnects
US9319314B2 (en) * 2013-04-26 2016-04-19 Mediatek Inc. Apparatus and method for using link-tail of link list to store data pattern which is indicative of end of link list and auxiliary information
CN103107943B (zh) * 2013-02-22 2014-04-16 中国人民解放军国防科学技术大学 用于无缓存光交换网络的自适应路由方法
US9531623B2 (en) * 2013-04-05 2016-12-27 International Business Machines Corporation Set up of direct mapped routers located across independently managed compute and storage networks
CN104156267B (zh) * 2013-05-14 2017-10-10 华为技术有限公司 任务分配方法、任务分配装置及片上网络
CN103973482A (zh) * 2014-04-22 2014-08-06 南京航空航天大学 具有全局通信事务管理能力的容错片上网络系统及方法
US9986434B2 (en) * 2014-04-30 2018-05-29 Avago Technologies General Ip (Singapore) Pte. Ltd. System for accelerated network route update through exclusive access to routing tables
CN103986664B (zh) * 2014-05-15 2017-06-27 厦门大学 一种用于片上网络的混合互连Mesh拓扑结构及其路由算法
CN104065577B (zh) * 2014-06-30 2017-05-17 中国航空无线电电子研究所 一种适用于航空电子的片上网络系统
CN104243326A (zh) * 2014-09-11 2014-12-24 西安电子科技大学 片上网络多播分组断点绕路续传机制
WO2017190266A1 (zh) * 2016-05-03 2017-11-09 华为技术有限公司 管理转址旁路缓存的方法和多核处理器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010025377A1 (en) * 1999-12-30 2001-09-27 Hinderks Larry W. High bandwidth transmission system and method having local insertion, delay play and demand play
CN101233731A (zh) * 2005-05-18 2008-07-30 99有限公司 动态地址映射
CN104202253A (zh) * 2014-08-06 2014-12-10 长春理工大学 基于动态路由表的片上网络拥塞控制方法
CN105450555A (zh) * 2014-09-26 2016-03-30 杭州华为数字技术有限公司 一种片上网络系统,及片上网络通信链路的建立方法
CN104539533A (zh) * 2014-12-22 2015-04-22 合肥工业大学 依据3D NoC中每一层TSV连接状况建立通道表的方法及其应用

Also Published As

Publication number Publication date
CN111382115B (zh) 2022-04-15
US11398981B2 (en) 2022-07-26
CN111382115A (zh) 2020-07-07
US20220045948A1 (en) 2022-02-10

Similar Documents

Publication Publication Date Title
WO2020134827A1 (zh) 一种用于片上网络的路径创建方法、装置及电子设备
US10437775B2 (en) Remote direct memory access in computing systems
US11088944B2 (en) Serverless packet processing service with isolated virtual network integration
WO2020093887A1 (zh) 用于片上网络noc的数据传输方法、装置及电子设备
CN110313163B (zh) 分布式计算系统中的负载平衡
TWI598746B (zh) 伺服器系統及其電腦實現之方法
US9350607B2 (en) Scalable network configuration with consistent updates in software defined networks
WO2020134831A1 (zh) 一种用于片上网络的数据传输方法、装置及电子设备
WO2020073903A1 (zh) 时延敏感网络通信方法及其装置
US20130051400A1 (en) Bridge port between hardware lan and virtual switch
CN104221331B (zh) 用于以太网交换机的没有查找表的第2层分组交换
WO2019062830A1 (zh) 实例业务拓扑的生成方法及装置
CN106155264B (zh) 管理存储子系统的电力消耗的计算机方法与计算机系统
TW201711557A (zh) 用於配置一或多個伺服器之機架系統與其配置方法
US10621124B2 (en) Method, device and computer program product for enabling SR-IOV functions in endpoint device
CN104811392A (zh) 用于处理网络中的资源访问请求的方法和系统
JP2005295124A (ja) 経路テーブル同期方法、ネットワーク機器および経路テーブル同期プログラム
US9246792B2 (en) Providing point to point communications among compute nodes in a global combining network of a parallel computer
US20140112142A1 (en) Method of forwarding packet and apparatus thereof
US11296981B2 (en) Serverless packet processing service with configurable exception paths
US20150381480A1 (en) Network system, resource control device, and virtual machine generation device
WO2020147081A1 (zh) 一种数据传输方法、相关设备及计算机存储介质
WO2016173196A1 (zh) 地址映射关系的学习方法及装置
US9747144B2 (en) Function processing apparatus and function processing method dynamically process network function using commands
CN108353017B (zh) 计算系统和用于操作多网关虚拟机上的多个网关的方法

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: 19902253

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: 19902253

Country of ref document: EP

Kind code of ref document: A1