Functional Coverage Driven Test Generation for Validation of Pipelined Processors P. Mishra and N. Dutt Proceedings of the Design, Automation and Test.

Slides:



Advertisements
Similar presentations
Analysis of Computer Algorithms
Advertisements

Data Dependencies Describes the normal situation that the data that instructions use depend upon the data created by other instructions, or data is stored.
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.
Presenter: Jyun-Yan Li Design Fault Directed Test Generation for Microprocessor Validation Deepak A. Mathaikutty, Sandeep K. Shukla FERMAT Lab, Virginia.
1 A few words about the quiz Closed book, but you may bring in a page of handwritten notes. –You need to know what the “core” MIPS instructions do. –I.
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.
Presenter : Yeh Chi-Tsai System-on-chip validation using UML and CWL Qiang Zhu 1, Ryosuke Oish 1, Takashi Hasegawa 2, Tsuneo Nakata 1 1 Fujitsu Laboratories.
Chapter 5: Computer Systems Organization Invitation to Computer Science, Java Version, Third Edition.
Instruction Level Parallelism (ILP) Colin Stevens.
Presenter : Shih-Tung Huang Tsung-Cheng Lin Kuan-Fu Kuo 2015/6/15 EICE team Model-Level Debugging of Embedded Real-Time Systems Wolfgang Haberl, Markus.
Architecture Description Languages for Programmable Embedded Systems P. Mishra and N. Dutt IEE Proc.-Comput. Digit. Tech., Vol. 152, No. 3, May 2005 Speaker:
Reference Book: Modern Compiler Design by Grune, Bal, Jacobs and Langendoen Wiley 2000.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
CPEN Digital System Design Chapter 10 – Instruction SET Architecture (ISA) © Logic and Computer Design Fundamentals, 4 rd Ed., Mano Prentice Hall.
Topic 6 -Code Generation Dr. William A. Maniatty Assistant Prof. Dept. of Computer Science University At Albany CSI 511 Programming Languages and Systems.
Class 9.1 Computer Architecture - HUJI Computer Architecture Class 9 Microprogramming.
The Processor Andreas Klappenecker CPSC321 Computer Architecture.
Pipelining By Toan Nguyen.
Group 5 Alain J. Percial Paula A. Ortiz Francis X. Ruiz.
Lecture 13 - Introduction to the Central Processing Unit (CPU)
1 Presenter: Ming-Shiun Yang Sah, A., Balakrishnan, M., Panda, P.R. Design, Automation & Test in Europe Conference & Exhibition, DATE ‘09. A Generic.
Instruction Sets and Pipelining Cover basics of instruction set types and fundamental ideas of pipelining Later in the course we will go into more depth.
ITEC 352 Lecture 11 ISA - CPU. ISA (2) Review Questions? HW 2 due on Friday ISA –Machine language –Buses –Memory.
CS 1308 Computer Literacy and the Internet Computer Systems Organization.
Presenter: Jyun-Yan Li Specification-based Compaction of Directed Tests for Functional Validation of Pipelined Processors Heon-Mo Koo Intel Corporation,
Basic Structure of Computer Computer Architecture Lecture – 2.
Presenter: Jyun-Yan Li Systematic Software-Based Self-Test for Pipelined Processors Mihalis Psarakis Dimitris Gizopoulos Miltiadis Hatzimihail Dept. of.
Chapter 5: Computer Systems Organization Invitation to Computer Science, Java Version, Third Edition.
1 Computer Organization Today: First Hour: Computer Organization –Section 11.3 of Katz’s Textbook –In-class Activity #1 Second Hour: Test Review.
Implementation of a Stored Program Computer ITCS 3181 Logic and Computer Systems 2014 B. Wilkinson Slides2.ppt Modification date: Oct 16,
Presenter: Jyun-Yan Li Effective Software-Based Self-Test Strategies for On-Line Periodic Testing of Embedded Processors Antonis Paschalis Department of.
Week 2.  Understand what the processor is and what it does.  Execute basic LMC programs.  Understand how CPU characteristics affect performance.
Advanced Computer Architecture 0 Lecture # 1 Introduction by Husnain Sherazi.
3 rd Nov CSV881: Low Power Design1 Power Estimation and Modeling M. Balakrishnan.
Section one revision:1. Computer Systems To be able to Identify and describe computer systems To demonstrate an understanding of the Central Processing.
Yun-Chung Yang SimTag: Exploiting Tag Bits Similarity to Improve the Reliability of the Data Caches Jesung Kim, Soontae Kim, Yebin Lee 2010 DATE(The Design,
1 Instruction Set Architecture (ISA) Alexander Titov 10/20/2012.
Module : Algorithmic state machines. Machine language Machine language is built up from discrete statements or instructions. On the processing architecture,
CDA 3101 Fall 2013 Introduction to Computer Organization
IMPLEMENTATION OF MIPS 64 WITH VERILOG HARDWARE DESIGN LANGUAGE BY PRAMOD MENON CET520 S’03.
ECE 353 Lab 2 Pipeline Simulator. Aims Further experience in C programming Handling strings Further experience in the use of assertions Reinforce concepts.
CS 1308 Computer Literacy and the Internet. Objectives In this chapter, you will learn about:  The components of a computer system  Putting all the.
1 Copyright  2001 Pao-Ann Hsiung SW HW Module Outline l Introduction l Unified HW/SW Representations l HW/SW Partitioning Techniques l Integrated HW/SW.
ALU (Continued) Computer Architecture (Fall 2006).
Finite State Machines (FSM) OR Finite State Automation (FSA) - are models of the behaviors of a system or a complex object, with a limited number of defined.
3/12/2013Computer Engg, IIT(BHU)1 CONCEPTS-1. Pipelining Pipelining is used to increase the speed of processing It uses temporal parallelism In pipelining,
CML Path Selection based Branching for CGRAs ShriHari RajendranRadhika Thesis Committee : Prof. Aviral Shrivastava (Chair) Prof. Jennifer Blain Christen.
Whole Test Suite Generation. Abstract Not all bugs lead to program crashes, and not always is there a formal specification to check the correctness of.
MIPS Processor.
CDA 3101 Spring 2016 Introduction to Computer Organization Microprogramming and Exceptions 08 March 2016.
CPIT Program Execution. Today, general-purpose computers use a set of instructions called a program to process data. A computer executes the.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ read/write and clock inputs Sequence of control signal combinations.
Cs498dm Software Testing Darko Marinov January 24, 2012.
Software Testing.
CS1251 Computer Architecture
ECE 353 Lab 3 Pipeline Simulator
Gabor Madl Ph.D. Candidate, UC Irvine Advisor: Nikil Dutt
Superscalar Processors & VLIW Processors
Computer Organization “Central” Processing Unit (CPU)
Software Testing (Lecture 11-a)
Figure 8.1 Architecture of a Simple Computer System.
Topic 5: Processor Architecture Implementation Methodology
Chapter 5: Computer Systems Organization
Control unit extension for data hazards
Data Dependence Distances
Processor: Multi-Cycle Datapath & Control
Course Outline for Computer Architecture
*Qiang Zhu Fujitsu Laboratories LTD. Japan
Presentation transcript:

Functional Coverage Driven Test Generation for Validation of Pipelined Processors P. Mishra and N. Dutt Proceedings of the Design, Automation and Test in Europe Conference and Exhibition, Vol. 2, pp. 678 – 683, 2005 Speaker: Wen-Kai Huang

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 2/22 Abstract  Functional verification of microprocessors is one of the most complex and expensive tasks in the current system-on-chip design process. A significant bottleneck in the validation of such systems is the lack of a suitable functional coverage metric. This paper presents a functional coverage based test generation technique for pipelined architectures. The proposed methodology makes three important contributions. First, a general graph-theoretic model is developed that can capture the structure and behavior (instruction-set) of a wide variety of pipelined processors. Second, we propose a functional fault model that is used to define the functional coverage for pipelined architectures. Finally, test generation procedures are presented that accept the graph model of the architecture as input and generate test programs to detect all the faults in the functional fault model. Our experimental results on two pipelined processor models demonstrate that the number of test programs generated by our approach to obtain a fault coverage is an order of magnitude less than those generated by traditional random or constrained- random test generation techniques.

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 3/22 What’s the Problem  Functional validation of microprocessors is one of the most complex and expensive tasks in SOC design  Code coverage measures are commonly used  Statement coverage  Branch coverage  Condition coverage  Path coverage  FSM coverage  However, these measures do not have any direct relationship to functionality of the device

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 4/22 Related Works  Simulation is the most widely used form Random (constrained-random) test programs Directed test programs  Many techniques have been proposed for automatic generation of test programs [1, 4, 9, 11, 12, 16, 7, 3, 8, 6, 10, 13, 2, 14, 15].  However, these previous works do not  Provide a comprehensive metric to measure the coverage of the pipeline interactions, or  Describe functional fault models for pipelined architectures, use it to define functional coverage

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 5/22 Main Ideas  This paper makes three important contributions  Use general graph-theoretic model to capture the structure and behavior of pipelined processors  Propose a functional fault model for functional coverage measurements  Design an automatic test generation that accept the graph model as input and generate test programs as output

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 6/22 Modeling for Processor Structure  Modeled as a graph  Components  nodes Units (e.g. ALUs) Storages (e.g. register files)  Connectivity  edges Pipeline edges Data transfer edges

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 7/22 Example of Structure Graph

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 8/22 Modeling for Instruction Behavior  Also use the graph model  Fields of each operation  nodes Opcode Argument  Orderings between the fields  edges Syntactical ordering Execution ordering

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 9/22 Example of Behavior Graph

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 10/22 Mapping between Structure and Behavior  unit-to-opcode (opcode-to-unit)  Maps unit nodes in structure graph to opcode nodes in behavior graph  Example  Unit Fetch maps to opcodes {ADD, STORE}  Unit ALU maps to opcode {ADD}  Unit AddrCalc maps to opcode {STORE}

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 11/22 Functional Fault Models  Register Read/Write Model  Operation Execution Model  Execution Path Model  Pipeline Execution Model

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 12/22 Fault Model for Register Read/Write  All registers should be written and read correctly  If V Ri is written in register Ri and read back, the output should be V Ri. In the presence of a fault, output in not equal to V Ri  Coverage Estimation  A fault in this model is covered if the register is written first and read later

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 13/22 Test Generation for Register Read/Write

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 14/22 Fault Model for Operation Execution  All operations must execute correctly  Let val i, where val i = f opcodei (src1,src2,…), denote the result of computing the operation “opecode i dest, src1, src2, …”.  The destination will contain the value val i. Under a fault, the destination is not equal to val i  Coverage Estimation  A fault in this model is covered if the operation is performed, and the result of the computation is read

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 15/22 Test Generation for Operation Execution

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 16/22 Fault Model for Execution Path  Execution Path (ep)  For an operation, the activated pipeline path (pp) with its data-transfer paths (dp)  An execution path ep opi is faulty if it produces incorrect result during execution of operation opi  Coverage Estimation  A fault in this model is covered if the execution path is activated, and the result of the computation is read

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 17/22 Test Generation for Execution Path

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 18/22 Fault Model for Pipeline Execution  A pipeline is faulty if it produces incorrect results due to execution of multiple operations in the pipeline  Stall sets  Exception sets  Pipeline interactions  Coverage Estimation  A fault in this model is covered if the fault is activated due to execution of multiple operations in the pipeline, and the result of the computation is read

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 19/22 Test Generation for Pipeline Execution

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 20/22 Case Study  Apply the proposed methodology on two architectures  VLIW DLX  LEON2 (SPARC V8)  Experimental Setup  Use Specman Elite ‘e’ language to implement executable specification  Use the propsed methodology to generate test programs  Apply the programs on the RTL codes and specifications, and compare the results

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 21/22 Experimental Results

2005/8/22 Functional Coverage Driven Test Generation for Validation of Pipelined Processors 22/22 Conclusions  Functional verification of microprocessors is one of the most complex and expensive tasks in the SOC design process  The three contributions of this paper  A general graph-model for structure and behavior modeling  A functional fault model used in defining the functional coverage  An test generation procedures were presented