10 likes | 255 Views
Constraints Generation. Compile Time Implementation. xGiotto Code Verification. Platform Selection. Platform Modeling. Code for the Target platform. Not Safe. xGiotto functional description. Race Exists. No Race. xGiotto Program. Check Race. WCET map. Possible Execution
E N D
Constraints Generation Compile Time Implementation xGiotto Code Verification Platform Selection Platform Modeling Code for the Target platform Not Safe xGiotto functional description Race Exists No Race xGiotto Program Check Race WCET map Possible Execution Traces Check Time Safety Compiler Code Synthesis Platform Estimation Platform Selection Simulator Mapping Functionality Capture Functional Simulation Quantity Estimation Formal Analysis Safe Scheduling Strategy Code Generator xGiotto-to- Metropolis Platform1 Metropolis Description Mapping1 task release execute E code Mapping2 Platform2 Metropolis Description Event Filter xGiotto Reactions Modified Embedded Machine xGiotto Tasks Scheduler MMM functional description xGiotto Formal Verification Mapping3 Platform3 Metropolis Description task completion active scope Sensors Actuators Schedulability Results Environment Platform WCET Estimator Run Time Implementation completion event release event Logical Execution Time (LET) termination event { Logical active { running running Physical release start preemption resume completion termination Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli Embedded System Design Flow http://chess.eecs.berkeley.edu Language Features xGiotto • Reaction Blocks • - Basic programming blocks in xGiotto • - Consists of release statements and triggerstatements • and a termination event • - Releases tasks and invokes triggers • react{reaction block} until [event]; Schedule Instruction • Schedule tasks • Tasks are released with the invocation of the reaction block • Tasks are terminated with the termination of the reaction block • release task (input ports) (output ports); Trigger Statements • Defines the invoking action associated with an event • when [event] reaction block; • Repetition construct using whenever • Programming language targeted towards event driven control applications • The language is based on Logical Execution Time (LET) model of tasks • The programmer specifies when the output of a task becomes available • Event Scoping • Events are the main structuring principle • Event can be implicitly scoped by program definition • A scope can be • active:events are handled as soon as they occur • passive:events are ignored or remembered so that the related action is taken when the surrounding scope becomes active again Abstract Metropolis Framework We present a design flow for the design of embedded systems with control emphasis including software and the underlying computing platform and a case study for its application to a multi-media design: an MP3 player. We use Metropolis as integration environment and xGiotto as software design tool. Metropolis allows representing the functionality of the design and the architecture of the implementation platform in the same environment so that design exploration can be done quickly and efficiently. xGiotto provides a number of facilities that make software analysis and design easier by using a rigorous semantic approach that eliminates some of the most prominent reasons for errors and facilitates the correct implementation of the original control algorithm. The flow starts with xGiotto that is used as an input to the Metropolis environment. xGiotto designs are mapped to the Metropolis MetaModel. Platform architectures are directly input into Metropolis using the MetaModel natively. Mapping of the functionality to the architecture is performed in the Metropolis environment. The analysis of the mapped architecture can be used to feed back performance and other quantities related to the platform of interest to the software designer who then can modify the software to improve its design and to meet constraints. Analysis LET model • Race Condition Detection • Verifying whether a program variable is updated with multiple values and thus leading to non-determinism • Resource Size Analysis • Predicting run-time memory requirements for executing an xGiotto program • Schedulability Analysis • Ensuring that all task invocations get access to the executing platform at least equal to their worst-case-execution-times before their termination Proposed Design Flow xGiotto Run-time and Compile Time Implementation xGiotto-on-Metropolis xGiotto Program Description Functional Task 1 xGiotto Run-time System Environment xGiotto operational Semantics Task n Mapping Denotational framework equivalent (using Tagged Signal Model) • Functionality Capture • The embedded system application is captured using a real-time programming language • Constraints Generation • The constraints for execution are generated • Platform Modeling • The real-time platform characteristics are modeled • Functional Simulation • The functionality of the applications is studied to verify for desired behavior under test-case scenarios • Quantity Estimation • Platform dependent quantities (e.g. execution time) are estimated • Formal Analysis • Properties like races and schedulability are formally verified for the designed system • Platform Selection • Different platforms are explored and one of them is chosen based upon optimization • criteria such as power and cost that involve the results of the estimation phase • Code Synthesis • Code generator produces code for the target platform Task 1 Task n RTOS CPU Arbitrator Equivalent Action Automata Model Execution Time Task 1 Architectural CPU Power Equivalent MMM Language Model BUS Arbitrator BUS Process Medium Quantity Manager Execution Time Task n Time MEM Case Study (mp3 player) • task dac • -- reads buffer with the decoded stream • task read • -- accesses the external storage • task decode • -- decodes the stream stored in buffer • task battchk • -- checks battery life • task tempo • -- modifies the speed of the song • task pitch • -- modifies the pitch and key • task rate • -- changes both the tempo and pitch • task vol • -- updates the volume • task editlist • -- edits the list of songs to be played • task skip • -- skips songs to be played • task usb • -- downloads songs into the player Integrating xGiotto and Metropolis in the Flow Implemented on Lego Mindstorm RCX unit Execution time analysis and power measurements for the tasks on different platforms Basic Functionality User Interface Interaction Functionality Real-Time Operating System xGiotto run-time system is implemented on Motorola coldfire m68k CPU Memory BUS Two different hardware configuration are tested: -- ARM processor using simplescalar ISS -- PowerPC 750 processor using ppc750sim ISS External Storage Power and Energy estimation is done by Simplescalar-Arm Power Modeling Project Flash Memory November 18, 2004