SIListra. Coded Processing in Medical Devices. Dr. Martin Süßkraut (TU-Dresden / SIListra Systems)

Size: px
Start display at page:

Download "SIListra. Coded Processing in Medical Devices. Dr. Martin Süßkraut (TU-Dresden / SIListra Systems)"

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 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 information

ANB- and ANBDmem-Encoding: Detecting Hardware Errors in Software

ANB- 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 information

Eliminating Single Points of Failure in Software Based Redundancy

Eliminating 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 information

Software-based Fault Tolerance Mission (Im)possible?

Software-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 information

HAFT Hardware-Assisted Fault Tolerance

HAFT 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 information

Software Techniques for Dependable Computer-based Systems. Matteo SONZA REORDA

Software 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 information

OPERATING SYSTEM SUPPORT FOR REDUNDANT MULTITHREADING. Björn Döbel (TU Dresden)

OPERATING 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 information

INITIALISING POINTER VARIABLES; DYNAMIC VARIABLES; OPERATIONS ON POINTERS

INITIALISING 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 information

Robus tnes s and S ecurity Hardening of COTS S oftware Libraries

Robus 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 information

Page 1. Today. Last Time. Is the assembly code right? Is the assembly code right? Which compiler is right? Compiler requirements CPP Volatile

Page 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 information

Module 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 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 information

KESO Functional Safety and the Use of Java in Embedded Systems

KESO 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 information

Issues in Programming Language Design for Embedded RT Systems

Issues 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 information

Safety and Reliability of Software-Controlled Systems Part 14: Fault mitigation

Safety 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 information

Safety Architecture Patterns

Safety 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 information

FAULT TOLERANT SYSTEMS

FAULT 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 information

CSE 431S Type Checking. Washington University Spring 2013

CSE 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 information

CS110: PROGRAMMING LANGUAGE I

CS110: 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 information

A 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: 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 information

Pointers (continued), arrays and strings

Pointers (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 information

European Conference on Nanoelectronics and Embedded Systems for Electric Mobility

European 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 information

TSW Reliability and Fault Tolerance

TSW 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 information

Hardening LLVM with Random Testing

Hardening 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 information

Number Systems for Computers. Outline of Introduction. Binary, Octal and Hexadecimal numbers. Issues for Binary Representation of Numbers

Number 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 information

Arithmetic and Bitwise Operations on Binary Data

Arithmetic 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 information

Important From Last Time

Important 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 information

Lecture 12 Integers. Computer and Network Security 19th of December Computer Science and Engineering Department

Lecture 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 information

Synchronization. CS61, Lecture 18. Prof. Stephen Chong November 3, 2011

Synchronization. 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 information

Page 1. Today. Important From Last Time. Is the assembly code right? Is the assembly code right? Which compiler is right?

Page 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 information

Important From Last Time

Important 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 information

Pointers (continued), arrays and strings

Pointers (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 information

Hardware Error Detection Using AN-Codes

Hardware 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 information

Migration of SES to FPGA Based Architectural Concepts

Migration 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 information

Reliable Computing I

Reliable 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 information

Introduction to C++ with content from

Introduction 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 information

AN-Encoding Compiler: Building Safety-Critical Systems with Commodity Hardware

AN-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 information

QUIZ. What is wrong with this code that uses default arguments?

QUIZ. 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 information

CS24 Week 2 Lecture 1

CS24 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 information

A Bytecode Interpreter for Secure Program Execution in Untrusted Main Memory

A 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 information

Elzar Triple Modular Redundancy using Intel AVX

Elzar 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 information

Arithmetic and Bitwise Operations on Binary Data

Arithmetic 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 information

COS 320. Compiling Techniques

COS 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 information

In Java we have the keyword null, which is the value of an uninitialized reference type

In 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 information

Memory, Data, & Addressing I

Memory, 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 information

Lecture 7: Instruction Set Architectures - IV

Lecture 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 information

Tolerating 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 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 information

Programming Methodology

Programming 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 information

Operating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst

Operating 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 information

Program Verification. Aarti Gupta

Program 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 information

IDE for medical device software development. Hyun-Do Lee, Field Application Engineer

IDE 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 information

But first, encode deck of cards. Integer Representation. Two possible representations. Two better representations WELLESLEY CS 240 9/8/15

But 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 information

Lecture Programming in C++ PART 1. By Assistant Professor Dr. Ali Kattan

Lecture 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 information

Fault-Tolerant Computing

Fault-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 information

Operating Systems (2INC0) 2018/19. Introduction (01) Dr. Tanir Ozcelebi. Courtesy of Prof. Dr. Johan Lukkien. System Architecture and Networking Group

Operating 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 information

Compiling Techniques

Compiling 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 information

6.033 Lecture Fault Tolerant Computing 3/31/2014

6.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 information

QUIZ 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? 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 information

ASSEMBLY LANGUAGE MACHINE ORGANIZATION

ASSEMBLY 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 information

ECE 574 Cluster Computing Lecture 19

ECE 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 information

Variables and literals

Variables 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 information

ECE 486/586. Computer Architecture. Lecture # 7

ECE 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 information

Memory Safety for Embedded Devices with nescheck

Memory 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 information

New ARMv8-R technology for real-time control in safetyrelated

New 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 information

Lecture 10: Cache Coherence: Part I. Parallel Computer Architecture and Programming CMU , Spring 2013

Lecture 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 information

An 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 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 information

Structured 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: 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 information

Introduction to C++ Introduction. Structure of a C++ Program. Structure of a C++ Program. C++ widely-used general-purpose programming language

Introduction 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 information

Data Types (cont.) Administrative Issues. Academic Dishonesty. How do we detect plagiarism? Strongly Typed Languages. Type System

Data 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 information

Francesco Nidito. Programmazione Avanzata AA 2007/08

Francesco 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 information

SGXBounds Memory Safety for Shielded Execution

SGXBounds 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 information

Remote Procedure Calls

Remote 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 information

Assembly Language. Lecture 2 x86 Processor Architecture

Assembly 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 information

CSC C69: OPERATING SYSTEMS

CSC 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 information

Introduction to C. Why C? Difference between Python and C C compiler stages Basic syntax in C

Introduction 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 information

Static Semantics. Winter /3/ Hal Perkins & UW CSE I-1

Static 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 information

Lecture Conservative Garbage Collection. 3.2 Precise Garbage Collectors. 3.3 Other Garbage Collection Techniques

Lecture 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 information

Comp 11 Lectures. Mike Shah. June 26, Tufts University. Mike Shah (Tufts University) Comp 11 Lectures June 26, / 57

Comp 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 information

Lecture 8: Pointer Arithmetic (review) Endianness Functions and pointers

Lecture 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 information

PIC 10A Pointers, Arrays, and Dynamic Memory Allocation. Ernest Ryu UCLA Mathematics

PIC 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 information

Accelerating Stateflow With LLVM

Accelerating 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 information

System Programming And C Language

System 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 information

Hacking in C. Pointers. Radboud University, Nijmegen, The Netherlands. Spring 2019

Hacking 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 information

ECEN 449 Microprocessor System Design. Hardware-Software Communication. Texas A&M University

ECEN 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 information

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages

Harvard 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 information

Constant-time programming in C

Constant-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 information

unsigned char memory[] STACK ¼ 0x xC of address space globals function KERNEL code local variables

unsigned 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 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

Programming in C and C++

Programming 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 information

Commercial-Off-the-shelf Hardware Transactional Memory for Tolerating Transient Hardware Errors

Commercial-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 information

416 Distributed Systems. RPC Day 2 Jan 12, 2018

416 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 information

Computer Architecture and Organization. Instruction Sets: Addressing Modes and Formats

Computer 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 information

Special Topics: Programming Languages

Special 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 information

18-600: Recitation #3

18-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 information

Processes. Johan Montelius KTH

Processes. 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 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

Continued from previous lecture

Continued 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 information

Jin-Soo Kim Systems Software & Architecture Lab. Seoul National University. Integers. Spring 2019

Jin-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 information

A process. the stack

A 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 information

COSC 6385 Computer Architecture. Instruction Set Architectures

COSC 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 information

A JVM for Soft-Error-Prone Embedded Systems

A 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