Integrated circuit device, performance monitoring method, electronic device, and storage medium

CN122963877APending Publication Date: 2026-10-23CHENGDU RONGGUANG INFORMATION TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611130805.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-07-28
Publication Date
2026-10-23

AI Technical Summary

Technical Problem

[0004]然而,当对于大型SOC(System of Chip,系统级芯片)集成电路器件,需要监测的功能模块很多时,处理器需要配置和读取很多功能模块的性能计数器,而无法同时实时监测多个功能模块的性能数据并定位集成电路器件的性能瓶颈

Benefits of technology

[0024]本发明的实施例提供的一种集成电路器件、性能监测方法、电子设备及计算机可读存储介质,通过在集成电路器件中设置监测客户端模块和监测管理器模块,监测客户端模块与至少一个功能模块相连,这样便于为不同的功能模块分别配置监测客户端模块,通过监测客户端模块同时监测多个功能模块的性能数据,并将所监测的各功能模块的性能数据发送给监测管理器模块,从而可根据监测管理器模块接收到的被监测的功能模块的性能数据,定位所述集成电路器件的性能瓶颈。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122963877A_ABST
    Figure CN122963877A_ABST
Patent Text Reader

Abstract

The embodiment of the application discloses an integrated circuit device, a performance monitoring method, an electronic device and a storage medium, relates to the technical field of semiconductor testing, and is invented for the purpose of positioning the performance bottleneck of an integrated circuit device. The integrated circuit device comprises: a functional module, the functional module is at least two, and is connected with a processor through a bus respectively; a monitoring client module, the monitoring client module is connected with at least one functional module, and the monitoring client module is configured to collect performance data of the functional module connected with the monitoring client module; and a monitoring manager module, the monitoring manager module is connected with the monitoring client module, and the monitoring manager module is configured to receive the performance data of the functional module sent by the monitoring client module. The embodiment of the application is used for performance monitoring of a device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of semiconductor technology, and in particular to an integrated circuit device, a performance monitoring method, an electronic device, and a storage medium. Background Technology

[0002] Integrated circuit devices are also called chips. Performance is an important factor in evaluating chip performance, especially with the increasing demand for computing power from artificial intelligence and high-performance computing. Chip performance evaluation includes indicators such as computing power, latency, bandwidth, and utilization.

[0003] Traditional post-silicon system performance analysis typically involves software reading performance counters from functional modules. First, a performance counter is implemented in each functional module to collect performance data such as bandwidth, latency, and utilization. When the post-silicon system detects system performance issues, the performance counters of the potentially problematic functional modules are enabled. This allows the performance data of these modules to be tracked and recorded during application execution. The target program then reads these performance counters from the processor for analysis and troubleshooting.

[0004] However, when there are many functional modules to monitor in a large SOC (System of Chip) integrated circuit device, the processor needs to configure and read the performance counters of many functional modules, and cannot simultaneously monitor the performance data of multiple functional modules in real time and locate the performance bottleneck of the integrated circuit device. Summary of the Invention

[0005] In view of the above problems, embodiments of the present invention provide an integrated circuit device, a performance monitoring method, an electronic device, and a computer-readable storage medium to facilitate the location of performance bottlenecks in integrated circuit devices.

[0006] In a first aspect, embodiments of the present invention provide an integrated circuit device, comprising: The functional modules, at least two in total, are connected to the processor via a bus; A monitoring client module is connected to at least one functional module, and the monitoring client module is configured to collect performance data of the functional module connected to the monitoring client module. A monitoring manager module is connected to the monitoring client module, and the monitoring manager module is configured to receive performance data of functional modules sent by the monitoring client module.

[0007] In one implementation, at least one functional module is connected to at least two monitoring client modules.

[0008] In one implementation, there are two or more monitoring client modules; The two or more monitoring client modules are connected in series with the monitoring manager module to form a ring link.

[0009] In one embodiment, the monitoring client module includes a forwarding submodule, which is configured to receive performance data sent by the upstream monitoring client module of the ring link and forward it to the downstream monitoring client module of the ring link or to the monitoring manager module.

[0010] In one embodiment, the monitoring client module further includes a performance acquisition submodule, a performance counter, and a transmission submodule; The performance acquisition submodule is configured to collect performance data from functional modules connected to the monitoring client module. The performance counter is configured to record the performance data collected by the performance acquisition submodule. The transmission submodule is configured to transmit the performance data recorded by the performance counter to the monitoring manager module.

[0011] In one embodiment, at least one functional module includes a counter module, and a corresponding monitoring client module connected to the at least one functional module includes a performance acquisition submodule and a transmission submodule. The performance acquisition submodule is configured to collect performance data from functional modules connected to the monitoring client module. The counter module is configured to record the performance data collected by the performance acquisition submodule; The transmission submodule is configured to transmit the performance data of the functional module recorded by the counter module to the monitoring manager module.

[0012] In one embodiment, the monitoring client module further includes a packaging submodule, which is configured to add header information to the collected performance data. The header information includes the identifier of the functional module connected to the monitoring client module and the collection time of the performance data.

[0013] In one implementation, the monitoring manager module is configured to receive an enable signal sent by a target program and send an enable signal to the monitoring client module, thereby enabling at least one of the monitoring client modules.

[0014] In one implementation, the monitoring manager module is further configured to add a timestamp to the performance data received by the monitoring client module.

[0015] In one embodiment, the monitoring manager module is further configured to write performance data of the functional modules sent by the monitoring client module into memory via a bus, so that the processor can read the performance data of the functional modules in memory.

[0016] In a second aspect, embodiments of the present invention provide a performance monitoring method for an integrated circuit device, applied to a monitoring manager module, the method comprising: The system receives performance monitoring configuration information sent by the target program and sends a configuration package to the monitoring client module based on the configuration information, so that the monitoring client module can collect performance data of the functional modules connected to the monitoring client module and send the performance data to the monitoring manager module. Receive performance data of the functional modules sent by the monitoring client module; The performance data of the functional modules sent by the monitoring client module is written into memory so that the target program can read the performance data.

[0017] In one implementation, sending a configuration packet to the monitoring client module based on the configuration information, so that the monitoring client module can collect performance data of the functional modules connected to the monitoring client module, includes: Based on the configuration information, a configuration packet is sent to the monitoring client module so that at least one monitoring client can collect different performance data from at least one functional module connected to the monitoring client module.

[0018] In one implementation, the monitoring client module collects performance data from functional modules connected to the monitoring client module and sends the performance data to the monitoring manager module, including: The monitoring client module collects performance data from the functional modules connected to the monitoring client module; The monitoring client module collects performance data from the functional modules connected to it. The monitoring client module adds header information to the performance data to obtain a performance data packet with header information. The monitoring client module transmits the performance data packet with header information to the monitoring manager module.

[0019] In one implementation, receiving performance data of the functional modules sent by the monitoring client module includes: The system receives performance data from functional modules sent by the monitoring client module; wherein the performance data includes performance data collected by the monitoring client module or performance data collected by an upstream monitoring client module and forwarded from the monitoring client module.

[0020] In one implementation, writing the performance data of the functional modules sent by the monitoring client module into memory so that the target program can read the performance data includes: Write the performance data of the functional modules sent by the monitoring client module into memory; Receive the query status command sent by the target program; In response to the query status command, the current stop monitoring status of the monitoring manager module is returned to the target program; The target program reads the performance data of the functional modules sent by the monitoring client module from memory.

[0021] In one implementation, the step of writing the performance data of the functional modules sent by the monitoring client module into memory so that the target program can read the performance data further includes: Write the performance data of the functional modules sent by the monitoring client module into memory; Receive the query status command sent by the target program; In response to the query status command, the current running status of the monitoring manager module is returned to the target program; The target program queries the memory to find that the amount of performance data stored in the memory has reached a set threshold, and then reads the performance data of the functional modules sent by the monitoring client module from the memory.

[0022] Thirdly, an electronic device includes a motherboard on which an integrated circuit device as described in any of the foregoing embodiments is mounted.

[0023] Fourthly, a computer-readable storage medium stores one or more programs that can be executed by one or more processors to implement the performance monitoring method for integrated circuit devices described in any of the foregoing embodiments.

[0024] The embodiments of the present invention provide an integrated circuit device, a performance monitoring method, an electronic device, and a computer-readable storage medium. By setting a monitoring client module and a monitoring manager module in the integrated circuit device, the monitoring client module is connected to at least one functional module. This facilitates configuring monitoring client modules for different functional modules. The monitoring client module can simultaneously monitor the performance data of multiple functional modules and send the monitored performance data of each functional module to the monitoring manager module. Thus, the performance bottleneck of the integrated circuit device can be located based on the performance data of the monitored functional modules received by the monitoring manager module. Attached Figure Description

[0025] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0026] Figure 1 A schematic diagram of the structure of an integrated circuit device provided for an embodiment of the present invention; Figure 2 A flowchart illustrating a performance monitoring method for an integrated circuit device provided as an embodiment of the present invention; Figure 3 A schematic diagram of a performance monitoring workflow for an integrated circuit device after the target program has finished running, provided as an embodiment of the present invention; Figure 4 A schematic diagram illustrating the structural composition of performance counting packets and performance data packets formed from performance data collected by the monitoring client, provided for embodiments of the present invention; Figure 5 This is a schematic diagram of a target program runtime performance monitoring workflow for an integrated circuit device, provided as an embodiment of the present invention. Detailed Implementation

[0027] The embodiments of the present invention will now be described in detail with reference to the accompanying drawings.

[0028] It should be understood that the described embodiments are merely some, not all, of the embodiments of the present invention. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention without inventive effort are within the scope of protection of the present invention.

[0029] In a first aspect, embodiments of the present invention provide an integrated circuit device that simultaneously monitors the performance data of multiple functional modules through a monitoring client module and sends the performance data of each monitored functional module to a monitoring manager module, thereby enabling the identification of performance bottlenecks in the integrated circuit device based on the performance data of the monitored functional modules received by the monitoring manager module.

[0030] like Figure 1 As shown, the integrated circuit device provided in the embodiment of the present invention includes: a functional module 10, a monitoring client module 20, and a monitoring manager module 30.

[0031] Among them, there are at least two functional modules, which are respectively connected to the processor via a bus; A monitoring client module 20 is connected to at least one functional module, and the monitoring client module is configured to collect performance data of the functional module connected to the monitoring client module. The monitoring manager module 30 is connected to the monitoring client module and is configured to receive performance data of functional modules sent by the monitoring client module.

[0032] In this embodiment, the provided integrated circuit device can be a chip with a minimal system or a large system-on-a-chip composed of several chips. It has a complex design and contains many modules, each with a specific function. Performance monitoring of a complex large chip involves monitoring the performance of multiple functional modules. In specific implementations, such as... Figure 1 The integrated circuit device shown includes a processor, a performance monitoring manager module, a monitoring client module (PMC0-9), functional modules 0-9, and a bus system.

[0033] The processor is one of the core components in an integrated circuit device. It can load and execute software programs and interact with other modules in the integrated circuit device through a bus, such as sending read / write data instructions to a certain module.

[0034] A functional module is a circuit module in an integrated circuit device that has a defined function. A device can contain more than one functional module, such as... Figure 1 The functional modules 0-9 shown can be connected to the processor in the device via a bus to receive instruction information or data read / write information sent by the processor.

[0035] The monitoring client module has the function of collecting performance data from functional modules. It can be a circuit module with acquisition and transmission capabilities, or a module whose data acquisition and transmission functions are implemented by a software program. It collects and transmits performance data from the functional modules on the device. In integrated circuit devices, the monitoring client module is used for performance data monitoring. It can monitor the performance data of one functional module or multiple functional modules. The monitoring method involves the monitoring client module being connected to one or multiple functional module circuits. Through circuit connection monitoring, the monitoring client module collects performance data from the connected functional modules.

[0036] The monitoring manager module manages the monitoring client modules, which can be either circuit modules or program blocks that provide unified management and control for the monitoring client modules. In integrated circuit devices, the monitoring manager module is connected to the monitoring client modules, enabling data reception and transmission between the modules. The monitoring manager module can receive configuration instructions for the monitoring client sent by the target program running on the processor, and it can also receive performance data from the functional modules sent by the monitoring client modules. It can then manipulate the collected performance data, which may involve unified processing, unified storage, or unified writing to memory.

[0037] In this embodiment, by setting a monitoring client module and a monitoring manager module in the integrated circuit device, the monitoring client module is connected to at least one functional module. This facilitates configuring monitoring client modules for different functional modules. The monitoring client module can simultaneously monitor the performance data of multiple functional modules in real time and send the performance data of each monitored functional module to the monitoring manager module. Thus, based on the performance data of the monitored functional modules received by the monitoring manager module, the performance bottleneck of the integrated circuit device can be located, thereby providing guidance for software performance optimization.

[0038] In some embodiments, at least one functional module is connected to at least two monitoring client modules.

[0039] In this embodiment, in the integrated circuit device, there are functional modules with performance data to be monitored. There can be more than two performance data to be monitored, including read / write latency, read / write bandwidth, and other performance data. Each performance data to be monitored needs to be equipped with a monitoring client module. Therefore, if there are more than two performance data to be monitored, more than two monitoring client modules must be equipped for monitoring. In other words, a functional module can be connected to more than two monitoring client modules.

[0040] To understand the overall performance of integrated circuit devices, different functional modules and performance data are monitored, which leads to various monitoring methods. Each monitoring method corresponds to different functional modules and monitoring client modules, thus creating multiple connections to monitor integrated circuit devices.

[0041] This implementation plan includes various connection methods that may be adopted in integrated circuit devices, corresponding to various performance monitoring methods, thereby improving the flexibility and convenience of monitoring various performance indicators in functional modules.

[0042] In some embodiments, there are two or more monitoring client modules; the two or more monitoring client modules are connected in series with the monitoring manager module to form a ring link.

[0043] In this embodiment, the integrated circuit device includes multiple functional modules, and there may be two or more monitoring client modules connected to it. The two or more monitoring client modules must be connected in a preset manner to ensure the monitoring of each functional module. The connection method may be that two or more monitoring client modules are connected in series to form a ring link with the monitoring manager module.

[0044] In practical implementation, the connection method can be a unidirectional ring link or a bidirectional ring link, such as... Figure 1 The monitoring client modules 0-9 shown are connected in series in one direction with the monitoring manager module.

[0045] In this implementation scheme, within integrated circuit devices, this serial connection method reduces hardware connection costs and avoids unnecessary transmission delays. Both unidirectional and bidirectional ring link connections demonstrate corresponding advantages.

[0046] In some cases, the connection can be made in a unidirectional ring link manner, where two or more monitoring client modules and the monitoring manager module form a unidirectional ring connection link, with one end of the monitoring manager module sequentially connecting to the two or more monitoring client modules and finally connecting to the other end of the monitoring manager module. On a unidirectional ring connection link, data is transmitted along the shortest path, reducing hardware costs.

[0047] In other examples, the connections can be made in a bidirectional ring link manner. This involves two or more monitoring client modules and a monitoring manager module forming a bidirectional, ring-shaped connection. One end of the monitoring manager module connects sequentially to two or more monitoring client modules, and finally to the other end. The other end of the monitoring manager module then connects sequentially to two or more monitoring client modules, and finally to the other end, forming a ring link. The ring link can be of any linewidth. To avoid wasting transmission resources, a low-bit transmission line is used; for example, an 8-bit, 16-bit, or 32-bit transmission line can be used. Using a low-bit-width transmission bus effectively controls the cost of hardware connections, enabling performance monitoring of all functional modules in a large chip with lower-cost hardware, suitable for the expansion of large chips. This implementation scheme increases the diversity of data transmission control and improves data transmission efficiency.

[0048] In some embodiments, the monitoring client module includes a forwarding submodule, which is configured to receive performance data sent by the upstream monitoring client module of the ring link and forward it to the downstream monitoring client module of the ring link or to the monitoring manager module.

[0049] In this implementation, the monitoring client module includes a forwarding submodule with both receiving and sending functions; this submodule can be a set of circuit modules. In a ring link, the forwarding submodule receives performance data from the upstream monitoring client module and forwards the received performance data to the downstream monitoring client module or the downstream connected monitoring manager module. The forwarding function of the monitoring client module utilizes the ring link formed between the monitoring client module and the monitoring manager module to transmit collected performance data from upstream to downstream, reducing the mutual interference between bus data transmission and performance data transmission, and improving data transmission efficiency.

[0050] In some embodiments, the monitoring client module may further include a performance acquisition submodule, a performance counter, and a transmission submodule; the performance acquisition submodule is configured to acquire performance data of functional modules connected to the monitoring client module; the performance counter is configured to record the performance data acquired by the performance acquisition submodule; and the transmission submodule is configured to transmit the performance data recorded by the performance counter to the monitoring manager module.

[0051] In this embodiment, in the integrated circuit device, the monitoring client module primarily collects performance data from the functional modules. It may include sub-functions for acquiring, recording, and transmitting performance data. Therefore, the monitoring client module may contain a performance acquisition sub-module (acquiring performance data), a performance counter (recording performance data), and a transmission sub-module (transmitting performance data to the monitoring manager module). The performance acquisition sub-module can be a circuit module with acquisition capabilities, the performance counter can be a circuit module with performance data recording capabilities, and the transmission sub-module can be a circuit module with performance data transmission capabilities. These circuit modules are combined and connected together to realize the function of collecting performance data from the functional modules, continuously collecting performance data within a set time window.

[0052] The monitoring client module enables one-to-one collection of performance data from specific functional modules, making the collection of performance data controllable. It can collect data within a set time window, record the collection time, and add the identifier of the corresponding functional module to the collected performance data. In integrated circuit devices, the monitoring client module can be configured to monitor target functional modules, improving the flexibility and controllability of monitoring in complex integrated circuit designs.

[0053] In some embodiments, at least one functional module includes a counter module, and a corresponding monitoring client module connected to the at least one functional module includes a performance acquisition submodule and a transmission submodule; the performance acquisition submodule is configured to acquire performance data of the functional module connected to the monitoring client module; the counter module is configured to record the performance data acquired by the performance acquisition submodule; and the transmission submodule is configured to transmit the performance data of the functional module recorded by the counter module to the monitoring manager module.

[0054] In this embodiment, the integrated circuit device contains a functional module that includes a counter module. The counter module has the function of recording performance data. There may be one or more functional modules that include a counter module. The monitoring client module can have the function of collecting and transmitting performance data. Therefore, the monitoring client module may have a performance acquisition submodule that includes the function of collecting performance data, and a transmission submodule that transmits performance data to the monitoring manager module. For example... Figure 1 The functional module 0 shown contains a counter module. After the acquisition submodule in the monitoring client module acquires the performance data of functional module 0, the acquired performance data is recorded by the counter module in functional module 0, and then the acquired performance data is transmitted by the transmission submodule.

[0055] The monitoring client module borrows the counter module from the functional module to record the collected data, realizing functions such as collecting, recording, and transmitting performance data. For monitoring clients configured with functional modules that include a counter module, only the acquisition submodule and the transmission submodule are needed, eliminating the need for a separate counter module. This saves hardware costs and can effectively conserve resources and hardware costs in the design of complex integrated circuit devices.

[0056] In some embodiments, the monitoring client module may further include a packaging submodule, which is configured to add header information to the collected performance data. The header information includes the identifier of the functional module connected to the monitoring client module and the collection time of the performance data.

[0057] In this implementation, before transmitting the collected performance data, the monitoring client module packages the performance data in batches. Specifically, the packaging submodule adds header information to the collected performance data. This header information needs to be identifying the source of the performance data collection; it can be the address identifier of the corresponding connected functional module. More specifically, the address identifier of the functional module is written to the header of the performance data storage register. This helps the receiver identify the target functional module corresponding to the performance data from the header when reading the performance data. The header information also needs to record the recording time of the collected performance data. The recording time can be the time added by the packaging submodule in the current monitoring client module. The header information can also refer to the time delay between the performance data sent by the monitoring client module and the performance data received by the monitoring manager module. Specifically, the counter in the monitoring client module records each clock signal edge. When the current signal edge arrives, the performance data is sent by the current monitoring client module. When the downstream monitoring client module receives the data, the difference in the number of clock signals recorded by the counter can be recorded as the delay between the current monitoring manager module and the downstream monitoring client module. Until the performance data is received by the monitoring manager module, the number of times the performance data needs to be forwarded by the downstream monitoring client module can be accumulated, and the delay information can be added. After being recorded and accumulated by the downstream monitoring client module, the delay information is updated in the packet header information.

[0058] The packaged performance data includes performance data received by the current monitoring client module from the upstream monitoring client module and performance data collected by the current monitoring client module. After the performance data sent or forwarded by the current monitoring client module is received by the downstream monitoring client module, the delay time is obtained by calculating the difference between the counters of each monitoring client and written into the register. This allows for the accurate determination of the time of performance data collected by each monitoring client module, which can greatly improve the time accuracy of integrated circuit device performance monitoring.

[0059] In some embodiments, the monitoring manager module is configured to receive an enable signal sent by a target program and send an enable signal to the monitoring client module, thereby enabling at least one of the monitoring client modules.

[0060] In this implementation, before the monitoring client module performs monitoring in the integrated circuit device, it is necessary to identify the functional modules that need to be monitored and which monitoring client modules should be monitored. After receiving the signal instruction from the target program, the monitoring manager module should send an enable signal to the monitoring client modules that need to be monitored. Specifically, after receiving the signal from the target program, the monitoring manager module sends a configuration package. This can be done by the target monitoring client module receiving the configuration package for monitoring configuration, achieving one-to-one configuration, or by all monitoring client modules receiving the configuration package and matching it with the configuration package. The matched monitoring client modules are then enabled for monitoring. Enabling at least one monitoring client module can achieve broadcast configuration.

[0061] The monitoring manager module collects performance data from functional modules. The software can effectively configure the monitoring client module corresponding to the functional module to be monitored, as well as the performance data to be monitored. In the design of complex integrated circuit devices, the monitoring manager module can more conveniently and uniformly configure functional modules, thereby improving monitoring efficiency.

[0062] In some embodiments, the monitoring manager module is further configured to add timestamps to the performance data received by the monitoring client module.

[0063] In integrated circuit devices, the monitoring manager module receives performance data sent by the monitoring client module. To identify the data acquisition time, time information needs to be added to the received performance data before writing it into memory. Specifically, the time information of receiving the performance data is written to the header of the register storing the performance data, which facilitates the display of the performance data in the time dimension. In another implementation, the monitoring manager module receives performance data sent by the monitoring client module. After parsing the performance data, the performance data delay time recorded in the packet header information can be obtained. Subtracting the time when the monitoring manager module receives the performance data from the performance data delay time gives the time when the monitoring client module sends the performance data, i.e., the timestamp. The timestamp is written to the header of the register storing the performance data and then written into memory via the bus. Based on the performance data under different timestamps, a performance curve can be plotted. Changes in the performance curve can reflect performance bottlenecks, which is beneficial for subsequent performance improvement.

[0064] In some embodiments, the monitoring manager module is further configured to write performance data of the functional modules sent by the monitoring client module into memory via a bus, so that the target program can read the performance data of the functional modules in memory.

[0065] In this implementation, in the integrated circuit device, the monitoring manager module writes batch performance data to memory via a bus, and the target program can read the required performance data from memory. After the monitoring manager module stops monitoring, the target program reads the batch performance data from memory. While the monitoring manager module is running, it queries whether the amount of performance data stored in memory has reached a set threshold, for example, a threshold of 256MB of performance data. When the amount of data in memory reaches 256MB, the target program reads the performance data from memory.

[0066] The monitoring manager module enables unified data management and transmission, improving the efficiency of performance data transmission.

[0067] Secondly, embodiments of the present invention provide a performance monitoring method for an integrated circuit device, applied to a monitoring manager module, such as... Figure 2 As shown, the method may include: S10. Receive performance monitoring configuration information sent by the target program, and send a configuration package to the monitoring client module according to the configuration information, so that the monitoring client module collects performance data of the functional modules connected to the monitoring client module, and sends the performance data to the monitoring manager module. This invention monitors the performance data of functional modules in an integrated circuit device through a monitoring client module, and the monitoring manager module receives the performance data. After the integrated circuit device is powered on, the target program is loaded into the processor. The processor interacts with each functional module and the monitoring manager module through bus data and instructions. The program instructions contain configuration information for the functional modules. Figure 3 As shown, when the target program runs and executes instructions to configure the monitoring function of a functional module, it sends the configuration information to the monitoring manager module via the bus, thus initiating the monitoring of the functional module. In this step, the target program sends instruction information, including performance data of the functional module to be monitored, to the monitoring manager module. Based on the performance monitoring information, the monitoring manager module sends a configuration package to each monitoring client module. The configuration package can be a set of data with a verification identifier. When a monitoring client module receives a configuration package, it must match it with the verification identifier. If a match is successful, the monitoring client module enables the monitoring function and collects performance data from the functional modules connected to it.

[0068] S20. Receive the performance data of the functional modules sent by the monitoring client module; In this step, the monitoring manager module receives performance data from the functional modules sent by each monitoring client module.

[0069] The performance monitoring method for integrated circuit devices provided in this embodiment, such as Figure 3As shown, within a set time window, the monitoring client module collects performance data from its connected functional modules. After the time window ends, the monitoring client module sends batch performance data to the monitoring manager module. This data can be performance count packets or data packets with functional module identifiers. Figure 4 As shown, a performance counter packet is a data packet containing multiple performance counter information and a packet header, which can be stored in a register; the packet header contains the identifier of the functional module being collected. The monitoring manager module can identify the performance data belonging to functional module A from a batch of performance data packets through the functional module identifier, facilitating the reading and analysis of performance data.

[0070] In some embodiments, the monitoring manager module receives performance data of functional modules sent by the monitoring client module; wherein the performance data includes performance data collected by the monitoring client module or performance data collected by an upstream monitoring client module forwarded by the monitoring client module. The monitoring manager module is connected to at least one monitoring client module. When the monitoring manager module receives performance data sent from a monitoring client module (which can be one monitoring client module or two or more monitoring client modules), the data received can be performance data sent by the monitoring client module connected to it, or performance data forwarded by the monitoring client module connected to it from an upstream client module.

[0071] S30. Write the performance data of the functional modules sent by the monitoring client module into memory so that the target program can read the performance data.

[0072] In this step, the monitoring manager module writes the performance data packets sent by the monitoring client module into memory. To make the batch performance data more identifiable, time information can be added to the received performance data, including timestamps. This allows the target program to easily read and analyze the performance data written to memory. Specifically, performance curves can be plotted based on the performance data at different timestamps. Changes in the performance curves can reflect performance bottlenecks, which is helpful for subsequent performance improvements. Figure 4 As shown, the performance data packet consists of multiple sets of performance count packets with timestamps, which can be stored in a register.

[0073] In this embodiment, by setting a monitoring client module and a monitoring manager module in the integrated circuit device, the monitoring client module is connected to at least one functional module. This facilitates configuring monitoring client modules for different functional modules. The monitoring client module can simultaneously monitor the performance data of multiple functional modules and send the performance data of each monitored functional module to the monitoring manager module. Thus, based on the performance data of the monitored functional modules received by the monitoring manager module, the performance bottleneck of the integrated circuit device can be located, thereby providing guidance for software performance optimization.

[0074] In some embodiments, a configuration package is sent to the monitoring client module according to the configuration information, so that at least one monitoring client collects different performance data of at least one functional module connected to the monitoring client module.

[0075] The monitoring manager module sends a configuration package to the monitoring client module, enabling the receiving monitoring client module to collect performance data from connected functional modules. The configuration package contains enabling information that can enable one monitoring client module to monitor one performance data point of a connected functional module, enable two monitoring client modules to monitor two performance data points of a connected functional module, monitor one performance data point of each of two connected functional modules, or enable two or more monitoring client modules to monitor multiple performance data points of multiple connected functional modules.

[0076] In some embodiments, the monitoring client module collects performance data from functional modules connected to the monitoring client module, including: S121. Record the performance data of the functional modules connected to the monitoring client module collected by the monitoring client module; S122. The monitoring client module adds header information to the performance data to obtain a performance data packet with header information. S123. The monitoring client module transmits the performance data packet with header information to the monitoring manager module.

[0077] In the above steps, the monitoring client module can be a circuit module with a data acquisition submodule, a recording submodule, and a transmission submodule, or it can be a circuit module with a data acquisition submodule and a transmission submodule.

[0078] In one implementation, in an integrated circuit device, the monitoring client module can have the function of collecting, recording, and transmitting performance data. Therefore, the monitoring client module can have a performance acquisition submodule that includes the function of collecting performance data, a performance counter that records performance data, and a transmission submodule that transmits performance data to the monitoring manager module, such as... Figure 4As shown, the monitoring client module adds header information to the recorded performance counters to obtain performance data with the header information. The header contains the identifier of the functional module and the recording time information, which can be stored in a register. The monitoring client module connects to the functional modules on the device, and each sub-module within the monitoring client module is used to acquire, record, and transmit the performance data of the functional modules.

[0079] In another implementation, the integrated circuit device includes functional modules that contain counter modules. These counter modules record performance data. One or more functional modules may contain counter modules. The performance data recorded by the counter modules is appended to a packet header by the monitoring client module. This packet header contains the identifier of the functional module and the recording time information, and is stored in a register. The monitoring client module can also acquire and transmit performance data. Therefore, the monitoring client module may contain a performance acquisition submodule that acquires performance data, and a transmission submodule that transmits performance data to the monitoring manager module. After the acquisition submodule in the monitoring client module acquires the performance data from the functional modules, the counter module in the functional modules records the acquired performance data, and then the transmission submodule transmits the acquired performance data.

[0080] The monitoring client module collects and transmits performance data. It can control the collection of performance data for each functional module, the frequency of collection, the time window of collection, the amount of performance data recorded, and the sending of data in single batches, effectively improving the efficiency of performance data collection and transmission.

[0081] In some embodiments, step S30, writing the performance data of the functional modules sent by the monitoring client module into memory so that the target program can read the performance data, includes: S301. Write the performance data of the functional modules sent by the monitoring client module into memory; S302, Receive the query status command sent by the target program; S303. In response to the query status command, return the current stop monitoring status of the monitoring manager module to the target program; S304. The current state of the monitoring manager module is stopped monitoring. The target program reads the performance data of the functional modules sent by the monitoring client module in memory.

[0082] In this embodiment, as Figure 3As shown, when the user program terminates, the software sends a stop monitoring command to the monitoring manager module. The monitoring manager module then stops data acquisition from all monitoring client modules, putting them into a low-power state to conserve chip power. Once all monitoring clients have stopped working, the software can read performance data from system memory and analyze it by polling the status of the monitoring manager module. This process confirms whether there are any issues with the monitored performance metrics. If problems are found, the software analyzes the performance data of each module throughout the entire program execution period to pinpoint the specific module and timeframe where the performance bottleneck occurs.

[0083] In some embodiments, step S30, writing the performance data of the functional modules sent by the monitoring client module into memory so that the target program can read the performance data, further includes: S305. Write the performance data of the functional modules sent by the monitoring client module into memory; S306. Receive the query status command sent by the target program; S307. In response to the query status command, return the current running status of the monitoring manager module to the target program; S308. When the number of performance data stored in memory reaches a set threshold, the target program reads the performance data of the functional modules sent by the monitoring client module from memory.

[0084] In some embodiments, such as Figure 5 As shown, when the target program is running, it polls the status of the monitoring manager module to query the performance data packets currently stored in memory. When the number of performance data packets in memory reaches a certain threshold, the target program will read these performance data packets, analyze and process them, and output them to the display device. The waveform of the performance indicators during the program's operation can be observed in real time. This process continues until the target program ends.

[0085] This invention also provides an electronic device, which includes a motherboard and is equipped with the integrated circuit device described in any of the foregoing embodiments.

[0086] This electronic device exists in various forms, including but not limited to: (1) Personal computer devices: These devices fall under the category of personal computers, have computing and processing functions, and generally also have mobile internet access capabilities.

[0087] (2) Server: A device that provides computing services. The components of a server include a processor, hard disk, memory, system bus, etc. Servers are similar to general computer architectures, but because they need to provide highly reliable services, they have higher requirements in terms of processing power, stability, reliability, security, scalability, and manageability.

[0088] (3) Other electronic devices with data interaction functions.

[0089] This invention also provides a computer-readable storage medium storing one or more programs that can be executed by one or more processors to implement the performance monitoring method for integrated circuit devices described in any of the foregoing embodiments.

[0090] Those skilled in the art will understand that all or part of the processes in the above embodiments can be implemented by a computer program instructing related hardware. The program can be stored in a computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. The storage medium can be a magnetic disk, optical disk, read-only memory (ROM), or random access memory (RAM), etc.

[0091] The above description is merely a specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in the present invention should be included within the scope of protection of the present invention. Therefore, the scope of protection of the present invention should be determined by the scope of the claims.

Claims

1. An integrated circuit device, characterized in that, include: The functional modules, at least two in total, are connected to the processor via a bus; A monitoring client module is connected to at least one functional module, and the monitoring client module is configured to collect performance data of the functional module connected to the monitoring client module. A monitoring manager module is connected to the monitoring client module, and the monitoring manager module is configured to receive performance data of functional modules sent by the monitoring client module.

2. The integrated circuit device according to claim 1, characterized in that, At least one functional module is connected to at least two monitoring client modules.

3. The integrated circuit device according to claim 1, characterized in that, The monitoring client module consists of two or more modules; The two or more monitoring client modules are connected in series with the monitoring manager module to form a ring link.

4. The integrated circuit device according to claim 3, characterized in that, The monitoring client module includes a forwarding submodule, which is configured to receive performance data sent by the upstream monitoring client module of the ring link and forward it to the downstream monitoring client module of the ring link or to the monitoring manager module.

5. The integrated circuit device according to claim 1, characterized in that, The monitoring client module also includes a performance acquisition submodule, a performance counter, and a transmission submodule; The performance acquisition submodule is configured to collect performance data from functional modules connected to the monitoring client module. The performance counter is configured to record the performance data collected by the performance acquisition submodule. The transmission submodule is configured to transmit the performance data recorded by the performance counter to the monitoring manager module.

6. The integrated circuit device according to claim 1, characterized in that, At least one functional module includes a counter module, and the corresponding monitoring client module connected to the at least one functional module includes a performance acquisition submodule and a transmission submodule; The performance acquisition submodule is configured to collect performance data from functional modules connected to the monitoring client module. The counter module is configured to record the performance data collected by the performance acquisition submodule; The transmission submodule is configured to transmit the performance data of the functional module recorded by the counter module to the monitoring manager module.

7. The integrated circuit device according to claim 5 or 6, characterized in that, The monitoring client module also includes a packaging submodule, which is configured to add packet header information to the collected performance data. The packet header information includes the identifier of the functional module connected to the monitoring client module and the collection time of the performance data.

8. The integrated circuit device according to claim 1, characterized in that, The monitoring manager module is configured to receive an enable signal sent by the target program and send an enable signal to the monitoring client module, thereby enabling at least one of the monitoring client modules.

9. The integrated circuit device according to claim 1, characterized in that, The monitoring manager module is also configured to add timestamps to the performance data sent by the monitoring client module.

10. The integrated circuit device according to claim 1, characterized in that, The monitoring manager module is also configured to write the performance data of the functional modules sent by the monitoring client module into memory via a bus, so that the target program can read the performance data of the functional modules in memory.

11. A method for monitoring the performance of an integrated circuit device, characterized in that, Applied to the monitoring manager module, the method includes: The system receives performance monitoring configuration information sent by the target program and sends a configuration package to the monitoring client module based on the configuration information, so that the monitoring client module can collect performance data of the functional modules connected to the monitoring client module and send the performance data to the monitoring manager module. Receive performance data of the functional modules sent by the monitoring client module; The performance data of the functional modules sent by the monitoring client module is written into memory so that the target program can read the performance data.

12. The performance monitoring method for integrated circuit devices according to claim 11, characterized in that, The step of sending a configuration packet to the monitoring client module based on the configuration information, so that the monitoring client module can collect performance data of the functional modules connected to the monitoring client module, includes: Based on the configuration information, a configuration packet is sent to the monitoring client module so that at least one of the monitoring client modules can collect different performance data from at least one functional module connected to the monitoring client module.

13. The performance monitoring method for integrated circuit devices according to claim 11, characterized in that, The monitoring client module collects performance data from functional modules connected to it and sends the performance data to the monitoring manager module, including: The monitoring client module collects performance data from the functional modules connected to the monitoring client module; The monitoring client module collects performance data from the functional modules connected to it. The monitoring client module adds header information to the performance data to obtain a performance data packet with header information. The monitoring client module transmits the performance data packet with header information to the monitoring manager module.

14. The performance monitoring method for integrated circuit devices according to claim 11, characterized in that, The receipt of performance data from the functional modules sent by the monitoring client module includes: The system receives performance data from functional modules sent by the monitoring client module; wherein the performance data includes performance data collected by the monitoring client module or performance data collected by an upstream monitoring client module and forwarded from the monitoring client module.

15. The performance monitoring method for integrated circuit devices according to claim 11, characterized in that, The step of writing the performance data of the functional modules sent by the monitoring client module into memory so that the target program can read the performance data includes: Write the performance data of the functional modules sent by the monitoring client module into memory; Receive the query status command sent by the target program; In response to the query status command, the current stop monitoring status of the monitoring manager module is returned to the target program; The target program reads the performance data of the functional modules sent by the monitoring client module from memory.

16. The performance monitoring method for integrated circuit devices according to claim 11, characterized in that, The step of writing the performance data of the functional modules sent by the monitoring client module into memory so that the target program can read the performance data further includes: Write the performance data of the functional modules sent by the monitoring client module into memory; Receive the query status command sent by the target program; In response to the query status command, the current running status of the monitoring manager module is returned to the target program; The target program queries the amount of performance data stored in memory to reach a set threshold, and then reads the performance data of the functional modules sent by the monitoring client module from memory.

17. An electronic device, characterized in that, It includes a motherboard on which the integrated circuit device according to any one of claims 1 to 10 is mounted.

18. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores one or more programs that can be executed by one or more processors to implement the performance monitoring method for the integrated circuit device according to any one of claims 11 to 16.