An Esterel Virtual Machine (EVM) Aruchunan Vaseekaran

Similar documents
Finch Robot: snap level 4

How to Design Worlds

Comparison of Parallel Prefix Adders Performance in an FPGA

The City School. Learn Create Program

Workbook. Version 3. Created by G. Mullin and D. Carty

MGL Avionics EFIS G2 and iefis. Guide to using the MGL RDAC CAN interface with the UL Power engines

C-Wags Rally. ss # Canine-Work And Games LLC - 2 -

Machine Learning.! A completely different way to have an. agent acquire the appropriate abilities to solve a particular goal is via machine learning.

5 State of the Turtles

State Machines and Statecharts

OBEDIENCE JUDGES ASSOCIATION SAMPLE MULTI-CHOICE QUESTIONS ANSWERS

RALLY-O Sign Commands

2. FINISH - Indicates the end of the course - timing stops. 1. START - Indicates the beginning of the course.

Design of 32 bit Parallel Prefix Adders

AKC Rally More Advanced Signs

Finch Robot: snap levels 1-3

Design of Low Power and High Speed Carry Select Adder Using Brent Kung Adder

Comparative Analysis of Adders Parallel-Prefix Adder for Their Area, Delay and Power Consumption

A Novel Approach For Error Detection And Correction Using Prefix-Adders

IGP. (International Gebrauchshund Prufung = International Working / Practical Dog Test)

Introduction to Realtime Linux

RALLY SIGNS AND DESCRIPTIONS. The principal parts of the exercises are boldface and underlined.

Effective Vaccine Management Initiative

INTERNATIONAL JOURNAL OF ADVANCED RESEARCH IN ENGINEERING AND TECHNOLOGY (IJARET)

Loose Leash Walking. Core Rules Applied:

General Judging Standards & Course Design for UKI

Identity Management with Petname Systems. Md. Sadek Ferdous 28th May, 2009

Creating Strategic Capital for EVM. EVA th June 2012 Andrew Hill PROJECT CONTROLS CONSULTING

A New Twist on Training

Measuring the Effectiveness of ACATS

Sketch Out the Design

Design of 16-Bit Adder Structures - Performance Comparison

Design of a High Speed Adder

Effects of Natural Selection

Recursion with Turtles

Psy Advanced Laboratory in Operant Behavior Dognition Laboratory One. I. Let s see how well your dog can observe pointing signals.

Coding with Scratch Popping balloons

Rally Signs & Descriptions

6.836 Embodied Intelligence Final Project: Tom and Jerry. Gleb Chuvpilo, Jessica Howe chuvpilo, May 15, 2002

Teaching Assessment Lessons

Natural Language Processing (NLP)

Super Retriever Series Rules and Regulations

Implementation and Estimation of Delay, Power and Area for Parallel Prefix Adders

Lab: Natural Selection Student Guide

Hello Scratch! by Gabriel Ford, Sadie Ford, and Melissa Ford. Sample Chapter 3. Copyright 2018 Manning Publications

Writing Simple Procedures Drawing a Pentagon Copying a Procedure Commanding PenUp and PenDown Drawing a Broken Line...

RALLY SIGNS Descriptions and Symbols for Rally Signs Exercises that may be used in Novice, Advanced and Excellent Classes

UNIT Animal Care: An Introduction to Dog Grooming (SCQF level 5)

Design of Carry Select Adder with Binary Excess Converter and Brent Kung Adder Using Verilog HDL

THINKING ABOUT THE E-COLLAR A Discussion with Maurice Lindley By Martha H. Greenlee

Design of Modified Low Power and High Speed Carry Select Adder Using Brent Kung Adder

Turtle Ballet: Simulating Parallel Turtles in a Nonparallel LOGO Version. Erich Neuwirth

User s Guide. High Performance Linear Products SLOU119

Logical Forms. Prof. Sameer Singh CS 295: STATISTICAL NLP WINTER February 16, 2017

Design of High Speed Vedic Multiplier Using Carry Select Adder with Brent Kung Adder

Design of Carry Select Adder Using Brent Kung Adder and BEC Adder

Scratch Jigsaw Method Feelings and Variables

CS108L Computer Science for All Module 7: Algorithms

POLICE K9 UNIVERSITY 2016 NINO DROWAERT ALL RIGHTS RESERVED

16-BIT CARRY SELECT ADDER. Anushree Garg B.Tech Scholar, JVW, University, Rajasthan, India

CANINE IQ TEST. Dogs tend to enjoy the tests since they don't know that they are being tested and merely think that you are playing with

Reasoning with Neural Networks

Sample Course Layout 1

EARNED VALUE MANAGEMENT WHAT IS IT AND WHY SHOULD I CARE?

RALLY SIGNS AND DESCRIPTIONS. The principal parts of the exercises are boldface and underlined.

Upgrade KIT IV Operation Manual

The Agility Coach Notebooks

VIRTUAL AGILITY LEAGUE FREQUENTLY ASKED QUESTIONS

Election Commission of India. Training on Use of Electronic Voting Machine

DESIGN AND SIMULATION OF 4-BIT ADDERS USING LT-SPICE

Our training program... 4

The ALife Zoo: cross-browser, platform-agnostic hosting of Artificial Life simulations

288 Seymour River Place North Vancouver, BC V7H 1W6

Moving toward formalisation COMP62342

Australian Journal of Basic and Applied Sciences. Performance Analysis of Different Types of Adder Using 3-Transistor XOR Gate

Coding with Scratch - First Steps

Mexican Gray Wolf Reintroduction

Design and Estimation of delay, power and area for Parallel prefix adders

Simulation of the ASFA system in an ERTMS simulator

SECTION IV-1 PARLOURS

Level 2 Signs with Explanations A4.indd 1 09/04/ :35:50

HERDING REGULATIONS FOR SV HERDING COMPETITIONS

EXTERNAL TECHNICAL REPORT

THE SECTIONS THAT ARE RELEVANT FOR THE JUDGES (THE SECTIONS ONLY RELEVANT FOR ORGANISERS NOT INCLUDED)

Empathy in Animal Assisted Therapy: Considering the Animal s Point of View

Puppy Agility Games, Part 1 By Anne Stocum, photos by Dianne Spring

North Star K9 Training Association Trailing Urban Certification Testing

Recurrent neural network grammars. Slide credits: Chris Dyer, Adhiguna Kuncoro

Lessons learned from implementing EVM on a large scale IT portfolio at the Department of State

UNIT Animal Care: Reptile and Amphibian Care (SCQF level 5)

Moving towards formalisation COMP62342

American Rescue Dog Association. Standards and Certification Procedures

Board Motions. Board Motions. Judge Approvals

A Column Generation Algorithm to Solve a Synchronized Log-Truck Scheduling Problem

Tntibiotic resistance is a growing problem and the main cause of this problem is misuse

IPO HANDLING TIPS 2015 YOUTH SEMINAR

CENTERITY SERVICE PACK FOR CLOUDERA Maximize the Performance and Availability for your C loudera management platform

MASCA Obedience Program

2015 Highland County 4-H Dog Project Registration. 4-H er s Name Age (1/1/14) Address P. O. Box or Street City Zip

Elicia Calhoun Seminar for Mobility Challenged Handlers PART 3

Transcription:

An Esterel Virtual Machine (EVM) Aruchunan Vaseekaran

Why Esterel is suited for Deterministic Control Systems Imperative Language Synchronous Concurrency, Preemption Not widely available in low cost systems.

Related Work - Pascal EVM Concept Compile code for abstract machine. Write Interpreter for each target platform Makes compiler very portable Slower Speed Pascal P-Code Machine 1970 Machine understood pascal primitive types Single Stack Single Threaded

Related Work - JVM Java JVM All java code compiled down to JVM byte codes Stack based 1 Stack/Thread Supports multiple threads Object creation/de-allocation Monitors for protecting critical code sections

Plan Design EVM Create Compiler by modifying ECL Implement Linux EVM & Test Create EVM on Lego Mindstorms Compare Approaches Expect EVM approach to be slow Expect EVM code size to be small

EVM Design Choices Either have instructions for Esterel features such as threads, exceptions or C Or: make EVM run the C subset which EC compiles down to. Simulates state of resumable instructions using state variables. Our Choice: have instructions for Esterel Features: Less code Clearer output, Easier to compile Makes more sense

EVM Design Using the EVM Its initialized with Byte Codes Repeat for every cycle: Set external input signals Run the EVM for a cycle Retrieve external output signals

EVM Design Registers Program Counter (PC) General Purpose Registers R0-R8 Stack Pointer (SP) only used for expression evaluation State Register (SR) Flag Register (FL) Holds result of logical ops

EVM Design State Information For Each Thread: Tread id Address to start of thread Register Save Area Completion Code -1 context switches (coroutine) 1 paused for cycle > 1 terminated with exception

EVM Design State Information cont.. For Each Thread Store all active traps: Trap id Address of trap handler

EVM Design Signal Instructions All signals are given unique numbers by the compiler Sigtstsignum Test for present Sigemit signum Make signal present

EVM Design Trap Instructions Trapdef id, handler_address Defines trap Trapdel id Undefines trap Exit id Causes an exception: If trap handler exists in current thread Branch to it Else Terminate the current thread and throw the exception

EVM Design Example EVM code trap T in s1; present S then exit T end; s2; end for a trap

EVM Design Example EVM code trapdef #6, trap_end: # S1.. # present S then.. exit 6...... # S2 trap_end: trapdel #6 for a Trap cont..

EVM Design Thread Instructions Threads have unique numbers to EVM Threaddef id, start_address Defines a thread to the EVM Threaddel id Threadrun id Runs one thread for a cycle Pause Terminates thread for this cycle only. In next cycle, control will go to instruction after pause. Threadone Terminates this thread forever

EVM Design Thread Instructions cont Threadwait cnt,tid1,tid2,tid3 Runs a bunch of threads for a cycles and then reacts to their completion state. If they all terminate normally, threadwait will also terminate and control goes to next instruction after threadwait. If they all finish for this cycle, threadwait will also finish for this cycle. If any one of them hit an exception, threadwait will wait for the remainder to finish for the cycle and then propagate the exception.

S1 S2 EVM Design Coding a Statement into Threads threaddef 5,S1_start: threaddef 6,S2_start: threadwait 2,5,6 threaddel 5 threaddel 6 jmp par_0_end; S1_start: S1 threaddone S2_start: S2 threaddone Par_0_end:

Compiler for EVM - Approach modify EC, Stephen Edwards ESUIF based compiler ESUIF is based on a set of independent compiler passes Passes can be added dropped start from Internal Representation (IR) of EC IR like C with Esterel semantics Added passes to map IR to something close to EVM instructions

Compiler for EVM Compiling Trap.. Trap is mapped to try in IR trap T in s1; present S then exit T end; s2; end Try { S1 Present S then exit T end; S2 }

Compiler for EVM Compiling trapdef #6, trap_end: # S1.. # present S then.. exit 6...... # S2 trap_end: trapdel #6 Trap..

Compiler for EVM Compiling S1 S2 parallel { thread { pause emit A } thread { pause pause emit B } }

Compiler for EVM Compiling threaddef 1,thread_1_start: threaddef 2,thread_2_start: threadwait 2,1,2 threaddel 1 threaddel 2 jmp parallel_1_end: thread_1_start: pause sigemit 0 threaddone thread_2_start: pause pause sigemit 1 threaddone parallel_1_end: cont..

Status of Compiler and EVM Created compiler passes for important mappings try, abort, parallel Hand verified Created Design for EVM not implemented

Conclusions & Future Work Achieved EVM Design Compiler Design Implemented core compiler pieces and verified Future Work Finish implementing compiler and EVM (2-3 man months) Measure performance Implement on microcontroller for validation Optimize EVM and compiler Branch optimization

Lego Mindstorms