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.

Slides:



Advertisements
Similar presentations
Presenter : Shao-Chieh Hou VLSI Design, Automation and Test, VLSI-DAT 2007.
Advertisements

Morgan Kaufmann Publishers The Processor
Advanced Computer Architectures Laboratory on DLX Pipelining Vittorio Zaccaria.
Mehmet Can Vuran, Instructor University of Nebraska-Lincoln Acknowledgement: Overheads adapted from those provided by the authors of the textbook.
Computer Structure 2014 – Out-Of-Order Execution 1 Computer Structure Out-Of-Order Execution Lihu Rappoport and Adi Yoaz.
CSE 490/590, Spring 2011 CSE 490/590 Computer Architecture VLIW Steve Ko Computer Sciences and Engineering University at Buffalo.
Pipeline Computer Organization II 1 Hazards Situations that prevent starting the next instruction in the next cycle Structural hazards – A required resource.
Lecture Objectives: 1)Define pipelining 2)Calculate the speedup achieved by pipelining for a given number of instructions. 3)Define how pipelining improves.
Computer Architecture 2011 – Out-Of-Order Execution 1 Computer Architecture Out-Of-Order Execution Lihu Rappoport and Adi Yoaz.
1 Presenter: Chien-Chih Chen. 2 An Assertion Library for On- Chip White-Box Verification at Run-Time On-Chip Verification of NoCs Using Assertion Processors.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Introduction To The ARM Microprocessor
Functional Coverage Driven Test Generation for Validation of Pipelined Processors P. Mishra and N. Dutt Proceedings of the Design, Automation and Test.
Reconfigurable Computing in the Undergraduate Curriculum Jason D. Bakos Dept. of Computer Science and Engineering University of South Carolina.
7/2/ _23 1 Pipelining ECE-445 Computer Organization Dr. Ron Hayne Electrical and Computer Engineering.
Pipelining What is it? How does it work? What are the benefits? What could go wrong? By Derek Closson.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 4 Processor Implementation ©Copyright 2008 Umakishore Ramachandran.
8/16/2015\course\cpeg323-08F\Topics1b.ppt1 A Review of Processor Design Flow.
1 Presenter: Ming-Shiun Yang Sah, A., Balakrishnan, M., Panda, P.R. Design, Automation & Test in Europe Conference & Exhibition, DATE ‘09. A Generic.
Exception and Interrupt Handling
Introduction to Embedded Systems
Lecture 15: Pipelining and Hazards CS 2011 Fall 2014, Dr. Rozier.
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.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
Hardware/Software Co-design Design of Hardware/Software Systems A Class Presentation for VLSI Course by : Akbar Sharifi Based on the work presented in.
An Effective Method to Control Interrupt Handler for Data Race Detection Makoto Higashi †, Tetsuo Yamamoto ‡, Yasuhiro Hayase †, Takashi Ishio † and Katsuro.
designKilla: The 32-bit pipelined processor Brought to you by: Victoria Farthing Dat Huynh Jerry Felker Tony Chen Supervisor: Young Cho.
Unit-III Pipelined Architecture. Basic instruction cycle 6/4/2016MDS_SCOE_UNIT32.
An Approach to Test Programs Generation for Microprocessors Based on Pipeline Hazards Templates Alexander Kamkin and Dmitry Vorobyev Institute for System.
1 COMP541 Multicycle MIPS Montek Singh Apr 4, 2012.
Implementing RISC Multi Core Processor Using HLS Language – BLUESPEC Final Presentation Liam Wigdor Advisor Mony Orbach Shirel Josef Semesterial Winter.
CPE 626 Advanced VLSI Design Lecture 2 Aleksandar Milenkovic
Computer Organization CDA 3103 Dr. Hassan Foroosh Dept. of Computer Science UCF © Copyright Hassan Foroosh 2002.
COMP541 Multicycle MIPS Montek Singh Mar 25, 2010.
1  1998 Morgan Kaufmann Publishers Chapter Six. 2  1998 Morgan Kaufmann Publishers Pipelining Improve perfomance by increasing instruction throughput.
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell CS352H: Computer Systems Architecture Topic 9: MIPS Pipeline.
Combining Software and Hardware Monitoring for Improved Power and Performance Tuning Eric Chi, A. Michael Salem, and R. Iris Bahar Brown University Division.
Lecture 9. MIPS Processor Design – Pipelined Processor Design #1 Prof. Taeweon Suh Computer Science Education Korea University 2010 R&E Computer System.
LECTURE 10 Pipelining: Advanced ILP. EXCEPTIONS An exception, or interrupt, is an event other than regular transfers of control (branches, jumps, calls,
Application-Specific Customization of Soft Processor Microarchitecture Peter Yiannacouras J. Gregory Steffan Jonathan Rose University of Toronto Electrical.
Introduction to Exceptions 1 Introduction to Exceptions ARM Advanced RISC Machines.
Exceptions and Interrupts “Unexpected” events requiring change in flow of control – Different ISAs use the terms differently Exception – Arises within.
Chapter Six.
Gopakumar.G Hardware Design Group
Interrupts and exceptions
Computer Organization CS224
Timer and Interrupts.
Application-Specific Customization of Soft Processor Microarchitecture
Single Clock Datapath With Control
CS-401 Compute Architecture & Assembly Language Programming
Pipeline Implementation (4.6)
Lecture 5: Lab 3 – Active HW Accelerator Design
8259 Chip The Intel 8259 is a family of Programmable Interrupt Controllers (PIC) designed and developed for use with the Intel 8085 and Intel 8086 microprocessors.
Chapter 10 The Stack.
Pipelining: Advanced ILP
The processor: Exceptions and Interrupts
Figure 8.1 Architecture of a Simple Computer System.
The processor: Pipelining and Branching
Figure 8.1 Architecture of a Simple Computer System.
SRC Exception Processing Mechanism
Chapter Six.
Estimating Timing Profiles for Simulation of Embedded Systems
Chapter Six.
Processor: Multi-Cycle Datapath & Control
Pipelining: Basic Concepts
ARM Introduction.
ECE 445 – Computer Organization
Application-Specific Customization of Soft Processor Microarchitecture
Presentation transcript:

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 and Engineering National Sun Yat-Sen University, Kaohsiung Taiwan

2/22 Motivation Microprocessor verification Microprocessor verification –Instruction-based verification – Branch prediction, Data hazard, etc… –External interrupt verification Why the external interrupt verification requires automation Why the external interrupt verification requires automation –External interrupt is an unexpected event –Tightly related to instruction –Trigger timing must be precise –Pipelined behavior must keep precise Processor Add instruction Sub instructionJPEGMPEG FIQ IRQ Abort ? Fetch Decode Execute1 Execute2 Execute3 INT. vectorSRV. RTN. addr. Fetch Hold Decode ExecuteFetch Decode Execute IRQ FIQ Dabort Pabort FIQ IRQ

3/22 Comparison with manual approach Processor External Interrupt Verification Tool (PEVT) Processor External Interrupt Verification Tool (PEVT) – –Automatically insert external interrupt signals – –Automatically insert instructions – –Automatically verify the microprocessor – – RTL level – – Cycle accurate –Time-efficiency –High functional coverage

4/22 Proposed Verification Framework Required micro-architecture information Required micro-architecture information –Microprocessor pipeline stages –Instruction cycles –External interrupt information – Instruction’s relationship with external interrupt Fetch Decode Execution Load 3-cycle instruction Execution2 Execution3 3 cycles IRQ INT. Vector Execution1

5/22 Proposed Verification Framework Exception Description Language (EXPDL) Exception Description Language (EXPDL) –Microprocessor model Assertion rule database Assertion rule database –Processor-independent verification rules –Extendable – Individual interrupt – Concurrent interrupt – Nested interrupt PEVT generates verification cases PEVT generates verification cases –Combine EXPDL and assertion rule database For automatic RTL verification For automatic RTL verification –Generate trigger – Comprise HW and SW –Generate monitor hardware Automatic External Interrupt HW/SW Generation

6/22 Exception Description Languages (EXPDL) Architecture Description Language Architecture Description Language LISP-like language LISP-like language Based on EXPRESSION Based on EXPRESSION –Cycle-accurate simulation –Instruction set information -> Instruction cycles –Structure information -> pipeline stages –Can’t describe interrupt behaviors – Extensions – Exception Description –Instruction’s relationship with external interrupt –Vector address –Trigger time : legal interrupt arrival time –Action time : when the microprocessor responses –Etc … Automatic External Interrupt HW/SW Generation

7/22 Assertion rule data base Automatic External Interrupt HW/SW Generation

8/22 Individual Interrupts For (each interrupt source i) for( each instruction j in processor’s instruction-set) { for( every cycle k of the instruction j) generate a test case to trigger interrupt i at k cycle of instruction j } IRQ Pabort Dabort FIQ Fetch Decode Execute1 Execute2 Execute3 Mem. access Load Only one external interrupt arrives before the microprocessor accepts another one Only one external interrupt arrives before the microprocessor accepts another one 8 individual interrupt for load instruction

9/22 Concurrent interrupts For (each instruction j in processor’s instruction set) { Find out the legal time slot of instruction j for all external interrupt Select 2..n external interrupts to trigger For( each combination) generate a test case to trigger interrupt i and i+1 and...n while executing instruction j } Multiple external interrupts arrive before the microprocessor responses to any of them Multiple external interrupts arrive before the microprocessor responses to any of them IRQ Pabort Dabort FIQ Fetch Decode Execute1 Execute2 Execute3 Mem. access Load IRQ Pabort Dabort FIQ

10/22 Graph Model for Nested Interrupts ARM7 One nested interrupt case The microprocessor can accept another external interrupt when executing the interrupt service routine caused by a previous interrupt –State : microprocessor’s mode –Directed edge : legal mode transition from predecessor state to successor state –Path : A legal nested interrupt mode transition Depth-First-Search to find all cases Depth-First-Search to find all cases PIC16

11/22 Verification environment Automatic External Interrupt HW/SW Generation

12/22 Verify Wait Verify Automatic verification mechanism Software trigger IRQ INT. Vector SRV. RTN. addr. Fetch Decode Load Exe.3 Exe.1 Exe.2 n cycles Instruction address Match T= A= 2 Trigger IRQ

13/22 Summary of Generated Test Cases Interrupt behavior # of test cases Simulation time (cycles)(sec.) Individual interrupt , Concurrent interrupt , Nested interrupt 1057,98038 Total432988, Microprocessor under verify : ARM7 Microprocessor under verify : ARM7 SUN Blade 2000 workstation SUN Blade 2000 workstation Every case takes 20 cycles on average to complete Every case takes 20 cycles on average to complete More cases can be verified More cases can be verified –Automatically

14/22 Verification hardware Simple hardware Simple hardware Good for FPGA and chip Good for FPGA and chip Verification module Code size Interrupt Activator 129 lines Monitor Engine 127 lines V-ROM 27 k-bytes

15/22 Bugs found Branch instruction ignores interrupt Branch instruction ignores interrupt –Individual interrupt The return address of an interrupted 2-cycle MOV instruction is wrong The return address of an interrupted 2-cycle MOV instruction is wrong –Individual interrupt Latency in external interrupt Latency in external interrupt –Individual interrupt

16/22 Conclusion An architecture description language extension is proposed An architecture description language extension is proposed A CAD tool is proposed to verify the interrupt behavior of processors A CAD tool is proposed to verify the interrupt behavior of processors –Automatically generate the hardware and software for verification –Automatically verify the processor –The generated hardware is very small –Highly focused verification cases –Less simulation cycles – 4329 verification cases – Less than cycles of RTL simulation – 424 seconds in real time