CN114079627A - Data transmission device and method - Google Patents

Data transmission device and method Download PDF

Info

Publication number
CN114079627A
CN114079627A CN202010820611.6A CN202010820611A CN114079627A CN 114079627 A CN114079627 A CN 114079627A CN 202010820611 A CN202010820611 A CN 202010820611A CN 114079627 A CN114079627 A CN 114079627A
Authority
CN
China
Prior art keywords
network interface
data packet
network
subnet
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010820611.6A
Other languages
Chinese (zh)
Inventor
李鸽子
李�诚
杨伟
虞志益
李润峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010820611.6A priority Critical patent/CN114079627A/en
Publication of CN114079627A publication Critical patent/CN114079627A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The application discloses a data transmission device and a data transmission method, relates to the technical field of data transmission, and is beneficial to improving the data transmission efficiency. The data transmission device comprises a router, a first network interface and a plurality of second network interfaces. After the first network interface receives the data packet including the identifiers of the multiple destination network interfaces sent by the router, the first network interface may broadcast the data packet in a first subnet, where the first subnet includes the first network interface and multiple second network interfaces, and the multiple second network interfaces include multiple destination network interfaces. After the plurality of second network interfaces in the first subnet receive the data packet sent by the first network interface, the plurality of destination network interfaces may forward the data packet to the corresponding processing node according to the identifier of the destination network interface in the data packet, and other network interfaces in the plurality of second network interfaces except the plurality of destination network interfaces may discard the data packet according to the identifiers of the plurality of destination network interfaces.

Description

Data transmission device and method
Technical Field
The present application relates to the field of data transmission technologies, and in particular, to a data transmission apparatus and method.
Background
In recent years, neural network (neural network) technology has been rapidly developed, and has been widely successful in many fields such as pattern recognition, prediction estimation, image processing, and the like, and with more and more complex computing tasks, the scale of processing nodes of the neural network is gradually enlarged, and how to realize efficient communication between each node becomes an important task which needs to be solved urgently.
The convolutional neural network is a network structure more suitable for image processing and pattern recognition. With the rise of the research enthusiasm of the convolutional neural network, the depth of the model of the convolutional neural network is continuously deepened to obtain higher algorithm performance. However, at the same time, the problems of large local data volume, dense data transmission, and the like of the convolutional neural network begin to emerge gradually. Under the circumstance, how to rapidly and efficiently transmit data to improve the calculation speed of the convolutional neural network becomes an urgent technical problem to be solved.
Disclosure of Invention
The embodiment of the application provides a data transmission device and method, which are beneficial to improving the data transmission efficiency. When the technical scheme is applied to the neural network system, the data transmission efficiency and the calculation speed of the neural network system are improved. The neural network system here may be, for example, a convolutional neural network.
In order to achieve the above purpose, the embodiments of the present application provide the following technical solutions:
in a first aspect, a data transmission apparatus is provided, which includes: the router is used for sending a data packet to the first network interface, wherein the data packet comprises the identifiers of the plurality of destination network interfaces. A first network interface to: and receiving a data packet sent by the router, and broadcasting the data packet in a first subnet, wherein the first subnet comprises a first network interface and a plurality of second network interfaces, and the plurality of second network interfaces comprise a plurality of destination network interfaces. The multiple second network interfaces are configured to receive a data packet sent by the first network interface, where the multiple destination network interfaces are further configured to forward the data packet to corresponding processing nodes according to an identifier of a destination network interface in the data packet, and other network interfaces than the multiple destination network interfaces in the multiple second network interfaces are further configured to discard the data packet according to the identifiers of the multiple destination network interfaces.
In the technical scheme, the data packet is sent in a broadcast mode, and the received data packet is processed in a multicast mode. Because the data packet is sent in a broadcast mode, path selection is not needed in the process of transmitting the data packet from the transmitting end to the destination end, and therefore the data processing complexity in the data packet transmission process is facilitated to be saved, and the data transmission time is saved. And the data packet is processed in a multicast mode, so that the data packet can be sent to the selectable destination (namely, the plurality of destination network interfaces) instead of all the destinations in the broadcast mode (namely, all the second network interfaces in the first subnet). Therefore, by combining the respective characteristics of the broadcast mode and the multicast mode, the data packet is sent in the broadcast mode in the scene of transmitting the multicast data packet, and the received data packet is processed in the multicast mode, which is beneficial to improving the data transmission efficiency on the premise of ensuring that the data packet is transmitted to a correct destination end. The correct destination here (i.e. the destination network interface described above) can be pre-configured based on the network topology. When the technical scheme is applied to the neural network system, the data transmission efficiency and the calculation speed of the neural network system are improved.
In one possible design, the first network interface is configured to broadcast the data packet to a plurality of second network interfaces in the first subnet based on the identification of the plurality of destination network interfaces. For example, if the first network interface 201 determines that the data packet includes the identifiers of the multiple destination network interfaces after parsing the header portion of the data packet, the data packet is broadcast to the first subnet.
In one possible design, the first network interface is configured to broadcast the data packet to a plurality of second network interfaces in the first subnet according to a broadcast identifier included in the data packet. For example, if the first network interface 201 determines that the data packet includes the broadcast identifier after parsing the header portion of the data packet, the data packet is broadcast to the first subnet.
In one possible design, the data packet further includes an identification of the first subnet. The router is used for sending the data packet to the first network interface according to the first subnet identification. This allows for "a router connecting multiple subnets and transmitting packets between the multiple subnets". That is, the router may also connect to other subnets, thereby sending packets to other subnets based on other subnet identifications.
In one possible design, the data transmission apparatus further includes a third network interface, and the router is further configured to communicate with the third network interface, where the third network interface is a network interface in a second subnet, and the second subnet includes the third network interface and a plurality of fourth network interfaces. This possible design provides a specific implementation of one router connecting multiple subnets. Wherein the function of the third network interface may refer to the function of the first network interface in the first subnet. The function of the fourth network interface may refer to the function of the second network interface in the first subnet. And will not be described in detail herein.
In one possible embodiment, part of the network interfaces in the first subnetwork also belong to the second subnetwork.
In one possible design, the data transfer device further includes a plurality of configuration switches. A first configuration switch of the plurality of configuration switches is connected to the first network interface, and is configured to receive the data packet sent by the first network interface and send the data packet to another configuration switch of the first subnet connected to the plurality of second network interfaces.
In one possible design, each configuration switch in the plurality of configuration switches includes a plurality of ports, a first port of the plurality of ports for connecting to one network interface, and other network interfaces of the plurality of ports for connecting to other configuration switches. Each of the plurality of configuration switches is further configured to control a connection or disconnection state between the plurality of ports of the configuration switch based on the configuration information.
By providing the configuration switch, it is facilitated to control the connection or disconnection state between the network interfaces in the sub-network and the data transfer direction by controlling the configuration switch. Similarly, the configuration switch is arranged in different subnets, which is helpful for controlling the connection or disconnection state between the network interfaces between the subnets through the control configuration switch, so that the subnets in the data transmission device are configurable, and the data transmission direction between the network interfaces in the subnets is configurable. Thus, a variety of network topologies can be supported using a single hardware system of the data transfer device.
In one possible design, the data transmission device is a neural network chip and the processing nodes are processing nodes in a neural network.
In one possible design, the network interface in the first subnet includes: the network interface is connected with a first processing node of a first neural network layer in the neural network chip and is connected with a plurality of second processing nodes of a second neural network layer, wherein the first processing node is used for transmitting data to the plurality of second processing nodes. For example, the first network interface includes a network interface connecting a first processing node of a first neural network layer in the neural network chip, and the plurality of second network interfaces includes a network interface connecting a plurality of second processing nodes of a second neural network layer. This alternative implementation provides a method of determining network interfaces in a subnet based on the network topology of a neural network. This helps to improve the efficiency of data transmission between neural network layers.
In one possible design, the data amount of the data packets transmitted between the network interfaces in the first subnetwork is greater than the first threshold. This alternative implementation provides a way to use the network interface with the larger data size of the transmitted data packets as a subnet. Thus, the data transmission efficiency is improved.
In a second aspect, a data transmission method is provided, which includes: the first network interface receives a data packet sent by the router, wherein the data packet comprises the identification of a plurality of destination network interfaces. The first network interface then broadcasts the data packet in a first subnet, where the first subnet includes the first network interface and a plurality of second network interfaces including a plurality of destination network interfaces. The multiple destination network interfaces forward the data packet to corresponding processing nodes according to the identification of the destination network interface in the data packet; and other network interfaces except the plurality of destination network interfaces in the plurality of second network interfaces discard the data packet according to the identification of the destination network interface in the data packet.
In one possible design, the first network interface broadcasts the packet into the first subnet, including: the first network interface broadcasts the data packet to a plurality of second network interfaces in the first subnet according to the identification of the plurality of destination network interfaces.
In one possible design, the first network interface broadcasts the packet into the first subnet, including: the first network interface broadcasts the data packet to a plurality of second network interfaces in the first subnet according to the broadcast identification in the data packet.
In a third aspect, a data transmission method is provided, where the method includes: a second network interface receives a data packet broadcasted by a first network interface, wherein the data packet comprises a plurality of destination network interface identifiers; then, when the second network interface determines that the identifier of the destination network interface in the data packet includes the identifier of the second network interface, forwarding the data packet to the corresponding processing node; or the second network interface discards the data packet when determining that the identification of the destination network interface in the data packet does not include the identification of the second network interface.
In a fourth aspect, a network interface is provided, comprising: and the receiving unit is used for receiving a data packet broadcasted by the first network interface, wherein the data packet comprises the identifiers of the plurality of destination network interfaces. The processing unit is used for forwarding the data packet to a corresponding processing node when the identification of the destination network interface in the data packet is determined to comprise the identification of the second network interface; or discarding the data packet when determining that the identification of the destination network interface in the data packet does not include the identification of the second network interface.
In a fifth aspect, a network interface is provided.
In one possible design, the network interface includes: a memory for storing computer instructions and one or more processors for invoking the computer instructions to perform the method provided by the fourth aspect.
In another possible design, the network interface includes: a control circuit for implementing the method provided by the fourth aspect above, and one or more ports.
In a sixth aspect, a computer-readable storage medium is provided, having stored thereon a computer program which, when run on a computer, causes the computer to perform the method provided in the fourth aspect.
In a seventh aspect, a computer program product is provided, which when run on a computer causes the method provided in the fourth aspect to be performed.
It can be understood that any one of the data transmission methods, network interfaces, computer storage media, computer program products, or chip systems provided above can be applied to the corresponding data transmission apparatuses provided above, and therefore, the beneficial effects achieved by the methods can refer to the beneficial effects in the corresponding data transmission apparatuses, and are not described herein again.
In the present application, the names of the above-mentioned data transmission devices do not limit the devices or functional modules themselves, and in actual implementation, the devices or functional modules may appear by other names. Insofar as the functions of the respective devices or functional modules are similar to those of the present application, they fall within the scope of the claims of the present application and their equivalents.
These and other aspects of the present application will be more readily apparent from the following description.
Drawings
Fig. 1 is a schematic structural diagram of a neural network system according to an embodiment of the present disclosure;
fig. 2 is a schematic structural diagram of a compute node in a neural network chip according to an embodiment of the present disclosure;
fig. 3 is a schematic structural diagram of a data transmission device according to an embodiment of the present application;
fig. 4 is a schematic structural diagram of another data transmission apparatus according to an embodiment of the present application;
fig. 5 is a schematic structural diagram of another data transmission apparatus according to an embodiment of the present application;
fig. 6 is an interaction diagram of a data transmission method according to an embodiment of the present application;
fig. 7 is a schematic diagram of a format of a data packet according to an embodiment of the present application;
fig. 8 is a schematic diagram illustrating nodes involved in a data transmission apparatus and a connection relationship therebetween according to an embodiment of the present application;
fig. 9 is a schematic structural diagram of a basic unit of a data transmission device according to an embodiment of the present application;
fig. 10 is a schematic structural diagram of a data transmission device provided based on the basic unit shown in fig. 9 according to an embodiment of the present application;
FIG. 11 is a schematic diagram of a configuration switch according to an embodiment of the present application;
fig. 12 is a schematic structural diagram illustrating configuration information stored in a configuration register in a configuration switch according to an embodiment of the present application;
fig. 13 is a schematic structural diagram illustrating configuration information stored in a configuration register in another configuration switch according to an embodiment of the present application;
FIG. 14 is a flowchart illustrating a data transmission method for configuring a status bus of a switch according to an embodiment of the present application;
fig. 15 is a flowchart illustrating a data transmission method for configuring a data bus of a switch according to an embodiment of the present application;
fig. 16 is a schematic structural diagram of a network interface according to an embodiment of the present application;
fig. 17 is a schematic diagram illustrating a format of configuration information stored in a configuration register in a network interface according to an embodiment of the present application;
fig. 18 is a schematic method diagram of a workflow of a network interface according to an embodiment of the present application;
fig. 19 is a schematic structural diagram of another data transmission device according to an embodiment of the present application;
FIG. 20 is a diagram illustrating configuration results of a configuration switch according to an embodiment of the present application;
fig. 21 is a schematic structural diagram of a data packet according to an embodiment of the present application;
fig. 22 is a schematic diagram illustrating configuration information stored in a configuration register in a network interface according to an embodiment of the present application;
fig. 23 is a schematic structural diagram of a network interface according to an embodiment of the present application.
Detailed Description
The technical scheme provided by the embodiment of the application can be applied to an Artificial Neural Network (ANN). An artificial Neural Network (NN) or neural network-like network is a mathematical model or computational model that mimics the structure and function of a biological neural network (e.g., the central nervous system of an animal, particularly the brain) in the field of machine learning and cognitive science, and is used to estimate or approximate functions. The artificial neural network may include a Convolutional Neural Network (CNN), a Deep Neural Network (DNN), a Time Delay Neural Network (TDNN), and a multilayer perceptron (MLP).
Fig. 1 is a schematic structural diagram of a neural network system according to an embodiment of the present disclosure. As shown in fig. 1, the neural network system 100 may include a host 105 and a neural network circuit 110. The neural network circuit 110 is connected to the host 105 through a host interface. The host interface may include a standard host interface as well as a network interface (network interface). For example, the host interface may include a Peripheral Component Interconnect Express (PCIE) interface. As shown in fig. 1, the neural network circuit 110 may be connected to the host 105 through the PCIE bus 106. Therefore, data can be input into the neural network circuit 110 through the PCIE bus 106, and the data after the processing by the neural network circuit 110 is completed is received through the PCIE bus 106. Also, the host 105 may monitor the operating state of the neural network circuit 110 through the host interface.
Host 105 may include a processor 1052 and a memory 1054. It should be noted that, in addition to the devices shown in fig. 1, the host 105 may further include other devices such as a communication interface and a magnetic disk as an external storage, which is not limited herein.
The processor (processor)1052 is an arithmetic core and a control core (control unit) of the host 105. Processor 1052 may include multiple processor cores (cores). Processor 1052 may be an ultra-large scale integrated circuit. An operating system and other software programs are installed on processor 1052, and thus processor 1052 is able to access memory 1054, cache, disks, and peripheral devices, such as the neural network circuitry of FIG. 1. It is understood that, in the embodiment of the present invention, the Core in the processor 1052 may be, for example, a Central Processing Unit (CPU) or other specific integrated circuit (ASIC).
The memory 1054 is the main memory of the host 105. The memory 1054 is coupled to the processor 1052 via a Double Data Rate (DDR) bus. Memory 1054 is typically used to store various operating systems running software, input and output data, and information exchanged with external memory. In order to increase the access speed of the processor 1052, the memory 1054 needs to have an advantage of high access speed. In a conventional computer system architecture, a Dynamic Random Access Memory (DRAM) is usually used as the memory 1054. The processor 1052 is capable of accessing the memory 1054 at high speed through a memory controller (not shown in fig. 1) to perform read and write operations on any one of the memory locations in the memory 1054.
The neural network circuit 110 is a chip array composed of a plurality of neural network chips (chips). For example, as shown in fig. 1, the neural network circuit 110 includes a plurality of neural network chips 115 that perform data processing and a plurality of routers 120. For convenience of description, the neural network chip 115 in the application is simply referred to as the chip 115 in the embodiments of the present invention. In one example, the plurality of chips 115 may be interconnected through a router 120. For example, one chip 115 may be connected to one or more routers 120. The plurality of routers 120 may comprise one or more network topologies. The chips 115 may communicate data therebetween via the various network topologies. In another example, the plurality of chips 115 may be interconnected via a PCIE bus.
Fig. 2 is a schematic structural diagram of a compute node in a neural network chip according to an embodiment of the present disclosure. As shown in fig. 2, a plurality of routers 120 are included in chip 115, and each router may be connected to a tile 125. In practical applications, one router 120 may further be connected to a plurality of tiles 125, wherein each tile125 may include one or more computing units for performing neural network computations on data. For convenience of description, in the embodiment of the present application, the chip 115 or tile125 may also be referred to as a compute node.
System-on-a-chip (SoC) refers to a technology for grouping all or part of necessary electronic circuits by integrating a complete system on a single chip. When applied to the present embodiment, the SoC is a system on the chip 115.
Fig. 3, fig. 4 and fig. 5 are schematic structural diagrams of the data transmission device 20 according to an embodiment of the present application. The data transmission device 20 may include a router 200 and at least one subnet. A subnet is a collection of network interfaces.
As shown in fig. 3, the at least one subnet comprises a first subnet comprising a first network interface 201 and a plurality of second network interfaces 202. The first network interface 201 is a network interface for broadcasting data packets in the first subnet. A first network interface 201 may be coupled to at least one processing node 205. The second network interface 202 is the network interface in the first subnet that receives the broadcasted data packets. A second network interface 202 may be coupled to at least one processing node 205.
Alternatively, the data transmission device 20 may be a neural network chip (e.g., the chip 115 in fig. 1), in which case tile125 in fig. 2 may be referred to as a processing node in the neural network. In another case, the data transmission device 20 may also refer to a neural network circuit (such as the neural network circuit 110 in fig. 1) including a plurality of neural network chips, in which case the neural network chip 115 may be used as a processing node in the neural network.
The router 200 is configured to send a data packet to the first network interface 201, where the data packet includes identifiers of multiple destination network interfaces. Optionally, the data packet further includes a first subnet identification. The router 200 is configured to send the data packet to the first network interface 201 according to the first subnet identification.
A first network interface 201 for: receiving the data packet sent by the router 200, and broadcasting the data packet in a first subnet, wherein the first subnet includes a first network interface 201 and a plurality of second network interfaces 202, and the plurality of second network interfaces 202 includes the plurality of destination network interfaces. The plurality of network interfaces may be part or all of the second network interface 202, and specifically, which network interfaces are determined based on the network topology.
In one implementation, the first network interface 201 is configured to broadcast the data packet to the plurality of second network interfaces 202 in the first subnet according to the identification of the plurality of destination network interfaces. For example, if the first network interface 201 determines that the data packet includes the identifiers of the multiple destination network interfaces after parsing the header portion of the data packet, the data packet is broadcast to the first subnet.
In another implementation, the first network interface 201 is configured to broadcast the data packet to the plurality of second network interfaces 202 in the first subnet according to a broadcast identifier included in the data packet. For example, if the first network interface 201 determines that the data packet includes the broadcast identifier after parsing the header portion of the data packet, the data packet is broadcast to the first subnet. In addition, if the first network interface 201 determines that the data packet does not include a broadcast identifier or includes another identifier (e.g., a non-broadcast identifier, etc.), the data packet is sent to a processing node connected to the first network interface 201.
A plurality of second network interfaces 202, configured to receive the data packet sent by the first network interface 201. Wherein, the multiple destination network interfaces are further configured to forward the data packet to the corresponding processing node 205 according to the identifier of the destination network interface in the data packet, and the other network interfaces in the multiple second network interfaces except the multiple destination network interfaces are further configured to discard the data packet according to the identifiers of the multiple destination network interfaces.
Specifically, for any second network interface 202, after receiving the data packet sent by the first network interface 201, the header portion of the data packet may be parsed to obtain the identifier of the destination network interface included in the data packet. If the identification of the data packet is determined to be contained in the identification of the destination network interface in the data packet, which indicates that the second network interface 202 is the destination network interface, the data packet is forwarded to one or more processing nodes connected to the data packet. Wherein it is known to which processing nodes the data packet is forwarded by further parsing the data packet (e.g. the header portion of the data packet). For any second network interface, if it is determined that its identifier is not included in the identifier of the destination network interface in the packet, indicating that the second network interface 202 is not the destination network interface, the packet is discarded.
In the data transmission device 20 provided in this embodiment, the data packet is transmitted in a broadcast manner, and the received data packet is processed in a multicast manner. It should be noted that, in the conventional broadcast mode, the data packet does not carry the identifier of the destination, but in the technical solution provided in this embodiment, the data packet transmitted in the broadcast mode carries the identifier of the destination, so that the second network interface receiving the data packet can process the data packet in a multicast mode.
Because the data packet is sent in a broadcast mode, path selection is not needed in the process of transmitting the data packet from the transmitting end to the destination end, and therefore the data processing complexity in the data packet transmission process is facilitated to be saved, and the data transmission time is saved. And the data packet is processed in a multicast mode, so that the data packet can be sent to the selectable destination (namely, the plurality of destination network interfaces) instead of all the destinations in the broadcast mode (namely, all the second network interfaces in the first subnet). Therefore, by combining the respective characteristics of the broadcast mode and the multicast mode, the data packet is sent in the broadcast mode in the scene of transmitting the multicast data packet, and the received data packet is processed in the multicast mode, which is beneficial to improving the data transmission efficiency on the premise of ensuring that the data packet is transmitted to a correct destination end. The correct destination here (i.e. the destination network interface described above) can be pre-configured based on the network topology.
For the neural network chip, the multicast traffic is more, so the technical scheme is particularly suitable for the neural network chip.
A network interface for broadcasting a data packet in a subnet can be considered as an entry of the subnet, and data packets transmitted to the subnet from the outside (e.g. a host or other subnets) are all sent to the network interface by a router connected to the network interface. For example, a first network interface may be considered an entry of a first subnet to which data transmitted by a host or other subnet is first sent by a router connected to the first network interface.
One of the network interfaces in a subnet can be used as the outlet of the subnet, and data packets transmitted from the subnet to the outside (such as a host or other subnets) are all sent by the network interface to the router connected to the network interface, and are sent by the router directly or indirectly to the host or other subnets. For example, the first network interface or any one of the second network interfaces may serve as an exit of the first subnet, and data packets transmitted from the first subnet to the host or other subnets are all sent by the first network interface to the router connected to the first network interface, and are sent by the router directly or indirectly to the host or other subnets. The specific network interface as the egress of the first subnet may be determined based on the network topology.
Alternatively, each network interface (including the first network interface 201 and the second network interface 202) may be connected to the same router, or may be connected to different routers, which are directly or indirectly connected to each other. In this way, it is helpful to support that each network interface can be used as an ingress or egress to a subnet, thereby enabling the data transmission device 20 to support a variety of network topologies or support a variety of neural network services.
As shown in fig. 4, the at least one subnet of the data transmission device 20 includes a first subnet and a second subnet. Fig. 4 is drawn based on fig. 3. The second subnet may comprise a third network interface 203 and a plurality of fourth network interfaces 204. The third network interface 203 is the network interface for broadcasting data packets in the second subnet. A third network interface 203 may be coupled to at least one processing node 205. The fourth network interface 204 is a network interface in the second subnet that receives broadcasted data packets. A fourth network interface 204 may be coupled to at least one processing node 205. The function of the third network interface 203 is the same as or similar to that of the first network interface 201, and the function of the fourth network interface 204 is the same as or similar to that of the second network interface 202, which are not described herein again.
And transmitting data among different subnets through the router. The same router or different routers may be connected between network interfaces for broadcasting packets in different subnets. For example, the first network interface 201 and the third network interface 203 are connected to the same router 200, as shown in fig. 4. For another example, the first network interface 201 and the third network interface 203 are respectively connected to different routers, and the routers connected to the first network interface and the third network interface are directly connected to each other or indirectly connected to each other through another router.
The number of processing nodes connected by different network interfaces may be the same or different.
Which network interfaces in the data transmission device 20 constitute a subnet, which network interface in a subnet is used as a network interface for broadcasting data packets, which network interface or interfaces are used as network interfaces for receiving broadcasted data packets, etc. may be preconfigured, as will be explained in detail below.
In the following, specific implementations of several network interfaces in the first subnet provided in the embodiment of the present application are described:
in one implementation, a network interface in a first subnet includes: the network interface is connected with a first processing node of a first neural network layer in the neural network chip and is connected with a plurality of second processing nodes of a second neural network layer, wherein the first processing node is used for transmitting data to the plurality of second processing nodes. For example, the first network interface includes a network interface connecting a first processing node of a first neural network layer in the neural network chip, and the plurality of second network interfaces includes a network interface connecting a plurality of second processing nodes of a second neural network layer. This alternative implementation provides a method of determining network interfaces in a subnet based on the network topology of a neural network. This helps to improve the efficiency of data transmission between neural network layers.
For example, assuming that the first neural network layer includes processing nodes 11, 12, 13, the second neural network layer includes processing nodes 21, 22, 23, 24, and processing node 13 is configured to transmit data to processing nodes 21, 22, and 23, respectively, then the network interfaces respectively configured to connect processing nodes 13, 21, 22, and 23 are configured as network interfaces in one subnet.
In another implementation, the amount of data of the data packets transmitted between the network interfaces in the first subnet is greater than the first threshold. This alternative implementation provides a way to use the network interface with the larger data size of the transmitted data packets as a subnet. Thus, the data transmission efficiency is improved.
It should be noted that, in specific implementation, the two implementation manners may be used in combination, so as to obtain a new technical solution. Specifically, if the data volume of the data packet transmitted between the first processing node and the plurality of second processing nodes is greater than the first threshold, the first processing node and the plurality of second processing nodes are used as network interfaces in the first subnet.
As shown in fig. 5, the data transfer device 20 may also include a plurality of configuration switches 206. A first configuration switch of the plurality of configuration switches 206 is connected to the first network interface 201, and is configured to receive the data packet sent by the first network interface 201 and send the data packet to the other configuration switches 206 connected to the plurality of second network interfaces 202 in the first subnet.
By providing a configuration switch in the data transfer device 20, it is facilitated to control the connection or disconnection state between the network interfaces in the sub-network and the data transfer direction by controlling the configuration switch. Similarly, the configuration switches are disposed in different subnets, which facilitates controlling the connection or disconnection state between the network interfaces in the subnets by controlling the configuration switches, so that the subnets in the data transmission device 20 are configurable, and the data transmission direction between the network interfaces in the subnets is configurable. Thus, a variety of network topologies may be supported using a single hardware system of the data transfer device 20. When the method is applied to a neural network system, the network topology refers to a neural network topology. That is, the technical data transmission device 20 provided by the embodiment of the present application supports processing of different neural network services.
For the neural network chip, the network interfaces connected with the neural network nodes with dense local flow can form a subnet by configuring the configuration information in the configuration exchanger, so that the multicast data packet is transmitted in the subnet by using a broadcast mode, and the data transmission efficiency is improved. Because the configuration information in the configuration switch can be configured in advance, and the pre-configured information already sets the transmission path of the data packet between the network interfaces, in the process of practical application, the link between the network interfaces does not need to be reconstructed, and the arbitration of the data packet and the analysis of various messages do not need to be performed, wherein the analysis of various messages and the arbitration of the data packet are used for the network interfaces to determine whether the data packet is the data packet addressed to the network interfaces. Therefore, the complexity of data processing is favorably reduced, and the data transmission efficiency is improved.
Optionally, the first network interface 201 and each second network interface 202 are respectively connected to a configuration switch. The switches 206 of different configurations are directly or indirectly connected. As shown in fig. 5.
Optionally, each configuration switch 206 includes a plurality of ports, a first port of the plurality of ports is used to connect to one network interface, and other network interfaces of the plurality of ports are used to connect to other configuration switches. As shown in fig. 4. Each configuration switch 206 is further configured to control the connection or disconnection state between its plurality of ports based on the configuration information. And each configuration switch 206 is further configured to control a data transmission direction between the plurality of ports of itself based on the configuration information. Specific implementations can be found in the following.
Alternatively, part of the network interfaces in one subnet may belong to other subnets, e.g. part of the network interfaces in a first subnet belong to a second subnet.
It should be noted that, if a network interface belongs to multiple subnets, the network interface serves as a second network node in one of the subnets, and serves as an intermediate network interface in the other subnets. If a network interface is an intermediate network interface in a subnet, the intermediate network interface will not receive the data packet sent by the configuration switch connected to the intermediate network interface in the subnet, and therefore the data packet will not be sent to the processing node connected to the intermediate network interface. And the first network interface and the second network interface may send data packets to a processing node connected to itself. In specific implementation, the configuration switch is controlled not to send a data packet to the intermediate network interface by configuring connection and disconnection of a port of the configuration switch connected with the intermediate network interface. For specific examples of the intermediate network interface, reference may be made to the following description, which is not repeated herein.
Optionally, the configuration switch includes one or more configuration registers, and one configuration register may correspond to one subnet, and is used to configure the data transmission path in the subnet. Specific examples can refer to the following, and are not described herein.
Fig. 6 is an interaction diagram of a data transmission method according to an embodiment of the present application. The method shown in fig. 6 may be based on the data transmission device 20 provided in any of fig. 3 to 5. The method shown in fig. 6 comprises the following steps:
s101: the router sends the data packet to the first network interface.
After execution of S101, S102 and/or S106 are executed.
S102: and if the first network interface determines that the data packet contains the identifier of the first network interface, the first network interface sends the data packet to a processing node connected with the first network interface.
S103: and after the processing node connected with the first network interface processes the data packet, generating a new data packet and sending the new data packet to the first network interface. The new packet may contain an identification of the target subnet or an identification of the host. Wherein the target subnet comprises the first subnet and/or other subnets.
After S103 is executed, S104 or S105 is executed.
S104: the first network interface broadcasts the new packet in the first subnet if it is determined that the new packet contains the identification of the first subnet. After S104 is executed, the data transmission process is ended.
S105: and if the first network interface determines that the new data packet contains the identification of other subnets, sending the data packet to network interfaces used for broadcasting data packets in other subnets through a router connected with the first network interface. If the new data packet is determined to contain the identification of the host, the new data packet is sent to the host through a router connected to the first network interface. After S105 is executed, the data transmission process ends this time.
S106: the first network interface broadcasts the data packet in the first subnet if the first network interface determines that the data packet contains the identification of the other network interface.
S107: after receiving the data packet, the second network interface in the first subnet forwards the data packet to one or more processing nodes connected to the second network interface if the identification of the second network interface is determined to be contained in the identification of the destination network interface. If the identification of the data packet is not contained in the identification of the destination network interface, the data packet is discarded.
S108: and after the processing node connected with the second network interface processes the data packet, generating a new data packet and sending the new data packet to the second network interface. Wherein the data packet may contain an identification of the other subnet, such as an identification of the second subnet, or may contain an identification of the new destination network interface in the first subnet.
After S108 is performed, S109 and/or S110 are performed.
S109: the second network interface sends the new data packet to a router connected to the second network interface.
Subsequently, if the router determines that the data packet includes the identifier of the other subnet, the router directly sends the new data packet to the network interface for broadcasting data packet in the other subnet, or indirectly sends the new data packet to the network interface for broadcasting data packet in the other subnet through the connection relationship between the routers. And if the router determines that the data packet contains the identification of the new destination network interface in the first subnet, the router directly sends the new data packet to the first network interface, or the router connected with the second network interface indirectly sends the new data packet to the first network interface through the connection relationship between the routers.
For the description of the beneficial effects achieved by the present embodiment, reference may be made to the above description, and details are not described herein again.
Hereinafter, a packet provided in the embodiment of the present application is described:
fig. 7 is a schematic diagram of a format of a data packet according to an embodiment of the present application. The packet shown in fig. 7 includes: a header portion and a data portion. The header part is used for carrying control information of the data packet, and the data part is used for carrying valid data.
Wherein, the packet header part may include the following flag bits/fields:
field 1: and the destination network interface zone bit is used for carrying the identification of the destination network interface.
In the embodiments described above, the destination network interface is a part or all of the network interface of the second network interface, and here, for convenience of description, the destination network interface is defined as a destination to which the packet is sent. Based on this, in a specific implementation, taking the current subnet as the first subnet as an example, the destination network interface may include any plurality of network interfaces in the current subnet, where the network interfaces may all be the second network interfaces, or include the first network interface and a plurality of second network interfaces.
In one example, since each network interface in the current subnet can be used as a destination network interface, the destination network interface flag bit may be set to include N bits, where N represents the number of network interfaces included in the current subnet, and each bit represents whether one network interface is a destination network interface. For example, if a network interface is a destination network interface, a bit corresponding to the network interface in the destination network interface flag is marked as 1, and if the network interface is not the destination network interface, a bit corresponding to the network interface in the destination network interface flag is marked as 0.
In another example, if the data transmission device includes a plurality of subnets, and the number of network interfaces included in the plurality of subnets is different, in order to enable the data packet to be transmitted between different subnets and to be identified by the node in each subnet, optionally, the flag bit of the target network interface includes N bits, where N represents the number of network interfaces included in the target subnet, and the target subnet is the subnet with the largest number of network interfaces included in the data transmission device.
Field 2: and the data packet type zone bit is used for carrying the identification of the type of the data packet. The type may be a broadcast type or a non-broadcast type.
Optionally, the header part may further include:
field 3: and the subnet flag bit is used for carrying the identifier of the subnet to which the data packet belongs. For example, if the data packet needs to be sent to the first subnet, the subnet flag bit of the data packet carries the identifier of the first subnet. After receiving the data packet, any one of the routers may directly or indirectly send the data packet to the first network interface in the first subnet.
In addition, the header portion may also contain other flag bits/other fields.
The data portion may include a plurality of fields, and specific field names, meanings indicated by the fields, and the like may all refer to the prior art, and are not described herein again.
The data transfer device 20 has been described above in terms of one or more sub-networks. Hereinafter, the structure of the data transmission device 20 will be described from another point of view:
in one example, as shown in fig. 8, a schematic diagram of nodes involved in the data transmission device 20 and connection relationships between the nodes is shown. These nodes include, among other things, routers (R), configuration switches (S), network interfaces (N), and processing nodes (T). The network interface (N) is respectively connected with the router (R), the configuration exchanger (S) and the processing node (T).
Wherein both the router (R) and the configuration switch (S) may be multiported. One router (R) may be connected to one or more network interfaces (N) and switches (S) of different configurations may be connected in a certain manner, as shown in fig. 9. The structure shown in fig. 9 can be regarded as a structure of a basic unit of the data transmission device 20.
Fig. 9 is merely an example, and does not limit the structure of the basic unit of the data transmission device 20 provided in the embodiment of the present application. For example, in practical implementation, the number of network interfaces (N) connected to one router (R), the number of processing nodes (T) connected to one network interface (N), the number of other configuration switches (S) connected to one configuration switch (S), and the like can be set as required.
Different routers (R) may be connected in a certain manner, as shown in fig. 10. Fig. 10 is a schematic structural diagram of a data transmission device 20 provided based on the base unit shown in fig. 9. Fig. 10 is only an example, and does not limit the structure of the data transmission device 20 according to the embodiment of the present application. For example, the number of other routers (R) to which one router (R) can be connected, and the like may be configured as necessary.
As an example, in fig. 10, routers (R) are connected to each other in a manner to form a first-layer network, and a network interface (such as the second network interface) for "receiving a broadcast packet" in a subnet transmits a packet to a network interface (such as the first network interface) for "broadcasting a packet" in the subnet. The configuration exchangers (S) are connected in a certain mode to form a second layer network which is used for distinguishing the subnets and controlling the data transmission direction between the network interfaces in the subnets.
The router (R) in fig. 10 is an 8-port router, in which 4 ports are used to interconnect with other routers in a network shape, and the remaining 4 ports are used to connect different network interfaces. For example, an 8-port router may be obtained by port expansion of a classical router structure, for example, expanding a classical 5-port router by 3 ports to become an 8-port router.
The configuration switch (S) in fig. 10 is 5-ported, 1 of which is for interfacing with a network interface, which may be referred to as a network interface port, and the remaining 4 ports: the east, west, south and north ports are used to interconnect with other configuration switches in a grid pattern.
The configuration exchanger provided in the embodiments of the present application is explained below:
fig. 11 is a schematic structural diagram of a configuration switch according to an embodiment of the present application. The configuration switch shown in fig. 11 includes east, west, south, north ports and network interface ports. It should be noted that the east, west, south and north ports are only examples, and other names may be substituted in actual implementation. The number of ports of the configuration switch for connection to another configuration switch is not limited to 4, and may be any other number.
The signal lines connected between each port of the configuration exchanger (S) and other nodes are all bidirectional interfaces, the signal lines can be used as input signal lines or output signal lines, but the signal lines can only be used as input signal lines or output signal lines at the same time.
Optionally, the signal line connected to each port of the configuration switch (S) includes a data bus, a data control bus and a status bus. Wherein:
the data bus is a signal line for transmitting data.
The data control bus is a signal line indicating whether data on the data bus is valid.
The status bus is a signal line that represents the status (e.g., busy or idle) of the network interface connected to the configuration switch, as well as the status of the network interface sent by other configuration switches received by the configuration switch.
For example, in a first subnet, configuration switch 1 is connected to a first network interface, configuration switches 2, 3 are connected to a second network interface, respectively, and configuration switch 3 sends its own status information to configuration switch 1 via configuration switch 2. In this case, the status information sent by the configuration switch 3 to the configuration switch 2 indicates: the network interface to which configuration switch 3 is connected is either busy or idle. The status information sent by the configuration switch 2 to the configuration switch 1 indicates: the network interface connected to configuration switch 3 and the network interface connected to configuration switch 2 are either busy or idle.
Wherein a configuration switch is in an idle state if a network interface connected to the configuration switch has free buffer space to receive a packet, and otherwise the configuration register is in a busy state. For example, when a remaining cache space (or a remaining cache space occupying a total cache space) for caching data from the configuration switch in a network interface connected to the configuration switch is greater than or equal to a certain threshold, the network interface has a cache space of a space.
It will be appreciated that the data bus is transferred in the same direction as the data on the data control bus. For example, both are "transmit" directions, or both are "receive directions.
It will be appreciated that the data bus is transferred in the opposite direction to the data on the status bus. Specifically, the method comprises the following steps:
if the network interface connected with one configuration switch is the network interface used for broadcasting the data packet (such as the first network interface), the configuration switch is used for sending data to other configuration switches connected with other network interfaces in the subnet, therefore, the configuration switch needs to receive the state information (namely busy state or idle state) of other configuration switches, so as to send data to other configuration switches when determining that other configuration switches are all in idle state. That is, if the data transfer direction on the data bus is "transmit", the data transfer direction on the status bus is "receive".
Accordingly, if a network interface connected to a configuration switch is a network interface (such as the second network interface) for receiving broadcast packets, the configuration switch is configured to directly or indirectly receive data sent by the configuration switch connected to the "network interface for broadcast packets" in the subnet, and therefore, the configuration switch needs to report its own status information to the configuration switch connected to the "network interface for broadcast packets". That is, if the data transfer direction on the data bus is "receive", the data transfer direction on the status bus is "transmit".
Each configuration switch may include a configuration register inside, where the configuration register is used to store configuration information, and the configuration information is used for the configuration switch to control connection or disconnection of each port and data transmission direction.
Optionally, the number of configuration registers configured in a configuration switch is related to the configuration switch that needs to transmit data for several subnets at the same time. The need for a configuration switch to transmit data for several subnets at the same time is determined based on configuration information and the capability of the configuration switch to support transmitting data for several subnets at the same time. A configuration switch can support the transfer of data for at most several subnets at the same time, determined based on the port number of the configuration switch.
Taking the configuration switch as an example, as shown in fig. 11, since the configuration switch includes 5 ports and data transmission between different subnets cannot share the ports of the configuration switch, the configuration switch can support transmission of data for 2 subnets at most, for example, east and south ports are input and output ports of a data transmission path of one subnet, and west and north ports are input and output ports of a data transmission path of another subnet. In this case, the configuration switch may include 2 configuration registers, where one configuration register is used to store the configuration information of one subnet, and the other configuration register is used to store the configuration information of another subnet.
Optionally, the format of the configuration information stored in the configuration register in the configuration switch mainly includes the following flag bits/fields, as shown in fig. 12:
field 1: and the data bus input port zone bit and/or the status bus output port zone bit are used for carrying the identification of the data bus input port and/or the identification of the status bus output port.
Field 2: and the data bus output port zone bit is used for carrying the identification of the data bus output port.
Field 3: and the status bus input port zone bit is used for carrying the identification of the status bus input port.
It should be noted that, since the data transmission directions on the data bus and the status bus are opposite, the data bus input port flag bit and the status bus output port flag bit are the same, and therefore, both can share one field.
It should be noted that, because the data transmission directions of the data bus and the data control bus are the same, the format of the configuration register in the configuration switch does not include the input port flag bit and the output port flag bit of the data control bus, and the specific flag bits thereof may refer to the data bus input port flag bit and the data bus output port flag bit, respectively.
Fig. 13 is a schematic structural diagram of configuration information stored in a configuration register in a configuration switch according to an embodiment of the present application. The format of the configuration information shown in fig. 13 includes:
field 1: bits 0-2 are used to represent both the data input port flag bit and the output port flag bit of the status bus.
Field 2: bits 3-7 represent data bus output port flag bits. In one example, bit 3 represents a north port, bit 4 represents a west port, bit 5 represents a south port, bit 6 represents an east port, and bit 7 represents a network interface port (NI). When a bit is at a high level, it indicates that the data bus output port corresponding to the bit is valid, i.e. the port corresponding to the bit is the data bus output port. When a bit is at a low level, it indicates that the data bus output port corresponding to the bit is invalid, i.e. the port corresponding to the bit is not the data bus output port.
Field 3: bits 8-12 represent status bus input port flag bits. In one example, bit 8 represents a north port, bit 9 represents a west port, bit 10 represents a south port, bit 11 represents an east port, and bit 12 represents a network interface port. When a bit is at high level, it indicates that the status bus input port corresponding to the bit is valid, i.e. the port corresponding to the bit is the status bus input port. When a bit is at a low level, it indicates that the status bus input port corresponding to the bit is invalid, i.e. the port corresponding to the bit is not the status bus input port.
Fig. 14 is a schematic flowchart of a data transmission method for configuring a status bus of a switch according to an embodiment of the present application. The method shown in fig. 14 comprises the following steps:
s201: the configuration switch initializes its own included configuration registers. The format of the configuration information stored in the configuration register may be as shown in fig. 13.
S202: the configuration switch determines whether the output port flag bits (e.g., bits 0-2 in fig. 13) of the status bus are valid based on the configuration information.
If not, S203 is executed. If so, go to step S204.
S203: the configuration switch determines that no status signal is currently output. After this step is executed, the process ends.
S204: the configuration switch records the identification of the valid port carried by the status bus input port flag bit (bits 8-12 in fig. 13).
S205: the switch is configured to OR'd the recorded status information of the active ports.
In this step, the busy state is represented by "1" and the idle state is represented by "0" in the state information, for example. If the status information of any one or more valid ports recorded by the configuration switch is "1", the result of the or operation in S205 is 1, indicating busy. If the status information of all valid ports recorded by the configuration switch is "0", the result of the or operation in S205 is 0, indicating idle.
S206: the switch is configured to assign the result value of the or operation to an output port of the status bus.
Each configuration switch assigns the input status information to the output status information line after the OR operation. For the first subnet, each configuration switch can only assign its input status information to its output port, so that the status information of all the network interfaces connected to the second network interface in the first subnet is transferred to the first network interface by transferring the configuration switches one by one.
Fig. 15 is a schematic flowchart of a data transmission method for configuring a data bus of a switch according to an embodiment of the present application. The method shown in fig. 15 comprises the following steps:
s301: the configuration switch initializes its own included configuration registers. The format of the configuration information stored in the configuration register may be as shown in fig. 13.
S302: the configuration switch determines whether the input port flag bits (e.g., bits 0-2 in fig. 13) of the data bus are valid based on the configuration information.
If not, executing S303; if so, go to step S304.
S303: the configuration switch determines that there is no data input currently. After this step is executed, the process ends.
S304: the configuration switch records the valid port number in the data bus output port flag (bits 3-7 in fig. 13), and the port indicated by the port number is the valid data bus output port.
S305: the configuration exchanger assigns the data of the input port of the data bus to the effective data bus output port respectively. In this way, data from the input port of the data bus can be output via the effective data bus output port.
The following describes a network interface provided in an embodiment of the present application:
fig. 16 is a schematic structural diagram of a network interface 30 according to an embodiment of the present disclosure. For ease of illustration, routers, configuration switches, and processing nodes connected to network interface 30 are also illustrated in FIG. 13. The network interface 30 shown in fig. 13 includes:
a first cache block 31 for caching data packets sent by the router to the network interface 30.
A second cache block 32, configured to cache data packets sent by the configuration switch connected to the network interface 30.
A configuration Register (REG)33 for storing configuration information, which may be predefined and then alterable.
And a controller 34 for selecting the data packets in the first buffer block 31 and the second buffer block 32 to output to the appropriate ports, where the appropriate ports may be the ports of the connection processing node and/or the ports of the connection configuration switch. And, according to the configuration information stored in REG341, exchanging information with the configuration switch and the second cache block 32.
A third cache block 35 for caching data packets sent by the processing node connected to the network interface 30 to the router.
Fig. 17 is a schematic diagram illustrating a format of configuration information stored in a configuration register in a network interface according to an embodiment of the present application. Specifically, the configuration information includes the following fields:
field 1: the master-slave working mode flag bit is used for carrying an identifier of a working mode of a control bus of the network interface, the working mode is a master working mode or a slave working mode, the master working mode indicates that the network interface is a network interface for broadcasting data packets, such as the first network interface, and the slave working mode indicates that the network interface is a network interface for receiving broadcasted data packets, such as the second network interface.
Field 2: the zone bit of the network interface in the local subnet is used for carrying the identifier of the network interface in the local subnet.
It should be noted that a network interface may belong to different subnets, and the identifiers of the network interfaces in different subnets may be different, and therefore, the flag bit herein specifically refers to the identifier of the network interface in the subnet.
Optionally, the format of the configuration information may further include other flag bits/fields.
Fig. 18 is a schematic diagram of a method of a network interface workflow provided in an embodiment of the present application. Fig. 18 may be applied to the network interface as shown in fig. 16, and to the packet as shown in fig. 7. The method shown in fig. 18 may include the steps of:
s401: initializing configuration registers inside the current network interface.
S402: and the controller in the current network interface judges whether the working mode of the current network interface is the master node working mode or the slave node working mode based on the configuration information stored in the configuration register.
If it is configured as the master node operation mode, S403 is performed.
If it is configured as the slave node operation mode, S409 is performed.
S403: a controller in the current network interface detects whether the first cache block has data.
If yes, go to S404. If not, the data transmission process is finished.
S404: the controller in the current network interface reads the data packet in the first cache block and judges whether the 'data packet type flag bit' of the data packet is a broadcast identifier or a non-broadcast identifier.
If the packet type flag bit is a non-broadcast type, S405 is performed.
If the packet type flag bit is a broadcast type, S406 is performed.
And S405, the controller in the current network interface transmits the read data packet to the processing node.
After S405 is executed, the data transmission process is ended.
S406: and the controller in the current network interface judges whether the current network interface is effective or not based on the 'target network interface zone bit' of the data packet.
If it is valid, it indicates that the current network interface is a destination network interface of the data packet (or the current network interface is a valid destination network interface), S407 is executed.
If the current network interface is not the destination network interface of the data packet (or the current network interface is not the valid destination network interface), S408 is executed.
It should be noted that the destination network port herein may include a network interface for broadcasting a data packet, and may also include a network interface for receiving a broadcasted data packet.
For example, taking the current network interface as the network interface N as an example, wherein if a subnet includes N network interfaces, the numbers of the network interfaces in the subnet are sequentially 1-N, N is an integer greater than or equal to 3, the network interface N is the network interface with the number N in the subnet, N is greater than or equal to 1 and less than or equal to N, and N is an integer. If the controller of the network interface n determines that the nth bit of the 'destination network interface flag bit' of the data packet is valid, the controller determines that the network interface is valid.
S407: and when the status bus transmitted to the current network interface by the configuration switch connected with the current network interface is valid, the controller in the current network interface transmits the read data packet to the configuration switch connected with the current network interface.
The current network interface executing S407 is a network interface for broadcasting a packet, and therefore, the status bus transmitted to (i.e., output to) the current network interface by the configuration switch connected to the current network interface is valid, which indicates that: all network interfaces of 'data packets for receiving broadcast' in the subnet are in idle state, at this time, the current network interface can broadcast the data packets in the subnet, and therefore, the read data packets are transmitted to the configuration switch connected with the current network interface. Subsequently, the configuration switch may send the data packet to the configuration switch connected to the configuration switch, and the configuration switch receiving the data packet may execute the methods shown in fig. 14 and fig. 15, thereby achieving the purpose that the current network interface broadcasts the data packet in the subnet.
After S407 is executed, the data transmission process is ended.
S408: and when the status bus transmitted to the current network interface by the configuration switch connected with the current network interface is effective, the controller in the current network interface transmits the read data packet to the configuration switch connected with the current network interface.
After S408 is executed, the data transmission process is ended this time.
S409: the controller in the current network interface detects whether the configuration exchanger connected with the current network interface transmits data, namely, whether the second cache block stores a data packet is judged.
If yes, go to S410. If not, the data transmission process is finished.
S410: and the controller in the current network interface judges whether the current network interface is effective or not based on the 'target network interface zone bit' of the data packet.
If it is valid, it indicates that the current network interface is a valid destination network port, S411 is executed.
If the data transmission is invalid, the data transmission process is ended.
S411: the controller in the current network interface writes the data in the second cache block to the processing node connected to the current network interface.
The above method provided by the embodiments of the present application is explained below by a specific example:
fig. 19 is a schematic structural diagram of a data transmission device according to an embodiment of the present application. The data transmission device includes a first subnet and a second subnet. Wherein:
the first subnet comprises network interfaces as follows: network interfaces 1, 2, 3, 4. The network interface 1 is a first network interface, and the network interfaces 2, 3, and 4 are second network interfaces. The second subnet comprises network interfaces as follows: network interfaces 5, 3, 6, 7. The network interface 5 is a third network interface, and the network interfaces 6 and 7 are fourth network interfaces.
Wherein the network interface 3 belongs to the first subnet as well as to the second subnet. The network interface 3 acts as a second network interface in the first subnetwork and as an intermediate network interface in the second network node. This information may be stored as part of the configuration information in a configuration register of the network interface 3.
The configuration registers associated with network interfaces 1-7 (labeled N1-7 in fig. 19) are configuration switches 1-7 (labeled S1-7 in fig. 19), respectively. The direction of data flow between the configurator switches 1, 2, 3, 4 is shown by the solid arrows in fig. 19, and the direction of data flow between the configurator switches 3, 5, 6, 7 is shown by the dashed arrows in fig. 19.
In one example, the configuration results of the configuration switch connected to network interfaces 1-7, respectively, are shown in FIG. 20.
In fig. 20, there are 2 configuration registers provided in each configuration switch, labeled REG1 and REG2, respectively. Where REG1 is a configuration register for the first subnet and REG2 is a configuration register for the second subnet. The structure of the configuration information stored in each configuration register and the meaning of each field in the structure are shown in fig. 13.
In one example, the meaning of the information carried in the data bus input port flag bit/status bus output port flag bit is as follows: "000" represents a north port (N), "001" represents a west port (W), "010" represents a south port (S), "011" represents an east port (E), "100" represents a network interface port (NI), and "111" represents INVALID (INVALID).
The meaning of the configuration information stored in the configuration register will be described below by taking the configuration switch 3 as an example, with reference to fig. 20.
Field 1 "011" of REG1 indicates: the input port of the data bus is an east port, and the output port of the status bus is an east port.
"00001" in field 2 of REG1 indicates: the NI port is the data bus output port, and the remaining ports are inactive. Therefore, the data flow of the data bus is as follows: input from the east port and output from the NI port. That is, for the first subnet, the configuration switch 3 receives the packet from the configuration switch 2 and sends the packet to the network interface 3.
Field 3 "00001" of REG1 indicates that the NI port is a status bus input port and the remaining ports are not active. From this, the data flow of the status bus is: input from the NI port and output from the east port.
Field 1 "001" of REG2 indicates: the input port of the data bus is a west port, and the output port of the status bus is a west port.
Field 2 "10000" of REG2 indicates: the north port is the data bus output port and the remaining ports are inactive. Therefore, the data flow of the data bus is as follows: input from the west port and output from the north port. That is, configuration switch 3 receives the packet from configuration switch 5 for the second subnet and then forwards the packet to configuration switch 6, but not to network interface 3. This is configuration information designed in consideration of the fact that the network interface 3 is an intermediate network interface in the second subnet.
Field 3 "10000" of REG2 indicates: the north port is a status bus input port, and the other ports are invalid. From this, the data flow of the status bus is: input from north port and output from west port.
It can be understood that, for configuring the switch, the configuration information in the corresponding configuration register of the switch may be determined based on the predetermined packet transmission path, so that during the data transmission process, the configuration register reads and analyzes the configuration information, and the packet is transmitted according to the predetermined path. Other examples are not described one by one.
In one example, an example of a packet in the first subnet and the second subnet is shown in fig. 21. Wherein, the '11' in the data packet type flag bit represents: the packet type is a broadcast type. Fig. 21 illustrates an example in which the destination network interface flag bit is 16 bits, but this is not the case in the specific implementation. The nth bit is high level "1" to indicate that the network interface n is the destination network interface, and low level "0" to indicate that the network interface n is not the destination network interface. N is not less than 1 and not more than 16, and n is an integer. The "other field" indicates other information contained in the data packet, and the related description thereof can refer to the above and also refer to the prior art.
In one example, the configuration information stored in the configuration registers in the network interfaces 1-7 is shown in FIG. 22.
With reference to fig. 20 to 22, for the first subnet:
the network interface 1 determines that its own operation mode is the master operation mode based on the master-slave node flag bit "1" shown in fig. 22, thereby broadcasting the packet in the first subnet. Specifically, the packet is sent by the configuration switch to which network interface 1 is connected to configuration switches 2-4. Configuration switches 2-4 send the received packets to network interfaces 2-4, respectively, based on the corresponding configuration information shown in fig. 20.
The network interfaces 2 to 4 determine that their own operation modes are slave operation modes based on the master-slave node flag bit "0" shown in fig. 22, respectively, and thus receive the data packet broadcast in the first subnet. Then, the network interfaces 2 to 4 respectively determine whether to send the packet to the processing node connected to itself or to discard the packet based on the destination network interface flag of the packet shown in fig. 21. Specifically, as shown in fig. 21, the destination network interface flag bit "11100000000000000000" of the data packet in the first subnet, and the predefined 1 st to 4 th bits from the high bit thereof sequentially correspond to the network interfaces 1 to 4, it can be seen that: the network interfaces 1-3 are target network interfaces, and the network interface 4 is not a target network interface, so that the network interfaces 1-3 respectively send data packets to processing nodes connected to the network interfaces, and the network interface 4 discards the received data packets.
With reference to fig. 20 to 22, for the second subnet:
the network interface 5 determines that its own operation mode is the master operation mode based on the master-slave node flag bit "1" shown in fig. 22, thereby broadcasting the packet in the second subnet. Specifically, the packet is sent to configuration switches 3, 6, 7 by the configuration switch to which network interface 5 is connected. The configuration switches 3, 6, 7 send the received data packets to the network interfaces 6, 7, respectively, based on the corresponding configuration information shown in fig. 20.
The network interfaces 6 and 7 determine that their own operation mode is the slave operation mode based on the master-slave node flag bit "0" shown in fig. 22, respectively, and thus receive the data packet broadcast in the second subnet. The network interfaces 6, 7 then determine whether to forward the packet to their own connected processing node or to discard the packet, respectively, based on the destination network interface flag of the packet shown in fig. 21. Specifically, as shown in fig. 21, the destination network interface flag bit "011000000000000" of the packet in the second subnet, and the predefined 1 st to 3 rd bits from the high order correspond to the network interfaces 5, 6, and 7 in sequence, it can be seen that: since the network interfaces 6 and 7 are destination network interfaces and the network interface 5 is not a destination network interface, the network interfaces 6 and 7 transmit the received packet to their own connected processing nodes, respectively.
Network interface 3 is an intermediate network interface in the second subnet and therefore does not receive the data packet sent by configuration switch 3. In this case, the specific explanation of the configuration information in the configuration switch 3 can be referred to above.
The scheme provided by the embodiment of the application is mainly introduced from the perspective of a method. To implement the above functions, it includes hardware structures and/or software modules for performing the respective functions. Those of skill in the art will readily appreciate that the present application is capable of hardware or a combination of hardware and computer software implementing the exemplary method steps described in connection with the embodiments disclosed herein. Whether a function is performed as hardware or computer software drives hardware depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
In the embodiment of the present application, the network interface may be divided into the functional modules according to the above method example, for example, each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module. The integrated module can be realized in a hardware mode, and can also be realized in a software functional module mode. It should be noted that, in the embodiment of the present application, the division of the module is schematic, and is only one logic function division, and there may be another division manner in actual implementation.
Fig. 23 is a schematic structural diagram of a network interface 23 according to an embodiment of the present application. The network interface 23 is configured to perform the steps performed by the second network interface in the method provided in any of the above embodiments. For example, the network interface 23 may include: a receiving unit 2301, configured to receive a data packet broadcast by a first network interface, where the data packet includes identifiers of multiple destination network interfaces. A processing unit 2302, configured to forward the data packet to a corresponding processing node when it is determined that the identifier of the destination network interface in the data packet includes an identifier of the second network interface; or discarding the data packet when determining that the identification of the destination network interface in the data packet does not include the identification of the second network interface. For example, in conjunction with fig. 18, processing unit 2302 can be used to execute S411.
The embodiment of the application also provides a network interface. The network interface 24 includes: a memory for storing computer instructions and one or more processors for invoking the computer instructions to perform the steps performed by the second network interface in the method provided by any of the embodiments above.
Embodiments of the present application further provide a network interface, configured to perform the steps performed by the first network interface in the method provided in any of the foregoing embodiments. In one implementation, the network interface may be logically divided into functions, such as a transceiver unit and a processing unit, where the transceiver unit is configured to perform the transceiving step, and the processing unit is configured to perform other steps besides the transceiving step. In another implementation, the network interface includes a memory for storing computer instructions and one or more processors for invoking the computer instructions to perform the steps performed by the first network interface in the method provided by any of the embodiments above.
The embodiment of the present application further provides a configuration switch, configured to perform the steps performed by the configuration switch in the method provided in any one of the foregoing embodiments. In one implementation, the configuration switch may be logically divided into a transceiving unit and a processing unit, where the transceiving unit is configured to perform transceiving steps, and the processing unit is configured to perform other steps besides the transceiving steps. In another implementation, the configuration switch includes a memory for storing computer instructions and one or more processors for invoking the computer instructions to perform the steps performed by the configuration switch in the method provided by any of the embodiments above.
The embodiment of the present application further provides a network interface, which includes a control circuit for implementing the function of the first network interface and/or a control circuit for implementing the function of the second network interface, and one or more ports.
The embodiment of the present application further provides a configuration switch, which includes a control circuit for implementing the above-mentioned function of the configuration switch, and one or more ports.
Embodiments of the present application also provide a computer-readable storage medium having stored thereon a computer program, which, when run on a computer, causes the computer to perform any one of the methods performed by the network interface provided above, or configure a switch to perform the methods performed by the switch.
For the explanation and the description of the beneficial effects of any of the above-provided network interfaces and configuration switches, reference may be made to the above-mentioned corresponding embodiments, and details are not described herein again.
The embodiment of the application also provides a chip. The chip has integrated therein a control circuit and one or more ports for implementing the functions of the data transmission device described above. Optionally, the functions supported by the chip may refer to the above, and are not described herein again. Those skilled in the art will appreciate that all or part of the steps for implementing the above embodiments may be implemented by a program instructing the associated hardware to perform the steps. The program may be stored in a computer-readable storage medium. The above-mentioned storage medium may be a read-only memory, a random access memory, or the like. The processing unit or processor may be a central processing unit, a general purpose processor, an Application Specific Integrated Circuit (ASIC), a microprocessor (DSP), a Field Programmable Gate Array (FPGA) or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof.
The embodiments of the present application also provide a computer program product containing instructions, which when executed on a computer, cause the computer to execute any one of the methods in the above embodiments. The computer program product includes one or more computer instructions. The procedures or functions according to the embodiments of the present application are all or partially generated when the computer program instructions are loaded and executed on a computer. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored on a computer readable storage medium or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wire (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). Computer-readable storage media can be any available media that can be accessed by a computer or can comprise one or more data storage devices, such as servers, data centers, and the like, that can be integrated with the media. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., SSD), among others.
It should be noted that the above devices for storing computer instructions or computer programs provided in the embodiments of the present application, such as, but not limited to, the above memories, computer readable storage media, communication chips, and the like, are all nonvolatile (non-volatile).
Other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed application, from a review of the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the word "a" or "an" does not exclude a plurality. A single processor or other unit may fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. Although the present application has been described in conjunction with specific features and embodiments thereof, various modifications and combinations can be made thereto without departing from the spirit and scope of the application. Accordingly, the specification and figures are merely exemplary of the present application as defined in the appended claims and are intended to cover any and all modifications, variations, combinations, or equivalents within the scope of the present application.

Claims (16)

1. A data transmission apparatus, characterized in that the data transmission apparatus comprises:
the router is used for sending a data packet to a first network interface, wherein the data packet comprises a plurality of destination network interface identifiers;
the first network interface is configured to: receiving the data packet sent by the router, and broadcasting the data packet in a first subnet, wherein the first subnet comprises the first network interface and a plurality of second network interfaces, and the plurality of second network interfaces comprise the plurality of destination network interfaces;
the multiple second network interfaces are configured to receive the data packet sent by the first network interface, where the multiple destination network interfaces are further configured to forward the data packet to corresponding processing nodes according to an identifier of a destination network interface in the data packet, and other network interfaces in the multiple second network interfaces except the multiple destination network interfaces are further configured to discard the data packet according to the identifier of the multiple destination network interfaces.
2. The data transmission apparatus according to claim 1, wherein: the first network interface is configured to broadcast the data packet to the plurality of second network interfaces in the first subnet according to the identifiers of the plurality of destination network interfaces.
3. The data transmission apparatus according to claim 1, wherein: the first network interface is configured to broadcast the data packet to the plurality of second network interfaces in the first subnet according to a broadcast identifier included in the data packet.
4. A data transmission apparatus according to any one of claims 1 to 3, characterized in that: the data packet further comprises an identification of the first subnet;
the router is configured to send the data packet to the first network interface according to the first subnet identifier.
5. The data transmission apparatus according to any one of claims 1 to 4, wherein: the data transmission device further comprises a third network interface, and the router is further configured to communicate with the third network interface, where the third network interface is a network interface in a second subnet, and the second subnet includes the third network interface and a plurality of fourth network interfaces.
6. The data transmission apparatus according to claim 5, wherein: part of the network interfaces in the first subnet also belong to the second subnet.
7. The data transmission apparatus according to claim 5 or 6, wherein: the data transfer device further comprises a plurality of configuration switches;
a first configuration switch of the configuration switches is connected to the first network interface, and configured to receive the data packet sent by the first network interface and send the data packet to other configuration switches connected to the second network interfaces in the first subnet.
8. The data transmission apparatus according to claim 7, wherein: each configuration switch in the plurality of configuration switches comprises a plurality of ports, a first port in the plurality of ports is used for connecting one network interface, and other network interfaces in the plurality of ports are used for connecting other configuration switches;
each of the plurality of configuration switches is further configured to control a connection or disconnection state between the plurality of ports of itself based on the configuration information.
9. The data transmission apparatus according to any one of claims 1 to 8, characterized in that: the data transmission device is a neural network chip, and the processing nodes are processing nodes in a neural network.
10. The data transmission apparatus according to claim 9, wherein:
the first network interface comprises a network interface connected with a first processing node of a first neural network layer in the neural network chip, and the plurality of second network interfaces comprises a network interface connected with a plurality of second processing nodes of a second neural network layer, wherein the first processing node is used for transmitting data to the plurality of second processing nodes.
11. The data transmission apparatus according to claim 9 or 10, characterized in that: the data volume of the data packets transmitted between the network interfaces in the first subnet is greater than a first threshold.
12. A method of data transmission, the method comprising:
a first network interface receives a data packet sent by a router, wherein the data packet comprises a plurality of destination network interface identifiers;
the first network interface broadcasts the data packet in a first subnet, wherein the first subnet comprises the first network interface and a plurality of second network interfaces, and the plurality of second network interfaces comprises the plurality of destination network interfaces;
the multiple destination network interfaces forward the data packet to corresponding processing nodes according to the identification of the destination network interface in the data packet;
and other network interfaces except the plurality of destination network interfaces in the plurality of second network interfaces discard the data packet according to the identification of the destination network interface in the data packet.
13. The method of claim 12, wherein: the first network interface broadcasting the data packet into a first subnet, comprising:
and the first network interface broadcasts the data packet to the plurality of second network interfaces in the first subnet according to the identifiers of the plurality of destination network interfaces.
14. The method of claim 12, wherein: the first network interface broadcasting the data packet into a first subnet, comprising:
and the first network interface broadcasts the data packet to the plurality of second network interfaces in the first subnet according to the broadcast identification in the data packet.
15. A method of data transmission, the method comprising:
a second network interface receives a data packet broadcasted by a first network interface, wherein the data packet comprises a plurality of destination network interface identifiers;
when the second network interface determines that the identifier of the destination network interface in the data packet comprises the identifier of the second network interface, forwarding the data packet to a corresponding processing node; or
And the second network interface discards the data packet when determining that the identification of the destination network interface in the data packet does not comprise the identification of the second network interface.
16. A network interface, the network interface comprising:
a receiving unit, configured to receive a data packet broadcasted by a first network interface, where the data packet includes identifiers of multiple destination network interfaces;
the processing unit is used for forwarding the data packet to a corresponding processing node when the identification of the destination network interface in the data packet is determined to comprise the identification of the second network interface; or when the identification of the destination network interface in the data packet does not comprise the identification of the second network interface, discarding the data packet.
CN202010820611.6A 2020-08-14 2020-08-14 Data transmission device and method Pending CN114079627A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010820611.6A CN114079627A (en) 2020-08-14 2020-08-14 Data transmission device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010820611.6A CN114079627A (en) 2020-08-14 2020-08-14 Data transmission device and method

Publications (1)

Publication Number Publication Date
CN114079627A true CN114079627A (en) 2022-02-22

Family

ID=80280805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010820611.6A Pending CN114079627A (en) 2020-08-14 2020-08-14 Data transmission device and method

Country Status (1)

Country Link
CN (1) CN114079627A (en)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101322358A (en) * 2005-11-26 2008-12-10 考科尼散思有限公司 Data transmission method
CN102368739A (en) * 2011-12-02 2012-03-07 南京大学 Broadcast mechanism routing algorithm orienting to packet-circuit switch on-chip router
CN103607352A (en) * 2013-11-22 2014-02-26 上海电机学院 Multicast routing method based on network topology
CN103729331A (en) * 2013-11-26 2014-04-16 西安电子科技大学 On-chip network communication deadlock avoiding method, router and communication network
CN104579697A (en) * 2015-01-23 2015-04-29 北京立华莱康平台科技有限公司 Network extension module and multi-network processing system
CN107872332A (en) * 2016-09-23 2018-04-03 华为技术有限公司 The detection method and relevant apparatus of a kind of message forwarding path
US20190068759A1 (en) * 2017-07-31 2019-02-28 Nicira, Inc. Application based egress interface selection
CN109639574A (en) * 2019-01-30 2019-04-16 四川省电子信息产业技术研究院有限公司 A kind of adaptive QoS routing selection method
CN109873771A (en) * 2019-01-21 2019-06-11 佛山市顺德区中山大学研究院 A kind of network-on-a-chip and its communication means
CN110098988A (en) * 2013-11-26 2019-08-06 柏思科技有限公司 For handling the method and system of Internet Protocol packet
CN110266614A (en) * 2018-03-12 2019-09-20 大唐移动通信设备有限公司 A kind of ether method for interchanging data and device
CN110324265A (en) * 2018-03-29 2019-10-11 阿里巴巴集团控股有限公司 Traffic distribution method, method for routing, equipment and network system
CN111245730A (en) * 2020-01-15 2020-06-05 中山大学 Routing system and communication method of network on chip

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101322358A (en) * 2005-11-26 2008-12-10 考科尼散思有限公司 Data transmission method
CN102368739A (en) * 2011-12-02 2012-03-07 南京大学 Broadcast mechanism routing algorithm orienting to packet-circuit switch on-chip router
CN103607352A (en) * 2013-11-22 2014-02-26 上海电机学院 Multicast routing method based on network topology
CN110098988A (en) * 2013-11-26 2019-08-06 柏思科技有限公司 For handling the method and system of Internet Protocol packet
CN103729331A (en) * 2013-11-26 2014-04-16 西安电子科技大学 On-chip network communication deadlock avoiding method, router and communication network
CN104579697A (en) * 2015-01-23 2015-04-29 北京立华莱康平台科技有限公司 Network extension module and multi-network processing system
CN107872332A (en) * 2016-09-23 2018-04-03 华为技术有限公司 The detection method and relevant apparatus of a kind of message forwarding path
US20190068759A1 (en) * 2017-07-31 2019-02-28 Nicira, Inc. Application based egress interface selection
CN110266614A (en) * 2018-03-12 2019-09-20 大唐移动通信设备有限公司 A kind of ether method for interchanging data and device
CN110324265A (en) * 2018-03-29 2019-10-11 阿里巴巴集团控股有限公司 Traffic distribution method, method for routing, equipment and network system
CN109873771A (en) * 2019-01-21 2019-06-11 佛山市顺德区中山大学研究院 A kind of network-on-a-chip and its communication means
CN109639574A (en) * 2019-01-30 2019-04-16 四川省电子信息产业技术研究院有限公司 A kind of adaptive QoS routing selection method
CN111245730A (en) * 2020-01-15 2020-06-05 中山大学 Routing system and communication method of network on chip

Similar Documents

Publication Publication Date Title
US10732879B2 (en) Technologies for processing network packets by an intelligent network interface controller
JP7214394B2 (en) Techniques for Processing Network Packets in Agent-Mesh Architecture
US7940788B2 (en) System for transmitting data within a network between nodes of the network and flow control process for transmitting the data
US8234435B2 (en) Relay device
US9426099B2 (en) Router, method for controlling router, and program
US9477280B1 (en) Specification for automatic power management of network-on-chip and system-on-chip
US20190303326A1 (en) Arbitrating portions of transactions over virtual channels associated with an interconnect
US9253085B2 (en) Hierarchical asymmetric mesh with virtual routers
CN1617526A (en) Method and device for emulating multiple logic port on a physical poet
US10104006B2 (en) Bus interface apparatus, router, and bus system including them
CN101223745A (en) Electronic device and method of communication resource allocation
CN111865810B (en) Congestion information acquisition method, system, related equipment and computer storage medium
US6337865B1 (en) Fair buffer credit distribution flow control
US11243714B2 (en) Efficient data movement method for in storage computation
CN116915708A (en) Method for routing data packets, processor and readable storage medium
CN114079627A (en) Data transmission device and method
CN111357016B (en) On-chip communication system for neural network processor
EP3605967B1 (en) Method and device for transmitting data
US8645557B2 (en) System of interconnections for external functional blocks on a chip provided with a single configurable communication protocol
US9762474B2 (en) Systems and methods for selecting a router to connect a bridge in the network on chip (NoC)
CN112887214B (en) Broadcasting method, first node, network on chip, transmission method, device and medium
US20170063610A1 (en) Hierarchical asymmetric mesh with virtual routers
WO2006048826A1 (en) Integrated circuit and method for data transfer in a network on chip environment
CN116821044B (en) Processing system, access method and computer readable storage medium
Hsu et al. Design of a dual-mode noc router integrated with network interface for amba-based ips

Legal Events

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