Tracking information transmission system, method, storage medium and integrated circuit product

By dynamically marking transaction messages in the SoC design and having the routing node automatically generate tracing information, the problem of difficulty in tracing the complete routing path of transaction messages during adaptive routing is solved, achieving efficient fault location and system performance improvement.

CN121116765BActive Publication Date: 2026-04-07SANECHIPS TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-11-14
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

In existing technologies, adaptive routing is difficult to track the complete routing path of transaction packets in real time in SoC design, leading to load imbalance and reduced transmission efficiency, and is also complex to configure.

Method used

Transaction packets are dynamically marked at the device level. Target transaction packets are marked by setting flag bits, and tracing information is automatically generated by the routing node. No routing node configuration is required, enabling accurate tracing of adaptive routing paths.

Benefits of technology

It enables the restoration of transaction message routing paths, efficiently locates transmission fault points, and improves the maintainability and performance debugging efficiency of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121116765B_ABST
    Figure CN121116765B_ABST
Patent Text Reader

Abstract

This application provides a tracking information transmission system, method, storage medium, and integrated circuit product. The system includes at least one device and multiple routing nodes. The device generates or processes transaction messages and sets a flag bit in a target transaction message that meets preset conditions to be valid. The routing nodes route transaction messages and generate tracking information for the target transaction message when a target transaction message with a valid flag bit is identified. This application dynamically marks transaction messages and automatically generates tracking information in the nodes, solving the problem in related technologies where it is difficult to track the complete routing path of transaction messages in real time when using adaptive routing. It achieves the restoration of the routing path of transaction messages, efficiently locates transaction transmission fault points, and improves the maintainability and performance debugging efficiency of the system.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Embodiments of the present application relate to the field of System on Chip (SoC) debugging, in particular, to a trace information transmission system and method, a storage medium and an integrated circuit product. BACKGROUND

[0002] In modern SoC design, network interconnection architecture plays a vital role in realizing efficient communication between various devices (such as cores, memories, etc.) within the SoC, thereby meeting the stringent requirements of high-end network and enterprise computing applications for power consumption, performance and area (Power Performance Area, PPA). Trace technology is mainly used to record detailed information of the chip during operation, including instruction execution, data flow, etc. For network interconnection trace, the main approach is to embed a debug trace module in each node to record key information, and finally output in a fixed trace format after aggregation at a specified node.

[0003] Currently, through research on interconnection network tracing methods, the trace information of the interconnection network is mainly captured by the debug trace module embedded in each routing node on all devices mounted on the routing node and the transaction data generated by the node itself. The node is a unit that constitutes the interconnection network and is responsible for the routing function of the transaction. The device is a unit mounted on the node and is responsible for the module that issues or processes transactions, such as cores, Double Data Rate (DDR) memories, etc. Finally, the specified trace packet format is aggregated to the specified node for reorganization and output to the downstream for processing. The number of nodes in the interconnection network currently supports up to 12x12; the number of devices supported by each node is usually 4; when the transaction of the device mounted on the node is busy, a lot of trace data will be generated. In order to improve system performance, the working frequency of the interconnection network is generally high, and the scale is large. If the system downstream of the interface does not process the trace data in time, the loss of trace data will increase; more importantly, the current trace information capture is performed by configuring observation point registers in each node, and the prerequisite is to know the routing rules, i.e. fixed routing, which needs to be determined whether the transaction has passed through the node during transmission according to the capture situation of the observation point.

[0004] However, when the interconnection network is too large, fixed routing of routing can easily lead to load imbalance and reduce transmission efficiency, and if adaptive routing is used, it will not be possible to know the routing direction in advance, and it is not clear which node observation point registers need to be configured. Although all nodes can be configured, the amount of configuration is too large.

[0005] There is no good solution in the related art for the above problems. SUMMARY

[0006] This application provides a tracking information transmission system, method, storage medium, and integrated circuit product to at least solve the problem in the related art that it is difficult to track the complete routing path of transaction messages in real time when using adaptive routing.

[0007] According to one embodiment of this application, a tracking information transmission system is provided, comprising: at least one device and multiple routing nodes, wherein the device is configured to generate or process transaction messages and set a flag bit in a target transaction message that meets preset conditions to be valid; the routing nodes are configured to route transaction messages and generate tracking information of the target transaction message when a target transaction message with a valid flag bit is identified.

[0008] According to another embodiment of this application, a tracking information transmission method is provided, applied to the tracking information transmission system in the above embodiment. The method includes: setting a flag bit in a target transaction message that meets preset conditions to be valid through a device; identifying a target transaction message with a valid flag bit through a routing node; and generating tracking information of the target transaction message when the target transaction message is identified.

[0009] According to yet another embodiment of this application, a computer-readable storage medium is also provided, which stores a computer program, wherein the computer program, when executed by a processor, implements the steps in any of the above method embodiments.

[0010] According to yet another embodiment of this application, an electronic device is also provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in any of the above method embodiments.

[0011] According to yet another embodiment of this application, a computer program product is also provided, including a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.

[0012] According to yet another embodiment of this application, an integrated circuit product is also provided, including the tracking information transmission system described in the above embodiments.

[0013] Through the above embodiments of this application, transaction messages can be dynamically marked at the device. No node configuration is required. The device can automatically detect whether the flag bit of the transaction message is valid, thereby generating tracking information for specific transaction messages. This solves the problem in related technologies where it is difficult to track the complete routing path of transaction messages in real time when using adaptive routing. It realizes the restoration of the routing path of transaction messages, efficiently locates the transaction transmission fault point, and improves the maintainability and performance debugging efficiency of the system. Attached Figure Description

[0014] Figure 1 This is a hardware structure block diagram of the mobile terminal used in the method embodiments of this application;

[0015] Figure 2 This is a structural block diagram (a) of a tracking information transmission system according to an embodiment of this application;

[0016] Figure 3 This is a structural block diagram (II) of a tracking information transmission system according to an embodiment of this application;

[0017] Figure 4 This is a flowchart illustrating a tracking information transmission method according to an embodiment of this application;

[0018] Figure 5 This is a schematic diagram of the transaction message routing path and the tracking information reporting path in one embodiment of this application;

[0019] Figure 6 This is a schematic diagram of the process of tracking transaction message transmission in one embodiment of this application;

[0020] Figure 7 This is a schematic diagram of the masking logic in one embodiment of this application;

[0021] Figure 8 This is a schematic diagram of the tracking information format in one embodiment of this application. Detailed Implementation

[0022] The embodiments of this application will be described in detail below with reference to the accompanying drawings and examples.

[0023] It should be noted that the terms "first," "second," etc., in the specification, claims, and drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.

[0024] The embodiments in this application can be applied to integrated circuits or integrated circuit products such as chips, dies, systems-on-chips (SoCs), wafer-level packages (WLPs), and chiplets. An integrated circuit may include multiple devices, which communicate internally via an interconnect network. These devices can communicate with each other through nodes in the interconnect network. A node is a unit that makes up the interconnect network and is responsible for routing transactions; therefore, it can also be called a routing node. A device is a unit attached to a node and is a module responsible for generating or processing transactions. Devices may include processing units such as processor cores (e.g., CPU cores, NPU cores, DSP cores), neural processing units (NPUs), digital signal processors (DSPs), video processing units (VPUs), field-programmable gate arrays (FPGAs), and configurable logic units. They may also include storage units such as cache memory, notepad memory, register files, embedded flash memory, and double data rate (DDR) memory.

[0025] The methods and embodiments provided in this application can be executed on a mobile terminal, computer terminal, or similar computing device. Taking running on a mobile terminal as an example, Figure 1 This is a hardware structure block diagram of the mobile terminal used in the embodiments of the method of this application. For example... Figure 1 As shown, a mobile terminal may include one or more ( Figure 1 Only one is shown in the diagram. A processor 102 (which may include, but is not limited to, a microprocessor MCU or a programmable logic device FPGA, etc.) and a memory 104 for storing data are also shown. The mobile terminal may further include a transmission device 106 for communication functions and an input / output device 108. Those skilled in the art will understand that... Figure 1 The structure shown is for illustrative purposes only and does not limit the structure of the mobile terminal described above. For example, the mobile terminal may also include components that are more... Figure 1 The more or fewer components shown, or having the same Figure 1 The different configurations shown.

[0026] The memory 104 can be used to store computer programs, such as application software programs and modules, like the computer program corresponding to the tracking information transmission method in this embodiment. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, thus implementing the aforementioned method. The memory 104 may include high-speed random access memory and non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 104 may further include memory remotely located relative to the processor 102, and these remote memories can be connected to the mobile terminal via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.

[0027] The transmission device 106 is used to receive or send data via a network. Specific examples of the network described above may include a wireless network provided by the mobile terminal's communication provider. In one example, the transmission device 106 includes a Network Interface Controller (NIC), which can connect to other network devices via a base station to communicate with the Internet. In another example, the transmission device 106 may be a Radio Frequency (RF) module, used for wireless communication with the Internet.

[0028] One embodiment of this application provides a tracking information transmission system. Figure 2 This is a structural block diagram (I) of a tracking information transmission system according to an embodiment of this application, as shown below. Figure 2 As shown, the system includes at least one device 10 and multiple routing nodes 20.

[0029] Device 10 is used to generate or process transaction messages and set the flag bits in target transaction messages that meet preset conditions to be valid;

[0030] Routing node 20 is used to route the transaction message and generate tracking information for the target transaction message when the flag bit is identified as valid.

[0031] In this embodiment, when it is necessary to trace a specific transaction message, corresponding preset conditions can be set in the device 10 that generated the transaction message to mark it. Each routing node 20 does not need to be configured separately; it only needs to generate tracing information based on the marking. This solves the problem in related technologies where it is difficult to trace the complete routing path of a transaction message in real time when using adaptive routing. It realizes the restoration of the routing path of the transaction message, efficiently locates the transaction transmission failure point, and improves the maintainability and performance debugging efficiency of the system.

[0032] In this embodiment, the system can be applied in SoC network interconnection scenarios. The system can reside in integrated circuits or integrated circuit products such as chips, dies, systems-on-chips (SoCs), wafer-level packages (WLPs), and chiplets, or in an electronic device containing a processor and memory, such as a computer terminal or mobile terminal, but is not limited thereto. In SoC network interconnection, a device refers to a module that issues or processes transactions, including processing units and storage units, such as CPU cores, NPUs, DSPs, etc., or storage units such as cache memory, embedded Flash, DDR memory, etc. Devices communicate with each other through nodes. Device 10 can be mounted on routing nodes 20, and each routing node 20 can mount one or more devices 10.

[0033] In this embodiment, the tracing information is also called a tracing packet or trace packet, and it typically uses a fixed format, but can also use the simplified format proposed in this application. The tracing information is a complete, timestamped, and traceable record of all observable events during an end-to-end transaction or a call / location update. By collecting the tracing information of the same transaction message at various nodes, the routing path of the transaction message can be reconstructed. When the transmission of the transaction message is interrupted, the cause of the transaction interruption can also be diagnosed based on the last tracing information of the transaction message, thus enabling fault location.

[0034] In this embodiment, a transaction message is a data packet transmitted in the SoC network interconnection, containing information from the source device to the destination device, including but not limited to source ID, destination ID, transaction ID, and data content. The transaction message includes a flag bit, a special bit used to mark a specific transaction.

[0035] In some embodiments, each routing node may use fixed routing or adaptive routing.

[0036] In some embodiments, each of the devices includes a first debug tracing module and a first register, wherein the first register is used to store the preset conditions, and different devices correspond to the same or different preset conditions; the first debug tracing module is used to monitor the transaction message, and when the content of the transaction message satisfies the preset conditions stored in the first register, the transaction message is identified as the target transaction message and the flag bit in the target transaction message is set to valid.

[0037] In this embodiment, this mechanism allows the device to automatically mark important transactions before sending them, achieving accurate tracking of adaptive routing paths without relying on complex configurations of nodes in the Internet. Multiple preset conditions can be set simultaneously on one or different devices to enable simultaneous monitoring of different transaction packets, further improving debugging efficiency.

[0038] In some embodiments, the preset conditions may include at least one of the following: target transaction source information, target transaction destination information, target transaction identifier information, and target channel information. However, this application is not limited to these; the preset conditions can be set for any field in the transaction message, and staff can also configure the preset conditions stored in the first register as needed to monitor specified transaction messages, providing high flexibility in scenarios such as fault location, chip debugging, and performance optimization.

[0039] In this embodiment, the target transaction source information may be the address, identifier, or other information of the transaction source device; the target transaction destination information may be the address, identifier, or other information of the transaction destination device; the target transaction identifier information may be the transaction identifier, transaction number, or other information used to distinguish different transactions; when a transaction involves multiple independent channels, such as requests, responses, and data, they can be distinguished by the target channel information, which may be the channel number, channel identifier, or other information.

[0040] In some embodiments, each routing node includes a second debug tracing module, wherein the second debug tracing module is used to generate tracing information for the target transaction message when the flag bit is identified as valid. In this embodiment, no routing node configuration is required; each routing node can automatically monitor whether the flag bit in the transaction message passing through the current routing node is valid, and generate tracing information for target transaction messages with valid flag bits.

[0041] In some embodiments, the routing node is provided with multiple entries, each entry storing at most one piece of the tracing information. The second debugging tracing module is further configured to, when multiple target transaction messages in multiple output directions and / or multiple channels are identified, sequentially store the corresponding multiple pieces of tracing information into the multiple entries, and when the number of tracing information is greater than the number of entries in the routing node, set the lost information in the tracing information to be valid.

[0042] In this embodiment, loss information can be carried through the "lossy" field in the tracking data packet, indicating whether information was lost during data transmission. If a node loses some information due to resource limitations during the retrieval process, the "lossy" field will be set (i.e., set to valid), indicating that there may be incompleteness during path reconstruction. Entry points are used within the routing node to temporarily store generated tracking information. The number of entries per node is limited, and the number of entries determines the amount of tracking information a node can store; exceeding this limit may result in tracking information loss.

[0043] In this embodiment, the routing node only captures transaction packets in the output direction. For example, the resource can currently have 4 output directions, and each output direction has 5 output channels, which means that a maximum of 20 transaction packets will be captured. When the number of captured transaction packets exceeds the number of entries, the node will be unable to continue storing the relevant tracking information, which will result in the reported corresponding routing path being incomplete.

[0044] In some embodiments, the second debug tracking module is further configured to sequentially monitor transaction messages in multiple output directions, and when the target transaction message is identified in the current output direction, determine the direction information in the corresponding tracking information based on the current output direction, and switch to the next output direction for monitoring and identification. For example, the direction information can be carried by a direction field in the tracking data packet.

[0045] In some embodiments, each routing node may have four output ports in different directions. For example, the output directions may include east, west, north, south, or up, down, left, and right, to indicate which port of the routing node the transaction message should be output through so as to forward it to the next routing node. The output directions can be captured according to a preset priority order. For example, they can be captured in the order of east, west, north, and south, but this application is not limited to this.

[0046] In some embodiments, the second debug tracing module is further configured to sequentially monitor the transaction messages of multiple channels according to mask information in each output direction. If the target transaction message is identified on the current channel, the module determines the channel information in the corresponding tracing information based on the current channel and sets the bit in the mask information corresponding to the current channel to valid. The valid bit in the mask information indicates a channel where the target transaction message has been identified and no further monitoring is required. For example, the channel information can be carried by the channel field in the tracing data packet.

[0047] In this embodiment, to ensure the integrity of transaction capture, each direction needs to be selected sequentially, and channels 0 to 4 are selected sequentially in each direction for transaction capture. Since different channels of the same transaction will not simultaneously carry valid flag bits on the same node, when a channel in a certain direction meets the condition (e.g., a transaction with a valid flag bit is captured), the selection of other channels in that direction can be stopped, and selection can proceed to the next direction. Furthermore, since the same channel of the same transaction will not simultaneously carry valid flag bits in different output directions, after selecting a channel from the previous direction, the corresponding bit in the mask is marked. This allows the channel to be masked during selection in the next direction, avoiding repeated selection of the same channel. This mechanism ensures that the debug tracing module can comprehensively capture transactions in all directions and channels, avoiding omissions, and also improves the capture efficiency of the debug tracing module.

[0048] In some embodiments, the routing node further includes a second register, and the second debug tracing module has a first mode and a second mode, wherein, in response to the second debug tracing module being in the first mode, the second register is used to store the tracing conditions of the transaction message, and the second debug tracing module is used to generate corresponding tracing information when a transaction message that meets the tracing conditions is identified; in response to the second debug tracing module being in the second mode, the second debug tracing module is used to generate tracing information of the target transaction message when a target transaction message with a valid flag bit is identified.

[0049] In this embodiment, compatibility with traditional tracing methods can be achieved by configuring the second register, that is, configuring relevant information or conditions of the transaction messages to be traced at each routing node. By switching between the first mode and the second mode, the tracing method adopted in this application can be switched dynamically and flexibly.

[0050] Figure 3 This is a structural block diagram (II) of the tracking information transmission system according to an embodiment of this application, as shown below. Figure 3 As shown, in addition to the device 10 and routing node 20 described in the above embodiments, the system also includes a convergence node 30.

[0051] The routing node 20 is also used to send the tracking information to the aggregation node;

[0052] Aggregation node 30 is used to collect and process the tracing information generated by all routing nodes.

[0053] In some embodiments, one of the multiple routing nodes can be configured as an aggregation node; the aggregation node can also be an additional node or an aggregation device mounted on a routing node, and this application does not limit this. In this embodiment, the aggregation node can collect the tracking data of each routing node within the same chip / die, perform preliminary processing such as format sorting, protocol conversion, or information completion, and then send it to the upper-level memory or processor.

[0054] In some embodiments, each piece of tracking information includes time information at which the routing node identified the target transaction message. Exemplarily, the time information may be carried by a timestamp field in the tracking data packet. The time information may be a full timestamp in a standard format or a simplified timestamp format (e.g., containing only the significant least significant bit).

[0055] In some embodiments, the plurality of routing nodes and the aggregation node belong to the same chip or die (or other electronic devices capable of time synchronization and with small internal message transmission time differences), and the time information in the tracking information is the value of a first preset number of low-order bits. In this embodiment, by reducing the number of bits in the time information, the data volume of the tracking information can be compressed, reducing storage pressure.

[0056] Furthermore, the aggregation node can also be used to add a second preset number of high-order bits to the time information based on the current time, that is, to complete the time information omitted by each routing node. In this embodiment, since the aggregation node and each routing node belong to the same chip, the time of each node is synchronized, and the time difference of each node transmitting messages is small, the high-order bits of the time information are usually the same. Therefore, the aggregation node can directly complete the information, effectively reducing the amount of tracking information while ensuring the integrity of the final statistical information. For example, a standard format timestamp usually requires 64 bits, while this embodiment can reduce the time information to 13 bits, significantly reducing the size of the tracking information.

[0057] In some embodiments, each piece of tracking information may include the node coordinates of the routing node that generated the tracking information. Exemplarily, these node coordinates may be carried in the header field of a tracking packet.

[0058] In some embodiments, the plurality of routing nodes and the aggregation node belong to the same chip or die, and the node coordinates in the tracking information are the coordinate information of the routing node in the chip or the die. The aggregation node is further configured to complete the coordinates of each node according to the chip coordinates or the die coordinates.

[0059] In one exemplary embodiment, the number of nodes in the chip is 4×4, and the location of the node within the chip can be indicated by the coordinates (x, y). However, multiple chips may exist in the entire computing device, and transaction messages may be transmitted across chips. Therefore, the aggregation node needs to complete the chip coordinates omitted in the tracking information to facilitate subsequent processing of the tracking information by the system processor. Traditional tracking information fully includes both chip coordinates and the coordinates of the node within the chip, while the embodiments of this application omit the chip coordinates in the tracking information, further reducing the size of the tracking information.

[0060] In some embodiments, each tracking information includes only one or any combination of the following: the time information when the routing node identified the target transaction message, the node coordinates of the routing node that generated the tracking information, the transaction source identifier, the transaction destination identifier, the transaction identifier, direction information, channel information, routing information, and loss information. The tracking information in this application includes at most the above-mentioned information, simplifying traditional tracking information, significantly reducing the storage or computational resources occupied by tracking information, and improving system debugging efficiency and operating speed.

[0061] In one exemplary embodiment, each piece of tracking information may include at least time information, wherein the time information is used to indicate the time when the routing node recognizes the target transaction message.

[0062] In one exemplary embodiment, each tracking information may include at least loss information, wherein the loss information is used to indicate whether the routing node has lost information during data transmission.

[0063] In one exemplary embodiment, a simplified tracking data packet may include the following structure: a header field (containing simplified node coordinates), a transaction source identifier field (16 bits), a transaction destination identifier field (16 bits), a timestamp field (13 bits), a transaction identifier field (10 bits), a direction field (2 bits), a channel field (3 bits), a routing information field (3 bits), and a loss field (1 bit). The values ​​of each field in the tracking data packet indicate the corresponding identifier or information. In this embodiment, apart from the header field determined based on standard protocols, the tracking information only requires a maximum of 64 bits.

[0064] In an exemplary embodiment, the routing information field can consist of three fields: sp1, sp2, and dor. sp1 indicates whether the transaction message was redirected early when output from the upstream node. If it was redirected early (i.e., not outputting according to the default route, i.e., adaptive routing occurred), sp1 = 1. If it was output according to the default route, sp1 = 0. sp2 indicates whether the transaction message was transmitted across chips. If it was across chips, sp2 = 1; otherwise, sp2 = 0. dor = 1 indicates that the flits are ordered, and the default route is used in the mesh; otherwise, adaptive routing is used. These fields are key information for adaptive routing and can also be used to assist in localization. Traditional tracing methods do not support adaptive routing; the addition of this field allows for flexible switching between fixed and adaptive routes, more accurately reflecting the routing path.

[0065] In some embodiments, the aggregation node is further configured to perform protocol conversion processing on the tracking information. For example, the transmission of tracking information in an Internet network requires the use of a specific protocol, while external storage devices may use different protocols, such as DDR using the Advanced eXtensible Interface (AXI) protocol. Therefore, in order to facilitate the storage of tracking information, the aggregation node needs to perform protocol conversion on the collected tracking information before sending it to the corresponding storage device.

[0066] In some embodiments, the system may further include a system processor, wherein the system processor is configured to acquire the tracking information collected and processed by the aggregation node, and perform at least one of the following processes on the tracking information:

[0067] 1) Classify the tracking information into transactions based on the transaction identifiers in the tracking information;

[0068] 2) Sort the tracking information by time based on the time information in the tracking information;

[0069] 3) Determine whether the routing path of the target transaction message is complete based on the transaction classification results and / or time sorting results;

[0070] 4) If it is determined that the routing path of the target transaction message is incomplete, locate the routing node where the transmission of the target transaction message failed.

[0071] In this embodiment, transaction classification refers to grouping tracking information with the same transaction identifier together, that is, classifying each tracking information according to the transaction identifier. By sorting by time, the transmission order of transaction messages at each node can be determined, thereby determining which nodes the same transaction message passed through in sequence, and realizing the reconstruction of the transaction message routing path. Based on the transaction source identifier and transaction destination identifier in the tracking information, the source device and destination device of the transaction message transmission can be determined. Combined with the reconstructed routing path, it can be determined whether the transaction message path is complete. If the path is incomplete (such as the transaction message not reaching the destination device at the end), it indicates that the transmission was interrupted, and the location of the last node passed by the transaction message can also be determined as the location of the fault point.

[0072] In this embodiment, the system processor can process tracking information for one or more chips / dies. The system processor can run software to perform corresponding processing through software and user operations, realize information classification and sorting, restore the routing path of a specified transaction, and thus realize fault location function or other chip debugging function.

[0073] In some embodiments, the system processor can directly obtain the information to be processed from each aggregation node, or the aggregation nodes can store the information in memory, and then the system processor can read the information to be processed from the memory. This application does not impose any limitations on this.

[0074] The embodiments of this application greatly simplify the debugging process, reduce data processing latency, and ensure the accuracy and timeliness of tracking information. Simultaneously, the elimination of cumbersome node configuration reduces system maintenance costs and improves the overall performance and reliability of SoC products. It can accurately locate faults in both fixed-routing and adaptive-routing scenarios, solving the problem of inability to immediately and accurately locate faults when the routing path is uncertain in related technologies.

[0075] One embodiment of this application also provides a method for tracking information transmission. Figure 4 This is a flowchart illustrating the tracking information transmission method according to an embodiment of this application, as shown below. Figure 4 As shown, the process includes the following steps:

[0076] Step S402: The device sets the flag bit in the target transaction message that meets the preset conditions to be valid;

[0077] Step S404: The routing node identifies the target transaction message as valid by the flag bit, and generates the tracking information of the target transaction message when the target transaction message is identified.

[0078] The above steps solve the problem of difficulty in tracking the complete routing path of transaction messages in real time when using adaptive routing in related technologies. They enable the restoration of the routing path of transaction messages, efficient location of transaction transmission failure points, and improvement of system maintainability and performance debugging efficiency.

[0079] The steps in this method embodiment can be run in the tracking information transmission system described in the above embodiments. This system can be applied in SoC network interconnection scenarios. The system can be located in integrated circuits or integrated circuit products such as chips, dies, systems-on-chips (SoCs), wafer-level packages (WLPs), and chiplets, or in an electronic device containing a processor and memory, such as a computer terminal or mobile terminal, but is not limited thereto. In SoC network interconnection, a device refers to a module that issues or processes transactions, including processing units and storage units, such as CPU cores, NPUs, DSPs, etc., or storage units such as cache memory, embedded flash memory, DDR memory, etc. Devices communicate with each other through nodes. Devices can be mounted on routing nodes, and each routing node can mount one or more devices.

[0080] In some embodiments, step S402, setting the flag bit in the target transaction message that meets the preset conditions to be valid by the device, may include: storing the preset conditions in a first register in the device, wherein different devices correspond to the same or different preset conditions; monitoring the transaction message by a first debug tracking module in the device, and when the content of the transaction message meets the preset conditions stored in the first register, identifying the transaction message as the target transaction message and setting the flag bit in the target transaction message to be valid.

[0081] In some embodiments, step S404, identifying the target transaction message whose flag bit is valid through the routing node, and generating trace information of the target transaction message when the target transaction message is identified, may include: generating trace information of the target transaction message when the target transaction message whose flag bit is valid is identified through the second debug trace module in the routing node.

[0082] In some embodiments, the method may further include: using a second debugging and tracing module in the routing node, when multiple target transaction messages in multiple output directions and / or multiple channels are identified, storing the corresponding multiple tracing information sequentially into the multiple entries, and setting the lost information in the tracing information to be valid when the number of tracing information is greater than the number of entries in the routing node.

[0083] In some embodiments, the method may further include: sequentially monitoring the transaction messages in multiple output directions through a second debugging and tracing module in the routing node; when the target transaction message is identified in the current output direction, determining the direction information in the corresponding tracing information according to the current output direction, and switching to the next output direction for monitoring and identification.

[0084] In some embodiments, the method may further include: using a second debug tracing module in the routing node to sequentially monitor the transaction packets of multiple channels in each output direction according to mask information; when the target transaction packet is identified on the current channel, determining the channel information in the corresponding tracing information according to the current channel, and setting the bit in the mask information corresponding to the current channel to be valid, wherein the bit set to be valid in the mask information is used to indicate the channel that has been identified as the target transaction packet and does not need to be monitored again.

[0085] In some embodiments, the method further includes: in response to the second debugging and tracing module being in a first mode, generating corresponding tracing information by the second debugging and tracing module when a transaction message satisfying the tracing conditions is identified, wherein the tracing conditions are stored in a second register in the routing node; and in response to the second debugging and tracing module being in a second mode, generating tracing information of the target transaction message by the second debugging and tracing module when a target transaction message with a valid flag bit is identified.

[0086] In some embodiments, the method may further include the following steps: sending the tracing information to the aggregation node through the routing node; and collecting and processing the tracing information generated by all routing nodes through the aggregation node. Each routing node that detects the target transaction message sends its own tracing information.

[0087] In some embodiments, each tracking information includes time information of when the routing node identified the target transaction message. Further, the plurality of routing nodes and the aggregation node may belong to the same chip or die, and the time information in the tracking information is the value of a first preset number of low-order bits. In this case, the method further includes: adding a second preset number of high-order bits to the time information based on the current time through the aggregation node.

[0088] In some embodiments, each tracking information includes the node coordinates of the routing node that generated the tracking information. Further, the plurality of routing nodes and the aggregation node belong to the same chip or die, and the node coordinates are the coordinate information of the routing node within the chip or die. In this case, the method further includes: using the aggregation node to complete each node coordinate based on the chip coordinates or die coordinates.

[0089] In some embodiments, each piece of tracing information includes at least one of the following: time information of the routing node identifying the target transaction message, node coordinates of the routing node that generated the tracing information, transaction source identifier, transaction destination identifier, transaction identifier, direction information, channel information, routing information, and loss information. The tracing information in this application includes at most the above-mentioned information, simplifying traditional tracing information, significantly reducing the storage or computational resources occupied by tracing information, and improving system debugging efficiency and operating speed.

[0090] In some embodiments, the method further includes: performing protocol conversion processing on the tracking information through the aggregation node.

[0091] In some embodiments, the method further includes: acquiring the tracking information collected and processed by the aggregation node via a system processor, and performing at least one of the following processes on the tracking information:

[0092] 1) Classify the tracking information into transactions based on the transaction identifiers in the tracking information;

[0093] 2) Sort the tracking information by time based on the time information in the tracking information;

[0094] 3) Determine whether the routing path of the target transaction message is complete based on the transaction classification results and / or time sorting results;

[0095] 4) If it is determined that the routing path of the target transaction message is incomplete, locate the routing node where the transmission of the target transaction message failed.

[0096] The embodiments of this application greatly simplify the debugging process, reduce data processing latency, and ensure the accuracy and timeliness of tracking information. They also reduce system maintenance costs and improve the overall performance and reliability of SoC products.

[0097] The various embodiments in this application can be applied to SoC interconnect networks, and currently support a maximum of 12×12 nodes, but are not limited thereto. The following detailed explanation uses a 4×4 interconnect network architecture as an example to illustrate the transmission path of transaction messages and tracking information.

[0098] Figure 5 This is a schematic diagram of the transaction message routing path and the tracking information reporting path in one embodiment of this application, as shown below. Figure 5 As shown, in a 4×4 interconnection network architecture, the routing path of a transaction message is represented by the solid line in the diagram, while the reporting path of tracing information is represented by the dashed line. Device 1 is used to generate the specified transaction message. At Device 1, the flag bit of the transaction message is pulled high (i.e., set to valid). Device 2 is used to finally process the specified transaction message. From Device 1 to Device 2, each node through which the transaction message passes reports tracing information to the aggregation node or aggregation device. The aggregation device is mounted under a specified routing node, and each routing node pre-stores the location or coordinates of the aggregation node.

[0099] In this embodiment, both the device and the nodes are equipped with debug tracing modules to implement related tracing functions. The debug tracing module in device 1 is used to raise the flag bit of a specified transaction message, that is, to set the flag bit to valid. This transaction message will be routed to the Internet. The debug tracing module in each node through which the transaction message passes can monitor the transaction messages with valid flag bits, generate corresponding tracing information for them, and report the tracing information to the debug tracing module of the aggregation device according to a fixed routing method (dashed path). The debug tracing module in the aggregation device will further process the tracing information before outputting it.

[0100] Figure 6 This is a schematic diagram of the process of tracking transaction message transmission in one embodiment of this application, as shown below. Figure 6 As shown, the process includes the following steps:

[0101] Step S1: Configure the relevant registers of the debug tracing module in device 1 to monitor the transactions of interest;

[0102] Step S2: Enable the flag update function of the debugging and tracking module in device 1, so that when the corresponding transaction is output in device 1, the flag is pulled high (i.e., enabled).

[0103] In step S3, the debug tracing module in the node is responsible for capturing transactions with flag bits and outputting packet trace information, i.e., the routing path.

[0104] Step S4: The tracing information output by each node through which the transaction passes is routed to the aggregation device for tracing information processing;

[0105] Step S5: The debugging and tracking module in the aggregation device completes the information required for tracking, such as identifiers (e.g., node coordinates), timestamps, etc.

[0106] The Internet architecture used in this embodiment is as follows: Figure 5As shown, transaction messages are generated and marked on device 1. Each device and each node is equipped with a debug tracing module to implement the transaction tracing method in this embodiment.

[0107] In this embodiment of the application, a simplified tracking information format is adopted, which can reduce the risk of information loss due to excessive tracking information and improve information transmission efficiency.

[0108] The specific implementation methods for each of the above steps are as follows.

[0109] Step S1: Configure the registers of the debug trace module embedded in device 1.

[0110] The register is manually configured by the user and stores the conditions for generating the flag bit. For example, a device may issue many access transactions with different addresses. If the user only cares about the routing path when the transaction address is A, then the observation point register can be configured as A. When the transaction is issued from the device, it will be matched successfully, the flag bit will be set, and the node will track and capture the routing path of the transaction and report it.

[0111] The flag field is inherent in the transaction message and is used for tracking in traditional schemes. However, in traditional schemes, the usage is as follows: Nodes need to configure observation point registers to capture the field values ​​the user wants to focus on. When a transaction involves many independent channels, such as requests, responses, and data, if users need to be concerned with certain fields of each channel, the observation point register configuration needs to include each channel's values. Since the number of observation points is limited, typically four, the registers are usually insufficient. However, in traditional schemes, transaction messages have a characteristic: if the flag bit of a certain channel in a transaction is high, other channels associated with that transaction will also carry that flag bit. Therefore, if the user configures the observation point register for the fields of interest of the request channel and enables flag bit capture, other channels can be captured even if they are not configured. The scheme in this application retains this flag bit but eliminates the observation point register in the node because users do not need to focus on detailed transaction information, but only on which nodes the transaction passed through.

[0112] Step S2 is equivalent to activating the scheme in the embodiments of this application.

[0113] Step S3: The node captures transactions with flags and generates tracking information in a fixed format. For example, the tracking information may only include time information, transaction source information, transaction destination information, transaction identifier information, and the current node's coordinates.

[0114] In this embodiment, the following rules apply to retrieving transactions carrying flag bits within a node:

[0115] The node crawling only captures the output direction. Currently, there are 4 directions, each with 5 channels, meaning a maximum of 20 flag bits. However, each node only has 4 entries, which is insufficient to store much information. If there are too many flag bits, the tracking information will be discarded. This can be indicated by the "LOSSY" field in the tracking information, which suggests that information loss occurred during the node crawling process, potentially leading to an incomplete reporting path.

[0116] For example, to ensure the integrity of transactions, the node fetching rules can be as follows: select from directions 0, 1, 2 and 3 in sequence; select from channels 0 to 4 in each direction; when a channel meets the condition (flag bit goes high), exit the selection of that direction directly (because different channels of a transaction will not carry the flag bit on the same node at the same time); enter the next direction to continue the selection, and when the flag bit goes high, the condition is met.

[0117] In one exemplary embodiment, the condition may include a mask signal. Figure 7 This is a schematic diagram of the masking logic in one embodiment of this application, as shown below. Figure 7 As shown, when a channel is selected in the current direction, the mask will mark the corresponding bit of that channel, and the channel will not be selected again in the next direction selection (because the same channel will not carry the flag bit in different output directions at the same time in a transaction).

[0118] In one exemplary embodiment, a simplified tracking information format may be used. Figure 8 This is a schematic diagram of the tracking information format in one embodiment of this application, such as... Figure 8 As shown, the tracking information may include the following fields: Transaction Source Identifier (PSID), Transaction Destination Identifier (PTID), Timestamp (TS), Transaction Identifier (TXNID), Direction (DIR), Channel (CHN), Routing Information (RINFO), and Loss (LOSSY).

[0119] Furthermore, the tracking information also includes a header field, which can use simplified node coordinates.

[0120] Traditional transaction tracing schemes only generate tracing information within nodes, and the tracing type is variable, with a maximum of 176 bits of tracing information. In contrast, the tracing information in this embodiment can be fixed at 64 bits.

[0121] In this embodiment, the TS field represents timestamp information. The timestamp is uniformly issued to each node by the global timestamp generator, meaning that the time information of each node is synchronized. When a node captures the flag bit and reports the tracing information of the route path, it will put the current time information into the timestamp field. Figure 8 In the TS field, this allows for sorting of tracking information based on timestamp size during parsing, as earlier-generated tracking information isn't necessarily output first. Furthermore, since the time a transaction takes from source to destination is relatively short, the complete timestamp value doesn't need to be transmitted over the internet; only the significant low-order bits are transmitted, with the high-order bits padded at the aggregation node. This significantly reduces the data volume and avoids data loss due to excessive data volume caused by frequency issues.

[0122] Step S4: The tracking information generated by each node is aggregated to a designated node (such as an aggregation node or aggregation device) for output.

[0123] In this embodiment, the generated tracking information is transmitted in the Internet using a specific protocol. However, if the tracking information is to be stored on an external storage device, protocol conversion may be required; for example, DDR uses the AXI protocol. Therefore, it is necessary to aggregate the tracking information from each node and then perform protocol conversion on the aggregation device.

[0124] Furthermore, tracking information in the Internet does not need to carry an address; only the coordinates of the aggregation device need to be specified. The storage address in the system memory of the aggregation device can be configured to forward the aggregated, protocol-converted tracking information to the specified external storage.

[0125] In step S5, the aggregation device can complete the simplified tracking information to facilitate subsequent processing.

[0126] Furthermore, in addition to steps S1 to S5 mentioned above, step S6 may also be included, in which the system processor can be combined with software to perform detailed analysis and processing of the tracking information in order to achieve functions such as debugging and fault location.

[0127] In step S6, the software reads the trace information stored in the system memory. Using the source and destination identifiers, it identifies the source and destination devices of the transaction, facilitating the determination of the completeness of the parsed path. Transaction identifiers are added to categorize the transactions. Trace information corresponding to different transaction identifiers needs to be processed separately. After categorization, the information can be sorted using timestamps; a larger timestamp value indicates routing information closer to the destination device. If a transaction transmission fails, the captured path from the transaction source to the transaction destination will be incomplete. By reconstructing the path reported by the trace information, the final node where the transaction transmission failed can be identified, making it easier to locate the node where the transmission failed.

[0128] In the embodiments of this application, each device, routing node, and aggregation node can be equipped with a debugging and tracing module to realize the function of tracing transactions. For easy distinction, they can be named the first debugging and tracing module, the second debugging and tracing module, and the third debugging and tracing module, respectively. However, this application does not limit the module name or the specific implementation method of the module.

[0129] Specifically, the functions of each debug tracing module are as follows.

[0130] The device's embedded debug tracing module, also known as the first debug tracing module, is responsible for monitoring transactions transmitted by devices mounted on the node and generating flag information. For example, when a transaction transmission encounters a problem, although it's unclear which routing node the transmission stopped at, the starting point of the stopped transaction is clear to the developers and debuggers. Therefore, the internal registers of the first debug tracing module can be configured to capture this transaction and generate a flag (with the flag set to valid). Then, when the transaction is passed to the node, it will be automatically detected.

[0131] The debugging and tracing module embedded in the routing node, namely the second debugging and tracing module, has a mode selection. Mode 1 (first mode) is the general mode, also known as the traditional mode, which can capture transactions that meet specific tracing conditions. This is also the mode used in traditional solutions. Mode 2 (second mode) is the path reporting mode, which is the newly designed tracing mode in this application. It mainly captures transactions with valid flag bits. In this mode, no specific register configuration is required. Each node can automatically monitor transactions with valid flag bits. Once captured successfully, it will generate tracing information according to a specific format (containing only time information, transaction source information, transaction destination information, transaction ID information, and current node coordinate information). The tracing information can be routed to designated nodes for information aggregation according to a fixed routing method.

[0132] The debug tracing module embedded in the aggregation node, also known as the third debug tracing module, can both aggregate tracing information from all nodes and further process the tracing information. The key information is node coordinates and timestamps. Regarding node coordinates, since the aggregation node and the other nodes belong to the same DIE (die / chip) or Chip, to reduce the amount of tracing information in the interconnect network, DIE and Chip coordinates do not need to be transmitted; they only need to be padded before the aggregation node outputs them. For timestamps, since the time taken for a transaction from source to destination is not very long, the complete timestamp value does not need to be transmitted in the interconnect network; only the significant low-order bits of the timestamp value need to be transmitted, with the high-order bits padded at the aggregation node.

[0133] It should be noted that the above modules can be implemented by software or hardware. For the latter, they can be implemented in the following ways, but are not limited to: all the above modules are located in the same processor; or, the above modules are located in different processors in any combination.

[0134] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk), and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods described in the various embodiments of this application.

[0135] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps in any of the above method embodiments.

[0136] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as USB flash drives, read-only memory (ROM), random access memory (RAM), portable hard drives, magnetic disks, or optical disks.

[0137] Embodiments of this application also provide an electronic device including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.

[0138] In one exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor and the input / output device is connected to the processor.

[0139] Embodiments of this application also provide a computer program product, including a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.

[0140] Specific examples in this embodiment can be found in the examples described in the above embodiments and exemplary implementations, and will not be repeated here.

[0141] According to another embodiment of this application, an integrated circuit product is also provided, including the tracking information transmission system in the above embodiments. Exemplarily, the integrated circuit product may include chips, dies, wafer-level packaged products, system-in-package (SiP) products, chiplets, daughter cards / expansion cards, motherboards, etc.

[0142] Obviously, those skilled in the art should understand that the modules or steps of this application described above can be implemented using general-purpose computing devices. They can be centralized on a single computing device or distributed across a network of multiple computing devices. They can be implemented using computer-executable program code, and thus can be stored in a storage device for execution by a computing device. In some cases, the steps shown or described can be performed in a different order than those presented here, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, this application is not limited to any particular combination of hardware and software.

[0143] The above description is merely an exemplary embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this application should be included within the protection scope of this application.

Claims

1. A tracking information transmission system, characterized in that, include: At least one device and multiple routing nodes, wherein, The device is used to generate or process transaction messages and set the flag bit in the target transaction message that meets the preset conditions to be valid, wherein the transaction message is transmitted from the first device that generates the transaction message to the second device that processes the transaction message through at least one of the routing nodes. The routing node is used to route the transaction message and generate tracking information for the target transaction message when the flag bit is identified as valid. The routing node includes a second debugging and tracing module and a second register. The second debugging and tracing module has a first mode and a second mode. In the first mode, the second register stores the tracing conditions of the transaction message, and the second debugging and tracing module generates corresponding tracing information when a transaction message that meets the tracing conditions is identified. In the second mode, the second debugging and tracing module generates tracing information for the target transaction message when a target transaction message with a valid flag is identified.

2. The system according to claim 1, characterized in that, Each of the devices includes a first debug trace module and a first register, wherein, The first register is used to store the preset conditions, wherein different devices correspond to the same or different preset conditions; The first debug tracking module is used to monitor the transaction message, and when the content of the transaction message meets the preset conditions stored in the first register, it identifies the transaction message as the target transaction message and sets the flag bit in the target transaction message to be valid.

3. The system according to claim 1, characterized in that, The preset conditions include at least one of the following: target transaction source information, target transaction purpose information, target transaction identifier information, and target channel information.

4. The system according to claim 1, characterized in that, The routing node contains multiple entries, each storing at most one piece of the tracking information. The second debugging tracing module is further configured to, when multiple target transaction messages in multiple output directions and / or multiple channels are identified, store the corresponding multiple tracing information into the multiple entries in sequence, and when the number of tracing information is greater than the number of entries of the routing node, set the lost information in the tracing information to be valid.

5. The system according to claim 1, characterized in that, The second debugging and tracing module is also used to monitor the transaction messages in multiple output directions in sequence. When the target transaction message is identified in the current output direction, the direction information in the corresponding tracing information is determined according to the current output direction, and the module switches to the next output direction for monitoring and identification.

6. The system according to claim 5, characterized in that, The second debug tracking module is also used to sequentially monitor the transaction messages of multiple channels according to the mask information in each output direction. When the target transaction message is identified on the current channel, the module determines the channel information in the corresponding tracking information according to the current channel and sets the bit in the mask information corresponding to the current channel to be valid. The bit set to be valid in the mask information is used to indicate the channel that has been identified as the target transaction message and does not need to be monitored anymore.

7. The system according to claim 1, characterized in that, It also includes the aggregation node, among which, The routing node is also used to send the tracking information to the aggregation node; The aggregation node is used to collect and process the tracing information generated by all routing nodes.

8. The system according to claim 7, characterized in that, The multiple routing nodes and the aggregation node belong to the same chip or die, and the time information in the tracking information is the value of a first preset number of low-order bits.

9. The system according to claim 8, characterized in that, The aggregation node is also used to add a second preset number of high-order bits to the time information based on the current time.

10. The system according to claim 7, characterized in that, The multiple routing nodes and the aggregation node belong to the same chip or die, and the node coordinates in the tracking information are the coordinate information of the routing nodes within the chip or die. The aggregation node is also used to complete the coordinates of each node based on the chip coordinates or die coordinates.

11. The system according to claim 7, characterized in that, The aggregation node is also used to perform protocol conversion processing on the tracking information.

12. The system according to claim 7, characterized in that, Also includes: System processor, of which, The system processor is configured to acquire the tracking information collected and processed by the aggregation node, and perform at least one of the following processes on the tracking information: The tracking information is categorized into transactions based on the transaction identifiers in the tracking information. The tracking information is sorted by time based on the time information in the tracking information; Determine whether the routing path of the target transaction message is complete based on the transaction classification results and / or time sorting results; If it is determined that the routing path of the target transaction message is incomplete, locate the routing node where the transmission of the target transaction message failed.

13. The system according to claim 1, characterized in that, Each tracking information includes only one or any combination of the following: the time information when the routing node identified the target transaction message, the node coordinates of the routing node that generated the tracking information, the transaction source identifier, the transaction destination identifier, the transaction identifier, the direction information, the channel information, the routing information, and the loss information.

14. The system according to claim 1, characterized in that, Each of the tracking information includes time information, wherein the time information is used to indicate the time when the routing node recognizes the target transaction message.

15. The system according to claim 1, characterized in that, Each of the tracking information includes loss information, wherein the loss information is used to indicate whether the routing node has lost information during data transmission.

16. A method for tracking information transmission, characterized in that, Applied to the tracking information transmission system as described in any one of claims 1 to 15, the method comprises: The device sets the flag bits in the target transaction message that meets the preset conditions to be valid. The routing node identifies the target transaction message as valid by using the flag bit, and generates tracking information for the target transaction message when the target transaction message is identified.

17. A computer-readable storage medium, characterized in that, The storage medium stores a computer program, which, when executed by a processor, implements the steps of the method of claim 16.

18. An integrated circuit product, characterized in that, Including the tracking information transmission system as described in any one of claims 1 to 15.

Citation Information

Patent Citations

  • Micro-service full-link tracking method, device and system and medium

    CN115629940A

  • Tracking data processing method, medium, main routing node and sub routing node

    CN120640379A