Modeling speculative execution and availability analysis with Boolean expressions

Emerging design problems are prompting the use of instruction-level parallelism techniques during the high-level synthesis (HLS) of ASICs or ASIPs in order to meet tight time-constraints. Techniques like code motion and speculative execution can grant time-constraint satisfiability because they can shorten schedule lengths. The mechanism for inducing code motion and speculative execution relies on the global computation of the operations available for scheduling at a given state. This is called availability analysis. We propose an availability analysis technique that captures major achievements from the compiler domain while keeping one of the most popular HLS representations, namely, the data-flow graph. The key is to combine graph manipulation for keeping track of data dependences with Boolean techniques for dealing with conditional execution. An important practical aspect of our Boolean modeling of conditional execution is that public-domain packages for Boolean manipulation are widely available in the design automation community. Therefore, our formulation holds the promise of allowing existent HLS tools to benefit from global scheduling at the expense of a few extensions. The technique is currently used within a prototype tool. Experiments performed on classical examples from the HLS literature show that our technique reaches the best published results. Keywords—high-level synthesis, code generation, scheduling, code motion, speculative execution.

[1]  Taewhan Kim,et al.  A scheduling algorithm for conditional resource sharing , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[2]  Richard P. Kleihorst,et al.  Mpeg2 Video Encoding in Consumer Electronics , 1997, J. VLSI Signal Process..

[3]  L. C. Villar dos Santos,et al.  Exploiting instruction-level parallelism : a constructive approach , 1998 .

[4]  Hugo De Man,et al.  Integration of medium-throughput signal processing algorithms on flexible instruction-set architectures , 1995, J. VLSI Signal Process..

[5]  Rolf Ernst,et al.  Combining MBP-speculative computation and loop pipelining in high-level synthesis , 1995, Proceedings the European Design and Test Conference. ED&TC 1995.

[6]  Alexander Aiken,et al.  Resource-Constrained Software Pipelining , 1995, IEEE Trans. Parallel Distributed Syst..

[7]  Kazutoshi Wakabayashi,et al.  Global scheduling independent of control dependencies based on condition vectors , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.

[8]  David A. Patterson,et al.  Computer Architecture - A Quantitative Approach, 5th Edition , 1996 .

[9]  Kemal Ebcioglu,et al.  A global resource-constrained parallelization technique , 1989 .

[10]  Louise Trevillyan,et al.  Control-flow versus data-flow-based scheduling: combining both approaches in an adaptive scheduling system , 1997, IEEE Trans. Very Large Scale Integr. Syst..

[11]  Michael D. Smith,et al.  Efficient superscalar performance through boosting , 1992, ASPLOS V.

[12]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[13]  Forrest Brewer,et al.  A new symbolic technique for control-dependent scheduling , 1996, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[14]  J. F. Wang,et al.  A Tree-Based Scheduling Algorithm for Control-Dominated Circuits , 1993, 30th ACM/IEEE Design Automation Conference.

[15]  J. P. Veen,et al.  A method to control compensation code during global scheduling , 1997 .