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