A flow blocking node diagnosis method, device and storage medium
By acquiring traffic information from cache units, constructing diagnostic sequences, and locating abnormal cache units, the problem of automated and accurate diagnosis of traffic blockage nodes in chip verification is solved, thus improving diagnostic efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ZHONGHAO XINYING (HANGZHOU) TECH CO LTD
- Filing Date
- 2026-04-23
- Publication Date
- 2026-07-07
AI Technical Summary
In existing technologies, the methods for identifying traffic congestion nodes during chip verification have efficiency bottlenecks and cannot effectively solve complex technical problems.
By acquiring traffic information from cache units, a diagnostic sequence is constructed and abnormal cache units are located, ultimately locking down the traffic-blocking node.
It enables automated and accurate diagnosis of traffic congestion nodes, reduces diagnostic workload, improves diagnostic efficiency, and adapts to the traffic congestion diagnosis needs of complex designs under test.
Smart Images

Figure CN122093290B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of chip verification technology, specifically to a method, apparatus, and storage medium for diagnosing traffic congestion nodes. Background Technology
[0002] With the continuous advancement of information technology, high-performance computing, big data analytics, high-speed network communication, advanced graphics processing, and other data-intensive applications are placing increasingly stringent demands on computing platforms. To meet these needs, modern chip designs, especially large-scale systems-on-a-chip (SoCs), integrate a vast number of diverse processing cores, dedicated accelerators, high-capacity memory controllers, and various high-speed internal and external interfaces. Moreover, these functional units are organized within increasingly sophisticated hierarchical structures. System-level, subsystem-level, IP core-level, module-level, and even finer-grained logic units are nested layer upon layer, forming an extremely complex internal structure. While this deep integration brings performance and functional improvements, it also makes it increasingly difficult to pinpoint the traffic congestion nodes causing the anomalies when abnormal data flow is observed at the top level of the design under test (e.g., a chip).
[0003] Current methods for identifying traffic congestion nodes involve using waveform files generated during the Design Under Test (DUT) verification simulation. Starting from the module or interface where the traffic anomaly was initially detected, the methods carefully observe and trace the handshake signals (e.g., valid or ready handshake signals) or data bus status of the relevant data paths in the waveform diagram. Following the reverse path of data flow (i.e., from downstream to upstream), the methods progressively examine the signal interactions between nodes until the root cause of the congestion (i.e., the traffic congestion node) is found in the waveform diagram. However, as the size, complexity, and interface speed of the DUT continue to increase, the size of the waveform files and the number of signals to be analyzed grow exponentially. This traditional method of identifying traffic congestion nodes becomes increasingly inefficient and cannot meet the diagnostic needs of current DUTs. Summary of the Invention
[0004] The purpose of this application is to provide a method, apparatus and storage medium for diagnosing traffic congestion nodes, so as to solve the technical problems of large workload and low efficiency in existing traffic congestion node diagnosis.
[0005] To achieve the above objectives, this application provides the following technical solution:
[0006] Firstly, this application proposes a technical solution for a traffic congestion node diagnosis method. This traffic congestion node diagnosis method is applied to a design under test, which includes multiple cache units; including:
[0007] Obtain traffic information for each cache unit; traffic information corresponds one-to-one with cache unit; each traffic information includes at least the status signals and data flow of each time sequence of the corresponding cache unit;
[0008] Based on the analysis of various traffic information, various diagnostic sequences are obtained; there is a one-to-one correspondence between traffic information and diagnostic sequences; each diagnostic sequence includes sequence values for each time series; the sequence value for each time series is used to represent the matching relationship between the status signal and data flow of the corresponding cache unit at that time series;
[0009] Each diagnostic sequence is analyzed to obtain abnormal sequence values where the state signal and data flow do not match;
[0010] Based on the abnormal sequence value, an abnormal cache unit is obtained; the abnormal cache unit is the cache unit corresponding to the first diagnostic sequence among various cache units; the abnormal sequence value is located in the first diagnostic sequence.
[0011] Based on the data interaction between the abnormal cache unit and its upstream and downstream nodes and / or its own storage occupancy rate, the traffic blocking node is determined.
[0012] Secondly, this application proposes a technical solution for a traffic congestion node diagnostic device. This traffic congestion node diagnostic device is applied to a design under test, which includes multiple cache units; including:
[0013] The monitoring unit is used to acquire traffic information for each cache unit; the traffic information corresponds one-to-one with the cache unit; each traffic information includes at least the status signals and data flow of each time sequence of the corresponding cache unit.
[0014] The processing unit is used to analyze various traffic information to obtain various diagnostic sequences; there is a one-to-one correspondence between traffic information and diagnostic sequences; each diagnostic sequence includes sequence values for each time series; the sequence value for each time series is used to represent the matching relationship between the status signal of the corresponding buffer unit and the data flow in that time series;
[0015] In addition, each diagnostic sequence is analyzed to obtain abnormal sequence values where the state signal and data flow do not match;
[0016] Furthermore, based on the abnormal sequence value, an abnormal cache unit is obtained; the abnormal cache unit is the cache unit corresponding to the first diagnostic sequence among various cache units; the abnormal sequence value is located in the first diagnostic sequence;
[0017] Furthermore, based on the data interaction between the abnormal caching unit and its upstream and downstream nodes and / or its own storage occupancy rate, the traffic blocking node is determined.
[0018] Thirdly, this application proposes a technical solution for a computer-readable storage medium. This computer-readable storage medium stores a computer program, which, when executed by a processor, implements the traffic congestion node diagnosis method as described in the first aspect.
[0019] Compared with the prior art, the beneficial effects of this application are:
[0020] This application acquires traffic information such as status signals and data flow of each cache unit, calculates the sequence value related to the cumulative number of times the status signal is raised and the number of data flows according to the time sequence, constructs a diagnostic sequence, locates abnormal cache units, and ultimately identifies the traffic blockage node. This solution eliminates the need for manual frame-by-frame analysis of massive waveform files, replacing traditional manual tracking with time-series and quantitative analysis to achieve automated and accurate diagnosis of blockage nodes. It ensures comprehensive coverage, reduces diagnostic workload, improves diagnostic efficiency, and can adapt to the traffic blockage diagnosis needs of complex designs under test, shortening the verification cycle. Attached Figure Description
[0021] Figure 1 This is a schematic diagram of the structure of a design under test proposed in an embodiment of this application;
[0022] Figure 2 This is a flowchart illustrating a traffic congestion node diagnosis method proposed in an embodiment of this application;
[0023] Figure 3 This is a schematic diagram of data transmission where the traffic blocking node is the upstream node, as proposed in the embodiments of this application;
[0024] Figure 4 This is a schematic diagram of data transmission where the traffic blocking node is a downstream node, as proposed in the embodiments of this application;
[0025] Figure 5 This is a schematic diagram of the structure of a flow blocking node diagnostic device proposed in an embodiment of this application;
[0026] Figure 6 This is a schematic diagram of the structure of a server proposed in an embodiment of this application. Detailed Implementation
[0027] The terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects (e.g., the first and second numerical values represent different values, and so on), and are not necessarily used to describe a specific order or sequence. It should be understood that such names can be used interchangeably where appropriate so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or device that includes a series of steps or modules is not necessarily limited to those explicitly listed, but may include other steps or modules not explicitly listed or inherent to these processes, methods, products, or devices. The division of modules in the embodiments of this application is merely a logical division; in actual applications, there may be other division methods. For example, multiple modules may be combined or integrated into another system, or some features may be omitted or not performed. Additionally, the shown or discussed mutual coupling or direct coupling or communication connection may be through some interface, indirect coupling between modules, or electrical or other similar forms of communication connection, none of which are limited in the embodiments of this application. Furthermore, the modules or sub-modules described as separate components may or may not be physically separated, may or may not be physical modules, or may be distributed among multiple circuit modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the embodiments of this application.
[0028] In this application, the design under test refers to an integrated circuit system (e.g., a system-on-a-chip (SoC), application-specific integrated circuit (ASIC), or field-programmable gate array (FPGA) prototype verification system) that requires functional verification and traffic congestion node diagnosis. This means that this application does not impose specific limitations on the application scenarios of the embodiments described below. The core application scenarios of the embodiments described below can cover any field with high real-time requirements for data traffic, such as high-performance computing, high-speed network communication, and big data processing.
[0029] It is important to note that a typical design under test (DUT) typically contains multiple functional modules with data storage, forwarding, or buffering capabilities (such as the cache units mentioned below). These modules are interconnected via data paths to form a complete data processing chain. When performing functional verification on the DUT, it is necessary to test and verify the stability and smoothness of data transmission across each data processing chain. In this application, the DUT includes multiple cache units. In this application, a cache unit refers to a functional unit within the DUT used for temporary data storage and coordinating differences in data transmission rates (e.g., first-in-first-out cache, register sets, and data buffers). The core function of the cache unit is to alleviate the mismatch in data processing speeds between upstream and downstream nodes, ensuring the continuity of data transmission. That is, in this application, the cache unit possesses basic functions of data reception, temporary storage, and transmission. It can output status signals (e.g., full / empty status, request to send signals, and request to receive signals) and data flow (e.g., cumulative read / write counts, current cached data volume), making it a critical node in the data transmission chain and the core monitoring object for traffic congestion diagnosis in this application.
[0030] It needs to be clear that, Figure 1 This is a schematic diagram of a design under test (DUT) proposed in an embodiment of this application. The DUT is a multi-level hierarchical structure composed of multiple nodes A_1, B_1 to B_3, C_1 to C_4, D_1, D_2, and E_1. Each level of the DUT contains one or more data paths. Nodes performing critical data processing functions have built-in buffer units to achieve temporary storage and rate matching of data streams. Inter-node interface interactions use a specific handshake protocol to coordinate data exchange. For example, ready / valid handshake signals: the valid handshake signal is controlled by the upstream node, indicating that data is ready; the ready handshake signal is controlled by the downstream node, indicating that reception is ready. Data is successfully transmitted only when both the upstream and downstream nodes are ready (i.e., both the valid and ready handshake signals are valid simultaneously). Figure 1 As shown, in existing technologies, if the design under test detects abnormal traffic, the signal interactions between each node are checked step by step until the root cause node causing the blockage is found (e.g., Figure 1 (Node D_1 in the diagram). In application scenarios where the structure of the design under test is relatively simple, this method is relatively time-consuming. However, in application scenarios where the scale and complexity of the design under test are extremely high, this method is extremely time-consuming.
[0031] To address the problems of high workload and low efficiency in existing methods for diagnosing traffic congestion nodes, this application proposes an embodiment of a traffic congestion node diagnosis method. For example... Figure 2 As shown, the traffic congestion node diagnosis method includes steps 100 to 500.
[0032] Step 100: Obtain traffic information for each cache unit.
[0033] In this embodiment, traffic information corresponds one-to-one with a cache unit. Each piece of traffic information includes at least the status signals and data flow of each time sequence of the corresponding cache unit.
[0034] In this embodiment, the status signal of the cache unit refers to the electrical or logical signal that the cache unit outputs in real time during data transmission, reflecting its working status and data interaction requests. Its core function is to characterize the current data storage status, data receiving / sending capability, and willingness to interact with upstream and downstream nodes of the cache unit. Specifically, it may include, but is not limited to, the following types:
[0035] Storage status signals: used to indicate the current storage occupancy of cache units, such as "full status signal" (high when the cache space is fully occupied), "empty status signal" (high when there is no data in the cache), "half-full status signal" (high when the cache occupancy reaches a preset threshold), etc.
[0036] Data interaction request signals: used to handshake and negotiate with upstream and downstream nodes, such as "receive request signal" (pulled high when the cache unit has the ability to receive data, initiating a data reception request to the upstream node) and "send request signal" (pulled high when the cache unit has data to be sent, initiating a data sending request to the downstream node).
[0037] Handshake response signals: used to provide feedback on the execution results of requests from upstream and downstream nodes, such as "receive ready signal" (pulled high in response to an upstream receive request, indicating that data can be received) and "send valid signal" (pulled high in response to a downstream send request, indicating that data can be sent), etc.
[0038] The high / low states of these status signals of the cache unit change dynamically with the working process of the cache unit. The cumulative number of times they are pulled high can directly reflect the state switching frequency and interaction activity of the cache unit within a specific time sequence, which is one of the core bases for judging whether there is a data transmission bottleneck in the cache unit.
[0039] In this embodiment, the data throughput of the cache unit refers to the quantitative indicators related to data reception, storage, and transmission that are statistically analyzed in real time during data transmission. Its core function is to characterize the data flow efficiency and actual transmission scale in the cache unit, and it can specifically include, but is not limited to, the following types:
[0040] Cumulative data received: refers to the total amount of data successfully received by the buffer unit through the receiving port from the start of the test to a certain time sequence (which can be counted by the number of bytes, data blocks, or data packets).
[0041] Cumulative data sent: refers to the total amount of data successfully sent by the cache unit through the sending port from the start of the test to a certain time series (the statistical dimension is the same as the cumulative data received).
[0042] Cumulative read / write operation count: refers to the cumulative number of read and write operations performed by the cache unit on the internal storage space (write operation corresponds to data being stored, and read operation corresponds to data being retrieved);
[0043] Real-time data throughput: refers to the total amount of data received and sent by a cache unit per unit of time (e.g., bytes per second or data packets per second), reflecting the real-time data processing capability of the cache unit;
[0044] Cache data retention: refers to the amount of unsent data temporarily stored inside the cache unit, which directly reflects the data accumulation in the cache unit.
[0045] The data flow of the cache unit can dynamically reflect the flow status of data in the cache unit. The combination of its cumulative value or real-time value with the interaction of status signals can accurately capture bottlenecks and anomalies in the data transmission process, providing core data support for the calculation of subsequent sequence values and the diagnosis of traffic blocking nodes.
[0046] Step 200: Analyze the various traffic information to obtain various diagnostic sequences.
[0047] In this embodiment, traffic information corresponds one-to-one with diagnostic sequences. Each diagnostic sequence includes sequence values for each time period. The sequence value for each time period is used to represent the matching relationship between the status signal of the corresponding buffer unit and the data flow at that time period.
[0048] In a specific embodiment of this application, each diagnostic sequence is obtained by analyzing various traffic information, including steps 210 to 240.
[0049] Step 210: Based on each traffic information, obtain the first and second values of each time sequence of the corresponding traffic information.
[0050] In this embodiment, each traffic information includes multiple time sequences, and each time sequence corresponds to a first value and a second value. The first value is equal to the cumulative number of times the status signal of the cache unit corresponding to the corresponding traffic information under the corresponding time sequence has been pulled high. The second value is equal to the cumulative number of data flows of the cache unit corresponding to the corresponding traffic information under the corresponding time sequence.
[0051] In this embodiment, the cumulative number of times the status signal of a cache unit is raised refers to the sum of the number of times the full status signal and the empty status signal of the cache unit are raised. For example, from the start of the test to the current timing, if the total number of times the full status signal of a certain cache unit is raised is 100 and the total number of times the empty status signal is raised is 5, then the cumulative number of times the status signal of the cache unit is raised is equal to 100 + 5 = 105.
[0052] In this embodiment, the cumulative data circulation count of a cache unit refers to the sum of the cumulative number of read operations and write operations of the cache unit. For example, from the start of the test to the current timeline, if the total number of write operations of a certain cache unit is 20 and the total number of read operations is 50, then the cumulative data circulation count of that cache unit is equal to 20 + 50 = 70.
[0053] Step 220: Based on the first value and the second value of each time series, obtain the sequence value corresponding to the corresponding time series.
[0054] In this embodiment, the timing information refers to the discrete time nodes divided according to the chronological order during the traffic testing process of the design under test. Each timing sequence corresponds to a specific time coordinate (e.g., simulation clock cycle, actual test timestamp, etc.). Different timing sequences have a clear sequential relationship, which can completely cover the entire test period from start to finish. Under each timing sequence, the status signal of the cache unit (e.g., full / empty state, request signal, etc.) will present a specific logic level, and the data flow will also generate corresponding quantitative statistical results (e.g., cumulative received / sent data volume, read / write count, etc.). In other words, timing is one of the core dimensions of traffic information. By acquiring the status signal and data flow of each timing sequence, it is possible to dynamically track the working status of the cache unit and the data flow process, providing accurate time dimension support for calculating sequence values for each timing sequence and constructing a complete diagnostic sequence, ensuring that abnormal changes of the cache unit at different time stages can be captured.
[0055] In this embodiment, fine-grained, all-time tracking of the working status and data flow of cache units can be achieved. On the one hand, since the status signal and data flow of each cache unit corresponding to a specific time sequence are different at a specific time node, calculating the corresponding sequence value for a specific time sequence can avoid cross-time sequence data interference and ensure that the obtained sequence value can accurately represent the operating status of the cache unit at that time node. On the other hand, by sequentially traversing all unprocessed time sequences, it can be ensured that no time node is missed within the entire test cycle covered by the current traffic information. This provides coherent time-series data support for subsequently constructing a complete and continuous diagnostic sequence, thereby ensuring that when locating abnormal cache units based on the diagnostic sequence, abnormal fluctuations at different time stages can be captured, avoiding diagnostic biases caused by missing time sequences, and ultimately achieving accurate location of traffic congestion nodes.
[0056] In this embodiment, the source of each timing sequence in the traffic information is not restricted. Taking a simulation verification scenario as an example, the timing sequence can be directly divided using the simulation clock of the design under test (e.g., using every 5 or 10 simulation clock cycles as the timing basis). This timing sequence division method can adapt to the working rhythm of the internal synchronization signal of the design under test, ensuring that the timing sequence is consistent with the actual working rhythm of the cache unit. In hardware prototype testing (e.g., FPGA prototype verification) or actual deployment testing scenarios, the timing sequence can be generated using the physical timestamps recorded by the test equipment (e.g., logic analyzer or data acquisition card) (i.e., dividing the timing sequence according to the physical time units of milliseconds or seconds), which can fit the time dimension requirements of real application scenarios. Alternatively, the timing sequence can be generated using the key working events of the cache unit as trigger conditions, for example: when the status signal of the cache unit is sent... When a transition occurs (e.g., a full-state signal goes high from low, a request to receive signal goes low from high) or the data flow reaches a preset incremental threshold (e.g., the cumulative number of data packets sent increases by 50 or the cumulative number of read / write operations increases by 20), this moment is automatically marked as a timing node. This method can accurately capture key change stages in data transmission. Alternatively, timing can be dynamically generated based on the real-time data flow density of the buffer unit. For example, when the data flow is high per unit time (e.g., 300 data packets per second), timing nodes can be automatically encrypted (e.g., one timing node is generated every 1 clock cycle or 500 milliseconds); when the data flow density is low (e.g., less than 50 data packets per second), timing nodes can be automatically sparsed (e.g., one timing node is generated every 20 clock cycles or 5 seconds). This method can balance monitoring accuracy and data volume.
[0057] To avoid excessive timing information in the traffic flow, which could lead to excessive computational load and decreased diagnostic efficiency in the diagnostic sequence, one embodiment of this application can employ uniform and fixed intervals for timing data extraction. For example, in addition to the aforementioned physical time intervals of 5 seconds or 10 seconds, a fixed simulation clock cycle interval (e.g., every 8 or 16 simulation clock cycles) can be used to ensure uniform timing distribution and controllable total volume. Alternatively, the timing interval can be dynamically adjusted based on the workload of the cache unit. For example, when the cache unit's storage occupancy rate is higher than 60%, the timing interval can be reduced to 2 seconds or 5 clock cycles to ensure the accuracy of anomaly monitoring during high-load periods. When the storage occupancy rate is lower than 20%, the timing interval can be expanded to 15 seconds or 20 clock cycles to reduce redundant timing data during low-load periods. Alternatively, after generating the initial timing sequence, idle timing sequences without valid information (e.g., at a certain timing node, the cache unit's status signal remains unchanged and the data flow is 0) can be filtered out, retaining only valid timing sequences with status signal changes or data flow, further simplifying the total amount of timing data and reducing the computational complexity of the diagnostic sequence.
[0058] In this embodiment, the purpose of obtaining the sequence value corresponding to a certain time series is to quantify the correlation between the cumulative number of times the cache unit's status signal is raised (i.e., the first value) and the cumulative number of data flows (i.e., the second value) under that time series. This transforms the abstract signal interaction state and data flow efficiency into a directly measurable quantitative indicator, thereby accurately identifying whether there are any abnormalities in the data flow of the cache unit under that time series. As described below, in a non-blocking data scenario, the first and second values have the cooperative characteristics of synchronous growth, stable ratio, and consistent fluctuation. The sequence value is a direct quantitative representation of this cooperative relationship. For example, if the sequence value is within a reasonable range, it indicates that the raising behavior of the status signal and the data flow can be effectively matched, that is, the data transmission is smooth. If the sequence value exceeds the normal range, it directly reflects abnormal situations such as "frequent status signal flow but stagnant data flow" or "surge in data flow but no synchronous response from the status signal," providing a precise time-series basis for subsequent judgment on whether there is data accumulation or transmission bottleneck in the cache unit. Furthermore, as the core component of the diagnostic sequence, the sequence value can connect the operating states of the cache units under different time sequences, laying the foundation for building a complete diagnostic sequence and tracing the time nodes and evolution trends of anomalies, ultimately realizing a progressive diagnostic logic from capturing single-time-series anomalies to locating anomalies throughout the entire cycle.
[0059] It's important to note that, assuming no data congestion in the cache unit, the cumulative number of times the cache unit's status signal goes high (the first value) and the cumulative number of data flows (the second value) exhibit a dynamic, coordinated, and proportionally balanced relationship. Specifically, the core function of the status signal is to coordinate data flow (i.e., data reception or data transmission). In other words, the raising of the status signal is directly causally related to data flow operations. For example, after the "request to receive signal" goes high, if the upstream node responds, it triggers a write operation in the cache unit; after the "request to send signal" goes high, if the downstream node responds, it triggers a read operation in the cache unit. The raising of the "full status signal" and "empty status signal" correspond to the boundary conditions of data flow. That is, when the cache is full, data reception stops; when the cache is empty, data transmission stops. In other words, the raising frequency of the "full status signal" and "empty status signal" fluctuates regularly with changes in data flow.
[0060] Therefore, in a non-blocking data scenario, the correlation between the cumulative number of times the status signal of a cache unit goes high and the cumulative number of data flows is specifically manifested as follows:
[0061] Synchronization of growth: The first value (i.e., the cumulative number of times the status signal is raised) will increase reasonably as the second value (i.e., the cumulative number of times data flows) increases, and there will be no disconnect between "frequent raising of the status signal but stagnation of data flow" or "signaling of a large increase in data flow but very few raising of the status signal".
[0062] Ratio stability: The difference between the first and second values will remain within a small, fixed range, or the ratio between them will remain within a relatively stable range (for example, the status signal will be raised once every 3 to 5 data flow operations). This is because in a non-blocking data scenario, a valid status signal raising will directly correspond to data flow, while invalid status signal raising is extremely rare, thus making it less likely for the deviation between the first and second values to widen.
[0063] Fluctuation consistency: When the data flow increases, the frequency of the status signal rises synchronously; when the data flow decreases, the frequency of the status signal rises also decreases accordingly, and the fluctuation trends of the two are perfectly matched.
[0064] In a non-blocking data scenario, the essence of the correlation between the cumulative number of times the status signal of a cache unit goes high and the cumulative number of data flows is that "the status signal serves data flow." In a non-blocking scenario, the high-level behavior of the status signal revolves around the effective transmission of data, and there will be no signal idleness. Therefore, the correlation logic between the first and second values remains stable. In other words, if the correlation logic of a cache unit malfunctions, it indicates that the data flow corresponding to that cache unit is also likely to be abnormal. In other words, in this embodiment, any reasonable method can be used to obtain a sequence value corresponding to a certain time series based on the first and second values, as long as the sequence value can reflect whether there is an abnormality in the data flow of the cache unit corresponding to the traffic information at that time series. For example, in one embodiment of this application, the difference or ratio between the first and second values can be used as the sequence value.
[0065] As mentioned above, in a non-blocking data scenario, the difference between the sum of the number of times the full-state signal and the empty-state signal are raised (i.e., the first value) and the sum of the cumulative number of read and write operations of the cache unit (i.e., the second value) remains basically fixed within a unit of time. Based on this, in one embodiment of this application, step 220: based on the first value and the second value of each time sequence, obtaining the calculation formula for the sequence value corresponding to the corresponding time sequence (hereinafter referred to as the first formula) can be as follows:
[0066]
[0067] in, This represents the sequence value corresponding to a certain time series. This represents the first value corresponding to this timing sequence; This represents the second value corresponding to this timing sequence; This indicates the timing value corresponding to the timing sequence, which is a positive number that is not zero. This indicates that the absolute value is being calculated.
[0068] In this embodiment, there are no restrictions on the timing value corresponding to a certain timing sequence. For example, the timing value can be one of the positive integers arranged in sequence from 1, 2, 3, etc.; or it can be the time length value from the start of the test to the corresponding timing sequence (the unit can be milliseconds or seconds, etc.).
[0069] It should be noted that when using the ratio of the first value and the second value as the sequence value, in order to avoid the second value being 0 (e.g., the cache unit cannot perform read and write operations) and causing abnormal sequence value calculation, in one embodiment of this application, step 220: based on the first value and the second value of each time sequence, obtaining the calculation formula (hereinafter referred to as the second formula) for the corresponding time sequence can be as follows:
[0070]
[0071] in, This represents the sequence value corresponding to a certain time series. This represents the first value corresponding to this timing sequence; This represents the second value corresponding to this timing sequence; This represents a preset coefficient, which is any positive number that is not zero. For example, the preset coefficient can be 1, 2, or 10.
[0072] It should be noted that in this embodiment, in order to avoid the abnormality of the denominator being zero when processing other data (such as the fifth or sixth value mentioned below), the processing method of other data can also refer to the processing method of the second formula, which will not be elaborated further.
[0073] Step 230: If all time series in a traffic information are obtained with corresponding sequence values, then based on each sequence value, obtain the diagnostic sequence corresponding to the traffic information.
[0074] In other words, in this embodiment, the diagnostic sequence is a complete data sequence formed by arranging the sequence values corresponding to each time series in chronological order. Each sequence value corresponds to the correlation quantification result of the state signal and data flow of a cache unit under a specific time series. Therefore, the diagnostic sequence can completely and coherently reflect the data transmission status change trend of the cache unit at different time nodes throughout the entire test period, providing a structured and traceable data analysis basis for subsequent identification of abnormal cache units through sequence value anomalies.
[0075] Step 240: Based on the diagnostic sequences of each traffic information, obtain the respective diagnostic sequences.
[0076] In other words, in this embodiment, the traffic information corresponds one-to-one with the diagnostic sequence.
[0077] Step 300: Analyze each diagnostic sequence to obtain abnormal sequence values where the state signal and data flow do not match.
[0078] In this embodiment, any reasonable method can be used to analyze each diagnostic sequence to obtain abnormal sequence values where the state signal and data flow do not match. For example, the abnormal sequence value can be the first sequence value with the earliest time sequence among the various first sequence values mentioned below. In order to accurately locate the abnormal buffer unit based on the abnormal sequence value in step 400, in one embodiment of this application, step 300, analyzing each diagnostic sequence to obtain abnormal sequence values where the state signal and data flow do not match, includes steps 310 and 320.
[0079] Step 310: Based on each diagnostic sequence, obtain multiple first sequence values.
[0080] In this embodiment, the first sequence value is any sequence value among the various diagnostic sequences that is greater than or equal to a first preset value or less than or equal to a second preset value. The second preset value is less than the first preset value.
[0081] In this embodiment, the first and second preset values can be set according to needs or experience. For example, in an application scenario where the sequence value is calculated using the first formula, and under non-blocking data conditions, the vast majority (e.g., over 90%) of the sequence values fall within the range of 5 to 10. Therefore, the first preset value can be 10, and the second preset value can be 5; or, the first preset value can be 11, and the second preset value can be 5; or, the first preset value can be 10, and the second preset value can be 4; or, the first preset value can be 11, and the second preset value can be 4, etc. In an application scenario where the sequence value is calculated using the second formula, and under non-blocking data conditions, the vast majority (e.g., over 99%) of the sequence values fall within the range of 0.10 to 0.20. Therefore, the first preset value can be 0.20, and the second preset value can be 0.10; or, the first preset value can be 0.25, and the second preset value can be 0.05, etc.
[0082] Step 320: Obtain the abnormal sequence value based on each first sequence value.
[0083] It is important to note that during testing of the design under test, data within the design under test is always transmitted in the direction of "upstream node to downstream node". If a node experiences traffic congestion (i.e., data transmission is blocked at that node), it will directly affect the data flow of the downstream nodes corresponding to that node. Since the root cause of data congestion is concentrated in the node itself, this characteristic will be reflected in the temporal order of abnormal sequence values in the diagnostic sequence. That is, as the starting point of the data transmission bottleneck, the diagnostic sequence corresponding to the congested node will show sequence values indicating abnormal data flow earlier than the diagnostic sequences corresponding to the downstream nodes affected by it. Therefore, the scope of the traffic congestion node can be initially defined as: the node corresponding to the diagnostic sequence that first shows an abnormal sequence value (hereinafter referred to as "first node"), or the upstream or downstream node directly connected to the first node. Based on this, in this embodiment, the abnormal sequence value can be the sequence value with the earliest temporal order among the various first sequence values.
[0084] It should be noted that each first sequence value may contain some interference items not caused by design problems of the design under test itself (e.g., brief signal fluctuations during testing, instantaneous anomalies caused by environmental noise, etc.). If only the first sequence value at the beginning of the time sequence is taken as the abnormal sequence value, it may lead to deviations in the location of subsequent abnormal cache units and blocking nodes. In order to accurately filter out the abnormal sequence values that are truly caused by design defects of the design under test itself (e.g., data path logic loopholes or incompatible cache unit interaction protocols, etc.) and eliminate interference from non-design factors, in one embodiment of this application, step 320, based on each first sequence value, obtains the abnormal sequence value, including steps 321 to 325.
[0085] Step 321: According to the time sequence, traverse each first sequence value from front to back to obtain the second sequence value.
[0086] In this embodiment, the second sequence value is any sequence value among the various first sequence values that has not been determined to be an abnormal sequence value.
[0087] It is important to note that in this embodiment, the purpose of sequentially traversing each first sequence value from front to back to obtain the second sequence value is to follow the transmission timing logic of the internal data of the design under test "from upstream to downstream," prioritizing the investigation of the earliest appearing first sequence value. Since the root cause node of traffic congestion will experience data flow abnormalities before the downstream nodes affected by it, that is, the first sequence values corresponding to the root cause node of traffic congestion have a temporal order, the "front to back" traversal order can accurately pinpoint the initial time point of the abnormality, providing core temporal evidence for tracing the root cause of traffic congestion.
[0088] Step 322: Based on the second sequence value, obtain multiple third sequence values.
[0089] In this embodiment, each third sequence value is located in the same diagnostic sequence as the second sequence value. The time sequences of the third sequence values are sequentially adjacent, and the time sequence of each third sequence value is after the time sequence of the second sequence value. The second sequence value is time-adjacent to the first third sequence value among all the third sequence values.
[0090] In this embodiment, there is no limit to the number of each third sequence value obtained. That is, in this embodiment, the number of each third sequence value obtained can be selected according to needs, for example, the number of each third sequence value can be set to 10, 20, or 50, etc. In a specific embodiment of this application, if the second sequence value is... And since each third sequence value has 10 values, the third sequence values are as follows: , , ··· ;in, This represents the j-th sequence value (i.e., the second sequence value) in the i-th diagnostic sequence. to This represents the (j+1)th to (j+10)th sequence values (i.e., each third sequence value) in the i-th diagnostic sequence. The other number of third sequence values follow the same pattern and will not be listed or elaborated upon further.
[0091] Step 323: Obtain the third value based on each third sequence value.
[0092] In this embodiment, the third value is the number of sequence values among each third sequence value that are greater than or equal to the first preset value and less than or equal to the second preset value.
[0093] Step 324: Based on the third value, obtain the anomaly probability value.
[0094] In this embodiment, the anomaly probability value is used at least to characterize the probability of the second sequence value being an anomaly sequence value formed by a design defect in the design under test.
[0095] It is important to note that if the data congestion at a certain node is caused by a design flaw in the design under test, this congestion is not a transient signal fluctuation or environmental interference, but rather has systematic and continuous characteristics, continuously affecting the data flow efficiency of the cache unit in subsequent time sequences. Reflected in the third sequence value, multiple adjacent third sequence values after the second sequence value will consistently exhibit an abnormal state greater than or equal to the first preset value or less than or equal to the second preset value. In other words, congestion caused by design flaws will keep the correlation logic between the cache unit's state signal and data flow in an abnormal range for a long period, preventing situations where only a single time sequence is abnormal and subsequent time sequences recover to normal. Therefore, the corresponding third value will be significantly higher, which is fundamentally different from single or a few time sequence anomalies not caused by design flaws. Based on this, in this embodiment, it is sufficient if the anomaly probability value is positively correlated with the third value. That is, in this embodiment, the larger the third value, the larger the anomaly probability value, meaning the second sequence value is more likely to be an abnormal sequence value formed by a design flaw; conversely, the smaller the third value, the smaller the anomaly probability value, meaning the second sequence value is less likely to be an abnormal sequence value formed by a design flaw.
[0096] In a specific embodiment of this application, the third value can be directly used as the anomaly probability value.
[0097] In another specific embodiment of this application, the anomaly probability value may be equal to the ratio of the third value to the fourth value. The fourth value is equal to the total number of each third sequence value.
[0098] It's important to note that calculating the anomaly probability solely based on the third value itself or the ratio of the third to the fourth value, while initially identifying persistent anomalies, still overlooks crucial information contained in the dynamic trends of the sequence values. For example, traffic congestion caused by design flaws often exhibits persistence and gradual escalation, while anomalies triggered by non-design factors (e.g., transient signal interference, test environment fluctuations) are typically isolated and exhibit irregular fluctuations. The two show significant differences in their sequence value trends. Specifically, if the anomaly is caused by a design flaw in the design under test (e.g., data path logic conflicts or incompatible cache unit interaction protocols), subsequent third sequence values will show a continuous increasing or decreasing trend over time, reflected in a large absolute slope on the fitted line. Conversely, if the anomaly is caused by non-design factors, subsequent third sequence values will quickly return to normal, with a smooth overall change, and the slope of the fitted line will tend towards 0. Based on this, in order to more accurately eliminate interference from non-design factors and pinpoint the abnormal sequence values that are truly caused by design defects, in one embodiment of this application, step 324, based on the third value, obtains an abnormal probability value, including steps 324a to 324c.
[0099] Step 324a: Obtain the fitted straight line based on each third sequence value.
[0100] In this embodiment, the horizontal axis of the fitted line represents the time series, and the vertical axis represents the sequence values (i.e., each third sequence value). Fitting multiple time series values (i.e., each third sequence value) to obtain the corresponding fitted line is a mature technique, which will not be elaborated on here. For example, the least squares method, linear regression analysis, or the built-in functions of common data processing tools can be used to obtain the fitted line based on each third sequence value, such as the polyfit function in the numpy library of Python or the polyfit function in MATLAB.
[0101] Step 324b: Based on the fitted line, obtain the slope of the line.
[0102] In this embodiment, the slope of the straight line is the absolute value of the slope of the fitted straight line.
[0103] Step 324c: Obtain the anomaly probability value based on the slope of the line and the third value.
[0104] In this embodiment, a larger slope of the straight line indicates that the values of the third sequence are trending either larger or smaller, meaning that the second sequence values are more likely to be abnormal sequence values formed by design flaws in the design under test. In other words, in this embodiment, the anomaly probability value only needs to be positively correlated with the slope of the straight line. For example, the anomaly probability value can be equal to the sum or product of the slope of the straight line and the third value.
[0105] Step 325: If the abnormal probability value is greater than or equal to the third preset value, then the second sequence value is taken as the abnormal sequence value; otherwise, a new second sequence value is obtained, and multiple new third sequence values are obtained based on the new second sequence, until the abnormal sequence value is obtained.
[0106] In this embodiment, the third preset value can be set according to requirements. For example, the third preset value can be equal to 8 or 10. In one embodiment of this application, the abnormal probability value can be a value that has been mapped (that is, the abnormal probability value is mapped to the range of [0, 1]. Mapping the value to the range of [0, 1] is a mature technology and will not be elaborated here). If the abnormal probability value has been mapped, the third preset value can be equal to 0.7 or 0.8.
[0107] Step 400: Obtain the abnormal cache unit based on the abnormal sequence value.
[0108] In this embodiment, the abnormality cache unit is the cache unit corresponding to the first diagnostic sequence among various cache units, and the abnormality sequence value is located in the first diagnostic sequence.
[0109] Step 500: Determine the traffic blocking node based on the data interaction between the abnormal cache unit and upstream and downstream nodes and / or its own storage occupancy rate.
[0110] As mentioned above, steps 100 to 400 can initially define the scope of traffic-blocking nodes as: the node corresponding to the abnormal cache unit (i.e., the first node), or any node among the upstream and downstream nodes directly connected to the first node. In this embodiment, although traffic-blocking nodes can be further investigated manually, in order to achieve rapid location of traffic-blocking nodes, in one embodiment of this application, determining traffic-blocking nodes may include steps 510 to 530.
[0111] Step 510: Obtain target traffic information based on the abnormal caching unit.
[0112] In this embodiment, the target traffic information is the traffic information corresponding to the abnormal cache unit among the various traffic information.
[0113] Step 520: Based on the target traffic information, obtain the fifth and sixth values.
[0114] In this embodiment, the fifth value is equal to the ratio of the cumulative number of high-level signals requested to be received in the target traffic information to the number of data received. The sixth value is equal to the ratio of the cumulative number of high-level signals requested to be transmitted in the target traffic information to the number of data transmitted.
[0115] In this embodiment, the request to receive signal refers to the logic signal output by the cache unit when it has the ability to receive data. Its core function is to initiate a data reception request to the upstream node, informing the upstream node that it can transmit data to the current cache unit. When the signal goes high, it indicates that the cache unit is ready and can receive data sent by the upstream node. The upstream node can respond to the request and start data transmission.
[0116] In this embodiment, the request to send signal refers to the logical signal output by the cache unit when it has data to be sent. Its core function is to initiate a data sending request to the downstream node, informing the downstream node that it can receive the data transmitted by the current cache unit. When the signal goes high, it indicates that the cache unit has temporarily stored data to be sent and is ready to start the sending process. The downstream node can respond to the request and prepare to receive the data, thereby triggering the read operation of the cache unit, that is, retrieving the temporarily stored data in the cache unit and sending it to the downstream node.
[0117] Step 530: Based on the fifth and sixth values, obtain the traffic blocking nodes.
[0118] In this embodiment, the core physical significance of the fifth and sixth values lies in quantifying the data interaction efficiency between the anomaly caching unit and upstream and downstream nodes. Their ratio directly reflects the location characteristics of the data transmission bottleneck. Specifically, the essence of a traffic congestion node is a mismatch between the "request initiation" and the "actual data flow" in the data transmission link. The fifth and sixth values correspond precisely to the matching rates of data requests and actual data flow at the "receiving port" and "sending port" of the anomaly caching unit, respectively. Therefore, the root cause of traffic congestion can be accurately identified through the correlation analysis of the fifth and sixth values.
[0119] Specifically, the fifth value (i.e., the cumulative number of times the request to receive signal is raised / the number of data received) characterizes the effective response efficiency of the abnormal cache unit after initiating a receive request to the upstream node: the core purpose of raising the request to receive signal is to inform the upstream node that "the cache unit has the ability to receive". If the upstream node's data supply is normal, each time the request to receive signal is raised, it should correspond to a certain amount of data reception. At this time, the fifth value will remain within a reasonable range. If the fifth value is too large, it means that the abnormal cache unit frequently initiates receive requests, but the actual data received is very small. This means that the upstream node cannot respond to the receive request in a timely manner (it may be due to insufficient data generation by the upstream node itself, transmission path blockage, or abnormal handshake protocol between the upstream and the cache unit, etc.), resulting in the receive port request going idle.
[0120] The sixth value (i.e., the cumulative number of times the request to send signal is raised / the number of data sent) represents the effective response rate after the abnormal cache unit initiates a send request to the downstream node. The core purpose of raising the request to send signal is to inform the downstream node that "the cache unit has data to send". If the downstream node's receiving capability is normal, each time the request to send signal is raised, a certain amount of data should be sent. At this time, the sixth value will remain within a reasonable range. If the sixth value is too large, it means that the cache unit frequently initiates send requests, but very little data is actually sent. This means that the downstream node cannot respond to the send request in time (it may be that the downstream node's cache is full, the receiving path is blocked, or the handshake protocol between the downstream and the cache unit is abnormal, etc.), causing the send port request to idle.
[0121] In this embodiment, the approximate range of traffic congestion nodes can be determined by manually analyzing the fifth and sixth values and combining them with testing experience. It should be noted that manual determination is labor-intensive and inefficient, making it difficult to meet the precise diagnostic needs of large-scale, highly complex designs under test. To achieve automated location of traffic congestion nodes and improve the efficiency of diagnostic results, in one embodiment of this application, step 530, based on the fifth and sixth values, obtains the traffic congestion nodes, including steps 531 to 533.
[0122] Step 531: Based on the fifth value and the sixth value, obtain the numerical difference.
[0123] In this embodiment, the numerical difference is equal to the sixth numerical value minus the fifth numerical value.
[0124] In this embodiment, the numerical difference directly reflects the difference between the request for idle status at the receiving port and the request for idle status at the sending port of the abnormal cache unit. If the numerical difference is large, it indicates that the request for idle status at the sending port of the abnormal cache unit is more prominent, which tends to indicate that there is traffic congestion at the downstream node; if the numerical difference is small, it indicates that the request for idle status at the receiving port of the abnormal cache unit is more prominent, which tends to indicate that there is traffic congestion at the downstream node; if the numerical difference is in the middle range, it indicates that both the receiving port and the sending port are abnormal, and it can be determined that the congestion originates from the node corresponding to the abnormal cache unit itself.
[0125] It is important to note that the ranges for "large," "small," and "intermediate" numerical differences may vary across different application scenarios. For example, in big data analytics, due to the large volume of data, a numerical difference greater than or equal to 200 is considered "large," less than or equal to -200 is considered "small," and a difference greater than -200 but less than 200 is considered "intermediate." Conversely, in image processing, due to the smaller volume of data, a numerical difference greater than or equal to 20 is considered "large," less than or equal to -20 is considered "small," and a difference greater than -20 but less than 20 is considered "intermediate." In other words, in this embodiment, the determination of whether a numerical difference is "large," "small," or "intermediate" is based on fixed thresholds, but can be flexibly set and adjusted according to the specific diagnostic testing application.
[0126] Step 532: Obtain the blocking determination value based on the numerical difference.
[0127] In this embodiment, the blocking determination value is used at least to provide a standardized quantitative basis for accurately determining the specific location of the traffic blocking node (i.e., any node among the upstream node, the node corresponding to the abnormal cache unit itself, or the downstream node). As mentioned above, the specific location of the traffic blocking node can be roughly determined by the magnitude of the numerical difference. In other words, in this embodiment, the numerical difference can be directly used as the blocking determination value.
[0128] In order to further accurately determine the specific location of the traffic blocking node, in one embodiment of this application, step 532, based on the numerical difference, obtains the blocking determination value, including steps 532a to 532c.
[0129] Step 532a: Obtain storage occupancy rate.
[0130] In this embodiment, the storage occupancy rate is the average of the occupancy rates of the abnormal cache unit at each time step during the test.
[0131] It is important to note that, such as Figure 3As shown, if the traffic-blocking node is the upstream node of the abnormal cache unit (that is, the node corresponding to the abnormal cache unit is the downstream node), then the upstream node cannot stably supply data to the abnormal cache unit, causing the abnormal cache unit to frequently raise the request to receive signal (i.e., Figure 3 The ready handshake signal is received, but the actual amount of data received is extremely small, meaning the storage occupancy of the exception cache unit is extremely low (even close to or reaching an empty state, i.e.) Figure 3 (empty state in the data); if the traffic blocking node is the node corresponding to the abnormal cache unit, the abnormal cache unit may be unable to complete data transmission stably, that is, the storage occupancy rate fluctuates; such as Figure 4 As shown, if the traffic-blocking node is a downstream node of the abnormal caching unit (i.e., the node corresponding to the abnormal caching unit is an upstream node), then the downstream node cannot receive the data sent by the abnormal caching unit in a timely manner, causing the abnormal caching unit to frequently raise the request sending signal (i.e., Figure 4 (The handshake signal is valid), but the actual amount of data sent is extremely small. A large amount of data accumulates inside the exception buffer unit and cannot flow out. That is, the storage occupancy rate of the exception buffer unit is extremely high (even close to or reaching full). Figure 4 (The state of being in full).
[0132] Step 532b: Obtain the mapping value based on the storage occupancy rate.
[0133] In this embodiment, the mapped value is greater than or equal to -1 and less than or equal to 1. Mapping values to the range of [-1, 1] is a mature technology and will not be elaborated here.
[0134] As can be seen from the preceding text, in this embodiment, if the storage occupancy rate is closer to -1, it indicates that the traffic blocking node is more likely to be the upstream node of the abnormal cache unit; if the storage occupancy rate is closer to 0, it indicates that the traffic blocking node is more likely to be the node corresponding to the abnormal cache unit itself; if the storage occupancy rate is closer to 1, it indicates that the traffic blocking node is more likely to be the downstream node of the abnormal cache unit.
[0135] In this embodiment, converting the storage occupancy rate into a mapping value within the range of [-1, 1] is primarily intended to ensure that the mapping value and the numerical difference match in terms of numerical range, thereby unifying the dimensions of two different quantitative indicators during weight calculation. This avoids the situation where, in step 532c, the difference in the range of the mapping value and the numerical difference is too large, causing a certain indicator (i.e., the mapping value or the numerical difference) to be excessively amplified or weakened during the weighted fusion process.
[0136] Step 532c: Obtain the blocking determination value based on the numerical difference and the mapping value.
[0137] In this embodiment, the blocking determination value is a weighted sum of the numerical difference and the mapping value. Specifically, in step 532c, the formula for obtaining the blocking determination value based on the numerical difference and the mapping value is as follows:
[0138]
[0139] in, Indicates the blocking determination value; Indicates the first weight; Indicates the numerical difference; Indicates the second weight; This represents the mapped value.
[0140] In this embodiment, the first weight and the second weight can be set according to needs or experience. For example, the first weight and the second weight can both be 0.5; or the first weight can be 0.3 and the second weight can be 0.7; or the first weight can be 0.7 and the second weight can be 0.3, etc.
[0141] Step 533: If the blocking determination value is less than the fourth preset value, the traffic blocking node is determined to be the upstream node corresponding to the receiving port of the abnormal buffer unit; if the blocking determination value is greater than or equal to the fourth preset value and less than or equal to the fifth preset value, the traffic blocking node is determined to be the node corresponding to the abnormal buffer unit; if the blocking determination value is greater than the fifth preset value, the traffic blocking node is determined to be the downstream node corresponding to the sending port of the abnormal buffer unit; the fifth preset value is greater than the fourth preset value.
[0142] In this embodiment, the fourth preset value and the fifth preset value can be set according to needs or experience. For example, the fourth preset value can be -0.2; the fifth preset value can be 0.2; or the fourth preset value can be -0.3; the fifth preset value can be 0.3, etc.
[0143] This application achieves multi-dimensional and precise quantitative judgment of traffic blocking nodes by setting a blocking judgment value, which weights and integrates the data interaction efficiency between the abnormal cache unit and upstream and downstream nodes and the storage state of the cache unit itself. It can meet the traffic blocking node diagnosis needs of designs under test with varying complexity, such as large-scale on-chip systems, application-specific integrated circuits, and FPGA prototyping systems, providing efficient and reliable technical support for the functional optimization of designs under test and accelerating the verification and iteration process.
[0144] The proposed method for diagnosing traffic congestion nodes acquires traffic information such as status signals and data flow of each buffer unit. It calculates a sequence value related to the cumulative number of times the status signal spikes and the number of data flows, constructs a diagnostic sequence, locates abnormal buffer units, and ultimately identifies the traffic congestion node. This solution eliminates the need for manual frame-by-frame analysis of massive waveform files, replacing traditional manual tracking with time-series and quantitative analysis. This achieves automated and accurate diagnosis of congestion nodes, ensuring comprehensive coverage while reducing diagnostic workload and improving efficiency. It can adapt to the traffic congestion diagnosis needs of complex designs under test and shortens the verification cycle.
[0145] Having introduced the traffic congestion node diagnosis method proposed in the embodiments of this application, the following describes an embodiment of a traffic congestion node diagnosis device proposed in this application. This traffic congestion node diagnosis device is applied to a design under test, which includes multiple cache units. For example... Figure 5 As shown, the traffic congestion node diagnostic device 10 includes:
[0146] The monitoring unit 11 is used to acquire the traffic information of each cache unit; the traffic information corresponds one-to-one with the cache unit; each traffic information includes at least the status signals and data flow of each time sequence of the corresponding cache unit.
[0147] The processing unit 12 is used to analyze the traffic information to obtain the diagnostic sequences. The traffic information and the diagnostic sequences are in one-to-one correspondence. Each diagnostic sequence includes the sequence value of each time series. The sequence value of each time series is used to represent the matching relationship between the status signal of the corresponding buffer unit and the data flow in that time series.
[0148] In addition, each diagnostic sequence is analyzed to obtain abnormal sequence values where the state signal and data flow do not match;
[0149] Furthermore, based on the abnormal sequence value, an abnormal cache unit is obtained; the abnormal cache unit is the cache unit corresponding to the first diagnostic sequence among various cache units; the abnormal sequence value is located in the first diagnostic sequence;
[0150] Furthermore, based on the data interaction between the abnormal caching unit and its upstream and downstream nodes and / or its own storage occupancy rate, the traffic blocking node is determined.
[0151] As a specific embodiment of this application, the processing unit 12 is further configured to, based on each traffic information, obtain a first value and a second value for each time sequence of the corresponding traffic information; each traffic information includes multiple time sequences, and each time sequence corresponds to a first value and a second value; the first value is equal to the cumulative number of times the status signal of the cache unit corresponding to the corresponding traffic information is pulled high under the corresponding time sequence; the second value is equal to the cumulative number of times the data flows through the cache unit corresponding to the corresponding traffic information under the corresponding time sequence.
[0152] Furthermore, based on the first and second values of each time series, the sequence value corresponding to the corresponding time series is obtained;
[0153] Furthermore, if all time series data in a traffic information are obtained with corresponding sequence values, then a diagnostic sequence corresponding to the traffic information is obtained based on each sequence value.
[0154] Furthermore, based on the diagnostic sequences of each traffic information, the respective diagnostic sequences are obtained.
[0155] As a specific embodiment of this application, the processing unit 12 is further configured to obtain multiple first sequence values based on each diagnostic sequence; the first sequence value is any sequence value in each diagnostic sequence that is greater than or equal to a first preset value or less than or equal to a second preset value; the second preset value is less than the first preset value;
[0156] In addition, based on each first sequence value, abnormal sequence values are obtained.
[0157] As a specific embodiment of this application, the processing unit 12 is further configured to traverse each first sequence value sequentially from front to back according to the time sequence to obtain a second sequence value; the second sequence value is any sequence value among the first sequence values that has not been determined to be an abnormal sequence value;
[0158] Furthermore, based on the second sequence value, multiple third sequence values are obtained; each third sequence value is located in the same diagnostic sequence as the second sequence value; the time sequences of each third sequence value are sequentially adjacent, and the time sequence of each third sequence value is after the time sequence of the second sequence value; the second sequence value is temporally adjacent to the third sequence value with the earliest time sequence among the third sequence values;
[0159] And, based on each third sequence value, a third value is obtained; the third value is the number of sequence values among each third sequence value that are greater than or equal to a first preset value;
[0160] Furthermore, based on the third value, an anomaly probability value is obtained; the anomaly probability value is positively correlated with the third value.
[0161] Furthermore, if the abnormal probability value is greater than or equal to a third preset value, then the second sequence value is taken as the abnormal sequence value; otherwise, a new second sequence value is obtained, and multiple new third sequence values are obtained based on the new second sequence, until an abnormal sequence value is obtained.
[0162] As a specific embodiment of this application, the anomaly probability value is equal to the third value; or, the anomaly probability value is equal to the ratio of the third value and the fourth value; the fourth value is equal to the total number of each third sequence value;
[0163] Alternatively, the processing unit 12 is further configured to obtain a fitted straight line based on each of the third sequence values;
[0164] And, based on the fitted line, the slope of the line is obtained; the slope of the line is the absolute value of the slope of the fitted line;
[0165] Furthermore, based on the slope of the line and the third value, an anomaly probability value is obtained; the anomaly probability value is equal to the product of the slope of the line and the third value.
[0166] As a specific embodiment of this application, the processing unit 12 is further configured to obtain target traffic information based on the abnormal caching unit; the target traffic information is the traffic information corresponding to the abnormal caching unit;
[0167] Furthermore, based on the target traffic information, a fifth value and a sixth value are obtained; the fifth value is equal to the ratio of the cumulative number of times the requested signal to be received to the number of data received in the target traffic information; the sixth value is equal to the ratio of the cumulative number of times the requested signal to be sent to the number of data sent in the target traffic information.
[0168] Furthermore, based on the fifth and sixth values, traffic blocking nodes are obtained.
[0169] As a specific embodiment of this application, the processing unit 12 is further configured to obtain a numerical difference based on the fifth numerical value and the sixth numerical value; the numerical difference is equal to the sixth numerical value minus the fifth numerical value;
[0170] And, based on the numerical difference, a blocking determination value is obtained;
[0171] Furthermore, if the blocking determination value is less than the fourth preset value, the traffic blocking node is determined to be the upstream node corresponding to the receiving port of the abnormal buffer unit.
[0172] Furthermore, if the blocking determination value is greater than or equal to the fourth preset value and less than or equal to the fifth preset value, then the traffic blocking node is determined to be the node corresponding to the abnormal cache unit.
[0173] Furthermore, if the blocking determination value is greater than the fifth preset value, then the traffic blocking node is determined to be the downstream node corresponding to the sending port of the abnormal buffer unit; the fifth preset value is greater than the fourth preset value.
[0174] As a specific embodiment of this application, the processing unit 12 is further configured to obtain the storage occupancy rate; the storage occupancy rate is the average value of the occupancy rate of the abnormal cache unit at each time step during the test.
[0175] And, based on the storage occupancy rate, obtain a mapping value; the mapping value is greater than or equal to -1 and less than or equal to 1;
[0176] Furthermore, a blocking determination value is obtained based on the numerical difference and the mapping value; the blocking determination value is a weighted sum of the numerical difference and the mapping value.
[0177] The traffic congestion node diagnostic device proposed in this application acquires traffic information such as status signals and data flow of each buffer unit, calculates the sequence value related to the cumulative number of status signal spikes and data flow according to time sequence, constructs a diagnostic sequence, locates abnormal buffer units, and ultimately identifies the traffic congestion node. This solution eliminates the need for manual frame-by-frame analysis of massive waveform files, replacing traditional manual tracking with time-series and quantitative analysis to achieve automated and accurate diagnosis of congestion nodes. It ensures comprehensive coverage, reduces diagnostic workload, improves diagnostic efficiency, adapts to the traffic congestion diagnosis needs of complex designs under test, and shortens the verification cycle.
[0178] Having described the traffic congestion node diagnostic device proposed in the embodiments of this application, the following describes an embodiment of a computer-readable storage medium proposed in this application. This computer-readable storage medium stores a computer program, which, when executed by a processor, implements the traffic congestion node diagnostic method as described in any of the above embodiments.
[0179] Having described the computer-readable storage medium proposed in the embodiments of this application, the following describes an embodiment of a server proposed in this application. Please refer to... Figure 6 , Figure 6This is a schematic diagram of a server structure provided in an embodiment of this application. The server 1100 can vary significantly due to different configurations or performance. It may include one or more central processing units (CPUs) 1122 (e.g., one or more processors) and memory 1132, and one or more storage media 1130 (e.g., one or more mass storage devices) for storing application programs 1142 or data 1144. The memory 1132 and storage media 1130 may be temporary or persistent storage. The program stored in the storage media 1130 may include one or more modules (not shown in the figure), each module may include a series of instruction operations on the server. Furthermore, the CPU 1122 may be configured to communicate with the storage media 1130 and execute the series of instruction operations in the storage media 1130 on the server 1100.
[0180] Server 1100 may also include one or more power supplies 1126, one or more wired or wireless network interfaces 1150, one or more input / output interfaces 1158, and / or one or more operating systems 1141, such as Windows Server, Mac OS X, Unix, Linux, FreeBSD, etc.
[0181] The steps performed by the processing unit 12 in the above embodiments can be based on this Figure 6 The structure of server 1100 shown. For example, as in the above embodiment, by Figure 5 The steps performed by the monitoring unit 11 or processing unit 12 shown can be based on this Figure 6 The server structure is shown. For example, the central processing unit 1122 performs the following operations by calling instructions from memory 1132:
[0182] Obtain traffic information for each cache unit; traffic information corresponds one-to-one with cache unit; each traffic information includes at least the status signals and data flow of each time sequence of the corresponding cache unit;
[0183] Based on the analysis of various traffic information, various diagnostic sequences are obtained; there is a one-to-one correspondence between traffic information and diagnostic sequences; each diagnostic sequence includes sequence values for each time series; the sequence value for each time series is used to represent the matching relationship between the status signal and data flow of the corresponding cache unit at that time series;
[0184] Each diagnostic sequence is analyzed to obtain abnormal sequence values where the state signal and data flow do not match;
[0185] Based on the abnormal sequence value, an abnormal cache unit is obtained; the abnormal cache unit is the cache unit corresponding to the first diagnostic sequence among various cache units; the abnormal sequence value is located in the first diagnostic sequence.
[0186] Based on the data interaction between the abnormal cache unit and its upstream and downstream nodes and / or its own storage occupancy rate, the traffic blocking node is determined.
[0187] In the above embodiments, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions in other embodiments.
[0188] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and modules described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0189] In the embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be indirect coupling or communication connection through some interfaces, apparatuses, or modules, and may be electrical, mechanical, or other forms.
[0190] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules; that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.
[0191] Furthermore, the functional modules in the various embodiments of this application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module. The integrated module can be implemented in hardware or as a software functional module. If the integrated module is implemented as a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium.
[0192] In the above embodiments, the implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, in the form of a computer program product.
[0193] The computer program product includes one or more computer instructions. When the computer program is loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any usable medium that a computer can store or a data storage device such as a server or data center that integrates one or more usable media. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., a solid-state disk (SSD)).
[0194] The technical solutions provided in the embodiments of this application have been described in detail above. Specific examples have been used in the embodiments of this application to illustrate the principles and implementation methods of the embodiments of this application. The description of the above embodiments is only for the purpose of helping to understand the methods and core ideas of the embodiments of this application. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of the embodiments of this application. Therefore, the content of this specification should not be construed as a limitation on the embodiments of this application.
Claims
1. A method for diagnosing traffic congestion nodes, applied to a design under test, the design under test comprising multiple cache units; characterized in that, include: Obtain traffic information for each cache unit; Traffic information corresponds one-to-one with cache units; Each flow information includes at least the status signals and data flow of each time sequence of the corresponding cache unit; Based on the analysis of various traffic information, various diagnostic sequences are obtained; there is a one-to-one correspondence between traffic information and diagnostic sequences; each diagnostic sequence includes sequence values for each time series; the sequence value for each time series is used to represent the matching relationship between the status signal and data flow of the corresponding cache unit at that time series; Each diagnostic sequence is analyzed to obtain abnormal sequence values where the state signal and data flow do not match; Based on the abnormal sequence value, an abnormal cache unit is obtained; the abnormal cache unit is the cache unit corresponding to the first diagnostic sequence among various cache units; the abnormal sequence value is located in the first diagnostic sequence. Based on the data interaction between the abnormal cache unit and its upstream and downstream nodes and / or its own storage occupancy rate, the traffic blocking node is determined; The analysis based on various traffic information yields various diagnostic sequences, including: Based on each traffic information, obtain the first and second values for each time sequence of the corresponding traffic information; each traffic information includes multiple time sequences, and each time sequence corresponds to a first value and a second value; the first value is equal to the cumulative number of times the status signal of the cache unit corresponding to the corresponding traffic information is pulled high under the corresponding time sequence; the second value is equal to the cumulative number of times the data flows through the cache unit corresponding to the corresponding traffic information under the corresponding time sequence. Based on the first and second values of each time series, obtain the sequence value corresponding to the corresponding time series; If all time series data in a traffic information are obtained with corresponding sequence values, then a diagnostic sequence corresponding to the traffic information is obtained based on each sequence value. Based on the diagnostic sequences of each traffic information, the various diagnostic sequences are obtained.
2. The method for diagnosing traffic congestion nodes according to claim 1, characterized in that, The analysis of each diagnostic sequence to obtain abnormal sequence values where the state signal and data flow do not match includes: Based on each diagnostic sequence, multiple first sequence values are obtained; each first sequence value is any sequence value in each diagnostic sequence that is greater than or equal to a first preset value or less than or equal to a second preset value; the second preset value is less than the first preset value. Based on each first sequence value, obtain the abnormal sequence value.
3. The method for diagnosing traffic congestion nodes according to claim 2, characterized in that, The step of obtaining abnormal sequence values based on each first sequence value includes: The second sequence value is obtained by traversing each first sequence value sequentially from front to back according to the time sequence; the second sequence value is any sequence value among each first sequence value that has not been determined to be an abnormal sequence value. Based on the second sequence value, multiple third sequence values are obtained; each third sequence value is located in the same diagnostic sequence as the second sequence value; the time sequences of each third sequence value are sequentially adjacent, and the time sequence of each third sequence value is after the time sequence of the second sequence value; the second sequence value is temporally adjacent to the third sequence value with the earliest time sequence among all the third sequence values; Based on each third sequence value, a third value is obtained; the third value is the number of sequence values among each third sequence value that are greater than or equal to a first preset value. Based on the third value, an anomaly probability value is obtained; the anomaly probability value is positively correlated with the third value. If the abnormal probability value is greater than or equal to the third preset value, then the second sequence value is taken as the abnormal sequence value; otherwise, a new second sequence value is obtained, and multiple new third sequence values are obtained based on the new second sequence, until an abnormal sequence value is obtained.
4. The method for diagnosing traffic congestion nodes according to claim 3, characterized in that, The anomaly probability value is equal to the third value; or, the anomaly probability value is equal to the ratio of the third value to the fourth value. The fourth value is equal to the total number of all third sequence values; Alternatively, obtaining the anomaly probability value based on the third numerical value includes: Based on the values of each third sequence, obtain the fitted straight line; Based on the fitted line, the slope of the line is obtained; the slope of the line is the absolute value of the slope of the fitted line. An anomaly probability value is obtained based on the slope of the line and the third value; the anomaly probability value is equal to the product of the slope of the line and the third value.
5. The method for diagnosing traffic congestion nodes according to any one of claims 1 to 4, characterized in that, The process of identifying the traffic-blocking node includes: Based on the abnormal caching unit, target traffic information is obtained; the target traffic information is the traffic information corresponding to the abnormal caching unit. Based on the target traffic information, a fifth value and a sixth value are obtained; the fifth value is equal to the ratio of the cumulative number of times the requested signal is raised to the number of data received in the target traffic information; the sixth value is equal to the ratio of the cumulative number of times the requested signal is raised to the number of data sent in the target traffic information. Based on the fifth and sixth values, the traffic blocking nodes are obtained.
6. The method for diagnosing traffic congestion nodes according to claim 5, characterized in that, The step of obtaining the traffic blocking node based on the fifth and sixth values includes: Based on the fifth value and the sixth value, a numerical difference is obtained; the numerical difference is equal to the sixth value minus the fifth value; Based on the numerical difference, a blockage determination value is obtained; If the blocking determination value is less than the fourth preset value, then the traffic blocking node is determined to be the upstream node corresponding to the receiving port of the abnormal buffer unit; If the blocking determination value is greater than or equal to the fourth preset value and less than or equal to the fifth preset value, then the traffic blocking node is determined to be the node corresponding to the abnormal cache unit. If the blocking determination value is greater than the fifth preset value, then the traffic blocking node is determined to be the downstream node corresponding to the sending port of the abnormal cache unit; the fifth preset value is greater than the fourth preset value.
7. The method for diagnosing traffic congestion nodes according to claim 6, characterized in that, The step of obtaining the blocking determination value based on the numerical difference includes: Obtain the storage occupancy rate; the storage occupancy rate is the average of the occupancy rates of the abnormal cache unit at various time intervals during the test. Based on the storage occupancy rate, a mapping value is obtained; the mapping value is greater than or equal to -1 and less than or equal to 1. Based on the numerical difference and the mapping value, a blocking determination value is obtained; the blocking determination value is a weighted sum of the numerical difference and the mapping value.
8. A traffic congestion node diagnostic device, applied to a design under test, the design under test comprising multiple cache units; characterized in that, include: The monitoring unit is used to obtain traffic information for each cache unit; Traffic information corresponds one-to-one with cache units; Each flow information includes at least the status signals and data flow of each time sequence of the corresponding cache unit; The processing unit is used to analyze various traffic information to obtain various diagnostic sequences; there is a one-to-one correspondence between traffic information and diagnostic sequences; each diagnostic sequence includes sequence values for each time series; the sequence value for each time series is used to represent the matching relationship between the status signal of the corresponding buffer unit and the data flow in that time series; Furthermore, the analysis of each diagnostic sequence yields abnormal sequence values where the state signal and data flow do not match. Furthermore, based on the abnormal sequence value, an abnormal cache unit is obtained; the abnormal cache unit is the cache unit corresponding to the first diagnostic sequence among various cache units; the abnormal sequence value is located in the first diagnostic sequence; Furthermore, based on the data interaction between the abnormal caching unit and its upstream and downstream nodes and / or its own storage occupancy rate, traffic blocking nodes are determined; The processing unit is further configured to, based on each traffic information, obtain a first value and a second value for each time sequence of the corresponding traffic information; each traffic information includes multiple time sequences, and each time sequence corresponds to a first value and a second value; the first value is equal to the cumulative number of times the status signal of the cache unit corresponding to the traffic information under the corresponding time sequence has been pulled high. The second value equals the cumulative number of data flows in the cache unit corresponding to the corresponding traffic information under the corresponding time sequence; Furthermore, based on the first and second values of each time series, the sequence value corresponding to the corresponding time series is obtained; Furthermore, if all time series data in a traffic information are obtained with corresponding sequence values, then a diagnostic sequence corresponding to the traffic information is obtained based on each sequence value. Furthermore, based on the diagnostic sequences of each traffic information, the respective diagnostic sequences are obtained.
9. A computer-readable storage medium, characterized in that, It stores a computer program that, when executed by a processor, implements the traffic congestion node diagnosis method as described in any one of claims 1 to 7.