Integrating Algorithm-Level Design and System-Level Design through specification synthesis

INTEGRATING ALGORITHM-LEVEL DESIGN AND SYSTEM-LEVEL DESIGN THROUGH SPECIFICATION SYNTHESIS by Jiaxing Zhang Doctor of Philosophy in Computer Engineering Northeastern University, August 2014 Prof. Gunar Schirner, Adviser Modern Multiprocessor System-On-Chip (MPSoC) designs face challenges in tremendous design complexity imposed by the wide range of functional requirements and versatile architectural platforms. The Electronic Design Automation (EDA) research has been striving to accelerate the creation, deployment and validation cycles from initial design modeling to final system delivery. However, establishing a universal, automatic and rapid design flow from concept modeling to heterogeneous implementations with synthesis, optimization and exploration capability remains an open challenge due to the overwhelming complexity, vastly different abstractions, and market adaptability and usability. This thesis introduces a specification synthesis approach that joins two design methodologies, Algorithm-Level Design (ALD) and System-Level Design (SLD), to establish a new AlgorithmArchitecture Co-design flow. We designed and implemented an algorithm-to-specification synthesizer: Algo2Spec, which out of an algorithm model captured in ALD, such as Simulink, synthesizes into an SLD languages (SLDL) specification (e.g. SpecC/SystemC) enabling SLD exploration. Expanding the rich sets of SLD facilities into higher abstraction levels in ALD forms a new joint co-design methodology. The new flow seamlessly spans from the Simulink environment down to heterogeneous implementations crossing multiple abstractions. Our tools empower designers to construct, simulate, validate, explore, and deploy models in rapid feedback cycles. Our results illustrated the opportunities and benefits of our approach on a set of real-world applications and showed a significantly shortened design time. In addition, we explore new optimization opportunities emerged from the specification synthesis with respect to Design Space Exploration (DSE) and software synthesis. We have identified several DSE challenges, such as selecting a suitable model granularity to balance the model

[1]  Johnny Öberg,et al.  From Simulink to NoC-based MPSoC on FPGA , 2014, 2014 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[2]  Luciano Lavagno,et al.  Hardware-software co-design of embedded systems: the POLIS approach , 1997 .

[3]  Ed F. Deprettere,et al.  A framework for rapid system-level exploration, synthesis, and programming of multimedia MP-SoCs , 2007, 2007 5th IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[4]  Peter Marwedel,et al.  Embedded system design , 2021, Embedded Systems.

[5]  Jianwen Zhu,et al.  Specification and Design of Embedded Systems , 1998, Informationstechnik Tech. Inform..

[6]  Daniel D. Gajski,et al.  SpecC System-Level Design Methodology Applied to the Design of a GSM Vocoder , 2000 .

[7]  Alberto L. Sangiovanni-Vincentelli,et al.  Platform-Based Design and Software Design Methodology for Embedded Systems , 2001, IEEE Des. Test Comput..

[8]  Ahmed Amine Jerraya,et al.  Automatic generation and targeting of application specific operating systems and embedded systems software , 2001, DATE '01.

[9]  Luigi Carro,et al.  Simulink®-based heterogeneous multiprocessor SoC design flow for mixed hardware/software refinement and simulation , 2009, Integr..

[10]  Thorsten Grotker,et al.  System Design with SystemC , 2002 .

[11]  Martine D. F. Schlag,et al.  Spectral K-Way Ratio-Cut Partitioning and Clustering , 1993, 30th ACM/IEEE Design Automation Conference.

[12]  Laurie J. Hendren,et al.  Practical virtual method call resolution for Java , 2000, OOPSLA '00.

[13]  Soonhoi Ha,et al.  Hardware-Software Codesign of Multimedia Embedded Systems: the PeaCE , 2006, 12th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA'06).

[14]  Rainer Dömer Computer-aided recoding for multi-core systems , 2010, 2010 15th Asia and South Pacific Design Automation Conference (ASP-DAC).

[15]  Andreas Gerstlauer,et al.  Automatic generation of hardware dependent software for MPSoCs from abstract system specifications , 2008, 2008 Asia and South Pacific Design Automation Conference.

[16]  D. Gajski,et al.  Multi-metric and multi-entity characterization of applications for early system design exploration , 2005, Proceedings of the ASP-DAC 2005. Asia and South Pacific Design Automation Conference, 2005..

[17]  Chris Sullivan,et al.  Using C based logic synthesis to bridge the productivity gap , 2004, ASP-DAC 2004: Asia and South Pacific Design Automation Conference 2004 (IEEE Cat. No.04EX753).

[18]  Radu Marculescu,et al.  The Chip Is the Network: Toward a Science of Network-on-Chip Design , 2009, Found. Trends Electron. Des. Autom..

[19]  Edwin Hsing-Mean Sha,et al.  Efficient assignment and scheduling for heterogeneous DSP systems , 2005, IEEE Transactions on Parallel and Distributed Systems.

[20]  Stuart Sutherland,et al.  Systemverilog for Design: A Guide to Using Systemverilog for Hardware Design and Modeling , 2006 .

[21]  Ahmed Amine Jerraya,et al.  Programming models and HW-SW interfaces abstraction for multi-processor SoC , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[22]  Alberto L. Sangiovanni-Vincentelli,et al.  Correct-by-construction transformations across design environments for model-based embedded software development , 2005, Design, Automation and Test in Europe.

[23]  Janick Bergeron,et al.  Writing Testbenches using SystemVerilog , 2006 .

[24]  Edward A. Lee,et al.  Taming heterogeneity - the Ptolemy approach , 2003, Proc. IEEE.

[25]  H. Buttner,et al.  Platform-based Design , 2001 .

[26]  Kazutoshi Wakabayashi,et al.  C-based SoC design flow and EDA tools: an ASIC and system vendorperspective , 2000, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[27]  Jiaxing Zhang,et al.  Automatic specification granularity tuning for design space exploration , 2014, 2014 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[28]  Andreas Gerstlauer,et al.  Retargetable profiling for rapid, early system-level design space exploration , 2004, Proceedings. 41st Design Automation Conference, 2004..

[29]  Li Yu-he,et al.  Summary of image edge detection , 2005 .

[30]  Grant Martin,et al.  Overview of the MPSoC design challenge , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[31]  Dieter Hogrefe,et al.  SDL : formal object-oriented language for communicating systems , 1997 .

[32]  Peter A. Fritzson,et al.  Principles of object-oriented modeling and simulation with Modelica 2.1 , 2004 .

[33]  Didier Le Gall,et al.  MPEG: a video compression standard for multimedia applications , 1991, CACM.

[34]  Giovanni De Micheli,et al.  Hardware C - A Language for Hardware Design , 1988 .

[35]  Jiaxing Zhang,et al.  Joint Algorithm Developing and System-Level Design: Case Study on Video Encoding , 2013, IESS.

[36]  Stavros Tripakis,et al.  Translating discrete-time simulink to lustre , 2003, TECS.

[37]  Michael Glaß,et al.  Bridging algorithm and ESL design: Matlab/Simulink model transformation and validation , 2013, Proceedings of the 2013 Forum on specification and Design Languages (FDL).

[38]  Bertram Ludäscher,et al.  Kepler: an extensible system for design and execution of scientific workflows , 2004, Proceedings. 16th International Conference on Scientific and Statistical Database Management, 2004..

[39]  Andreas Gerstlauer,et al.  The formal execution semantics of SpecC , 2002, 15th International Symposium on System Synthesis, 2002..

[40]  A. Sameh,et al.  System-Level Modeling and Design Using SysML and SystemC , 2007, 2007 International Symposium on Integrated Circuits.

[41]  Brian W. Kernighan,et al.  An efficient heuristic procedure for partitioning graphs , 1970, Bell Syst. Tech. J..

[42]  Stephen J. Mellor,et al.  Executable UML - A Foundation for Model-Driven Architecture , 2002, Addison Wesley object technology series.

[43]  Roland Ducournau,et al.  Empirical assessment of object-oriented implementations with multiple inheritance and static typing , 2009, OOPSLA 2009.

[44]  Elvinia Riccobene,et al.  A SoC design methodology involving a UML 2.0 profile for SystemC , 2005, Design, Automation and Test in Europe.

[45]  Steve Heath,et al.  Embedded Systems Design , 1997 .

[46]  Capers Jones,et al.  Embedded Software: Facts, Figures, and Future , 2009, Computer.

[47]  Luciano Lavagno,et al.  Task generation and compile-time scheduling for mixed data-control embedded software , 2000, Proceedings 37th Design Automation Conference.

[48]  Wayne H. Wolf,et al.  Multiprocessor Systems-on-Chips , 2004, ISVLSI.

[49]  Andreas Gerstlauer,et al.  Abstract, Multifaceted Modeling of Embedded Processors for System Level Design , 2007, 2007 Asia and South Pacific Design Automation Conference.

[50]  Rainer Dömer,et al.  System-level modeling and design with the SpecC language , 2000 .

[51]  Jeffrey C. Carver,et al.  Parallel Programmer Productivity: A Case Study of Novice Parallel Programmers , 2005, ACM/IEEE SC 2005 Conference (SC'05).

[52]  S. T. Allworth,et al.  Design and Development Tools , 1987 .

[53]  Ronald L. Graham,et al.  Bounds on Multiprocessing Timing Anomalies , 1969, SIAM Journal of Applied Mathematics.

[54]  Gabriela Nicolescu,et al.  Multiprocessor SoC platforms: a component-based design approach , 2002, IEEE Design & Test of Computers.

[55]  Wim Dehaene,et al.  From UML/SysML to Matlab/Simulink: Current State and Future Perspectives , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[56]  Alexander Chatzigeorgiou Performance and power evaluation of C++ object-oriented programming in embedded processors , 2003, Inf. Softw. Technol..

[57]  Pieter J. Mosterman,et al.  AN INDUSTRIAL EMBEDDED CONTROL SYSTEM DESIGN PROCESS , 2011 .

[58]  Wolfgang Ecker,et al.  Hardware-dependent Software , 2009 .

[59]  Devendra K. Chaturvedi,et al.  Modeling and Simulation of Systems Using MATLAB and Simulink , 2009 .

[60]  Jean-François Boland,et al.  Using Matlab and Simulink in a SystemC Verification Environment , 2005 .

[61]  Gary W. Johnson,et al.  LabVIEW Graphical Programming: Practical Applications in Instrumentation and Control , 1997 .

[62]  Brian Bailey,et al.  ESL Design and Verification: A Prescription for Electronic System Level Methodology , 2007 .

[63]  Daniel D. Gajski Principles of Digital Design , 1996 .

[64]  F. Herrera,et al.  Systematic embedded software generation from SystemC , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[65]  Konstantinos Konstantinides,et al.  Image and Video Compression Standards: Algorithms and Architectures , 1997 .

[66]  Andreas Gerstlauer,et al.  System-on-Chip Environment: A SpecC-Based Framework for Heterogeneous MPSoC Design , 2008, EURASIP J. Embed. Syst..

[67]  Zoran A. Salcic,et al.  The SystemJ approach to system-level design , 2006, Fourth ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2006. MEMOCODE '06. Proceedings..

[68]  K. Keutzer,et al.  System-level design: orthogonalization of concerns andplatform-based design , 2000, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[69]  Daniel Gajski,et al.  Embedded software generation from system level design languages , 2004, ASP-DAC 2004: Asia and South Pacific Design Automation Conference 2004 (IEEE Cat. No.04EX753).

[70]  William L. Kleb,et al.  Exploring XP for Scientific Research , 2003, IEEE Softw..

[71]  Jörg Henkel,et al.  A hardware/software partitioner using a dynamically determined granularity , 1997, DAC.

[72]  Laurie J. Hendren,et al.  A Study of Type Analysis for Speculative Method Inlining in a JIT Environment , 2005, CC.

[73]  Jean-Philippe Babau,et al.  Platform based design , 2013, FDL.

[74]  Rachel Jane McCrindle,et al.  An investigation into the effects of code coupling on team dynamics and productivity , 2002, Proceedings 26th Annual International Computer Software and Applications.

[75]  Ed F. Deprettere,et al.  Compaan: deriving process networks from Matlab for embedded signal processing architectures , 2000, CODES '00.

[76]  Daniel D. Gajski,et al.  Embedded System Design: Modeling, Synthesis and Verification , 2013 .

[77]  Wolfgang Müller,et al.  UML for SOC Design , 2005 .

[78]  Ana Toledo Moreo,et al.  Experiences on developing computer vision hardware algorithms using Xilinx system generator , 2005, Microprocess. Microsystems.

[79]  Andreas Gerstlauer,et al.  System Design - A Practical Guide with SpecC , 2001 .

[80]  Keith D. Underwood,et al.  FPGAs vs. CPUs: trends in peak floating-point performance , 2004, FPGA '04.

[81]  Stavros Tripakis,et al.  From simulink to SCADE/lustre to TTA: a layered approach for distributed embedded applications , 2003, LCTES '03.

[82]  Wolfgang Rosenstiel,et al.  Target software generation: an approach for automatic mapping of SystemC specifications onto real-time operating systems , 2005, Des. Autom. Embed. Syst..

[83]  Frank Vahid,et al.  SpecSyn: an environment supporting the specify-explore-refine paradigm for hardware/software system design , 1998, IEEE Trans. Very Large Scale Integr. Syst..

[84]  Massimo Piccardi,et al.  Background subtraction techniques: a review , 2004, 2004 IEEE International Conference on Systems, Man and Cybernetics (IEEE Cat. No.04CH37583).

[85]  Ashish Tewari Modern Control Design With MATLAB and SIMULINK , 2002 .

[86]  Heinrich Meyr,et al.  High-Level Software Synthesis for the Design of Communication Systems , 1993, IEEE J. Sel. Areas Commun..

[87]  Daniel Gajski,et al.  Verification of System Level Model Transformations , 2006, International Journal of Parallel Programming.

[88]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[89]  Ines Viskic,et al.  A Flexible, Syntax Independent Representation (SIR) for System Level Design Models , 2006, 9th EUROMICRO Conference on Digital System Design (DSD'06).

[90]  Jörg Henkel,et al.  Closing the SoC Design Gap , 2003, Computer.

[91]  Rainer Dömer,et al.  Code and Data Structure Partitioning for Parallel and Flexible MPSoC Specification Using Designer-Controlled Recoding , 2008, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[92]  Luciano Lavagno,et al.  ECL: a specification environment for system-level design , 1999, DAC '99.

[93]  Charles-Edmond Bichot,et al.  Graph Partitioning: Bichot/Graph Partitioning , 2013 .

[94]  A. Sangiovanni-Vincentelli,et al.  Virtual component co-design-applying function architecture co-design to automotive applications , 2001, IVEC2001. Proceedings of the IEEE International Vehicle Electronics Conference 2001. IVEC 2001 (Cat. No.01EX522).

[95]  Daniel D. Gajski,et al.  The SpecC Language Reference Manual , 1998 .

[96]  Karel Driesen,et al.  The direct cost of virtual function calls in C++ , 1996, OOPSLA '96.

[97]  Ahmed Amine Jerraya,et al.  Transformational partitioning for co-design of multiprocessor systems , 1997, 1997 Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[98]  Wolfgang Nebel,et al.  Towards an ESL Framework for Timing and Power Aware Rapid Prototyping of HW/SW Systems , 2010, FDL.

[99]  Bernard P. Zeigler,et al.  Theory of Modeling and Simulation: Integrating Discrete Event and Continuous Complex Dynamic Systems , 2000 .

[100]  Bruce Hendrickson Graph Partitioning , 2011, Encyclopedia of Parallel Computing.