Simulation-Based Verification of Microprocessor Units Based on Cycle-Accurate Contract Specifications Mikhail Chupilko, Alexander Kamkin, and Dmitry Vorobyev.

Slides:



Advertisements
Similar presentations
Verification Methodology Based on Algorithmic State Machines and Cycle-Accurate Contract Specifications Sergey Frenkel 1 and Alexander Kamkin 2 1 Institute.
Advertisements

PIPELINING AND VECTOR PROCESSING
PIPELINE AND VECTOR PROCESSING
Computer architecture
EZ-COURSEWARE State-of-the-Art Teaching Tools From AMS Teaching Tomorrow’s Technology Today.
CPE 731 Advanced Computer Architecture ILP: Part V – Multiple Issue Dr. Gheith Abandah Adapted from the slides of Prof. David Patterson, University of.
Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.
AMD OPTERON ARCHITECTURE Omar Aragon Abdel Salam Sayyad This presentation is missing the references used.
COMP25212 Advanced Pipelining Out of Order Processors.
Lecture 11 Oct 12 Circuits for floating-point operations addition multiplication division (only sketchy)
Computer Organization CS224 Fall 2012 Lesson 19. Floating-Point Example  What number is represented by the single-precision float …00 
Instruction Set Issues MIPS easy –Instructions are only committed at MEM  WB transition Other architectures are more difficult –Instructions may update.
Lecture Objectives: 1)Define pipelining 2)Calculate the speedup achieved by pipelining for a given number of instructions. 3)Define how pipelining improves.
Superscalar Organization Prof. Mikko H. Lipasti University of Wisconsin-Madison Lecture notes based on notes by John P. Shen Updated by Mikko Lipasti.
How Can Simple Model Test Complex System Model Based Testing of Large-Scale Software Victor Kuliamin ISP RAS, Moscow.
1 Farhan Mohamed Ali (W2-1) Jigar Vora (W2-2) Sonali Kapoor (W2-3) Avni Jhunjhunwala (W2-4) Presentation 5 MAD MAC nd February, 2006 Top Level Integration.
EECC722 - Shaaban #1 Lec # 10 Fall Conventional & Block-based Trace Caches In high performance superscalar processors the instruction fetch.
Pipelining. Overview Pipelining is widely used in modern processors. Pipelining improves system performance in terms of throughput. Pipelined organization.
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.
TEST SUITE DEVELOPMENT FOR CONFORMANCE TESTING OF PROTOCOLS Anastasia Tugaenko Scientific Adviser: Nikolay Pakulin, PhD Institute for System Programming.
5-Stage Pipelining Fetch Instruction (FI) Fetch Operand (FO) Decode Instruction (DI) Write Operand (WO) Execution Instruction (EI) S3S3 S4S4 S1S1 S2S2.
Basic Microcomputer Design. Inside the CPU Registers – storage locations Control Unit (CU) – coordinates the sequencing of steps involved in executing.
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
Automated Generation of Test Suites from Formal Specifications Alexander K.Petrenko Institute for System Programming of Russian Academy of Sciences (ISP.
Intel Academic Forum. Budapest, September, 2002 ISPRAS Experience in Model Based Testing Alexander K. Petrenko, Institute for System Programming.
Software Verification Academician V.P.Ivannikov, Director of ISPRAS Moscow, November 2008.
CSCI 6307 Foundation of Systems – Exercise (2) Xiang Lian The University of Texas – Pan American Edinburg, TX
Lecture 12: Integer Arithmetic and Floating Point CS 2011 Fall 2014, Dr. Rozier.
A Light-Weight C/C++ Based Tool for Hardware Verification Alexander Kamkin CTestBench Institute for System Programming of the Russian.
Chap 7. Register Transfers and Datapaths. 7.1 Datapaths and Operations Two types of modules of digital systems –Datapath perform data-processing operations.
Speeding up of pipeline segments © Fr Dr Jaison Mulerikkal CMI.
The Central Processing Unit (CPU) and the Machine Cycle.
An Approach to Test Programs Generation for Microprocessors Based on Pipeline Hazards Templates Alexander Kamkin and Dmitry Vorobyev Institute for System.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Principles of Linear Pipelining
Alpha Supplement CS 740 Oct. 14, 1998
Chapter One Introduction to Pipelined Processors
Using Cycle-Accurate Contract Specifications for Testing Hardware Models Alexander Kamkin Institute for System Programming of RAS
Next Generation ISA Itanium / IA-64. Operating Environments IA-32 Protected Mode/Real Mode/Virtual Mode - if supported by the OS IA-64 Instruction Set.
UniTesK: Model Based Testing in Industrial Practice Victor Kuliamin Alexander Petrenko Alexander Kossatchev Igor Burdonov Institute for System Programming.
Computer Architecture: Wrap-up CENG331 - Computer Organization Instructors: Murat Manguoglu(Section 1) Erol Sahin (Section 2 & 3) Adapted from slides of.
Extension of Interface Signature Descriptions for Automatic Test Generation Evgeny Chernov Institute for System Programming of RAS SYRCoSE 2008.
Time Abstraction in Simulation-Based Hardware Verification Alexander Kamkin Institute for System Programming of the Russian Academy of.
P5 Micro architecture : Intel’s Fifth generation
UniTesK Test Suite Architecture Igor Bourdonov Alexander Kossatchev Victor Kuliamin Alexander Petrenko.
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.
Superscalar Architecture Design Framework for DSP Operations Rehan Ahmed.
UniTesK Test Suite Architecture Igor Bourdonov Alexander Kossatchev Victor Kuliamin Alexander Petrenko.
Speedup Speedup is defined as Speedup = Time taken for a given computation by a non-pipelined functional unit Time taken for the same computation by a.
Hewlett-Packard PA-RISC Bit Processors: History, Features, and Architecture Presented By: Adam Gray Christie Kummers Joshua Madagan.
Protection in Virtual Mode
Computer Architecture Chapter (14): Processor Structure and Function
Visit for more Learning Resources
CPE 731 Advanced Computer Architecture ILP: Part V – Multiple Issue
Pipelining.
Mikhail Chupilko, Alexander Protsenko
Arithmetic for Computers
Pipelining.
Superscalar Pipelines Part 2
Constructive Computer Architecture Tutorial 7 Final Project Overview
Lecture 8: ILP and Speculation Contd. Chapter 2, Sections 2. 6, 2
Comparison of Two Processors
CSC 4250 Computer Architectures
Pipelining Chapter 6.
CC423: Advanced Computer Architecture ILP: Part V – Multiple Issue
Presentation transcript:

Simulation-Based Verification of Microprocessor Units Based on Cycle-Accurate Contract Specifications Mikhail Chupilko, Alexander Kamkin, and Dmitry Vorobyev Institute for System Programming of RAS

SYRCoSE' May, 2008 Cost of microprocessor error Pentium FDIV Bug (Intel, 1994)  The cost is $ Phenom (9x00 Stepping B2) L3 Cache’s TLB Errata (AMD, 2007)  Implicit negative profit Design new microprocessor  The cost is about $

SYRCoSE' May, 2008 Levels of verification System-level verification Unit-level verification Test action Target system Test action Target system Target unit

SYRCoSE' May, 2008 Operation execution Operation Operands Time Clock Executing 1 st stage2 nd stage

SYRCoSE' May, 2008 Pipelined operations execution Operation A Operands Time Clock Executing A1 stageA2 stage Operation B Operands Executing B2 stageB1 stage Bubble

SYRCoSE' May, 2008 Contract specifications pre(input) // obligation for client output = operation(input) post(intput, output) // benefit for client If a client meets the precondition, then the component must fulfill the postcondition

SYRCoSE' May, 2008 Specification of operations Operation A Contracts of A ’s stages Contract of A A1A1 … ANAN guard(A 1 ) post(A 1 ) guard(A N ) post(A N ) … pre(A)

SYRCoSE' May, 2008 Idea of the approach post(A 2 )  post(B 1 ) Operation A Operation B A1A1 A2A2 …ANAN B1B1 B2B2 …BNBN Time Test Oracle 123 …

SYRCoSE' May, 2008 Requirements Requirement is a formal atomic predicate constructed on the defined functions. Types: Pre – req. on microoperation precondition Guard – req. on microoperation guard condition Update – implicit requirements on microoperation functionality Post – explicit requirements on microoperation functionality

SYRCoSE' May, 2008 Tool support The approach is integrated into the CTESK tool from the UniTESK toolkit Special library is developed to simplify the creation of specifications and tests for Verilog designs using CTESK

SYRCoSE' May, 2008 Specification example Floating-point adder Stage 0: alignment of exponent Stage 1: addition of fractions Stage 2: normalization of result

SYRCoSE' May, 2008 Catalogue example Operation ADD Stage 0Stage 1Stage 2Stage 3 pre[next cycle] alignment of exponent addition of fractions normalization of result

SYRCoSE' May, 2008 Precondition pre { return (isZero(op1) || isNormalized(op1)) && (isZero(op2) || isNormalized(op2)); }

SYRCoSE' May, 2008 Postcondition (for stage 3) post { return result == op1 + op2; }

SYRCoSE' May, 2008 Case study The approach was applied to several units of MIPS64-compatible microprocessor:  TLB (Translation Lookaside Buffer)  L2 Cache

SYRCoSE' May, 2008 TLB requirements PreGuardUpdatePostTotal Read50027 Write50229 Probe50038 Translate (Data) Translate (Instruction) Total

SYRCoSE' May, 2008 TLB verification results Specification consists 2.5 KLOC Labor-costs of testbench development is about 2.5 man-months We have found 9 errors

SYRCoSE' May, 2008 L2 cache requirements PreGuardUpdatePostTotal Load Loadi25029 Store Cache Load (DSP)10012 Store (DSP)10102 Total

SYRCoSE' May, 2008 L2 cache verification results Specifications consists 3 KLOC Labor-costs of testbench development is about 4 man-months We have found 6 errors

SYRCoSE' May, 2008 Future work Generalization for branching pipelines, pipelines with cycles, etc. Improvement of tool support for specification and tests development

SYRCoSE' May, 2008 Contacts Institute for System Programming of RAS UniTESK Technology Alexander Kamkin, Dmitry Vorobyev, Mikhail Chupilko { kamkin, vorobyev,

SYRCoSE' May, 2008 Thank You! Questions?