Stateful Real-Time Communication Schedules
|
|
- Marcus Gardner
- 5 years ago
- Views:
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
University of Pennsylvania ScholarlyCommons Departmental Papers (CIS) Department of Computer & Information Science April 2006 Network-Code Machine: Programmable Real- Time Communication Schedules Sebastian
More informationA 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 informationSchedulability 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 informationAtacama: 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 informationA 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 informationDistributed 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 informationMultiple 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 informationLecture 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 informationGlobal 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)
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 informationHardware 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 informationThe 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 informationAnalyzing 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 information2.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 informationMemory: 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 informationRegister 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 informationCHAPTER 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 informationContents 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 informationHashing. 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 informationModel 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 informationIntroducing 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 informationUnderstand 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 informationstructural 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 informationModule 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 informationCS 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 informationHave 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 informationUNIT 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 informationData 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 informationThe 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 informationwww.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 informationDATA 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 informationIntroduction 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 informationSleep/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 informationThe 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 informationVirtual 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 informationSOURCE 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 informationMAC 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 informationData 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 informationPractical 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 informationUML-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 informationGiotto. 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 informationCS 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 informationESSSg^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 informationProcess 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 informationAperiodic 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 informationResource-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 informationTiming 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 informationUsing 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 informationARTIST-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 informationAnnouncements: 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 information802.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 informationCopyright 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 informationCompiler 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 informationModule 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 informationa) 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 informationPredictable 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 informationReal-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 informationData 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 informationSingle-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 informationC 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 informationPractice 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 informationOn 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 informationBinary 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 informationCOMP171. 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 information3.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 informationLecture 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 informationWhat 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 informationECE 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 informationCPU 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 informationQ.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 informationDatabase 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 informationHash 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 informationSingle 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 informationParsing 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 informationCS311 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 informationChapter 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 informationAdministration 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 informationGiotto 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 informationTopics. 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 informationComputer 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 informationIII 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 informationCyber-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 informationLecture 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 informationHeap 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 informationCHAPTER 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 informationCS 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 informationDeallocation 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 informationJavaCC 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 informationSuperscalar 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 informationFault 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 informationCSE 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 {
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 informationHow 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 informationMAC 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 informationIntermediate 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 informationState 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 informationMultiple 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 informationMidterm 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 informationHash 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 informationC09: 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