Bounding pipeline and instruction cache performance
read more
Citations
The worst-case execution-time problem—overview of methods and survey of tools
Embedded System Design
The influence of processor architecture on the design and the results of WCET tools
Guest Editorial: A Review of Worst-Case Execution-TimeAnalysis
Real-Time Systems: Scheduling, Analysis, and Verification
References
Compilers: Principles, Techniques, and Tools
Calculating the maximum, execution time of real-time programs
Reasoning about time in higher-level language software
A case for direct-mapped caches
Predicting program execution times by analyzing static and dynamic program paths
Related Papers (5)
Performance Analysis of Embedded Software Using Implicit Path Enumeration
Frequently Asked Questions (8)
Q2. What are the future works in "Bounding pipeline and instruction cache performance" ?
The authors plan to automate the detection of many data dependencies using existing compiler optimization techniques to obtain tighter performance estimations [ 23 ]. The authors also plan to accurately calculate the number of iterations for loops which are dependent on the value of a loop counter variable of an outer loop. Due to the analysis of a function instance tree ( no recursion allowed ), addresses of run-time stack references can be statically determined even when the addresses may differ for different invocations of the same function. Compiler flow analysis can be used to detect the pattern of many calculated references, such as indexing through an array.
Q3. Why is it necessary to perform multiple pipeline analyses of a path?
Because of this dual caching behavior of a first miss instruction, it is necessary to perform more than one pipeline analysis of a path since the caching behavior of the instructions comprising the path can change between iterations.
Q4. What is the way to show that the caching effects are treated properly?
Since the pipeline effects of each of the paths within the loop are unioned, it only remains to be shown that the caching effects are treated properly.
Q5. What is the method used to adjust the time of the current construct?
the list of memory blocks known to be in cache after executing the other construct is used to adjust the time of the current construct by comparing this list to the list of first reference blocks in the current construct.
Q6. What is the timing analyzer's interpretation of the instruction fetch?
If an instruction is categorized as a first miss, then the timing analyzer will treat the instruction fetch as a miss if the program line has not yet been encountered as a first miss in the timing of the loop.
Q7. How many cycles will the timing analyzer compute for this loop?
the timing analyzer will compute a BCET of 13 + 9*(n − 1) cycles for this loop, where n is the minimum number of loop iterations.
Q8. What is the common method used to detect instruction fetches?
The Lim method would rarely detect instruction fetches that would always be misses until the surrounding constructs are analyzed, which is after the pipeline analysis of a construct has already occurred.