BIB-VERSION:: CS-TR-v2.0 ID:: STAN//CSL-TR-97-715 ENTRY:: September 30, 1997 ORGANIZATION:: Stanford University, Computer Systems Laboratory TITLE:: Software and Hardware for Exploiting Speculative Parallelism with a Multiprocessor TYPE:: Technical Report AUTHOR:: Oplinger, Jeffrey AUTHOR:: Heine, David AUTHOR:: Liao, Shih-Wei AUTHOR:: Nayfeh, Basem A. AUTHOR:: Lam, Monica S. AUTHOR:: Olukotun, Kunle DATE:: february 1997 PAGES:: 26 ABSTRACT:: Thread-level speculation (TLS) makes it possible to parallelize general purpose C programs. This paper proposes software and hardware mechanisms that support speculative thread- level execution on a single-chip multiprocessor. A detailed analysis of programs using the TLS execution model shows a bound on the performance of a TLS machine that is promising. In particular, TLS makes it feasible to find speculative do across parallelism in outer loops that can greatly improve the performance of general-purpose applications. Exploiting speculative thread-level parallelism on a multiprocessor requires the compiler to determine where to speculate, and to generate SPMD (single program multiple data) code.We have developed a fully automatic compiler system that uses profile information to determine the best loops to execute speculatively, and to generate the synchronization code that improves the performance of speculative execution. The hardware mechanisms required to support speculation are simple extensions to the cache hierarchy of a single chip multiprocessor. We show that with our proposed mechanisms, thread-level speculation provides significant performance benefits. NOTES:: [Adminitrivia V1/Prg/19970930] END:: STAN//CSL-TR-97-715