Petri Net versus Modulo Scheduling for Software Pipelining

V.H. Allan, U.R. Shah, K.M. Reddy


Software pipelining is a technique that reforms the loop to improve execution time. Iterations are executed in overlapped fashion to increase parallelism. Software pipelining is performed by two different methods. Modulo scheduling places each operation so that the schedule is legal when replicated and offset by a target initiation interval. This process is repeated with larger initiation intervals until success is achieved. Kernel recognition methods schedule operations as rapidly as possible until a pattern is recognized. These two distinctly different methods have various strengths and weaknesses. This paper explores the benefits and drawbacks of each.


software pipelining, modulo scheduling, petri net scheduling

Talk Overheads (173168 bytes)