ARM Based microcontrollers Asst. Prof. Dr. Alper ŞİŞMAN.

Slides:



Advertisements
Similar presentations
Cortex-M3 Implementation Overview. Chapter 6 in the reference book.
Advertisements

Computer Architecture
Computer Science Education
Microprocessors A Beginning.
3D Graphics Content Over OCP Martti Venell Sr. Verification Engineer Bitboys.
Lecture 4 Introduction to Digital Signal Processors (DSPs) Dr. Konstantinos Tatas.
High-performance Cortex™-M4 MCU
Dr. Rabie A. Ramadan Al-Azhar University Lecture 3
Computer Science & Engineering
Computer Organization and Architecture
Processor System Architecture
Chapter 12 CPU Structure and Function. CPU Sequence Fetch instructions Interpret instructions Fetch data Process data Write data.
Computer Organization and Architecture
Computer Organization and Architecture
The ARM7TDMI Hardware Architecture
Introduction to ARM Architecture, Programmer’s Model and Assembler Embedded Systems Programming.
GCSE Computing - The CPU
Unit-1 PREPARED BY: PROF. HARISH I RATHOD COMPUTER ENGINEERING DEPARTMENT GUJARAT POWER ENGINEERING & RESEARCH INSTITUTE Advance Processor.
Inside The CPU. Buses There are 3 Types of Buses There are 3 Types of Buses Address bus Address bus –between CPU and Main Memory –Carries address of where.
Group 5 Alain J. Percial Paula A. Ortiz Francis X. Ruiz.
ARM Instructions I Prof. Taeweon Suh Computer Science Education Korea University.
Hardware Overview Net+ARM – Well Suited for Embedded Ethernet
ARM Processor Architecture
Lecture 12 Today’s topics –CPU basics Registers ALU Control Unit –The bus –Clocks –Input/output subsystem 1.
Topic 8: Data Transfer Instructions CSE 30: Computer Organization and Systems Programming Winter 2010 Prof. Ryan Kastner Dept. of Computer Science and.
Processor Structure & Operations of an Accumulator Machine
Intel
Basic Microcomputer Design. Inside the CPU Registers – storage locations Control Unit (CU) – coordinates the sequencing of steps involved in executing.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
Introduction of Intel Processors
Top Level View of Computer Function and Interconnection.
Computer Design Basics
ARM for Wireless Applications ARM11 Microarchitecture On the ARMv6 Connie Wang.
Parallel architecture Technique. Pipelining Processor Pipelining is a technique of decomposing a sequential process into sub-processes, with each sub-process.
Chapter 4 MARIE: An Introduction to a Simple Computer.
Computer Hardware A computer is made of internal components Central Processor Unit Internal External and external components.
Different Microprocessors Tamanna Haque Nipa Lecturer Dept. of Computer Science Stamford University Bangladesh.
80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types.
Computer and Information Sciences College / Computer Science Department CS 206 D Computer Organization and Assembly Language.
Pentium Architecture Arithmetic/Logic Units (ALUs) : – There are two parallel integer instruction pipelines: u-pipeline and v-pipeline – The u-pipeline.
Computer operation is of how the different parts of a computer system work together to perform a task.
The Central Processing Unit (CPU)
System Hardware FPU – Floating Point Unit –Handles floating point and extended integer calculations 8284/82C284 Clock Generator (clock) –Synchronizes the.
Different Microprocessors Tamanna Haque Nipa Lecturer Dept. of Computer Science Stamford University Bangladesh.
Fundamentals of Programming Languages-II
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
1 3 Computing System Fundamentals 3.2 Computer Architecture.
Aditya Dayal M. Tech, VLSI Design ITM University, Gwalior.
ARM7 TDMI INTRODUCTION.
1 Chapter 1 Basic Structures Of Computers. Computer : Introduction A computer is an electronic machine,devised for performing calculations and controlling.
1 load [2], [9] Transfer contents of memory location 9 to memory location 2. Illegal instruction.
ARM Embedded Systems
ARM Organization and Implementation
Dr. Michael Nasief Lecture 2
An Introduction to Microprocessor Architecture using intel 8085 as a classic processor
Number Representations and Basic Processor Architecture
Morgan Kaufmann Publishers Computer Organization and Assembly Language
Control Unit Introduction Types Comparison Control Memory
Computer Architecture
The ARM Instruction Set
ARM Introduction.
Modified from notes by Saeid Nooshabadi
ARM ORGANISATION.
ADSP 21065L.
ARM Load/Store Instructions
ARM920T Processor This training module provides an introduction to the ARM920T processor embedded in the AT91RM9200 microcontroller.We’ll identify the.
Presentation transcript:

ARM Based microcontrollers Asst. Prof. Dr. Alper ŞİŞMAN

ARM Cortex Processors ARM Cortex-A family (v7-A): – Applications processors for full OS and 3 rd party applications ARM Cortex-R family (v7-R): – Embedded processors for real-time signal processing, control applications ARM Cortex-M family (v7-M): – Microcontroller-oriented processors for MCU and SoC applications

Relative Performance

STM32F40x HW Architecture The main system consists of 32-bit multilayer Advanced High-Speed bus (AHB) matrix that interconnects 8 master units to 7 slaves. The bus matrix provides access from a master to a slave, enabling concurrent access and efficient operation even when several high- speed peripherals work simultaneously. There are 2 bus structure connected to the matrix: AHB and APB systems.

Advanced Microcontroller Bus Architecture (AMBA) System High Performance ARM processor High-bandwidth on-chip RAM High Bandwidth External Memory Interface DMA Bus Master APB Bridge KeypadUARTPIOTimer AHB APB High Performance Pipelined Burst Support Multiple Bus Masters Low Power Non-pipelined Simple Interface

I-Bus: Instruction bus of the ARM core. This bus is used by the core to fetch instructions. The target of this bus is a memory containing code. D-Bus: Databus of ARM core. This bus is used by the core for literal load and debug access. The target of this bus is a memory containing code or data. S-Bus: System bus. This bus is used to access data located in a peripheral or in SRAM. Instructions may also be fetch on this bus (less efficient than ICode). The targets of this bus are the internal SRAM1, SRAM2 and SRAM3, the AHB1 peripherals including the APB peripherals, the AHB2 peripherals and the external memories through the FSMC/FMC.

Direct Memory Access (DMA) A feature of modern computers that allows certain hardware subsystems within the computer to access system memory independently of the central processing unit (CPU). CPU only initiates the process and DMA controller sends an interrupt when operation is done. DMA Memory Bus: Direct memory access bus. It is used by the DMA to perform transfer to/from memories. The targets of this bus are data memories. DMA peripheral bus: This bus is used by the DMA to access AHB peripherals or to perform memory-to- memory transfers. The targets of this bus are the AHB and APB peripherals plus data memories.

Other DMA blocks Ethernet DMA BUS: This bus is used by the Ethernet DMA to load/store data to a memory. The targets of this bus are data memories. USB OTG HS DMA bus: This bus is used by the USB OTG DMA to load/store data to a memory. The targets of this bus are data memories.

Bridges AHB/APB Bridges: The two AHB/APB bridges, APB1 and APB2, provide full synchronous connections between the AHB and the two APB buses, allowing flexible selection of the peripheral frequency.

Memory Organization

See the memory map on page 60 of the doc. RM0090.

ARM MCU DATAPATH The Cortex M3 is based on a Harvard architecture, so there are separate instruction and data buses.

Datapath Register Bank Mul/Div Address Incrementer ALU B A I_HADDR Address Register Barrel Shifter Writeback ALU Read Data Register Write Data Register Instruction Decode I_HRDATA D_HWDATA D_HRDATA Address Incrementer D_HADDR Address Register INTADDR

Instructions come in along the AHB instruction read bus to the decode stage. I_HADDR is the Address bus on the instruction side bus. So there are separate read data and write data registers and a data address bus. All data processing is performed on registers, not directly on memory locations. So we can say something like ADD r0, r1, r1,LSL#1. R1 comes along both A and B buses,

Pipeline 3-stage fetch-decode-execute pipeline Each Flash memory read operation provides 128 bits from either four instructions of 32 bits

Adaptive real-time memory accelerator To release the processor full performance, the accelerator implements an instruction prefetch queue and branch cache. Prefetch on the I-Code bus can be used to read the next sequential instruction line from the Flash memory while the current instruction line is being requested by the CPU.

Reset & Clock Control There are three types of reset, defined as system Reset (RCC clock control & status register (RCC_CSR).), power Reset and backup domain Reset (RCC Backup domain control register (RCC_BDCR)). Clocks : The clock controller (RCC) provides a high degree of flexibility to the application and, guarantee the appropriate frequency for peripherals that need a specific clock like Ethernet, USB OTG FS and HS, I2S and SDIO. Each Hardware block has to be clocked before using The maximum frequency of the AHB domain is 168 MHz. The maximum allowed frequency of the high-speed APB2 domain is 84 MHz. The maximum allowed frequency of the low-speed APB1 domain is 42 MHz See all registers about RCC on page 211 of the doc. RM0090

Instruction Set (Brief inf.) Load/Store Data Operations MOVPC, Rm Bcc BL BLX Change of Flow

Data Processing Instructions Consist of : – Arithmetic: ADDADCSUBSBCRSBRSC – Logical: ANDORREORBIC – Comparisons: CMPCMNTSTTEQ – Data movement: MOVMVN These instructions only work on registers, NOT memory. Syntax: { }{S} Rd, Rn, Operand2 Comparisons set flags only - they do not specify Rd Data movement does not specify Rn Second operand is sent to the ALU via barrel shifter.

Using Barrel Shifter Register, optionally with shift operation – Shift value can be either be: 5 bit unsigned integer Specified in bottom byte of another register. – Used for multiplication by constant Immediate value – 8 bit number, with a range of Rotated right through even number of positions – Allows increased range of 32-bit constants to be loaded directly into registers Result Operand 1 Barrel Shifter Operand 2 ALU

Single Register Data Transfer LDRSTR Word LDRBSTRB Byte LDRHSTRH Halfword LDRSB Signed byte load LDRSH Signed halfword load Memory system must support all access sizes Syntax: – LDR { }{ } Rd, – STR { }{ } Rd, e.g. LDREQB