Prefetch Cache Module

Similar documents
32-bit Microcontrollers. PIC32 Microcontroller Family with USB On-The-Go.

PIC32&Overview& E155&

32 bit Micro Experimenter Board Description and Assembly manual

Introducing the 32 bit Micro Experimenter

ATHENA32 PIC32 Evaluation Board ATHENA32. Product Datasheet. Francesco Ficili Date 13/01/2019. Pag. 1

Hello, and welcome to this presentation of the STM32L4 System Configuration Controller.

Hello, and welcome to this presentation of the STM32L4 power controller. The STM32L4 s power management functions and all power modes will also be

VLSI Design Lab., Konkuk Univ. Yong Beom Cho LSI Design Lab

AVR Training Board-I. VLSI Design Lab., Konkuk Univ. LSI Design Lab

Systems in Silicon. Converting Élan SC400/410 Design to Élan SC520

Module Introduction! PURPOSE: The intent of this module, 68K to ColdFire Transition, is to explain the changes to the programming model and architectu

Proven 8051 Microcontroller Technology, Brilliantly Updated

Embedded Systems Lab Lab 1 Introduction to Microcontrollers Eng. Dalia A. Awad

ET-PIC 24 WEB-V1. o Central Processing Unit (CPU) o System. o nanowatt Power Managed Modes. o Analog Features

AT-501 Cortex-A5 System On Module Product Brief

DEVBOARD3 DATASHEET. 10Mbits Ethernet & SD card Development Board PIC18F67J60 MICROCHIP

PIC-32MX development board Users Manual

PRODUCT PREVIEW TNETV1050 IP PHONE PROCESSOR. description

Getting Started with SKPIC32

Hello, and welcome to this presentation of the STM32 Flash memory interface. It covers all the new features of the STM32F7 Flash memory.

Introduction to Microchip-SIMULINK Blocksets and MATLAB Plug-in for MPLAB IDE

Memory Expansion. Lecture Embedded Systems

Section 1. Introduction

AN4749 Application note

Arduino Uno R3 INTRODUCTION

Introduction to Microcontroller Apps for Amateur Radio Projects Using the HamStack Platform.

DESIGN OF A CUBESAT PAYLOAD INTERFACE. Jason Axelson Department of Electrical Engineering University of Hawai i at Mānoa Honolulu, HI ABSTRACT

STM32: Peripherals. Alberto Bosio November 29, Univeristé de Montpellier

STM32 MICROCONTROLLER

Interconnects, Memory, GPIO

Basic Components of Digital Computer

ARDUINO MEGA INTRODUCTION

MPLAB SIM. MPLAB IDE Software Simulation Engine Microchip Technology Incorporated MPLAB SIM Software Simulation Engine

Microprocessor Systems

MICROPROCESSOR BASED SYSTEM DESIGN

Microprocessors/Microcontrollers

ARM Cortex-M4 Architecture and Instruction Set 1: Architecture Overview

MICROPROCESSORS B (17.384) Spring Lecture Outline

Overview The Microcontroller The Flex Board Expansion boards Multibus board Demo board How to: Compile demo Flash & Run Demos

Manual of Board ET-PIC STAMP 18F8722-K22 ET-PIC STAMP 18F8722-K22

Zynq-7000 All Programmable SoC Product Overview

Ultra Low Power Microcontroller - Design Criteria - June 2017

Lab 1 Introduction to Microcontroller

MT2 Introduction Embedded Systems. MT2.1 Mechatronic systems

Getting Started With the Stellaris EK-LM4F120XL LaunchPad Workshop. Version 1.05

EMBEDDED MICROCONTROLLERS AND PROCESSOR DESIGN

PIC Microcontroller and

AVR Microcontrollers Architecture

Hello, and welcome to this presentation of the STM32L4 USB 2.0 Full Speed interface. It covers the features of this interface, which is widely used

Programming in the MAXQ environment

Am186ER/Am188ER AMD continues 16-bit innovation

Course Introduction. Purpose: Objectives: Content: Learning Time:

Unlocking the Potential of Your Microcontroller

M ICROCONTROLLER S OLUTIONS FOR CAN NETWORKING & HIGH-END INDUSTRIAL AND AUTOMOTIVE APPLICATIONS

Introduction to ARM LPC2148 Microcontroller

PIC32 Microcontroller Family with USB On-The-Go

OUTLINE. STM32F0 Architecture Overview STM32F0 Core Motivation for RISC and Pipelining Cortex-M0 Programming Model Toolchain and Project Structure

Rad-Hard Microcontroller For Space Applications

Release Notes for ADSP-CM41x EZ-Kit Lite Board Support Package For Keil MDK

Product Technical Brief S3C2440X Series Rev 2.0, Oct. 2003

Microcontroller Not just a case of you say tomarto and I say tomayto

ARM Cortex core microcontrollers 3. Cortex-M0, M4, M7

STM32F7 series ARM Cortex -M7 powered Releasing your creativity

EE 354 Fall 2015 Lecture 1 Architecture and Introduction

Hello and welcome to this Renesas Interactive module that provides an architectural overview of the RX Core.

AN4777 Application note

Section 6 Blackfin ADSP-BF533 Memory

eip-24/100 Embedded TCP/IP 10/100-BaseT Network Module Features Description Applications

LED Matrix Scrolling using ATmega32 microcontroller

THE LPC84X MCU FAMILY A MULTI-TESTER TOOL OFFERING FEATURES FOR YOUR NEXT IOT DESIGN

XMOS Technology Whitepaper

MYD-IMX28X Development Board

EFM32 Series 0: DMA (ARM PrimeCell µdma PL230)

16-bit Microcontrollers. PIC24 Microcontroller Family.

Embedded programming, AVR intro

Cirrus Logic Announces New ARM9-Based Embedded Processor Family Press Presentation February 2004

WS_CCESBF7-OUT-v1.00.doc Page 1 of 8

INDUSTRIAL TRAINING:6 MONTHS PROGRAM TEVATRON TECHNOLOGIES PVT LTD

Product Technical Brief S3C2412 Rev 2.2, Apr. 2006

Outline GPIO SPI UART. Ref. PIC Family Reference Manual:

MICROPROCESSORS B (17.384) Spring Lecture Outline

Microcontroller systems Lec 2 PIC18LF8722 Microcontroller s s core

2-Oct-13. the world s most energy friendly microcontrollers and radios

BC-USB-Kit Manual. First Edition. February, BeatCraft, Inc.

Z8 Encore! XP F1680 Series 8-Bit Flash Solution with Extended Peripherals

Hercules ARM Cortex -R4 System Architecture. Processor Overview

User Manual. LPC-StickView V3.0. for LPC-Stick (LPC2468) LPC2478-Stick LPC3250-Stick. Contents

AVR XMEGA TM. A New Reference for 8/16-bit Microcontrollers. Ingar Fredriksen AVR Product Marketing Director

Microcontroller: CPU and Memory

Microprocessors And Microcontrollers (Practical)

(Embedded) Systems Programming Overview

Pic24f Family Reference Manual Section 14. Timers

AT90SO36 Summary Datasheet

RZ Embedded Microprocessors

Chapter 7. Hardware Implementation Tools

Environmental Data Acquisition Using (ENC28J60)

Hello, and welcome to this presentation of the STM32F7 System Configuration Controller.

Advanced Embedded Systems

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

Typical applications where a CPLD may be the best design approach:

Transcription:

PIC32 TM Prefetch Cache Module 2008 Microchip Technology Incorporated. All Rights Reserved. PIC32 Prefetch Cache Module Slide 1 Hello and welcome to the PIC32 Prefetch Cache Module webinar. I am Nilesh Rajbharti, Applications Engineering Manager for PIC32 products. In next few minutes, I will provide a quick overview of the PIC32 Prefetch Cache Module. Let s begin. 1

Prefetch Cache MIPS M4K 32-bit Core DMA 2-Wire Debug USB OTG Bus Matrix Prefetch Cache Flash SRAM Interrupt Controller GPIOs VREG Peripheral Bus 16-bit PMP 10-bit ADC Input Capture Output Compare 16-bit Timer RTCC I 2 C UART SPI Analog Comparators 2008 Microchip Technology Incorporated. All Rights Reserved. PIC32 Prefetch Cache Module Slide 2 The Prefetch Cache module plays a key role in the performance of the PIC32 at higher frequencies. It keeps track of the instructions the CPU is executing and automatically prefetches next sequential instructions and stores them in a high speed cache memory. The PIC32 Prefetch Cache module is designed to cache the Flash memory content only. The PIC32 SRAM runs at the CPU speed and it does not need any cache memory. The PIC32 Prefetch Cache module provides multiple operating modes to suit an application s deterministic behavior. This block diagram shows where the Prefetch Cache module is located in the overall system block diagram. 2

Effect of Prefetch Cache Ideal Performance Cached Non-Cached 0 10 20 30 40 50 60 70 80 Processor Speed (MHz) 2008 Microchip Technology Incorporated. All Rights Reserved. PIC32 Prefetch Cache Module Slide 3 With that brief Prefetch Cache module introduction, let s see why the Prefetch Cache module is important. This graph shows three different scenarios. The Ideal scenario assumes that the Flash memory runs as fast as the CPU. It means that, as processor frequency is increased, the performance increases linearly. But in nearly all high-speed processors, the flash memory speed is limited to a specific frequency. For example, the PIC32 Flash memory runs at the maximum speed of 30 MHz. This restriction requires that as you increase the processor frequency beyond 30 MHz, the CPU must be programmed to insert one wait state for every read from the Flash memory. An operation beyond 60 MHz would require 2 wait states. Because of these wait states, the effective Flash throughput will be reduced. The Non-Cached line shows what happens when there is no prefetch cache module available and Flash memory is limited to 30 MHz. In this case, processor performance drops significantly as frequency is increased beyond the Flash speed of 30 MHz. The Cached line shows the performance when Prefetch Cache module is enabled. As you can see, the performance with the Prefetch Cache line enabled is significantly better than the Non-Cached scenario. The exact performance improvement depends on the code organization of the application. 3

Prefetch Cache Details 16x128-bit Cache Lines 128-bit Wide Flash PIC32 CPU 128-bit Wide Prefetch Buffer Individual enable/disable for Prefetch and Cache 4x32-bit or 8x16-bit instructions per line SW can Read, Write and Lock any line Up to 4 ROM Data lines 2 lines with address mask 2008 Microchip Technology Incorporated. All Rights Reserved. PIC32 Prefetch Cache Module Slide 4 Let s look at the construction of the Prefetch Cache module. The Prefetch Cache module consists of a prefetch buffer, cache memory and associated control logic. The SW may individually enable or disable the Prefetch Buffer or Cache memory. This level of control allows the application to achieve different level of determinisms. The prefetch buffer is a 128-bit buffer with integrated logic to automatically fetch the next 128-bit of data based on the current instruction the CPU is executing. The cache memory is divided into 16 lines of 128-bit data. Each line may hold either 4 32-bit instructions or 8 16-bit instructions. Out of 16 cache lines, SW may reserve up to 4 lines for ROM or constant data storage. This feature is useful if the application is going to make frequent accesses to constant data. All of the 16 lines are readable and writeable by the SW and can also be locked. Once a line is locked, the Prefetch Cache logic will not replace it with any new data. This feature is useful to increase the performance of a frequently used piece of code such as a small loop or interrupt prologue. With the address masking capability, the prefetch module can be programmed to return common prologue code for all interrupts. 4

Prefetch Cache Operation 16x128-bit Cache Lines 128-bit Wide Flash PIC32 CPU 1. CPU fetches a Flash location 2. Location not in Cache Cache Miss 3. Prefetch buffer fetches 128-bit of data containing location 4. 128-bit data is loaded in a line per LRU 5. Location content is returned to CPU 2008 Microchip Technology Incorporated. All Rights Reserved. PIC32 Prefetch Cache Module Slide 5 Now let s see how Prefetch Cache module operates. In Step 1, the CPU fetches a specific Flash location it could be for an instruction or a constant data. Step 2 Assume that this is the first time the CPU is accessing this location. It means that cache does not contain that particular location. This condition is called a Cache Miss. Step 3 Now that there was a cache miss, the cache logic instructs the prefetch buffer to read the Flash memory. The prefetch logic will wait a predetermined number of cycles before reading the Flash memory. Step 4 Once the 128-bit of data is loaded in the prefetch buffer, it is copied to an available cache line in cache. The cache controller uses Least Recently Used algorithm to determine which cache line to use. Step 5 Now that the requested location is in the cache, the cache module returns the content to the CPU. As CPU is executing the previously returned instruction, the prefetch logic automatically fetches the next 128-bit of data from Flash and keeps it ready in case the CPU needs it. 5

Where to Get More Information Visit www.microchip.com/pic32 Prefetch Cache Chapter in PIC32 Datasheet and Family Reference Manual Prefetch Code Examples in MPLAB C32 and on Microchip web site 2008 Microchip Technology Incorporated. All Rights Reserved. PIC32 Prefetch Cache Module Slide 6 So, you now have a high level understanding of PIC32 Prefetch Cache Module. To learn more, visit www.microchip.com/pic32. This site contains PIC32 Datasheet, Family Reference Manual and various other resources. This site also provides Prefetch Cache Module specific code examples using MPLAB C32 C Compiler. These same code examples are also available in the C32 compiler distribution. Thanks for your time. 6