Presenter: Jyun-Yan Li On the Generation of Functional Test Programs for the Cache Replacement Logic W. J. Perez H. Universidad del Valle Grupo de Bionanoelectrónica.

Slides:



Advertisements
Similar presentations
2017/3/25 Test Case Upgrade from “Test Case-Training Material v1.4.ppt” of Testing basics Authors: NganVK Version: 1.4 Last Update: Dec-2005.
Advertisements

How Much Do I Remember? Are you ready to play.....
Tintu David Joy. Agenda Motivation Better Verification Through Symmetry-basic idea Structural Symmetry and Multiprocessor Systems Mur ϕ verification system.
SE-292 High Performance Computing
Homework Reading Machine Projects Labs
Von Neumann Architectures and the PDP-8
MEMORY popo.
Interconnection Test Framework Josef Hammer jun. Marc Magrans de Abril · Christian Hartl · Thomas Themel · Franz Mittermayr 15 June 2011.
Chapter 4 Memory Management Basic memory management Swapping
Multilevel Page Tables
The scale of IC design Small-scale integrated, SSI: gate number usually less than 10 in a IC. Medium-scale integrated, MSI: gate number ~10-100, can operate.
Cache and Virtual Memory Replacement Algorithms
Chapter 11 – Virtual Memory Management
Module 10: Virtual Memory
Chapter 3 Memory Management
Learning Cache Models by Measurements Jan Reineke joint work with Andreas Abel Uppsala University December 20, 2012.
ITEC 352 Lecture 25 Memory(2). Review RAM –Why it isnt on the CPU –What it is made of –Building blocks to black boxes –How it is accessed –Problems with.
MANINDER KAUR Maninder Kaur 1
Chapter #8: Finite State Machine Design 8
The von Neumann Model – Chapter 4 COMP 2620 Dr. James Money COMP
Addition 1’s to 20.
SE-292 High Performance Computing
SE-292 High Performance Computing Memory Hierarchy R. Govindarajan
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 14: Protection.
Chapter 1. Basic Structure of Computers
Chapter 3 General-Purpose Processors: Software
Dr. Rabie A. Ramadan Al-Azhar University Lecture 3
Topics covered: Memory subsystem CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
Performance of Cache Memory
Cache Here we focus on cache improvements to support at least 1 instruction fetch and at least 1 data access per cycle – With a superscalar, we might need.
Apr. 20, 2001VLSI Test: Bushnell-Agrawal/Lecture 311 Lecture 31 System Test n Definition n Functional test n Diagnostic test  Fault dictionary  Diagnostic.
Zhiguo Ge, Weng-Fai Wong, and Hock-Beng Lim Proceedings of the Design, Automation, and Test in Europe Conference, 2007 (DATE’07) April /4/17.
Chapter 6 Computer Architecture
Presenter: Jyun-Yan Li A Software-Based Self-Test Methodology for On-Line Testing of Processor Caches G. Theodorou, N. Kranitis, A. Paschalis, D. Gizopoulos.
Caching IV Andreas Klappenecker CPSC321 Computer Architecture.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Chapter 1 and 2 Computer System and Operating System Overview
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Functional Coverage Driven Test Generation for Validation of Pipelined Processors P. Mishra and N. Dutt Proceedings of the Design, Automation and Test.
Virtual Memory and Paging J. Nelson Amaral. Large Data Sets Size of address space: – 32-bit machines: 2 32 = 4 GB – 64-bit machines: 2 64 = a huge number.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages C++ Programming:
Cache Memories Effectiveness of cache is based on a property of computer programs called locality of reference Most of programs time is spent in loops.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 15 Slide 1 Real-time Systems 1.
1 Presenter: Ming-Shiun Yang Sah, A., Balakrishnan, M., Panda, P.R. Design, Automation & Test in Europe Conference & Exhibition, DATE ‘09. A Generic.
공과대학 > IT 공학부 Embedded Processor Design Chapter 8: Test EMBEDDED SYSTEM DESIGN 공과대학 > IT 공학부 Embedded Processor Design Presenter: Yvette E. Gelogo Professor:
Chapter 3 Memory Management: Virtual Memory
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview: Using Hardware.
Presenter: Jyun-Yan Li A software-based self-test methodology for in-system testing of processor cache tag arrays G. Theodorou, N. Kranitis, A. Paschalis.
Instituto de Informática and Dipartimento di Automatica e Informatica Universidade Federal do Rio Grande do Sul and Politecnico di Torino Porto Alegre,
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
Presenter: Jyun-Yan Li Systematic Software-Based Self-Test for Pipelined Processors Mihalis Psarakis Dimitris Gizopoulos Miltiadis Hatzimihail Dept. of.
Operating Systems Lecture 02: Computer System Overview Anda Iamnitchi
Presenter: Jyun-Yan Li Effective Software-Based Self-Test Strategies for On-Line Periodic Testing of Embedded Processors Antonis Paschalis Department of.
Presenter: Jyun-Yan Li A hybrid approach to the test of cache memory controllers embedded in SoCs’ W. J. Perez, J. Velasco Universidad del Valle Grupo.
L/O/G/O Cache Memory Chapter 3 (b) CS.216 Computer Architecture and Organization.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming.  To allocate scarce memory.
Time Parallel Simulations I Problem-Specific Approach to Create Massively Parallel Simulations.
DECStation 3100 Block Instruction Data Effective Program Size Miss Rate Miss Rate Miss Rate 1 6.1% 2.1% 5.4% 4 2.0% 1.7% 1.9% 1 1.2% 1.3% 1.2% 4 0.3%
Challenges in Hardware Logic Verification Bruce Wile IBM Server Group Verification Lead 10/25/01.
Evaluating the Fault Tolerance Capabilities of Embedded Systems via BDM M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dipartimento di Automatica.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Memory Hierarchy Ideal memory is fast, large, and inexpensive
CSE 351 Section 9 3/1/12.
Memory COMPUTER ARCHITECTURE
Module IV Memory Organization.
Software Verification and Validation
Software Verification and Validation
Software Verification and Validation
Computer System.
Presentation transcript:

Presenter: Jyun-Yan Li On the Generation of Functional Test Programs for the Cache Replacement Logic W. J. Perez H. Universidad del Valle Grupo de Bionanoelectrónica Cali, Colombia Universidad Pedagógica y Tecnológica de Colombia, Grupo Gira Sogamoso, Colombia D. Ravotto, E. Sanchez, M. Sonza Reorda, A. Tonda Politecnico di Torino Dipartimento di Automatica e Informatica Torino, Italy 2009 Asian Test Symposium

Caches are crucial components in modern processors (both stand-alone or integrated into SoCs) and their test is a challenging task, especially when addressing complex and high- frequency devices. While the test of the memory array within the cache is usually accomplished resorting to BIST circuitry implementing March test inspired solutions, testing the cache controller logic poses some specific issues, mainly stemming from its limited accessibility. One possible solution consists in letting the processor execute suitable test programs, allowing the detection of possible faults by looking at the results they produce. 2

In this paper we face the issue of generating suitable programs for testing the replacement logic in set-associative caches that implement a deterministic replacement policy. A test program generation approach based on modeling the replacement mechanism as a Finite State Machine (FSM) is proposed. Experimental results with a cache implementing a LRU policy are provided to assess the effectiveness of the method. 3

IC manufacturing cost most at test and validation processor Not enough methodology to cope with all testing issue for cache Cache testing approaches Hardware based Usually modifies initial design in order to support testing procedures Algorithm based March-like program test data cache Require special system feature to write/read main memory when the cache is disabled focusing on testing memory element not cache controller Software-based Self-Test (SBST) depend on effective test program 4

5 SBST Data cache Processor Functional test of processor [7] Functional test of processor [7] A hybrid method for data & instruction controller [9] A hybrid method for data & instruction controller [9] Test cache memory module & control logic On the Generation of Functional Test Programs for the Cache Replacement Logic This paper: Direct mapped data cache [16] Direct mapped data cache [16] Data controller [8] Data controller [8] Determine cache Hit or miss by access cycle which is counter Executing suitable program by ISA instruction and checking the result to detect faults Determine cache Hit or miss by I-IP which observes response and generates error signal

Focus on the data part of cache and replacement mechanism of cache controller Selecting the effective address of every memory access Checking expected results is more complex Not causing produce wrong results, but slowing down its performance Some mechanism able to verify cache hit or miss as expected As cache monitor 6

Build FSM of the replacement mechanism Implementation machine seen as a black box Observing I/O behavior Generate a test sequence for testing replacement mechanism Finding a tour to traverse every edge generating the sequence of addresses to traverse all the transitions 7

Input I n address stored in the n ways of cache set Initial state Some address produce a cache miss for transfer new state Output O Checking hit or miss by the cache monitor State S Permutation of n way which way can be replaced In an n-way set associative, each state has n+1 outgoing transitions n transitions produce a hit 1 transition produces a miss 8

9 s 0 : w 1 w 2 w 3 s 4 : w 3 w 1 w 2 s 2 : w 2 w 1 w 3 t 1 : hit(w 1 ) t 8 : hit(w 3 ) t 7 : hit(w 2 ) t 9 : miss LRU MRU t 15 : hit(w 1 ) t 19 : hit(w 1 ) s 1 : w 1 w 3 w 2 t 10 : hit(w 2 )

How to generate a transition tours Chinese Postman Problem (CPP) Find the shortest tour which every edge is traversed at least once Using in the undirected graph Floyd-Warshall algorithm A sequence of memory accesses that identified the current state indirectly by cache monitor Back to the original state at the end of sequence 1. access address (A n+1 ) to remove address A n which in the way W n 2. read A n again that will replaced A n-1 (in the W n-1 ) and check cache miss/hit 3.read A n-1 again and check miss/hit. Repeat step 3 for all the ways 4. read n-1 addresses which in the way to cause hit and back to the original state 10

11 LRUMRU s 0 : w 1 w 2 w 3 s 4 : w 3 w 1 w 2 s 3 : w 2 w 3 w 1 A 1 : miss A 3 : miss A 2 : miss A 3 : hit(w 2 ) A 2 : hit(w 1 ) A 4 : miss Initial state

12 s 2 : w 2 w 1 w 3 s 5 : w 3 w 2 w 1 s 1 : w 1 w 3 w 2 LRU MRU 1 A 4 : miss A 3 : miss 2 A 2 : hit(w 2 ) 3 Wrong at the Initial state error

How many instructions in the test program Clock cycle for the simulation How much Fault coverage at the stuck-at fault Which kind of the faults Comparing with ? Compare with March C- in the [16] Not compare with reference [8] and [9] 13

LEON2 processor with a 3-way data cache Write through policy Write no-allocate on a write miss LRU replacement Stuck at fault Cache controller: LRU: March C-Proposal Method Instructions (lines) Sizes (byte) Clock cycle217 K571 K Fault coverage (%)89%100%

Present a generic testing method for replacement mechanism of cache controller Based on the FSM model of circuitry and produce a sequence of memory operation to excite the replacement mechanism It can be implementation for n-way and any replacement policy My comment Another method to verify cache controller How to select effective address to excite the controller of instruction cache 15

16