An Approach to Test Programs Generation for Microprocessors Based on Pipeline Hazards Templates Alexander Kamkin and Dmitry Vorobyev Institute for System.

Slides:



Advertisements
Similar presentations
Chapter 2: Data Manipulation
Advertisements

Machine cycle.
Lecture 4: CPU Performance
Pipelining (Week 8).
UQ: Explain in brief integer instruction pipeline stages of Pentium
Final Project : Pipelined Microprocessor Joseph Kim.
EZ-COURSEWARE State-of-the-Art Teaching Tools From AMS Teaching Tomorrow’s Technology Today.
RISC and Pipelining Prof. Sin-Min Lee Department of Computer Science.
Lecture Objectives: 1)Define pipelining 2)Calculate the speedup achieved by pipelining for a given number of instructions. 3)Define how pipelining improves.
ELEN 468 Advanced Logic Design
CMPT 334 Computer Organization
Microprocessor.  The CPU of Microcomputer is called microprocessor.  It is a CPU on a single chip (microchip).  It is called brain or heart of the.
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.
S. Barua – CPSC 440 CHAPTER 6 ENHANCING PERFORMANCE WITH PIPELINING This chapter presents pipelining.
Midterm Wednesday Chapter 1-3: Number /character representation and conversion Number arithmetic Combinational logic elements and design (DeMorgan’s Law)
CSCE 212 Quiz 9 – 3/30/11 1.What is the clock cycle time based on for single-cycle and for pipelining? 2.What two actions can be done to resolve data hazards?
DLX Instruction Format
11/11/05ELEC CISC (Complex Instruction Set Computer) Veeraraghavan Ramamurthy ELEC 6200 Computer Architecture and Design Fall 2005.
Appendix A Pipelining: Basic and Intermediate Concepts
Pipelining By Toan Nguyen.
Lect 13-1 Lect 13: and Pentium. Lect Microprocessor Family  Microprocessor  Introduced in 1989  High Integration  On-chip 8K.
SUPERSCALAR EXECUTION. two-way superscalar The DLW-2 has two ALUs, so it’s able to execute two arithmetic instructions in parallel (hence the term two-way.
CPU Fetch/Execute Cycle
Parul Polytechnic Institute Subject Code : Name Of Subject : Microprocessor and assembly language programming Name of Unit : Introduction to Microprossor.
RISC:Reduced Instruction Set Computing. Overview What is RISC architecture? How did RISC evolve? How does RISC use instruction pipelining? How does RISC.
MicroTESK: An Extendable Framework for Test Program Generation Alexander Kamkin, Tatiana Sergeeva, Andrei Tatarnikov, Artemiy Utekhin {kamkin, leonsia,
Contract Specification of Pipelined Designs Alexander Kamkin Institute for System Programming of RAS
1 Pipelining Reconsider the data path we just did Each instruction takes from 3 to 5 clock cycles However, there are parts of hardware that are idle many.
CS1104 – Computer Organization PART 2: Computer Architecture Lecture 12 Overview and Concluding Remarks.
The Central Processing Unit (CPU) and the Machine Cycle.
Pipelining Enhancing Performance. Datapath as Designed in Ch. 5 Consider execution of: lw $t1,100($t0) lw $t2,200($t0) lw $t3,300($t0) Datapath segments.
Pipeline Hazards. CS5513 Fall Pipeline Hazards Situations that prevent the next instructions in the instruction stream from executing during its.
Processor Types and Instruction Sets CS 147 Presentation by Koichiro Hongo.
Computer Structure & Architecture 7b - CPU & Buses.
Using Cycle-Accurate Contract Specifications for Testing Hardware Models Alexander Kamkin Institute for System Programming of RAS
Computer Organization Rabie A. Ramadan Lecture 3.
Pentium Architecture Arithmetic/Logic Units (ALUs) : – There are two parallel integer instruction pipelines: u-pipeline and v-pipeline – The u-pipeline.
MicroTESK: Automation of Test Program Generation for Microprocessors Alexander Kamkin Institute for System Programming of the Russian.
Different Microprocessors Tamanna Haque Nipa Lecturer Dept. of Computer Science Stamford University Bangladesh.
LECTURE 7 Pipelining. DATAPATH AND CONTROL We started with the single-cycle implementation, in which a single instruction is executed over a single cycle.
Simple ALU How to perform this C language integer operation in the computer C=A+B; ? The arithmetic/logic unit (ALU) of a processor performs integer arithmetic.
11 Pipelining Kosarev Nikolay MIPT Oct, Pipelining Implementation technique whereby multiple instructions are overlapped in execution Each pipeline.
10/11: Lecture Topics Execution cycle Introduction to pipelining
RISC / CISC Architecture by Derek Ng. Overview CISC Architecture RISC Architecture  Pipelining RISC vs CISC.
LECTURE 10 Pipelining: Advanced ILP. EXCEPTIONS An exception, or interrupt, is an event other than regular transfers of control (branches, jumps, calls,
M211 – Central Processing Unit
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Simulation-Based Verification of Microprocessor Units Based on Cycle-Accurate Contract Specifications Mikhail Chupilko, Alexander Kamkin, and Dmitry Vorobyev.
SHAKTI PROCESSORS RAHUL BODDUNA RISE LAB, IIT MADRAS
Exceptions and Interrupts “Unexpected” events requiring change in flow of control – Different ISAs use the terms differently Exception – Arises within.
Pipelining Chapter 6.
ELEN 468 Advanced Logic Design
Advanced Topic: Alternative Architectures Chapter 9 Objectives
Pipelining.
Processor Architecture: Introduction to RISC Datapath (MIPS and Nios II) CSCE 230.
Single Clock Datapath With Control
The fetch-execute cycle
Processor Pipelining Yasser Mohammad.
Pipelining.
Pipelining: Advanced ILP
The processor: Exceptions and Interrupts
Pipelining Chapter 6.
Alex Saify Chad Reynolds James Aldorisio Brian Bischoff
Pipelining Chapter 6.
High Performance Asynchronous Circuit Design and Application
COMS 361 Computer Organization
Pipelining Chapter 6.
Pipelining Chapter 6.
Objectives Describe common CPU components and their function: ALU Arithmetic Logic Unit), CU (Control Unit), Cache Explain the function of the CPU as.
CS/COE0447 Computer Organization & Assembly Language
Presentation transcript:

An Approach to Test Programs Generation for Microprocessors Based on Pipeline Hazards Templates Alexander Kamkin and Dmitry Vorobyev Institute for System Programming of RAS

SYRCoSE' June, 2010 Designing and Testing of microprocessors Cost of missed in the chip errors may be very high The most of errors occur in the functionality Verification efforts may reach to 80% of all designing efforts Testing is carried out at all design stages

SYRCoSE’ June, 2010 Control logic and pipeline Control logic is internal functionality responsible for controlling instructions executions Classic pipeline Instruction Fetch Instruction Decode Execute Memory Access WriteBack

SYRCoSE' June, 2010 Complex pipeline situations Clock cycle IF IDEXMAWB IDEXMAWB IDEXMAWB IDEXMAWB IDEXMAWB Instruction I1 I2 I3 I4 I5 Ideal Processing Pipeline processes without any idle

SYRCoSE' June, 2010 Complex pipeline situations Clock cycle IF IDEXMAWB IDEXMAWB IDEXMAWB IDEXMAWB Instruction I1 I2=ADD I3 I4=ADD I5 Structural Hazard The same unit is used in instructions IF IDEXMAWB

SYRCoSE' June, 2010 Complex pipeline situations Clock cycle IF IDEXMAWB IDEXMAWB IDEXMAWB IDEXMAWB IDEXMAWB Instruction I1 I2=ADD I3=SUB(Dep.) I4 I5 Data Hazard Data is used before it is available

SYRCoSE' June, 2010 Complex pipeline situations Clock cycle IF xIF xIDxEXxMAxWB IDEXMAWB IDEXMAWB IDEXMAWB xIDxEXxMAxWB Instruction I1 I2 I3=J I4 I5 Control hazard Branch instruction leads to jump

SYRCoSE' June, 2010 Complex pipeline situations Clock cycle IF xIF xIDxEXxMAxWB IDEXMAWB IDEXMAWB IDEXMAWB IDEXMAWB Instruction I1 I2 I3 I4=SB I5 Exception raises Exception raises when accessing to memory

SYRCoSE' June, 2010 Techniques of the control logic testing Cycle-accurate techniques  High testing coverage  Inexpediency/impossibility of use at early designing stages Template-based techniques  Coverage is unsystematic and difficult for evaluation  Can be used at the different stages

SYRCoSE' June, 2010 Techniques of the control logic testing Cycle-accurate techniques  High testing coverage  Inexpediency/impossibility of use at early designing stages Template-based techniques  Coverage is unsystematic and difficult for evaluation  Can be used at the different stages Our approach  Using of models gives systematic for coverage  Using of the generalized pipeline hazards templates that allows using at different stages Gap in designing process

Foundations of the approach (1) Approach uses formal specifications of microprocessor ISA Structure of the test program Test = { } i=0,n-1, Using test templates to represent test action instead of concrete test actions  Specifying formally test situations  Specifying formally dependencies SYRCoSE' June, 2010

SYRCoSE' June, 2010 Foundations of the approach (2) Test situations describe necessary parameters of testing component Dependencies between instructions  Register dependencies  Address dependencies Test program are generated automatically by combining test situations and test dependencies

SYRCoSE' June, 2010 The suggested approach Highlight “interesting situations” in pipeline functioning Produce generalized specifications (basic templates) for each type of hazard Define parameters for simple test actions Define parameters for composite test actions using operations over basic templates Generate tests using templates

SYRCoSE' June, 2010 Generalized Specifications of Hazards Generalized Templates Parametrized Generalized Templates

SYRCoSE' June, 2010 Generalized Specification of Exceptions $PreInstructions $PostInstructions

SYRCoSE' June, 2010 Generalized Specification of Exceptions $PreInstructions: {dadd} {TLBInvalid} $PostInstructions {daddiu} dadd r25, r30, r7 lb r22, 0(r4) // TLBInvalid=true daddiu r5, r18, How may Basic Template be translated to the test action?

SYRCoSE' June, 2010 Generalized Specification of Data Hazards $PreInstructions $FirstInstruction $InnerInstructions $PostInstructions

SYRCoSE' June, 2010 Generalized Specification of Data Hazards $PreInstructions: {} $FirstInstruction: {madd.s} $InnerInstructions: {add.s} {register: write-write} $PostInstructions: {div.s} madd.s $f18, $f6, $f28, $f10 add.s $f8, $f17, $f3 ceil.l.s $f2, $f18 // Data hazard div.s $f23, $f13, $f24 How may Basic Template be translated to the test action?

SYRCoSE' June, 2010 Test Program Generation Simple test actions  Basic templates of a single situation with parameters describes situation Composite test actions  Operations over Basic Templates define parameters for composite situations

SYRCoSE' June, 2010 Operations for Composite Test Actions Overlapping: T=T H1 |T H2 Shift: T H =T H1 ↓T H2 Concatenation: T=T1→T2 Nesting: T H =T H1 [T]

SYRCoSE' June, 2010 Example of the Operation Using overlapping operation for data hazard and structural hazard: $FirstInstruction1:{add.s, div.s} $FirstInstruction2:{mul.s, div.s} $FirstInstruction = $FirstInstruction1 ∩ $FirstInstruction2 $SecondInstruction = $SecondInstruction1 ∩ $SecondInstruction2 … div.s $f18, $f6, $f28, $f10 add.s $f8, $f17, $f3 div.d $f2, $f18 // Data hazard and Structural hazard div.s $f23, $f13, $f24

SYRCoSE' June, 2010 Case study The approach was applied to verification of two arithmetical coprocessors:  Floating point coprocessor  Complex arithmetic coprocessor

SYRCoSE' June, 2010 Future work Extend approach using accurate-cycled models

SYRCoSE' June, 2010 Thank You! Questions?