This Article 
 Bibliographic References 
 Add to: 
Bounding Pipeline and Instruction Cache Performance
January 1999 (vol. 48 no. 1)
pp. 53-70

Abstract—Predicting the execution time of code segments in real-time systems is challenging. Most recently designed machines contain pipelines and caches. Pipeline hazards may result in multicycle delays. Instruction or data memory references may not be found in cache and these misses typically require several cycles to resolve. Whether an instruction will stall due to a pipeline hazard or a cache miss depends on the dynamic sequence of previous instructions executed and memory references performed. Furthermore, these penalties are not independent since delays due to pipeline stalls and cache miss penalties may overlap. This paper describes an approach for bounding the worst and best case performance of large code segments on machines that exploit both pipelining and instruction caching. First, a method is used to analyze a program's control flow to statically categorize the caching behavior of each instruction. Next, these categorizations are used in the pipeline analysis of sequences of instructions representing paths within the program. A timing analyzer uses the pipeline path analysis to estimate the worst and best-case execution performance of each loop and function in the program. Finally, a graphical user interface is invoked that allows a user to request timing predictions on portions of the program. The results indicate that the timing analyzer efficiently produces tight predictions of worst and best-case performance for pipelining and instruction caching.

[1] Texas Instruments, Inc., Product Preview of the TMS390S10 Integrated SPARC Processor, 1993.
[2] J. Krumm and S.A. Shafer,“Shape from periodic texture using the spectrogram,” Proc. Conf. Computer Vision and Pattern Recognition, pp. 284-289,Champaign, Ill., June 1992.
[3] F. Mueller and D.B. Whalley, "Efficient On-the-Fly Analysis of Program Behavior and Static Cache Simulation," Proc. Static Analysis Symp., pp. 101-115, Sept. 1994.
[4] R. Arnold, F. Mueller, D. Whalley, and M. Harmon, “Bounding Worst-Case Instruction Cache Performance,” Proc. 15th IEEE Real-Time Systems Symp., pp. 172-181, Dec. 1994.
[5] F. Mueller and D.B. Whalley, "Fast Instruction Cache Analysis via Static Cache Simulation," Proc. 28th Ann. Simulation Symp., pp. 105-114, Apr. 1995.
[6] C.A. Healy, D.B. Whalley, and M.G. Harmon, “Integrating the Timing Analysis of Pipelining and Instruction Caching,” Proc. 16th IEEE Real-Time Systems Symp., pp. 288-297, Dec. 1995.
[7] M.D. Hill, "A Case for Direct-Mapped Caches," Computer, pp. 25-40, Dec. 1988.
[8] C.A. Healy, "Predicting Pipeline and Instruction Cache Performance," Master's thesis, Florida State Univ., Tallahassee, Fla., 1995.
[9] M.E. Benitez and J.W. Davidson, "A Portable Global Optimizer and Linker," Proc. SIGPLAN '88 Symp. Programming Language Design and Implementation, pp. 329-338, June 1988.
[10] J.W. Davidson and D.B. Whalley, "A Design Environment for Addressing Architecture and Compiler Interactions," Microprocessors and Microsystems, vol. 15, no. 9, pp. 459-472, Nov. 1991.
[11] L. Ko, D.B. Whalley, and M.G. Harmon, "Supporting User-Friendly Analysis of Timing Constraints," Proc. ACM SIGPLAN Notices 1995 Workshop Languages, Compilers, and Tools for Real-Time Systems, vol. 30, no. 11, pp. 99-107, Nov. 1995.
[12] C. Park, "Predicting Program Execution Times by Analyzing Static and Dynamic Program Paths," J. Real-Time Systems, vol. 5, no. 1, pp. 31-62, Mar. 1993.
[13] D. Niehaus, "Program Representation and Translation for Predictable Real-Time Systems," Proc. IEEE Real-Time Systems Symp., pp. 53-63, 1991.
[14] P. Puschner and C. Koza, "Calculating the Maximum Execution Time of Real-Time Programs," J. Real-Time Systems, vol. 1, no. 2, pp. 159-176, Sept. 1989.
[15] M.G. Harmon, T.P. Baker, and D.B. Whalley, “A Retargetable Technique for Predicting Execution Time,” Proc. 11th IEEE Real-Time Systems Symp., pp. 68-77, Dec. 1992.
[16] K. Narasimhan and K.D. Nilsen, "Portable Execution Time Analysis for RISC Processors," Proc. ACM SIGPLAN Workshop Language, Compiler, and Toole Support for Real-Time Systems, June 1994.
[17] Y-T. Li, S. Malik,, and A. Wolfe,"Performance Estimation of Embedded Software with Instruction Cache Modeling," Proc. Int'l Conf. Computer-Aided Design, IEEE CS Press, 1995, pp. 380-387.
[18] Y.S. Li, S. Malik, and A. Wolfe, “Efficient Microarchitecture Modeling and Path Analysis for Real-Time Software,” Proc. 16th IEEE Real-Time Systems Symp., pp. 298-307, Dec. 1995.
[19] Y.S. Li, S. Malik, and A. Wolfe, "Cache Modeling for Real-Time Software: Beyond Direct Mapped Instruction Caches," Proc. 17th IEEE Real-Time Systems Symp., Dec. 1996.
[20] S. Lim et al., "An Accurate Worst Case Timing Analysis Technique for RISC Processors," Proc. 15th IEEE Real-Time Systems Symp., pp. 97-108,San Juan, Puerto Rico, Dec. 1994.
[21] A.C. Shaw, "Reasoning About Time in Higher-Level Language Software," IEEE Trans. Software Eng., vol. 15, no. 7, pp. 875-889, 1989.
[22] S.-K. Kim, S.L. Min, and R. Ha, "Efficient Worst Case Timing Analysis of Data Caching," Proc. IEEE Second Real-Time Technology and Applications Symp., June 1996.
[23] F. Mueller and D.B. Whalley, "Avoiding Conditional Branches by Code Replication," Proc. SIGPLAN '95 Conf. Programming Language Design and Implementation, pp. 56-66, June 1995.
[24] A.V. Aho, R. Sethi, and J.D. Ullman, Compilers, Principles, Techniques and Tools.New York: Addison-Wesley, 1985.

Index Terms:
Real-time systems, worst case execution time, best case execution time, timing analysis, instruction cache, pipelining.
Christopher A. Healy, Robert D. Arnold, Frank Mueller, David B. Whalley, Marion G. Harmon, "Bounding Pipeline and Instruction Cache Performance," IEEE Transactions on Computers, vol. 48, no. 1, pp. 53-70, Jan. 1999, doi:10.1109/12.743411
Usage of this product signifies your acceptance of the Terms of Use.