Basic instruction scheduling and software pipelining. An effective scheduling technique for vliw machines, proceedings of the acm sigplan 88 conference on programming language design and implementation pldi 88, july 1988, pp. In software pipelining, iterations of a loop in the source program. Lam computer science department, stanford university. Monica lam is a professor in the computer science department at stanford university since 1988. Section 1 introduces terms common to many techniques. This is completely unnecessary on the mill, because the drops from prior iterations are still on the belt and can be addressed directly without unrolling or copying. Software pipelining is a practical and efficient loop scheduling technique used in generating efficient code for vliw architectures, superscalar processors and microcode compaction for horizontal microarchitectures. Monica lam department of computer science carnegie mellon university pittsburgh, pennsylvania 152 abstract this paper shows that software pipelining is an effective and viable scheduling technique for vliw processors. Our understanding of software pipelining subsequently deepened with the work of many others. The trick is to replicate the body of the loop after it has been scheduled, allowing different registers to be used for different values of the same variable when they have to be.
Software pipelining cmu school of computer science carnegie. It documents the research and results of the compiler technology developed for the warp machine. In proceedings of the acm sigplan 88 conference on programming language design and implementation, pages 318328, atlanta, ga, july 1988. The preprocessing step ensures that each original instruction in the loop body. And today, software pipelining is used in all advanced compilers for machines with instructionlevel parallelism, none of which, except the intel itanium, relies on any specialized support for software pipelining. Anti dependences writeafterread dependences constrain the reordering of instructions and limit the effectiveness of instruction scheduling and software pipelining techniques for superscalar and vliw processors. A method for software pipelining of irregular conditional control loops including preprocessing the loops so they can be safely software pipelined. Novel parallel givens qr decomposition implementation on. In software pipelining, iterations of a loop in the source program are continuously initiated at constant intervals, before the preceding iterations complete. Modulo variable expansion even though john ruttenberg wrote the words and he knows a lot more than i do about software pipelining and certainly where the bodies are buried, i corrected modulo renaming to modulo variable expansion as thats what monica lam calls it in her paper and in her thesis. Branch predictor and predication bp1 two level branch predictor paper by tseyu yeh and yale patt in isca19, 1992. In the meantime, trace scheduling was touted to be the scheduling technique of choice for.
Software pipelining is an excellent method for improving the parallelism in loops even when other methods fail. Often, a test must be performed beforehand which jumps to an alternative, nonsoftwarepipelined version of the loop in these cases. Software pipelining allows exploitation of parallelism inside and across loop iterations. Time optimal software pipelining of loops with control flows. Lam abstract the basic idea behind software pipelining was first developed by patel and davidson for scheduling hardware pipelines. Removing anti dependences by repairing springer for.
An efficient scheduling technique for vliw machines. Lam, anoop gupta in proceedings of the fifth international conference on architectural support for programming languages and operating systems, 1992 software controlled data prefetching is a promising technique for improving the performance of the memory subsystem to match todays highperformance processors. Lam is a professor of computer science at stanford university, was the chief scientist at tensilica and the founding ceo of moka5. In software pipelining, iterations of a loop in the source program are continuously in. However, formatting rules can vary widely between applications and fields of interest or study. Monica lam is part of stanford profiles, official site for faculty, postdocs, students and staff information expertise, bio, research, publications, and more. An effective scheduling technique for vliw machines by monica lam, 1988. The article would be stronger with better references to swp premodulo scheduling. Large number of pipeline stages up to 20 in pentium 4 increases branch penalty, unless the branch prediction is accurate. A systolic array optimizing compiler 1987 by m lam add to metacart. Automated empirical optimization of software and the atlas project.
In computer science, software pipelining is a technique used to optimize loops, in a manner that parallels hardware pipelining. Effective compiler generation of such code dates to the invention of modulo scheduling by rau and glaeser 1. Monica lam is part of stanford profiles, official site for faculty, postdocs, students and staff. Glaeser, some scheduling techniques and an easily schedulabe horizontal architecture for high performance scientific computing, in proceedings of. Traditionally, this parallelism internal to the data path of a processor is only available to the microcode programmer, and the problems of minimizing the execution time of the microcode within and across basic blocks are known as local and global compaction, respectively. Pipelining and parallel functional units are common optimization techniques used in highperformance processors. A guide to the theory ofnpcompleteness 1979 by m r garey, d s johnson.
The advantage of software pipelining is that optimal performance can be. Special thanks to monica lam, bob rau and richard hu. An experimental study of an ilpbased exact solution. In proceedings of the sigplan 88 symposium on programming language design and implementation, pages 318328. Comp412 fall2010 instructionscheduling,iii softwarepipelining comp412 warning. Us patent for software pipelining a hyperblock loop patent. Software pipelining has been widely accepted as an efficient technique for scheduling instructions in a loop body for vliw and superscalarprocessors. Illustrates new techniques for dataflow analysis that emphasize the unity of code optimization and other program analysis software. Pipelining on a gold member of the mill family mill.
In software pipelining, iterations of a loop in the source program are continuously initiated at. First, the processors in the xx a systolic array optimizing compiler array cooperate at a fine granularity of parallelism, interaction between processors must be considered in the generation of code for individual processors. She led the suif project which produced one of the most popular research compilers, and pioneered numerous compiler techniques used in industry. Lam showed that special hardware is unnecessary for effective modulo scheduling. This paper shows that software pipelining is an effective and viable scheduling technique for vliw processors. Of course, if the loop iterates less than k times at runtime, then the code must not enter the softwarepipelined version. Hierarchical reduction complements the software pipelining technique, permitting a consistent performance improvement be obtained. In computing, a pipeline is a set of data processing elements connected in series, where the output of one element is the input of the next one. During the preprocessing stage, each instruction in the loop body is processing in turn n 4. An effective scheduling technique for vliw machines. A report on compilation techniques for shortvector.
Presents the five methods for translation to explain syntaxdirected translation. We address the problem of time optimal software pipelining of loops with control flows, one of the most difficult open problems in the area of parallelizing compilers. An extended scheduling technique for software pipelining. The standard technique for dealing with them on a genreg machine, as originated by monica lam, is to unroll and inject regtoreg copies. All new chapter on interprocedural analysis, written by worldrenowned computer scientist, monica s. Software pipelining is a type of outoforder execution, except that the reordering is done by a compiler or in the case of hand written assembly code, by the programmer instead of the processor.
An effective scheduling technique for vliw machines by monica lam. Software pipelining ist ein entwurfsmuster zur programmierung eines prozessors mit mehreren. Software pipelining university of wisconsinmadison. Monica lam obtained her bs degree in computer science from university of british columbia, and her phd degree in computer science. Monica lam is a professor in the computer science department at stanford university, and the faculty director of the stanford mobisocial laboratory. The implementations of the ideas in this thesis would not have. I tried to clarify the history of software pipelining, distinguish between swp and modulo scheduling, and generally to credit rao, lam, and gao with their true accomplishments. Satyanarayanan, garth gibson, and monica lam for their input and guidance on this dissertation and the research behind it. Toward a software pipelining framework for manycore chips by juergen ributzka. Monica lam obtained her bs degree in computer science from university of british columbia, and her phd degree in computer science from carnegie mellon university in 1987. In computer science, software pipelining is a technique used to optimize loops, in a manner that. Her contributions in compiler optimizations include software pipelining, data.
Software pipelining sw pl is a performance enhancing technique that exploits instructionlevel parallelism on a wide instruction word to accomplish execution speedup. An effective scheduling technique for vliw machines monica lam department of computer science carnegie mellon university pittsburgh, pennsylvania 152 abstract this paper shows that software pipelining is an effective and viable scheduling technique for vliw processors. Her software pipelining algorithm is used in commercial systems for. Software pipelining has been known to assembly language programmers of machines with instruction level parallelism since such architectures existed. Some computer architectures have explicit support for software pipelining, notably intels ia64 architecture. Citeseerx document details isaac councill, lee giles, pradeep teregowda. This thesis details the implementation of swing modulo scheduling, a software pipelining technique, that is both e. A systolic array optimizing compiler 1987 citeseerx. Improving software pipelining by hiding memory latency. The advantage of software pipelining is that optimal performance can be achieved with compact object code. Warp is a systolic array built out of custom, highperformance processors, each of which can. Global software pipelining with iteration preselection.
Toward a software pipelining framework for manycore chips by. Monica lam a systolic array optimizing compiler1989 isbn 0898383005 modulo renaming. In software pipelining, iterations of a loop in the source program are continuously. The elements of a pipeline are often executed in parallel or in timesliced fashion. Her software pipelining algorithm is used in commercial systems for instruction level parallelism. Explicit compilerbased memory management for outofcore. Software pipelining is a technique to improve the performance of a loop by overlapping the execution of several iterations.
This has often been cited as a reason that software pipelining cannot be effectively implemented on conventional architectures. Bp2 combining branch predictor by scott mcfarling, 1993. The execution of a software pipelined loop goes through three phases. Her research team created the first, widely adopted research compiler, suif. She is the faculty director of the open virtual assistant lab oval.
One approach involves improving the speed of the processor. In the meantime, trace scheduling was touted to be the scheduling technique of choice for vliw very long instruction word machines. Emerging architectures often have support for software pipelining. This is automated desginspace exploration for matrix multiplication. The microarchitecture breaks the instructions into mips like microoperations, but it complicates the design and wastes silicon. When app academys san francisco staff moved into new offices a month ago, the administrative group faced a common but important foundational task. As the name implies, pipelining here is not primarily achieved through hardware, but rather refers to the interleaved execution of distinct iterations of a sw loop.
In proceedings of the acm sigplan 1988 conference on programming language design and implementation, pp. Software pipelining for i1, i pipelining challenging. The basic idea behind software pipelining was first developed by patel and davidson for scheduling hardware pipelines. Im pretty sure that cdc and fps hand coders used the technique. An iterative software pipelining method promotes instructions of a program loop to previous loop iterations and then reschedules the instructions until either 1 the resultant schedule is optimal i. A compilation technique for software pipelining of loops with. In fact, monica lam presents an elegant solution to this problem in her thesis, a systolic array optimizing compiler 1989 isbn. An effective scheduling technique for vliw machines, in proceedings of the acm sigplan 88 conference on programming language design and implementation pldi 88, july 1988 pages 318328. She is a coauthor of the classic compiler textbook, popularly known as the dragon book. Monica lam is a professor in the computer science department at stanford.
The site facilitates research and collaboration in academic endeavors. Tolerating latency through software controlled data prefetching a disser t a ion submi t t e dt ot he d p a r m n to fe le ct ic gi n in g a n dt h ec o m it t e eo ng r d u est ie s o. Figure 4 reducing the rampuprampdown effect with software pipelining. In fact, monica lam presents an elegant solution to this problem in her thesis, a systolic array optimizing compiler 1989 isbn 0898383005. There are many approaches for improving the execution time of an application program. Lam s contributions in compiler optimizations include software pipelining, data locality, and parallelization. We use cookies to make interactions with our website easy and meaningful, to better understand the use of our services, and to tailor advertising. An effective scheduling technique for vliw machines, pldi 1988. An effective scheduling tech nique for vliw machines. Monica lam obtained her bs degree in computer science from university of british columbia, and her phd degree in computer science from carnegie mellon. The preprocessing step ensures that each original instruction in the loop body can be overexecuted as many times as necessary. Method for software pipelining of irregular conditional.
916 763 147 805 928 1067 509 390 323 747 703 1223 154 753 1154 303 1269 1090 1390 692 1067 1516 857 1024 1465 203 289 564 984 659 308 765 534 432 640 205