Universität Dortmund. ARM Architecture

Similar documents
ARM ARCHITECTURE. Contents at a glance:

COMP3221: Microprocessors and. and Embedded Systems. Instruction Set Architecture (ISA) What makes an ISA? #1: Memory Models. What makes an ISA?

EE 354 Fall 2015 Lecture 1 Architecture and Introduction

ARM Processors for Embedded Applications

COMP2121: Microprocessors and Interfacing. Instruction Set Architecture (ISA)

Lecture 4: ISA Tradeoffs (Continued) and Single-Cycle Microarchitectures

15CS44: MICROPROCESSORS AND MICROCONTROLLERS. QUESTION BANK with SOLUTIONS MODULE-4

COMPUTER STRUCTURE AND ORGANIZATION

ELC4438: Embedded System Design Embedded Processor

Architectures & instruction sets R_B_T_C_. von Neumann architecture. Computer architecture taxonomy. Assembly language.

Page 1. Structure of von Nuemann machine. Instruction Set - the type of Instructions

Latches. IT 3123 Hardware and Software Concepts. Registers. The Little Man has Registers. Data Registers. Program Counter

CISC RISC. Compiler. Compiler. Processor. Processor

The ARM Cortex-M0 Processor Architecture Part-1

CSEE 3827: Fundamentals of Computer Systems

ARM Ltd. ! Founded in November 1990! Spun out of Acorn Computers

ECE 486/586. Computer Architecture. Lecture # 7

18-349: Embedded Real-Time Systems Lecture 2: ARM Architecture

Final Lecture. A few minutes to wrap up and add some perspective

AVR Microcontrollers Architecture

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

Computer and Hardware Architecture I. Benny Thörnberg Associate Professor in Electronics

Computer Systems. Binary Representation. Binary Representation. Logical Computation: Boolean Algebra

ARM Processor. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

CPE300: Digital System Architecture and Design

ELCT 912: Advanced Embedded Systems

Lecture 4: Instruction Set Architecture

Chapter 5. Introduction ARM Cortex series

Contents of this presentation: Some words about the ARM company

Instruction Set Architecture ISA ISA

CMSC Computer Architecture Lecture 2: ISA. Prof. Yanjing Li Department of Computer Science University of Chicago

EEM870 Embedded System and Experiment Lecture 3: ARM Processor Architecture

ARM processor organization

AND SOLUTION FIRST INTERNAL TEST

CN310 Microprocessor Systems Design

Real instruction set architectures. Part 2: a representative sample

Advanced Microcontrollers Grzegorz Budzyń Lecture. 1: Introduction

Processing Unit CS206T

ECE 471 Embedded Systems Lecture 2

Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015

Processor Design. Introduction, part I

Reminder: tutorials start next week!

Chapter 2: Instructions How we talk to the computer

Microprocessors and Microcontrollers. Assignment 1:

Embedded Computing Platform. Architecture and Instruction Set

New STM32 F7 Series. World s 1 st to market, ARM Cortex -M7 based 32-bit MCU

Introduction to the ARM Architecture. or: a loose set of random facts blatantly copied from tech sheets and the Architecture Ref.

ELEC / Computer Architecture and Design Fall 2013 Instruction Set Architecture (Chapter 2)

Instruction Set Overview

CHAPTER 5 A Closer Look at Instruction Set Architectures

Chapter 15 ARM Architecture, Programming and Development Tools

General Purpose Processors

Homework 5. Start date: March 24 Due date: 11:59PM on April 10, Monday night. CSCI 402: Computer Architectures

Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015

ASSEMBLY LANGUAGE MACHINE ORGANIZATION

The Nios II Family of Configurable Soft-core Processors

Hi Hsiao-Lung Chan, Ph.D. Dept Electrical Engineering Chang Gung University, Taiwan

Introduction CHAPTER IN THIS CHAPTER

CHAPTER 4 MARIE: An Introduction to a Simple Computer

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 4. The Processor

COMPUTER ORGANIZATION AND DESI

Instruction Set Principles and Examples. Appendix B

ARM Cortex-M4 Programming Model

A First Look at Microprocessors

CS 24: INTRODUCTION TO. Spring 2018 Lecture 3 COMPUTING SYSTEMS

MICROPROCESSORS AND MICROCONTROLLERS 15CS44 MODULE 4 ARM EMBEDDED SYSTEMS & ARM PROCESSOR FUNDAMENTALS ARM EMBEDDED SYSTEMS

3.1 Description of Microprocessor. 3.2 History of Microprocessor

Slides for Lecture 6

Typical Processor Execution Cycle

Computer Architecture Dr. Charles Kim Howard University

CS6303 Computer Architecture Regulation 2013 BE-Computer Science and Engineering III semester 2 MARKS

ISA: The Hardware Software Interface

Amber Baruffa Vincent Varouh

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.

EE 4980 Modern Electronic Systems. Processor Advanced

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: MIPS Instruction Set Architecture

ECE 471 Embedded Systems Lecture 3

ARM Processor. Dr. P. T. Karule. Professor. Department of Electronics Engineering, Yeshwantrao Chavan College of Engineering, Nagpur

Chapter 4. The Processor Designing the datapath

EE 8217 *Reconfigurable Computing Systems Engineering* Sample of Final Examination

Basic Computer Architecture

MARIE: An Introduction to a Simple Computer

Introduction to Microcontrollers

CSCE 5610: Computer Architecture

MICROPROCESSOR BASED SYSTEM DESIGN

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

EC 513 Computer Architecture

Chapter 4. Instruction Execution. Introduction. CPU Overview. Multiplexers. Chapter 4 The Processor 1. The Processor.

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 4. The Processor

COMPUTER ORGANIZATION AND ARCHITECTURE

Copyright 2016 Xilinx

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 12 Processor Structure and Function

ARM Processor Architecture

ARM Architecture and Instruction Set

CS31001 COMPUTER ORGANIZATION AND ARCHITECTURE. Debdeep Mukhopadhyay, CSE, IIT Kharagpur. Instructions and Addressing

ECE2049 E17 Lecture 4 MSP430 Architecture & Intro to Digital I/O

Overview of Computer Organization. Outline

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 14 Instruction Level Parallelism and Superscalar Processors

UNIT 2 (ECS-10CS72) VTU Question paper solutions

Chapter 13 Reduced Instruction Set Computers

Transcription:

ARM Architecture

The RISC Philosophy Original RISC design (e.g. MIPS) aims for high performance through o reduced number of instruction classes o large general-purpose register set o load-store architecture o fixed length instructions o pipelines enables simpler hardware, therefore enabling it to scale to higher operating frequencies Joseph Yiu, The Definitive Guide to ARM Cortex -M3 and Cortex -M4 Processors - 3rd Edition, Authors: Joseph Yiu ISBN: 9780124080829, 2013 Cortex-M4 Devices Generic User Guide - ARM DUI 0553A (available online from ARM) ARM Cortex -M4 Processor Technical Reference Manual (available online from ARM)

A Processor Architecture Refresher

Registers Basic Processor-Based System Processor core Cache/SRAM memory I/O Interface Main memory Storage memory Address bus, data bus, and bus control signals

System Components The basic components: Processor with its associated temporary memory (registers and cache if available) for code execution Main memory and secondary memory where code and data are temporarily and permanently stored Input and output modules that provide interfaces between the processor and the user Connected through an interface bus that consists of Address, Data, and Control signals e.g., AMBA bus for the ARM-based processor

Memory Hierarchy A typical processor is supported by: on-board main memory (e.g. SDRAM up to GB) on-chip or on-die cache memory (e.g. SRAM KB to MB) on-die registers Some processors also provide general purpose onchip SRAM (e.g. embedded processor) which may be configured as SRAM/Cache combination (e.g. TI s DSP) Typically, a processor also utilizes secondary nonvolatile memory for permanent code and data storage like Flash-based memory and hard disks

Address Space The address space of a processor depends on its address decoding mechanism Its size will depend on the number of address bits used Depending on the processor design, there may be two types of address space one is used by normal memory access another one is reserved for I/O peripheral registers (control, status, and data) need extra control signal or special means of accessing the alternate address space

Address Space (con t) Refer to the range of addresses that can be accessed by the processor, determined by the number of address bit utilized in the processor architecture Some processor families (e.g. ARM) utilize only one address space for both memory and I/O devices i.e. everything is mapped in the same address space I/O I/O Reg I/O Reg 0xFFFFFFFF Processor Memory Data Code 0x00000000

Memory Mapped vs I/O Mapped Some processor families have two address spaces. E.g., for the x86 processor, memory and I/O devices can be mapped in two different address spaces: memory address space and I/O address space 0xFFFF 0xFFFFFFFF I/O Reg Data Processor Code 0x0000 I/O Reg I/O Address Space Data Code Memory Address Space 0x00000000

Memory System Architectures Two types of information are found in a typical program code: i. Instruction codes for execution ii. Data that is used by the instruction codes Two classes of memory systems designed to store the information: i. von Neumann architecture ii. Harvard architecture

von Neumann Architecture The von Neumann architecture utilizes only one memory bus for both instruction fetching and data access simplifies the hardware and glue logic design code and data located in the same address space Data Table Data FFFFh Processor Single path (bus) for both Code & Data Code Data Code 0000h

von Neumann Features Single memory interface bus simplifies the hardware and glue logic design More efficient use of memory code and data can reside in the same physical memory chip More flexible programming style e.g., can include self-modified code But data may overwrite code (e.g. due to program bug) need memory protection (e.g. hardware-based MPU) Bottleneck in code and data transfer only one memory bus for both data and code fetching

Harvard Architecture The Harvard architecture utilizes separate instruction bus and data bus code and data may still share the same memory space Data FFFFh Data Separate bus for Code & Data Processor Data Code 8000h 7FFFh Code Code 0000h

Harvard Features Separate instruction and data buses allow code and data access at the same time which gives improved performance provide better support for instruction pipeline operations and shorter instruction execution time allow different sizes of data and instructions to be used which results in more flexibility do not incur any code corruption by data which makes the operations more robust But more sophisticated hardware glue logic is required to support multiple interface buses Cortex-M4 core is based on the Harvard architecture with separate buses for instructions and data

Architecture Variations Independent data and code memory but with one shared bus (e.g. 8051) Data Data Data FFFFh 0000h Processor Code Code Code FFFFh 0000h FFFFh Two separate internal bus for code & data (e.g. ARM9) Processor Code Cache Data Cache Data Code Data Code 0000h

Top Boot and Bottom Boot Different processor families use different locations for their reset vectors for boot-up. Examples: x86 processors boot up from the top of the memory space ARM processors boot up from the bottom of its memory space FF..FFh Reset vector FF..FFh Data Processor Data Processor Data Program Data Reset vector 00..00h Program 00..00h

Processor Size Processor size is described in terms of bits (e.g. an 8-bit or 32-bit processor) corresponds to the data size that can be manipulated at a time by the processor typically reflected in the size of the processor (internal) data path and register bank An 8-bit processor can only manipulate one byte of data at a time, while a 32-bit processor can handle one 32-bit double word sized data at a time even though the data content may only be of single byte size

Data Organization in Memory Typically, memory contains a storage locations that can store data of a certain fixed size most commonly of the 8-bit (byte) size Each location is provided with a unique address. Depending on the data path size of the processor the memory content is accessible in the size of an 8-bit byte, a 16-bit half word, a 32-bit word, and even a 64-bit double word

Data Alignment A 32-bit data consists of four bytes of data, which are stored in four successive memory locations Data and code must be aligned to the respective address size boundary. e.g., for a 32-bit system which aligns to the word boundary, the lowest two address bits equal to zero But what is the order of the four bytes of data? depends on the Endianness adopted In the Little Endian format, the least significant byte (LSB) is stored in the lowest address of the memory, with the most significant byte (MSB) stored in the highest address location of the memory. In the Big Endian format, the least significant byte (LSB) is stored in the highest address of the memory, with the most significant byte (MSB) stored in the lowest address location of the memory.

Data Endianness MSB LSB Memory Address Space Big Endian Little Endian Memory Address Space 0x000000 0x000000

Comparison Little Endian The order matched with processor instructions typically process numbers from LSB to MSB The byte number corresponds with the address offset, suitable for multi-precision data manipulation Big Endian Can compare numerical data by just accessing the zero offset byte Corresponds to the written order of number (starting with the most significant digit) Some processors (e.g. ARM) have bi-endian hardware that feature switchable endianness

Inside a Processor Processor datapath Multi-ported register file

Registers The most fundamental storage area in the processor is closely located to the processor provides very fast access, operating at the same frequency as the processor clock but is of limited quantity (typically less than 100) Most are of the general purpose type and can store any type of information: data e.g., timer value, constants address e.g., ASCII table, stack Some are reserved for specific purposes program counter (r15 in ARM) program status register (CPSR in ARM)

Instructions Instruction set architecture defines the mapping of assembly instructions to machine code add 1 2 3 // r3 = r1 + r2 31-25 24-22 21-19 18-16 15-3 2-0 unused opcode rega regb unused destr

CISC Features of the Complex Instruction Set Computing (CISC): many instructions complex instructions o each instruction can execute several low level operations complex addressing modes o smaller number of registers needed A semantically rich instruction set is accommodated by allowing instructions of variable length

RISC RISC Reduced Instruction Set Computing Small instruction sets Simpler instructions Fixed length instructions Large number of registers Simpler addressing mode with the Load/Store instructions for accessing memory

Advantages of RISC Simpler instructions one clock per instruction gives faster execution than on a CISC processor with the same clock speed Simpler addressing mode faster decoding Fixed length instructions faster decoding and better pipeline performance Simpler hardware less silicon area less power consumption

RISC Memory Footprint The RISC processor typically needs more memory than a CISC processor does to store the same program complex functions performed in a single but slower instruction in a CISC processor may require two, three, or more simpler instructions in a RISC processor To reduce memory requirements and cost ARM provides the 16-bit Thumb instruction set as an option for its RISC processor cores

Limitations of RISC Fewer instructions than CISC as compared to CISC, RISC needs more instructions to execute one task code density is less needs more memory No complex instructions no hardware support for division or floating-point arithmetic operations needs a more complex compiler and longer compiling time But ARM also adds DSP-like instructions to support commonly used signal processing functions

Instruction Code Format Opcode encoding depends on the number of bits used Example: For ARM, all instructions are of 32-bit length, but only 8 bits (bit 20 to 28) are used to encode the instruction. Hence a total of 28 = 256 different instructions are possible A typical instruction is encoded with a specific bit pattern that consists of the following: an opcode field specifying the operation to be performed an operand(s) identification (address) field that depends on the modes of addressing; o this provides the address of the register/memory location (s) that store the operand(s), or the operand itself.

Instruction Opcode Types General categories of instruction operations: Data transfer e.g., move, load, and store Data manipulation e.g., add, subtract, logical operation Program control e.g., branch, subroutine call

Operand Addressing Types Immediate addressing operand is given in the instruction Register addressing operand is stored in a register Direct addressing operand is stored in memory, with the address given in the instruction Indirect (Index) addressing operand is stored in memory, with the address given in a register (address and an offset given in the instruction) Implied addressing implicit location like stack and program counter

Instruction Execution Multiple stages are involved in executing an instruction. Example: 1) Fetching the instruction code 2) Decoding the instruction code 3) Executing the instruction code Hence multiple processor clock cycles are needed to execute one single instruction. 1st 2nd Fetch Instruction Decode Instruction Execute Instruction Fetch Instruction Decode Instruction Execute Instruction time

Instruction Pipeline The pipeline allows concurrent execution of multiple different instructions execution of different stages of multiple instructions at the same time During a normal operation while one instruction is being executed the next instruction is being decoded and a third instruction is being fetched from memory allows effective throughput to increase to one instruction per clock cycle

Pipelined Execution 3-stage pipeline for instruction executions Fetch Decode Execute Pipeline design allows effective throughput to increase to one instruction per clock cycle Allows the next instruction to be fetched while still decoding or executing the previous instructions 1st 2nd 3rd Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute time

Pipeline Hazards Not always one clock per cycle! Example: branch instruction breaks the pipe Two stall cycles don t know if and where to jump

IPC Instructions-per-Clock For perfect pipeline it is 1 It s always lower in reality e.g. 0.8 20% of stall cycles it is not uncommon (1 over 5 instructions is a branch ) CPI = 1/IPC fclk vs. IPC tradeoff Higher speed deeper pipeline more stalls Difficult design decision Deep pipelines come with with increased complexity

ARM Processors Families 38

ARM Processors Architectures (2) Key attributes: Implementation size, performance, and very low power. Architectures types: ARMv4T architecture introduced the 16-bit Thumb instruction set alongside the 32-bit ARM instruction set. ARMv5TEJ architecture introduced arithmetic support for digital signal processing (DSP) algorithms. ARMv6 architecture introduced an array of new features including the Single Instruction Multiple Data (SIMD) operations. ARMv7 architecture implementsthumb-2 technology. Cortex-A implements a virtual memory system architecture based on an MMU, an optional NEON processing unit for multimedia applications and advanced hardware Floating Point. Cortex-R implements a protected memory system architecture based on an MPU (memory protection unit). Cortex-M Microcontroller profile designed for fast interrupt processing. ARMv8 implementing 64bit instruction set Alberto Macii - Politecnico di Torino 39

Cortex M family - Comparison

Embedded ARM Cortex Processors 41 Cortex M0: Ultra low gate count (less that 12 K gates). Ultra low-power (3 µw/mhz ). 32-bit processor.

Embedded ARM Cortex Processors (2) 42 Cortex M1: The first ARM processor designed specifically for implementation in FPGAs. Supports all major FPGA vendors. Easy migration path from FPGA to ASIC.

Embedded ARM Cortex Processors 43 Cortex M3: The mainstream ARM processor for microcontroller applications. High performance and energy efficiency.

Cortex M3 Central Core 44 Harvard architecture: Separate Instruction & Data buses enable parallel fetch & store. Advanced 3-Stage Pipeline: Includes Branch Forwarding & Speculation Additional Write-Back via Bus Matrix. Alberto Macii - Politecnico di Torino

Embedded ARM Cortex Processors Cortex M4 Embedded processor for DSP with FPU 45

Cortex M4 ISA

Cortex M7 2x Perf of M4

STM32 platform 2 8 product series / 30 product lines High-performance STM32F2x5 STM32F2x7 STM32F401 STM32F411 STM32F405/415 STM32F407/417 STM32F427/437 STM32F429/439 STM32F746/756 Mainstream STM32F030 Value line STM32F0x1 STM32F0x2 STM32F0x8 STM32F100 Value line STM32F101 STM32F102 STM32F103 STM32F105/107 STM32F301 STM32F302 STM32F303 STM32F3x4 STM32F373 STM32F3x8 Ultra-low-power STM32L0x1 STM32L0x2 STM32L0x3 STM32L100 Value line STM32L151/152 STM32L162 STM32L47x STM32L48x STM32L43x STM32L42x Cortex-M0 Cortex-M0+ Cortex-M3 Cortex-M4 Cortex-M7

Application ARM Cortex Processors 49 Cortex A15: Low-power. Suitable for: Smartphones. Mobile Computing. Digital Home Entertainment. Wireless Infrastructure. Low-power Servers.

ARMv8 64bit Premium smartphones Enterprise servers Home server Wireless Infrastructure Digital TV

Cortex A57 Block Diagram