JOURNAL ARTICLE

Software pipelining

Monica S. Lam

Year: 2004 Journal:   ACM SIGPLAN Notices Vol: 39 (4)Pages: 244-256   Publisher: Association for Computing Machinery

Abstract

The basic idea behind software pipelining was first developed by Patel and Davidson for scheduling hardware pipe-lines. As instruction-level parallelism made its way into general-purpose computing, it became necessary to automate scheduling. How and whether instructions can be scheduled statically have major ramifications on the design of computer architectures. Rau and Glaeser were the first to use software pipelining in a compiler for a machine with specialized hardware designed to support software pipelining. In the meantime, trace scheduling was touted to be the scheduling technique of choice for VLIW (Very Long Instruction Word) machines. The most important contribution from this paper is to show that software pipelining is effective on VLIW machines without complicated hardware support. Our understanding of software pipelining subsequently deepened with the work of many others. And today, software pipelining is used in all advanced compilers for machines with instruction-level parallelism, none of which, except the Intel Itanium, relies on any specialized support for software pipelining.This paper shows that software pipelining is an effective and viable scheduling technique for VLIW processors. In software pipelining, iterations of a loop in the source program are continuously initiated at constant intervals, before the preceding iterations complete. The advantage of software pipelining is that optimal performance can be achieved with compact object code.This paper extends previous results of software pipelining in two ways: First, this paper shows that by using an improved algorithm, near-optimal performance can be obtained without specialized hardware. Second, we propose a hierarchical reduction scheme whereby entire control constructs are reduced to an object similar to an operation in a basic block. With this scheme, all innermost loops, including those containing conditional statements, can be software pipelined. It also diminishes the start-up cost of loops with small number of iterations. Hierarchical reduction complements the software pipelining technique, permitting a consistent performance improvement be obtained.The techniques proposed have been validated by an implementation of a compiler for Warp, a systolic array consisting of 10 VLIW processors. This compiler has been used for developing a large number of applications in the areas of image, signal and scientific processing.

Keywords:
Software pipelining Computer science Very long instruction word Parallel computing Compiler Instruction scheduling Instruction-level parallelism Software Scheduling (production processes) Optimizing compiler Computer architecture Programming language Parallelism (grammar) Dynamic priority scheduling Operating system Two-level scheduling

Metrics

876
Cited By
28.72
FWCI (Field Weighted Citation Impact)
48
Refs
1.00
Citation Normalized Percentile
Is in top 1%
Is in top 10%

Citation History

Topics

Parallel Computing and Optimization Techniques
Physical Sciences →  Computer Science →  Hardware and Architecture
Embedded Systems Design Techniques
Physical Sciences →  Computer Science →  Hardware and Architecture
Real-Time Systems Scheduling
Physical Sciences →  Computer Science →  Hardware and Architecture

Related Documents

BOOK-CHAPTER

Software Pipelining

Monica S. Lam

Kluwer international series in engineering and computer science Year: 1989 Pages: 83-124
JOURNAL ARTICLE

Software pipelining

Reese B. JonesVicki H. Allan

Year: 1991 Pages: 82-92
JOURNAL ARTICLE

Trace software pipelining

Jian WangAndreas KrallM. Anton Ertl

Journal:   Journal of Computer Science and Technology Year: 1995 Vol: 10 (6)Pages: 481-490
© 2026 ScienceGate Book Chapters — All rights reserved.