LibreOffice Presentation Template (Community)

Elettronica dei Sistemi Programmabili
A.A. 2013-2014
Microcontrollori
ARM CORTEXTM-M per sistemi embedded
Sommario
Perché i Cortex-M
I vantaggi dei Cortex-M0
“It is an exciting time to be a microcontroller user. A growing range of ARM
Cortex-M devices are available from many vendors, spanning a broad range of
applications. Users who are familiar with 8-bit and 16-bit microcontrollers and are
moving to ARM Cortex-M based devices are surprised at just how easy they are to
use and, with the introduction of ARM Cortex-M0 devices, how low-cost and
efficient 32-bit microcontrollers have become.”
Dr Dominic Pajak
ARM Cortex-M0 Product Manager
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
2/29
Perché i Cortex-M?
Cortex-M sono stati progettati per applicazioni embedded
a microcontrollore venenedo incontro alle necessità della
moderna microelettronica a bassissimo consumo:
applicazioni a basso costo
alta connettività
Ethernet
USB
wirless
analogica
digitale
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Soluzioni
mixed
3/29
Perché i Cortex-M?
I sistemi a 8 o 16 bit esistenti per sottostare a tali necessità
codice molto esteso
aumento della frequenza di lavoro
potenza
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
4/29
Perché i Cortex-M?
I Cortex-M tendono a soddisfare le esigenza
mantenendo un costo contenuto
limitando moltissimo il consumo di energia
potenza
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
5/29
Perché i Cortex-M?
L'idea di base è stata quella di voler creare un processore
il più piccolo possibile
→ consumasse il meno possibile
mantenendo prestazioni elevate!
2004: Cortex-M3
2009: Cortex-M0
12000 gate nella
configurazione
Complesso quanto un
minima!
sistema a 8/16-bit,
implementando però un
processore a 32-bit !
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
6/29
Efficienza energetica
0.9 DMIPS/MHz @ moltiplicazione in 1 ciclo
un processo fatto in pochi cicli
→ la maggior parte del tempo il uP può
restare in power down
oppure lavorare a più bassa frequenza
→ minore interferenza EM
(*) Dhrystone-MIPS: n° di iterazioni al secondo
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
7/29
Densità di codice
Thumb-2
densità di codice inferiore a quella di un
sistema a 8/16-bit
dimensione della flash inferiore
→ minori costi e consumi
Il contributo maggiore del consumo di un sistema a
microcontrollore è dato dagli accessi alla flash
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
8/29
Semplicità
I Cortex-M sono ideali per la programmazione in C
le ISR possono essere scritte in C anziché in assembly
→ semplificazione del progetto
Set di 56 istruzioni
programmazione in assembly notevolmente semplificata
La risposta alle interruzioni è deterministica
progetto software sofisticato anche a livello di
temporizzazioni
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
9/29
Applicazioni
Dove troviamo I Cortex-M?
Periferiche per PC
Accessori
Controlli
Domotica
SoC
ASSP: Application Specific Standard Product (*)
...
(*) An integrated circuit developed and produced for a specific application or function but
made available for multiple customers. (da Global Stadards for Microelectronics Industry)
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
10/29
ARM
IP: Intellectual Property
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
11/29
ARM
ARM7TDMI e ARM9: molti microcontrollori a 32 bit
ARM11: smartphone e PDA
Jazelle Java: esegue Java a liv. hw
TrustZone: sicurezza on-chip
Cortex-A8 e -A9: smartphone, smartTV, internet device
Cortex-A15: computing
…
Cortex-A50: 64 bit (2014) 3x A15!
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
12/29
Architettura dei Cortex-M
Documenti forniti da ARM
programmer's model
set di istruzioni
meccanismi di eccezioni
memory model
architettura per il
debug
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
13/29
Evoluzione
Per ogni generazione di processori
nuove istruzioni e caratteristiche
dopo il successo di ARM11 (v6)
architettura divisa a seconda del campo applicativo (v7): Cortex
Dopo M3: espandere appl. uC
integrare il uC in FPGA
ultra-low-power
M0: ASIC e uC
M1: FPGA
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
14/29
Evoluzione
ARMv6-M
architettura molto compatta
alta efficienza
alte prestazioni
CoreSight Debug
Thumb-2
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
15/29
Caratteristiche salienti e vantaggi
del processore Cortex-M0
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
16/29
Caratteristiche del Cortex-M0
RISC a 32 bit (Von Neumann)
arch. di tipo load/store
mix Thumb e Thumb-2
Thumb-2: istruzioni a 16 bit
ma anche a 32 bit
non più ARM&Thumb
(aumentata la densità di codice)
56 istruzioni (in più forme)
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
17/29
Caratteristiche del Cortex-M0
Wakeup Interrupt
Controller (opz.)
program breakpoint
data watchpoint
pipeline a 3 stadi
registri: 16x 32-bit
32
Nested Vectored
Interrupt Controller
JTAG/Serial-Wire
debug interface
Advanced Microcontroller
Bus Architecture
Advanced High-performance Bus
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
18/29
Caratteristiche di sistema del Cortex-M0
istruz. Thumb
0.9 DMIPS/MHz
NVIC:
interrupt handler facilitati
4 priorità (annidati)
risposta deterministica
NMI
mappa della memoria
predefinita
2 modi operativi
Thread
Handler
System Tick timer (24-bit)
OS
SVC: Supervisor Call
Sleep mode/instruction
riduzione consumi
Eccezioni
gestione errori
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
19/29
Caratteristiche di sistema del Cortex-M0
Interrupt configurabili, da 1 a 32
moltiplicazione veloce (1 ciclo)
moltiplicazione lenta (32 cicli): risparmio area silicio e
basso consumo
supporto memoria sia little- che big-endian
Wakeup Interrupt Controller opzionale
bassissimo numero di gate equivalenti
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
20/29
Caratteristiche di debug del Cortex-M0
Halt-mode: acquisizione e modifica dello stato del
processore
Tecnologia CoreSight:
accesso a memoria e periferica senza mandare in halt il
processore
più processori con un'unica connessione di debug
JTAG/Serial-Wire
fino a 4 breakpoint di tipo hardware
fino a 2 watchpoint di tipo hardware
breakpoint di tipo software (senza limite)
(omissione dei blocchi di debug per ridurre l'area di silicio)
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
21/29
Vantaggi del Cortex-M0
Efficienza energetica
area equivalente a quella
di altri uP a 16 bit
0.896
0.85 (*)
0.445
0.34
0.303
0.288
0.19
0.16
0.113
0.01966
0.0094
maggiori prestazioni
possibilità di sleep mode
(*) moltiplicatore a 32 cicli
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
22/29
Vantaggi del Cortex-M0
uP a 8, 16 e 32 bit che eseguono il medesimo task
Corrente
Consumo del solo processore
eventi di
interrupt
corrente media
per uP a 8 bit
eventi di
interrupt
corrente media
per uP a 16 bit
eventi di
interrupt
corrente media
per Cortex-M0
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
tempo
23/29
Vantaggi del Cortex-M0
uP a 8, 16 e 32 bit che eseguono il medesimo task
Corrente
Consumo dell'intero chip:
uP + memoria + periferiche
eventi di
interrupt
corrente media
per uP a 8 bit
eventi di
interrupt
corrente media
per uP a 16 bit
eventi di
interrupt
corrente media
per Cortex-M0
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
tempo
24/29
Vantaggi del Cortex-M0
Prestazioni
Per il medesimo task, un uP a 32 bit può operare a una
frequenza più bassa
prestazione
richiesta
Consumo
frequenza
corrente media uP a 8 bit
corrente media uP a 16 bit
corrente media Cortex-M0
frequenza
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
25/29
Vantaggi del Cortex-M0
Tutto il software può essere scritto in C
minor tempo di sviluppo
portabile
programmer's model simile al popolare ARM7TDMI
architettura adeguata per implementare OS
adottato da molti costruttori
non è necessario cambiare sistema di sviluppo
vasta documentazione
embedded-OS
librerie
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
26/29
Vantaggi del Cortex-M0
Applicazion a bassa potenza
12 uW/MHz @ 65 nm ; 85 uW/MHz @ 185 nm
basso numero di gate equivalenti
min 12000
tip 17000-25000 (confrontabile con uP 16-bit)
alta efficienza
dovutà all'efficienza delle istruzioni Thumb
possibilità di ridurre la frequenza di clock
sleep & power-down modes
istruzioni WFI (Wait for Interrupt) e WFE (Wait for Event)
WIC: Wakeup Interrupt Controller
libreria Ultra Low Leakage (ULL) logic-cell
IP per celle a bassissima perdita
IP per mantenimento dello stato anche in power-down
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
27/29
Riferimenti
Joseph Yiu
“The definitive Guide to the ARM CORTEXTM-M0
pp. 1-24
Newnes, 2011
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
28/29
Grazie per l'attenzione …
… domande?
All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License
(unless otherwise specified).
Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
29/29