Parallel Trace Data Processing for Embedded Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current trace data processing systems for embedded processors face challenges in real-time analysis due to limited memory capacity and bandwidth requirements, leading to delayed offline computation and limited monitoring of program execution flow, especially in systems with high CPU frequencies and multiple cores.
Innovation Solution
A trace-data processing device with a parallelized architecture that includes an input for receiving trace data streams, a message-distribution stage, multiple parallel message-processing stages, and a result consolidation stage, enabling online processing and real-time analysis by distributing and decoding trace data streams to reconstruct program execution flow, with features like pre-processing for boundary determination and compression handling.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If trace data are stored in memory and analyzed offline, then analysis can be performed with sufficient computational resources, but the monitoring time span is limited by memory capacity and there is indistinct delay between events and data availability
Solution Approach 1:
The trace data stream is divided into multiple segments that are processed in parallel by multiple processing units. Each processing unit handles a portion of the trace data independently, enabling simultaneous processing of multiple data segments. This segmentation allows the system to process large volumes of trace data without requiring extensive memory storage, thereby reducing the time delay while maintaining analysis accuracy.
Solution Approach 2:
The patent transitions from sequential offline processing to parallel online processing by adding the dimension of time efficiency. Multiple processing units operate simultaneously on different segments of the trace data stream, transforming the processing model from a single-threaded sequential approach to a multi-threaded parallel approach. This dimensional change enables real-time or near-real-time analysis without compromising the depth and accuracy of the analysis.
2Quantity of substance
If compression techniques are used for trace data, then bandwidth requirements are reduced, but processing complexity increases
Solution Approach 1:
Compression is performed preliminarily at the data collection stage before the trace data leaves the device under test. The trace data is compressed into a compact format that preserves all necessary information for analysis. This preliminary compression reduces the bandwidth requirements for transmitting trace data to the processing system, and the parallel processing architecture efficiently handles the decompression and analysis without adding significant processing complexity.
3Productivity
If parallel processing is implemented, then processing speed is improved, but device complexity increases
Solution Approach 1:
The processing system is segmented into multiple independent processing units, each capable of handling a specific segment of the trace data stream. This segmentation enables parallel processing without requiring complex inter-unit communication and coordination mechanisms. Each processing unit operates independently, simplifying the overall architecture while achieving high processing speeds through concurrent execution of multiple processing tasks.
Solution Approach 2:
The processing units are designed with universal functionality to handle various types of trace data segments. Each processing unit can process different segments of the trace data stream using the same processing logic and algorithms. This multi-functionality reduces the need for specialized processing circuits for each segment type, thereby simplifying the device architecture while maintaining high processing productivity.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A trace-data processing device comprises an input to receive source-specific trace data streams comprising trace messages carrying execution-flow information on a program execution flow performed by a source device under test or under observation, hereinafter DUT. A trace-data processing unit (526, 1100) derives from the trace data stream runtime information associated with the program execution flow performed by the DUT. The trace-data processing unit comprises a message-distribution stage (1104), a plurality of parallel message-processing stages (1106.1, ...1106.N), and a result consolidation stage (1108) connected with the message-processing stages. The message-distribution stage (1104) distributes the received trace data stream (T1') over the message-processing stages in the form of respective trace data sequences. The message-processing stages (1106.1, ...1106.N) generate from the trace data sections runtime information sequences. The result-consolidation stage (1108) composes runtime information data representing an at least partial reconstruction of the program execution flow performed by the DUT.