Formally Defining and Verifying Master/Slave Speculative Parallelization

Master/Slave Speculative Parallelization (MSSP) is a new execution paradigm that decouples the issues of performance and correctness in microprocessor design and implementation. MSSP uses a fast, not necessarily correct, master processor to speculatively split a program into tasks, which are executed independently and concurrently on slower, but correct, slave processors. This work reports on the first steps in our efforts to formally validate that overall correctness can be achieved in MSSP despite a lack of correctness guarantees in its performance-critical parts. We describe three levels of an abstract model for MSSP, each refining the next and each preserving equivalence to a sequential machine. Equivalence is established in terms of a jumping refinement, a notion we introduce to describe equivalence at specific places of interest in the code. We also report on experiences and insights gained from this exercise. In particular, we show how formalizing MSSP facilitated a deeper understanding of performance-correctness decoupling and its attendant trade-offs, all key features of the MSSP paradigm. Moreover, formalization revealed all assumptions underpinning correctness, which, being specified abstractly, can be understood in an implementation-independent way. We found these results so valuable that we plan to advance MSSP's formalization in parallel with its subsequent design iterations.

[1]  José Meseguer,et al.  The Maude LTL Model Checker and Its Implementation , 2003, SPIN.

[2]  MeseguerJosé Conditional rewriting logic as a unified model of concurrency , 1992 .

[3]  J. Meseguer,et al.  Building Equational Proving Tools by Reflection in Rewriting Logic , 2000 .

[4]  Jun Sawada,et al.  Processor Verification with Precise Exeptions and Speculative Execution , 1998, CAV.

[5]  Gurindar S. Sohi,et al.  Master/slave speculative parallelization , 2002, MICRO.

[6]  Koushik Sen,et al.  An Executable Specification of Asynchronous Pi-Calculus Semantics and May Testing in Maude 2.0 , 2002, Electron. Notes Theor. Comput. Sci..

[7]  Tetsuo Tamai,et al.  CAFE: An Industrial-Strength Algebraic Formal Method , 2000 .

[8]  Leslie Lamport,et al.  What Good is Temporal Logic? , 1983, IFIP Congress.

[9]  Gurindar S. Sohi,et al.  Multiscalar processors , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[10]  Craig Zilles,et al.  Formal Verification of MSSP , 2003 .

[11]  Gurindar S. Sohi,et al.  Master/slave speculative parallelization and approximate code , 2002 .

[12]  Alan J. Hu,et al.  Protocol verification as a hardware design aid , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[13]  Jun Sawada,et al.  Trace Table Based Approach for Pipeline Microprocessor Verification , 1997, CAV.

[14]  David L. Dill,et al.  Automatic verification of Pipelined Microprocessor Control , 1994, CAV.

[15]  Xiaowei Shen,et al.  Using term rewriting systems to design and verify processors , 1999, IEEE Micro.