• DocumentCode
    936366
  • Title

    Register constrained modulo scheduling

  • Author

    Zalamea, Javier ; Llosa, Josep ; Ayguadé, Eduard ; Valero, Mateo

  • Author_Institution
    Dept. d´´Arquitectura de Computadors, Univ. Politecnica de Catalunya, Barcelona, Spain
  • Volume
    15
  • Issue
    5
  • fYear
    2004
  • fDate
    5/1/2004 12:00:00 AM
  • Firstpage
    417
  • Lastpage
    430
  • Abstract
    Software pipelining is an instruction scheduling technique that exploits the instruction level parallelism (ILP) available in loops by overlapping operations from various successive loop iterations. The main drawback of aggressive software pipelining techniques is their high register requirements. If the requirements exceed the number of registers available in the target architecture, some steps need to be applied to reduce the register pressure (incurring some performance degradation): reduce iteration overlapping or spilling some lifetimes to memory. In the first part, we propose a set of heuristics to improve the spilling process and to better decide between adding spill code or directly decreasing the execution rate of iterations. The experimental evaluation, over a large number of representative loops and for a processor configuration, reports an increase in performance by a factor of 1.29 and a reduction of memory traffic by a factor of 1.36. In the second part, we analyze the use of backtracking and propose a novel approach for simultaneous instruction scheduling and register spilling in modulo scheduling: MIPS (modulo scheduling with integrated register spilling). The experimental evaluation reports an increase in performance by a factor of 1.46 and a reduction of the memory traffic by a factor of 1.66 (or an additional 1.13 and 1.22 with regard to the proposal in the first part). These improvements are achieved at the expense of a reasonable increase in the compilation time.
  • Keywords
    backtracking; graph theory; instruction sets; pipeline processing; processor scheduling; program control structures; resource allocation; backtracking; instruction level parallelism; instruction scheduling; iteration overlapping; memory traffic; modulo scheduling with integrated register spilling; software pipelining; Application software; Computer architecture; Degradation; Pipeline processing; Processor scheduling; Production; Proposals; Registers; Scheduling algorithm; Software algorithms;
  • fLanguage
    English
  • Journal_Title
    Parallel and Distributed Systems, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    1045-9219
  • Type

    jour

  • DOI
    10.1109/TPDS.2004.1278099
  • Filename
    1278099