Abstract
Statically pipelined processors offer a new way to improve the performance beyond that of a traditional in-order pipeline while simultaneously reducing energy usage by enabling the compiler to control more fine-grained details of the program execution. This paper describes how a compiler can exploit the features of the static pipeline architecture to apply optimizations on transfers of control that are not possible on a conventional architecture. The optimizations presented in this paper include hoisting the target address calculations for branches, jumps, and calls out of loops, performing branch chaining between calls and jumps, hoisting the setting of return addresses out of loops, and exploiting conditional calls and returns. The benefits of performing these transfer of control optimizations include a 6.8% reduction in execution time and a 3.6% decrease in estimated energy usage.
- T. Austin, E. Larson, and D. Ernst. SimpleScalar: An Infrastructure for Computer System Modeling. Computer, 35(2):59--67, 2002. Google Scholar
Digital Library
- M. Benitez and J. Davidson. A Portable Global Optimizer and Linker. ACM SIGPLAN Notices, 23(7):329--338, 1988. Google Scholar
Digital Library
- A. Bright, J. Fritts, and M. Gschwind. Decoupled fetch-execute engine with static branch prediction support. Technical report, IBM Research Report RC23261, IBM Research Division, 1999.Google Scholar
- H. Corporaal and M. Arnold. Using Transport Triggered Architectures for Embedded Processor Design. Integrated Computer-Aided Engineering, 5(1):19--38, 1998. Google Scholar
Digital Library
- J. Davidson and D. Whalley. Reducing the cost of branches by using registers. In International Symposium on Computer Architecture, pages 182--191, May 1990. Google Scholar
Digital Library
- I. Finlayson, G. Uh, D. Whalley, and G. Tyson. An Overview of Static Pipelining. Computer Architecture Letters, 11(1):17--20, 2012. Google Scholar
Digital Library
- Finlayson, I. and Davis, B. and Gavin, P. and Uh, G. and Whalley, D. and Själander, M. and Tyson, G. Improving Processor Efficiency by Static Pipelining Instructions. In Conference on Languages, Compilers, and Tools for Embedded Systems, pages 33--43, 2013. Google Scholar
Digital Library
- Finlayson, I. and Uh, G. and Whalley, D. and Tyson, G. Improving Low Power Processor Efficiency with Static Pipelining. In Proceedings of the 15th Workshop on Interaction between Compilers and Computer Architectures, 2011. Google Scholar
Digital Library
- J. Fisher. VLIW Machine: A Multiprocessor for Compiling Scientific Code. Computer, 17(7):45--53, 1984. Google Scholar
Digital Library
- C. Fraser. A retargetable compiler for ansi c. ACM Sigplan Notices, 26(10):29--43, 1991. Google Scholar
Digital Library
- M. Guthaus, J. Ringenberg, D. Ernst, T. Austin, T. Mudge, and R. Brown. MiBench: A Free, Commercially Representative Embedded Benchmark Suite. In Workload Characterization, 2001. WWC-4. 2001 IEEE International Workshop on, pages 3--14. IEEE, 2002. Google Scholar
Digital Library
- M. Reshadi, B. Gorjiara, and D. Gajski. Utilizing horizontal and vertical parallelism with a no-instruction-set compiler for custom datapaths. In International Conference on Computer Design, pages 69--76, Washington, DC, USA, 2005. Google Scholar
Digital Library
- S. Thoziyoor, N. Muralimanohar, J. Ahn, and N. Jouppi. Cacti 5.1. Technical report, HP Laboratories, Palo Alto, Apr. 2008.Google Scholar
- M. Thuresson, M. Själander, M. Björk, L. Svensson, P. Larsson-Edefors, and P. Stenstrom. Flexcore: Utilizing exposed datapath control for efficient computing. Journal of Signal Processing Systems, 57(1):5--19, 2009. Google Scholar
Digital Library
- M. Wilkes and J. Stringer. Micro-Programming and the Design of the Control Circuits in an Electronic Digital Computer. In Mathematical Proceedings of the Cambridge Philosophical Society, volume 49, pages 230--238. Cambridge Univ Press, 1953.Google Scholar
Cross Ref
Index Terms
Optimizing Transfers of Control in the Static Pipeline Architecture
Recommendations
Optimizing Transfers of Control in the Static Pipeline Architecture
LCTES'15: Proceedings of the 16th ACM SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems 2015 CD-ROMStatically pipelined processors offer a new way to improve the performance beyond that of a traditional in-order pipeline while simultaneously reducing energy usage by enabling the compiler to control more fine-grained details of the program execution. ...
Improving processor efficiency by statically pipelining instructions
LCTES '13: Proceedings of the 14th ACM SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systemsA new generation of applications requires reduced power consumption without sacrificing performance. Instruction pipelining is commonly used to meet application performance requirements, but some implementation aspects of pipelining are inefficient with ...
Improving processor efficiency by statically pipelining instructions
LCTES '13A new generation of applications requires reduced power consumption without sacrificing performance. Instruction pipelining is commonly used to meet application performance requirements, but some implementation aspects of pipelining are inefficient with ...







Comments