Unified Architectural Support for Soft-Error Protection or Software Bug Detection



Similar documents
Unified Architectural Support for Soft-Error Protection or Software Bug Detection

Anomaly-Based Bug Prediction, Isolation, and Validation: An Automated Approach for Software Debugging

Intel Pentium 4 Processor on 90nm Technology

Secure Program Execution via Dynamic Information Flow Tracking

Performance Characterization of SPEC CPU2006 Integer Benchmarks on x Architecture

Solution: start more than one instruction in the same clock cycle CPI < 1 (or IPC > 1, Instructions per Cycle) Two approaches:

A Methodology for Developing Simple and Robust Power Models Using Performance Monitoring Events

An Event-Driven Multithreaded Dynamic Optimization Framework

Combining Local and Global History for High Performance Data Prefetching

Instruction Isomorphism in Program Execution

Code Coverage Testing Using Hardware Performance Monitoring Support

Categories and Subject Descriptors C.1.1 [Processor Architecture]: Single Data Stream Architectures. General Terms Performance, Design.

OpenMP in Multicore Architectures

Big Data's Biggest Needs- Deep Analytics for Actionable Insights

Securing software by enforcing data-flow integrity

Secure Program Execution via Dynamic Information Flow Tracking

Secure Execution Via Program Shepherding

Precise and Accurate Processor Simulation

Execution Model Enforcement Via Program Shepherding

Understanding the Impact of Inter-Thread Cache Interference on ILP in Modern SMT Processors

INSTRUCTION LEVEL PARALLELISM PART VII: REORDER BUFFER

ARCHITECTURAL SUPPORT FOR SOFTWARE DEBUGGING

MICRO-ARCHITECTURAL TEMPERATURE MODELING USING PERFORMANCE COUNTERS. A Thesis in STS 402. Presented to

Scalable Distributed Register File

Scheduling on Heterogeneous Multicore Processors Using Architectural Signatures

A Predictive Model for Dynamic Microarchitectural Adaptivity Control

CAVA: Using Checkpoint-Assisted Value Prediction to Hide L2 Misses

Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language

High Efficiency Counter Mode Security Architecture via Prediction and Precomputation

DACOTA: Post-silicon Validation of the Memory Subsystem in Multi-core Designs. Presenter: Bo Zhang Yulin Shi

Combining Software and Hardware Monitoring for Improved Power and Performance Tuning

Overview. CISC Developments. RISC Designs. CISC Designs. VAX: Addressing Modes. Digital VAX

A single register, called the accumulator, stores the. operand before the operation, and stores the result. Add y # add y from memory to the acc

A Mechanism for Online Diagnosis of Hard Faults in Microprocessors

Computer Organization and Components

Run-Time Type Checking for Binary Programs

Lecture: Pipelining Extensions. Topics: control hazards, multi-cycle instructions, pipelining equations

Fine-Grained User-Space Security Through Virtualization. Mathias Payer and Thomas R. Gross ETH Zurich

Argus: Online Statistical Bug Detection

COMP 303 MIPS Processor Design Project 4: MIPS Processor Due Date: 11 December :59

Effective Use of Performance Monitoring Counters for Run-Time Prediction of Power


Software Obfuscation Scheme based on XOR Encoding Scheme

Hardware Supported Flexible Monitoring: Early Results

NetFlow probe on NetFPGA

I Control Your Code Attack Vectors Through the Eyes of Software-based Fault Isolation. Mathias Payer, ETH Zurich

OBJECT-ORIENTED programs are becoming more common

Efficient and Flexible Architectural Support for Dynamic Monitoring

Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2

A Performance Counter Architecture for Computing Accurate CPI Components

Verification and Validation of Software Components and Component Based Software Systems

1/20/2016 INTRODUCTION

The Effect of Input Data on Program Vulnerability

CPU Organization and Assembly Language

Tracking Down Software Bugs Using Automatic Anomaly Detection

Systems I: Computer Organization and Architecture

CLASS: Combined Logic Architecture Soft Error Sensitivity Analysis

CS:APP Chapter 4 Computer Architecture. Wrap-Up. William J. Taffe Plymouth State University. using the slides of

Chapter 01: Introduction. Lesson 02 Evolution of Computers Part 2 First generation Computers

Oracle Solaris Studio Code Analyzer

PROBLEMS #20,R0,R1 #$3A,R2,R4

HOMEWORK # 2 SOLUTIO

Multiprogramming Performance of the Pentium 4 with Hyper-Threading

Long-term Workload Phases: Duration Predictions and Applications to DVFS

Dynamic Thermal Management through Task Scheduling

Safe Memory-Leak Fixing for C Programs

On the Importance of Thread Placement on Multicore Architectures

Giving credit where credit is due

CloudCache: Expanding and Shrinking Private Caches

Computer Architecture TDTS10

LSN 2 Computer Processors

Instruction Set Architecture (ISA)

Between Mutual Trust and Mutual Distrust: Practical Fine-grained Privilege Separation in Multithreaded Applications

Data on Kernel Failures and Security Incidents

CS 6290 I/O and Storage. Milos Prvulovic

On Demand Loading of Code in MMUless Embedded System

CPU Performance Evaluation: Cycles Per Instruction (CPI) Most computers run synchronously utilizing a CPU clock running at a constant clock rate:

Analyis of Path Profiling Information Generated with Performance Monitoring Hardware

Effective ahead pipelining of instruction block address generation

Carlos Villavieja, Nacho Navarro Arati Baliga, Liviu Iftode

Strata: A Software Dynamic Translation Infrastructure

Scalable Dynamic Information Flow Tracking and its Applications

The Data Quality Continuum*

The Behavior of Efficient Virtual Machine Interpreters on Modern Architectures

11.1 inspectit inspectit

Selection of Techniques and Metrics

Cloud Computing. Up until now

Compiler-Assisted Binary Parsing

Týr: a dependent type system for spatial memory safety in LLVM

Evaluation of ESX Server Under CPU Intensive Workloads

Stream Processing on GPUs Using Distributed Multimedia Middleware

CSE 141L Computer Architecture Lab Fall Lecture 2

CHAPTER 7: The CPU and Memory

CS 61C: Great Ideas in Computer Architecture Virtual Memory Cont.

A Taxonomy to Enable Error Recovery and Correction in Software

UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180B Lab 7: MISP Processor Design Spring 1995

picojava TM : A Hardware Implementation of the Java Virtual Machine

Data Memory Alternatives for Multiscalar Processors

LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation

BugBench: Benchmarks for Evaluating Bug Detection Tools

Transcription:

Unified Architectural Support for Soft-Error Protection or Software Bug Detection Martin Dimitrov and Huiyang Zhou School of Electrical Engineering and Computer Science

Motivation It is a great challenge to build reliable computer systems with buggy software and unreliable hardware Software bugs account for 40% of system failures With technology scaling, transient faults are predicted to grow at least in proportion to the number of devices

Observation: Proposed Approach Soft-errors and software bugs manifest in similar ways. program localities can be used to detect abnormal behavior (soft-errors or bugs) during program execution. Unified Architectural Support: Utilize a type of value locality Limited Variance in Data Values (LVDV) to detect abnormal behavior A cache-like structure tracks LVDV locality and detects violations

Presentation Outline Using localities to detect abnormal behavior Limited variance in data values (LDVD) locality Proposed architectural design Locality based soft-error protection Locality based software-bug detection Summary

Using Locality to Detect Abnormal Behavior Execution results of instruction A: 20, 20, 20, 20,..., 33554452 Execution results of instruction B: 1, 2, 3 1, 2, 3... 1, 2, 3, 4 Violation of the constant or stride locality hints the possibility of an error, or a software bug.

Limited Variance in Data Values (LVDV) Variance between two values is defined as a simple XOR The variance specifies the fraction of bits which vary between the two values the rest of the bits do not change and can be protected

An Example of LVDV Locality Execution results of instruction A: 1, 60 00000000000000000000000000 111101 The result of 1 XOR 60

An Example of LVDV Locality Execution results of instruction A: 1, 60, 12 00000000000000000000000000 110000 The result of 60 XOR 12

An Example of LVDV Locality Execution results of instruction A: 1, 60, 12, 40 00000000000000000000000000 100100 The result of 12 XOR 40

An Example of LVDV Locality Execution results of instruction A: 1, 60, 12, 40, 2 00000000000000000000000000 101010 The result of 40 XOR 2

An Example of LVDV Locality Execution results of instruction A: 1, 60, 12, 40, 2,... No apparent pattern! However, the values are usually within a certain small range. 00000000000000000000000000 111111 portion of result bits protected by LVDV

An Example of LVDV Locality Execution results of instruction A: 1, 60, 12, 40, 2,..., 33554452 00000010000000000000000000 010110 The result of 2 XOR 33554452

LVDV Captures Region Locality Memory addresses produced by instruction A: 0x11112654, 0x11117838... 0x11111200, 0x11119088, 0x01119088 Heap memory addresses produced by instruction A exhibit no stride locality. 0000000000000000 1111111111111111 portion of result bits protected by LVDV

Proposed Architectural Support LVDV table PC Tag Confidence Encoded Variance Last Value The main structure in our architecture is an LVDV table.

Interaction of the LVDV table with the processor pipeline

Locality-Based Soft-Error Detection When an anomaly is detected, squash the pipeline as in a branch misprediction The anomaly is detected promptly and re-execution fixes the soft-error A single LVDV table can catch soft-errors in the computational logic, control logic such as decoder, renaming table, issue queue and operand selection logic

Benefits of Locality-Based Soft-Error Detection Provides information redundancy (no redundant execution required) Provides efficient, opportunistic protection of multiple hardware structures

Experimental Methodology Error injection into the Issue Queue and Functional Units Compare our approach to: Implicit Redundancy Through Reuse (IRTR) [Gomaa et al., ISCA 2005] Squash on L2-cache miss (SL2) [Weaver et al., ISCA 2004] Squash on Branch misprediction (BR-squash) [Wang et al., DSN 2005]

Strength of the LVDV Locality 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% Percentage of Protected Result Bits 1K entries 4k entries 2K entries 8K entries 50 % gap bzip2 gzip perl twolf vpr gcc mcf parser vortex ammp art equake mesa swim wupwise Average

Performance Overhead 35.00% 30.00% 25.00% 20.00% 17 % 0.3% 0.0% 0.0% 2.3% 0.5% 0.0% Performance Overheads 0.7% 31 % 0.0% 0.6% 0.0% 0.0% 0.0% 2.1% 2.1% 0.7% LVDV SL2 BR-squash 15.00% 0.0% 0.0% 10.00% 5.00% 0.00% gap bzip2 gzip perl twolf vpr gcc mcf parser vortex ammp art equake mesa swim wupwise H_Mean

Soft-Error Protection of Issue Queues 50% 45% 40% 35% Protection of Issue Queue Percent Errors Removed by LVDV Percent Errors Removed by SL2 Percent Errors Removed by BR-squash 28 % 30% 25% 20% 15% 10% 5% 0% gap bzip2 gzip perl twolf vpr gcc mcf parser vortex ammp art equake mesa swim wupwise G_Mean LVDV removes 28% of critical errors MTTF improvement of 39%

Soft-Error Protection of Functional Units 70% 60% 50% Protection of Functional Units Percent errors removed by LVDV Percent error removed by IRTR 42 % 40% 30% 20% 10% 0% gap bzip2 gzip perl twolf vpr gcc mcf parser vortex ammp art equake mesa swim wupwise G_Mean LVDV removes up to 61% of critical errors and 42% on average MTTF improvement of up to 156% and 72% on average

Locality-Based Software Bug Detection Training phase LVDV table learns invariance information from multiple successful program runs OR from a single long run. Bug detection phase LVDV table detects anomalies during the failing run Anomalies are reported as possible root-causes of a software bug Misses in the LVDV table are also signaled as new-code anomalies We used a 4K entries table and tracked the variance in every store instruction

Locality-Based Software Bug Detection Shown to pinpoint latent program bugs Can detect bugs, which do not violate any programming rules Our approach can be viewed as a hardware implementation of DIDUCE [Hangal et al, ICSE 2002] Hardware offers the following advantages: Performance efficiency Binary compatibility Runtime monitoring

Case Study Incorrect Bounds Checking char newname[max]; /* convert the filename */ for(i=0;i<strlen(original);i++){ /*bug*/ if( isupper( original[i] ) ){ newname[i]= tolower(original[i]); continue; } newname[i] = original[i]; /*detection*/ } newname[i] = '\0'; /*detection*/ A buffer overflow in polymorph-0.4.0

Case Study Warm-up Phase char newname[max]; /* convert the filename */ for(i=0;i<strlen(original);i++){ /*bug*/ if( isupper( original[i] ) ){ newname[i]= tolower(original[i]); continue; } newname[i] = original[i]; /*detection*/ } newname[i] = '\0'; /*detection*/ &newname[3]: 7fffaf33 &newname[6]: 7fffaf36 &newname[11]: 7fffaf3b &newname[2]: 7fffaf32 &newname[17]: 7fffaf41 &newname[9]: 7fffaf39 &newname[5]: 7fffaf35 &newname[16]: 7fffaf40 conf: 15 prev_result: 7fffaf40 encoded variance: 7

Case Study Detection Phase char newname[max]; &newname[85]: 7fffaf85 /* convert the filename */ for(i=0;i<strlen(original);i++){ /*bug*/ if( isupper( original[i] ) ){ newname[i]= tolower(original[i]); continue; } newname[i] = original[i]; /*detection*/ } newname[i] = '\0'; /*detection*/ conf: 15 encoded variance: 7 variance: 8

Summary of Results 4K LVDV provides similar bug detection capabilities as software approach DIDUCE Also similar number of false-positives as DIDUCE Polymorph bc Ncompress (input 1) ncompress (input 2) gzip DIDUCE 2 45 1 0 6 4K LVDV 2 54 1 0 6

Summary Soft-errors and software bugs manifest in similar ways during execution We can use localities to detect both Proposed mechanism protects multiple structures from soft-errors ( 39% and 72% MTTF of IQ and FU) Similar bug detection capabilities to DIDUCE (a software based bug detection scheme)