Stateful Real-Time Communication Schedules

Size: px
Start display at page:

Download "Stateful Real-Time Communication Schedules"

Transcription

1 Rishi Bhat Chris Walstad Advisor: Insup Lee Stateful Real-Time Communication Schedules Abstract The typical approach to guaranteed message delivery in distributed real-time systems uses Time Division Multiple Access (TDMA) to ensure that no scheduling collisions occur. The most important property of scheduling in a real-time system is to guarantee that each node is given its scheduled timeslot and no collisions exist between all of the nodes timeslots. TDMA uses a fairly simplistic approach to satisfy this property: each node is assigned a single timeslot and can only send messages during that slot. On the other hand, stateful communication schedules allow for a significantly more complicated schedule. By using network code programs which run on top of the scheduler we can allow each node to send and receive messages and perform error recovery in a more efficient manner. This is done by maintaining information in the scheduler which allows it to intelligently choose the next best node to be scheduled. Stateful communication schedules are thus valuable in distributed systems such as automobiles or medical devices in which there must be a guarantee that messages are delivered very quickly (consider a driver pushing on a brake pedal, for example). There were several goals of this project. We studied several related high-level specification languages such as AADL and Giotto, and due to unnecessary complexity we created our own simple specification language to model network constraints. Secondly, we developed a scheduler which schedules communications on the network and CPUs based on constraints specified in the input. Next we created a compiler which

2 translates the schedule into network code which can be run on the RTLinux scheduler. Finally, we created a visualization tool that creates a pictorial representation of our schedule. Related Work The typical approach to communication in real-time distributed systems uses TDMA. An example of a TDMA schedule is shown in Figure 1. Here Sync is a synchronization message, Ctrl is a control message, and the remainder of the blocks represent nodes. Node A 1 is allowed to send a message during the 10 to 20 time units slot, A 2 is allowed to send a message in the 20 to 30 time units slot, and so on. Figure 1 (source: slides from Sebastian Fischmeister) TDMA can ensure that collisions do not occur, but it is not the most efficient method of ensuring this property. Consider, for example, what would happen if node A 1 did not have any message to send during the 10 to 20 time unit slot. The communication medium would be wasted during this time because no other nodes are allowed to transmit during this time and A 1 has nothing to send. This project focuses on stateful communication schedules which allow much more complicated schedules and can be used to solve some problems with TDMA. Earlier research by Gregor A. König has produced a first version of the network code compiler. Our project significantly expands on the existing work by using a more sophisticated scheduler. We also completely redeveloped the network code compiler and input language. Technical Approach

3 Figure 2 (source: slides from Sebastian Fischmeister) This project is concerned with the shaded bubbles of Figure 2. Our developed code generator takes as input a set of specifications in our input language. These specifications define the network and CPU constraints for all of the nodes in the system. The output is annotated network code as well as visual and textual representations of the created schedule. We developed a simple input language that models the properties of the system. The input language contains three sections in which we specify tasks, communications, and guards. Tasks are defined to be periodic processes running on a node that have a worst case execution time and transmission time. We assume that all data can be transmitted in one Ethernet frame and thus the transmission time is always one. Communications specify the way in which tasks transmit between each other. Additionally, each task uses an input and output port which is specified in the communication section. Guards are used to specify a choice between two or more

4 communications based on a dynamic computation performed by the function specified in the guard. An example of a possible input to the system is: // Task section // Task ID, Node, Period, WCET, Transmission Time 1, 1, 10, 3, 1 2, 1, 20, 2, 1 3, 2, 10, 5, 1 4, 2, 5, 1, 1 // Communication section // Sending Task.Port -> Receiving Task.Port 1.1 -> > > > 4.2 // Guard section // Guard ID, Function, Input Task, True Branch, False Branch 1, fun1, {2}, 1, 2 2, fun2, {1}, 3, 4 Note that in the guard section the true and false branches specify which communications to run. The communications are given an implicit ID based on their position in the file. It is also possible to represent more than two choices by chaining guards. For example, to choose between three communications we could write: 1, fun1, {1}, 1, g2 2, fun2, {1}, 2, 3 We have developed and implemented a scheduling algorithm in Java which takes the input described above. The algorithm then returns not schedulable or a schedule for both the network communication medium as well as the CPU on each node up to the least common multiple of the periods of all tasks (since if there are no conflicts up to the LCM of the periods, then there will never be a conflict). We define the slack of a task to be the difference of the task s computation time and period. Thus, the slack of a task can be viewed as the amount of time that a task has to transmit information over the network before it must be run again. We also define an active communication as a

5 communication that has not yet been scheduled during the current period of the sending task or receiving task. Our algorithm works by first scheduling the transmission of each task over the network communication medium, and then uses this schedule to determine the CPU schedule for each node specified by the input. The algorithm for scheduling the network communication medium is below: - Initialize the current time to lcm (T 1, T 2,, T n ). - Repeat while current time > 0: o Pick the active communication, C, whose sending task has the smallest slack. o If C is guarded Schedule C as well as all of its alternate choices (specified by the guards) for the current timeslot o Else C is not guarded Schedule C for the current timeslot o Decrement current time by one. o Update active tasks based on what was scheduled. A visualization of the network schedule for the example given above is shown below: Our scheduler also outputs a textual representation of the schedule: 3: g2 3: c4 3: c3 4: g1 4: c2 4: c1 8: g2

6 8: c4 8: c3 9: g1 9: c2 9: c1 13: g2 13: c4 13: c3 14: g1 14: c2 14: c1 18: g2 18: c4 18: c3 19: g1 19: c2 19: c1 The schedule above shows which communication is scheduled for each timeslot. The communications are also labeled with guards if there is a guard that chooses between them. Note that guards do not actually occupy a timeslot. For example, at time three if the function specified in guard two returns true then communication one will be run on the network otherwise communication two will be run. After the schedule for the network communication medium is determined, the algorithm schedules computation time on each nodes CPU. This is done using an earliest deadline first algorithm where the deadlines are the transmission time assigned to each task by the network schedule. The algorithm is as follows: - For each node (curnode) o curslot = 0; nextslot = 0; o While there are still more deadlines to check, get the next deadline (for task T) for node curnode and assign the value to nextslot. Schedule T for the time max(curslot, T.previous_deadline). If (curslot + T.computation_time > T.deadline) then return unscheduable curslot = curslot + T.computation_time

7 Our network code compiler translates the generated schedule into network code which can be run on RTLinux. We will now describe the instruction set: Future (dl, jmp) : schedules the program to wake up in dl time units and begin execution program counter plus jmp. Halt() : halts execution until a trigger enables it again. If (g, jmp) : implements a conditional jump. If the guard g evaluates to true the execution will continue at program counter plus jmp. Otherwise, the program counter is increased by one. Create (msgid, loc) : creates a message with the specified ID in memory location loc. Destroy (msgid) : destroys the specified message. Send (ch, msgid, reltime) : sends message msgid on channel ch. reltime specified the message s lifetime. Receive (ch, loc) : receives a message on channel ch into location loc. For example, consider the following input: 1, 1, 10, 1, 1 2, 2, 10, 1, > 2.1 This input generates the schedule shown below: And the resulting network code is: Program for Node 1 /*0*/ future( 9, 2 ), /*1*/ halt(), /*2*/ nop(), /*3*/ create( 0, 1 ), /*4*/ send( 1, 0, 1 ),

8 /*5*/ destroy( 0 ), /*6*/ halt(), Program for Node 2 /*0*/ future( 10, 2 ), /*1*/ halt(), /*2*/ nop(), /*3*/ receive( 1, 1 ), /*4*/ halt(), The program for node one waits until time nine and then sends a message, and the program for node two waits until time ten and then receives this message. We implemented one optimization which prevents generation of duplicate code around guards. Our schedule is stored in a graph structure and the network code is generated recursively. Thus, it is possible to get duplicate code around guards, for example if there are two paths to the same node then the code for that node would be generated twice. In some cases, such as program checkers, this may be an ideal behavior because there are no backwards jumps. However, it also generates a lot of excess code, so we implemented this optimization by coloring nodes after we generated code for them and then jumping to the previously generated code in the event that a colored node was reached. We also implemented a visualization tool (images from which are shown above) which takes as input the graph structure representing a schedule. This is useful to test schedules and quickly see the result on a timeline. Conclusion Our project began with an analysis of existing specification languages. Once we realized that existing languages were unnecessarily complex for our purposes, we developed our own specification language. We created a network scheduling algorithm which is unique in that it allows choices on the network and allows for stateful real-time communication. The generated schedules are compiled into network code using our

9 network code compiler. Also, our visualization tool translates the generated schedules into a visual representation. There are numerous extensions to this project. We planned to have testing on RTLinux complete by April 30 th (see proposal two), and we are currently in the process of finishing this. Another extension is to translate the schedules into VERSA input for schedule verification. References 1. Fischmeister, Sokolsky, Lee. Network-Code Machine: Programmable Real- Time Communication Schedules. Currently unpublished. 2. König, Gregor A. Using Interpreters for Scheduling Network Communication in Distributed Real-Time Systems Lee, Insup and Fischmeister, Sebastian. Senior Design Project Proposal: Stateful Real-Time Communication Schedules. l%20schedules.pdf 4. Society of Automotive Engineers. The SAE Architecture Analysis & Design Language (AADL) Standard The University of Pennsylvania, Real-Time Systems Group. VERSA: Verification Execution and Rewrite System for ACSR.

Network-Code Machine: Programmable Real- Time Communication Schedules

Network-Code Machine: Programmable Real- Time Communication Schedules University of Pennsylvania ScholarlyCommons Departmental Papers (CIS) Department of Computer & Information Science April 2006 Network-Code Machine: Programmable Real- Time Communication Schedules Sebastian

More information

A Verifiable Language for Programming Real-Time Communication Schedules

A Verifiable Language for Programming Real-Time Communication Schedules University of Pennsylvania ScholarlyCommons Departmental Papers (CIS) Department of Computer & Information Science November 2007 A Verifiable Language for Programming Real-Time Communication Schedules

More information

Schedulability Analysis of AADL Models

Schedulability Analysis of AADL Models Schedulability Analysis of AADL Models Oleg Sokolsky Insup Lee University of Pennsylvania Duncan Clarke Fremont Associates Overview AADL modeling language Why is it useful and what it has Formal schedulability

More information

Atacama: An Open Experimental Platform for Mixed-Criticality Networking on Top of Ethernet

Atacama: An Open Experimental Platform for Mixed-Criticality Networking on Top of Ethernet Atacama: An Open Experimental Platform for Mixed-Criticality Networking on Top of Ethernet Gonzalo Carvajal 1,2 and Sebastian Fischmeister 1 1 University of Waterloo, ON, Canada 2 Universidad de Concepcion,

More information

A Multi-Modal Composability Framework for Cyber-Physical Systems

A Multi-Modal Composability Framework for Cyber-Physical Systems S5 Symposium June 12, 2012 A Multi-Modal Composability Framework for Cyber-Physical Systems Linh Thi Xuan Phan Insup Lee PRECISE Center University of Pennsylvania Avionics, Automotive Medical Devices Cyber-physical

More information

Distributed Embedded Systems and realtime networks

Distributed Embedded Systems and realtime networks STREAM01 / Mastère SE Distributed Embedded Systems and realtime networks Embedded network TTP Marie-Agnès Peraldi-Frati AOSTE Project UNSA- CNRS-INRIA January 2008 1 Abstract Requirements for TT Systems

More information

Multiple Access Protocols

Multiple Access Protocols Multiple Access Protocols Computer Networks Lecture 2 http://goo.gl/pze5o8 Multiple Access to a Shared Channel The medium (or its sub-channel) may be shared by multiple stations (dynamic allocation) just

More information

Lecture 5: Instruction Pipelining. Pipeline hazards. Sequential execution of an N-stage task: N Task 2

Lecture 5: Instruction Pipelining. Pipeline hazards. Sequential execution of an N-stage task: N Task 2 Lecture 5: Instruction Pipelining Basic concepts Pipeline hazards Branch handling and prediction Zebo Peng, IDA, LiTH Sequential execution of an N-stage task: 3 N Task 3 N Task Production time: N time

More information

Global Optimization. Lecture Outline. Global flow analysis. Global constant propagation. Liveness analysis. Local Optimization. Global Optimization

Global Optimization. Lecture Outline. Global flow analysis. Global constant propagation. Liveness analysis. Local Optimization. Global Optimization Lecture Outline Global Optimization Global flow analysis Global constant propagation Liveness analysis Compiler Design I (2011) 2 Local Optimization Recall the simple basic-block optimizations Constant

More information

(Refer Slide Time: 00:02:04)

(Refer Slide Time: 00:02:04) Computer Architecture Prof. Anshul Kumar Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture - 27 Pipelined Processor Design: Handling Control Hazards We have been

More information

Hardware Acceleration for Conditional State-Based Communication Scheduling on Real-Time Ethernet

Hardware Acceleration for Conditional State-Based Communication Scheduling on Real-Time Ethernet IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. 5, NO. 3, AUGUST 2009 325 Hardware Acceleration for Conditional State-Based Communication Scheduling on Real-Time Ethernet Sebastian Fischmeister, Member,

More information

The Processor: Improving the performance - Control Hazards

The Processor: Improving the performance - Control Hazards The Processor: Improving the performance - Control Hazards Wednesday 14 October 15 Many slides adapted from: and Design, Patterson & Hennessy 5th Edition, 2014, MK and from Prof. Mary Jane Irwin, PSU Summary

More information

Analyzing Real-Time Systems

Analyzing Real-Time Systems Analyzing Real-Time Systems Reference: Burns and Wellings, Real-Time Systems and Programming Languages 17-654/17-754: Analysis of Software Artifacts Jonathan Aldrich Real-Time Systems Definition Any system

More information

2.1 CHANNEL ALLOCATION 2.2 MULTIPLE ACCESS PROTOCOLS Collision Free Protocols 2.3 FDDI 2.4 DATA LINK LAYER DESIGN ISSUES 2.5 FRAMING & STUFFING

2.1 CHANNEL ALLOCATION 2.2 MULTIPLE ACCESS PROTOCOLS Collision Free Protocols 2.3 FDDI 2.4 DATA LINK LAYER DESIGN ISSUES 2.5 FRAMING & STUFFING UNIT-2 2.1 CHANNEL ALLOCATION 2.2 MULTIPLE ACCESS PROTOCOLS 2.2.1 Pure ALOHA 2.2.2 Slotted ALOHA 2.2.3 Carrier Sense Multiple Access 2.2.4 CSMA with Collision Detection 2.2.5 Collision Free Protocols 2.2.5.1

More information

Memory: Overview. CS439: Principles of Computer Systems February 26, 2018

Memory: Overview. CS439: Principles of Computer Systems February 26, 2018 Memory: Overview CS439: Principles of Computer Systems February 26, 2018 Where We Are In the Course Just finished: Processes & Threads CPU Scheduling Synchronization Next: Memory Management Virtual Memory

More information

Register Machines. Connecting evaluators to low level machine code

Register Machines. Connecting evaluators to low level machine code Register Machines Connecting evaluators to low level machine code 1 Plan Design a central processing unit (CPU) from: wires logic (networks of AND gates, OR gates, etc) registers control sequencer Our

More information

CHAPTER 7 MAC LAYER PROTOCOLS. Dr. Bhargavi Goswami Associate Professor & Head Department of Computer Science Garden City College

CHAPTER 7 MAC LAYER PROTOCOLS. Dr. Bhargavi Goswami Associate Professor & Head Department of Computer Science Garden City College CHAPTER 7 MAC LAYER PROTOCOLS Dr. Bhargavi Goswami Associate Professor & Head Department of Computer Science Garden City College MEDIUM ACCESS CONTROL - MAC PROTOCOLS When the two stations transmit data

More information

Contents Contents Introduction Basic Steps in Query Processing Introduction Transformation of Relational Expressions...

Contents Contents Introduction Basic Steps in Query Processing Introduction Transformation of Relational Expressions... Contents Contents...283 Introduction...283 Basic Steps in Query Processing...284 Introduction...285 Transformation of Relational Expressions...287 Equivalence Rules...289 Transformation Example: Pushing

More information

Hashing. Dr. Ronaldo Menezes Hugo Serrano. Ronaldo Menezes, Florida Tech

Hashing. Dr. Ronaldo Menezes Hugo Serrano. Ronaldo Menezes, Florida Tech Hashing Dr. Ronaldo Menezes Hugo Serrano Agenda Motivation Prehash Hashing Hash Functions Collisions Separate Chaining Open Addressing Motivation Hash Table Its one of the most important data structures

More information

Model Based Development of Embedded Control Software

Model Based Development of Embedded Control Software Model Based Development of Embedded Control Software Part 5: Portable TDL Run-time System Claudiu Farcas Credits: MoDECS Project Team, Giotto Department of Computer Science cs.uni-salzburg.at Contents

More information

Introducing Hashing. Chapter 21. Copyright 2012 by Pearson Education, Inc. All rights reserved

Introducing Hashing. Chapter 21. Copyright 2012 by Pearson Education, Inc. All rights reserved Introducing Hashing Chapter 21 Contents What Is Hashing? Hash Functions Computing Hash Codes Compressing a Hash Code into an Index for the Hash Table A demo of hashing (after) ARRAY insert hash index =

More information

Understand the factors involved in instruction set

Understand the factors involved in instruction set A Closer Look at Instruction Set Architectures Objectives Understand the factors involved in instruction set architecture design. Look at different instruction formats, operand types, and memory access

More information

structural RTL for mov ra, rb Answer:- (Page 164) Virtualians Social Network Prepared by: Irfan Khan

structural RTL for mov ra, rb Answer:- (Page 164) Virtualians Social Network  Prepared by: Irfan Khan Solved Subjective Midterm Papers For Preparation of Midterm Exam Two approaches for control unit. Answer:- (Page 150) Additionally, there are two different approaches to the control unit design; it can

More information

Module 4c: Pipelining

Module 4c: Pipelining Module 4c: Pipelining R E F E R E N C E S : S T A L L I N G S, C O M P U T E R O R G A N I Z A T I O N A N D A R C H I T E C T U R E M O R R I S M A N O, C O M P U T E R O R G A N I Z A T I O N A N D A

More information

CS 3114 Data Structures and Algorithms READ THIS NOW!

CS 3114 Data Structures and Algorithms READ THIS NOW! READ THIS NOW! Print your name in the space provided below. There are 7 short-answer questions, priced as marked. The maximum score is 100. This examination is closed book and closed notes, aside from

More information

Have difficulty identifying any products Not incorporating embedded processor FPGA or CPLD In one form or another

Have difficulty identifying any products Not incorporating embedded processor FPGA or CPLD In one form or another Introduction Embedded systems Continue pervasive expansion into Vast variety of electronic systems and products Aircraft and automobiles games and medical equipment Have difficulty identifying any products

More information

UNIT 3

UNIT 3 UNIT 3 Presentation Outline Sequence control with expressions Conditional Statements, Loops Exception Handling Subprogram definition and activation Simple and Recursive Subprogram Subprogram Environment

More information

Data Communications. Automatic Repeat Request Medium Access Control

Data Communications. Automatic Repeat Request Medium Access Control Data Communications Automatic Repeat Request Medium Access Control Handling Error Cases Automatic Repeat request(arq), also known as Automatic Repeat Query, is an error-control method ARQ uses acknowledgements

More information

The Structuring of Systems Using Upcalls

The Structuring of Systems Using Upcalls CS533 - Concepts of Operating Systems, Winter 2012 The Structuring of Systems Using Upcalls David D. Clark Presented by: Peter Banda Agenda Layers and Upcalls Example Multi-task Modules Problems with Upcalls

More information

www.thestudycampus.com Recursion Recursion is a process for solving problems by subdividing a larger problem into smaller cases of the problem itself and then solving the smaller, more trivial parts. Recursion

More information

DATA STRUCTURES/UNIT 3

DATA STRUCTURES/UNIT 3 UNIT III SORTING AND SEARCHING 9 General Background Exchange sorts Selection and Tree Sorting Insertion Sorts Merge and Radix Sorts Basic Search Techniques Tree Searching General Search Trees- Hashing.

More information

Introduction to Rule-Based Systems. Using a set of assertions, which collectively form the working memory, and a set of

Introduction to Rule-Based Systems. Using a set of assertions, which collectively form the working memory, and a set of Introduction to Rule-Based Systems Using a set of assertions, which collectively form the working memory, and a set of rules that specify how to act on the assertion set, a rule-based system can be created.

More information

Sleep/Wake Aware Local Monitoring (SLAM)

Sleep/Wake Aware Local Monitoring (SLAM) Sleep/Wake Aware Local Monitoring (SLAM) Issa Khalil, Saurabh Bagchi, Ness Shroff Dependable Computing Systems Lab (DCSL) & Center for Wireless Systems and Applications (CWSA) School of Electrical and

More information

The CPU and Memory. How does a computer work? How does a computer interact with data? How are instructions performed? Recall schematic diagram:

The CPU and Memory. How does a computer work? How does a computer interact with data? How are instructions performed? Recall schematic diagram: The CPU and Memory How does a computer work? How does a computer interact with data? How are instructions performed? Recall schematic diagram: 1 Registers A register is a permanent storage location within

More information

Virtual Machine Tutorial

Virtual Machine Tutorial Virtual Machine Tutorial CSA2201 Compiler Techniques Gordon Mangion Virtual Machine A software implementation of a computing environment in which an operating system or program can be installed and run.

More information

SOURCE LANGUAGE DESCRIPTION

SOURCE LANGUAGE DESCRIPTION 1. Simple Integer Language (SIL) SOURCE LANGUAGE DESCRIPTION The language specification given here is informal and gives a lot of flexibility for the designer to write the grammatical specifications to

More information

MAC Layer Performance of ITS G5

MAC Layer Performance of ITS G5 MAC Layer Performance of ITS G5 Optimized DCC and Advanced Transmitter Coordination 4 th ETSI TC ITS Workshop Doha, February 7-9, 2012 Marc Werner, Radu Lupoaie, Sundar Subramanian, Jubin Jose mwerner@qualcomm.com

More information

Data Link Layer: Collisions

Data Link Layer: Collisions Data Link Layer: Collisions 1 Multiple Access Data Link layer divided into two sublayers. The upper sublayer is responsible for datalink control, The lower sublayer is responsible for resolving access

More information

Practical Malware Analysis

Practical Malware Analysis Practical Malware Analysis Ch 4: A Crash Course in x86 Disassembly Revised 1-16-7 Basic Techniques Basic static analysis Looks at malware from the outside Basic dynamic analysis Only shows you how the

More information

UML-based framework for simulation of distributed ECU systems in automotive applications

UML-based framework for simulation of distributed ECU systems in automotive applications UML-based framework for simulation of distributed ECU systems in automotive applications Frank Steinert protime GmbH Prien Germany A UML based framework for the simulation of distributed systems of embedded

More information

Giotto. Thomas A. Henzinger, Benjamin Horowitz, Christoph Kirsch. UC Berkeley

Giotto.   Thomas A. Henzinger, Benjamin Horowitz, Christoph Kirsch. UC Berkeley Giotto Thomas A. Henzinger, Benjamin Horowitz, Christoph Kirsch UC Berkeley www.eecs.berkeley.edu/~fresco/giotto Control Software Development Mathematical Model Platform Constraints e.g. Matlab/Simulink

More information

CS 11 C track: lecture 8

CS 11 C track: lecture 8 CS 11 C track: lecture 8 n Last week: hash tables, C preprocessor n This week: n Other integral types: short, long, unsigned n bitwise operators n switch n "fun" assignment: virtual machine Integral types

More information

ESSSg^Pi»ter. The most important features of MULBY 3 at a glance

ESSSg^Pi»ter. The most important features of MULBY 3 at a glance ESSSg^Pi»ter 0 The most important features of MULBY 3 at a glance # I The most important features of MULBY 3 This brochure shall provide a quick survey about the MULBY 3 central processor unit, standard

More information

Process Management And Synchronization

Process Management And Synchronization Process Management And Synchronization In a single processor multiprogramming system the processor switches between the various jobs until to finish the execution of all jobs. These jobs will share the

More information

Aperiodic Task Scheduling

Aperiodic Task Scheduling Aperiodic Task Scheduling Radek Pelánek Preemptive Scheduling: The Problem 1 processor arbitrary arrival times of tasks preemption performance measure: maximum lateness no resources, no precedence constraints

More information

Resource-bound process algebras for Schedulability and Performance Analysis of Real-Time and Embedded Systems

Resource-bound process algebras for Schedulability and Performance Analysis of Real-Time and Embedded Systems Resource-bound process algebras for Schedulability and Performance Analysis of Real-Time and Embedded Systems Insup Lee 1, Oleg Sokolsky 1, Anna Philippou 2 1 RTG (Real-Time Systems Group) Department of

More information

Timing Analysis of Parallel Software Using Abstract Execution

Timing Analysis of Parallel Software Using Abstract Execution Timing Analysis of Parallel Software Using Abstract Execution Björn Lisper School of Innovation, Design, and Engineering Mälardalen University bjorn.lisper@mdh.se 2014-09-10 EACO Workshop 2014 Motivation

More information

Using Time Division Multiplexing to support Real-time Networking on Ethernet

Using Time Division Multiplexing to support Real-time Networking on Ethernet Using Time Division Multiplexing to support Real-time Networking on Ethernet Hariprasad Sampathkumar 25 th January 2005 Master s Thesis Defense Committee Dr. Douglas Niehaus, Chair Dr. Jeremiah James,

More information

ARTIST-Relevant Research from Linköping

ARTIST-Relevant Research from Linköping ARTIST-Relevant Research from Linköping Department of Computer and Information Science (IDA) Linköping University http://www.ida.liu.se/~eslab/ 1 Outline Communication-Intensive Real-Time Systems Timing

More information

Announcements: Assignment 4 due now Lab 4 due next Tuesday Assignment 5 posted, due next Thursday

Announcements: Assignment 4 due now Lab 4 due next Tuesday Assignment 5 posted, due next Thursday ECE/CS 372 introduction to computer networks Lecture 15 Announcements: Assignment 4 due now Lab 4 due next Tuesday Assignment 5 posted, due next Thursday Credit for lecture slides to Professor Bechir Hamdaoui

More information

802.1 TIME-SENSITIVE NETWORKING (TSN) ON 802.3CG MULTIDROP NETWORKS

802.1 TIME-SENSITIVE NETWORKING (TSN) ON 802.3CG MULTIDROP NETWORKS 802.1 TIME-SENSITIVE NETWORKING (TSN) ON 802.3CG MULTIDROP NETWORKS AUTHOR: CRAIG GUNTHER, HARMAN INTERNATIONAL SUPPORTERS: DON PANNELL, MARVELL RODNEY CUMMINGS, NATIONAL INSTRUMENTS September 2017 1 WHAT

More information

Copyright 2000 N. AYDIN. All rights reserved. 1

Copyright 2000 N. AYDIN. All rights reserved. 1 Computer Architecture Prof. Dr. Nizamettin AYDIN naydin@yildiz.edu.tr http://www.yildiz.edu.tr/~naydin A virtual processor for understanding instruction cycle The Visible Virtual Machine (VVM) 1 2 The

More information

Compiler Construction D7011E

Compiler Construction D7011E Compiler Construction D7011E Lecture 8: Introduction to code generation Viktor Leijon Slides largely by Johan Nordlander with material generously provided by Mark P. Jones. 1 What is a Compiler? Compilers

More information

Module 5: Hash-Based Indexing

Module 5: Hash-Based Indexing Module 5: Hash-Based Indexing Module Outline 5.1 General Remarks on Hashing 5. Static Hashing 5.3 Extendible Hashing 5.4 Linear Hashing Web Forms Transaction Manager Lock Manager Plan Executor Operator

More information

a) Do exercise (5th Edition Patterson & Hennessy). Note: Branches are calculated in the execution stage.

a) Do exercise (5th Edition Patterson & Hennessy). Note: Branches are calculated in the execution stage. CS3410 Spring 2015 Problem Set 2 (version 3) Due Saturday, April 25, 11:59 PM (Due date for Problem-5 is April 20, 11:59 PM) NetID: Name: 200 points total. Start early! This is a big problem set. Problem

More information

Predictable Programming on a Precision Timed Architecture

Predictable Programming on a Precision Timed Architecture Predictable Programming on a Precision Timed Architecture Ben Lickly, Isaac Liu, Hiren Patel, Edward Lee, University of California, Berkeley Sungjun Kim, Stephen Edwards, Columbia University, New York

More information

Real-Time (Paradigms) (47)

Real-Time (Paradigms) (47) Real-Time (Paradigms) (47) Memory: Memory Access Protocols Tasks competing for exclusive memory access (critical sections, semaphores) become interdependent, a common phenomenon especially in distributed

More information

Data Link Layer: Overview, operations

Data Link Layer: Overview, operations Data Link Layer: Overview, operations Chapter 3 1 Outlines 1. Data Link Layer Functions. Data Link Services 3. Framing 4. Error Detection/Correction. Flow Control 6. Medium Access 1 1. Data Link Layer

More information

Single-Path Programming on a Chip-Multiprocessor System

Single-Path Programming on a Chip-Multiprocessor System Single-Path Programming on a Chip-Multiprocessor System Martin Schoeberl, Peter Puschner, and Raimund Kirner Vienna University of Technology, Austria mschoebe@mail.tuwien.ac.at, {peter,raimund}@vmars.tuwien.ac.at

More information

C Code Generation from the Giotto Model of Computation to the PRET Architecture

C Code Generation from the Giotto Model of Computation to the PRET Architecture C Code Generation from the Giotto Model of Computation to the PRET Architecture Shanna-Shaye Forbes Ben Lickly Man-Kit Leung Electrical Engineering and Computer Sciences University of California at Berkeley

More information

Practice Problems (Con t) The ALU performs operation x and puts the result in the RR The ALU operand Register B is loaded with the contents of Rx

Practice Problems (Con t) The ALU performs operation x and puts the result in the RR The ALU operand Register B is loaded with the contents of Rx Microprogram Control Practice Problems (Con t) The following microinstructions are supported by each CW in the CS: RR ALU opx RA Rx RB Rx RB IR(adr) Rx RR Rx MDR MDR RR MDR Rx MAR IR(adr) MAR Rx PC IR(adr)

More information

On Meaning Preservation of a Calculus of Records

On Meaning Preservation of a Calculus of Records On Meaning Preservation of a Calculus of Records Emily Christiansen and Elena Machkasova Computer Science Discipline University of Minnesota, Morris Morris, MN 56267 chri1101, elenam@morris.umn.edu Abstract

More information

Binary Code Analysis: Concepts and Perspectives

Binary Code Analysis: Concepts and Perspectives Binary Code Analysis: Concepts and Perspectives Emmanuel Fleury LaBRI, Université de Bordeaux, France May 12, 2016 E. Fleury (LaBRI, France) Binary Code Analysis: Concepts

More information

COMP171. Hashing.

COMP171. Hashing. COMP171 Hashing Hashing 2 Hashing Again, a (dynamic) set of elements in which we do search, insert, and delete Linear ones: lists, stacks, queues, Nonlinear ones: trees, graphs (relations between elements

More information

3.0 Instruction Set. 3.1 Overview

3.0 Instruction Set. 3.1 Overview 3.0 Instruction Set 3.1 Overview There are 16 different P8 instructions. Research on instruction set usage was the basis for instruction selection. Each instruction has at least two addressing modes, with

More information

Lecture 9: Bridging. CSE 123: Computer Networks Alex C. Snoeren

Lecture 9: Bridging. CSE 123: Computer Networks Alex C. Snoeren Lecture 9: Bridging CSE 123: Computer Networks Alex C. Snoeren Lecture 9 Overview Finishing up media access Ethernet Contention-free methods (rings) Moving beyond one wire Link technologies have limits

More information

What is a Compiler? Compiler Construction SMD163. Why Translation is Needed: Know your Target: Lecture 8: Introduction to code generation

What is a Compiler? Compiler Construction SMD163. Why Translation is Needed: Know your Target: Lecture 8: Introduction to code generation Compiler Construction SMD163 Lecture 8: Introduction to code generation Viktor Leijon & Peter Jonsson with slides by Johan Nordlander Contains material generously provided by Mark P. Jones What is a Compiler?

More information

ECE 4750 Computer Architecture, Fall 2017 T13 Advanced Processors: Branch Prediction

ECE 4750 Computer Architecture, Fall 2017 T13 Advanced Processors: Branch Prediction ECE 4750 Computer Architecture, Fall 2017 T13 Advanced Processors: Branch Prediction School of Electrical and Computer Engineering Cornell University revision: 2017-11-20-08-48 1 Branch Prediction Overview

More information

CPU Architecture system clock

CPU Architecture system clock CPU Architecture system clock Memory 64-bit adder Every CPU architecture is implemented using digital logic. In each cycle of the system clock, logic is executed and results are saved. System designers

More information

Q.1 Explain Computer s Basic Elements

Q.1 Explain Computer s Basic Elements Q.1 Explain Computer s Basic Elements Ans. At a top level, a computer consists of processor, memory, and I/O components, with one or more modules of each type. These components are interconnected in some

More information

Database Applications (15-415)

Database Applications (15-415) Database Applications (15-415) DBMS Internals- Part V Lecture 13, March 10, 2014 Mohammad Hammoud Today Welcome Back from Spring Break! Today Last Session: DBMS Internals- Part IV Tree-based (i.e., B+

More information

Hash Tables: Handling Collisions

Hash Tables: Handling Collisions CSE 373: Data Structures and Algorithms Hash Tables: Handling Collisions Autumn 208 Shrirang (Shri) Mare shri@cs.washington.edu Thanks to Kasey Champion, Ben Jones, Adam Blank, Michael Lee, Evan McCarty,

More information

Single Pass Connected Components Analysis

Single Pass Connected Components Analysis D. G. Bailey, C. T. Johnston, Single Pass Connected Components Analysis, Proceedings of Image and Vision Computing New Zealand 007, pp. 8 87, Hamilton, New Zealand, December 007. Single Pass Connected

More information

Parsing Scheme (+ (* 2 3) 1) * 1

Parsing Scheme (+ (* 2 3) 1) * 1 Parsing Scheme + (+ (* 2 3) 1) * 1 2 3 Compiling Scheme frame + frame halt * 1 3 2 3 2 refer 1 apply * refer apply + Compiling Scheme make-return START make-test make-close make-assign make- pair? yes

More information

CS311 Lecture: Pipelining, Superscalar, and VLIW Architectures revised 10/18/07

CS311 Lecture: Pipelining, Superscalar, and VLIW Architectures revised 10/18/07 CS311 Lecture: Pipelining, Superscalar, and VLIW Architectures revised 10/18/07 Objectives ---------- 1. To introduce the basic concept of CPU speedup 2. To explain how data and branch hazards arise as

More information

Chapter 5. A Closer Look at Instruction Set Architectures

Chapter 5. A Closer Look at Instruction Set Architectures Chapter 5 A Closer Look at Instruction Set Architectures Chapter 5 Objectives Understand the factors involved in instruction set architecture design. Gain familiarity with memory addressing modes. Understand

More information

Administration CS 412/413. Instruction ordering issues. Simplified architecture model. Examples. Impact of instruction ordering

Administration CS 412/413. Instruction ordering issues. Simplified architecture model. Examples. Impact of instruction ordering dministration CS 1/13 Introduction to Compilers and Translators ndrew Myers Cornell University P due in 1 week Optional reading: Muchnick 17 Lecture 30: Instruction scheduling 1 pril 00 1 Impact of instruction

More information

Giotto Domain. 5.1 Introduction. 5.2 Using Giotto. Edward Lee Christoph Kirsch

Giotto Domain. 5.1 Introduction. 5.2 Using Giotto. Edward Lee Christoph Kirsch Chapter 5 from: C. Brooks, E. A. Lee, X. Liu, S. Neuendorffer, Y. Zhao, H. Zheng "Heterogeneous Concurrent Modeling and Design in Java (Volume 3: Ptolemy II Domains)," Technical Memorandum UCB/ERL M04/17,

More information

Topics. Link Layer Services (more) Link Layer Services LECTURE 5 MULTIPLE ACCESS AND LOCAL AREA NETWORKS. flow control: error detection:

Topics. Link Layer Services (more) Link Layer Services LECTURE 5 MULTIPLE ACCESS AND LOCAL AREA NETWORKS. flow control: error detection: 1 Topics 2 LECTURE 5 MULTIPLE ACCESS AND LOCAL AREA NETWORKS Multiple access: CSMA/CD, CSMA/CA, token passing, channelization LAN: characteristics, i basic principles i Protocol architecture Topologies

More information

Computer Network (2012 Spring) Homework Answer. Chapter2

Computer Network (2012 Spring) Homework Answer. Chapter2 Computer Network (2012 Spring) Homework Answer Chapter2 Question 6 Suppose the following sequence of bits arrives over a link: 1101011111010111110010111110110 Show the resulting frame after any stuffed

More information

III Data Structures. Dynamic sets

III Data Structures. Dynamic sets III Data Structures Elementary Data Structures Hash Tables Binary Search Trees Red-Black Trees Dynamic sets Sets are fundamental to computer science Algorithms may require several different types of operations

More information

Cyber-Physical System Checkpointing and Recovery

Cyber-Physical System Checkpointing and Recovery Cyber-Physical System Checkpointing and Recovery Fanxin Kong, Meng Xu, James Weimer, Oleg Sokolsky, Insup Lee Department of Computer and Information Science University of Pennsylvania Cyber-Physical System

More information

Lecture 10: Nested Depth First Search, Counter- Example Generation Revisited, Bit-State Hashing, On-The-Fly Model Checking

Lecture 10: Nested Depth First Search, Counter- Example Generation Revisited, Bit-State Hashing, On-The-Fly Model Checking CS 267: Automated Verification Lecture 10: Nested Depth First Search, Counter- Example Generation Revisited, Bit-State Hashing, On-The-Fly Model Checking Instructor: Tevfik Bultan Buchi Automata Language

More information

Heap Management. Heap Allocation

Heap Management. Heap Allocation Heap Management Heap Allocation A very flexible storage allocation mechanism is heap allocation. Any number of data objects can be allocated and freed in a memory pool, called a heap. Heap allocation is

More information

CHAPTER TWO LITERATURE REVIEW

CHAPTER TWO LITERATURE REVIEW CHAPTER TWO LITERATURE REVIEW 2.1 Introduction. This chapter provides in detail about the multiple access technologies and the OCDMA system. It starts with a discussion on various existing multiple-access

More information

CS 261 Fall Mike Lam, Professor. x86-64 Control Flow

CS 261 Fall Mike Lam, Professor. x86-64 Control Flow CS 261 Fall 2016 Mike Lam, Professor x86-64 Control Flow Topics Condition codes Jumps Conditional moves Jump tables Motivation Can we translate the following C function to assembly, using only data movement

More information

Deallocation Mechanisms. User-controlled Deallocation. Automatic Garbage Collection

Deallocation Mechanisms. User-controlled Deallocation. Automatic Garbage Collection Deallocation Mechanisms User-controlled Deallocation Allocating heap space is fairly easy. But how do we deallocate heap memory no longer in use? Sometimes we may never need to deallocate! If heaps objects

More information

JavaCC Parser. The Compilation Task. Automated? JavaCC Parser

JavaCC Parser. The Compilation Task. Automated? JavaCC Parser JavaCC Parser The Compilation Task Input character stream Lexer stream Parser Abstract Syntax Tree Analyser Annotated AST Code Generator Code CC&P 2003 1 CC&P 2003 2 Automated? JavaCC Parser The initial

More information

Superscalar Processors Ch 13. Superscalar Processing (5) Computer Organization II 10/10/2001. New dependency for superscalar case? (8) Name dependency

Superscalar Processors Ch 13. Superscalar Processing (5) Computer Organization II 10/10/2001. New dependency for superscalar case? (8) Name dependency Superscalar Processors Ch 13 Limitations, Hazards Instruction Issue Policy Register Renaming Branch Prediction 1 New dependency for superscalar case? (8) Name dependency (nimiriippuvuus) two use the same

More information

Fault tolerant scheduling in real time systems

Fault tolerant scheduling in real time systems tolerant scheduling in real time systems Afrin Shafiuddin Department of Electrical and Computer Engineering University of Wisconsin-Madison shafiuddin@wisc.edu Swetha Srinivasan Department of Electrical

More information

CSE 380 Computer Operating Systems

CSE 380 Computer Operating Systems CSE 380 Computer Operating Systems Instructor: Insup Lee University of Pennsylvania Fall 2003 Lecture Note on Disk I/O 1 I/O Devices Storage devices Floppy, Magnetic disk, Magnetic tape, CD-ROM, DVD User

More information

// Class used to hold a list of Strings interpreted as web site addresses. public class URLList {

// Class used to hold a list of Strings interpreted as web site addresses. public class URLList { Question 1. The analysis of Ethernet performance in the paper by Metcalfe and Boggs makes the simplifying assumption that each computer will transmit during a given slot with probability 1 N where N is

More information

How to Improve FMI Compliance

How to Improve FMI Compliance 1 FMI Cross Check: How to Improve FMI Compliance Revisions: 28.07.15 V3.1 with all ticket changes proposed for voting at Steering Committee meeting (AJ) accepted by Steering Committee 28.7.2015 19.06.15

More information

MAC LAYER. Murat Demirbas SUNY Buffalo

MAC LAYER. Murat Demirbas SUNY Buffalo MAC LAYER Murat Demirbas SUNY Buffalo MAC categories Fixed assignment TDMA (Time Division), CDMA (Code division), FDMA (Frequency division) Unsuitable for dynamic, bursty traffic in wireless networks Random

More information

Intermediate Representations Part II

Intermediate Representations Part II Intermediate Representations Part II Types of Intermediate Representations Three major categories Structural Linear Hybrid Directed Acyclic Graph A directed acyclic graph (DAG) is an AST with a unique

More information

State Machine Diagrams

State Machine Diagrams State Machine Diagrams Introduction A state machine diagram, models the dynamic aspects of the system by showing the flow of control from state to state for a particular class. 2 Introduction Whereas an

More information

Multiple Variable Drag and Drop Demonstration (v1) Steve Gannon, Principal Consultant GanTek Multimedia

Multiple Variable Drag and Drop Demonstration (v1) Steve Gannon, Principal Consultant GanTek Multimedia Multiple Variable Drag and Drop Demonstration (v1) Steve Gannon, Principal Consultant GanTek Multimedia steve@gantekmultimedia.com Back Story An associate of mine, Marc Lee (a Flash coder and fellow Articulate

More information

Midterm Exam Solutions Amy Murphy 28 February 2001

Midterm Exam Solutions Amy Murphy 28 February 2001 University of Rochester Midterm Exam Solutions Amy Murphy 8 February 00 Computer Systems (CSC/56) Read before beginning: Please write clearly. Illegible answers cannot be graded. Be sure to identify all

More information

Hash Table and Hashing

Hash Table and Hashing Hash Table and Hashing The tree structures discussed so far assume that we can only work with the input keys by comparing them. No other operation is considered. In practice, it is often true that an input

More information

C09: Process Synchronization

C09: Process Synchronization CISC 7310X C09: Process Synchronization Hui Chen Department of Computer & Information Science CUNY Brooklyn College 3/29/2018 CUNY Brooklyn College 1 Outline Race condition and critical regions The bounded

More information