Network-on-chip node processing method and device, medium, equipment and product

By monitoring and adaptively managing the transmission link and selecting an appropriate data transmission path, the real-time performance, reliability, and power consumption issues of traditional on-chip networks in status query transactions are resolved, resulting in more efficient data transmission and system stability.

CN121349948APending Publication Date: 2026-01-16YUANQIXIN (SHANDONG) SEMICONDUCTOR TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511405245.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-09-29
Publication Date
2026-01-16

AI Technical Summary

Technical Problem

Traditional on-chip network architectures suffer from insufficient real-time performance, reliability, and power consumption control in status query transactions, resulting in limited system performance. In particular, they are prone to congestion and crashes when links are overloaded or fail.

Method used

By monitoring the operational status of at least two transmission links, the congestion level is determined, and a target transmission link is selected for data transmission based on the congestion level and the number of data streams. A multi-link architecture and adaptive link management strategy are adopted, combined with a status acquisition strategy to optimize the data transmission path.

Benefits of technology

It improves the performance of on-chip networks, reduces congestion and system crashes, and provides a more efficient, reliable, and low-power communication solution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121349948A_ABST
    Figure CN121349948A_ABST
Patent Text Reader

Abstract

The invention relates to an on-chip network node processing method and device, a medium, equipment and a product. The method comprises the following steps: monitoring the running states of at least two transmission links; according to the operation state of each transmission link, determining the congestion level of the transmission link; obtaining the number of to-be-transmitted data streams; selecting a target transmission link from the at least two transmission links according to the congestion level and / or the number of the transmission links; and controlling the target transmission link to transmit the data stream to be transmitted. When one transmission link is overloaded or breaks down, data transmission can be carried out through other transmission links, congestion is reduced, the performance of the network-on-chip is improved, and the problem of system crash is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of on-chip network development technology, and in particular to an on-chip network node processing method, apparatus, medium, device and product. Background Technology

[0002] As chip integration increases, heterogeneous multi-core architectures have become mainstream, and traditional bus-based interconnects are gradually being replaced by Network-on-Chip (NoC) due to bandwidth bottlenecks and insufficient scalability. However, with the continuous increase in computing demands, traditional NoC architectures face many bottlenecks, especially in state query transactions, where their real-time performance, reliability, and power consumption control deficiencies severely restrict system performance.

[0003] Traditional on-chip network architectures typically rely on a single link for data transmission. When a large amount of data needs to be transmitted through the same link, link overload can easily occur, leading to congestion and degraded system performance. Furthermore, the reliance on a single link means that once a link fails, the performance of the entire system may be affected, or even cause the system to crash. Summary of the Invention

[0004] To address at least one of the above technical problems, embodiments of the present invention provide an on-chip network node processing method, apparatus, medium, device, and product.

[0005] According to a first aspect, embodiments of the present invention provide an on-chip network node processing method, comprising:

[0006] Monitor the operational status of at least two transmission links;

[0007] The congestion level of each transmission link is determined based on its operational status.

[0008] Get the number of data streams to be transmitted;

[0009] Based on the congestion level and / or number of each of the transmission links, a target transmission link is selected from the at least two transmission links;

[0010] Control the target transmission link to transmit the data stream to be transmitted.

[0011] In one embodiment, the at least two transmission links include a control link and a data link; the congestion level includes mild, moderate, severe, and faulty; correspondingly, selecting a target transmission link from the at least two transmission links based on the congestion level and / or number of each transmission link includes any one of the following: when the congestion levels of the control link and the data link are different and neither is moderate, the transmission link with the lower congestion level is selected as the target transmission link; when the congestion levels of the control link and the data link are the same and neither is faulty, the target transmission link is selected based on the number; when the congestion levels of the control link and the data link are different and one of the transmission links is moderate, the target transmission link is selected based on the number; when there is a faulty link among the control link and the data link, the non-faulty link is selected as the target transmission link.

[0012] In one embodiment, when the congestion levels of the control link and the data link are the same and neither is faulty, selecting the target transmission link based on the quantity includes: when the congestion levels of the control link and the data link are the same and neither is faulty, if the quantity is greater than 1, then the data link is used as the target transmission link; if the quantity is equal to 1, then the control link is used as the target transmission link.

[0013] In one embodiment, when the congestion levels of the control link and the data link are different, and one of the transmission links is moderate, selecting the target transmission link based on the quantity includes: when the congestion levels of the control link and the data link are different, and one of the transmission links is moderate, if the quantity is less than or equal to 1 / 2 of a preset maximum quantity, using the control link as the target transmission link; and if the quantity is greater than 1 / 2 of the preset maximum quantity, using the data link as the target transmission link.

[0014] In one embodiment, the method further includes: after the source node initiates a status query request, sending the query parameters in the status query request to the packet processing module corresponding to the source node through the transaction processing module corresponding to the source node, so that the packet processing module corresponding to the source node packages the received information into the data stream to be transmitted to the target node; after receiving the query result of the target node through the transaction processing module corresponding to the source node, feeding back the query result to the user.

[0015] In one embodiment, the method further includes: after receiving the query parameters sent by the packet processing module corresponding to the target node through the transaction processing module corresponding to the target node, sending the query parameters to the status acquisition module so that the status acquisition module can obtain status information and send the status information to the packet processing module corresponding to the target node so that the packet processing module corresponding to the target node can package the status information into a query result that needs to be responded to the source node.

[0016] According to a second aspect, embodiments of the present invention provide an on-chip network node processing apparatus, comprising:

[0017] The link monitoring module is used to monitor the operating status of at least two transmission links; and to determine the congestion level of each transmission link based on its operating status.

[0018] The quantity acquisition module is used to acquire the quantity of data streams to be transmitted;

[0019] The link selection module is used to select a target transmission link from the at least two transmission links based on the congestion level and / or number of each transmission link.

[0020] The link transmission module is used to control the target transmission link to transmit the data stream to be transmitted.

[0021] According to a third aspect, embodiments of the present invention provide a computer-readable storage medium having a computer program stored thereon, which, when executed in a computer, causes the computer to perform the method provided in the first aspect.

[0022] According to a fourth aspect, the computing device provided in the embodiments of the present invention includes a memory and a processor, wherein the memory stores executable code, and when the processor executes the executable code, it implements the method provided in the first aspect.

[0023] According to a fifth aspect, the computer program product provided in the embodiments of the present invention includes a computer program that, when executed by a processor, implements the method provided in the first aspect.

[0024] The on-chip network node processing method, apparatus, medium, device, and product provided in this invention monitor the operating status of at least two transmission links, determine the congestion level of each transmission link based on its operating status, and select a target transmission link from the at least two transmission links based on the congestion level and / or number of each transmission link. Therefore, when one transmission link is overloaded or fails, data transmission can be carried out through other transmission links, reducing congestion, improving the performance of the on-chip network, and reducing the occurrence of system crashes. Attached Figure Description

[0025] Figure 1 This is a flowchart illustrating an on-chip network node processing method in one embodiment of the present invention;

[0026] Figure 2 This is a structural block diagram of an on-chip network node processing device according to an embodiment of the present invention. Detailed Implementation

[0027] In a first aspect, embodiments of the present invention provide an on-chip network node processing method, see [link to previous document]. Figure 1 The method includes:

[0028] S110 monitors the operational status of at least two transmission links.

[0029] The at least two transmission links include a control link and a data link.

[0030] The control link is primarily used for sending and receiving control messages, such as query requests, query responses, and read requests. Since the control link mainly carries small amounts of data and control information, its bandwidth and latency requirements are relatively low. The key requirements are to ensure high reliability and low latency to ensure that control signals within the system can be transmitted rapidly, supporting fast transaction scheduling and management.

[0031] The data link is primarily used to transmit actual data streams, such as write requests and read responses. Unlike the control link, the data link needs to handle large amounts of data streams and loads, therefore it has higher bandwidth requirements and stricter latency control. The design goal of the data link is to optimize the efficiency of large-volume data transmission, ensuring high throughput and low latency to meet the needs of complex data processing tasks.

[0032] S120, determine the congestion level of each transmission link based on its operating status.

[0033] The congestion levels include mild, moderate, severe, and faulty.

[0034] Understandably, to avoid uneven traffic distribution between control links and data links, which could lead to congestion on one transmission link and low utilization on the other, the operating status of the two transmission links is monitored in real time, and the degree of congestion is assessed based on the set thresholds.

[0035] For example, a first threshold, a second threshold, and a third threshold are set. If the operating status data of the transmission link is less than the first threshold, the congestion level of the transmission link is considered to be mild; if it is greater than or equal to the first threshold and less than the second threshold, the congestion level of the transmission link is considered to be moderate; if it is greater than or equal to the second threshold and less than the third threshold, the congestion level of the transmission link is considered to be severe; and if it is greater than the third threshold, the congestion level of the transmission link is considered to be faulty.

[0036] S130, obtain the number of data streams to be transmitted.

[0037] The data stream to be transmitted is the number of Flow Control Units (Flits), which decompose a message into data packets and then divide the data packets into multiple Flits of fixed length to facilitate transmission.

[0038] S140, select a target transmission link from the at least two transmission links based on the congestion level and / or number of each transmission link.

[0039] Wherein, the selection of a target transmission link from the at least two transmission links based on the congestion level and / or number of each transmission link in S140 includes any one of the following:

[0040] (1) When the congestion levels of the control link and the data link are different and neither is moderate, the transmission link with the lower congestion level shall be used as the target transmission link.

[0041] (2) If the congestion levels of the control link and the data link are the same and neither is faulty, select the target transmission link according to the quantity.

[0042] Specifically, if the congestion levels of the control link and the data link are the same and neither is faulty, and the number is greater than 1, then the data link is used as the target transmission link; if the number is equal to 1, then the control link is used as the target transmission link.

[0043] (3) If the congestion levels of the control link and the data link are different, and one of the transmission links is moderate, the target transmission link is selected according to the number.

[0044] Specifically, when the congestion levels of the control link and the data link are different, and one of the transmission links is moderate, if the number is less than or equal to half of the preset maximum number, the control link is used as the target transmission link; if the number is greater than half of the preset maximum number, the data link is used as the target transmission link.

[0045] (4) If there is a faulty link in the control link and the data link, the non-faulty link shall be used as the target transmission link.

[0046] As can be seen, this embodiment can dynamically select the target transmission link for data transmission based on the congestion level and / or the number of Flits, thereby achieving reasonable allocation of network traffic and ensuring the reliability of data transmission.

[0047] Of course, if all transmission links fail, data transmission will stop.

[0048] S150, control the target transmission link to transmit the data stream to be transmitted.

[0049] In this embodiment, the operating status of at least two transmission links is monitored. Based on the operating status of each transmission link, the congestion level of the transmission link is determined. Based on the congestion level and / or number of each transmission link, a target transmission link is selected from the at least two transmission links. It can be seen that when one transmission link is overloaded or fails, data transmission can be carried out through other transmission links, reducing the occurrence of congestion, improving the performance of the on-chip network, and reducing the occurrence of system crashes.

[0050] In one embodiment, the method provided in this application may further include:

[0051] S160, after the source node initiates a status query request, the query parameters in the status query request are sent to the packet processing module corresponding to the source node through the transaction processing module corresponding to the source node, so that the packet processing module corresponding to the source node packages the received information into the data stream to be transmitted to the target node.

[0052] S170: After receiving the query results from the target node through the transaction processing module corresponding to the source node, the query results are fed back to the user.

[0053] In other words, in a status query scenario, a user submits a status query request through the source node. The source node initiates a status query request, and its corresponding transaction processing module sends query parameters, such as the query type and target node information, to its corresponding packet processing module. The packet processing module packages these query parameters to obtain the data stream to be transmitted for the query request and transmits it to the target node via steps S110–S150, enabling the target node to perform the query operation. When the packet processing module receives the query result from the target node, it unpacks the result and sends it back to the source node's corresponding transaction processing module, which then sends the unpacked result back to the user.

[0054] Understandably, S160 and S170 are executed by the transaction processing module corresponding to the source node.

[0055] In one embodiment, the method provided in this application may further include:

[0056] S180: After receiving the query parameters sent by the packet processing module corresponding to the target node through the transaction processing module corresponding to the target node, the query parameters are sent to the status acquisition module so that the status acquisition module can obtain the status information and send the status information to the packet processing module corresponding to the target node so that the packet processing module corresponding to the target node can package the status information into the query result that needs to be responded to the source node.

[0057] In other words, after the packet processing module corresponding to the target node receives the data stream to be transmitted corresponding to the query request, it unpacks the data to obtain the query parameters, and then passes the query parameters to the transaction processing module corresponding to the target node, and finally to the status acquisition module. The status acquisition module queries according to the query parameters, obtains the status information, and passes the status information to the packet processing module corresponding to the target node. The packet processing module of the target node then packages the status information into the data stream to be transmitted corresponding to the query result, and transmits it to the packet processing module corresponding to the source node through steps S110 to S150.

[0058] Understandably, the above S180 is executed by the transaction processing module corresponding to the source node.

[0059] As can be seen, status information can be queried through S160, S180 and S170.

[0060] The packet processing module is responsible for packaging and unpacking sent request or response transactions and receiving data streams to be transmitted. Packaging: The packet processing module segments and packages the data stream according to a predefined protocol, encapsulating it into a format suitable for transmission to ensure that the data is not lost or corrupted during transmission. Unpacking: The module parses out the specific content of the message, such as query type, target node, and status information. After unpacking, the data is sent to the appropriate module for further processing or response.

[0061] The status acquisition module is used to collect the status information of the current node. It employs two modes: passive and active collection, flexibly collecting status information from each computing core based on different status types and requirements. The passive collection mode is suitable for status information with low change frequency and requiring low power consumption. In this mode, external status information is only actively transmitted to the status acquisition module when it changes, rather than being continuously queried or monitored. This approach provides faster response time while ensuring low power consumption, improving the overall system efficiency. The active collection mode is suitable for status information with high change frequency or requiring immediate response to query requests. In this mode, when a status query request is received, the status acquisition module actively reads external status registers or monitoring units to obtain the latest status data. By reducing redundant acquisition operations, this mode effectively reduces power consumption. By flexibly selecting these two modes, the status acquisition module can provide efficient and low-power status data acquisition in different application scenarios.

[0062] Understandably, on-chip networks mainly consist of two core components: network interface (NI) and router. The aforementioned modules are configured in the network interface section, ensuring that basic communication functions are implemented normally without relying on specific routing algorithms and network topologies.

[0063] In summary, this application addresses the bottlenecks in real-time performance, reliability, and power consumption control of traditional on-chip networks by introducing a multi-link architecture, adaptive link management strategies, and status acquisition strategies, providing a more efficient, reliable, and low-power communication solution for multi-core processors and heterogeneous computing platforms.

[0064] Secondly, this application provides an on-chip network node processing device, see [link to relevant documentation]. Figure 2 The device includes:

[0065] The link monitoring module is used to monitor the operating status of at least two transmission links; and to determine the congestion level of each transmission link based on its operating status.

[0066] The quantity acquisition module is used to acquire the quantity of data streams to be transmitted;

[0067] The link selection module is used to select a target transmission link from the at least two transmission links based on the congestion level and / or number of each transmission link.

[0068] The link transmission module is used to control the target transmission link to transmit the data stream to be transmitted.

[0069] In one embodiment, the at least two transmission links include a control link and a data link; the congestion level includes mild, moderate, severe, and faulty; accordingly, the link selection module is configured to perform any of the following: when the congestion levels of the control link and the data link are different and neither is moderate, select the transmission link with the lower congestion level as the target transmission link; when the congestion levels of the control link and the data link are the same and neither is faulty, select the target transmission link according to the quantity; when the congestion levels of the control link and the data link are different and one of the transmission links is moderate, select the target transmission link according to the quantity; when there is a faulty link among the control link and the data link, select the non-faulty link as the target transmission link.

[0070] In one embodiment, the link selection module is specifically used to: if the congestion levels of the control link and the data link are the same and neither is faulty, and the number is greater than 1, then the data link is used as the target transmission link; if the number is equal to 1, then the control link is used as the target transmission link.

[0071] In one embodiment, the link selection module is specifically used to: when the congestion levels of the control link and the data link are different, and one of the transmission links is moderate, when the number is less than or equal to 1 / 2 of a preset maximum number, use the control link as the target transmission link; when the number is greater than 1 / 2 of the preset maximum number, use the data link as the target transmission link.

[0072] In one embodiment, the apparatus further includes:

[0073] The first transaction processing module is used to send the query parameters in the status query request to the packet processing module corresponding to the source node through the transaction processing module corresponding to the source node after the source node initiates the status query request, so that the packet processing module corresponding to the source node packages the received information into the data stream to be transmitted to the target node; after receiving the query result of the target node through the transaction processing module corresponding to the source node, the query result is fed back to the user.

[0074] In one embodiment, the apparatus further includes:

[0075] The second transaction processing module is used to receive the query parameters sent by the packet processing module corresponding to the target node through the transaction processing module corresponding to the target node, and then send the query parameters to the status acquisition module so that the status acquisition module can obtain the status information and send the status information to the packet processing module corresponding to the target node so that the packet processing module corresponding to the target node can package the status information into the query result that needs to be responded to the source node.

[0076] It is understood that explanations, specific implementation methods, beneficial effects, examples, etc. of the contents of the apparatus provided in the embodiments of the present invention can be found in the corresponding parts of the method provided in the first aspect, and will not be repeated here.

[0077] Thirdly, embodiments of the present invention provide a computer-readable medium storing computer instructions, which, when executed by a processor, cause the processor to perform the method provided in the first aspect.

[0078] Specifically, a system or apparatus equipped with a storage medium may be provided, on which software program code implementing the functions of any of the embodiments described above is stored, and the computer (or CPU or MPU) of the system or apparatus may read and execute the program code stored in the storage medium.

[0079] In this case, the program code read from the storage medium can itself implement the function of any of the above embodiments, and therefore the program code and the storage medium storing the program code constitute part of the present invention.

[0080] Examples of storage media used to provide program code include floppy disks, hard disks, magneto-optical disks, optical disks (such as CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, DVD+RW), magnetic tapes, non-volatile memory cards, and ROMs. Alternatively, program code can be downloaded from a server computer via a communication network.

[0081] Furthermore, it should be clear that not only can the program code read by the computer be executed, but also the operating system or other components operating on the computer can be instructed based on the program code to perform some or all of the actual operations, thereby realizing the function of any of the embodiments described above.

[0082] Furthermore, it is understood that the program code read from the storage medium is written to the memory set in the expansion board inserted into the computer or to the memory set in the expansion module connected to the computer. Then, based on the instructions of the program code, the CPU or other components installed on the expansion board or expansion module execute some and all of the actual operations, thereby realizing the function of any of the embodiments described above.

[0083] It is understood that explanations, specific implementation methods, beneficial effects, examples, etc. of the contents in the computer-readable medium provided in the embodiments of the present invention can be found in the corresponding parts of the method provided in the first aspect, and will not be repeated here.

[0084] Fourthly, one embodiment of this specification provides a computing device including a memory and a processor, wherein the memory stores executable code, and when the processor executes the executable code, it implements the method of any embodiment of the specification.

[0085] It is understood that explanations, specific implementation methods, beneficial effects, examples, etc. of the computing device provided in the embodiments of the present invention can be found in the corresponding parts of the method provided in the first aspect, and will not be repeated here.

[0086] Fifthly, one embodiment of this specification provides a computer program product including a computer program that, when executed by a processor, implements the method described in any of the embodiments of the specification.

[0087] It is understood that explanations, specific implementation methods, beneficial effects, examples, etc. of the computer program products provided in the embodiments of the present invention can be found in the corresponding parts of the method provided in the first aspect, and will not be repeated here.

[0088] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the apparatus embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions of the method embodiments.

[0089] Those skilled in the art will recognize that, in one or more of the examples above, the functions described in this invention can be implemented using hardware, software, widgets, or any combination thereof. When implemented in software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or code on a computer-readable medium.

[0090] The specific embodiments described above further illustrate the purpose, technical solution, and beneficial effects of the present invention. It should be understood that the above description is only a specific embodiment of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc., made on the basis of the technical solution of the present invention should be included within the scope of protection of the present invention.

Claims

1. A method for processing on-chip network nodes, characterized in that, include: Monitor the operational status of at least two transmission links; The congestion level of each transmission link is determined based on its operational status. Get the number of data streams to be transmitted; Based on the congestion level and / or number of each of the transmission links, a target transmission link is selected from the at least two transmission links; Control the target transmission link to transmit the data stream to be transmitted.

2. The method according to claim 1, characterized in that, The at least two transmission links include a control link and a data link; the congestion level includes mild, moderate, severe, and faulty. Accordingly, the selection of a target transmission link from the at least two transmission links based on the congestion level and / or number of each transmission link includes any one of the following: When the congestion levels of the control link and the data link are different and neither is moderate, the transmission link with the lower congestion level is selected as the target transmission link. If the congestion levels of the control link and the data link are the same and neither is faulty, the target transmission link is selected according to the quantity. If the congestion levels of the control link and the data link are different, and one of the transmission links is moderate, the target transmission link is selected based on the quantity. If there is a faulty link in the control link and the data link, the non-faulty link shall be used as the target transmission link.

3. The method according to claim 2, characterized in that, When the congestion levels of the control link and the data link are the same and neither is faulty, selecting the target transmission link based on the quantity includes: If the congestion levels of the control link and the data link are the same and neither is faulty, and the number is greater than 1, then the data link is used as the target transmission link; if the number is equal to 1, then the control link is used as the target transmission link.

4. The method according to claim 2, characterized in that, When the congestion levels of the control link and the data link are different, and one of the transmission links is of moderate congestion, selecting a target transmission link based on the quantity includes: When the congestion levels of the control link and the data link are different, and one of the transmission links is moderate, if the number is less than or equal to half of the preset maximum number, the control link is used as the target transmission link; if the number is greater than half of the preset maximum number, the data link is used as the target transmission link.

5. The method according to claim 1, characterized in that, Also includes: After the source node initiates a status query request, the query parameters in the status query request are sent to the packet processing module corresponding to the source node through the transaction processing module corresponding to the source node, so that the packet processing module corresponding to the source node packages the received information into the data stream to be transmitted to the target node. After receiving the query results from the target node through the transaction processing module corresponding to the source node, the query results are fed back to the user.

6. The method according to claim 1, characterized in that, Also includes: After receiving the query parameters sent by the packet processing module of the target node through the transaction processing module of the target node, the query parameters are sent to the status acquisition module so that the status acquisition module can obtain the status information and send the status information to the packet processing module of the target node so that the packet processing module of the target node can package the status information into the query result that needs to be responded to the source node.

7. An on-chip network node processing device, characterized in that, include: The link monitoring module is used to monitor the operating status of at least two transmission links; The congestion level of each transmission link is determined based on its operational status. The quantity acquisition module is used to acquire the quantity of data streams to be transmitted; The link selection module is used to select a target transmission link from the at least two transmission links based on the congestion level and / or number of each transmission link. The link transmission module is used to control the target transmission link to transmit the data stream to be transmitted.

8. A computer-readable storage medium, characterized in that, It stores a computer program that, when executed in a computer, causes the computer to perform the method described in any one of claims 1 to 6.

9. A computing device, characterized in that, The method includes a memory and a processor, wherein the memory stores executable code, and the processor executes the executable code to implement the method described in any one of claims 1 to 6.

10. A computer program product, characterized in that, Includes a computer program that, when executed by a processor, implements the method described in any one of claims 1 to 6.