Download presentation
Presentation is loading. Please wait.
Published byJean Holmes Modified over 8 years ago
1
Institute for Software Integrated Systems Vanderbilt University Constraint-Based Embedded Program Composition Institute for Software Integrated Systems Vanderbilt University PI: Ted Bapty Jeff Gray, Sandeep Neema
2
© Copyright 2000, Vanderbilt University Reconfigurable Runtime Environment Adaptive Computing Systems Model-Integrated Design Environment Behavioral Models MODELS Graphical Model Builder Model Analysis Tools Algorithm Models Resource Models ATR SW HW SW HW Simulation Environment System Generation Multi-Aspect Modeling Environment
3
© Copyright 2000, Vanderbilt University Problem Statement Graphical Models Excellent for Describing System Structure –Hardware, Data flow, State diagrams Graphics Often not Natural for Details –Numerical properties, Complex Interactions Solution: Attributes & Constraints –‘tags’ on models, textual language embedded Problem: Difficulty in Managing for Complex Systems –Complex hierarchies –Intricate, cross-linked constraints System Specifications Cross-Cut Models
4
© Copyright 2000, Vanderbilt University PCES Project Goals Management of Cross-Cutting Constraints Prove in Real-World Examples Generalize to Arbitrary Program Synthesis Applications Transition to Military & Commercial Users
5
© Copyright 2000, Vanderbilt University Project Approach Extend Embedded System Design System Tools –Leverage Adaptive Computing Systems Tools as Basis, –System Specification Language, –Strategy Language for Specification Distribution/mapping –Weaver Tools Implement for Communications Domain –Demonstrate on Missile Automatic Target Recognition –Demonstrate on Software-Based Radio Application Investigate Meta-Weaver Concepts
6
© Copyright 2000, Vanderbilt University BehavioralStructural Constraints Resources Design Analysis Vendor/COTS Tools System Synthesis System Simulation Reconfigurable Computing Runtime Env. Model-Integrated Design Environment for Adaptive Computing
7
© Copyright 2000, Vanderbilt University Multiple-View Graphical Modeling/ Flexible Design Space Behavioral Structural Resource
8
© Copyright 2000, Vanderbilt University S1S3S2 hierarchical parallel FSM Behavior Model Processing Structure Models Behavior and Compatibility Constraints P1 P3 P2 e1[S21]/ / /../ Pr2 Pr1 Pr3 C1 Resource Models Resource Constraints hierarchical interconnect alternatives (mode=(S1 or S2))implies(P1=P1 i )) (mode!=S3)implies (Pr2.assignees =(P1 i or P2 j ))and(Pr2=Pr2 j ) (D1.time - D2.time) < 2 Timing Constraints Constraint Modeling Power Constraints (mode=S2 implies (Proc.Powr<10))
9
© Copyright 2000, Vanderbilt University Design Space Exploration Behavior Mod. (Hier. Par. FSM) Structural Mod. (Hier. Altern.) Constraints (OCL) Binary Encoding Binary Encoding Binary Encoding BDD Representation BDD Representation BDD Representation Full Symbolic Design Space Pruned Design Space Resource Model Binary Encoding BDD Representation OBDD Analysis
10
© Copyright 2000, Vanderbilt University Difficulties in Managing Constraints in Models A B cde 12 3 B cde 1’’2’’ 4 F B cde 1’2’ 3’ 4 Multiple Levels of Hierarchy Replicated Structures Context Sensitive Change Maintenance???
11
© Copyright 2000, Vanderbilt University Constraints run Amok constraint K2MULT_RESOURCE() { ( (self.children("Forwarder").implementedBy() = self.children("Forwarder").children("forward") ) implies ( ( self.children("K2_Multiplier").children("K2_Shift_Multiplier").assignedTo() = project().resources("Altera_FPGA_1") ) and (self.children("K2_Multiplier").children("K2_Full_Multiply").children("K2_Multiplier").assignedTo() = project().resources("Altera_FPGA_1")) and (self.children("K2_Multiplier").children("K2_Full_Multiply").children("K2_Retrieval_00").assignedTo() = project().resources("Altera_FPGA_1") ) )) and ( ( self.children("Forwarder").implementedBy() = self.children("Forwarder").children("resource_boundary") ) implies ( ( self.children("K2_Multiplier").children("K2_Shift_Multiplier").assignedTo() = project().resources("Altera_FPGA_2") ) and (self.children("K2_Multiplier").children("K2_Full_Multiply").children("K2_Multiplier").assignedTo() = project().resources("Altera_FPGA_2") ) and (self.children("K2_Multiplier").children("K2_Full_Multiply").children("K2_Retrieval_00").assignedTo() = project().resources("Altera_FPGA_2") ) )) }
12
© Copyright 2000, Vanderbilt University Semantic Gap System Specifications Define Product Specifications are Mapped to Constraints System Structure is Mapped to Models Complex Specs X Complex Structure = Tangled System Implementation
13
© Copyright 2000, Vanderbilt University Specifications and Strategies Specifications Aspect Language = Requirements –Performance Requirement (Size/Weight/Power/Time) –Accuracy/Precision (SNR) –Physical build restrictions Strategy Aspect Language = Method for Applying Specifications –Distribution of specifications as constraints in model object hierarchy
14
© Copyright 2000, Vanderbilt University Aspect-Oriented Specification Language Timing –Throughput –Latency Cost –/Parts $/Volume/Weight Accuracy –Bit Precision –SNR Power Mode-dependent behavior
15
© Copyright 2000, Vanderbilt University Specification Application via Strategy Language Specify how to apply constraints across object hierarchy. Determines how constraints are divided/responsibility shared among components. Flexible to permit different goals –Latency optimization –Throughput optimization –Power –Future/User-Defined, etc….
16
© Copyright 2000, Vanderbilt University BehavioralStructural Constraints Resources Design Analysis Vendor/COTS Tools System Synthesis System Simulation Reconfigurable Computing Runtime Env. Model-Integrated Design Environment for Adaptive Computing Specification Language Strategy Language
17
© Copyright 2000, Vanderbilt University Applications of Constraints Model Constraints Appear as attributes of modeling elements. Specification Aspects They provide a modular construct for defining model constraints across the hierarchy. Each specification describes the binding and parameterization of strategies to specific nodes in a model. Strategies Used to specify elements of computation, propagation, or application of specific properties to the model nodes. They will be generic in the sense that they are not bound to particular model nodes in their description.
18
© Copyright 2000, Vanderbilt University Process of Using a Weaver Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah bit1 bit1 Structural ProcessingCompound GatesPerBit 37,153 NomBits 205,76 MaxBits 128,76 GME FOO.XML bit1 bit1 Structural ProcessingCompound GatesPerBit 37,153 NomBits 205,76 MaxBits 128,76 Domain-Specific Weaver Enhanced FOO.XML Specification Aspects
19
© Copyright 2000, Vanderbilt University Domain Specific Weavers Each specific GME meta-modeling paradigm introduces different types of modeling elements, syntax, and semantics. Therefore, different weavers are needed for different paradigms. Strategies are used to aid in the rapid construction of new domain specific weavers. ECL constraints can succinctly capture the specification of these strategies. A code generator translates the strategies into C++ code that is then compiled within the weaver framework. Each domain can then be considered as being componetized within the weaver.
20
© Copyright 2000, Vanderbilt University Domain Specific Weavers SaturnBoeing Electric Utilities ATR/ Software Radio ++++ (Saturn specific weaver)(Boeing specific weaver)(Utilities specific weaver) (ATR/SR specific weaver)
21
© Copyright 2000, Vanderbilt University The Weaver Strategy Code Generator Strategies (C++) Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blahAspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Strategy Specifications Specification Aspects XML ( Model Hierarchy )
22
© Copyright 2000, Vanderbilt University The Weaver Strategy Code Generator Strategies (C++) Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Strategy Specifications Specification Aspects XML ( Model Hierarchy )
23
© Copyright 2000, Vanderbilt University Weaver Components XMLParser –Interacts with MSXML to load and save a model. –Provides a wrapper for accessing many of the DOM functions needed to query/manipulate a model (e.g., addAtom, addAttribute, findAtom)
24
© Copyright 2000, Vanderbilt University The Weaver Strategy Code Generator Strategies (C++) Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Strategy Specifications Specification Aspects XML ( Model Hierarchy )
25
© Copyright 2000, Vanderbilt University Weaver (StratGen) StratGen –This is the code generator that takes the ECL strategies (*.str) and generates C++. –This generator depends on ECLParser/ParseTree, as well as the DOM support provided in XMLParser. StrategySpecs –This contains all of the strategies (*.str) for a specific build of a weaver. Strategies –This contains the C++ representation of the strategies. –The code from this is then compiled into the domain specific weaver.
26
© Copyright 2000, Vanderbilt University The Weaver Strategy Code Generator Strategies (C++) Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Aspect blah blah Strategy Specifications Specification Aspects XML ( Model Hierarchy )
27
© Copyright 2000, Vanderbilt University Weaver (Aspect Parser) The aspect parser interprets the ECL constraints (specification aspects) that are used to specify the location and parameters of specific strategies. This interpreter depends on ECLParser/ParseTree, as well as the DOM support provided in XMLParser. This piece of the weaver is common to all meta- model paradigms. Currently, this part of the weaver is still in its infancy.
28
© Copyright 2000, Vanderbilt University Properties of ECL ECL is an extension of the Object Constraint Language (OCL) Arithmetic operators: –+, -, *, /, =,, =, <> Logical operators: – and, or, xor, not, implies, if-then-else Collection operator: –-> Property operator: –.
29
© Copyright 2000, Vanderbilt University ECL - Operations on Collections collection-> size() : integer collection -> forAll ( x | f(x) ) : Boolean collection -> exists ( x | f(x) ) : Boolean collection -> select ( x | f(x) ) : collection collection-> includes ( inclObject:fco | inclCpt:cpt |) : Boolean collection -> union (c2:collection) : collection collection-> intersection (c2:collection) : collection
30
© Copyright 2000, Vanderbilt University ECL - Operations on Objects {fco,fdr}. name () : string {fco,fdr}. parent () : {fco, fdr} {fco,fdr}. kindName () : string fco. roleName () : string {fco,cpt,fdr}. isNull () : boolean str. intValue () : int str. doubleValue () : double
31
© Copyright 2000, Vanderbilt University ECL - Operations on Objects Aggregates fco.models( | kindName:string) : collection of fco's fco.modelParts( | roleName:string) : collection of fco's fco.atoms( | kindName:string) : collection of fco's fco.atomParts( | roleName:string) : collection of fco's fco.parts( | roleName:string) : collection of fco's fco.referenceParts( | roleName:string) : collection of fco's fco.connectionParts( | roleName:string) : collection of fco's fco.setParts( | roleName:string) : collection of fco's Connections fco.connected( | roleName:string) : collection of fco's fco.connectedAs( | roleName:string) : collection of fco’s fco.connections( | kindName:string) : collection of cpt's fco.connectionPoints( | connRole:string) : collection of cpt's r.usedByConnections( | kindName:string) : collection of cpt's
32
© Copyright 2000, Vanderbilt University Sample Strategies strategy ApplyConstraint(constraintName : string, expression : string) { addAtom("OCLConstraint", "Constraint", constraintName).addAttribute("Expression", expression); } strategy RemoveConstraint(constraintName : string) { findAtom(constraintName).removeChild(); } strategy ReplaceConstraint(constraintName : string, expression : string) { RemoveConstraint(constraintName); ApplyConstraint(constraintName, expression); }
33
© Copyright 2000, Vanderbilt University Sample Strategy strategy PowerStrategy(level : int, power : int) { if (level < 3) then > ApplyConstraint("PowerConstraint", aConstraint); > modelParts()->forAll(PowerStrategy(level, power)); endif; }
34
© Copyright 2000, Vanderbilt University Example Specification Aspect constraint FOOB2 { // apply a specific constraint to “B2” only in Structural models("ProcessingCompound")-> select(p | p.name() == "B2")->PowerStrategy(1, 100); } constraint FOOBStar { // apply a specific constraint to all nodes beginning with “B” - use wildcard in Structural models("ProcessingCompound")-> select(p | p.name() == "B*")->PowerStrategy(1, 100); }
35
© Copyright 2000, Vanderbilt University StratGen Demo
36
© Copyright 2000, Vanderbilt University Demonstration Software Radio Model Hardware Resources –Support multiple target platforms Model Computational Components –HW/SW DSP Cores Develop a “Waveform Description Language” –Define Frequency Range/Spacing/Accuracy –Define Modulation Type/Index/Rate –Define Channel Coding Synthesize SW Radio for Target Hardware
37
© Copyright 2000, Vanderbilt University System SW/HW Description Waveform Descr. #1 AO Constraint Specs Constraint Weaver System Synthesis Waveform Descr. #N Constraint Weaver System Synthesis Generic Embedded Object System Design Customized SW-Based Radios
38
© Copyright 2000, Vanderbilt University Reconfigurable Runtime Environment Adaptive Missile Automatic Target Recognition Application Behavioral Models MODELS Graphical Model Builder Model Analysis Tools Algorithm Models Resource Models ATR SW HW System Generation Multi-Aspect Modeling Environment
39
Constraint-Based Embedded Program Composition IMPACT Rapid Construction of Efficient Embedded Systems. Multiple System Variants for Little Cost. Rapid, Low Cost System Evolution. Traceabilty from Requirements to Implementation Ability to Customize Tools for Specific Domains New Design Methodology: AO + Model-Based NEW IDEAS AO Merging a Model-Based & Language Approaches Model-Based System Design Space Spec Textual Constraints/Requirements Spec. System-Level Constraint Expression Language AO-Based Strategy Language for Constraint Distribution and Application Weaver Infrastructure for Automated Constraint Application Meta-Weaver for Specification of Weavers Automated Application of RT Constraints SCHEDULE. 3/01 Spec. & Strategy Lang. V1. 6/01 Constraint Weaver & ATR Demo. 3/02 Spec. & Strategy Lang. V2. 9/02 Resource Constr. Weaver/Demo. 3/03 Complete Spec/Strat Lang. 11/03 Meta-Weaver Descr.. 9/04 SW Radio Demo System SW/HW Description Waveform Descr. #1 AO Constraint Specs Constraint Weaver System Composition Waveform Descr. #N System Composition System Design Space/ Embedded Object Specification Customized/Optimized Embedded System SW-Based Radio Constraint Weaver Constraint Weaver
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.