MicroTESK: An Extendable Framework for Test Program Generation Alexander Kamkin, Tatiana Sergeeva, Andrei Tatarnikov, Artemiy Utekhin {kamkin, leonsia,

Slides:



Advertisements
Similar presentations
VHDL Design of Multifunctional RISC Processor on FPGA
Advertisements

CS/COE0447 Computer Organization & Assembly Language
Arithmetic Logic Unit (ALU)
CPS3340 COMPUTER ARCHITECTURE Fall Semester, /15/2013 Lecture 11: MIPS-Conditional Instructions Instructor: Ashraf Yaseen DEPARTMENT OF MATH & COMPUTER.
CS 151 DIGITAL Systems Design Lecture 34 Datapath Analysis.
CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall 1.
Engineering Problem Solving With C++ An Object Based Approach Fundamental Concepts Chapter 1 Engineering Problem Solving.
1 An adaptable FPGA-based System for Regular Expression Matching Department of Computer Science and Information Engineering National Cheng Kung University,
1 Engineering Problem Solving With C++ An Object Based Approach Fundamental Concepts Chapter 1 Engineering Problem Solving.
ENGIN112 L34: Datapath Analysis November 24, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 34 Datapath Analysis.
Genesys GUI. Genesys-Pro GUI Instruction Selection Policies Random Instructions are selected randomly from the list. The user is allowed to set relative.
Creating Test Environments HDL Model HDL Testbench Simulation Engine API stimulus check Testbench Program stimulus check Non-HDL languages may be used.
Educational Computer Architecture Experimentation Tool Dr. Abdelhafid Bouhraoua.
Using UML Models for the Performance Analysis of Network Systems Nico de Wet and Pieter Kritzinger Department of Computer Science University of Cape Town.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
Programming Languages – Coding schemes used to write both systems and application software A programming language is an abstraction mechanism. It enables.
Contract Specification of Pipelined Designs Alexander Kamkin Institute for System Programming of RAS
UNIT - 1Topic - 3. Computer software is a program that tells a computer what to do. Computer software, or just software, is any set of machine-readable.
Automated Design of Custom Architecture Tulika Mitra
Static Analysis of HDL Descriptions: Extracting Models for Verification Alexander Kamkin Sergey Smolov Igor Melnichenko.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
A Light-Weight C/C++ Based Tool for Hardware Verification Alexander Kamkin CTestBench Institute for System Programming of the Russian.
Languages for HW and SW Development Ondrej Cevan.
An Approach to Test Programs Generation for Microprocessors Based on Pipeline Hazards Templates Alexander Kamkin and Dmitry Vorobyev Institute for System.
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
Infrastructure design & implementation of MIPS processors for students lab based on Bluespec HDL Students: Danny Hofshi, Shai Shachrur Supervisor: Mony.
1 Code Generation. 2 Position of a Code Generator in the Compiler Model Front-End Code Optimizer Source program Symbol Table Lexical error Syntax error.
Evaluating and Improving an OpenMP-based Circuit Design Tool Tim Beatty, Dr. Ken Kent, Dr. Eric Aubanel Faculty of Computer Science University of New Brunswick.
Using Cycle-Accurate Contract Specifications for Testing Hardware Models Alexander Kamkin Institute for System Programming of RAS
W.S Computer System Design Lecture 4 Wannarat Suntiamorntut.
Time Abstraction in Simulation-Based Hardware Verification Alexander Kamkin Institute for System Programming of the Russian Academy of.
GUI For Computer Architecture May01-05 Team Members: Neil HansenCprE Ben JonesCprE Jon MathewsCprE Sergey SannikovCprE Clients/Advisors: Manimaran Govindarasu.
MicroTESK: Automation of Test Program Generation for Microprocessors Alexander Kamkin Institute for System Programming of the Russian.
By Wannarat Computer System Design Lecture 4 Wannarat Suntiamorntut.
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software.
Simulation-Based Verification of Microprocessor Units Based on Cycle-Accurate Contract Specifications Mikhail Chupilko, Alexander Kamkin, and Dmitry Vorobyev.
Evolution of C and C++ n C was developed by Dennis Ritchie at Bell Labs (early 1970s) as a systems programming language n C later evolved into a general-purpose.
(a)add Rd, Rs, RtReg[Rd]=Reg[Rs]+Reg[Rt] (b) lw Rt, offs(Rs)Reg[Rt]=MEM[Reg[Rs]+offs] Instruction (a), all blocks except data memory are used for this.
Programming Languages Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
Software Development Environment
Computer Architecture & Operations I
Andreas Hoffmann Andreas Ropers Tim Kogel Stefan Pees Prof
Engineering Problem Solving With C An Object Based Approach
Computer Architecture Instruction Set Architecture
Instruction Set Architecture
Structural RTL for the br and brl instructions
MIPS Coding Continued.
课程名 编译原理 Compiling Techniques
RISC Concepts, MIPS ISA Logic Design Tutorial 8.
Prof. Sirer CS 316 Cornell University
Computer Architecture and Organization Miles Murdocca and Vincent Heuring Chapter 4 – The Instruction Set Architecture.
Super Quick Architecture Review
The University of Adelaide, School of Computer Science
MIPS coding.
Introduction to Assembly Chapter 2
ARM Control Structures
G1. G1 g2 g3 g4 g5 g6 g8 g10 g11 g12 g14.
Introduction to Assembly Chapter 2
Topic 5: Processor Architecture
COMS 361 Computer Organization
Prof. Sirer CS 316 Cornell University
COMP541 Datapaths I Montek Singh Mar 18, 2010.
UCSD ECE 111 Prof. Farinaz Koushanfar Fall 2018
ARM Control Structures
Understand the interaction between computer hardware and software
MIPS coding.
Example 1: (expression evaluation)
MIPS Arithmetic and Logic Instructions
Introduction to Assembly Chapter 2
Document for Technical Training
Presentation transcript:

MicroTESK: An Extendable Framework for Test Program Generation Alexander Kamkin, Tatiana Sergeeva, Andrei Tatarnikov, Artemiy Utekhin {kamkin, leonsia, andrewt, Institute for System Programming of the Russian Academy of Sciences (ISPRAS) SYRCoSE 2013 – May 30, 2013 – Kazan, Russia

CPU design Hardware Description Languages (HDL)  Verilog  VHDL SYRCoSE 2013 – May 30, 2013 – Kazan, Russia

CPU verification Target CPU (HDL) lui s1, 0xdead ori s1, s1, 0x0 lui s3, 0xbeef ori s3, s3, 0xf add v0, a0, a2 sub t1, t3, t5 add t7, s1, s3 Test programs (assembler) Reference simulator (C/C++) Execution traces (formatted text) 0x2000: lui... 0x2004: ori... 0x2008: ori... 0x200c: lui... 0x2010: add... 0x2014: sub... 0x2018: add... Trace comparator (Perl, Python) 0x2000: lui... 0x2004: ori... 0x2008: ori... 0x200c: lui... 0x2010: add... 0x2014: sub... 0x2018: add... SYRCoSE 2013 – May 30, 2013 – Kazan, Russia

Test program generation Random (RAVEN) Combinatorial (MicroTESK v1) Template-based (Genesys-Pro) Model-based (research projects) Requirements Design ? Test programs SYRCoSE 2013 – May 30, 2013 – Kazan, Russia

Framework ? SYRCoSE 2013 – May 30, 2013 – Kazan, Russia Model-based Random Template-based Combinatorial

Modeling Library MicroTESK framework Modeling Framework Testing Framework Translator Coverage Extractor Design Library Test Template Processor Testing Library Coverage Library Constraint Solver Engine Specifications Test Templates Test Programs External Solvers Test Sequence Generators Test Data Generators Model Generator Coverage ModelDesign Model Model

MicroTESK plugin Design Aspect Instruction Set Memory Management Core Extensions Framework Plugin Translator Solvers Library Test Generators Modeling Testing SYRCoSE 2013 – May 30, 2013 – Kazan, Russia Pipelining User Defined

Specification example op ADD(rd:GPR, rs:GPR, rt:GPR) action = { if(NotWordValue(rs) || NotWordValue(rt)) then UNPREDICTABLE(); endif; tmp_word = rs ::rs + rt ::rt ; if(tmp_word != tmp_word ) then SignalException("IntegerOverflow"); else rd = sign_extend(tmp_word ); endif; } syntax = format("add %s, %s, %s", rd.syntax, rs.syntax, rt.syntax) op ALU = ADD | SUB | … Precondition Test Situations Equivalence Classes SYRCoSE 2013 – May 30, 2013 – Kazan, Russia

Template example # Assembly -Style Code add r[1], r[2], r[3] sub r[1], r[1], r[4] # Ruby Control Statements (1..3).each do |i| add r[i], r[i+1], r[i+2] sub r[i], r[i], r[i+3] end # Test Sequence Block block (:engine => ”random”, :count => 2013) { add r[1], r[2], r[3] sub r[1], r[2], r[3] # Test Situation Reference do overflow end } SYRCoSE 2013 – May 30, 2013 – Kazan, Russia

Test sequence generator # Test Sequence Block block (:combine => ”product”, :compose => ”random”) { # Nested Block A block (:engine => ”random”, :length => 3, :count => 2) { add r[a], r[b], r[c] sub r[d], r[e], r[f] mult r[g], r[h] div r[i], r[j] } # Nested Block B block (:engine => ”permutate” ) { ld r[k], r[l] st r[m], r[n] } } # Combination (1, 1) sub r[d], r[e], r[f] # Block A ld r[k], r[l] # Block B div r[i], r[j] # Block A st r[m], r[n] # Block B add r[a], r[b], r[c] # Block A # Combination (1, 2) st r[m], r[n] # Block B sub r[d], r[e], r[f] # Block A ld r[k], r[l] # Block B div r[i], r[j] # Block A add r[a], r[b], r[c] # Block A # Combination (2, 1) mult r[g], r[h] # Block A ld r[k], r[l] # Block B add r[a], r[b], r[c] # Block A st r[m], r[n] # Block B # Combination (2, 2) mult r[g], r[h] # Block A st r[m], r[n] # Block B mult r[g], r[h] # Block A ld r[k], r[l] # Block B add r[a], r[b], r[c] # Block A SYRCoSE 2013 – May 30, 2013 – Kazan, Russia Combinator Compositor

Constraint solver engine Collection of solvers:  Universal  Custom SYRCoSE 2013 – May 30, 2013 – Kazan, Russia MicroTESK framework uses Java Constraint Solver API

Conclusion Framework architecture Support for common generation techniques Extendibility with other methods Flexible open-source environment SYRCoSE 2013 – May 30, 2013 – Kazan, Russia

Contact information Institute for System Programming of RAS (ISPRAS) MicroTESK Test Program Generator Tatiana Sergeeva SYRCoSE 2013 – May 30, 2013 – Kazan, Russia

Thank you! Questions? SYRCoSE 2013 – May 30, 2013 – Kazan, Russia