Chapter 2 ARM Cortex-M3 Architecture - 3
Chapter 2 ARM Cortex-M3 Architecture - 3
Function Handling
Other Instructions
Exception Handling
IR Fire
Detector Exercise
Utility Intelligent
Intelligent Meters Machines Energy Efficient
Appliances Vending
Tele-parking toys
v4 v5 v6 v7
Halfword and Improved SIMD Instructions
Thumb-2
signed halfword interworking Multi-processing
/ byte support CLZ v6 Memory architecture
Architecture Profiles
Saturated arithmetic Unaligned data support
7-A - Applications
System mode DSP MAC
7-R - Real-time
instructions Extensions:
7-M - Microcontroller
Thumb Thumb-2 (6T2)
instruction set Extensions: TrustZone® (6Z)
(v4T) Jazelle (5TEJ) Multicore (6K)
Thumb only (6-M)
– Microcontroller-oriented Cortex-M0
12k gates...
for MCU and SoC applications
Source: Joe Bungo, The ARM Architecture
Architecture v7A
MMU
MMU (Memory Management Unit)
AXI
AXI (Advanced eXtensible Interface (AXI), the third generation
of AMBA interface defined in the AMBA 3 specification, is
targeted at high performance, high clock frequency system
designs and includes features that make it suitable for high
speed sub-micrometer interconnect:
•separate address/control and data phases
•support for unaligned data transfers using byte strobes
•burst based transactions with only start address issued
•issuing of multiple outstanding addresses with out of
order responses
•easy addition of register stages to provide timing
closure.
Optional features
– VFPv3 Vector Floating-Point
– NEON media processing engine
Source: ARM, ARM Processors and Architectures: A Comprehensive Overview, 2012
CoreSight debug
Advanced Power Management
Source: ARM, ARM Processors and Architectures: A Comprehensive Overview, 2012
Architecture v7R
AXI
Dual Issue
Architecture v6M
and v7M/v7ME
MPU (Memory
Protection Unit
optional)
3-stage pipeline
von Neuman architecture
AHB-Lite bus interface
Fixed memory map
1-32 interrupts
Low power support
Core configured with or
without debug
Source: ARM, ARM Processors and Architectures: A Comprehensive Overview, 2012
3-stage pipeline
von Neumann architecture
Optional MPU
AHB-Lite bus interface
Fixed memory map
1-240 interrupts
Serial wire or JTAG debug
Source: ARM, ARM Processors and Architectures: A Comprehensive Overview, 2012
ARMv7-M
Architecture
ARMv6-M
Architecture
2000
Max Frequency ((Mhz)
1500
1000
500
0
Cortex-A9
Cortex-M0 Cortex-M3 ARM7 ARM926 ARM1026 ARM1136 ARM1176 Cortex-A8
Dual-core
Max Freq (MHz) 50 150 184 470 540 610 750 1100 2000
Min Power (mW/MHz) 0.012 0.06 0.35 0.235 0.36 0.335 0.568 0.43 0.5
Source: Joe Bungo, The ARM Architecture
JTAG/CoreSight FLASH
ARM External
Processor
AMBA AXI
Memory
External/internal memories core Interface
nIRQ
SDRAM
nFIQ On chip
Can include ARM peripherals CoreLink
memory
Interrupt
– Interrupt controller Controller APB
AMBA APB
Bridge
– Other peripherals and Other
CoreLink
interfaces Peripherals
Custom
ARM based
Can include on-chip memory Peripherals
SoC
from ARM
Source: https://en.wikipedia.org/wiki/ARM_Cortex-M
High
Bandwidth AHB Timer
APB
External
Bridge
Memory Keypad
Interface
Arbiter
HADDR
HADDR HWDATA Slave
Master HWDATA
#1
HRDATA
#1
HRDATA
Address/Control
Slave
#2
Master
#2
Write Data
Slave
Read Data #3
Master
#3
Slave
#4
Decoder
00000000 <_start>:
0: 20000800 .word 0x20000800
4: 00000009 .word 0x00000009
00000008 <start>:
8: 200a movs r0, #10
a: 2100 movs r1, #0
0000000c <loop>:
c: 1809 adds r1, r1, r0
e: 3801 subs r0, #1
10: f47f affc bne.w c <loop>
00000014 <deadloop>:
14: f7ff bffe b.w 14 <deadloop>
Instruction
Fetch
Decode & Multiply & Divide Write
(Prefetch)
Register Read
Flags'
PCSrcD PCSrcE PCSrcM PCSrcW
Control
RegWriteD RegWriteE RegWriteM RegWriteW
Unit
MemtoRegD MemtoRegE
MemtoRegM MemtoRegW
27:26 MemWriteD MemWriteE MemWriteM
Op
CondExE
25:20 ALUControlD ALUControlE
Funct
15:12
Rd BranchD BranchE
ALUSrcD ALUSrcE
FlagWriteD FlagWriteE
ImmSrcD
31:28 CondE Cond
RegSrcD
CLK FlagsE Unit
CLK
0 1 CLK
CLK
InstrF
InstrD
19:16
0 WE3 ALUFlags WE
RA1D SrcAE
1 PC' PCF A1 RD1
A RD 15 1 ALUResultE
ALU
0 ReadDataW
3:0
0 A RD
Instructi on RA2D
A2 RD2 0 SrcBE Data
Memory 1
1 Memory
A3 Register WriteDataE
WD
ExtImmE
WD3 File
1
R15 ALUOutM ALUOutW
PCPlus4F 0
+
PCPlus8D
ResultW
Memory access
– Load from data memory (RAM) to registers
– Store register value to data memory (RAM)
Data processing
– Arithmetic, shift, rotate, comparison, moving
Bitfield instructions
Miscellaneous
Various Powerful
operand sizes addressing
modes
Conditional Shifted/rotated
execution operands
Source: http://infocenter.arm.com/
(omit) Word
Source: http://infocenter.arm.com/