System-Level Design Languages: Orthogonalizing the Issues Edward A. Lee UC Berkeley The GSRC Semantics Project Tom Henzinger Luciano Lavagno Edward Lee.

Slides:



Advertisements
Similar presentations
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Advertisements

Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
DATAFLOW PROCESS NETWORKS Edward A. Lee Thomas M. Parks.
Discrete-Event Modeling and Design of Embedded Software Edward Lee UC Berkeley Workshop on Discrete Event Systems WODES 2000 Ghent, Belgium August,
UC Berkeley Mobies Technology Project PI: Edward Lee CoPI: Tom Henzinger Process-Based Software Components for Networked Embedded Systems.
PTIDES: Programming Temporally Integrated Distributed Embedded Systems Yang Zhao, EECS, UC Berkeley Edward A. Lee, EECS, UC Berkeley Jie Liu, Microsoft.
Process-Based Software Components for Networked Embedded Systems Edward A. Lee, PI UC Berkeley Core Technical Team (Mobies, SEC, and GSRC): Christopher.
SRC ETAB Summer Study Colorado Springs, June 25-26, 2001 Model-Based Approaches to Embedded Software Design Edward A. Lee UC Berkeley & GSRC.
Liang,Introduction to Java Programming,revised by Dai-kaiyu 1 Chapter 10 Object-Oriented Modeling.
Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor- Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley.
Advanced Tool Architectures Supporting Interface-Based Design
Integrated Design and Analysis Tools for Software-Based Control Systems Shankar Sastry (PI) Tom Henzinger Edward Lee University of California, Berkeley.
February 21, 2008 Center for Hybrid and Embedded Software Systems Organization Board of Directors Edward A. Lee, UC Berkeley.
Type System, March 12, Data Types and Behavioral Types Yuhong Xiong Edward A. Lee Department of Electrical Engineering and Computer Sciences University.
Department of Electrical Engineering and Computer Sciences University of California at Berkeley Behavioral Types for Actor-Oriented Design Edward A. Lee.
Behavioral Types as Interface Definitions for Concurrent Components Center for Hybrid and Embedded Software Systems Edward A. Lee Professor UC Berkeley.
February 11, 2010 Center for Hybrid and Embedded Software Systems Ptolemy II - Heterogeneous Concurrent Modeling and Design.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Heterogeneous Modeling and Design in Ptolemy II Johan Eker UC Berkeley with material courtesy of Edward Lee and the Ptolemy group ECE Seminar Series, Carnegie.
Modeling Heterogeneous Systems Edward Lee UC Berkeley Design for Safety Workshop NASA Ames Research Center Mountain View, CA 11 October, Design.
Review of “Embedded Software” by E.A. Lee Katherine Barrow Vladimir Jakobac.
Unified Modeling (Part I) Overview of UML & Modeling
An Extensible Type System for Component-Based Design
Defining Domains Edward A. Lee Professor, UC Berkeley Ptolemy Ptutorial, Feb. 12, 2007.
The Gigascale Silicon Research Center Edward A. Lee UC Berkeley The GSRC Semantics Project Tom Henzinger Luciano Lavagno Edward Lee Alberto Sangiovanni-Vincentelli.
MoBIES PI-Meeting, July 2001, Jackson Hole Controller Design Using Multiple Models of Computation Edward Lee Johan Eker with thanks to Paul Griffiths,
Hierarchical Reconfiguration of Dataflow Graphs Stephen Neuendorffer UC Berkeley Poster Preview May 10, 2004.
SEC PI Meeting Annapolis, May 8-9, 2001 Component-Based Design of Embedded Control Systems Edward A. Lee & Jie Liu UC Berkeley with thanks to the entire.
Department of Electrical Engineering and Computer Sciences University of California at Berkeley System-Level Types for Component-Based Design Edward A.
Department of Electrical Engineering and Computer Sciences University of California at Berkeley Concurrent Component Patterns, Models of Computation, and.
CSE S. Tanimoto Syntax and Types 1 Representation, Syntax, Paradigms, Types Representation Formal Syntax Paradigms Data Types Type Inference.
Concurrent Models of Computation in System Level Design Edward Lee UC Berkeley Forum on Design Languages Workshop on System Specification & Design Languages.
State of the Art Lecture IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001 Computing for Embedded Systems Edward.
Panel: What Comes After C++ in System-Level Specification Edward Lee UC Berkeley Forum on Design Languages Workshop on System Specification & Design Languages.
P t o l e m y A Framework For Simulating and Prototyping Heterogeneous Systems by Joseph Buck, Soonhoi Ha, Edward A. Lee & David G. Messerschmitt P r e.
5 th Biennial Ptolemy Miniconference Berkeley, CA, May 9, 2003 MESCAL Application Modeling and Mapping: Warpath Andrew Mihal and the MESCAL team UC Berkeley.
Lee & Henzinger ESWG #1 UC Berkeley Mobies Technology Project Process-Based Software Components for Networked Embedded Systems PI: Edward Lee CoPI: Tom.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
MOBIES Project Progress Report Engine Throttle Controller Design Using Multiple Models of Computation Edward Lee Haiyang Zheng with thanks to Ptolemy Group.
System-Level Types for Component-Based Design Paper by: Edward A. Lee and Yuhong Xiong Presentation by: Dan Patterson.
Department of Electrical Engineering and Computer Sciences University of California at Berkeley The Ptolemy II Framework for Visual Languages Xiaojun Liu.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
CSE 341, S. Tanimoto Concepts 1- 1 Programming Language Concepts Formal Syntax Paradigms Data Types Polymorphism.
International Workshop on Web Engineering ACM Hypertext 2004 Santa Cruz, August 9-13 An Engineering Perspective on Structural Computing: Developing Component-Based.
Composing Models of Computation in Kepler/Ptolemy II
An Introduction to Software Architecture
Introduction to Object Oriented Programming CMSC 331.
Design Analysis builds a logical model that delivers the functionality. Design fully specifies how this functionality will be delivered. Design looks from.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Design Languages in 2010 Chess: Center for Hybrid and Embedded Software Systems Edward A. Lee Professor UC Berkeley Panel Position Statement Forum on Design.
Ptolemy & Models of Computation -by Hao Chen, Zhuang Fan, Jin Xiao School of Computer Science University of Waterloo Claudius Ptolemaeus, the second century.
Object-Oriented Programming © 2013 Goodrich, Tamassia, Goldwasser1Object-Oriented Programming.
Structured Component Composition Frameworks for Embedded System Design Sandeep Shukla, Virginia Tech. Frederic Doucet, Rajesh Gupta University of California,
PTII Model  VHDL Codegen Verification Project Overview 1.Generate VHDL descriptions for Ptolemy models. 2.Maintain bit and cycle accuracy in implementation.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Satisfying Requirements BPF for DRA shall address: –DAQ Environment (Eclipse RCP): Gumtree ISEE workbench integration; –Design Composing and Configurability,
CS 5991 Presentation Ptolemy: A Framework For Simulating and Prototyping Heterogeneous Systems.
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Code Generation for Ptolemy II
Retargetable Model-Based Code Generation in Ptolemy II
Logical architecture refinement
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Concurrent Models of Computation for Embedded Software
Multiple Aspect Modeling of the Synchronous Language Signal
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
An Introduction to Software Architecture
A Semantic Type System and Propagation
Presentation transcript:

System-Level Design Languages: Orthogonalizing the Issues Edward A. Lee UC Berkeley The GSRC Semantics Project Tom Henzinger Luciano Lavagno Edward Lee Alberto Sangiovanni-Vincentelli Kees Vissers

What is GSRC? The MARCO/DARPA Gigascale Silicon Research Center – keep the fabs full – close the productivity gap – rebuild the RTL foundation – enable scaleable, heterogeneous, component-based design Participants: – UC Berkeley – CMU – Stanford – Princeton – UCLA – UC Santa Barbara – UC San Diego – Purdue – Michigan – UC Santa Cruz

What is System Level? A D Analog RF Timing recovery JVM ARQ UI Ctr Fltrs Adap Ant Eqmud Accelerators (bit level) analogdigital DSP core uC core (ARM) Logic Logic and Memory Source: Berkeley Wireless Research Center Embedded Software

The Future of System-Level Architecture? Poor common infrastructure. Weak specialization. Poor resource management. Poor planning.

Elegant Federation Moving away from obsessive uniformity towards elegant federation of heterogeneous models. Two Rodeo Drive, Kaplan, McLaughlin, Diaz Source: Kaplan McLaughlin Diaz, R. Rappaport, Rockport, 1998

Focus on Capabilities, not Languages Modeling Simulation Visualization Synthesis Verification Modularization The problem we are here to address is interoperability and design productivity. Not standardization.

Perspectives facet perspective facet Designers, users, maintainers interact with facets system hardware architecture networking signal processing layout... function hardware architecture modes power... timing software architecture control logic logic... No single facet is sufficient

Interactions system facet Consistent? Modify one facet

Low resolution Abstraction Medium resolution High resolution Concretization system Abstraction

image facet system Shift in perspective can reduce the complexity of a facet Choosing Perspectives

Interoperability Levels Code can be written to translate the data from one tool to be used by another. Tools can open each other’s files and extract useful information (not necessarily all useful information). Tools can interoperate dynamically, exchanging information at run time.

Component-Based Design hierarchy modularity reusability

Must Be Able to Specify Netlists Block diagrams Hierarchical state machines Object models Dataflow graphs Process networks

Principle: Orthogonalize Concerns in SLDLs Abstract Syntax Concrete Syntax Syntactic Transformations Type System Component Semantics Interaction Semantics Do this first, since without it, we won’t get anywhere

Abstract Syntax hierarchy connectivity

Not Abstract Syntax Semantics of component interactions Type system File format (a concrete syntax) API (another concrete syntax) An abstract syntax is the logical structure of a design. What are the pieces, and how are they related?

Definitions

Hierarchy Constraints: A port cannot be contained by more than entity. A link cannot cross levels of the hierarchy

Connected Components entity ports relation Frame in black Hierarchy in blue

Hierarchy and Sharing this entity has two containers Meanings – class – template – sharing

Heterarchy One hierarchy in blue, another in orange.

The GSRC Abstract Syntax Models hierarchical connected components – block diagrams, object models, state machines, … – abstraction and refinement Supports classes and instances – object models – inheritance – static and instance variables Supports multiple simultaneous hierarchies – structure and function – objects and concurrency

Concrete Syntaxes Persistent file formats Close to the abstract syntax Make it extensible to capture other aspects Enable design data exchange – without customization of the tools Most language discussions focus on concrete syntaxes, which are arguably the least important part of the design

MoML – An XML Concrete Syntax

MoML DTD <!ATTLIST model name CDATA #REQUIRED class CDATA #REQUIRED> <!ATTLIST attribute class CDATA #IMPLIED name CDATA #REQUIRED value CDATA #IMPLIED> <!ATTLIST class name CDATA #REQUIRED extends CDATA #REQUIRED> <!ATTLIST director name CDATA "director" class CDATA #REQUIRED> <!ATTLIST entity name CDATA #REQUIRED class CDATA #REQUIRED> <!ATTLIST link port CDATA #REQUIRED relation CDATA #REQUIRED vertex CDATA #IMPLIED> <!ATTLIST location x CDATA #REQUIRED y CDATA #IMPLIED z CDATA #IMPLIED> <!ATTLIST port name CDATA #REQUIRED class CDATA #REQUIRED direction (input | output | both) "both"> <!ATTLIST relation name CDATA #REQUIRED class CDATA #REQUIRED> <!ATTLIST vertex name CDATA #REQUIRED pathTo CDATA #IMPLIED> <!ATTLIST link port CDATA #REQUIRED relation CDATA #REQUIRED vertex CDATA #IMPLIED> Modeling Markup Language Since this document type definition captures only the abstract syntax, it is very small and simple. Other information is embedded using distinct XML DTDs.

Syntactic Transformations A set of operations on models – creation of ports, relations, links, and entities – mutation Applications – visual editors – higher-order functions – instantiation – unrolling recursion

API: Concrete Syntax Supporting Syntactic Transformations

Where We Are… Abstract Syntax Concrete Syntax Syntactic Transformations Type System Component Semantics Interaction Semantics logical structure meaning

Type Systems General String Scalar Boolean Complex Double Long Int NaT entity need compatible data types Type lattice represents subclassing & ad-hoc convertibility.

Desirable Properties in a Type System Strong typing Polymorphism Propagation of type constraints Composite types (arrays, records) User-defined types Reflection Higher-order types Type inference Dependent types We can have compatible type systems without compatible languages (witness CORBA)

Component Semantics Entities are: States? Processes? Threads? Differential equations? Constraints? Objects?

Are Software Component Models Enough? Largely missing: Time Concurrency Safety Liveness

Are Hardware Component Models Enough? Largely missing: Abstraction (esp time) Inheritance Type systems Polymorphism Portability

process { … read(); … } One Class of Semantic Models: Producer / Consumer process { … write(); … } channel port receiver Are actors active? passive? reactive? Are communications timed? synchronized? buffered?

Domains CSP – concurrent threads with rendezvous CT – continuous-time modeling DE – discrete-event systems DT – discrete time (cycle driven) PN – process networks SDF – synchronous dataflow SR – synchronous/reactive Each of these defines a component ontology and an interaction semantics between components. There are many more possibilities!

Interfaces Represent not just data types, but interaction types as well. value conversionbehavior conversion

Current Approach – System-Level Types General String Scalar Boolean Complex Double Long Int NaT actor represent interaction semantics as types on these ports. Need a new type lattice representing subclassing & ad-hoc convertibility.

Type Lattice Simulation relation Achievable properties: Strong typing Polymorphism Propagation of type constraints User-defined types Reflection

SDF Receiver Type Signature Input alphabet: g: get p: put h: hasToken Output alphabet: 0: false 1: true t: token v: void e: exception

DE Receiver Type Signature Input alphabet: g: get p: put h: hasToken Output alphabet: 0: false 1: true t: token v: void e: exception Put does not necessarily result in immediate availability of the data. This automaton simulates the previous one

System-Level Types Declare dynamic properties of component interfaces Declare timing properties of component interfaces Benefits: Ensure component compatibility Clarify interfaces Provide the vocabulary for design patterns Detect errors sooner Promote modularity Promote polymorphic component design

Our Hope – Polymorphic Interfaces actor polymorphic interfaces

Alternative Approach – Interface Synthesis actor protocol adapter rigid, pre-defined interfaces

Where We Are… Abstract Syntax Concrete Syntax Syntactic Transformations Type System Component Semantics Interaction Semantics

Benefits of Orthogonalization Modularity in language design – e.g. can build on existing abstract syntax Different levels of tool interoperability – e.g. visualization tool needs only the abstract syntax Terminology independent of concrete syntax – e.g. design patterns Focus on frameworks instead of languages – dealing with heterogeneity Issue-oriented not ASCII-oriented

Ptolemy Project – Sanity Check Ptolemy II – – A reference implementation – Testbed for abstract syntax – Block diagram MoML editor – Mutable models – Extensible type system – Testbed for system-level types

Design in an Abstract Universe When choosing syntax and semantics, we can invent the “laws of physics” that govern the interaction of components. As with any such laws, their utility depends on our ability to understand models governed by the laws. Magritte, Gelconde