Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
tutorial

Optimizing Transfers of Control in the Static Pipeline Architecture

Published: 04 June 2015 Publication History

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.

References

[1]
T. Austin, E. Larson, and D. Ernst. SimpleScalar: An Infrastructure for Computer System Modeling. Computer, 35(2):59--67, 2002.
[2]
M. Benitez and J. Davidson. A Portable Global Optimizer and Linker. ACM SIGPLAN Notices, 23(7):329--338, 1988.
[3]
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.
[4]
H. Corporaal and M. Arnold. Using Transport Triggered Architectures for Embedded Processor Design. Integrated Computer-Aided Engineering, 5(1):19--38, 1998.
[5]
J. Davidson and D. Whalley. Reducing the cost of branches by using registers. In International Symposium on Computer Architecture, pages 182--191, May 1990.
[6]
I. Finlayson, G. Uh, D. Whalley, and G. Tyson. An Overview of Static Pipelining. Computer Architecture Letters, 11(1):17--20, 2012.
[7]
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.
[8]
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.
[9]
J. Fisher. VLIW Machine: A Multiprocessor for Compiling Scientific Code. Computer, 17(7):45--53, 1984.
[10]
C. Fraser. A retargetable compiler for ansi c. ACM Sigplan Notices, 26(10):29--43, 1991.
[11]
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.
[12]
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.
[13]
S. Thoziyoor, N. Muralimanohar, J. Ahn, and N. Jouppi. Cacti 5.1. Technical report, HP Laboratories, Palo Alto, Apr. 2008.
[14]
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.
[15]
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.

Index Terms

  1. Optimizing Transfers of Control in the Static Pipeline Architecture

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 50, Issue 5
    LCTES '15
    May 2015
    141 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2808704
    • Editor:
    • Andy Gill
    Issue’s Table of Contents
    • cover image ACM Conferences
      LCTES'15: Proceedings of the 16th ACM SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems 2015 CD-ROM
      June 2015
      149 pages
      ISBN:9781450332576
      DOI:10.1145/2670529
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 04 June 2015
    Published in SIGPLAN Volume 50, Issue 5

    Check for updates

    Author Tags

    1. Compiler Optimizations
    2. Energy Efficiency
    3. Transfers of Control

    Qualifiers

    • Tutorial
    • Research
    • Refereed limited

    Funding Sources

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)3
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 25 Feb 2025

    Other Metrics

    Citations

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media