
Cortex-M0 Plus mikrokontrollere

Hei, og velkommen til denne presentasjonen av ARM® Cortex®-M0+-kjernen som er innebygd i alle produktene i STM32U0-mikrokontrollerfamilien.
Cortex-M0+ prosessor overview
- ARMv6-M arkitektur
- Von Neuman arkitektur, 2-stage rørledningen
- En-utgave arkitektur
- Multipliser i 1-syklus
- Minnebeskyttelsesenhet (MPU)
- Enkeltsyklus I/O-port

| Design med ultra lav effekt Veldig kompakt kode | |
| Lavt strømforbruk og høy energieffektivitet | Bortsett fra kontrollinstruksjoner og gren og link, er alle instruksjoner 16 bit lange |
Cortex®-M0+-kjernen er en del av ARM Cortex-M-gruppen av 32-biters RISC-kjerner. Den implementerer ARMv6-M-arkitekturen og har en 2-stage rørledningen.
Cortex®-M0+ har en unik AHB-Lite-masterport, men støtter samtidig henting av instruksjoner og datatilgang når datatilgangen er rettet mot Fast I/O Port-adresseområdet.
Cortex-M-prosessorkompatibilitet
Sømløs arkitektur på tvers av alle applikasjoner

STM32U0-mikrokontrollere integrerer en ARM® Cortex®-M0+-kjerne for å dra nytte av den uforlignelige ytelsen per milliwatt-forhold.
Alle Cortex®-M CPUer har en 32-bits arkitektur.
Cortex®-M3 var den første Cortex®-M CPU utgitt av ARM.
Så bestemte ARM seg for å skille mellom to produktlinjer: høy ytelse og lav effekt, samtidig som kompatibiliteten mellom dem opprettholdes.
Cortex®-M0+ tilhører lavstrømsproduktlinjen. Den er designet for batteridrevne enheter, veldig følsomme for strømforbruk.
Kjernearkitektur overview

Cortex®-M0+-kjernen gir mer ytelse enn Cortex®-M0-kjernen takket være 2-stage instruksjonsrørledning.
La oss starte vår beskrivelse av CPU-en ved prosessorkjernen som har ansvaret for å hente og utføre instruksjoner.
ARM Cortex-M0+ → 2-stage rørledningen

De fleste V6-M-instruksjoner er 16 bits lange. Det er bare seks 32-biters instruksjoner, og de fleste av dem er kontrollinstruksjoner, sjelden brukt. Imidlertid er gren- og koblingsinstruksjonen, som brukes til å kalle et underprogram, også 32 biter lang, for å støtte en stor forskyvning mellom denne instruksjonen og etiketten som peker til neste instruksjon som skal utføres.
Ideelt sett laster én 32-biters tilgang to 16-biters instruksjoner, noe som resulterer i færre henting per instruksjon.
Under klokke nummer 2 skjer ingen instruksjonshenting. AHB Lite-porten er tilgjengelig for å utføre en datatilgang når instruksjon N er en last-/lagringsinstruksjon.
Bransjeprestasjoner
Cortex®-M0+ kjerne
• Maksimalt to 16-biters grenskyggeinstruksjoner

På en gitt gren går færre forhåndshentede instruksjoner bort (takket være 2-stage rørledningen).
I klokke nummer 1 henter prosessoren Inst0 og en ubetinget greninstruksjon.
I klokke nummer 2 kjører den Instr0.
I klokke nummer 3, utfører den greninstruksjonen mens den henter de to neste sekvensielle instruksjonene Inst1 og Inst2 kalt grenskyggeinstruksjoner.
I klokke nummer 4 forkaster prosessoren Inst1 og Inst2 og henter InstrN og InstN+1.
Cortex-M0, M3 og M4 implementerer en 3-stage pipeline: Hent, dekode og utfør. Antall grenskyggeinstruksjoner er større: opptil fire 16-biters instruksjoner.
Kjernearkitektur overview

Cortex®-M0+ har verken en innebygd cache eller intern RAM. Følgelig styres enhver instruksjonshentingstransaksjon til AHB-Lite-grensesnittet og all datatilgang styres enten til AHB-Lite-grensesnittet eller Single-cycle I/O-porten.
Merk at STM32U0 implementerer en instruksjonsbuffer på SoC-nivå, eksternt til CPU, plassert i den innebygde flash-kontrolleren.
AHB-Lite-masterporten er koblet til en bussmatrise, slik at CPU-en får tilgang til minner og periferiutstyr. Siden transaksjoner er pipelinet på AHB-Lite, er den beste gjennomstrømningen 32 biter med data eller instruksjoner per klokke, med minimum 2-klokkes latenstid.
Cortex®-M0+ har også en enkeltsyklus I/O-port, som gjør at CPU kan få tilgang til data med 1-klokkes latency. En ekstern dekodingslogikk bestemmer adresseområdet der datatilganger styres til denne porten.
I STM32U0 brukes ikke Single-cycle I/O-porten for å få tilgang til GPIO-portregistre. GPIO-porter er kartlagt til AHB i stedet, slik at de kan nås av DMA.
Minnebeskyttelsesenhet
- MPU-attributtinnstillinger definerer tilgangstillatelser
- 8 uavhengige minneregioner
- Kan du kjøre kode?
- Kan skrive data?
- Uprivilegert modustilgang?
MPU i STM32U0 mikrokontroller tilbyr støtte for åtte uavhengige minneregioner, med uavhengige konfigurerbare attributter for:
- tilgangstillatelse: tillatt eller ikke lese/skrive i privilegert/uprivilegert modus,
- utførelsestillatelse: kjørbar region eller region forbudt for henting av instruksjoner.
Referanser
- For mer informasjon, se følgende dokumentasjon:
- STM32G0 Series Cortex®-M0+ prosessor programmeringsmanual (PM0223)
- Administrere minnebeskyttelsesenhet (MPU) i STM32 MCUer (AN4838)
- VÆPNE webnettsted på følgende link:
- http://www.arm.com/products/processors/cortex-m/cortex-m0+-processor.php
For flere detaljer, se disse applikasjonsnotatene og Cortex®-M0+ programmeringshåndboken tilgjengelig på www.st.com webnettstedet.
Besøk også ARM webnettsted hvor du finner mer informasjon om Cortex®-M0+-kjernen.
Takk
© STMicroelectronics – Alle rettigheter forbeholdt.
ST-logoen er et varemerke eller et registrert varemerke for STMicroelectronics International NV eller dets tilknyttede selskaper i EU og/eller andre land.
For ytterligere informasjon om ST-varemerker, se www.st.com/trademarks
Alle andre produkt- eller tjenestenavn tilhører deres respektive eiere.
Dokumenter / Ressurser
![]() | Cortex-M0 Plus mikrokontrollere |
Referanser
- Brukerhåndbokmanual.tools

