Presenter: Jyun-Yan Li Design Fault Directed Test Generation for Microprocessor Validation Deepak A. Mathaikutty, Sandeep K. Shukla FERMAT Lab, Virginia.

Slides:



Advertisements
Similar presentations
Embedded System, A Brief Introduction
Advertisements

Course Software Testing & Verification 2013/14 Wishnu Prasetya
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
44 nd DAC, June 4-8, 2007 Processor External Interrupt Verification Tool (PEVT) Fu-Ching Yang, Wen-Kai Huang and Ing-Jer Huang Dept. of Computer Science.
Program Representations. Representing programs Goals.
Presenter: Jyun-Yan Li A Software-Based Self-Test Methodology for On-Line Testing of Processor Caches G. Theodorou, N. Kranitis, A. Paschalis, D. Gizopoulos.
Detailed Design Kenneth M. Anderson Lecture 21
Representing programs Goals. Representing programs Primary goals –analysis is easy and effective just a few cases to handle directly link related things.
Aug. 24, 2007ELEC 5200/6200 Project1 Computer Design Project ELEC 5200/6200-Computer Architecture and Design Fall 2007 Vishwani D. Agrawal James J.Danaher.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Functional Coverage Driven Test Generation for Validation of Pipelined Processors P. Mishra and N. Dutt Proceedings of the Design, Automation and Test.
1 IRAM Testing / Verification Sam Williams UC Berkeley
Testing an individual module
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
Direction of analysis Although constraints are not directional, flow functions are All flow functions we have seen so far are in the forward direction.
Chapter 6 Memory and Programmable Logic Devices
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Testing Dr. Andrew Wallace PhD BEng(hons) EurIng
Precision Going back to constant prop, in what cases would we lose precision?
System/Software Testing
Structural Coverage Verilog code is available to help generate tests o Code can be analyzed statically and/or simulated Easier to detect “additive” design.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
CIS Computer Programming Logic
CMSC 345 Fall 2000 Unit Testing. The testing process.
Presenter: Jyun-Yan Li Specification-based Compaction of Directed Tests for Functional Validation of Pipelined Processors Heon-Mo Koo Intel Corporation,
Advanced Technology Center Slide 1 Requirements-Based Testing Dr. Mats P. E. Heimdahl University of Minnesota Software Engineering Center Dr. Steven P.
Presenter: Jyun-Yan Li Systematic Software-Based Self-Test for Pipelined Processors Mihalis Psarakis Dimitris Gizopoulos Miltiadis Hatzimihail Dept. of.
Software Logic Mutation Testing Presented by Gary Kaminski.
TMF1013 : Introduction To Computing Lecture 1 : Fundamental of Computer ComputerFoudamentals.
Some Course Info Jean-Michel Chabloz. Main idea This is a course on writing efficient testbenches Very lab-centric course: –You are supposed to learn.
Presenter : Ching-Hua Huang 2013/7/15 A Unified Methodology for Pre-Silicon Verification and Post-Silicon Validation Citation : 15 Adir, A., Copty, S.
Presenter: Jyun-Yan Li Effective Software-Based Self-Test Strategies for On-Line Periodic Testing of Embedded Processors Antonis Paschalis Department of.
Introduction to Software Testing Chapter 8.1 Building Testing Tools –Instrumentation Paul Ammann & Jeff Offutt
Computer Organization and Design Computer Abstractions and Technology
Property of Jack Wilson, Cerritos College1 CIS Computer Programming Logic Programming Concepts Overview prepared by Jack Wilson Cerritos College.
Algorithm Design.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
Chapter 7 Low-Level Programming Languages. 2 Chapter Goals List the operations that a computer can perform Discuss the relationship between levels of.
White Box Testing Arun Lakhotia University of Southwestern Louisiana P.O. Box Lafayette, LA 70504, USA
Logic Design / Processor and Control Units Tony Diep.
CS451 Lecture 10: Software Testing Yugi Lee STB #555 (816)
The Instruction Set Architecture. Hardware – Software boundary Java Program C Program Ada Program Compiler Instruction Set Architecture Microcode Hardware.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO CS 219 Computer Organization.
Condition Testing. Condition testing is a test case design method that exercises the logical conditions contained in a program module. A simple condition.
Dynamic Testing.
1 Using a Fault Hierarchy to Improve the Efficiency of DNF Logic Mutation Testing Gary Kaminski and Paul Ammann ICST 2009.
CML Path Selection based Branching for CGRAs ShriHari RajendranRadhika Thesis Committee : Prof. Aviral Shrivastava (Chair) Prof. Jennifer Blain Christen.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Computer Operation. Binary Codes CPU operates in binary codes Representation of values in binary codes Instructions to CPU in binary codes Addresses in.
Dynamic White-Box Testing What is code coverage? What are the different types of code coverage? How to derive test cases from control flows?
Review A program is… a set of instructions that tell a computer what to do. Programs can also be called… software. Hardware refers to… the physical components.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
CS223: Software Engineering Lecture 26: Software Testing.
UML (Unified Modeling Language)
On the Relation Between Simulation-based and SAT-based Diagnosis CMPE 58Q Giray Kömürcü Boğaziçi University.
Automatic Test Generation
Software Testing.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 4 Control Flow Testing
Software Engineering (CSI 321)
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Unified Modeling Language
Software Development Cycle
White-Box Testing Using Pex
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
COMP541 Datapaths I Montek Singh Mar 18, 2010.
Software Development Cycle
Chapter 4 The Von Neumann Model
Unit III – Chapter 3 Path Testing.
Presentation transcript:

Presenter: Jyun-Yan Li Design Fault Directed Test Generation for Microprocessor Validation Deepak A. Mathaikutty, Sandeep K. Shukla FERMAT Lab, Virginia Tech, Blacksburg Sreekumar V. Kodakara, David Lilja The University of Minnesota, Minneapolis Ajit Dingankar Validation Tools, Intel Corporation, Folsom Design, Automation & Test in Europe Conference & Exhibition, DATE '07

Functional validation of modern microprocessors is an important and complex problem. One of the problems in functional validation is the generation of test cases that has higher potential to find faults in the design. We propose a model based test generation framework that generates tests for design fault classes inspired from software validation. There are two main contributions in this paper. Firstly, we propose a microprocessor modeling and test generation framework that generates test suites to satisfy modified condition decision coverage (MCDC), a structural coverage metric that detects most of the classified design faults as well as the remaining faults not covered by MCDC. 2

Secondly, we show that there exists good correlation between types of design faults proposed by software validation and the errors/bugs reported in case studies on microprocessor validation. We demonstrate the framework by modeling and generating tests for the microarchitecture of VESPA, a 32-bit microprocessor. In the results section, we show that the tests generated using our framework's coverage directed approach detects the fault classes with 100% coverage, when compared to model-random test generation 3

Simulation is widely used to validate large system  Depend on the quality of tests  Coverage metric measures the quality 。 Software validation  Statement, branch and path coverage 。 State machine representation  State, transition and path coverage 。 Functionality Effectiveness of coverage directed test generation  Type of faults 。 Can occur  Strength of the coverage metric 。 Detect faults 4

5 coverage Micro architecture coverage [12] Micro architecture coverage [12] random Extended fault class [7] Extended fault class [7] Design Fault Directed Test Generation for Microprocessor Validation This paper: coverage of formal models [5] coverage of formal models [5] Graph-based [9] Graph-based [9] MCDC [6] MCDC [6] Generate assembler test program directly for PowerPC For superscaler processor Build graph model of processor and generate test program to detect fault 9 fault classes related to boolean expressions Strategy of coverage metric Functional coverage

Fault classExample Expression Negation Fault (ENF) Term Omission Fault (TOF) Term Negation Fault (TNF) Literal Omission Fault (LOF) Literal Insertion Fault (LIF) Literal Negation Fault (LNF) Literal Reference Fault (LRF) Disjunctive Operator Reference Fault (ORF[+]) Conjunctive Operator Reference Fault (ORF[-]) 6

Statement coverage  Invoke executable statement Branch coverage  Execute both the true and false Modified condition Decision Coverage (MCDC)  Test each of condition within a decision  Affect outcome of the decision independently  m conditions, m+1 test cases 7 The same with T2 The same with T1

Correlate the bug categories in [2, 13] and map into the fault class Detect all the design fault except LIF  None of the errors observed was classified as a LIF 8

Modeling language as a metamodel  Describe architectural and microarchitectural 9 Validate the Microcode Validate the RTL implementation Statement, branch, MCDC Generate golden result Simulation result

Processor is specified  Register/memory-level description 。 Registers, their relationship and memory schematic  Instruction set capture 。 Instruction behavior Construct  Function blocks, if-else block, statement sequence and loop, register map and memory layout  Ex: 10 Register map Register/memory reference or immediate value jump-if-not-zero (JNZ) instruction

Construct  Configure pipe stage, provide ports with memory and registers, insert instruction registers and describe the control logic  Combined to complex stages by basic components as MUX, ALU, INC, etc  Ex: 11 Instruction fetch stage Instruction memory Z PC Increment by 4 PC

Constraint Satisfaction Problem (CPS)  Build Program Flow Graph (PFG)  Static Single-Assignment(SSA) analysis for multiple incoming path  Coverage Constraint Generator (CCG) generates constrains for decisions Test Case Generator (TCG)  ILOG solver generates test case  Binary generator initializes registers, memory locations and variables 12

Convert the architectural and micro-architectural model into Program Flow Graph (PFG)  Architectural model 。 Function block -> hierarchical states 。 Statement -> state 。 If-else -> decision 。 Identifier, registers, memory location -> variables  Micro-architectural model 。 Basic components -> bunch of if-else sequences If a state with multiple incoming transition  Resolve in the Static Single-Assignment (SSA) analysis 13

JNZ instruction IF stage 14 variable decision state

Help CSP to generate constrains for complete run Focus on states with multiple incoming transitions  If no change the value 。 the state will be ignored 。 Insert additional decisions and variables  Ex: 15 SSA result SSA analysis Ignore S3 Rename variables

ILOG is a commercial solver designed for performance and scalability  Generate test case that satisfying every constraint variable  Ex: 16

Two set of inputs  Coverage annotation 。 expedite the reachability of the coverage goal 。 Setting the attribute MARK associated with a state and decision  Coverage type 。 Statement coverage 。 Branch coverage 。 MCDC 。 Design Fault coverage 17

18 Arrange D by graph depth Graph G Problematic decision point D Node d Find a path p form root to d Boolean operator? Remove the duplicate test cases N Y

The fault detection capability of MCDC is 7/9 classes coverage  Literal omission fault (LOF) can be satisfied by MCDC 。 Every literal will affect the output of decision 。 Ex:  Literal Reference Fault (LRF) coverage by LRF_list 。 A list of variables to tell CCG which variable can be replaced for resulting in a fault 。 If LRF_list is not provided, the CCG replaces every variabled 。 Lead to large set of test case 。 Recommend LRF_list with a variable and mark it 19

How many  test cases are generated 。 Not describes in the paper  Conditions in a decision 。 330 unique decisions, 400 unique conditions 。 1~10 conditions in a decision  Fault in each fault class 20

Environment  VESPA 32-bit processor, 5-stage pipeline  50 decisions are chosen and replaced randomly for LRF  The number of test cases are the same for each coverage metrics 21

A metamodel-based modeling framework to capture structure and behavior  Architecture – registers, ISA  Micro-architecture – pipeline structure, control logic TGF results in test case for covering design faults  CSP formulation  TCG My comment  Overview the test case generating flow for code coverage  Some algorithm is not specification 22