1 Verifying Architecture Jaein Jeong Johnathon Jamison This presentation will probably involve audience discussion, which will create action items. Use.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

System Integration and Performance
Lecturer PSOE Dan Garcia
Data Dependencies Describes the normal situation that the data that instructions use depend upon the data created by other instructions, or data is stored.
PROTOCOL VERIFICATION & PROTOCOL VALIDATION. Protocol Verification Communication Protocols should be checked for correctness, robustness and performance,
Wannabe Lecturer Alexandre Joly inst.eecs.berkeley.edu/~cs61c-te
Machine Independent Assembler Features
Programming Types of Testing.
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
Generation of highly parallel code for TigerSHARC processors An introduction This presentation will probably involve audience discussion, which will create.
CS 536 Spring Code generation I Lecture 20.
LAB 9 Simulator Chap 14 REED. Datapath Simulator accompanying the text is a datapath simulator a.k.a. the Knob & Switch Computer developed by Grant Braught.
A Type System for Expressive Security Policies David Walker Cornell University.
Memory & Storage Architecture Seoul National University Computer Architecture “ Bomb Lab Hints” 2nd semester, 2014 Modified version : The original.
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
CS252 Projects 2 nd Week Jaein Jeong Johnathon Jamison.
Group 5 Alain J. Percial Paula A. Ortiz Francis X. Ruiz.
CDSL Ventures Ltd KYC Compliance Process Verification of Documents Data Entry Modification in Data Entry Dispatch of Documents Printing Acknowledgement.
Graphical Tree-Based Scientific Calculator: CalcuWiz Will Ryan Christian Braunlich.
Other Features Index and table of contents Macros and VBA.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
COMP201 Computer Systems Exceptions and Interrupts.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Chapter 10 The Assembly Process. What Assemblers Do Translates assembly language into machine code. Assigns addresses to all symbolic labels (variables.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
GRID Event display for the HRD D. Protopopescu University of Glasgow, U.K. DESY, Hamburg, May 2005 This presentation will probably involve audience discussion,
Blackfin Array Handling Part 1 Making an array of Zeros void MakeZeroASM(int foo[ ], int N);
SilkTest 2008 R2 SP1: Silk4J Introduction. ConfidentialCopyright © 2008 Borland Software Corporation. 2 What is Silk4J? Silk4J enables you to create functional.
Final Presentation DigiSat Reliable Computer – Multiprocessor Control System, Part B. Niv Best, Shai Israeli Instructor: Oren Kerem, (Isaschar Walter)
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
ITCS 3181 Logic and Computer Systems 2015 B. Wilkinson Slides4-2.ppt Modification date: March 23, Procedures Essential ingredient of high level.
Overview of the Automated Build & Deployment Process Johnita Beasley Tuesday, April 29, 2008.
Chapter 7 Object Code Generation. Chapter 7 -- Object Code Generation2  Statements in 3AC are simple enough that it is usually no great problem to map.
Chapter One An Introduction to Programming and Visual Basic.
THE BOOK BANK MAKERERE UNIVERSITY LIBRARY This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Computer Organization Instruction Set Architecture (ISA) Instruction Set Architecture (ISA), or simply Architecture, of a computer is the.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
Electronic Engineering Dept.1 Final Year Project - Progress Presentation Wifi Controlled Robotics Mark Heneghan This presentation will probably involve.
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
The Assembly Process Computer Organization and Assembly Language: Module 10.
The Standford Hydra CMP  Lance Hammond  Benedict A. Hubbert  Michael Siu  Manohar K. Prabhu  Michael Chen  Kunle Olukotun Presented by Jason Davis.
UDP: User Datagram Protocol Chapter 12. Introduction Multiple application programs can execute simultaneously on a given computer and can send and receive.
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
Lecture 18 March 29, 2011 Formal Methods 3 CS 315 Spring Adapted from slides provided by Jason Hallstrom and Murali Sitaraman (Clemson)
Bond-Jini Interoperability Mathew Lowery
Continuous Random Variables
Overview Introduction General Register Organization Stack Organization
Assembler Design Options
Computer Architecture “Bomb Lab Hints”
واشوقاه إلى رمضان مرحباً رمضان
Microcoded CCU (Central Control Unit)
Continuous Random Variables
Overview of SHARC processor ADSP Program Flow and other stuff
This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items during.
Interactive Visual System
Final Presentation Wireless mouse over BLUETOOTH By: David Gabay
* From AMD 1996 Publication #18522 Revision E
* M. R. Smith 07/16/96 This presentation will probably involve audience discussion, which will create action items. Use PowerPoint.
Chapter 2: Operating-System Structures
Reference Counted Touchables Design
Overview of SHARC processor ADSP-2106X Memory Operations
This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items during.
Chapter 2: Operating-System Structures
* M. R. Smith 07/16/96 This presentation will probably involve audience discussion, which will create action items. Use PowerPoint.
Presentation transcript:

1 Verifying Architecture Jaein Jeong Johnathon Jamison This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items during your presentation In Slide Show, click on the right mouse button Select “Meeting Minder” Select the “Action Items” tab Type in action items as they come up Click OK to dismiss this box This will automatically create an Action Item slide at the end of your presentation with your points entered.

2 Introduction Processors are more vulnerable to transient errors due to small feature size. Can detect transient errors with more stable processors and execute instructions again if an error occurs. Overhead won't be high for errors occurring rarely.

3 Introduction (Cont.) DIVA: verifies execution each individual instruction with a second, slower. Our idea: a dual-processor verification system. Proof-carrying code: A proof of safety accompanies executable code. Our idea: executable code is annotated with invariants.

4 Assumptions We assume there are no permanent errors. Thus we need not worry about invariants failing always. So, processor can work correctly if it is verified by a more stable processor.

5 Assumptions (Cont.) We assume the processor operates correctly most of the time. Therefore it is reasonable to check for errors rarely. The overhead is not problematic, for errors occur rarely.

6 System Structure Implemented as two communicating processors. The main processor executes instructions and sends the verifier all its registers. If the verifier confirms the execution, the main continues to execute instructions. Otherwise, the main processor loads the old register values and re-executes its instructions.

7 System Structure (Cont.)

8 Programming for SimpleScalar Since gcc can not handle everything, we intervene at the assembly code level. After changing the assembly code, we compile it to object code. The message passing system calls qread and qwrite are not implemented in gcc. So, we insert the syscall instruction and pass arguments by explicitly filling registers.

9 Programming for SimpleScalar (Cont.) addiu $2,$0,258 la $4,MQO subu $5,$16,4 move $6,$0 syscall Writing a message to a queue $L2: addiu $2,$0,259 la $4,MQI addu $5,$sp,16 move $6,$0 syscall bne $7,$0,$L2 Reading a message from a queue.

10 Programming interface for C Assembly language programming is error prone and unproductive. We wrote a interface for C with macros and inline assembly. Since syscall is not accessible in C, we generate a “ jal syscall ” in assembly. A Perl script replaces it with “ syscall ”. Now we can compile the assembly code without further modification.

11 Multiprocessor Program Example long regs[32]; char msg[]="\006\000\000\000cool\n"; long nullmsg[]={0}; char MQI[]="\003min"; char MQO[]="\004mout"; … qwrite(MQO,msg,0,error); do { qread(length,MQI,regs,0,error); } while(error); …

12 Passing Invariants (1 st method) The main program sends the invariant instructions as a message. We enclosed the invariant instructions with.rdata and.text directives and insert the length of the message after.rdata. Then the main can send the instructions as a message. The verifying processor then can load its registers with it, and do a jal to the message that was sent.

13 Passing Invariants (2 nd method) Generate a verifying program specific to the main program. When running the main program, just send the the contents of registers and the invariant number. The verifying processor takes the invariant number, calculates the value of the invariant, and replies.

14 Passing Invariants (Cont.) A bit of a problem for the first method. The verifying program receives invariant instructions as data. Execution of those instructions would bring up the same issues as self-modifying code. Due to pitfalls of first method, we chose the second method.

15 Using Invariants We maintain two sets of registers in the verifier for roll back purposes. Not all registers must be sent to the verifier, just those needed for the invariant or possible rollback. Currently, creating the verifier requires careful inspection of the main program We hope to automate some of this.

16 Performance For best performance, the main processor should not check for the invariant reply immediately. Rather, check when the next invariant is reached, so to give time for verification. Then the read is done, and execution is rolled back or continued as appropriate.

17 Tidbits The message passing mechanism took time to understand. We found we could use the asm directive in gcc so hand modification of assembly was minimized. We encountered a couple bugs in SimpleScalar.

18 Future Work Additional logic for floating point registers, easily extended from what we have now. Memory rollback logic; this is more substantial, for we need to retire memory writes only on invariant confirmation. A program to generate the verifying program automatically.

19 Thoughts Seems like this is an energy intensive method of verification. Invariants are not easy to generate, and must be done by hand. There is a large amount of processing overhead.

20 Summary Decreasing feature size makes verification necessary. DIVA is on attempt to address the problem. We wrote programs for SimpleScalar. This showed that we can have one processor verify another with invariants.

21 Acknowledgement Mark Whitney: –Our work is based on the SimpleScalar multiprocessing extension, written by him. –He also helped us configure SimpleScalar and fixed bugs.