Optimized State Encoding for Esterel Programs Dumitru POTOP-BUTUCARU.

Slides:



Advertisements
Similar presentations
DATAFLOW TESTING DONE BY A.PRIYA, 08CSEE17, II- M.s.c [C.S].
Advertisements

Models of Concurrency Manna, Pnueli.
Architecture-dependent optimizations Functional units, delay slots and dependency analysis.
Vered Gafni – Formal Development of Real Time Systems 1 Statecharts Semantics.
Stanford University CS243 Winter 2006 Wei Li 1 Register Allocation.
© S. Ramesh / Kavi Arya / Krithi Ramamritham IT-606 Embedded Systems (Software) S. Ramesh Kavi Arya Krithi Ramamritham KReSIT/ IIT Bombay.
Optimizations for Faster Simulation of Esterel Programs Dumitru POTOP-BUTUCARU Advisers: Gérard Berry – Esterel Technologies Robert de Simone – INRIA,
Analyzing and Verifying Esterel Programs Taisook Han , Division of Computer Science, KAIST.
Program Representations. Representing programs Goals.
Copyright © 2001 Stephen A. Edwards All rights reserved The Synchronous Language Esterel Prof. Stephen A. Edwards.
Fall Semantics Juan Carlos Guzmán CS 3123 Programming Languages Concepts Southern Polytechnic State University.
Syntax-driven partitioning for model-checking of Esterel programs Eric Vecchié - INRIA Tick.
Event Driven Real-Time Programming CHESS Review University of California, Berkeley, USA May 10, 2004 Arkadeb Ghosal Joint work with Marco A. Sanvido, Christoph.
Implementing Constructive Synchronous Programs on POLIS CFSM Networks G.Berry E.Sentovich Ecole des Mines de Paris / INRIA Cadence Berkeley Labs.
Copyright © 2001 Stephen A. Edwards All rights reserved Research Areas Stephen A. Edwards.
Esterel Overview Roberto Passerone ee249 discussion section.
Compiling Esterel into Static Discrete-Event Code Stephen A. Edwards Columbia University Computer Science Department New York, USA
Expressing Giotto in xGiotto and related schedulability problems Class Project Presentation Concurrent Models of Computation for Embedded Software University.
Copyright © 2001 Stephen A. Edwards All rights reserved Esterel and Other Projects Prof. Stephen A. Edwards Columbia University, New York
Improving Code Generation Honors Compilers April 16 th 2002.
Operational Semantics Semantics with Applications Chapter 2 H. Nielson and F. Nielson
Einsterel: A Compiled Event-Driven Simulator for Esterel.
Comparing Models of Computation for Real-time, Distributed Control Systems Shawn Schaffert Bruno Sinopoli.
Data Flow Analysis Compiler Design Nov. 8, 2005.
A Mystery Esterel –small no type inference, subtyping, … no recursion, functions, … no pointers, malloc, GC, … no complex data structures, libraries,
CSC 8310 Programming Languages Meeting 2 September 2/3, 2014.
Memory management. Instruction execution cycle Fetch instruction from main memory Decode instruction Fetch operands (if needed0 Execute instruction Store.
Clocked Synchronous State Machine Design
Compiling ESTEREL circuits into finite states machines BRES Yannis Stage de DEA d’Informatique 1998/1999.
CPSC 388 – Compiler Design and Construction Parsers – Context Free Grammars.
Design Space Exploration
Compositional correctness of IP-based system design: Translating C/C++ Models into SIGNAL Processes Rennes, November 04, 2005 Hamoudi Kalla and Jean-Pierre.
RM2D Let’s write our FIRST basic SPIN program!. The Labs that follow in this Module are designed to teach the following; Turn an LED on – assigning I/O.
Lecture 2 Foundations and Definitions Processes/Threads.
An introduction to Esterel and its compilation
“Software” Esterel Execution (work in progress) Dumitru POTOP-BUTUCARU Ecole des Mines de Paris
CS 363 Comparative Programming Languages Semantics.
Web Services Flow Language Guoqiang Wang Oct 7, 2002.
Static Program Analyses of DSP Software Systems Ramakrishnan Venkitaraman and Gopal Gupta.
© S. Ramesh / Kavi Arya / Krithi Ramamritham 1 IT-606 Embedded Systems (Software) S. Ramesh Kavi Arya Krithi Ramamritham KReSIT/ IIT Bombay.
Modeling VHDL in POSE. Overview Motivation Motivation Quick Introduction to VHDL Quick Introduction to VHDL Mapping VHDL to POSE (the Translator) Mapping.
MIPS coding. Review Shifting – Shift Left Logical (sll) – Shift Right Logical (srl) – Moves all of the bits to the left/right and fills in gap with 0’s.
Operating Systems 1 K. Salah Module 1.2: Fundamental Concepts Interrupts System Calls.
1 Computer Systems II Introduction to Processes. 2 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent.
Lecture overview Single operation time complexity Previous results Optimality proof UF(k)-trees Operations and complexity IUF(k)-trees Properties and complexity.
1 COMP541 Finite State Machines - 1 Montek Singh Sep 22, 2014.
Classical Control in Quantum Programs Dominique Unruh IAKS, Universität Karlsruhe Founded by the European Project ProSecCo IST
Process Description and Control. Process A program in execution OS Reponsibilities: –Creation/Termination –Scheduling processes –Suspension/resumption.
1 COMP541 Sequential Logic – 2: Finite State Machines Montek Singh Feb 29, 2016.
Credible Compilation With Pointers Martin Rinard and Darko Marinov Laboratory for Computer Science Massachusetts Institute of Technology.
CS 153: Concepts of Compiler Design September 14 Class Meeting
Code Optimization.
Programming Languages Translator
COMP541 Sequential Logic – 2: Finite State Machines
Esterel By: Sam Weinberg.
The University of Adelaide, School of Computer Science
Eugene Gavrin – MSc student
CMPE 152: Compiler Design September 13 Class Meeting
Chapter 11 Data Compression
Algorithms Take a look at the worksheet. What do we already know, and what will we have to learn in this term?
Coding Concepts (Basics)
Process Description and Control
Compiling Control Statements
Optimizations for Faster Execution of Esterel Programs
Program Flow.
BNF 9-Apr-19.
CS510 Operating System Foundations
Esterel Tutorial Winter 2004
CSE 370 – Winter Introduction -2- 1
Foundations and Definitions
Presentation transcript:

Optimized State Encoding for Esterel Programs Dumitru POTOP-BUTUCARU

Overview State of an Esterel program The optimizing property Applications: Register removal State re-encoding using the optimizing information

State of an Esterel program Esterel statements: p¦¦q, p;q, loop p end emit S, present S then p else q end signal S in p end trap T in p end, exit T suspend p when S end pause derived statements: await S, abort p when S, sustain S, every S do p end

State of an Esterel program Esterel program execution Esterel = synchronous language Program execution = sequence of synchronous execution instants (clock ticks) Execution instant = instantaneous mapping: (current state, input signals) (next instant state,output signals)

State of an Esterel program Global state and state of a statement Program state = state of the pause statements in the program State of a sub-statement = state of the pause sub- statements of the given statement The state of a composed statement is the union of the states of its direct sub-statements

State of an Esterel program Selection and selection tree Selected statement = statement that has at least one active pause sub-statement The selection status of composed statement is the OR of the selection statuses of its direct sub- statements Selection tree = the tree defined by the pause statements and the OR gates corresponding to the composed statements

State of an Esterel program Selection nodes pause nodes exclusive selection nodes parallel selection nodes p;q present S then p else q end  # pq p¦¦q  ¦¦ pq

State of an Esterel program Example # pause loop present I then pause;emit O1 else pause;emit O2 end present end loop

State of an Esterel program Example trap TERMINATE in loop pause; emit O1; pause; emit O2 end loop ¦¦ sustain RUNNING ¦¦ await TERMINATE_SIGNAL; exit TERMINATE end trap sustainawait # ¦¦ pause parallel loop

The optimizing property Example trap TERMINATE in loop pause; emit O1; pause; emit O2 end loop ¦¦ sustain RUNNING ¦¦ await TERMINATE_SIGNAL; exit TERMINATE end trap sustainawait # ¦¦ pause parallel loop

The optimizing property Example trap TERMINATE in loop pause; emit O1; pause; emit O2 end loop ¦¦ sustain RUNNING ¦¦ await TERMINATE_SIGNAL; exit TERMINATE end trap sustainawait # ¦¦ pause = parallel loop

The optimizing property Example trap TERMINATE in loop pause; emit O1; pause; emit O2 end loop ¦¦ sustain RUNNING ¦¦ await TERMINATE_SIGNAL; exit TERMINATE end trap sustainawait # ¦¦ pause = parallel loop

The optimizing property Example trap TERMINATE in loop pause; emit O1; pause; emit O2 end loop ¦¦ sustain RUNNING ¦¦ await TERMINATE_SIGNAL; exit TERMINATE end trap sustainawait # ¦¦ pause == parallel loop

The optimizing property Example trap TERMINATE in loop pause; emit O1; pause; emit O2 end loop ¦¦ sustain RUNNING ¦¦ await TERMINATE_SIGNAL; exit TERMINATE end trap sustainawait # ¦¦ pause === parallel loop

The optimizing property If a parallel statement branch cannot terminate then the selection status of the branch is equal, at each instant, with the selection status of the entire parallel statement

The optimizing property Non-termination criteria The static analysis of the Esterel program that is done at compile time Cheap method (the information comes for free)

The optimizing property Some statistics:

Applications Register removal sustainawait # ¦¦ pause === parallel loop parallel status = loop status = sustain status = await status

Applications Register removal sustainawait # ¦¦ pause === parallel loop parallel status = loop status = sustain status = await status

Applications Register removal sustain await # pause parallel loop parallel status = loop status = sustain status = await status

Applications Register removal

Applications State re-encoding Exclusive selection nodes become switches that choose the selected son # #

Applications State re-encoding The selection tree encoding is given by the encoding of all the ¦¦ # # = # # =

Applications State re-encoding The selection tree encoding is given by the encoding of all the sub-trees ¦¦ # # =

Applications State re-encoding The selection tree encoding is given by the encoding of all the sub-trees ¦¦ # # =

Applications State re-encoding The selection tree encoding is given by the encoding of all the sub-trees 3

Applications State re-encoding