Microcontrollori Cortex-M0 Plus
Buongiorno e benvenuti a questa presentazione del core ARM® Cortex®-M0+, integrato in tutti i prodotti della famiglia di microcontrollori STM32U0.
Processore Cortex-M0+ suview
- Architettura ARMv6-M
- Architettura di von Neuman, 2-stage gasdotto
- Architettura monotematica
- Moltiplicare in 1 ciclo
- Unità di protezione della memoria (MPU)
- Porta I/O a ciclo singolo
Design a bassissimo consumo energetico Codice molto compatto | |
Basso consumo energetico ed elevata efficienza energetica | Ad eccezione delle istruzioni di controllo e di diramazione e collegamento, tutte le istruzioni sono lunghe 16 bit |
Il core Cortex®-M0+ fa parte del gruppo ARM Cortex-M di core RISC a 32 bit. Implementa l'architettura ARMv6-M e presenta un 2-stage conduttura.
Cortex®-M0+ ha una porta master AHB-Lite unica, ma supporta il recupero simultaneo delle istruzioni e l'accesso ai dati quando l'accesso ai dati è indirizzato all'intervallo di indirizzi della porta Fast I/O.
Compatibilità dei processori Cortex-M
Architettura senza soluzione di continuità in tutte le applicazioni
I microcontrollori STM32U0 integrano un core ARM® Cortex®-M0+ per beneficiare dell'incomparabile rapporto prestazioni per milliwatt.
Tutte le CPU Cortex®-M hanno un'architettura a 32 bit.
Cortex®-M3 è stata la prima CPU Cortex®-M rilasciata da ARM.
ARM ha quindi deciso di distinguere due linee di prodotti: ad alte prestazioni e a basso consumo, mantenendo comunque la compatibilità tra loro.
Cortex®-M0+ appartiene alla linea di prodotti a basso consumo. È progettato per dispositivi alimentati a batteria, molto sensibili al consumo di energia.
Architettura di base suview
Il core Cortex®-M0+ offre prestazioni superiori rispetto al core Cortex®-M0 grazie alla tecnologia 2-stage pipeline di istruzioni.
Iniziamo la nostra descrizione della CPU partendo dal core del processore responsabile del recupero e dell'esecuzione delle istruzioni.
ARM Cortex-M0+ → 2-stage gasdotto
La maggior parte delle istruzioni V6-M sono lunghe 16 bit. Ci sono solo sei istruzioni a 32 bit e la maggior parte di esse sono istruzioni di controllo, raramente utilizzate. Tuttavia, l'istruzione di branch and link, utilizzata per chiamare un sottoprogramma, è anch'essa lunga 32 bit, per supportare un ampio offset tra questa istruzione e l'etichetta che punta alla successiva istruzione da eseguire.
Idealmente, un accesso a 32 bit carica due istruzioni a 16 bit, il che si traduce in un minor numero di recuperi per istruzione.
Durante il clock numero 2, non si verifica alcun fetch di istruzione. La porta AHB Lite è disponibile per eseguire un accesso ai dati quando l'istruzione N è un'istruzione di caricamento/archiviazione.
Prestazioni della filiale
Nucleo Cortex®-M0+
• Massimo due istruzioni shadow di branch a 16 bit
Su un dato ramo, vengono sprecate meno istruzioni pre-fetchate (grazie al 2-stage conduttura).
Nel clock numero 1, il processore recupera Inst0 e un'istruzione di salto incondizionato.
Nel clock numero 2, esegue Instr0.
Nel clock numero 3, esegue l'istruzione di diramazione mentre recupera le due istruzioni sequenziali successive Inst1 e Inst2, chiamate istruzioni di diramazione ombra.
Nel clock numero 4, il processore scarta Inst1 e Inst2 e recupera InstrN e InstN+1.
Cortex-M0, M3 e M4 implementano un 3-stage pipeline: Fetch, Decode ed Execute. Il numero di istruzioni branch shadow è maggiore: fino a quattro istruzioni a 16 bit.
Architettura di base suview
Cortex®-M0+ non ha né una cache incorporata né una RAM interna. Di conseguenza, qualsiasi transazione di recupero delle istruzioni viene indirizzata all'interfaccia AHB-Lite e qualsiasi accesso ai dati viene indirizzato all'interfaccia AHB-Lite o alla porta I/O a ciclo singolo.
Si noti che l'STM32U0 implementa una cache di istruzioni a livello SoC, esterna alla CPU, situata nel controller flash incorporato.
La porta master AHB-Lite è collegata a una matrice di bus, consentendo alla CPU di accedere a memorie e periferiche. Poiché le transazioni sono pipelined su AHB-Lite, il throughput migliore è di 32 bit di dati o istruzioni per clock, con una latenza minima di 2 clock.
Cortex®-M0+ è inoltre dotato di una porta I/O a ciclo singolo, che consente alla CPU di accedere ai dati con una latenza di 1 clock. Una logica di decodifica esterna determina l'intervallo di indirizzi in cui gli accessi ai dati vengono indirizzati a questa porta.
In STM32U0, la porta I/O a ciclo singolo non viene utilizzata per accedere ai registri delle porte GPIO. Le porte GPIO sono invece mappate su AHB, consentendone l'accesso tramite DMA.
Unità di protezione della memoria
- Le impostazioni degli attributi MPU definiscono le autorizzazioni di accesso
- 8 regioni di memoria indipendenti
- Può eseguire codice?
- Sai scrivere dati?
- Accesso in modalità non privilegiata?
La MPU nel microcontrollore STM32U0 offre supporto per otto regioni di memoria indipendenti, con attributi configurabili indipendenti per:
- autorizzazione di accesso: consentita o meno la lettura/scrittura in modalità privilegiata/non privilegiata,
- permesso di esecuzione: regione eseguibile o regione proibita per il recupero delle istruzioni.
Riferimenti
- Per maggiori dettagli, fare riferimento alla seguente documentazione:
- Manuale di programmazione del processore Cortex®-M32+ serie STM0G0 (PM0223)
- Gestione dell'unità di protezione della memoria (MPU) nelle MCU STM32 (AN4838)
- BRACCIO websito al seguente link:
- http://www.arm.com/products/processors/cortex-m/cortex-m0+-processor.php
Per maggiori dettagli, fare riferimento a queste note applicative e al manuale di programmazione Cortex®-M0+ disponibile su www.st.com websito.
Visita anche l'ARM websito dove troverete maggiori informazioni sul core Cortex®-M0+.
Grazie
© STMicroelectronics – Tutti i diritti riservati.
Il logo ST è un marchio o un marchio registrato di STMicroelectronics International NV o delle sue affiliate nell'UE e/o in altri paesi.
Per ulteriori informazioni sui marchi ST, fare riferimento a www.st.com/trademarks
Tutti gli altri nomi di prodotti o servizi appartengono ai rispettivi proprietari.
Documenti / Risorse
![]() |
Microcontrollori ST Cortex-M0 Plus [pdf] Manuale di istruzioni Cortex-M0, Cortex-M23, Cortex-M33-M35P, Cortex-M55, Cortex-M85, Cortex-M0 Plus Microcontrollori, Cortex-M0 Plus, Microcontrollori |