Path sharing method, network-on-chip and electronic equipment

By adopting the path sharing method in the on-chip network, sharing the transmission path of entity data and configuration data, the problem of bus resource waste caused by small configuration path traffic is solved, and more efficient resource utilization and design costs are achieved.

CN119807128APending Publication Date: 2025-04-11SMARTER SILICON (SHANGHAI) TECH CO LTD
View PDF 0 Cites 3 Cited by

Patent Information

Application Number
CN202411999934.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-31
Publication Date
2025-04-11

AI Technical Summary

Technical Problem

In the prior art, the flow rate of the configuration path is small, resulting in waste of bus resources, reducing resource usage efficiency, and increasing the overall power consumption and area overhead of the chip.

Method used

By introducing a path sharing method in an on-chip network, the data transmission paths between multiple routing nodes share the transmission of entity data and configuration data, reducing the need for multiple physical links, and transmitting configuration data when the bus is static, and physical data interaction is performed when the bus is dynamic.

Benefits of technology

It realizes reducing the idle time of bus resources, saving resource consumption, improving bus resource utilization, and reducing design and manufacturing costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119807128A_ABST
    Figure CN119807128A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a path sharing method, a network-on-chip and electronic equipment, the path sharing method is applied to the network-on-chip, the network-on-chip comprises a plurality of routing nodes, and each routing node is connected with at least one routing node. The two connected routing nodes are connected based on a data transmission path in a single transmission direction; the path sharing method comprises the following steps: in response to transmission data received by a current routing node, determining a next routing node of the current routing node in a plurality of routing nodes; wherein the current routing node is any routing node, which receives the transmission data, in the plurality of routing nodes, and the transmission data is entity data used for information transmission or configuration data used for parameter configuration; and transmitting the transmission data to the next routing node through the data transmission path based on a data transmission channel between the current routing node and the next routing node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the technical field of data transmission, and relate to but are not limited to a path sharing method, an on-chip network, and an electronic device. Background Art

[0002] Currently, chips usually connect various functional modules in electronic devices (such as central processing unit (CPU), graphics processing unit (GPU), dynamic random access memory (DDR), image signal processor (ISP), etc.) through on-chip interconnection network. The on-chip interconnection network not only needs to provide data paths between various functional modules to realize data interaction between functional modules, such as CPU reading and writing data to DDR, but also needs to provide configuration paths to distribute configuration information, such as information used for electronic device initialization and configuration management.

[0003] In the related art, the on-chip network provides a configuration path corresponding to the configuration information and a data path corresponding to the data interaction. The data path is responsible for reading and writing data, and the configuration path is responsible for distributing the configuration information. However, building a configuration path requires a lot of resources, and the flow of the configuration path is small, which will cause a waste of bus resources. Summary of the invention

[0004] In order to solve the problems existing in the related art, the embodiments of the present application provide a path sharing method, an on-chip network and an electronic device.

[0005] In a first aspect, the present application provides a path sharing method, which is applied to an on-chip network, wherein the on-chip network includes a plurality of routing nodes, each routing node is connected to at least one routing node, and a single transmission direction between two connected routing nodes is connected based on a data transmission path; the method includes:

[0006] In response to the current routing node receiving the transmission data, determining a next routing node of the current routing node among the multiple routing nodes; wherein the current routing node is any routing node among the multiple routing nodes that receives the transmission data, and the transmission data is entity data for information transmission or configuration data for parameter configuration;

[0007] Based on the data transmission channel between the current routing node and the next routing node, the transmission data is transmitted to the next routing node through the data transmission path.

[0008] In some embodiments, the routing node includes at least an input unit, and the input unit includes a configuration virtual domain and a data virtual domain; the path sharing method further includes:

[0009] Identify the data type of the transmission data to obtain an identification result;

[0010] In response to the recognition result characterizing that the transmission data is the physical data, storing the physical data in a data virtual domain in the input unit;

[0011] In response to the identification result indicating that the transmission data is the configuration data, the configuration data is stored in a configuration virtual domain in the input unit.

[0012] In some embodiments, the transmission data at least includes a data identifier for characterizing a data type; and identifying the data type of the transmission data to obtain an identification result includes:

[0013] Based on the data identifier, the data type of the transmission data is identified to obtain the identification result.

[0014] In some embodiments, the routing node includes at least one input unit, the number of the input units is the same as the number of at least one routing node connected to the routing node, and each input unit corresponds to a routing node connected to the current routing node; the path sharing method further includes:

[0015] In response to the current routing node receiving a plurality of transmission data, determining a source routing node of each transmission data;

[0016] Each transmission data is stored in the input unit corresponding to the source routing node of each transmission data in the at least one input unit.

[0017] In some embodiments, the path sharing method further comprises:

[0018] Determining target transmission data based on the priority corresponding to each transmission data in the at least one input unit;

[0019] The target transmission data is transmitted to the output unit corresponding to the next routing node.

[0020] In some embodiments, the routing node further includes at least one output unit, each output unit corresponding to a routing node connected to the current routing node; transmitting the transmission data to the next routing node through the data transmission path includes:

[0021] The target transmission data in the output unit corresponding to the next routing node is sent to the next routing node through the data transmission path.

[0022] In some embodiments, the transmission data at least includes a channel identifier for characterizing a virtual channel to be stored; the configuration virtual domain includes at least one configuration channel, and the data virtual domain includes at least one data channel;

[0023] The step of storing the physical data into the data virtual domain in the input unit comprises:

[0024] storing the physical data into the target data channel corresponding to the channel identifier in the data virtual domain;

[0025] Correspondingly, storing the configuration data into the configuration virtual domain in the input unit includes:

[0026] The configuration data is stored in the target configuration channel corresponding to the channel identifier in the configuration virtual domain.

[0027] In a second aspect, an embodiment of the present application provides an on-chip network, the on-chip network comprising a plurality of routing nodes, each routing node is connected to at least one routing node, and a single transmission direction between two connected routing nodes is connected based on a data transmission path; wherein,

[0028] A current routing node, configured to determine, in response to receiving transmission data, a next routing node of the current routing node among the multiple routing nodes; wherein the current routing node is any routing node among the multiple routing nodes that receives the transmission data, and the transmission data is entity data for information transmission or configuration data for parameter configuration;

[0029] The current routing node is further configured to transmit the transmission data to the next routing node through the data transmission path based on the data transmission channel between the current routing node and the next routing node.

[0030] In some embodiments, the routing node includes at least an input unit, the input unit includes a configuration virtual domain and a data virtual domain; the transmission data includes at least a data identifier for characterizing a data type;

[0031] The current routing node is further configured to identify the data type of the transmission data and obtain an identification result; in response to the identification result characterizing that the transmission data is the physical data, the physical data is stored in the data virtual domain in the input unit; in response to the identification result characterizing that the transmission data is the configuration data, the configuration data is stored in the configuration virtual domain in the input unit.

[0032] In a third aspect, an embodiment of the present application provides an electronic device, the electronic device comprising at least an on-chip network and a plurality of hardware devices; the on-chip network comprises at least a plurality of routing nodes, each routing node is respectively connected to a corresponding hardware device, each routing node is connected to at least one routing node, and a single transmission direction between two connected routing nodes is connected based on a data transmission path;

[0033] The hardware device is configured to send transmission data;

[0034] The on-chip network is configured to determine the next routing node of the current routing node among the multiple routing nodes in response to the current routing node in the on-chip network receiving transmission data; wherein the current routing node is any routing node among the multiple routing nodes that receives the transmission data, and the transmission data is physical data for information transmission or configuration data for parameter configuration; based on the data transmission channel between the current routing node and the next routing node, the transmission data is transmitted to the next routing node through the data transmission path.

[0035] The above description is only an overview of the technical solution of the present application. In order to more clearly understand the technical means of the present application, it can be implemented in accordance with the contents of the specification. In order to make the above and other purposes, features and advantages of the present application more obvious and easy to understand, the specific implementation methods of the present application are listed below. BRIEF DESCRIPTION OF THE DRAWINGS

[0036] Figure 1 It is an optional flow chart of the path sharing method provided in the embodiment of the present application;

[0037] Figure 2 This is an optional structural diagram of the on-chip network provided in the embodiment of the present application. Figure 1 ;

[0038] Figure 3 This is an optional structural diagram of a routing node provided in an embodiment of the present application. Figure 2 ;

[0039] Figure 4 It is a schematic diagram of the structure of a two-input and two-output routing node provided in an embodiment of the present application;

[0040] Figure 5 It is a schematic diagram of the structure of a network on chip connected by a grid topology provided in an embodiment of the present application. DETAILED DESCRIPTION

[0041] In order to make the purpose, technical solutions and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings. The described embodiments should not be regarded as limiting the present application. All other embodiments obtained by ordinary technicians in the field without making creative work are within the scope of protection of this application.

[0042] In the following description, reference is made to "some embodiments", which describe a subset of all possible embodiments, but it is understood that "some embodiments" may be the same subset or different subsets of all possible embodiments, and may be combined with each other without conflict. Unless otherwise defined, all technical and scientific terms used in the embodiments of the present application have the same meaning as those commonly understood by those skilled in the art of the technical field of the embodiments of the present application. The terms used in the embodiments of the present application are only for the purpose of describing the embodiments of the present application and are not intended to limit the present application.

[0043] Related technologies In order to improve the communication efficiency between the functional modules inside the chip, configuration information is transmitted through the configuration path, and actual data is transmitted through the data path. The data path is mainly used for data transmission between the functional components inside the CPU or the system, and is mainly used to implement data read and write operations, including data exchange between registers, data transmission between the main memory and the CPU, and data flow when performing arithmetic and logical operations. The configuration path can be used to transmit configuration information between the configuration memory and the execution unit to ensure that each component in the electronic device can work normally according to the preset configuration information, such as initializing parameters, setting working modes, etc.

[0044] However, bus resources include bandwidth, buffer capacity, etc. These resources are usually designed with a certain amount of redundancy reserved to cope with sudden high traffic demands. However, when the traffic of the configured path is low, these reserved resources are not fully utilized, resulting in resource waste, which not only reduces the efficiency of resource utilization, but also may increase the overall power consumption and area overhead of the chip.

[0045] Based on the problems existing in the related technology, an embodiment of the present application can provide a path sharing method, which is applied to an on-chip network including multiple routing nodes, each routing node is connected to at least one routing node, and a single transmission direction between two connected routing nodes is connected based on a data transmission path. When a current routing node among multiple routing nodes receives transmission data, the next routing node of the current routing node is determined among the multiple routing nodes, wherein the transmission data is physical data for information transmission or configuration data for parameter configuration, and then based on the data transmission channel between the current routing node and the next routing node, the transmission data is transmitted to the next routing node through the data transmission path.

[0046] In this way, the embodiment of the present application can reduce the need for multiple physical links by having physical data and configuration data share a data transmission path. The data transmission path can transmit configuration data when the bus is static and interact with physical data when the bus is dynamic, which can reduce the idle time of the bus and save resource consumption, thereby improving bus resource utilization. At the same time, the present application does not need to construct two data paths, reduces the complexity of the bus, and reduces design and manufacturing costs.

[0047] In the embodiment of the present application, the routing node in the network-on-chip (NoC) is the core component of the network-on-chip, which may include cache, switch, arbiter and control logic to realize the routing and storage and forwarding functions of data. The topological connection between multiple routing nodes may include two-dimensional topological structures such as mesh, ring, torus and crossbar, and three-dimensional network-on-chip may be realized by adding vertical links.

[0048] In the embodiment of the present application, two connected routing nodes are connected based on a data transmission path in a single transmission direction. For example, for two connected routing nodes 1 and 2, when routing node 1 transmits configuration data or entity data to routing node 2, the configuration data and entity data are transmitted through one physical channel, and when routing node 2 transmits configuration data or entity data to routing node 1, the configuration data and entity data are transmitted through another physical channel, that is, data transmission in different directions is implemented using different channels.

[0049] Here, each routing node in the on-chip network corresponds to a hardware device in the connected electronic device. The hardware device can be a processor (CPU, Central Processing Unit), a memory (RAM, Random Access Memory), a digital signal processor (DSP, Digital Signal Processor), a video processor (VPU, Video Processing Unit), an input / output (I / O, Input / Output) interface and a graphics processor (GPU, Graphics Processing Unit) and other hardware structures. Each hardware device realizes communication and data transmission through the on-chip network.

[0050] The technical solution of the present application will be described in detail below with reference to the accompanying drawings.

[0051] Figure 1 is an optional flow chart of the path sharing method provided in the embodiment of the present application. The execution subject of the path sharing method provided in the embodiment of the present application is a routing node in the on-chip network, such as Figure 1As shown, the path sharing method provided in the embodiment of the present application can be implemented through step S101 and step S102:

[0052] Step S101: in response to a current routing node receiving transmission data, determining a next routing node of the current routing node among the multiple routing nodes; wherein the current routing node is any routing node among the multiple routing nodes that receives the transmission data, and the transmission data is entity data for information transmission or configuration data for parameter configuration.

[0053] In the embodiments of the present application, Figure 2 This is an optional structural diagram of the on-chip network provided in the embodiment of the present application. Figure 1 ,like Figure 2 As shown, the topological connection mode of multiple routing nodes can be a mesh structure (for example Figure 2 The structure given in the figure is a 2*2 mesh structure), but it can also be any other feasible topological structure, which is not limited in the embodiments of the present application.

[0054] like Figure 2 As shown, each routing node (201-1 to 201-4) is connected to at least one routing node (here, Figure 2 Only a 2*2 two-dimensional mesh structure is given as an example, not the entire structure. In the 2*2 two-dimensional mesh structure, each routing node is connected to 4 routing nodes, and a single transmission direction between two connected routing nodes is connected based on a data transmission path. For example, when routing node 201-1 sends transmission data to routing node 201-2, data transmission is performed through data transmission path 202-2, and when routing node 201-2 sends transmission data to routing node 201-1, data transmission is performed through data transmission path 202-1.

[0055] In some embodiments, the topological connection of multiple routing nodes can also include any feasible connection methods such as tree, ring, torus and crossbar. In the ring topology connection, each routing node is connected to two adjacent routing nodes; in the two-dimensional torus topology connection, each routing node is connected to four adjacent routing nodes; in the three-dimensional torus topology connection, each routing node is connected to six adjacent routing nodes; in the crossbar topology connection, each routing node is connected to multiple routing nodes, and the number can be set according to demand.

[0056] In the embodiment of the present application, the transmission data may be entity data used for information transmission or configuration data for parameter configuration. Among them, entity data may refer to the data information actually transmitted, which is used to describe or carry specific information content. For example, in an HTTP request, entity data may be form data, JSON data, etc.; entity data may also be actual information transmitted between hardware devices, such as data transmitted between two hardware devices by a network layer data entity.

[0057] Configuration data can be parameters or information used to define and control the behavior and functions of various components in the on-chip network (such as routing nodes, hardware devices, slave resources, etc.). Configuration data determines which functions the device will perform and how to perform these functions. Configuration data can include routing configuration information, protocol conversion and interface configuration, storage and transmission configuration, etc.

[0058] In the embodiment of the present application, when a hardware device sends transmission data to another hardware device, for example, when a CPU sends transmission data to a GPU, the routing algorithm of the routing node can calculate and select the best path for data transmission according to the network topology of the on-chip network to transmit the transmission data from the source node (CPU) to the target node (GPU). At this time, the current routing node is any routing node among the multiple routing nodes in the path that receives the transmission data.

[0059] In some embodiments, when the current routing node receives the transmission data, the next routing node of the current routing node can be directly determined based on the path calculated by the routing algorithm.

[0060] In an embodiment of the present application, a routing node may include an input unit, a switch, and an output unit, and the number of input units is the same as the number of output units, which is the same as the number of at least one routing node connected to the routing node. Each input unit includes a data virtual domain and a configuration virtual domain. After the current routing node receives the transmission data, it will determine the previous routing node of the data, save the transmission data to the input unit corresponding to the previous routing node, and then determine whether the data is physical data or configuration data, and store the transmission data in the corresponding data virtual domain or configuration virtual domain. After determining the next routing node, the switch sends the transmission data to the output node corresponding to the next routing node, and transmits the transmission data to the next routing node based on the data transmission channel between the current routing node and the next routing node.

[0061] Step S102: Based on the data transmission channel between the current routing node and the next routing node, the transmission data is transmitted to the next routing node through the data transmission path.

[0062] In an embodiment of the present application, two connected routing nodes are connected via a data transmission path. Therefore, when data is transmitted, the transmission data is transmitted to the next routing node based on the data transmission channel between the current routing node and the next routing node.

[0063] The embodiment of the present application can reduce the number of physical links and reduce the power consumption of the on-chip network by sharing a data transmission path for physical data and configuration data; and the data transmission path can transmit configuration data when the bus is static, and perform physical data interaction when the bus is dynamic, thereby reducing the idle time of the bus, saving resource consumption, and thus improving the utilization rate of bus resources; at the same time, the present application does not need to build two data paths between two connected routing nodes, reducing the complexity of the bus, and reducing the design and manufacturing costs

[0064] In some embodiments, based on Figure 2 , Figure 3 This is an optional structural diagram of a routing node provided in an embodiment of the present application. Figure 2 ,like Figure 3 As shown, the routing node 201 includes an input unit 301, and the input unit 301 includes a configuration virtual region 3011 and a data virtual region 3012, wherein the embodiment of the present application divides the on-chip bus into two independent virtual regions (Virtual region ion), and the configuration virtual region (CVR, Config Virtual Region) 3011 is used to manage the configuration information of the system, such as storing and distributing the configuration data of the electronic device, ensuring that all hardware devices can operate and communicate correctly. The data virtual region (DVR, Data Virtual Region) 3012 is used to handle tasks related to data transmission, such as being responsible for managing the flow and storage of data, and ensuring efficient transmission and access of data between various hardware devices.

[0065] In some embodiments, when the current routing node receives the transmission data, it determines whether the transmission data is physical data or configuration data, and puts the transmission data into the corresponding virtual domain according to the data type of the transmission data. Therefore, the path sharing method provided in the embodiment of the present application may also include steps S1 to S3:

[0066] Step S1, identifying the data type of the transmission data to obtain an identification result.

[0067] In an embodiment of the present application, the transmission data may carry a field representing the data type. After the current routing node receives the transmission data, it obtains an identification result of the transmission data based on the field. The identification result is what type of data the transmission data is, such as configuration data or entity data.

[0068] In some embodiments, a 1-bit bit width may be added to each transmission data unit of a data packet transmitted on the bus to identify whether the transmission data belongs to the configuration virtual domain or the data virtual domain. Here, the 1-bit bit width may be represented by binary numbers 0 and 1, for example, if the bit is "1", it indicates that the transmission data belongs to the configuration virtual domain, and if it is "0", it indicates that the transmission data belongs to the configuration virtual domain.

[0069] Therefore, in the embodiment of the present application, the transmission data at least includes a data identifier for characterizing the data type, and step S1 may be to identify the data type of the transmission data based on the data identifier to obtain the identification result.

[0070] Here, the current routing node may determine whether the transmission data is entity data or configuration data according to the data identifier of the transmission data.

[0071] In an embodiment of the present application, data is transmitted between two routing nodes through a data transmission path. There can be multiple input units and output units on the routing node. No matter which input unit of the routing node the transmission data enters, it is input from the data transmission path between the routing node and the previous routing node, and then allocated to different virtual domains based on the different types of transmission data.

[0072] Step S2: In response to the recognition result indicating that the transmission data is the physical data, the physical data is stored in the data virtual domain in the input unit.

[0073] In the embodiment of the present application, when the identification result indicates that the transmitted data is physical data, the current routing node stores the physical data in the data virtual domain in the input unit of the current routing node.

[0074] In some embodiments, the data virtual domain includes at least one data channel, which can ensure data independence between different services or applications, thereby avoiding data conflicts and interference. For example, a DVR can have four virtual channels VC0-VC3, and these four virtual channels share the input buffer of the DVR. The transmission data can also include a channel identifier for characterizing the virtual channel to be stored, so as to determine in which virtual channel the transmission data is stored.

[0075] Correspondingly, step S2 may be to store the physical data in the target data channel corresponding to the channel identifier in the data virtual domain.

[0076] Here, the data virtual domain includes at least one data channel. When one of the data channels is blocked, other data channels can still continue to transmit data, thereby avoiding head-of-line blocking and improving the utilization of the physical link and the throughput of the overall network.

[0077] Step S3: In response to the identification result indicating that the transmission data is the configuration data, the configuration data is stored in the configuration virtual domain in the input unit.

[0078] In the embodiment of the present application, when the identification result indicates that the transmission data is configuration data, the current routing node stores the configuration data in the configuration virtual domain in the input unit of the current routing node.

[0079] Correspondingly, the configuration virtual domain includes at least one configuration channel, for example, CVR may have two virtual channels VC0-VC1, and these two virtual channels share the input buffer of CVR. Step S3 may be to store the configuration data to the target configuration channel corresponding to the channel identifier in the configuration virtual domain.

[0080] In an embodiment of the present application, virtual channels are used to cope with complex traffic management. In data transmission of electronic devices, the transmission amount of configuration data is much smaller than the transmission amount of physical data, and too many virtual channels will occupy more buffer storage and chip area, increasing power consumption. Therefore, the number of configuration channels in the configuration virtual domain can be smaller than the data channels in the data virtual domain to balance performance and resource consumption.

[0081] In some embodiments, in order to better balance resources and avoid the ineffective utilization of the buffer space of the two configuration channels in the configuration virtual domain, the two configuration channels in the configuration virtual domain can also be dynamically set, that is, to establish a resource coordination mechanism between the configuration virtual domain and the data virtual domain, that is, to use a shared resource pool to allocate buffer resources for the configuration virtual domain and the data virtual domain. When the buffer resources of one of the virtual domains are insufficient, the buffer resources of other virtual domains can be dynamically adjusted for allocation to ensure efficient operation of the on-chip network and improve resource utilization.

[0082] In an embodiment of the present application, when there are multiple input units in a routing node, each input unit receives data from different routing nodes, and the amount of data received by each input unit may also be different. Therefore, resources can also be shared between virtual domains between different input units to improve resource utilization.

[0083] In the embodiment of the present application, the input unit is divided into a configuration virtual domain and a data virtual domain, which are used to store configuration data and entity data respectively. When using a data transmission path, information isolation between virtual domains can be achieved, thereby ensuring information security within the virtual domain. At the same time, each virtual domain contains multiple data channels, and multiple data channels can share the same physical link to improve the performance of the on-chip network.

[0084] In some embodiments, each routing node may include at least one input unit, the number of input units is the same as the number of at least one routing node connected to the routing node, and each input unit corresponds to a routing node connected to the current routing node, that is, if each routing node is connected to four routing nodes, then each routing node contains four input units, and each input unit corresponds to a connected routing node.

[0085] Therefore, the path sharing method provided in the embodiment of the present application may further include step S11 and step S12:

[0086] Step S11, in response to the current routing node receiving a plurality of transmission data, determining the source routing node of each transmission data.

[0087] In the embodiment of the present application, when the on-chip network is transmitting data, the current routing node can receive multiple transmission data at the same time, and the multiple transmission data can come from different routing nodes or from the same routing node. After receiving the transmission data, the current routing node will determine the source routing node of each transmission data, that is, the previous routing node that sent the transmission data, and based on the source routing node, determine which input unit to store the transmission data.

[0088] Step S12: storing each transmission data in the input unit corresponding to the source routing node of each transmission data in the at least one input unit.

[0089] Since the routing unit has multiple input units, each input unit corresponds to a routing node connected to the current routing node. After the source routing node of the transmission data is determined, each transmission data can be stored in the input unit corresponding to the source routing node of each transmission data.

[0090] In an embodiment of the present application, each routing node has multiple input units, and each input unit corresponds to a connected routing node, so that each input unit can independently process data streams from routing nodes from different sources, thereby improving the internal bandwidth and resource utilization of the routing node; and the use of multiple input units can perform efficient flow control, enhancing the flexibility and performance of the on-chip network.

[0091] In some embodiments, the current routing node needs to send the received transmission data to the next routing node until the transmission data is sent to the specified hardware device through the transmission path. However, there may be multiple transmission data that need to be sent in the current routing node. Therefore, it is necessary to determine the target transmission data to be sent among the multiple transmission data in the current routing node. Therefore, the path sharing method provided in the embodiment of the present application may also include step S21 and step S22:

[0092] Step S21: Determine target transmission data based on the priority corresponding to each transmission data in the at least one input unit.

[0093] In an embodiment of the present application, each transmission data is assigned a different priority according to its importance or urgency. When performing data transmission in an on-chip network, the target transmission data to be transmitted to the next routing node is determined based on the priority corresponding to each transmission data in at least one input unit of the current transmission node. The target transmission data may be the data with the highest priority in at least one input unit.

[0094] In some embodiments, each input unit has a selector for selecting a specific data from a plurality of transmission data of the input unit for processing or transmission. The selector can dynamically adjust the priority of the plurality of transmission data of the input unit according to the network congestion situation, thereby optimizing the routing performance. For example, the selector can preferentially select the data in the input unit corresponding to the most severely blocked upstream routing node for transmission according to the blocking situation of at least one upstream routing node connected to the current routing node, thereby reducing network congestion.

[0095] Step S22: Transmit the target transmission data to the output unit corresponding to the next routing node.

[0096] In an embodiment of the present application, the routing node may also include a switch, which may transmit the determined target transmission data to an output unit corresponding to the next routing node based on the determined next routing node, and transmit the target transmission data from the output unit to the next routing node through a data transmission path.

[0097] In some embodiments, the routing node may further include at least one output unit, each output unit corresponding to a routing node connected to the current routing node, that is, the number of output units in the routing node is the same as the number of input units. Correspondingly, step S22 may be to send the target transmission data in the output unit corresponding to the next routing node to the next routing node through the data transmission path.

[0098] When performing data transmission, the embodiment of the present application sends the data based on the priority of the data transmitted in the routing node, which can ensure that critical information with high priority can reach the destination in time, thereby meeting the needs of emergency applications; at the same time, under high load conditions, giving priority to sending high-priority data can significantly reduce the transmission delay of high-priority data and avoid causing performance degradation of electronic equipment.

[0099] Based on the above embodiments, the embodiments of the present application further provide an on-chip network, which includes a plurality of routing nodes, each routing node can be connected to at least one other routing node, and the single transmission direction between two connected routing nodes is connected based on a data transmission path. Figure 2 As shown, in this embodiment, the topological connection mode of multiple routing nodes in the on-chip network is a 2D mesh structure. In other embodiments, it can also be other network structures, such as tree, ring, torus, crossbar and other any feasible network structures.

[0100] Wherein, the current routing node is configured to determine the next routing node of the current routing node among the multiple routing nodes in response to receiving the transmission data; wherein, the current routing node is any routing node among the multiple routing nodes that receives the transmission data, and the transmission data is entity data for information transmission or configuration data for parameter configuration; and is also configured to transmit the transmission data to the next routing node through the data transmission path based on the data transmission channel between the current routing node and the next routing node.

[0101] In some embodiments, the routing node includes at least an input unit, and the input unit includes a configuration virtual domain and a data virtual domain; the transmission data includes at least a data identifier for characterizing a data type; the current routing node is further configured to identify the data type of the transmission data and obtain an identification result; in response to the identification result characterizing that the transmission data is the entity data, the entity data is stored in the data virtual domain in the input unit; in response to the identification result characterizing that the transmission data is the configuration data, the configuration data is stored in the configuration virtual domain in the input unit.

[0102] In some embodiments, the routing node includes at least one input unit, the number of the input units is the same as the number of at least one routing node connected to the routing node, and each input unit corresponds to a routing node connected to the current routing node; the current routing node is further configured to determine the source routing node of each transmission data in response to the current routing node receiving multiple transmission data; and store each transmission data respectively in the input unit corresponding to the source routing node of each transmission data in the at least one input unit.

[0103] In some embodiments, the routing node also includes at least one output unit, each output unit corresponds to a routing node connected to the current routing node; the current routing node is also configured to send the target transmission data in the output unit corresponding to the next routing node to the next routing node through the data transmission path.

[0104] The description of the on-chip network in the embodiment of the present application is similar to the description of the aforementioned path sharing method, and has similar beneficial effects as the path sharing method, so it is not repeated here. For technical details not disclosed in the embodiment, please refer to the description of the path sharing method of the present application for understanding.

[0105] Next, an application of a path sharing method in a practical scenario is provided.

[0106] In order to solve the problems existing in the related art, the embodiment of the present application provides a method of data and configuration sharing path to solve the problem of idle and wasted bus resources.

[0107] In the embodiment of the present application, the on-chip bus is divided into two virtual regions. The virtual region occupied by data information (i.e., physical data) is called the data virtual region (DVR), and the virtual region occupied by configuration data is called the configuration virtual region (CVR). The two virtual regions do not interfere with each other, and the DVR and CVR virtual regions share the same physical path resources, that is, data is transmitted through one physical path.

[0108] In some embodiments, when data is transmitted through a physical path, the usage periods of configuration data and entity data may be staggered. Configuration data is information used for system initialization and configuration management, and therefore can be performed when the bus is static, that is, the transmission of configuration data generally occurs when the hardware devices (such as chips) in the electronic device have not yet started working; while entity data is data used to perform calculations and data processing, and is real-time, dynamically changing data that can interact when the on-chip network is dynamic.

[0109] Here, in order to achieve data and configuration sharing the same physical path, the embodiment of the present application can increase the data unit of each transmission of the data packet on the bus by 1 bit (i.e., data identification), which is used to identify whether the data unit is configuration data or entity data, so as to determine whether the routing node needs to put the data unit into the configuration virtual domain or the data virtual domain when receiving the data unit.

[0110] In the embodiment of the present application, the data unit may be a data unit such as a Flit (Flow Control Unit), a packet, and a Phit (Physical Transfer Unit). Among them, Flit in the field of data transmission specifically refers to a tiny data unit used to efficiently and reliably transmit information in a network. A Flit usually contains header information and a payload. The header contains control fields such as routing information and a sequence number. A 1-bit width can be added to the header information of the Flit to indicate that the Flit is configuration data or entity data; a Packet contains header information (such as a destination address) and a data body. A Packet can be composed of multiple Flits. A 1-bit width can be added to the header information of the Packet; a Phit is the smallest granularity unit of physical transmission, corresponding to the width of a physical channel. A Phit consists of header information and a payload. A 1-bit width can be added to the header information of a Phit. In an on-chip network, due to the wider channel, a Flit can be composed of a single Phit.

[0111] Figure 4 is a schematic diagram of a structure of a two-input and two-output routing node provided in an embodiment of the present application, such as Figure 4 As shown, the routing node includes two input ports 401 , two output ports 402 and a switch 403 , and each input port includes a configuration virtual domain 4011 , a data virtual domain 4012 and a selector 4013 .

[0112] Among them, the configuration virtual domain 4011 and the data virtual domain 4012 are two independent input buffers, and the buffers between the configuration virtual domain 4011 and the data virtual domain 4012 cannot be shared, that is, when the data is used, the data of different virtual domains need to be managed independently, and data interaction or sharing cannot be achieved by sharing the buffer. There can be two virtual channels (i.e., data channels) under the configuration virtual domain 4011 to share the input buffer of the CVR, such as VC0~VC1; there are four virtual channels VC0~VC3 under the data virtual domain 4012 to share the input buffer of the DVR.

[0113] However, in order to improve the utilization of storage resources, as described in the above-mentioned embodiment, the configuration virtual domain 4011 and the data virtual domain 4012 can use a shared resource pool to allocate buffer resources for the configuration virtual domain and the data virtual domain. When the buffer resources of one of the virtual domains are insufficient, the resource allocation of other virtual domains can be dynamically adjusted to ensure the efficient operation of the on-chip network and improve resource utilization.

[0114] based on Figure 4Given the structure of the routing node, when receiving the transmission data, the routing node can first identify which virtual domain it belongs to, and then store the transmission data in the buffer of the corresponding virtual domain.

[0115] Here, the two virtual domains do not affect each other. If the path in the data virtual domain is blocked, it will not affect the path in the configuration virtual domain, and the data path in the configuration virtual domain will continue to work.

[0116] In an embodiment of the present application, after the transmission data enters the routing node, two levels of arbitration can be performed. The first level of arbitration is to determine which virtual domain the transmission data belongs to, and the second level of arbitration is used to determine which virtual channel in the virtual domain the transmission data enters.

[0117] Here, the transmitted data will carry a field representing the virtual channel to indicate which virtual channel it is placed in.

[0118] In some embodiments, the selector 4013 may arbitrate the data in all virtual channels and select the data with the highest priority to send.

[0119] In some embodiments, the switch 403 can be used to implement the transmission of transmission data from one input port to any other output port. In the on-chip network, the transmission of transmission data needs to include the information of the source address (Source) and the destination address (Destination), which is to ensure that the data packet can be correctly transmitted from the source routing node to the destination routing node.

[0120] The embodiment of the present application can obtain the transmission path of the transmission data on multiple routing nodes based on the source routing node and the target routing node, and the switch 403 can determine to which output port the transmission data is sent based on the transmission path.

[0121] Figure 5 is a schematic diagram of a network-on-chip structure connected in a grid topology according to an embodiment of the present application. Figure 5 As shown, in a 2*2 mesh network, each routing node 501 is connected to two routing nodes respectively, and each routing node 501 includes a configuration virtual domain 5011, a data virtual domain 5012 and an arbitrator 5013.

[0122] Here, if Figure 5 As shown, only one physical channel is needed between two connected routing nodes 501 in a single transmission direction. By adopting the virtual domain method, configuration information and data information can share the physical channel. At the same time, multiple virtual channels are supported under different virtual domains to prevent the virtual domain from being blocked.

[0123] In some embodiments, the present application further provides an electronic device, the electronic device includes at least an on-chip network and multiple hardware devices; the on-chip network includes at least multiple routing nodes, each routing node is connected to a corresponding hardware device, each routing node is connected to at least one routing node, and the single transmission direction between two connected routing nodes is based on a data transmission path. Among them,

[0124] The hardware device is configured to send transmission data. The hardware device may be a processor, memory, DSP module, video processor, I / O interface, graphics processor, etc. in an electronic device.

[0125] The on-chip network is configured to determine the next routing node of the current routing node among the multiple routing nodes in response to the current routing node in the on-chip network receiving transmission data; wherein the current routing node is any routing node among the multiple routing nodes that receives the transmission data, and the transmission data is physical data for information transmission or configuration data for parameter configuration; based on the data transmission channel between the current routing node and the next routing node, the transmission data is transmitted to the next routing node through the data transmission path.

[0126] In some embodiments, the routing node includes at least an input unit, and the input unit includes a configuration virtual domain and a data virtual domain; the on-chip network is also configured to identify the data type of the transmission data and obtain an identification result; in response to the identification result characterizing that the transmission data is the physical data, the physical data is stored in the data virtual domain in the input unit; in response to the identification result characterizing that the transmission data is the configuration data, the configuration data is stored in the configuration virtual domain in the input unit.

[0127] In some embodiments, the transmission data at least includes a data identifier for characterizing a data type; the on-chip network is further configured to identify the data type of the transmission data based on the data identifier to obtain the identification result.

[0128] In some embodiments, the routing node includes at least one input unit, the number of the input units is the same as the number of at least one routing node connected to the routing node, and each input unit corresponds to a routing node connected to the current routing node; the on-chip network is also configured to determine the source routing node of each transmission data in response to the current routing node receiving multiple transmission data; and store each transmission data respectively in the input unit corresponding to the source routing node of each transmission data in the at least one input unit.

[0129] In some embodiments, the on-chip network is further configured to determine target transmission data based on the priority corresponding to each transmission data in the at least one input unit; and transmit the target transmission data to the output unit corresponding to the next routing node.

[0130] In some embodiments, the routing node also includes at least one output unit, each output unit corresponding to a routing node connected to the current routing node; the on-chip network is also configured to send the target transmission data in the output unit corresponding to the next routing node to the next routing node through the data transmission path.

[0131] In some embodiments, the transmission data includes at least a channel identifier for characterizing the virtual channel to be stored; the configuration virtual domain includes at least one configuration channel, and the data virtual domain includes at least one data channel; the on-chip network is further configured to store the physical data in the target data channel corresponding to the channel identifier in the data virtual domain; the on-chip network is further configured to store the configuration data in the target configuration channel corresponding to the channel identifier in the configuration virtual domain.

[0132] The description of the electronic device in the embodiment of the present application is similar to the description of the aforementioned path sharing method, and has similar beneficial effects as the path sharing method, so it is not repeated here. For technical details not disclosed in the embodiment, please refer to the description of the path sharing method of the present application for understanding.

[0133] The above is only an embodiment of the present application and is not intended to limit the protection scope of the present application. Any modifications, equivalent substitutions and improvements made within the spirit and scope of the present application are included in the protection scope of the present application.

[0134] It should be understood that "one embodiment" or "an embodiment" mentioned throughout the specification means that specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in various embodiments of the present application, the size of the sequence number of the above-mentioned processes does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application. The above-mentioned sequence numbers of the embodiments of the present application are only for description and do not represent the advantages and disadvantages of the embodiments.

[0135] It should be noted that, in this article, the terms "comprise", "include" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method or device including a series of elements includes not only those elements, but also includes other elements not explicitly listed, or also includes elements inherent to such process, method or device. In the absence of further restrictions, an element defined by the statement "comprises one..." does not exclude the presence of other identical elements in the process, method, article or device including the element. In several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely schematic, for example, the division of the units is only a logical function division, and there may be other division methods in actual implementation, such as: multiple units or components can be combined, or can be integrated into another system, or some features can be ignored, or not executed.

[0136] The above is only an implementation method of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. A path sharing method, the method being applied to an on-chip network, the on-chip network comprising a plurality of routing nodes, each routing node being connected to at least one routing node, and a single transmission direction between two connected routing nodes being connected based on a data transmission path; the method comprising: In response to the current routing node receiving the transmission data, determining a next routing node of the current routing node among the multiple routing nodes; wherein the current routing node is any routing node among the multiple routing nodes that receives the transmission data, and the transmission data is entity data for information transmission or configuration data for parameter configuration; Based on the data transmission channel between the current routing node and the next routing node, the transmission data is transmitted to the next routing node through the data transmission path.

2. The path sharing method according to claim 1, wherein the routing node at least comprises an input unit, wherein the input unit comprises a configuration virtual domain and a data virtual domain; and the path sharing method further comprises: Identify the data type of the transmission data to obtain an identification result; In response to the recognition result characterizing that the transmission data is the physical data, storing the physical data in a data virtual domain in the input unit; In response to the identification result indicating that the transmission data is the configuration data, the configuration data is stored in a configuration virtual domain in the input unit.

3. The path sharing method according to claim 2, wherein the transmission data at least includes a data identifier for characterizing a data type; and the step of identifying the data type of the transmission data to obtain an identification result comprises: Based on the data identifier, the data type of the transmission data is identified to obtain the identification result.

4. The path sharing method according to any one of claims 1 to 3, wherein the routing node comprises at least one input unit, the number of the input units is the same as the number of at least one routing node connected to the routing node, and each input unit corresponds to a routing node connected to the current routing node; The path sharing method further comprises: In response to the current routing node receiving a plurality of transmission data, determining a source routing node of each transmission data; Each transmission data is stored in the input unit corresponding to the source routing node of each transmission data in the at least one input unit.

5. The path sharing method according to claim 4, further comprising: Determining target transmission data based on the priority corresponding to each transmission data in the at least one input unit; The target transmission data is transmitted to the output unit corresponding to the next routing node.

6. The path sharing method according to claim 5, wherein the routing node further comprises at least one output unit, each output unit corresponding to a routing node connected to the current routing node; wherein the transmitting the transmission data to the next routing node via the data transmission path comprises: The target transmission data in the output unit corresponding to the next routing node is sent to the next routing node through the data transmission path.

7. The path sharing method according to claim 2 or 3, wherein the transmission data at least includes a channel identifier for characterizing a virtual channel to be stored; the configuration virtual domain includes at least one configuration channel, and the data virtual domain includes at least one data channel; The step of storing the physical data into the data virtual domain in the input unit comprises: storing the physical data into the target data channel corresponding to the channel identifier in the data virtual domain; Correspondingly, storing the configuration data into the configuration virtual domain in the input unit includes: The configuration data is stored in the target configuration channel corresponding to the channel identifier in the configuration virtual domain.

8. A network on chip, comprising a plurality of routing nodes, each routing node being connected to at least one routing node, and two connected routing nodes being connected in a single transmission direction based on a data transmission path; wherein: A current routing node, configured to determine, in response to receiving transmission data, a next routing node of the current routing node among the multiple routing nodes; wherein the current routing node is any routing node among the multiple routing nodes that receives the transmission data, and the transmission data is entity data for information transmission or configuration data for parameter configuration; The current routing node is further configured to transmit the transmission data to the next routing node through the data transmission path based on the data transmission channel between the current routing node and the next routing node.

9. The network on chip according to claim 8, wherein the routing node comprises at least an input unit, the input unit comprises a configuration virtual domain and a data virtual domain; the transmission data comprises at least a data identifier for characterizing a data type; The current routing node is further configured to identify the data type of the transmission data and obtain an identification result; in response to the identification result characterizing that the transmission data is the physical data, the physical data is stored in the data virtual domain in the input unit; in response to the identification result characterizing that the transmission data is the configuration data, the configuration data is stored in the configuration virtual domain in the input unit.

10. An electronic device, the electronic device comprising at least an on-chip network and a plurality of hardware devices; the on-chip network comprising at least a plurality of routing nodes, each routing node being connected to a corresponding hardware device, each routing node being connected to at least one routing node, and two connected routing nodes being connected in a single transmission direction based on a data transmission path; The hardware device is configured to send transmission data; The network on chip is configured to determine, in response to a current routing node in the network on chip receiving transmission data, a next routing node of the current routing node among the multiple routing nodes; wherein the current routing node is any routing node among the multiple routing nodes that receives the transmission data, and the transmission data is entity data for information transmission or configuration data for parameter configuration; Based on the data transmission channel between the current routing node and the next routing node, the transmission data is transmitted to the next routing node through the data transmission path.

Citation Information

Cited By

  • Data transmission method and device based on network-on-chip, and electronic equipment

    CN120675933A

  • A data transmission method and device based on a network on chip, and an electronic device

    CN120675933B

  • Routing node, routing network system and routing method

    CN120743838A