SIListra. Coded Processing in Medical Devices. Dr. Martin Süßkraut (TU-Dresden / SIListra Systems)
|
|
- Dennis Richards
- 5 years ago
- Views:
Transcription
1 SIListra making systems safer Coded Processing in Medical Devices Dr. Martin Süßkraut (TU-Dresden / SIListra Systems) martin.suesskraut@se.inf.tu-dresden.de Embedded goes Medical 5./6. Oct
2 SIListra making systems safer Mission: safer, less expensive safety critical system New Technology to detect execution errors 2
3 SIListra making systems safer Mission: IEC safer, less expensive safety critical system New Technology to detect execution errors 2
4 SIListra making systems safer Mission: IEC safer, less expensive safety critical system New Technology to detect execution errors Coded Processing 2
5 SIListra making systems safer Mission: IEC safer, less expensive safety critical system New Technology to detect execution errors Coded Processing 2
6 EXECUTION ERRORS Examples: Radio therapy device: Calculate wrong but lethal radiation dose Patient monitor: Don t raise an alarm when patient is in critical condition Reasons: Physical limits; hardware aging; design faults; interference 3
7 MOTIVATION: EXECUTION ERRORS Correct Software Hardware (e.g., CPU) 4
8 MOTIVATION: EXECUTION ERRORS a = 2 b = 3 Correct Software Hardware (e.g., CPU) 4
9 MOTIVATION: EXECUTION ERRORS a = 2 b = 3 Correct Software a + b Hardware (e.g., CPU) 4
10 MOTIVATION: EXECUTION ERRORS a = 2 b = 3 Correct Software a + b Hardware (e.g., CPU) = 5 4
11 MOTIVATION: EXECUTION ERRORS a = 2 b = 3 5 Correct Software a + b Hardware (e.g., CPU) = 5 4
12 MOTIVATION: EXECUTION ERRORS a = 2 b = 3 57 Correct Software a + b Hardware (e.g., CPU) = 75 4
13 MOTIVATION: EXECUTION ERRORS a = 2 b = 3 57 Not a SW failure; a HW failure Correct Software a + b Hardware (e.g., CPU) = 75 4
14 CLASSICAL APPROACH: TWO CHANNELS a = 2 b = 3 5 Software Hardware 5
15 CLASSICAL APPROACH: TWO CHANNELS a = 2 b = 3 5 a = 2 b = 3 5 Software Software Hardware Hardware 5
16 CLASSICAL APPROACH: TWO CHANNELS a = 2 b = 3 5 a = 2 b = 3 57 Software Software Hardware Hardware 5
17 CLASSICAL APPROACH: TWO CHANNELS twice the hardware do not detect design failures and interference 6
18 CODED PROCESSING: ONE CHANNEL a = 2 b = 3 5 Coded Software Hardware 7
19 CODED PROCESSING: ONE CHANNEL a = 2 b = 3 5 OK Coded Software Hardware 7
20 CODED PROCESSING: ONE CHANNEL a = 2 b = 3 75 Fail OK Coded Software Hardware 7
21 EXECUTION ERRORS Correct Program failure propagation failure propagation failure propagation Hardware Compiler Interference: OS/Middleware 8
22 AGENDA Software Coded Processing Arithmetic Codes SIListra Transformer Measurements 9
23 SOFTWARE CODED PROCESSING 10
24 HISTORY Foundation Forin s Vital Coded Processor (VCP) used by rail road industry in the 90s in France used by automation engineering however: no automatic transformation no broad programming language support 11
25 SOFTWARE CODED PROCESSING Input values I1, I2, I3,... Program O1, O2, O3,... Output values [Forin90] P. Forin, Vital Coded Microprocessor Priniciples and Application for various Transit Systems, in Control, Computers, Communication in Transportation, IFAC Symposia Series,
26 SOFTWARE CODED PROCESSING Input values Checksums S1, S2, S3,... Coded I1, I2, I3,... Program O1, O2, O3,... Output values [Forin90] P. Forin, Vital Coded Microprocessor Priniciples and Application for various Transit Systems, in Control, Computers, Communication in Transportation, IFAC Symposia Series,
27 WATCHDOG Coded Input Program Output Watchdog Pre-computed checksums 13
28 WATCHDOG Coded Checksums Input Program Output Watchdog Pre-computed checksums 13
29 PROTECTION Detects: Transient and permanent failures in processing unit (including memory) Systematic failures in processing unit (including memory) Systematic failures in Compiler, OS, and other SW running on processing unit 14
30 FAILURE MODEL Data flow failures faulty operation modified operand Control flow failures wrong jumps, wrong calls modified IP exchanged operand exchanged operation lost store [Forin90] P. Forin, Vital Coded Microprocessor Priniciples and Application for various Transit Systems, in Control, Computers, Communication in Transportation, IFAC Symposia Series,
31 TOOLS Transformer Transforms program Coded program calculates checksums at runtime 16
32 TOOLS Transformer Transforms program Coded program calculates checksums at runtime Checksums Calculator Pre-calculates checksum based on original program 16
33 ARITHMETIC CODES 17
34 ARITHMETIC CODES OVERVIEW domain of data words valid code word Figure by Ute Schiffel. 18
35 ARITHMETIC CODES OVERVIEW + domain of data words valid code word + valid operation Figure by Ute Schiffel. 18
36 ARITHMETIC CODES OVERVIEW + domain of data words valid code word + valid operation faulty operation Figure by Ute Schiffel. 18
37 ARITHMETIC CODES OVERVIEW + + domain of data words valid code word + valid operation faulty operation Figure by Ute Schiffel. 18
38 AN CODE Encode data: xc = A x Check: xc mod A 0 Encoded add: z = x + y zc = xc + yc = A (x + y) Example: zc = xc + yc + err zc mod A err [Forin90] P. Forin, Vital Coded Microprocessor Priniciples and Application for various Transit Systems, in Control, Computers, Communication in Transportation, IFAC Symposia Series,
39 ANB CODE Encode data: xc = A x + Bx Check: xc mod A Bx Encoded add: z = x + y zc = xc + yc = A (x + y) + (Bx + By) pre-computed: Bz = Bx + By Example: zc = xc - yc zc mod A Bx - By Bz [Forin90] P. Forin, Vital Coded Microprocessor Priniciples and Application for various Transit Systems, in Control, Computers, Communication in Transportation, IFAC Symposia Series,
40 TRANSFORMER 21
41 TRANSFORMER Coded Program (C) Original Program (C) Transformer Checksums [Schiffel09] Ute Schiffel, et al, AN-Encoding Compiler: Building Safety-Critical Systems with Commodity Hardware, The 28th International Conference on Computer Safety, Reliability and Security (SafeComp 2009), 2009 [Schiffel10] Ute Schiffel, et al., ANB- and ANBDmem-Encoding: Detecting Hardware Errors in Software, The 29th International Conference on Computer Safety, Reliability and Security (SafeComp 2010),
42 TRANSFORMER may be generated code Coded Program (C) Original Program (C) Transformer Checksums [Schiffel09] Ute Schiffel, et al, AN-Encoding Compiler: Building Safety-Critical Systems with Commodity Hardware, The 28th International Conference on Computer Safety, Reliability and Security (SafeComp 2009), 2009 [Schiffel10] Ute Schiffel, et al., ANB- and ANBDmem-Encoding: Detecting Hardware Errors in Software, The 29th International Conference on Computer Safety, Reliability and Security (SafeComp 2010),
43 C SUPPORT Datatypes: signed/unsigned char, short, integer (up to 32 bit) structs, arrays, pointer Operations: arithmetic, (bitwise) logic, integer comparisons, casts static/dynamic memory any conditional/unconditional control flow (while, for, dowhile, if, switch) function calls 23
44 C SUPPORT floating point currently encodable via soft float library function pointers currently unimplemented, because general not as safe as direct calls special support for often used libraries: e.g. integrals encode C implementations of these functions 24
45 COMPARISON TO FORIN S VCP more complete language support all integer arithmetic of C pointers, pointer arithmetic explicit control flow protection automatic transformation 25
46 CHECKSUMS SIMPLE EXAMPLE int foo (int x, int y, int z) { int u = x + y; int v = z - u; return v; } 26
47 CHECKSUMS SIMPLE EXAMPLE int c foo c (intx, c x, int inty, c y, int int z) c { z) { int c u = x + c y; y; int c v = z - c u; u; return v; } 26
48 CHECKSUMS SIMPLE EXAMPLE Known at compile-time: Bx By Bz int c foo c (intx, c x, int inty, c y, int int z) c { z) { int c u = x + c y; y; int c v = z - c u; u; return v; } 26
49 CHECKSUMS SIMPLE EXAMPLE Known at compile-time: Bx By Bz int c foo c (intx, c x, int inty, c y, int int z) c { z) { int c u = x + c y; y; int c v = z - c u; u; return v; } Calculated at compile-time: Bz - (Bx + By) 26
50 EXECUTION ERRORS Coded Correct Program detectable failure propagation failure propagation failure propagation Hardware Compiler Interference: OS/Middleware 27
51 MEASUREMENTS 28
52 SAFETY MEASUREMENTS reference execution 1000s of error injection executions: simulate execution errors compare output with reference execution count number of times output does not match 29
53 EXPERIMENTAL EVALUATION 30 Rate of Undetected Errors in % Unprotected Protected (AN) Protected (ANB) Protected (ANBD) [Schmitt10] André Schmitt et al., Encoded Processing (Poster), UBooth at Design, Automation & Test in Europe (DATE 2010),
54 SUMMARY SIListra Transformer / Coded Processing more safe (can detect HW design failures) less expensive (one channel) 31
55 ACKNOWLEDGEMENTS EXIST-Forschungstransfer 32
56 REFERENCES Papers [Forin90] P. Forin, Vital Coded Microprocessor Priniciples and Application for various Transit Systems, in Control, Computers, Communication in Transportation, IFAC Symposia Series, [Wappler07a] Ute Wappler and Christof Fetzer, Software Encoded Processing: Building Dependable Systems with Commodity Hardware, Lecture Notes in Computer Science on Computer Safety, Reliability and Security (SafeComp 2007), [Schiffel09] Ute Schiffel, Martin Süßkraut, and Christof Fetzer, AN-Encoding Compiler: Building Safety-Critical Systems with Commodity Hardware, The 28th International Conference on Computer Safety, Reliability and Security (SafeComp 2009), [Schiffel10] Ute Schiffel, André Schmitt, Martin Süßkraut, and Christof Fetzer, ANB- and ANBDmem-Encoding: Detecting Hardware Errors in Software, The 29th International Conference on Computer Safety, Reliability and Security (SafeComp 2010), [Schmitt10] André Schmitt, Ute Schiffel, and Martin Süßkraut, Encoded Processing (Poster), UBooth at Design, Automation & Test in Europe (DATE 2010), [Schiffel10a] Ute Schiffel, André Schmitt, Martin Süßkraut, and Christof Fetzer, Slice Your Bug: Debugging Error Detection Mechanisms using Error Injection Slicing, Eighth European Dependable Computing Conference (EDCC'10), [Schiffel10b] Ute Schiffel, et al., Software-Implemented Hardware Error Detection: Costs and Gains, The Third International Conference on Dependability, DEPEND 2010, Patents pending 33
57 Backup Slides 34
58 DISTRIBUTED SYSTEM Node A Node B Input Coded Program A Checksums + Output Coded Program B Pre-computed checksums 35
59 ADDITIONAL PROTECTION Detects modified data Can be extended to detect message reordering No need to encode communication stack (network protocol implementation, OS) 36
60 OTHER TOOLS Replicator similar to Transformer, but detects transient faults only automatically replicates any instruction and memory region in application improved version in development Evaluator error injection tool to evaluate safety related code independent of Transformer Preflight Tool estimates runtime costs of Transformer by statically analyzing code in development 37
61 CHECKSUMS List of random numbers Protect Data flow Control flow Memory, caches, busses, CPU 38
62 UNDER THE HOOD Implementation is based on compiler framework LLVM SIListra making systems safertransformer C-code C Front-end LLVM IR Transformer LLVM IR C back-end C-code 39
63 EVALUATOR Evaluations tool = Error Injector Injects Forin s error model modified operand faulty operation exchanged operand exchanged operation lost store 40
64 ADJUSTABLE SAFETY Concrete safety depends on failure model of hardware Approximation: functional bits: n (e.g., 16 or 32 bit) redundant bits: k (e.g., A = 11 k = 4) number of valid code words n Pundetected = = 2 -k number of possible words 2 n+k [Forin90] P. Forin, Vital Coded Microprocessor Priniciples and Application for various Transit Systems, in Control, Computers, Communication in Transportation, IFAC Symposia Series, 1990 [Wappler07a] Ute Wappler and Christof Fetzer, Software Encoded Processing: Building Dependable Systems with Commodity Hardware, Lecture Notes in Computer Science on Computer Safety, Reliability and Security (SafeComp 2007),
65 & clients (Fig. 3) 8 parallel servers & clients (Fig. 4) COSTS VS GAINS throughput relative to native execution etection 100% 90% 80% 70% 60% 50% 40% 30% 20% higher performance 10% better error detection 0% 0.1% 1% 10% 100% rate of undetected errors relative to native execution native SWIFT SWIFT ECF AN ANB ANBDmem [Schiffel10b] Ute Schiffel, et al., Software-Implemented Hardware Error Detection: Costs and Gains, The Third International Conference on Dependability, DEPEND 2010,
AN-Encoding Compiler: Building Safety-Critical Systems with Commodity Hardware
AN-Encoding Compiler: Building Safety-Critical Systems with Commodity Hardware Ute Schiffel Christof Fetzer Martin Süßkraut Technische Universität Dresden Institute for System Architecture ute.schiffel@inf.tu-dresden.de
More informationANB- and ANBDmem-Encoding: Detecting Hardware Errors in Software
ANB- and ANBDmem-Encoding: Detecting Hardware Errors in Software Ute Schiffel, André Schmitt, Martin Süßkraut, and Christof Fetzer Technische Universtät Dresden Department of Computer Science http://wwwse.inf.tu-dresden.de
More informationEliminating Single Points of Failure in Software Based Redundancy
Eliminating Single Points of Failure in Software Based Redundancy Peter Ulbrich, Martin Hoffmann, Rüdiger Kapitza, Daniel Lohmann, Reiner Schmid and Wolfgang Schröder-Preikschat EDCC May 9, 2012 SYSTEM
More informationSoftware-based Fault Tolerance Mission (Im)possible?
Software-based Fault Tolerance Mission Im)possible? Peter Ulbrich The 29th CREST Open Workshop on Software Redundancy November 18, 2013 System Software Group http://www4.cs.fau.de Embedded Systems Initiative
More informationHAFT Hardware-Assisted Fault Tolerance
HAFT Hardware-Assisted Fault Tolerance Dmitrii Kuvaiskii Rasha Faqeh Pramod Bhatotia Christof Fetzer Technische Universität Dresden Pascal Felber Université de Neuchâtel Hardware Errors in the Wild Online
More informationSoftware Techniques for Dependable Computer-based Systems. Matteo SONZA REORDA
Software Techniques for Dependable Computer-based Systems Matteo SONZA REORDA Summary Introduction State of the art Assertions Algorithm Based Fault Tolerance (ABFT) Control flow checking Data duplication
More informationOPERATING SYSTEM SUPPORT FOR REDUNDANT MULTITHREADING. Björn Döbel (TU Dresden)
OPERATING SYSTEM SUPPORT FOR REDUNDANT MULTITHREADING Björn Döbel (TU Dresden) Brussels, 02.02.2013 Hardware Faults Radiation-induced soft errors Mainly an issue in avionics+space 1 DRAM errors in large
More informationINITIALISING POINTER VARIABLES; DYNAMIC VARIABLES; OPERATIONS ON POINTERS
INITIALISING POINTER VARIABLES; DYNAMIC VARIABLES; OPERATIONS ON POINTERS Pages 792 to 800 Anna Rakitianskaia, University of Pretoria INITIALISING POINTER VARIABLES Pointer variables are declared by putting
More informationRobus tnes s and S ecurity Hardening of COTS S oftware Libraries
Department of Computer Science Institute for System Architecture, Systems-Engineering Group Robus tnes s and S ecurity Hardening of COTS S oftware Libraries Martin Süßkraut, Christof Fetzer martin.suesskraut@tu-dresden.de,
More informationPage 1. Today. Last Time. Is the assembly code right? Is the assembly code right? Which compiler is right? Compiler requirements CPP Volatile
Last Time Today Compiler requirements CPP Volatile Advanced C What C programs mean int my_loop (int base) { int index, count = 0; for (index = base; index < (base+10); index++) count++; urn count; my_loop:
More informationModule 2 - Part 2 DATA TYPES AND EXPRESSIONS 1/15/19 CSE 1321 MODULE 2 1
Module 2 - Part 2 DATA TYPES AND EXPRESSIONS 1/15/19 CSE 1321 MODULE 2 1 Topics 1. Expressions 2. Operator precedence 3. Shorthand operators 4. Data/Type Conversion 1/15/19 CSE 1321 MODULE 2 2 Expressions
More informationKESO Functional Safety and the Use of Java in Embedded Systems
KESO Functional Safety and the Use of Java in Embedded Systems Isabella S1lkerich, Bernhard Sechser Embedded Systems Engineering Kongress 05.12.2012 Lehrstuhl für Informa1k 4 Verteilte Systeme und Betriebssysteme
More informationIssues in Programming Language Design for Embedded RT Systems
CSE 237B Fall 2009 Issues in Programming Language Design for Embedded RT Systems Reliability and Fault Tolerance Exceptions and Exception Handling Rajesh Gupta University of California, San Diego ES Characteristics
More informationSafety and Reliability of Software-Controlled Systems Part 14: Fault mitigation
Safety and Reliability of Software-Controlled Systems Part 14: Fault mitigation Prof. Dr.-Ing. Stefan Kowalewski Chair Informatik 11, Embedded Software Laboratory RWTH Aachen University Summer Semester
More informationSafety Architecture Patterns
Tutorial: Safety Architecture Patterns Philip Koopman, Ph.D. These tutorials are a simplified introduction, and are not sufficient on their own to achieve system safety. You are responsible for the safety
More informationFAULT TOLERANT SYSTEMS
FAULT TOLERANT SYSTEMS http://www.ecs.umass.edu/ece/koren/faulttolerantsystems Part 18 Chapter 7 Case Studies Part.18.1 Introduction Illustrate practical use of methods described previously Highlight fault-tolerance
More informationCSE 431S Type Checking. Washington University Spring 2013
CSE 431S Type Checking Washington University Spring 2013 Type Checking When are types checked? Statically at compile time Compiler does type checking during compilation Ideally eliminate runtime checks
More informationCS110: PROGRAMMING LANGUAGE I
CS110: PROGRAMMING LANGUAGE I Computer Science Department Lecture 4: Java Basics (II) A java Program 1-2 Class in file.java class keyword braces {, } delimit a class body main Method // indicates a comment.
More informationA program execution is memory safe so long as memory access errors never occur:
A program execution is memory safe so long as memory access errors never occur: Buffer overflows, null pointer dereference, use after free, use of uninitialized memory, illegal free Memory safety categories
More informationPointers (continued), arrays and strings
Pointers (continued), arrays and strings 1 Last week We have seen pointers, e.g. of type char *p with the operators * and & These are tricky to understand, unless you draw pictures 2 Pointer arithmetic
More informationEuropean Conference on Nanoelectronics and Embedded Systems for Electric Mobility
European Conference on Nanoelectronics and Embedded Systems for Electric Mobility ecocity emotion 24-25 th September 2014, Erlangen, Germany Scalable Functional Safety Architecture for Electric Mobility
More informationTSW Reliability and Fault Tolerance
TSW Reliability and Fault Tolerance Alexandre David 1.2.05 Credits: some slides by Alan Burns & Andy Wellings. Aims Understand the factors which affect the reliability of a system. Introduce how software
More informationHardening LLVM with Random Testing
Hardening LLVM with Random Testing Xuejun Yang, Yang Chen Eric Eide, John Regehr {jxyang, chenyang, eeide, regehr}@cs.utah.edu University of Utah 11/3/2010 1 A LLVM Crash Bug int * p[2]; int i; for (...)
More informationNumber Systems for Computers. Outline of Introduction. Binary, Octal and Hexadecimal numbers. Issues for Binary Representation of Numbers
Outline of Introduction Administrivia What is computer architecture? What do computers do? Representing high level things in binary Data objects: integers, decimals, characters, etc. Memory locations (We
More informationArithmetic and Bitwise Operations on Binary Data
Arithmetic and Bitwise Operations on Binary Data CSCI 2400: Computer Architecture ECE 3217: Computer Architecture and Organization Instructor: David Ferry Slides adapted from Bryant & O Hallaron s slides
More informationImportant From Last Time
Important From Last Time Embedded C Pros and cons Macros and how to avoid them Intrinsics Interrupt syntax Inline assembly Today Advanced C What C programs mean How to create C programs that mean nothing
More informationLecture 12 Integers. Computer and Network Security 19th of December Computer Science and Engineering Department
Lecture 12 Integers Computer and Network Security 19th of December 2016 Computer Science and Engineering Department CSE Dep, ACS, UPB Lecture 12, Integers 1/40 Outline Data Types Representation Conversions
More informationSynchronization. CS61, Lecture 18. Prof. Stephen Chong November 3, 2011
Synchronization CS61, Lecture 18 Prof. Stephen Chong November 3, 2011 Announcements Assignment 5 Tell us your group by Sunday Nov 6 Due Thursday Nov 17 Talks of interest in next two days Towards Predictable,
More informationPage 1. Today. Important From Last Time. Is the assembly code right? Is the assembly code right? Which compiler is right?
Important From Last Time Today Embedded C Pros and cons Macros and how to avoid them Intrinsics Interrupt syntax Inline assembly Advanced C What C programs mean How to create C programs that mean nothing
More informationImportant From Last Time
Important From Last Time Embedded C Ø Pros and cons Macros and how to avoid them Intrinsics Interrupt syntax Inline assembly Today Advanced C What C programs mean How to create C programs that mean nothing
More informationPointers (continued), arrays and strings
Pointers (continued), arrays and strings 1 Last week We have seen pointers, e.g. of type char *p with the operators * and & These are tricky to understand, unless you draw pictures 2 Pointer arithmetic
More informationHardware Error Detection Using AN-Codes
Hardware Error Detection Using AN-Codes Dissertation zur Erlangung des akademischen Grades Doktoringenieur (Dr.-Ing.) vorgelegt an der Technischen Universität Dresden Fakultät Informatik eingereicht von
More informationMigration of SES to FPGA Based Architectural Concepts
Migration of SES to FPG Based rchitectural Concepts M. Steindl 1, J. Mottok 1, H. Meier 1,F. Schiller 2, M. Fruechtl 2 1 Regensburg University of pplied Sciences Department of Electronics and Information
More informationReliable Computing I
Instructor: Mehdi Tahoori Reliable Computing I Lecture 9: Concurrent Error Detection INSTITUTE OF COMPUTER ENGINEERING (ITEC) CHAIR FOR DEPENDABLE NANO COMPUTING (CDNC) National Research Center of the
More informationIntroduction to C++ with content from
Introduction to C++ with content from www.cplusplus.com 2 Introduction C++ widely-used general-purpose programming language procedural and object-oriented support strong support created by Bjarne Stroustrup
More informationAN-Encoding Compiler: Building Safety-Critical Systems with Commodity Hardware
AN-Encoding Compiler: Building Safety-Critical Systems with Commodity Hardware Christof Fetzer, Ute Schiffel, and Martin Süßkraut Technische Universtät Dresden Department of Computer Science http://wwwse.inf.tu-dresden.de
More informationQUIZ. What is wrong with this code that uses default arguments?
QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code
More informationCS24 Week 2 Lecture 1
CS24 Week 2 Lecture 1 Kyle Dewey Overview C Review Void pointers Allocation structs void* (Void Pointers) void* Like any other pointer, it refers to some memory address However, it has no associated type,
More informationA Bytecode Interpreter for Secure Program Execution in Untrusted Main Memory
A Bytecode Interpreter for Secure Program Execution in Untrusted Main Memory Maximilian Seitzer, Michael Gruhn, Tilo Müller Friedrich Alexander Universität Erlangen-Nürnberg https://www1.cs.fau.de Introduction
More informationElzar Triple Modular Redundancy using Intel AVX
Elzar Triple Modular Redundancy using Intel AVX Dmitrii Kuvaiskii Oleksii Oleksenko Pramod Bhatotia Christof Fetzer Pascal Felber Hardware Errors in the Wild Online services run in huge data centers 1
More informationArithmetic and Bitwise Operations on Binary Data
Arithmetic and Bitwise Operations on Binary Data CSCI 224 / ECE 317: Computer Architecture Instructor: Prof. Jason Fritts Slides adapted from Bryant & O Hallaron s slides 1 Boolean Algebra Developed by
More informationCOS 320. Compiling Techniques
Topic 5: Types COS 320 Compiling Techniques Princeton University Spring 2016 Lennart Beringer 1 Types: potential benefits (I) 2 For programmers: help to eliminate common programming mistakes, particularly
More informationIn Java we have the keyword null, which is the value of an uninitialized reference type
+ More on Pointers + Null pointers In Java we have the keyword null, which is the value of an uninitialized reference type In C we sometimes use NULL, but its just a macro for the integer 0 Pointers are
More informationMemory, Data, & Addressing I
Memory, Data, & Addressing I CSE 351 Autumn 2017 Instructor: Justin Hsia Teaching Assistants: Lucas Wotton Michael Zhang Parker DeWilde Ryan Wong Sam Gehman Sam Wolfson Savanna Yee Vinny Palaniappan http://xkcd.com/953/
More informationLecture 7: Instruction Set Architectures - IV
Lecture 7: Instruction Set Architectures - IV Last Time Register organization Memory issues (endian-ness, alignment, etc.) Today Exceptions General principles of ISA design Role of compiler Computer arithmetic
More informationTolerating Hardware Device Failures in Software. Asim Kadav, Matthew J. Renzelmann, Michael M. Swift University of Wisconsin Madison
Tolerating Hardware Device Failures in Software Asim Kadav, Matthew J. Renzelmann, Michael M. Swift University of Wisconsin Madison Current state of OS hardware interaction Many device drivers assume device
More informationProgramming Methodology
Spring 2009 Variables 2 Topics Components of a variable Name Assignment l value and r value Scope & Life time Arrays Constant variables Programming language constructs 3 types statements blocks procedures/functions
More informationOperating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst
Operating Systems CMPSCI 377 Spring 2017 Mark Corner University of Massachusetts Amherst Last Class: Intro to OS An operating system is the interface between the user and the architecture. User-level Applications
More informationProgram Verification. Aarti Gupta
Program Verification Aarti Gupta 1 Agenda Famous bugs Common bugs Testing (from lecture 6) Reasoning about programs Techniques for program verification 2 Famous Bugs The first bug: A moth in a relay (1945)
More informationIDE for medical device software development. Hyun-Do Lee, Field Application Engineer
IDE for medical device software development Hyun-Do Lee, Field Application Engineer Agenda SW Validation Functional safety certified tool IAR Embedded Workbench Code Analysis tools SW Validation Certifications
More informationBut first, encode deck of cards. Integer Representation. Two possible representations. Two better representations WELLESLEY CS 240 9/8/15
Integer Representation Representation of integers: unsigned and signed Sign extension Arithmetic and shifting Casting But first, encode deck of cards. cards in suits How do we encode suits, face cards?
More informationLecture Programming in C++ PART 1. By Assistant Professor Dr. Ali Kattan
Lecture 08-1 Programming in C++ PART 1 By Assistant Professor Dr. Ali Kattan 1 The Conditional Operator The conditional operator is similar to the if..else statement but has a shorter format. This is useful
More informationFault-Tolerant Computing
Fault-Tolerant Computing Dealing with Mid-Level Impairments Oct. 2007 Error Detection Slide 1 About This Presentation This presentation has been prepared for the graduate course ECE 257A (Fault-Tolerant
More informationOperating Systems (2INC0) 2018/19. Introduction (01) Dr. Tanir Ozcelebi. Courtesy of Prof. Dr. Johan Lukkien. System Architecture and Networking Group
Operating Systems (2INC0) 20/19 Introduction (01) Dr. Courtesy of Prof. Dr. Johan Lukkien System Architecture and Networking Group Course Overview Introduction to operating systems Processes, threads and
More informationCompiling Techniques
Lecture 10: Introduction to 10 November 2015 Coursework: Block and Procedure Table of contents Introduction 1 Introduction Overview Java Virtual Machine Frames and Function Call 2 JVM Types and Mnemonics
More information6.033 Lecture Fault Tolerant Computing 3/31/2014
6.033 Lecture 14 -- Fault Tolerant Computing 3/31/2014 So far what have we seen: Modularity RPC Processes Client / server Networking Implements client/server Seen a few examples of dealing with faults
More informationQUIZ How do we implement run-time constants and. compile-time constants inside classes?
QUIZ How do we implement run-time constants and compile-time constants inside classes? Compile-time constants in classes The static keyword inside a class means there s only one instance, regardless of
More informationASSEMBLY LANGUAGE MACHINE ORGANIZATION
ASSEMBLY LANGUAGE MACHINE ORGANIZATION CHAPTER 3 1 Sub-topics The topic will cover: Microprocessor architecture CPU processing methods Pipelining Superscalar RISC Multiprocessing Instruction Cycle Instruction
More informationECE 574 Cluster Computing Lecture 19
ECE 574 Cluster Computing Lecture 19 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 10 November 2015 Announcements Projects HW extended 1 MPI Review MPI is *not* shared memory
More informationVariables and literals
Demo lecture slides Although I will not usually give slides for demo lectures, the first two demo lectures involve practice with things which you should really know from G51PRG Since I covered much of
More informationECE 486/586. Computer Architecture. Lecture # 7
ECE 486/586 Computer Architecture Lecture # 7 Spring 2015 Portland State University Lecture Topics Instruction Set Principles Instruction Encoding Role of Compilers The MIPS Architecture Reference: Appendix
More informationMemory Safety for Embedded Devices with nescheck
Memory Safety for Embedded Devices with nescheck Daniele MIDI, Mathias PAYER, Elisa BERTINO Purdue University AsiaCCS 2017 Ubiquitous Computing and Security Sensors and WSNs are pervasive Small + cheap
More informationNew ARMv8-R technology for real-time control in safetyrelated
New ARMv8-R technology for real-time control in safetyrelated applications James Scobie Product manager ARM Technical Symposium China: Automotive, Industrial & Functional Safety October 31 st 2016 November
More informationLecture 10: Cache Coherence: Part I. Parallel Computer Architecture and Programming CMU , Spring 2013
Lecture 10: Cache Coherence: Part I Parallel Computer Architecture and Programming Cache design review Let s say your code executes int x = 1; (Assume for simplicity x corresponds to the address 0x12345604
More informationAn Overview to Compiler Design. 2008/2/14 \course\cpeg421-08s\topic-1a.ppt 1
An Overview to Compiler Design 2008/2/14 \course\cpeg421-08s\topic-1a.ppt 1 Outline An Overview of Compiler Structure Front End Middle End Back End 2008/2/14 \course\cpeg421-08s\topic-1a.ppt 2 Reading
More informationStructured Programming Using C++ Lecture 2 : Introduction to the C++ Language. Dr. Amal Khalifa. Lecture Contents:
Structured Programming Using C++ Lecture 2 : Introduction to the C++ Language Dr. Amal Khalifa Lecture Contents: Introduction to C++ Origins Object-Oriented Programming, Terms Libraries and Namespaces
More informationIntroduction to C++ Introduction. Structure of a C++ Program. Structure of a C++ Program. C++ widely-used general-purpose programming language
Introduction C++ widely-used general-purpose programming language procedural and object-oriented support strong support created by Bjarne Stroustrup starting in 1979 based on C Introduction to C++ also
More informationData Types (cont.) Administrative Issues. Academic Dishonesty. How do we detect plagiarism? Strongly Typed Languages. Type System
CSE 3302 Programming Languages Data Types (cont.) Chengkai Li Fall 2007 1 Administrative Issues Midterm Exam (in class) Tuesday, Oct. 16 th Schedule Change HW1 HW1 part1 & HW1 part2 Due at the same time,
More informationFrancesco Nidito. Programmazione Avanzata AA 2007/08
Francesco Nidito in the Programmazione Avanzata AA 2007/08 Outline 1 2 3 in the in the 4 Reference: Micheal L. Scott, Programming Languages Pragmatics, Chapter 7 What is a type? in the What is a type?
More informationSGXBounds Memory Safety for Shielded Execution
SGXBounds Memory Safety for Shielded Execution Dmitrii Kuvaiskii, Oleksii Oleksenko, Sergei Arnautov, Bohdan Trach, Pramod Bhatotia *, Pascal Felber, Christof Fetzer TU Dresden, * The University of Edinburgh,
More informationRemote Procedure Calls
CS 5450 Remote Procedure Calls Vitaly Shmatikov Abstractions Abstractions for communication TCP masks some of the pain of communicating over unreliable IP Abstractions for computation Goal: programming
More informationAssembly Language. Lecture 2 x86 Processor Architecture
Assembly Language Lecture 2 x86 Processor Architecture Ahmed Sallam Slides based on original lecture slides by Dr. Mahmoud Elgayyar Introduction to the course Outcomes of Lecture 1 Always check the course
More informationCSC C69: OPERATING SYSTEMS
CSC C69: OPERATING SYSTEMS Tutorial 1 Thursday, Jan 17, 2013 TA: Ioan Stefanovici (ioan@cs.toronto.edu) HOW DO YOU SUCCEED IN THIS COURSE? Show up to lectures & tutorials (way too much material) Work on
More informationIntroduction to C. Why C? Difference between Python and C C compiler stages Basic syntax in C
Final Review CS304 Introduction to C Why C? Difference between Python and C C compiler stages Basic syntax in C Pointers What is a pointer? declaration, &, dereference... Pointer & dynamic memory allocation
More informationStatic Semantics. Winter /3/ Hal Perkins & UW CSE I-1
CSE 401 Compilers Static Semantics Hal Perkins Winter 2009 2/3/2009 2002-09 Hal Perkins & UW CSE I-1 Agenda Static semantics Types Symbol tables General ideas for now; details later for MiniJava project
More informationLecture Conservative Garbage Collection. 3.2 Precise Garbage Collectors. 3.3 Other Garbage Collection Techniques
CMPSCI 691ST Systems Fall 2011 Lecture 3 Lecturer: Emery Berger Scribe: Nicolas Scarrci 3.1 Conservative Garbage Collection The Boehm collector is the first example of conservative garbage collection.
More informationComp 11 Lectures. Mike Shah. June 26, Tufts University. Mike Shah (Tufts University) Comp 11 Lectures June 26, / 57
Comp 11 Lectures Mike Shah Tufts University June 26, 2017 Mike Shah (Tufts University) Comp 11 Lectures June 26, 2017 1 / 57 Please do not distribute or host these slides without prior permission. Mike
More informationLecture 8: Pointer Arithmetic (review) Endianness Functions and pointers
CSE 30: Computer Organization and Systems Programming Lecture 8: Pointer Arithmetic (review) Endianness Functions and pointers Diba Mirza University of California, San Diego 1 Q: Which of the assignment
More informationPIC 10A Pointers, Arrays, and Dynamic Memory Allocation. Ernest Ryu UCLA Mathematics
PIC 10A Pointers, Arrays, and Dynamic Memory Allocation Ernest Ryu UCLA Mathematics Pointers A variable is stored somewhere in memory. The address-of operator & returns the memory address of the variable.
More informationAccelerating Stateflow With LLVM
Accelerating Stateflow With LLVM By Dale Martin Dale.Martin@mathworks.com 2015 The MathWorks, Inc. 1 What is Stateflow? A block in Simulink, which is a graphical language for modeling algorithms 2 What
More informationSystem Programming And C Language
System Programming And C Language Prof. Jin-soo Kim. (jinsookim@skku.edu) Pintos TA Jin-yeong, Bak. (dongdm@gmail.com) Kyung-min, Go. (gkm2164@gmail.com) 2010.09.28 1 Contents Important thing in system
More informationHacking in C. Pointers. Radboud University, Nijmegen, The Netherlands. Spring 2019
Hacking in C Pointers Radboud University, Nijmegen, The Netherlands Spring 2019 Allocation of multiple variables Consider the program main(){ char x; int i; short s; char y;... } What will the layout of
More informationECEN 449 Microprocessor System Design. Hardware-Software Communication. Texas A&M University
ECEN 449 Microprocessor System Design Hardware-Software Communication 1 Objectives of this Lecture Unit Learn basics of Hardware-Software communication Memory Mapped I/O Polling/Interrupts 2 Motivation
More informationHarvard School of Engineering and Applied Sciences CS 152: Programming Languages
Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Lecture 24 Thursday, April 19, 2018 1 Error-propagating semantics For the last few weeks, we have been studying type systems.
More informationConstant-time programming in C
Constant-time programming in C What s our goal? Goal: Write C programs that don t leak sensitive data Assumption: no explicit leaks E.g., writing secret data to public location Approach: constant-time
More informationunsigned char memory[] STACK ¼ 0x xC of address space globals function KERNEL code local variables
Graded assignment 0 will be handed out in section Assignment 1 Not that bad Check your work (run it through the compiler) Factorial Program Prints out ENTERING, LEAVING, and other pointers unsigned char
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 informationProgramming in C and C++
Programming in C and C++ Types, Variables, Expressions and Statements Neel Krishnaswami and Alan Mycroft Course Structure Basics of C: Types, variables, expressions and statements Functions, compilation
More informationCommercial-Off-the-shelf Hardware Transactional Memory for Tolerating Transient Hardware Errors
Commercial-Off-the-shelf Hardware Transactional Memory for Tolerating Transient Hardware Errors Rasha Faqeh TU- Dresden 19.01.2015 Dresden, 23.09.2011 Transient Error Recovery Motivation Folie Nr. 12 von
More information416 Distributed Systems. RPC Day 2 Jan 12, 2018
416 Distributed Systems RPC Day 2 Jan 12, 2018 1 Last class Finish networks review Fate sharing End-to-end principle UDP versus TCP; blocking sockets IP thin waist, smart end-hosts, dumb (stateless) network
More informationComputer Architecture and Organization. Instruction Sets: Addressing Modes and Formats
Computer Architecture and Organization Instruction Sets: Addressing Modes and Formats Addressing Modes Immediate Direct Indirect Register Register Indirect Displacement (Indexed) Stack Immediate Addressing
More informationSpecial Topics: Programming Languages
Lecture #23 0 V22.0490.001 Special Topics: Programming Languages B. Mishra New York University. Lecture # 23 Lecture #23 1 Slide 1 Java: History Spring 1990 April 1991: Naughton, Gosling and Sheridan (
More information18-600: Recitation #3
18-600: Recitation #3 Bomb Lab & GDB Overview September 12th, 2017 1 Today X86-64 Overview Bomb Lab Introduction GDB Tutorial 2 3 x86-64: Register Conventions Arguments passed in registers: %rdi, %rsi,
More informationProcesses. Johan Montelius KTH
Processes Johan Montelius KTH 2017 1 / 47 A process What is a process?... a computation a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other
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 informationContinued from previous lecture
The Design of C: A Rational Reconstruction: Part 2 Jennifer Rexford Continued from previous lecture 2 Agenda Data Types Statements What kinds of operators should C have? Should handle typical operations
More informationJin-Soo Kim Systems Software & Architecture Lab. Seoul National University. Integers. Spring 2019
Jin-Soo Kim (jinsoo.kim@snu.ac.kr) Systems Software & Architecture Lab. Seoul National University Integers Spring 2019 4190.308: Computer Architecture Spring 2019 Jin-Soo Kim (jinsoo.kim@snu.ac.kr) 2 A
More informationA process. the stack
A process Processes Johan Montelius What is a process?... a computation KTH 2017 a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other processes
More informationCOSC 6385 Computer Architecture. Instruction Set Architectures
COSC 6385 Computer Architecture Instruction Set Architectures Spring 2012 Instruction Set Architecture (ISA) Definition on Wikipedia: Part of the Computer Architecture related to programming Defines set
More informationA JVM for Soft-Error-Prone Embedded Systems
A JVM for Soft-Error-Prone Embedded Systems Isabella S)lkerich, Michael Strotz, Christoph Erhardt, Mar7n Hoffmann, Daniel Lohmann, Fabian Scheler, Wolfgang Schröder- Preikschat Department of Computer Science
More information