Translation Validation of Transformations of Embedded System Specifications Using Equivalence Checking

In the last two decades extensive research has been conducted addressing the design methodology of embedded systems and their verification. The initial behavioural specification of an embedded system goes through significant optimizing transformations, automated and also human-guided, before being mapped to an architecture. Establishing the validity of these transformations is crucial to ensure that the intended behaviourof a system has not been faultily altered during synthesis. State-of-the-art verification methods fail to cope with the complexity of the problem. So, we have devised some efficient translation validation methodologies to handle diverse code transformations, in the initial part of our work, we have worked with the Finite State Machine with Data path (FSMD) model and its extension to validate various code motion techniques, in the latter part, we have designed an equivalence checking method around the Array Data-Dependence Graph(ADDG) model, which provides a more suitable framework to reason about index spaces of array variables, to verify loop transformations and arithmetic transformations in the presence of recurrences, we have also shown how to relate our path based equivalence checking mechanisms with that of bisimulation based verification techniques by deriving bisimulation relations from the outputs of our equivalence checkers.

[1]  Niraj K. Jha,et al.  Incorporating speculative execution into scheduling ofcontrol-flow-intensive designs , 2000, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[2]  Sorin Lerner,et al.  Validating High-Level Synthesis , 2008, CAV.

[3]  Nikil D. Dutt,et al.  SPARK: a high-level synthesis framework for applying parallelizing compiler transformations , 2003, 16th International Conference on VLSI Design, 2003. Proceedings..

[4]  Chandan Karfa,et al.  Experimentation with SMT solvers and theorem provers for verification of loop and arithmetic transformations , 2013, I-CARE '13.

[5]  John McCarthy,et al.  Towards a Mathematical Science of Computation , 1962, IFIP Congress.

[6]  Jochen A. G. Jess,et al.  A reordering technique for efficient code motion , 1999, DAC '99.

[7]  Nikil D. Dutt,et al.  Using global code motions to improve the quality of results for high-level synthesis , 2004, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[8]  Ahmed Amine Jerraya,et al.  Formulation and evaluation of scheduling techniques for control flow graphs , 1995, Proceedings of EURO-DAC. European Design Automation Conference.

[9]  Chittaranjan A. Mandal,et al.  An Equivalence-Checking Method for Scheduling Verification in High-Level Synthesis , 2008, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[10]  Minjoong Rim,et al.  Global scheduling with code-motions for high-level synthesis applications , 1995, IEEE Trans. Very Large Scale Integr. Syst..

[11]  Chittaranjan A. Mandal,et al.  Equivalence Checking of Array-Intensive Programs , 2011, 2011 IEEE Computer Society Annual Symposium on VLSI.

[12]  Jing-Yang Jou,et al.  Equivalence checking of scheduling with speculative code transformations in high-level synthesis , 2011, 16th Asia and South Pacific Design Automation Conference (ASP-DAC 2011).

[13]  Xavier Leroy,et al.  Verified validation of lazy code motion , 2009, PLDI '09.

[14]  Sanjay V. Rajopadhye,et al.  On Program Equivalence with Reductions , 2014, SAS.

[15]  Chittaranjan A. Mandal,et al.  A formal verification method of scheduling in high-level synthesis , 2006, 7th International Symposium on Quality Electronic Design (ISQED'06).

[16]  Shashidhar Kodamballi Efficient Automatic Verification of Loop and Data-Flow Transformations by Functional Equivalence Checking (Efficiënte automatische controle van lus- en gegevensstroomtransformaties door testen van functionele gelijkwaardigheid) , 2008 .

[17]  Chittaranjan A. Mandal,et al.  Verification of Loop and Arithmetic Transformations of Array-Intensive Behaviors , 2013, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[18]  R. Composano,et al.  Path-based scheduling for synthesis , 1990, Twenty-Third Annual Hawaii International Conference on System Sciences.

[19]  Chittaranjan A. Mandal,et al.  A genetic algorithm for the synthesis of structured data paths , 2000, VLSI Design 2000. Wireless and Digital Imaging in the Millennium. Proceedings of 13th International Conference on VLSI Design.

[20]  Sorin Lerner,et al.  Translation Validation of High-Level Synthesis , 2010, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[21]  Fabien Coelho,et al.  Using algebraic transformations to optimize expression evaluation in scientific code , 1998, Proceedings. 1998 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.98EX192).

[22]  George C. Necula,et al.  Translation validation for an optimizing compiler , 2000, PLDI '00.

[23]  Kunal Banerjee,et al.  Deriving Bisimulation Relations from Path Extension Based Equivalence Checkers , 2017, IEEE Transactions on Software Engineering.

[24]  Alain Darte,et al.  Loop Shifting for Loop Compaction , 1999, LCPC.

[25]  Robert W. Floyd,et al.  Assigning meaning to programs , 1967 .

[26]  Chittaranjan A. Mandal,et al.  Extending the FSMD Framework for Validating Code Motions of Array-Handling Programs , 2014, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[27]  Paul Feautrier,et al.  On the Equivalence of Two Systems of Affine Recurrence Equations (Research Note) , 2002, Euro-Par.

[28]  Gerda Janssens,et al.  Functional equivalence checking for verification of algebraic transformations on array-intensive source code , 2005, Design, Automation and Test in Europe.

[29]  Chittaranjan A. Mandal,et al.  Formal verification of code motion techniques using data-flow-driven equivalence checking , 2012, TODE.

[30]  Miodrag Potkonjak,et al.  High performance embedded system optimization using algebraic and generalized retiming techniques , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.

[31]  Gerda Janssens,et al.  Equivalence checking of static affine programs using widening to handle recurrences , 2008, TOPL.

[32]  Masahiro Fujita,et al.  Formal equivalence checking for loop optimization in C programs without unrolling , 2007 .

[33]  Chandan Karfa,et al.  A Value Propagation Based Equivalence Checking Method for Verification of Code Motion Techniques , 2012, 2012 International Symposium on Electronic System Design (ISED).

[34]  Pierre G. Paulin,et al.  MPSoC memory optimization using program transformation , 2007, TODE.

[35]  Chittaranjan A. Mandal,et al.  Verification of Code Motion Techniques Using Value Propagation , 2014, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[36]  Amir Pnueli,et al.  Translation and Run-Time Validation of Loop Transformations , 2005, Formal Methods Syst. Des..

[37]  Mahmut T. Kandemir,et al.  Optimizing array-intensive applications for on-chip multiprocessors , 2005, IEEE Transactions on Parallel and Distributed Systems.

[38]  S. C. De Sarkar,et al.  A Theorem Prover for Verifying Iterative Programs Over Integers , 1989, IEEE Trans. Software Eng..