A state monitoring method and system for network on chip
By configuring the status monitoring module in the on-chip network, the processing and storage of the working status information of the node is integrated, the chip area expansion and layout complexity caused by the increase of pins is solved, and more efficient status monitoring and optimization efficiency is achieved.
Patent Information
- Application Number
- CN202411093224.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-09
- Publication Date
- 2024-12-20
- Estimated Expiration
- 2044-08-09
AI Technical Summary
In the prior art, the node working status information is output by adding chip pins, resulting in the expansion of chip area and complex layout, increasing production costs and manufacturing complexity.
Configure the status monitoring module in the on-chip network, obtain and classify the working status information of the count node through the counter module, and store it in the side storage module, reducing the need for additional pins, and integrate processing and storage inside the chip.
It reduces the chip area, optimizes the layout design, improves overall performance and stability, reduces signal interference and transmission delay, and simplifies system design.
Smart Images

Figure CN118626341B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of data processing, and in particular to a state monitoring method and system for a network on chip. Background Art
[0002] In large digital chips, on-chip networks are used to transmit data between different modules. In order to analyze the transmission performance of on-chip networks, it is necessary to monitor the working status of the nodes connecting different modules in the on-chip network.
[0003] In the related art, the working status information of each node is output mainly by increasing the chip pins. However, each pin needs to occupy a certain space on the chip. As the number of pins increases, the area of the pad will also increase significantly, resulting in a larger chip area, which affects the chip layout and packaging design. A larger chip area means higher production costs and more complex manufacturing processes.
[0004] Therefore, it is urgent to design a technical solution to solve at least one of the above technical problems. Summary of the invention
[0005] The present invention aims at the technical problems existing in the prior art and provides a state monitoring method and system for an on-chip network, so as to solve the problems of chip area expansion, layout and packaging design complexity caused by an increase in the number of pins.
[0006] In a first aspect, an embodiment of the present application provides a state monitoring method for a network on chip, the method being applied to a state monitoring module configured in the network on chip, the state monitoring module comprising at least a counter module and a side storage module; the method comprising:
[0007] Obtain the working status information of each node from the on-chip network;
[0008] Based on the working status information of each node, a counter module is used to classify and count each node to obtain the working status statistical information of each node; wherein the storage structure of the working status statistical information is determined by the functional attributes of each node itself;
[0009] The working status statistical information of each node is stored in the side storage module respectively to monitor the working status of each node; wherein the storage space occupied by the working status statistical information is associated with the storage structure of the working status statistical information.
[0010] In a second aspect, an embodiment of the present application provides a state monitoring system for a network on chip, the state monitoring system comprising at least a counter module and a side storage module; the state monitoring system comprises the following units, wherein:
[0011] An acquisition unit, configured to acquire working status information of each node from the on-chip network;
[0012] The statistical unit is configured to classify and count each node based on the working status information of each node using a counter module to obtain the working status statistical information of each node; wherein the storage structure of the working status statistical information is determined by the functional attributes of each node itself;
[0013] The storage unit is configured to store the working status statistical information of each node in the side storage module respectively, so as to monitor the working status of each node; wherein the size of the storage space occupied by the working status statistical information is associated with the storage structure of the working status statistical information.
[0014] In a third aspect, an embodiment of the present application provides an electronic device, the electronic device comprising:
[0015] at least one processor, memory, and input-output unit;
[0016] The memory is used to store a computer program, and the processor is used to call the computer program stored in the memory to execute the state monitoring method for an on-chip network of the first aspect.
[0017] In a fourth aspect, a computer-readable storage medium is provided, which includes instructions. When the instructions are executed on a computer, the computer executes the status monitoring method for an on-chip network according to the first aspect.
[0018] The beneficial effect of the present invention is that a state monitoring method and system for an on-chip network are provided. In the technical scheme, first, the working state information of each node is obtained from the on-chip network. Then, based on the working state information of each node, a counter module is used to classify and count each node to obtain the working state statistical information of each node. Among them, the storage structure of the working state statistical information is determined by the functional attributes of each node itself. Finally, the working state statistical information of each node is stored in a side storage module respectively to monitor the working state of each node. Among them, the size of the storage space occupied by the working state statistical information is associated with the storage structure of the working state statistical information. The technical scheme of the present application integrates the processing and storage of the working state information into the chip through the state monitoring module and working state statistics configured in the on-chip network, thereby reducing the demand for additional pins, reducing the area occupied by the chip, and improving the chip optimization efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] Figure 1 It is a flow chart of a state monitoring method for a network on chip according to an embodiment of the present application;
[0020] Figure 2 is a structural diagram of a status monitoring module in an embodiment of the present application;
[0021] Figure 3 It is a structural schematic diagram of a target monitoring cycle in an embodiment of the present application;
[0022] Figure 4 is a structural diagram of a status monitoring system for an on-chip network according to an embodiment of the present application;
[0023] Figure 5 is a schematic diagram of the structure of an electronic device according to an embodiment of the present application;
[0024] Figure 6 It is a structural schematic diagram of a medium device according to an embodiment of the present application. DETAILED DESCRIPTION
[0025] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of this application.
[0026] In the description of this application, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features. In the description of this application, "plurality" means two or more, unless otherwise clearly and specifically defined.
[0027] In the description of the present application, the term "for example" is used to mean "used as an example, illustration or description". Any embodiment described as "for example" in the present application is not necessarily to be construed as being more preferred or advantageous than other embodiments. The following description is given to enable any technician in the field to implement and use the present invention. In the following description, details are listed for the purpose of explanation. It should be understood that a person of ordinary skill in the art can recognize that the present invention can be implemented without using these specific details. In other examples, well-known structures and processes will not be elaborated in detail to avoid unnecessary details to obscure the description of the present invention. Therefore, the present invention is not intended to be limited to the embodiments shown, but is consistent with the widest scope consistent with the principles and features disclosed in the present application.
[0028] In the related art, the working status information of each node is output mainly by increasing the chip pins. However, each pin needs to occupy a certain space on the chip. As the number of pins increases, the area of the pad will also increase significantly, resulting in a larger chip area, affecting the layout and packaging design of the chip. For example, the layout of the chip needs to leave enough space to place the pins and their related circuits. Increasing the number of pins may make the originally compact layout sparse, reduce the integration density, and affect the overall performance and functional integration of the chip. For example, in order to meet the increased number of pins, design rules (such as minimum line width, line spacing, etc.) may need to be adjusted, which may lead to more design constraints and affect the flexibility of the overall layout. In addition to the increase in area, the increase in pins will also lead to signal interference and transmission delay problems. The more pins there are, the more serious the interference between signals may be, especially when operating at high speeds, which may affect the overall performance and stability. For example, the increase in the number of pins means an increase in the complexity of signal routing. Design engineers need to consider signal paths more and avoid signal crosstalk, which may lead to more complex wiring designs and longer design cycles. In addition, the increase in pins will also lead to an increase in power consumption. Each pin consumes a certain amount of power when working, especially when transmitting high-frequency signals, the power consumption problem will be more significant. For example, increasing the number of pins may lead to increased power consumption, especially when each pin needs to process additional data or signals. This may affect the overall power budget of the chip, especially in high-performance applications. For example, more pins may lead to increased signal interference, especially in high-frequency applications. Additional measures are needed to ensure signal integrity, such as improving the shielding design of signal lines and using higher quality pin materials. Therefore, it is urgent to design a technical solution to solve at least one of the above technical problems.
[0029] In order to solve at least one technical problem in the related technology, an embodiment of the present application provides a status monitoring method and system for an on-chip network, which is used to integrate the processing and storage of working status information into the chip through a status monitoring module and working status statistics configured in the on-chip network, thereby reducing the need for additional pins.
[0030] In the technical solution provided by the present application, first, the working status information of each node is obtained from the on-chip network. Then, based on the working status information of each node, a counter module is used to classify and count each node to obtain the working status statistical information of each node. Among them, the storage structure of the working status statistical information is determined by the functional attributes of each node itself. Finally, the working status statistical information of each node is stored in a side storage module respectively to monitor the working status of each node. Among them, the size of the storage space occupied by the working status statistical information is associated with the storage structure of the working status statistical information.
[0031] In the technical solution provided by the present application, firstly, by configuring the state monitoring module in the on-chip network, including the counter module and the side storage module, the working state information of the node can be integrated into the internal module for processing and storage, without the need to output these working state information by increasing the chip pins as in the related art, reducing the demand for additional pins, thereby reducing the growth of the chip area. The working state information is classified, counted and counted inside the chip through the counter module, and the statistical results are stored in the side storage module. The processing and storage of the working state information are completed completely inside the chip, reducing the amount of real-time data that needs to be output through the pins. Secondly, since there is no need to allocate an independent pin to each node, the pad area of the chip can be significantly reduced, which can avoid the expansion of the chip area caused by the increase in the number of pins and optimize the layout design of the chip. By integrating the processing and storage of the working state information in the internal module, other important functions can be considered more in the chip layout design, and the efficiency of the overall layout and packaging design of the chip can be improved. In addition, the saved pin and pad area can be used for the layout of other key circuits, optimizing the overall space utilization of the chip. Third, classification counting and status statistics are performed inside the chip, which can process and analyze node status information in real time, avoiding the data transmission bottleneck caused by pin output, making the storage and monitoring of working status information more efficient and flexible. The storage structure of the working status statistics information of each node is determined by the functional attributes of the node itself. This customized storage structure makes the processing of status information more efficient and does not require too many pins for data output and transmission. Fourth, reducing the need for external pins simplifies system design, reduces dependence on external interfaces, and improves the overall stability and reliability of the system. The design of the status monitoring module enables the various modules inside the chip to work better together, improving the overall performance of the system.
[0032] In summary, this application integrates the processing and storage of working status information into the chip through a status monitoring module and working status statistics, thereby reducing the need for additional pins, reducing the area occupied by the chip, and improving chip optimization efficiency.
[0033] The state monitoring scheme for the on-chip network provided in the embodiment of the present application can also be executed by an electronic device, which can be a server, a server cluster, or a cloud server. The electronic device can also be a terminal device such as a mobile phone, a computer, a tablet computer, a wearable device, or a dedicated device (such as a dedicated terminal device with a state monitoring system for the on-chip network, etc.). These electronic devices can also be equipped with the chips introduced in the above embodiments. Alternatively, these electronic devices can also be installed with a service program for executing the state monitoring scheme for the on-chip network.
[0034] Figure 1A flow chart of a state monitoring method for a network on chip provided in an embodiment of the present application is shown in FIG. Figure 1 As shown, the method comprises the following steps:
[0035] 101, obtaining working status information of each node from the on-chip network;
[0036] 102, based on the working status information of each node, using a counter module to classify and count each node to obtain working status statistical information of each node;
[0037] 103. Store the working status statistics of each node in a side storage module to monitor the working status of each node.
[0038] In an embodiment of the present application, the above steps can be applied to a state monitoring module configured in an on-chip network, and the state monitoring module includes at least a counter module and a side storage module. Specifically, the counter module is responsible for collecting working state information from each node and performing classified counting. The counter module can process state data from different nodes, perform statistical operations, and generate relevant statistical data. The side storage module is used to store statistical information generated by the counter module. The side storage module ensures that this information can be retrieved and analyzed during and after system operation to help with state monitoring and performance optimization.
[0039] As an optional embodiment, in 101, obtaining the working status information of each node from the on-chip network means that the system needs to be able to monitor and collect real-time status data of each node. These status data may include information such as the load, flow, delay, error, etc. of the node. The collection operation of these data can be completed through built-in sensors, registers or other monitoring mechanisms. The working status information of the node will be transmitted to the central management module or directly input into the counter module.
[0040] In 102, the function of the counter module is to classify and count the working status information obtained from each node. The working status information of each node will be transmitted to the corresponding counter module for processing. The counter module classifies and counts the nodes according to their different states. For example, the counter can record the number of different types of state changes, such as error events, number of data packet processing, delay timeout, etc. The counter module converts the state information of each node into statistical data, which includes but is not limited to: event frequency, that is, counting the frequency of state changes of each node; event distribution, that is, analyzing the distribution of state changes in time, such as the interval time of state changes.
[0041] In 103, the side storage module is used to store the statistical information generated by the counter module. It is an independent storage area, separate from the main storage area, for recording and saving long-term statistical data. The working status statistical information saved in the storage module may include at least one of the following: status statistics of each node, such as the number of events and time distribution recorded by the counter module. Historical data, long-term saved status data, used for trend analysis and performance monitoring. Monitoring function, the stored statistical information can be used to continuously monitor the working status of each node, provide performance analysis, fault diagnosis and optimization suggestions.
[0042] In the above steps, the counter module can collect and count the working status information of the nodes in real time, providing real-time data for network management. Statistical information can help evaluate the performance of the on-chip network, such as identifying high-load nodes, detecting abnormal behavior, or optimizing data transmission paths. Long-term stored statistical data is helpful for troubleshooting and performance analysis, helping to identify potential problems and formulate improvement measures. The method of using the counter module for classification counting and the side storage module to store statistical information reduces the need for additional pins while retaining important monitoring data. The above method steps allow the status monitoring module to be flexibly configured in the on-chip network, and the configuration of the counter module and the side storage module can be adjusted according to different needs.
[0043] Exemplarily, the input end of the counter module is used to receive at least one of a signal representing a state to be counted in the on-chip network circuit, a clock signal, and a reset signal.
[0044] In the embodiment of the present application, a plurality of adders and triggers are provided inside the counter module. Further optionally, the number of triggers provided in the counter module is the same as the number of signal lines connected to the counter module. Alternatively, the former may be greater than the latter to ensure the processing performance of statistical data. For example, in each clock cycle, if the state of the input single-bit signal is expressed as high, then the statistical values stored in the triggers corresponding to these single-bit signals can be increased by one.
[0045] There is also a timing circuit in the counter module. After a fixed number of clock cycles, it will output a valid signal that lasts for one clock cycle, prompting a certain trigger to send the recorded number to the corresponding side storage module. There is also a counter in the counter module, which increases by one every time the timing circuit outputs a valid signal. The counter is used to indicate which specific trigger should send the recorded number (at the same time, the trigger is cleared in the next clock cycle). The counter module outputs data, address, and data valid.
[0046] In some examples, the side storage module can be implemented using SRAM (Static Random-Access Memory), such as Figure 2 As shown. This is because SRAM is fast and has low read latency, making it ideal for use as cache and temporary storage. SRAM can be read and written quickly, making it suitable for temporary, fast data storage. Alternatively, in some examples, the side storage module can also be implemented using a trigger (such as a D flip-flop). A trigger is a basic storage unit that can store one bit of binary information and maintain this value under the action of an appropriate clock signal. This method saves resources, but the read and write speeds may not be as fast as SRAM. It should be noted that in order to ensure that the system can correctly store the output information of the counter module in the side storage module, the following conditions need to be met:
[0047] Condition 1: The number of storage space addresses of the side storage module is greater than or equal to the number of signal lines connected to the counter module, and these signal lines are used to carry single-bit data bits of working status information. In other words, the number of storage space addresses of the side storage module needs to be greater than or equal to the number of single-bit signal lines representing the status of the counter module. This means that the side storage module needs to have enough storage space to store all the status signals generated by the counter module. If the counter module has N signal lines for representing the status, then the side storage module needs to have at least N storage addresses to store these signals.
[0048] Condition 2: The bit width of the data stored in the side storage module is greater than or equal to the bit width of the trigger in the counter module: The bit width of the data stored in the side storage module needs to be greater than or equal to the bit width of the trigger in the counter module. This ensures that the side storage module can store the maximum value generated by the counter module. With sufficient bit width, the counter module can represent a sufficiently large range of values so that the dynamic changes and performance indicators of each node in the on-chip network can be recorded and stored.
[0049] It should be noted that the counter module may use multiple triggers to store higher values, which requires considering its bit width and number of addresses when designing the side storage module. If the value of the counter exceeds the storage capacity of the side storage module, the system may lose data, resulting in incomplete or unreliable monitoring information. In actual applications, factors such as actual performance, power consumption, and cost need to be considered to determine the type and size of the side storage module. For high-speed and high-performance application scenarios, SRAM is a good choice; for occasions that focus more on resource conservation, triggers can be used to reduce hardware usage. At the same time, the storage space size of the side storage module and the bit width of the trigger should also be determined based on actual application requirements to ensure that the performance requirements of the system and application can be met.
[0050] In the embodiment of the present application, the storage structure of the working status statistical information is determined by the functional attributes of each node itself. For example, the data format, content and organization of the working status statistical information of each node are customized according to the specific functions and characteristics of the node. It is understandable that the functional attributes of a node refer to the specific functions and roles of the node in the on-chip network, such as data processing, caching, switching, computing, etc. These attributes determine the working characteristics and performance requirements of the node. Depending on the functional attributes of the node, the content and structure of the working status statistical information will be different. For example, a data processing node may need to count data flow, processing time and error rate, while a switching node may need to focus on the number of forwarding times, delay and throughput.
[0051] Furthermore, data content, data format, and data organization need to be adaptively set to improve chip performance. Data content refers to the different state information collected by nodes of each functional type. For example, computing nodes may focus on computing load and execution time, while storage nodes may focus on data access frequency and cache hit rate. Data format refers to the storage structure of statistical information, which will be designed according to the required statistical content, such as the number of recorded data packets, delay time, error count, etc. These data formats will be optimized specifically for nodes with specific functions. Data organization refers to the organization of the storage structure, which will also be adjusted according to the node function. For example, for data that requires high-frequency access, it may be designed as an efficient index format; for long-term accumulated data, compression or aggregation may be used. In this way, the customized storage structure can optimize the data collection and processing process according to the functional requirements of each node, thereby improving the efficiency and accuracy of monitoring. By designing a storage structure related to the node function, unnecessary data redundancy and storage overhead can be avoided, making the data more streamlined and efficient. In addition, the customized storage structure can optimize the use of storage space according to specific functional requirements, avoiding the space waste that may be caused by the general storage structure. Through targeted design, data can be stored and accessed more effectively, improving storage and retrieval efficiency.
[0052] In practical applications, designing the storage structure according to the functional attributes of the node can more accurately reflect the working status and performance characteristics of the node. Different types of nodes have different monitoring requirements, and customized storage structures can meet these specific requirements. Therefore, by providing more detailed and specific working status statistics, it is helpful to conduct in-depth analysis of node performance and identify potential problems and optimization points. The storage structure can be dynamically adjusted according to the functional changes of the node or the different network states. For example, if the function of the node changes, its storage structure can be adjusted to adapt to the new monitoring requirements. When the node function is expanded or new functions are added, the storage structure can be flexibly adjusted or expanded to support new status information requirements.
[0053] In the embodiment of the present application, the storage structure of the working status statistical information is determined by the functional attributes of each node, which means that the storage structure of each node will be customized according to its functions and characteristics. This approach can improve the efficiency and accuracy of monitoring, reduce data redundancy, flexibly adapt to different needs, and optimize the use of storage space. In this way, more accurate and efficient on-chip network status monitoring can be achieved.
[0054] In the embodiment of the present application, further optionally, the size of the storage space occupied by the working status statistical information is associated with the storage structure of the working status statistical information. In the embodiment of the present application, different storage structures may use different data types and precisions. For example, statistical data can be stored in integer, floating point or fixed point types. Selecting different data types directly affects the storage space required for each statistical data. Higher precision data usually takes up more space, while lower precision data takes up less space. The number and type of fields contained in the storage structure also determine the size of the storage space. For example, the state statistical information of a node may include multiple fields, such as counter values, timestamps, error codes, etc. With each additional field, the storage demand increases. The storage format of the data (such as raw data, compressed data, structured data) also affects the use of space. Structured data (such as a database with an index) may be more space-saving because it can effectively organize and compress data. And raw data or redundant data may require more storage space.
[0055] For example, storage structures customized to the functional attributes of each node can optimize storage space. For example, for nodes that only need to track a small number of events, a smaller storage structure can be used; while for nodes that need to record a large amount of data, a more complex storage structure may be required to store detailed statistical information.
[0056] For example, the storage structure can be dynamically adjusted according to the node's functions and monitoring requirements. If the working status of the node changes, the storage structure can also be adjusted to adapt to the new requirements, thereby optimizing the use of storage space.
[0057] Depending on the design of the storage structure, the storage system can apply data compression technology. Compression can reduce the storage requirements of data, especially for highly repetitive data fields or redundant information. If the storage structure supports data aggregation (for example, combining multiple state information into a single statistical value), the amount of raw data that needs to be stored can be reduced, thereby saving storage space.
[0058] Through the design of the storage structure, important state information can be selectively stored while ignoring or deleting unnecessary details. This selective storage can further optimize storage space. Assuming that the statistical information of a node only contains a counter value and a timestamp, its storage structure may be very simple and require less storage space. For example, if the counter value is a 32-bit integer and the timestamp is a 64-bit integer, a total of 96 bits (12 bytes) are required to store each record. For nodes that need to record multiple statistical values (such as traffic, delay, error rate, etc.), the storage structure will be more complicated. Assuming that each statistical value requires 4 bytes, if a node needs to record 10 different statistical values, a total of 40 bytes are required to store each record.
[0059] In addition, efficient storage management can be achieved according to the design of the storage structure. For example, some nodes may only require a very simplified storage structure, while other nodes may require a more detailed storage structure to meet different monitoring needs. In this way, optimizing storage space not only saves physical storage resources. Effective storage structure design can improve the efficiency of data access and processing, reduce the burden on the system, and thus improve the performance of the overall system.
[0060] In the embodiment of the present application, the size of the storage space occupied by the working status statistical information is associated with the storage structure, which means that the complexity of the storage structure, the number of fields, the data type and format, etc. will directly affect the storage requirements. By customizing the storage structure according to the node function attributes, the use of storage space can be effectively optimized and the efficiency of data storage and processing can be improved. This method makes storage management more flexible and efficient, while reducing the resource requirements and costs of the system.
[0061] As an optional embodiment, in 101, obtaining the working status information of each node from the on-chip network can be implemented as follows:
[0062] 201, for a first node in the network on chip, receiving a first working state signal of the first node;
[0063] 202. Convert the first working status signal into first working status information in a single-bit form.
[0064] In the embodiment of the present application, steps 201 and 202 describe how to obtain the working status information of each node from the on-chip network. This process includes receiving the working status signal of the node and converting it into the working status information in a single-bit form.
[0065] Optionally, the multiple nodes in the on-chip network include at least: functional modules for implementing different logical functions, and transmission nodes between the multiple functional modules. The first node described below is any one of the multiple nodes and is only used for example.
[0066] In step 201, a working state signal of a first node is received. A working state signal of a first node in the network on chip (i.e., a specific node in the network) is received. The first node may output one or more working state signals, which represent the current working state or behavior characteristics of the node.
[0067] Wherein, the working status signal is associated with the functional attributes of the first node itself. The functional attributes of a node refer to the specific duties, functions or characteristics of the node in the on-chip network. For example, a node may be responsible for tasks such as data processing, storage, communication, control, etc. For example, a computing node is responsible for performing computing tasks, such as mathematical operations or data processing. Communication nodes are responsible for sending and receiving data packets. Storage nodes are used to store data or cache information. Control nodes are used for network management and coordination. This means that the working status signal of a node reflects its specific operation or behavior, such as data processing load, communication status, error flags, etc. The working status signal is extracted from the node through a hardware interface, register reading, or a dedicated monitoring circuit.
[0068] The first working state signal contains information about the current state of the node, which directly reflects the functional attributes of the node. For example, the working state signal of the computing node may indicate the load of the computing task or whether it is currently busy. The working state signal of the communication node may reflect whether the communication is normal, whether the data transmission is successful, or whether there is an error. The signal of the storage node may indicate the usage of the memory, whether the cache is full, or whether the data is damaged. The working state signal of the control node may indicate the working state of the node, whether a control operation is being performed, or whether a fault has been encountered.
[0069] From the perspective of generation, the working status signal is generated by the functional logic inside the node and is usually reflected by the operation and status registers of the node. For example, the counter, status register or monitoring circuit inside the node will generate a signal indicating the current working status.
[0070] In actual applications, the performance and operating status of nodes can be monitored in real time through working status signals. For example, the signal of a computing node can help evaluate whether the computing load exceeds the standard, so as to adjust resource allocation. The status signal of the monitoring node can detect problems in time. For example, if the signal of the communication node shows that the transmission failure rate is too high, it may be necessary to check the network configuration or repair the node failure. Adjust resource allocation according to the working status signal. For example, the status signal of the storage node can help decide whether it is necessary to increase storage capacity or optimize the cache strategy.
[0071] In summary, the working status signal is associated with the functional attributes of the node itself, which means that the content of the signal directly reflects the specific responsibilities and working conditions of the node. By acquiring and analyzing these working status signals, efficient monitoring, performance evaluation and troubleshooting of each node in the on-chip network can be achieved. Converting the signal to a single-bit form further simplifies the processing and storage of status information, so as to facilitate rapid response and optimization adjustments.
[0072] In step 202, the working status signal is converted into working status information in a single-bit form. The single-bit form can be understood as converting the working status signal into working status information in a single-bit (1-bit) form. The single-bit form represents two possible values of the state (for example, 0 or 1), which is usually used to simplify and quickly transmit state information. This conversion process can be implemented by hardware logic circuits, comparators, or other conversion mechanisms to map the received signal into a simple binary value. This may involve processing complex signals into flag bits, such as "active / inactive" or "normal / abnormal" states.
[0073] For example, the conversion operation can depend on the specific functional properties of the node. For example, the working status signal of a node may contain multiple information, but only the most critical part (for example, whether the node is in working state) can be simplified into a single-bit signal. For example, if the node is processing data, its state can be represented as "1" (working), and if the node is idle or in an error state, it can be represented as "0" (idle or faulty).
[0074] Through steps 201 and 202, the process of obtaining and processing working status information from the on-chip network becomes concise and efficient. In 201, working status signals from the first node are received, which are related to the functional attributes of the node. This step ensures that the signal obtained from the node can accurately reflect its current working status. In 202, the received working status signal is converted into information in the form of a single bit. This can simplify data processing, improve system response speed and efficiency, and reduce the complexity of data transmission and storage. This processing method helps to achieve efficient status monitoring and analysis in the on-chip network, allowing the system to quickly obtain the working status information of the node and perform further performance evaluation and troubleshooting when necessary.
[0075] Furthermore, the first working state information is used to indicate the working state type of the first node. This means that the working state information is not just a simple signal value, but is used to describe the specific working state or state type of the node. The working state type refers to the category of the specific working state that the node is currently in. For example, a node can be in a variety of different states, such as "normal operation", "idle", "error state" or "overload", etc. Each state represents a different working mode or behavior of the node.
[0076] The first working state information indicates these different working state types through some form of coding or marking, which can be binary (for example, 0 or 1 indicates a basic state) or more complex coding (for example, multiple bits indicate multiple states).
[0077] Thus, by mapping the working status information to specific working status types, the system can more clearly understand the actual working status of each node. For example, normal operation: the node is performing its functions as expected and has not encountered any problems. Idle: the node is not currently processing any tasks and is in standby state. Overload: the workload of the node exceeds the normal range and requires load balancing or optimization. Error state: the node encounters a fault or error and needs to be repaired or maintained.
[0078] In the embodiment of the present application, these status type information can be used for real-time monitoring and scheduling. For example, if multiple nodes are in an overloaded state, the system can transfer some tasks to idle nodes through a load balancing mechanism, thereby optimizing overall performance. Alternatively, clear classification of status information can also help to quickly diagnose problems. If a node reports an error state, the system can take corresponding troubleshooting measures based on the specific error type.
[0079] It should also be noted that although the working status information can be represented in a more complex manner, in some preferred implementations of the present application, it can be simplified to single-bit information. For example, basic status: 1 indicates that the node is working normally, and 0 indicates that there is a problem with the node (or vice versa). Although this representation is simple, it is sufficient to convey the basic working status. Extended status: For more complex status information, multiple bits may be required to encode, for example, 4 bits can represent 16 different status types.
[0080] Therefore, the first working state information is used to indicate the working state type of the node, that is, the actual working state of the node is classified and identified through a specific coding method. This information not only describes the basic state of the node, but also provides detailed information about its functions and performance. This classification and identification can help the system to perform effective monitoring, resource scheduling and fault diagnosis, thereby improving the stability and performance of the overall system.
[0081] Further optionally, each working state type of the first node corresponds one-to-one to multiple data bits in the first working state information. This means that in order to more accurately represent and distinguish different working state types, the first working state information may not only be a single-bit information, but also contain information of multiple data bits (bits). Each data bit corresponds to a specific working state type. Thus, by using multiple data bits, more working state types can be represented, not just two basic states (such as "on" or "off"). Multiple data bits allow the system to more flexibly define and add new working state types to meet changing system requirements.
[0082] From the correspondence between the working state type and the data bit, each unique working state type has a dedicated data bit corresponding to it. For example, if the first node has four working state types (such as "normal operation", "idle", "overload", and "fault"), then the first working state information may require four data bits to represent these states. Different data bit combinations represent different working state types. For example, binary encoding can be used, where "0001" represents normal operation, "0010" represents idle, "0100" represents overload, and "1000" represents fault.
[0083] This multi-bit working status information may require more complex hardware support, such as multi-bit registers or specific encoding logic. System software needs to be able to parse this multi-bit status information and take appropriate actions based on the parsing results. In large or complex systems that require fine control, multi-bit working status information is particularly important, as it can provide a more detailed and accurate description of the node status. By monitoring multiple working status types, potential problems can be discovered earlier and appropriate preventive measures or recovery strategies can be taken.
[0084] By one-to-one correspondence between each working state type of the first node and multiple data bits in the first working state information, various working states of the node can be monitored and responded to more accurately. This multi-data bit representation method improves the resolution and flexibility of the state information, which is helpful for the fine management and fault prevention of complex systems.
[0085] As an optional embodiment, in 202, converting the first working state signal into first working state information in a single-bit form may be implemented as follows:
[0086] 301, parsing the first working state signal to obtain a target working state type currently located by the first node;
[0087] 302 , obtaining a target data bit corresponding to a target working state type, and setting the target data bit as a corresponding working state identifier to obtain the first working state information.
[0088] In this optional embodiment, the process of converting the first working state signal into the first working state information in single-bit form includes two main steps: parsing the signal and obtaining the target data bit. In 301, the main purpose of parsing the first working state signal is to determine the current working state type of the first node. This step converts the input working state signal into a recognizable state type. First, read the first working state signal, which is usually a signal containing multiple state information, such as binary encoding or other formats. According to the encoding rules of the signal, the signal is decoded into a specific working state type. For example, if the signal is binary encoded, the decoding process will identify the state corresponding to the signal, such as "normal operation", "idle", "overload" or "fault". By parsing the signal, the system can obtain the target working state type that the current first node is in. This state type is usually predefined and clearly identified in the system.
[0089] In 302, there needs to be a mapping table or logic for mapping different working state types to corresponding target data bits. Each state type will correspond to a specific data bit. For example, assume that normal operation corresponds to data bit 0, idle corresponds to data bit 1, overload corresponds to data bit 2, and fault corresponds to data bit 3. According to the state type mapping relationship, the first working state type is mapped to the corresponding data bit. Specifically, the acquired target data bit can be set to the corresponding working state identifier. The working state identifier here is usually a single-bit signal used to represent a simple state of the current state type (such as "on" or "off"). If the target data bit is multi-bit, it may be necessary to further convert it into single-bit information for simplified and standardized representation. For example, if the identifier that needs to represent the "normal working" state can be 1, then the data bit can be set to 1. The above steps help to process and transmit state information more efficiently, especially when it is necessary to simplify data expression and increase processing speed.
[0090] As an optional embodiment, in 102, based on the working status information of each node, a counter module is used to classify and count each node to obtain the working status statistical information of each node, such as Figure 4 As shown, it can be implemented as follows:
[0091] 401, using a counter module to receive first working status information in a single-bit form;
[0092] 402. Determine a target working state type to be updated in a first node according to the first working state information, and perform counting processing on the target working state type to obtain working state statistical information of the first node.
[0093] In this optional embodiment, based on the working status information of each node, a counter module is used to classify and count each node, thereby obtaining the working status statistical information of the node. The following is a detailed description of this process, which is divided into two main steps: receiving the working status information in a single-bit form and counting the target working status type.
[0094] In 401, the counter module receives the working status information from each node, which has been converted into a single-bit form. Each bit represents a specific working state (for example, whether the node is in a certain state, such as "normal operation" or "overload"). The function of the counter module is to receive and process these single-bit signals. It can identify the state represented by each bit and use this state information for statistics and analysis. During the receiving process, data verification may be performed to ensure the accuracy of the received state information. This can prevent data inconsistency due to transmission errors or other problems.
[0095] In 402, according to the received single-bit working state information, the counter module needs to determine the target working state type to be updated in the first node. For example, if the single-bit signal indicates that the working state of the node is "normal operation", then the target working state type is "normal operation". Each bit of information corresponds to a specific working state type. The counter module will classify and process according to these state types. Once the target working state type is determined, the counter module will count the state. For example, if the counter increment of the "normal operation" state is 1, it means that a node has entered the "normal operation" state. By counting each state, the system will generate working state statistics. These statistics include the number of occurrences of each state or the duration of each state, etc. The counter module will continuously update the counting results and record the statistical information. These data can be used for further analysis and decision-making, such as performance evaluation, fault detection or resource optimization.
[0096] In actual applications, icons can also be used to display the working status information of different nodes. Take the count table as an example, list each state and its corresponding count value, such as "normal working: 50 times", "overload: 10 times". Take the bar chart or pie chart as an example, display the count results of each state, such as the percentage of the "normal working" state in the total state.
[0097] In this embodiment, the counter module receives the working status information in single-bit form. This information is a simplified status signal, indicating the working status of each node. Based on this information, the working status type to be updated is determined and counted. Finally, the working status statistics of the node are obtained, which are used for system monitoring, analysis and optimization. This process helps to track and count the working status of the node, providing useful data to support decision-making and performance optimization.
[0098] Further optionally, assuming that the counter module includes at least an adder and a trigger. Based on the above structure, according to the first working state information, determining the target working state type to be updated in the first node, and performing counting processing on the target working state type to obtain the working state statistical information of the first node can be implemented as follows:
[0099] 501, split the first working status information into multiple single-bit data bits, and select a target single-bit data bit to be updated in the first node according to a current value in each single-bit data bit;
[0100] 502, determining a target trigger corresponding to the target single-bit data bit;
[0101] 503, start the target trigger, and accumulate the count value stored in the target trigger through an adder to obtain an updated target count value.
[0102] In this further optional embodiment, it is described in detail how to use a counter module including an adder and a trigger to determine the target working state type to be updated according to the first working state information, and perform counting processing to obtain the working state statistical information of the first node.
[0103] In 501, first, the first working state information is split into multiple single-bit data bits. This step is to decompose the composite working state information into simpler units for subsequent processing and counting. Each single-bit data bit represents a specific working state or part of a state. According to the current value (such as 0 or 1) in each single-bit data bit, the target single-bit data bit to be updated in the first node is selected. This selection process may be based on a preset rule or mapping relationship to ensure that each single-bit data bit corresponds to a specific working state type. In 502, after determining the target single-bit data bit to be updated, the system further determines the target trigger corresponding to this data bit. The trigger here plays the role of storing and updating the count value of a specific working state type. Each trigger may be associated with one or more specific working state types. When a certain working state occurs, the corresponding trigger will be activated to update its stored count value. In 503, once the target trigger is determined, it will be started. Through the adder, the current count value stored in the target trigger is accumulated. This accumulation process reflects the increase in the number of occurrences or duration of the working state type. The adder plays a key computational role here, adding the new count increment to the original count value stored in the trigger to obtain the updated target count value. This new count value is then stored back in the trigger for subsequent query and analysis.
[0104] Through this embodiment, we can see how to split complex working status information into simple single-bit data bits, and perform accurate counting and statistics through the combination of triggers and adders. This method not only improves the accuracy and efficiency of counting, but also provides strong data support for system performance analysis and optimization.
[0105] It should be noted that the specific steps and details in this embodiment may be adjusted according to different actual application scenarios and system designs.
[0106] In the embodiment of the present application, the target single-bit data bit is set to a valid value corresponding to the target working state type. This means that each working state type has an associated single-bit data bit representation, and when the working state occurs, the corresponding single-bit data bit will be set to a specific valid value. For example, the valid value is 1, which indicates that the state is in an activated state, while 0 indicates an inactivated state.
[0107] In the embodiment of the present application, each single-bit data bit corresponds to a trigger in the counter module. This method helps to monitor and count each working state in a refined manner. Specifically, the correspondence between the single-bit data bit and the working state type. A set of mapping relationships is predefined to map each working state type to a specific single-bit data bit.
[0108] When a certain working state occurs, the corresponding single-bit data bit is set to a valid value (such as 1) to indicate that the state is currently active. Each trigger in the counter module is associated with a specific single-bit data bit. When a single-bit data bit is set to a valid value, the corresponding trigger is activated. After the trigger is activated, a series of operations will be triggered, such as accumulating the count value through an adder to record the number of occurrences or duration of the working state. The advantage of this method is that it can achieve fine monitoring and efficient counting of the working state of the node. By associating the working state information with specific single-bit data bits and triggers, the system can quickly identify and respond to changes in various working states, thereby providing accurate data support for performance analysis, fault detection, and resource optimization.
[0109] In general, the embodiments of the present application implement an efficient and accurate working status monitoring and counting mechanism by cleverly mapping working status information to single-bit data bits and triggers. This mechanism is of great significance for improving the stability and performance of the system.
[0110] Further optionally, it is assumed that the counter module also includes a timing module. Based on this assumption, the working status statistical information of each node is stored in the side storage module respectively, which can be implemented as the following steps:
[0111] 601, sending the target count value stored in the target trigger to the side storage module according to the transmission cycle set in the timing module;
[0112] 602. Store the target count value into the storage space corresponding to the first node through a side storage module.
[0113] In this further optional embodiment, the counter module also includes a timing module for periodically storing the working status statistical information in the side storage module.
[0114] In 601, the timing module is responsible for setting a fixed transmission cycle or time interval. This means that data transmission and storage operations will be automatically performed within the set time interval. For example, the timing module may be set to transmit data every 5 minutes, or at a specific time point (such as every hour on the hour). When the predetermined transmission cycle is reached, the timing module will send a signal to trigger the data transmission process. At the moment the timing module is triggered, the currently stored target count value will be read from the target trigger. The target count value represents the number of occurrences of the working state or other relevant statistical data recorded within the set period. The read target count value is sent to the side storage module through the data transmission interface. This transmission process is usually automated to ensure that the data can be transmitted to the side storage module accurately and in a timely manner.
[0115] In 602, the side storage module receives the target count value transmitted from the counter module. The side storage module is a module for long-term data storage, which has a large storage capacity and stable data storage capability. Each node usually has a corresponding storage space for storing its specific working status statistics. The side storage module needs to store the data in the correct storage space to ensure the accuracy of data organization and retrieval. Finally, the target count value is written to the corresponding storage space. This process may involve saving the data in a specific format (such as a table, log file, etc.) to facilitate subsequent query and analysis. The side storage module will provide data management functions, including data backup, recovery, and access control to ensure the security and integrity of the stored data.
[0116] This embodiment uses the timing module and the side storage module to achieve the periodic storage of the working status statistics. In 601, through the transmission cycle set by the timing module, the system automatically reads the count value in the target trigger and sends it to the side storage module. This step ensures the automation and periodicity of data transmission. In 602, the side storage module receives and stores these count values in the corresponding storage space to ensure the long-term preservation and management of data. In this way, it can ensure that the working status statistics of the system can be stored and managed regularly and reliably, providing valuable data support for system performance analysis, historical data retrieval and fault tracking.
[0117] In the embodiment of the present application, it is assumed that there is a concept called a period. A period is defined as the number of clock cycles between the last time a trigger is selected to output data and the time it is selected to output data in the counter module. This period is referred to as the target monitoring period below. Figure 3As shown in the figure, the target monitoring period is 1024 clock cycles, and the working status to be monitored in each target monitoring period is recorded as four count values, such as value[0], value[1], value[2], and value[3]. Each count value corresponds to a register for storing the count value, which records the count values in different clock cycles (such as previous period).
[0118] Further optionally, in 503, the target trigger is started, and the count value stored in the target trigger is accumulated by the adder to obtain the updated target count value. Then, a timing module can be used to count the number of clock cycles of each trigger updating the count value within the target monitoring period. Then, based on the number of clock cycles of updating the count value, the monitoring indicators corresponding to different working states in each node are obtained.
[0119] In a further optional embodiment, it is assumed that the counter module includes a timing module in addition to an adder and a trigger. In this case, the timing module is used to count the number of clock cycles in which the trigger updates the count value within the target monitoring period. Furthermore, based on these clock cycle numbers, monitoring indicators corresponding to different working states in each node can be obtained. When the system recognizes a certain working state, the target trigger is activated. The adder performs a cumulative operation on the count value stored in the target trigger to calculate the updated target count value. This process records the number of times the working state occurs or other related statistical data.
[0120] Among them, the timing module is responsible for recording the number of clock cycles of the target trigger within the target monitoring period. The number of clock cycles is a unit of measurement for the timing module to track the update operation of the trigger. The timing module will set a target monitoring period, for example, it can be a preset number of clock cycles, such as 256 clock cycles, 512 clock cycles, 1024 clock cycles. Or, it can be per microsecond, per second, per minute, etc. This period is used to measure the frequency and duration of trigger updates during this period. The timing module monitors the activity of the trigger during this monitoring period, and counts the number of times the trigger updates the count value or the number of clock cycles that have passed. These data reflect the update frequency and activity of the trigger within the target monitoring period.
[0121] Monitoring indicators are various performance indicators or status indicators calculated based on the number of clock cycles. These indicators can be used to evaluate the working status of the node and its changing trend. Based on the number of clock cycles and the update count value, some key monitoring indicators can be calculated. For example, the update frequency of the trigger, the duration of the working state, or other performance indicators are calculated. These monitoring indicators provide in-depth analysis of the working status of the node. For example, if the trigger of a working state is frequently updated during the monitoring period, it may mean that the state is more common or problems occur frequently; conversely, a low update frequency may mean that the state is more stable or does not occur often.
[0122] Exemplarily, assume that the monitoring period of the timing module is set to 1 hour, and the target trigger of a node is updated 100 times within this hour. The timing module records the number of clock cycles corresponding to these 100 updates (for example, 3000 clock cycles). Based on these data, at least one of the following monitoring indicators can be calculated: update frequency, such as the number of updates per hour, that is, 100 updates. State duration, the state duration or stability index can be calculated by combining the update frequency and the number of cycles. Performance analysis, by comparing the monitoring indicators of different nodes or different working states, performance evaluation, trend analysis and fault warning can be performed.
[0123] In this further embodiment, a more comprehensive working status monitoring and analysis is achieved by combining the timing module with the trigger and the adder. The trigger and the adder record and accumulate the target count value. The timing module counts the number of clock cycles of the trigger within the target monitoring period. Based on the number of clock cycles and the count value, the working status monitoring index of the node is calculated to perform performance analysis and status evaluation. This extended mechanism not only enhances the system's ability to monitor the working status, but also provides detailed data support, which helps to better understand and optimize the operating status of the system.
[0124] Further optionally, the monitoring index includes: the ratio between the number of clock cycles in which different working states of each node appear in the target monitoring period and the total number of clock cycles in the target monitoring period. The ratio is used for at least one of load balancing, performance bottleneck, traffic transmission characteristics, state evaluation parameters, change trend analysis, resource allocation, and long / short cycle change trend in the target monitoring period.
[0125] In a further optional embodiment, the monitoring index includes the ratio between the number of clock cycles that occur in different working states of each node within the target monitoring period and the total number of clock cycles within the target monitoring period. This ratio can be used for a variety of performance analysis and system optimization tasks, such as load balancing, performance bottleneck identification, flow transmission characteristics analysis, state assessment, change trend analysis, resource allocation optimization, and long / short cycle change trend analysis. That is, the number of clock cycles that occur, the number of clock cycles that a certain working state occurs within the target monitoring period. This is the active time of a certain working state trigger recorded by the timing module within the monitoring period. That is, the total number of clock cycles within the target monitoring period, the total number of clock cycles of the entire monitoring period, represents all the time within the period.
[0126] For example, during the load balancing process, by comparing the ratios of the working states on different nodes, the distribution of the node load can be determined. For example, if the ratio of a certain working state of a node is high, it may indicate that the node is heavily loaded and resources need to be reallocated to achieve load balancing. According to the changes in the ratio, the load balancing strategy is adjusted to balance the load between nodes and improve the overall stability and efficiency of the system.
[0127] In the process of performance bottleneck, the performance bottleneck can be identified by analyzing the ratio. If the ratio of a certain working state is very high, it may mean that the state occurs frequently, resulting in the degradation of node performance. After identifying the bottleneck, optimization measures can be taken, such as adjusting the system configuration, optimizing the code, and increasing hardware resources, to improve system performance. In the process of traffic transmission characteristics, the ratio can help analyze the transmission characteristics of data traffic. For example, a high ratio may indicate a period or state of high data traffic. Adjust the network configuration or transmission strategy according to the traffic characteristics to improve data transmission efficiency and reduce latency. In the process of status assessment, the ratio reflects the proportion of a certain working state in the entire monitoring cycle, which helps to assess the health status of the system. For example, a high ratio may indicate that the system is in an abnormal state or is overloaded. Based on the status assessment results, a maintenance plan is formulated or preventive measures are taken to ensure the stability and reliability of the system. In the process of change trend analysis, the change trend of the working state can be analyzed by tracking the change of the ratio over time. For example, a gradual increase in the ratio of a certain state may indicate an increase in system load or an expansion of faults. Use historical data trends to predict future system behavior and take adjustment measures in time. In the process of resource allocation, the ratio is used to decide how to allocate system resources. A working state with a high ratio may require more resource support, while a state with a low ratio can reduce resource allocation accordingly. Adjust resource allocation strategies, such as increasing or decreasing computing, storage, and network bandwidth, to improve the overall efficiency and performance of the system. During the long / short cycle trend analysis process, analyze the ratio changes over a longer time scale to understand the performance and stability of the system over different long periods. Analyze the ratio changes over a shorter time scale to understand the load changes and system dynamics in the short term.
[0128] In summary, by calculating and analyzing the ratio, that is, the ratio between the number of clock cycles in which a certain working state occurs within the target monitoring period and the total number of clock cycles. Load balancing helps identify and adjust the load distribution. Performance bottlenecks locate performance bottlenecks and optimize the system. Traffic transmission analyzes data traffic characteristics and optimizes transmission. Status assessment evaluates the health of the system and formulates maintenance strategies. Trend analysis analyzes the trend of changes in working status and makes predictions. Resource allocation optimizes resource allocation and improves system efficiency. Long / short cycle analysis understands the performance of the system at different time scales. This detailed monitoring and analysis helps to fully understand the operating status of the system, optimize system performance, improve resource utilization efficiency, and ensure system stability and reliability.
[0129] In actual applications, the counter module counts the number of clock cycles that appear in each state in the current cycle, and the side storage module stores the data in the previous cycle. Because the current cycle is generally in progress, only the data in the previous cycle will be read when reading data. This corresponds to the data in the side storage module. By providing read enable and read address, the side storage module will output the read valid and read data, and finally output it through the existing data interface on the chip.
[0130] In actual systems, the counter module continuously counts the number of clock cycles that occur in each working state in the current cycle. However, since the current cycle is usually still in progress, it is impossible to obtain complete statistics before the end of this cycle. Therefore, the side storage module usually stores the data in the previous cycle.
[0131] The main function of the side storage module is to store periodic performance statistics for analysis and processing after the current cycle ends. These data may include, but are not limited to: performance indicators, the frequency, duration, response time, etc. of each working state. Among them, the performance indicators at least include system health, fault information, and parameter configuration information. System health at least includes system stress level, utilization, etc. Fault information at least includes fault frequency, duration, impact range, etc. Parameter configuration information is used to reflect the change history of system configuration parameters, such as the allocation of resources such as CPU, memory, and network.
[0132] When data needs to be read, the side storage module will operate through the following steps. Provide Read Enable (ReadEnable) The system requests to read data by sending a signal, which is usually called Read Enable. After receiving this signal, the side storage module will prepare for the read operation. Provide Read Address (Read Address) The system needs to specify the storage address of the specific data to be read, that is, the read address. This address is usually a pointer or index that points to the part of the data stored in the side storage module. Output Read Valid and Read Data When the side storage module receives the Read Enable and Read Address, it will output a Read Valid signal and send the data corresponding to the address to the specified data interface. Output through the data interface Finally, these read data will be output to the external device or system through the data interface that has been defined on the chip for further processing and analysis.
[0133] System monitoring can monitor the performance and health of the system by analyzing data. Fault prediction and anomaly detection can identify potential faults and abnormal patterns of the system. Performance optimization can adjust the system configuration to optimize its performance based on data trends. Decision support provides real-time data support to management to make better decisions.
[0134] Through the read operation of the side storage module, the working status statistics of the previous cycle can be obtained regularly. In this way, even before the end of the cycle, timely data can be provided to support monitoring, analysis and optimization of system performance and operation status.
[0135] Further optionally, before using the timing module to count the number of clock cycles for each trigger to update the count value within the target monitoring cycle, the duration of the target monitoring cycle can be adjusted to change the monitoring sparsity of each node within the target monitoring cycle. Then, the state data of each node within the target monitoring cycle is aggregated to optimize the number of clock cycles of the count value.
[0136] For example, if there are too many states to be counted, or if the data interface has too few clock cycles left for the performance counter to output data, the cycle is increased to make the output of the performance counter more sparse in the time dimension.
[0137] In a further embodiment, not only the timing module is used to count the number of clock cycles of each trigger updating the count value within the target monitoring cycle, but also the sparsity of each node monitoring is changed by adjusting the duration of the target monitoring cycle. This adjustment can help optimize the number of clock cycles of the count value, thereby improving the overall monitoring effect of the system. The target monitoring cycle refers to the time period used by the system to collect data and count the trigger update count value. Its length determines the frequency and granularity of data collection. Changing the monitoring sparsity Adjusting the duration of the target monitoring cycle can affect the sparsity of the monitoring data. For example, a shorter monitoring cycle provides more detailed and more frequent data updates, while a longer cycle provides more sparse data updates. Optimizing resource utilization By adjusting the length of the monitoring cycle, the accuracy of data collection and the use of system resources can be balanced. For example, frequent data collection may increase the system load, while a longer cycle reduces the amount of data and system overhead. Cycle configuration configures an appropriate target monitoring cycle duration according to system requirements and resource conditions. This can be a static setting or dynamically adjusted according to real-time requirements. Flexible adjustment can adjust the duration of the monitoring cycle according to the changing requirements of the system (such as load increase or decrease) at runtime, thereby optimizing the monitoring strategy.
[0138] The timing module is responsible for recording the number of clock cycles of the trigger update count value within the target monitoring period. Therefore, the timing module can be used to obtain the trigger frequency, update times, and number of clock cycles of each trigger within the monitoring period.
[0139] Comprehensive analysis aggregates the status data of each node within the target monitoring cycle to comprehensively analyze the performance and status of each node. Optimization strategy can identify overall performance bottlenecks, load distribution and other system behaviors by aggregating data, thereby optimizing monitoring strategies and system configurations. Data integration aggregates the monitoring data of each node into a central management system or database for overall analysis and comparison. Statistical analysis performs statistical analysis on the aggregated data, such as calculating the average load of each node, the frequency of state occurrence, etc., so as to formulate optimization strategies.
[0140] Adjust monitoring frequency Based on the analysis results of aggregated data, optimize the duration of the target monitoring cycle. For example, if some nodes are often under high load, their monitoring cycle can be shortened to collect data more frequently. Resource allocation Adjust the allocation of system resources based on statistical results. For example, more computing resources can be allocated to nodes with higher loads to balance the load. Dynamic adjustment The system can dynamically adjust the duration of the target monitoring cycle based on real-time data to cope with changing workloads or states. Policy adjustment Updates the monitoring policy based on the optimization results, such as increasing or decreasing the data sampling frequency, adjusting data processing and storage policies, etc.
[0141] By adjusting the duration of the target monitoring cycle to change the monitoring sparsity, you can improve the granularity or sparsity of the data. Adjust the monitoring cycle according to actual needs to optimize the frequency of data collection. Use a balanced system load and data collection requirements to improve system performance and efficiency. Through data aggregation and analysis, identify the system's performance bottlenecks and load distribution, thereby optimizing system configuration and monitoring strategies. This flexible monitoring and data optimization strategy can effectively improve system performance and stability, make resource utilization more efficient, and ensure that the health status of the system is monitored in a timely and accurate manner.
[0142] In an embodiment of the present application, a state monitoring method for an on-chip network is provided, which obtains the working state information of each node from the on-chip network; based on the working state information of each node, a counter module is used to classify and count each node to obtain the working state statistical information of each node; wherein the storage structure of the working state statistical information is determined by the functional attributes of each node itself; the working state statistical information of each node is stored in a side storage module respectively to monitor the working state of each node; wherein the size of the storage space occupied by the working state statistical information is associated with the storage structure of the working state statistical information. The method integrates the processing and storage of the working state information into the chip through the state monitoring module and the working state statistics, thereby reducing the demand for additional pins, reducing the area occupied by the chip, and improving the chip optimization efficiency.
[0143] In another embodiment of the present application, a state monitoring system for a network on chip is provided, wherein the state monitoring system comprises at least a counter module and a side storage module; see Figure 4 The state monitoring system comprises the following units:
[0144] An acquisition unit, configured to acquire working status information of each node from the on-chip network;
[0145] The statistical unit is configured to classify and count each node based on the working status information of each node using a counter module to obtain the working status statistical information of each node; wherein the storage structure of the working status statistical information is determined by the functional attributes of each node itself;
[0146] The storage unit is configured to store the working status statistical information of each node in the side storage module respectively, so as to monitor the working status of each node; wherein the size of the storage space occupied by the working status statistical information is associated with the storage structure of the working status statistical information.
[0147] Further optionally, the acquisition unit acquires the working status information of each node from the on-chip network and is configured to:
[0148] For a first node in the network on chip, receiving a first working state signal of the first node; the first working state signal is associated with a functional attribute of the first node itself;
[0149] Converting the first working state signal into first working state information in a single-bit form;
[0150] The first working state information is used to indicate the working state type of the first node.
[0151] Further optionally, each working status type of the first node corresponds one-to-one to a plurality of data bits in the first working status information.
[0152] Further optionally, the acquiring unit converts the first working state signal into the first working state information in a single-bit form, and is configured to:
[0153] Parsing the first working state signal to obtain a target working state type currently located at the first node;
[0154] A target data bit corresponding to a target working state type is acquired, and the target data bit is set as a corresponding working state identifier to obtain the first working state information.
[0155] Further optionally, the multiple nodes in the on-chip network include at least: functional modules for implementing different logical functions, and transmission nodes between the multiple functional modules.
[0156] Further optionally, the statistical unit, based on the working status information of each node, uses a counter module to classify and count each node to obtain the working status statistical information of each node, and is configured as follows:
[0157] Using a counter module to receive the first working state information in a single-bit form;
[0158] According to the first working state information, a target working state type to be updated in the first node is determined, and counting processing is performed on the target working state type to obtain working state statistical information of the first node.
[0159] Further optionally, the counter module includes at least an adder and a trigger; and the statistical unit determines the target working state type to be updated in the first node according to the first working state information, and performs counting processing on the target working state type to obtain the working state statistical information of the first node, and is configured as follows:
[0160] Splitting the first working state information into a plurality of single-bit data bits, and selecting a target single-bit data bit to be updated in the first node according to a current value in each single-bit data bit; wherein the target single-bit data bit is set to a valid value corresponding to the target working state type;
[0161] Determine a target trigger corresponding to the target single-bit data bit; wherein each single-bit data bit corresponds to a trigger in a counter module;
[0162] The target trigger is started, and the count value stored in the target trigger is accumulated through an adder to obtain an updated target count value.
[0163] Further optionally, the counter module further includes a timing module; a storage unit, which stores the working status statistical information of each node in the side storage module respectively, and is configured as follows:
[0164] According to the transmission cycle set in the timing module, the target count value stored in the target trigger is sent to the side storage module;
[0165] The target count value is stored in the storage space corresponding to the first node through the side storage module.
[0166] Further optionally, after the statistical unit starts the target trigger and accumulates the count value stored in the target trigger through the adder to obtain the updated target count value, it is further configured to:
[0167] The timing module is used to count the number of clock cycles of each trigger updating the count value within the target monitoring period;
[0168] Based on the number of clock cycles of the updated count value, the monitoring indicators corresponding to different working states in each node are obtained.
[0169] Further optionally, the monitoring indicators include: the ratio of the number of clock cycles in which different working states of each node occur within the target monitoring period to the total number of clock cycles within the target monitoring period; the ratio is used for at least one of load balancing, performance bottlenecks, traffic transmission characteristics, state evaluation parameters, change trend analysis, resource allocation, and long / short cycle change trends within the target monitoring period.
[0170] Further optionally, the statistical unit, before using the timing module to count the number of clock cycles for each trigger to update the count value within the target monitoring period, is further configured to:
[0171] Adjust the duration of the target monitoring period to change the monitoring sparsity of each node within the target monitoring period;
[0172] Aggregate the status data of each node within the target monitoring period to optimize the number of clock cycles of the count value.
[0173] Further optionally, the number of storage space addresses of the side storage module is greater than or equal to the number of signal lines of the access counter module, and the signal lines are used to carry single-bit data bits of the working status information.
[0174] Further optionally, the bit width of the data stored in the side storage module is greater than or equal to the bit width of the trigger used to store the value in the counter module.
[0175] Further optionally, the number of triggers provided in the counter module is the same as the number of signal lines connected to the counter module.
[0176] The system can implement various steps in the above method embodiment, which will not be expanded here.
[0177] In the embodiment of the present application, the acquisition unit is configured to obtain the working status information of each node from the on-chip network; the statistical unit is configured to classify and count each node based on the working status information of each node using a counter module to obtain the working status statistical information of each node; wherein the storage structure of the working status statistical information is determined by the functional attributes of each node itself; the storage unit is configured to store the working status statistical information of each node in a side storage module respectively to monitor the working status of each node; wherein the size of the storage space occupied by the working status statistical information is associated with the storage structure of the working status statistical information. The system integrates the processing and storage of the working status information into the chip through the status monitoring module and working status statistics configured in the on-chip network, thereby reducing the demand for additional pins, reducing the area occupied by the chip, and improving the chip optimization efficiency.
[0178] See also Figure 5 , Figure 5 Schematic diagram of an electronic device provided by an embodiment of the present invention. Figure 5 As shown, an embodiment of the present invention provides an electronic device 500, including a memory 510, a processor 5102, and a computer program 511 stored in the memory 510 and executable on the processor 5102. When the processor 5102 executes the computer program 511, the following steps are implemented: obtaining working status information of each node from the on-chip network; based on the working status information of each node, using a counter module to classify and count each node to obtain working status statistical information of each node; wherein the storage structure of the working status statistical information is determined by the functional attributes of each node itself; the working status statistical information of each node is stored in a side storage module respectively to monitor the working status of each node; wherein the size of the storage space occupied by the working status statistical information is associated with the storage structure of the working status statistical information.
[0179] See also Figure 6 , Figure 6 A schematic diagram of an embodiment of a computer-readable storage medium provided in an embodiment of the present invention. Figure 6As shown, this embodiment provides a computer-readable storage medium 600, on which a computer program 611 is stored. When the computer program 611 is executed by a processor, the following steps are implemented: obtaining working status information of each node from the on-chip network; based on the working status information of each node, using a counter module to classify and count each node to obtain working status statistical information of each node; wherein the storage structure of the working status statistical information is determined by the functional attributes of each node itself; the working status statistical information of each node is stored in a side storage module respectively to monitor the working status of each node; wherein the size of the storage space occupied by the working status statistical information is associated with the storage structure of the working status statistical information.
[0180] It should be noted that in the above embodiments, the description of each embodiment has its own emphasis, and for parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0181] It will be appreciated by those skilled in the art that embodiments of the present invention may be provided as methods, systems, or computer program products. Therefore, the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Furthermore, the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0182] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded computer, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0183] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0184] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0185] Although the preferred embodiments of the present invention have been described, those skilled in the art may make other changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the present invention.
[0186] Obviously, those skilled in the art can make various changes and modifications to the present invention without departing from the spirit and scope of the present invention. Thus, if these modifications and variations of the present invention fall within the scope of the claims of the present invention and their equivalents, the present invention is also intended to include these modifications and variations.
Claims
1. A state monitoring method for a network on chip, characterized in that: The method is applied to a state monitoring module configured in an on-chip network, wherein the state monitoring module at least includes a counter module and a side storage module; the method includes: Obtain the working status information of each node from the on-chip network; Based on the working status information of each node, a counter module is used to classify and count each node to obtain the working status statistical information of each node; wherein the storage structure of the working status statistical information is determined by the functional attributes of each node itself; The working status statistics of each node are stored in the side storage module respectively to monitor the working status of each node; wherein the storage space occupied by the working status statistics is associated with the storage structure of the working status statistics; Wherein, based on the working status information of each node, a counter module is used to classify and count each node to obtain the working status statistical information of each node, including: Using a counter module to receive the first working state information in a single-bit form; Determine, according to the first working state information, a target working state type to be updated in the first node, and perform counting processing on the target working state type to obtain working state statistical information of the first node; The counter module includes at least an adder and a trigger; the target working state type to be updated in the first node is determined according to the first working state information, and the target working state type is counted to obtain the working state statistical information of the first node, including: Splitting the first working state information into a plurality of single-bit data bits, and selecting a target single-bit data bit to be updated in the first node according to a current value in each single-bit data bit; wherein the target single-bit data bit is set to a valid value corresponding to the target working state type; Determine a target trigger corresponding to the target single-bit data bit; wherein each single-bit data bit corresponds to a trigger in a counter module; The target trigger is started, and the count value stored in the target trigger is accumulated through an adder to obtain an updated target count value.
2. The state monitoring method for a network on chip according to claim 1, characterized in that: The obtaining of the working status information of each node from the on-chip network includes: For a first node in the network on chip, receiving a first working state signal of the first node; the first working state signal is associated with a functional attribute of the first node itself; Converting the first working state signal into first working state information in a single-bit form; The first working state information is used to indicate the working state type of the first node.
3. The state monitoring method for a network on chip according to claim 2, characterized in that: Each working state type of the first node corresponds one-to-one to a plurality of data bits in the first working state information.
4. The state monitoring method for a network on chip according to claim 3, characterized in that: The converting the first working state signal into the first working state information in a single-bit form includes: Parsing the first working state signal to obtain a target working state type currently located at the first node; A target data bit corresponding to a target working state type is acquired, and the target data bit is set as a corresponding working state identifier to obtain the first working state information.
5. The state monitoring method for a network on chip according to claim 2, characterized in that: The multiple nodes in the on-chip network include at least: functional modules for implementing different logical functions, and transmission nodes between the multiple functional modules.
6. The state monitoring method for a network on chip according to claim 1, characterized in that: The counter module also includes a timing module; The step of storing the working status statistical information of each node in the side storage module includes: According to the transmission cycle set in the timing module, the target count value stored in the target trigger is sent to the side storage module; The target count value is stored in the storage space corresponding to the first node through the side storage module.
7. The state monitoring method for a network on chip according to claim 1, characterized in that: After the target trigger is started and the count value stored in the target trigger is accumulated by an adder to obtain an updated target count value, the method further includes: The timing module is used to count the number of clock cycles of each trigger updating the count value within the target monitoring period; Based on the number of clock cycles of the updated count value, the monitoring indicators corresponding to different working states in each node are obtained.
8. The state monitoring method for a network on chip according to claim 7, characterized in that: The monitoring index includes: the ratio between the number of clock cycles in which different working states of each node appear in the target monitoring period and the total number of clock cycles in the target monitoring period; The ratio is used for at least one of load balancing, performance bottleneck, traffic transmission characteristics, state evaluation parameters, change trend analysis, resource allocation, and long / short period change trends within a target monitoring period.
9. The state monitoring method for a network on chip according to claim 7, characterized in that: Before the timing module is used to count the number of clock cycles of each trigger updating the count value within the target monitoring period, the method further includes: Adjust the duration of the target monitoring period to change the monitoring sparsity of each node within the target monitoring period; Aggregate the status data of each node within the target monitoring period to optimize the number of clock cycles of the count value.
10. The state monitoring method for a network on chip according to any one of claims 1 to 9, characterized in that: The number of storage space addresses of the side storage module is greater than or equal to the number of signal lines of the access counter module, and the signal lines are used to carry single-bit data bits of the working status information.
11. The state monitoring method for a network on chip according to any one of claims 1 to 9, characterized in that: The bit width of the data stored in the side storage module is greater than or equal to the bit width of the trigger in the counter module.
12. The state monitoring method for a network on chip according to any one of claims 1 to 9, characterized in that: The number of triggers set in the counter module is the same as the number of signal lines connected to the counter module.
13. A state monitoring system for a network on chip, characterized in that: The state monitoring system at least includes a counter module and a side storage module; the state monitoring system includes the following units, wherein: An acquisition unit, configured to acquire working status information of each node from the on-chip network; The statistical unit is configured to classify and count each node based on the working status information of each node using a counter module to obtain the working status statistical information of each node; wherein the storage structure of the working status statistical information is determined by the functional attributes of each node itself; A storage unit is configured to store the working status statistics of each node in a side storage module, respectively, to monitor the working status of each node; wherein the size of the storage space occupied by the working status statistics is associated with the storage structure of the working status statistics; The statistical unit, based on the working status information of each node, uses a counter module to classify and count each node to obtain the working status statistical information of each node, and is configured as follows: A counter module is used to receive first working state information in a single-bit form; according to the first working state information, a target working state type to be updated in the first node is determined, and the target working state type is counted to obtain working state statistical information of the first node; The counter module includes at least an adder and a trigger; the statistical unit determines the target working state type to be updated in the first node according to the first working state information, and performs counting processing on the target working state type to obtain the working state statistical information of the first node, and is configured as follows: The first working state information is split into multiple single-bit data bits, and according to the current value in each single-bit data bit, the target single-bit data bit to be updated in the first node is selected; wherein the target single-bit data bit is set to a valid value corresponding to the target working state type; a target trigger corresponding to the target single-bit data bit is determined; wherein each single-bit data bit corresponds to a trigger in a counter module; the target trigger is started, and the count value stored in the target trigger is accumulated through an adder to obtain an updated target count value.
14. An electronic device, characterized in that: include: Memory for storing computer software programs; A processor is used to read and execute the computer software program, thereby implementing the state monitoring method for on-chip network described in any one of claims 1-12.
15. A computer-readable storage medium, characterized in that: The storage medium stores a computer software program, and when the computer software program is executed by the processor, the state monitoring method for the on-chip network according to any one of claims 1 to 12 is implemented.
Citation Information
Patent Citations
On-chip network path distribution method and system based on GRU
CN115665050A
DPU running state monitoring method and device
CN116932332A
