Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "An Approach to Test Programs Generation for Microprocessors Based on Pipeline Hazards Templates Alexander Kamkin and Dmitry Vorobyev Institute for System."— Presentation transcript:

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

2 SYRCoSE'2010 2 1-2 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

3 SYRCoSE’2010 3 1-2 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

4 SYRCoSE'2010 4 1-2 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

5 SYRCoSE'2010 4 1-2 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

6 SYRCoSE'2008 4 1-2 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

7 SYRCoSE'2008 4 1-2 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

8 SYRCoSE'2010 4 1-2 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

9 SYRCoSE'2008 5 1-2 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

10 SYRCoSE'2010 5 1-2 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

11 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'2010 6 1-2 June, 2010

12 SYRCoSE'2010 7 1-2 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

13 SYRCoSE'2010 8 1-2 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

14 SYRCoSE'2010 9 1-2 June, 2010 Generalized Specifications of Hazards Generalized Templates Parametrized Generalized Templates

15 SYRCoSE'2010 10 1-2 June, 2010 Generalized Specification of Exceptions $PreInstructions $ExceptionInstruction @ExceptionType $PostInstructions

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

17 SYRCoSE'2010 12 1-2 June, 2010 Generalized Specification of Data Hazards $PreInstructions $FirstInstruction $InnerInstructions $SecondInstruction @Dependency $PostInstructions

18 SYRCoSE'2010 13 1-2 June, 2010 Generalized Specification of Data Hazards $PreInstructions: {} $FirstInstruction: {madd.s} $InnerInstructions: {add.s} $SecondInstruction @Dependency {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?

19 SYRCoSE'2010 14 1-2 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

20 SYRCoSE'2010 15 1-2 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]

21 SYRCoSE'2010 16 1-2 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

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

23 SYRCoSE'2010 18 1-2 June, 2010 Future work Extend approach using accurate-cycled models

24 SYRCoSE'2010 19 1-2 June, 2010 Thank You! Questions?


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

Similar presentations


Ads by Google