STMicroelectronics-logo

STMicroelectronics STM32H5-serie microcontrollers

STMicroelectronics-STM32H5-Series-Microcontrollers-product

Invoering

Deze toepassingsnotitie beschrijft de instructiecache (ICACHE) en de datacache (DCACHE), de eerste caches ontwikkeld door STMicroelectronics. De ICACHE en DCACHE die zijn geïntroduceerd op de AHB-bus van de Arm® Cortex®-M33-processor zijn ingebed in de STM32-microcontroller (MCU's) die in de onderstaande tabel worden vermeld. Met deze caches kunnen gebruikers de prestaties van hun applicaties verbeteren en het verbruik verminderen bij het ophalen van instructies en gegevens uit zowel interne als externe geheugens, of voor dataverkeer uit externe herinneringen. Dit document geeft typische exampbestanden om de ICACHE- en DCACHE-functies te benadrukken en de configuratie ervan te vergemakkelijken.

Tabel 1. Toepasselijke producten

Type Productserie
Microcontrollers STM32H5-serie, STM32L5-serie, STM32U5-serie

Algemene informatie

Opmerking:

Deze toepassingsnotitie is van toepassing op de microcontrollers uit de STM32-serie die op Arm® Cortex® core-gebaseerde apparaten zijn. Arm is een geregistreerd handelsmerk van Arm Limited (of haar dochterondernemingen) in de VS en/of elders.

ICACHE en DCACHE voorbijview

In dit gedeelte wordt een overzicht gegevenview van de ICACHE- en DCACHE-interfaces ingebed in de STM32 Arm® Cortex® core-gebaseerde microcontrollers. In deze sectie worden het ICACHE- en DCACHE-diagram en de integratie in de systeemarchitectuur beschreven.
Slimme architectuur uit de STM32L5-serie
Deze architectuur is gebaseerd op een busmatrix waardoor meerdere masters (Cortex-M33, ICACHE, DMA1/2 en SDMMC1) toegang hebben tot meerdere slaves (zoals flashgeheugen, SRAM1/2, OCTOSPI1 of FSMC). De onderstaande afbeelding beschrijft de slimme architectuur van de STM32L5-serie.

Figuur 1. Slimme architectuur uit de STM32L5-serie

STMicroelectronics-STM32H5-serie-microcontrollers-fig-1

De prestaties van de Cortex-M33 worden verbeterd door gebruik te maken van de 8-Kbyte ICACHE-interface die is geïntroduceerd in de C-AHB-bus, bij het ophalen van code of gegevens uit de interne geheugens (flash-geheugen, SRAM1 of SRAM2) via de snelle bus, en ook uit de externe geheugens (OCTOSPI1 of FSMC) via de langzame bus.
Slimme architectuur uit de STM32U5-serie
Deze architectuur is gebaseerd op een busmatrix waardoor meerdere masters (Cortex-M33, ICACHE, DCACHE, GPDMA, DMA2D en SDMMC's, OTG_HS, LTDC, GPU2D, GFXMMU) toegang krijgen tot meerdere slaves (zoals flashgeheugen, SRAM's, BKPSRAM, HSPI/ OCTOSPI of FSMC). De onderstaande afbeelding beschrijft de slimme architectuur van de STM32U5-serie.

Figuur 2. Slimme architectuur uit de STM32U5-serie

STMicroelectronics-STM32H5-serie-microcontrollers-fig-2

De Cortex-M33- en de GPU2D-interfaces profiteren beide van het gebruik van CACHE.

  • ICACHE verbetert de prestaties van Cortex-M33 bij het ophalen van code of gegevens uit de interne geheugens via de snelle bus (flashgeheugen, SRAM's) en uit externe geheugens via de langzame bus (OCTOSPI1/2 en HSPI1, of FSMC). DCACHE1 verbetert de prestaties bij het ophalen van gegevens uit interne of externe geheugens via de s-bus (GFXMMU, OCTOSPI1/2 en HSPI1 of FSMC).
  •  DCACHE2 verbetert de prestaties van GPU2D bij het ophalen van gegevens uit interne en externe geheugens (GFXMMU, flashgeheugen, SRAM's, OCTOSPI1/2 en HSPI1, of FSMC) via de M0-poortbus.

Slimme architectuur uit de STM32H5-serie
STM32H523/H533, STM32H563/H573 en STM32H562 slimme architectuur Deze architectuur is gebaseerd op een busmatrix waardoor meerdere masters (Cortex-M33, ICACHE, DCACHE, GPDMA's, Ethernet en SDMMC's) toegang hebben tot meerdere slaves (zoals flashgeheugen, SRAM's, BKPSRAM , OCTOSPI en FMC). De onderstaande afbeelding beschrijft de slimme architectuur van de STM32H5-serie.

Figuur 3. Slimme architectuur uit de STM32H563/H573- en STM32H562-serie

STMicroelectronics-STM32H5-serie-microcontrollers-fig-3

De Cortex-M33 profiteert van het gebruik van CACHE.

  • ICACHE verbetert de prestaties van Cortex-M33 bij het ophalen van code of gegevens uit de interne geheugens via een snelle bus (flashgeheugen, SRAM's) en uit externe geheugens via langzame bus (OCTOSPI en FMC).
  • DCACHE verbetert de prestaties bij het ophalen van gegevens uit externe geheugens via de langzame bus (OCTOSPI en FMC).

STM32H503 slimme architectuur
Deze architectuur is gebaseerd op een busmatrix waardoor meerdere masters (Cortex-M33, ICACHE en GPDMA's) toegang hebben tot meerdere slaves (zoals flashgeheugen, SRAM's en BKPSRAM). De onderstaande afbeelding beschrijft de slimme architectuur van de STM32H5-serie.

Figuur 4. STM32H503-serie slimme architectuur

STMicroelectronics-STM32H5-serie-microcontrollers-fig-4

De Cortex-M33 profiteert van het gebruik van CACHE.

  • ICACHE verbetert de prestaties van Cortex-M33 bij het ophalen van code of gegevens uit de interne geheugens via een snelle bus (flashgeheugen, SRAM's).

ICACHE-blokdiagram
Het ICACHE-blokdiagram wordt weergegeven in de onderstaande afbeelding.

Figuur 5. ICACHE-blokdiagram

STMicroelectronics-STM32H5-serie-microcontrollers-fig-5

Het ICACHE-geheugen omvat:

  • de TAG geheugen met:
    • het adres tags die aangeven welke gegevens zich in het cachegegevensgeheugen bevinden
    • de geldigheidsbits
  •  het gegevensgeheugen, dat de gegevens in de cache bevat

DCACHE-blokdiagram
Het DCACHE-blokdiagram wordt weergegeven in de onderstaande afbeelding.

Figuur 6. DCACHE-blokdiagram

STMicroelectronics-STM32H5-serie-microcontrollers-fig-6

Het DCACHE-geheugen omvat:

  • de TAG geheugen met:
    • het adres tags die aangeven welke gegevens zich in het cachegegevensgeheugen bevinden
    • de geldigheidsbits
    • de privilegebits
    • de vuile stukjes
  • het gegevensgeheugen, dat de gegevens in de cache bevat

ICACHE- en DCACHE-functies

Dubbele meesters
De ICACHE heeft toegang tot de AHB-busmatrix via:

  • Eén AHB-masterpoort: master1 (snelle bus)
  • Twee AHB-masterpoorten: master1 (snelle bus) en master2 (langzame bus)

Met deze functie kan het verkeer worden ontkoppeld bij toegang tot verschillende geheugenregio's (zoals intern flashgeheugen, intern SRAM en externe herinneringen), om de CPU-storingen bij cachemissers te verminderen. De volgende tabel geeft een overzicht van geheugenregio's en hun adressen.

Tabel 2. Geheugenregio's en hun adressen

Perifeer Cachebare geheugentoegang Geen cachebare geheugentoegang
 

 

Type

 

 

Naam

 

 

Productnaam en regiogrootte

 

 

naam bus

 

Startadres van de niet-beveiligde regio

Veilig, niet-beveiligd startadres voor de regio  

 

naam bus

 

Startadres van de niet-beveiligde regio

Veilig, niet-beveiligd startadres voor de regio
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Intern

 

 

 

 

 

 

 

FLASH

STM32H503 128 KB  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ICACHE

snelle bus

 

 

 

 

 

 

 

0x0800 0000

n.v.t.  

 

 

 

 

 

 

n.v.t.

 

 

 

 

 

 

 

n.v.t.

 

 

 

 

 

 

 

n.v.t.

STM32L5

serie/ STM32U535/ 545/ STM32H523/ 533

 

 

512 KB

 

 

 

 

 

 

0x0C00 0000

STM32U575/585

STM32H563/573/562

 

 

2 MB

STM32U59x/

5Ax/5Fx/5Gx

4 MB
 

 

 

 

 

 

SRAM1

STM32H503 16 KB  

 

 

 

 

 

0x0A00 0000

n.v.t.  

 

 

 

 

 

 

 

S-bus

 

 

 

 

 

 

0x2000 0000

 

 

 

 

 

 

0x3000 0000

STM32L5

series/ STM32U535/ 545/575/585

 

192 KB

 

 

 

 

 

0x0E00 0000

STM32H523/533 128 KB
STM32H563/573/562 256 KB
STM32U59x/

5Ax/5Fx/5Gx

768 KB
 

 

 

 

SRAM2

STM32H503

serie

16 KB 0x0A00 4000 n.v.t. 0x2000 4000 n.v.t.
STM32L5

series/ STM32U535/ 545/575/585

 

64 KB

 

0x0A03 0000

 

0x0E03 0000

 

0x2003 0000

 

0x3003 0000

STM32H523/533 64 KB  

0x0A04 0000

 

0x0E04 0000

 

0x2004 0000

 

0x3004 0000

Perifeer Cachebare geheugentoegang Geen cachebare geheugentoegang
 

 

 

 

 

 

 

 

 

Intern

 

 

SRAM2

STM32H563/573/562 80 KB  

 

 

 

 

 

 

 

ICACHE

snelle bus

0x0A04 0000 0x0E04 0000  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S-bus

0x2004 0000 0x3004 0000
STM32U59x/

5Ax/5Fx/5Gx

64 KB 0x0A0C 0000 0x0E0C 0000 0x200C 0000 0x300C 0000
 

 

 

 

SRAM3

STM32U575/585 512 KB 0x0A04 0000 0x0E04 0000 0x2004 0000 0x3004 0000
STM32H523/533 64 KB  

 

0x0A05 0000

 

 

0x0E05 0000

 

 

0x2005 0000

 

 

0x3005 0000

STM32H563/573/562 320 KB
STM32U59x/

5Ax/5Fx/5Gx

832 KB 0x0A0D 0000 0x0E0D 0000 0x200D 0000 0x300D 0000
SRAM5 STM32U59x/

5Ax/5Fx/5Gx

832 KB 0x0A1A 0000 0x0E1A 0000 0x201A 0000 0x301A 0000
SRAM6 STM32U5Fx/

5Gx

512 KB 0x0A27 0000 0x0E27 0000 0x2027 0000  

 

 

 

 

 

 

 

 

 

 

 

n.v.t.

 

 

 

 

 

 

 

 

 

 

 

Extern

HSPI1 STM32U59x/

5Ax/5Fx/5Gx

 

 

 

 

 

 

 

 

 

 

 

256 MB

 

 

 

 

 

 

 

 

 

 

ICACHE

langzame bus

(1)

 

 

 

 

 

 

Aliasadres in het bereik van [0x0000 0000

naar 0x07FF FFFF] of [0x1000 0000:0x1FFF

FFFF] gedefinieerd door middel van een hertoewijzingsfunctie

 

 

 

 

 

 

 

 

 

 

 

n.v.t.

0xA000 0000
FMC-SDRAM STM32H563/573/562 0xC000 0000
 

OCTOSPI1

bank niet veilig

STM32L5/U5

serie

STM32H563/573/562

 

 

0x9000 0000

 

FMC-bank 3

onveilig

STM32L5/U5

serie

STM32H563/573/562

 

 

0x8000 0000

OCTOSPI2

bank niet veilig

STM32U575/

585/59x/5Ax/

5Fx/5Gx

 

0x7000 0000

 

FMC-bank 1

onveilig

STM32L5/U5

serie

STM32H563/573/562

 

 

0x6000 0000

1. Moet worden geselecteerd bij het opnieuw toewijzen van dergelijke regio's.

1-weg versus 2-weg ICACHE
Standaard is de ICACHE geconfigureerd in de associatieve bedrijfsmodus (twee richtingen ingeschakeld), maar het is mogelijk om de ICACHE te configureren in direct-mapped modus (eenrichting ingeschakeld), voor toepassingen die een zeer laag stroomverbruik vereisen. De ICACHE-configuratie wordt als volgt uitgevoerd met de WAYSEL-bit in ICACHE_CR:

  • WAYSEL = 0: direct toegewezen bedrijfsmodus (1-weg)
  • WAYSEL = 1 (standaard): associatieve bedrijfsmodus (2-weg)

Tabel 3. 1-weg versus 2-weg ICACHE

Parameter 1-weg ICACHE 2-weg ICACHE
Cachegrootte (kbytes) 8 (1) / 32 (2)
Cache op verschillende manieren 1 2
Lijngrootte cachen 128 bits (16 bytes)
Aantal cacheregels 512 (1) / 2048 (2) 256(1)/1024(2) per enkele reis
  1. Voor STM32L5-serie /STM32H5-serie /STM32U535/545/575/585
  2. For STM32U59x/5Ax/5Fx/5Gx

Burst-type
Sommige Octo-SPI-geheugens ondersteunen de WRAP-burst, wat het voordeel biedt van kritische woord-eerst-functieprestaties. Het ICACHE-bursttype van de AHB-geheugentransactie voor opnieuw toegewezen regio's is configureerbaar. Het implementeert incrementele burst of WRAP-burst, geselecteerd met de HBURST-bit in het ICACHE_CRRx-register. De verschillen tussen de WRAP en de incrementele bursts worden hieronder weergegeven (zie ook de figuur):

  • WRAP-uitbarsting:
    • cacheregelgrootte = 128 bits
    • burst-to-startadres = woordadres van de eerste door de CPU opgevraagde gegevens
  •  Incrementele uitbarsting:
    • cacheregelgrootte = 128 bits
    • burst-startadres = adres uitgelijnd op de grens van de cacheregel die het gevraagde woord bevat

Figuur 7. Incrementele versus WRAP-burst

STMicroelectronics-STM32H5-serie-microcontrollers-fig-9

Cachebare regio's en functie voor opnieuw toewijzen
De ICACHE is via de C-AHB-bus verbonden met de Cortex-M33 en slaat het codegebied op van adressen [0x0000 0000 tot 0x1FFF FFFF]. Omdat de externe geheugens worden toegewezen aan een adres in het bereik van [0x6000 0000 tot 0xAFFF FFFF], ondersteunt de ICACHE een functie voor opnieuw toewijzen waarmee elk extern geheugengebied opnieuw kan worden toegewezen aan een adres in het bereik van [0x0000 0000 tot 0x07FF FFFF] of [0x1000 0000 tot 0x1FFF FFFF], en toegankelijk worden via de C-AHB-bus. Met deze functie kunnen maximaal vier externe geheugenregio's opnieuw worden toegewezen. Zodra een regio opnieuw is toegewezen, vindt de opnieuw toegewezen bewerking plaats, zelfs als de ICACHE is uitgeschakeld of als de transactie niet in de cache kan worden opgeslagen. De cachebare geheugengebieden kunnen door de gebruiker worden gedefinieerd en geprogrammeerd in de geheugenbeschermingseenheid (MPU). De onderstaande tabel vat de configuraties samen van de geheugens uit de STM32L5- en STM32U5-serie.

Tabel 4. Configuratie van geheugens uit de STM32L5- en STM32U5-serie

 

Productgeheugen

Cachebaar

(MPU-programmering)

Opnieuw toegewezen in ICACHE

(ICACHE_CRRx-programmering)

Flashgeheugen Ja of Nee  

Niet vereist

SRAM Niet aanbevolen
Externe geheugens (HSPI/OCTOSPI of FSMC) Ja of Nee Vereist als de gebruiker externe code wil ophalen op de C-AHB-bus (anders op de S-AHB-bus)

Voordeel van het opnieuw toewijzen van het externe geheugen van ICACHE
De exampIn de onderstaande afbeelding ziet u hoe u kunt profiteren van de verbeterde prestaties van ICACHE tijdens het uitvoeren van code of het lezen van gegevens bij toegang tot een extern 8-Mbyte extern Octo-SPI-geheugen (zoals extern flashgeheugen of RAM).

Figuur 8. Octo-SPI geheugen opnieuw toewijzen example

STMicroelectronics-STM32H5-serie-microcontrollers-fig-7

De volgende stappen zijn nodig om dit externe geheugen opnieuw toe te wijzen:

OCTOSPI-configuratie voor het externe geheugen

Configureer de OCTOSPI-interface om toegang te krijgen tot het externe geheugen in de Memory Mapped-modus (het externe geheugen wordt gezien als een intern geheugen dat is toegewezen in de regio [0x9000 0000 tot 0x9FFF FFFF].) Omdat de externe geheugengrootte 8 Mbytes is, wordt deze gezien in de regio [0x9000 0000 tot 0x907F FFFF]. Het externe geheugen in deze regio is toegankelijk via de S-bus en kan niet in de cache worden opgeslagen. De volgende stap toont de ICACHE-configuratie om deze regio opnieuw in kaart te brengen.
Opmerking: Voor de OCTOSPI-configuratie in memory-mapped-modus raadpleegt u de toepassingsnotitie Octo-SPI-interface op STM32-microcontrollers (AN5050

ICACHE-configuratie om de in het externe geheugen toegewezen regio opnieuw toe te wijzen
De 8 Mbytes die in de regio [0x9000 0000 tot 0x907F FFFF] zijn geplaatst, worden opnieuw toegewezen aan de regio [0x1000 0000 tot 0x107F FFFF]. Ze zijn dan toegankelijk via de langzame bus (ICACHE master2-bus).

  • ICACHE_CR registerconfiguratie
    • Schakel ICACHE uit met EN = 0.
    • Selecteer 1-weg of 2-weg (afhankelijk van de toepassingsbehoeften) met respectievelijk WAYSEL = 0 of 1.
  • ICACHE_CRRx registerconfiguratie (maximaal vier regio's, x = 0 tot 3)
    • Selecteer het basisadres 0x1000 0000 (adres opnieuw toewijzen) met BASEADDR [28:21] = 0x80.
    • Selecteer de regiogrootte van 8 MB die u opnieuw wilt toewijzen met RSIZE[2:0] = 0x3.
    • Selecteer het opnieuw toegewezen adres 0x9000 0000 REMAPADDR[31:21] = 0x480.
    • Selecteer de ICACHE AHB master2-poort voor externe geheugens met MSTSEL = 1.
    • Selecteer het WRAP-bursttype met HBURST = 0.
    • Schakel het opnieuw toewijzen in voor regio x met REN = 1.

De volgende afbeelding laat zien hoe de geheugenregio's worden gezien met IAR nadat de nieuwe toewijzing is ingeschakeld.

Figuur 9. Geheugenregio's opnieuw toegewezen, bijvample

STMicroelectronics-STM32H5-serie-microcontrollers-fig-8

Het externe geheugen van 8 MB is nu opnieuw toegewezen en is toegankelijk via de regio [0x1000 0000 tot 0x107F FFFF].

ICACHE inschakelen

  • ICACHE_CR registerconfiguratie Schakel de ICACHE in met EN = 1.

Wisselvallige monitoren
ICACHE biedt twee monitoren voor prestatieanalyse: een 32-bits hitmonitor en een 16-bits missmonitor.

  • De hitmonitor telt de cachebare AHB-transacties op de slave-cachepoort die ICACHE-inhoud raakt (opgehaalde gegevens die al beschikbaar zijn in de cache). De hitmonitorteller is beschikbaar in het ICACHE_HMONR-register.
  • De missmonitor telt de cachebare AHB-transacties op de slave-cachepoort waarbij ICACHE-inhoud ontbreekt (opgehaalde gegevens die nog niet beschikbaar zijn in de cache). De ontbrekende monitorteller is beschikbaar in het ICACHE_MMONR-register.

Opmerking:

Deze twee monitoren wikkelen niet om wanneer ze hun maximale waarden bereiken. Deze monitoren worden beheerd vanuit de volgende bits in het ICACHE_CR-register:

  • HITMEN-bit (respectievelijk MISSMEN-bit) om de hit- (respectievelijk miss-)monitor in of uit te schakelen
  • HITMRST-bit (respectievelijk MISSMRST-bit) om de hit- (respectievelijk miss-)monitor te resetten. Standaard zijn deze monitoren uitgeschakeld om het stroomverbruik te verminderen.

ICACHE-onderhoud
De software kan de ICACHE ongeldig maken door de CACHEINV-bit in het ICACHE_CR-register in te stellen. Deze actie maakt de hele cache ongeldig, waardoor deze leeg wordt. Als sommige opnieuw toegewezen regio's zijn ingeschakeld, is de functie voor opnieuw toewijzen intussen nog steeds actief, zelfs als de ICACHE is uitgeschakeld. Omdat de ICACHE alleen leestransacties beheert en geen schrijftransacties, garandeert het geen coherentie in het geval van schrijftransacties. Bijgevolg moet de software de ICACHE ongeldig maken na het programmeren van een regio.

ICACHE-beveiliging
ICACHE is een beveiligbaar randapparaat dat als veilig kan worden geconfigureerd via het beveiligde configuratieregister van GTZC TZSC. Wanneer het als beveiligd is geconfigureerd, zijn alleen beveiligde toegangen tot de ICACHE-registers toegestaan. ICACHE kan ook als geprivilegieerd worden geconfigureerd via het GTZC TZSC-privilegeconfiguratieregister. Wanneer ICACHE als bevoorrecht is geconfigureerd, zijn alleen bevoorrechte toegangen tot de ICACHE-registers toegestaan. Standaard is de ICACHE niet beveiligd en heeft hij geen privileges via de GTZC TZSC.

Beheer van evenementen en onderbrekingen

De ICACHE beheert de functionele fouten wanneer deze worden gedetecteerd, door de ERRF-vlag in ICACHE_SR in te stellen. Er kan ook een interrupt worden gegenereerd als de ERRIE-bit is ingesteld in ICACHE_IER. In het geval van ICACHE-invalidatie, wanneer de cache-bezet-status is beëindigd, wordt de BSYENDF-vlag ingesteld in ICACHE_SR. Er kan ook een interrupt worden gegenereerd als de BSYENDIE-bit is ingesteld in ICACHE_IER. De onderstaande tabel geeft een overzicht van de ICACHE-onderbrekings- en gebeurtenisvlaggen.

Tabel 5. ICACHE-interrupt- en gebeurtenisbeheerbits

Register Beetje naam Beetje beschrijving Type bittoegang
 

ICACHE_SR

BEZIG Cache waarbij een volledige ongeldige bewerking wordt uitgevoerd  

Alleen-lezen

BSYENDF De cache-invalidatiebewerking is voltooid
FOUT Er is een fout opgetreden tijdens het cachen
 

ICACHE_IER

ERRIE Schakel interrupt voor cachefout in  

Lezen/schrijven

BSYENDIE Schakel interrupt in als de invalidatiebewerking is voltooid
 

ICACHE_FCR

CERRF Wist ERRF in ICACHE_SR  

Alleen schrijven

CBSYENDF Wist BSYENDF in ICACHE_SR

DCACHE-functies
Het doel van de datacache is het cachen van externe geheugengegevens en gegevensopslag die afkomstig zijn van de processor of van een ander busmaster-randapparaat. DCACHE beheert zowel lees- als schrijftransacties.
DCACHE-cacheerbaarheidsverkeer

De DCACHE slaat de externe herinneringen van de masterpoortinterface op in de cache via de AHB-bus. De binnenkomende geheugenverzoeken worden gedefinieerd als cachebaar volgens het AHB-transactiegeheugenvergrendelingsattribuut. Het DCACHE-schrijfbeleid wordt gedefinieerd als doorschrijven of terugschrijven, afhankelijk van het geheugenkenmerk dat door de MPU is geconfigureerd. Wanneer een regio is geconfigureerd als niet-cachebaar, wordt de DCACHE omzeild.

 Tabel 6. DCACHE-cachebaarheid voor AHB-transacties

AHB-opzoekattribuut AHB-bufferbaar attribuut Cachebaarheid
0 X Lezen en schrijven: niet-cachebaar
 

1

 

0

Lees: cachebaar

Schrijven: (cachebaar) doorschrijven

 

1

 

1

Lees: cachebaar

Schrijven: (cachebaar) terugschrijven

DCACHE cachebare regio's
Voor de STM32U5-serie is de DCACHE1-slave-interface aangesloten op de Cortex-M33 via de S-AHB-bus en slaat de GFXMMU, FMC en HSPI/OCTOSPI's op in de cache. De DCACHE2-slave-interface is via de M2-poortbus verbonden met de DMA0D en slaat alle interne en externe herinneringen op in de cache (behalve SRAM4 en BRKPSRAM). Voor de STM32H5-serie is de DCACHE-slave-interface verbonden met de Cortex-M33 via de externe S-AHB-geheugens via FMC en OCTOSPI.

Tabel 7. DCACHE cachebare regio's en interfaces

Cachebare geheugenadresregio DCACHE1 cachebare interfaces DCACHE2 cachebare interfaces
GFXMMU X X
SRAM1  

 

 

n.v.t.

X
SRAM2 X
SRAM3 X
SRAM5 X
SRAM6 X
HSPI1 X X
OCTOSPI1 X X
FMC-BANK's X X
OCTOSPI2 X X

Opmerking

Sommige interfaces worden in bepaalde producten niet ondersteund. Raadpleeg Figuur 1 of de specifieke productreferentiehandleiding.
Burst-type
Net als ICACHE ondersteunt de DCACHE incrementele en verpakte bursts (zie paragraaf 3.1.3). Voor DCACHE wordt het burst-type geconfigureerd via de HBURST-bit in DCACHE_CR.
DCACHE-configuratie
Tijdens het opstarten is DCACHE standaard uitgeschakeld, waardoor de slave-geheugenverzoeken rechtstreeks naar de masterpoort worden doorgestuurd. Om DCACHE in te schakelen, moet EN-bit worden ingesteld in het DCACHE_CR-register. Hit-and-miss monitoren De DCACHE implementeert vier monitoren voor analyse van cacheprestaties:

  • Twee 32-bits (R/W) hitmonitors: telt het aantal keren dat de CPU gegevens in het cachegeheugen leest of schrijft zonder een transactie op DCACHE-masterpoorten te genereren (gegevens die al beschikbaar zijn in de cache). De tellers van de (R/W) hitmonitors zijn respectievelijk beschikbaar in de registers DCACHE_RHMONR en DCACHE_WHMONR.
  • Twee 16-bits (R/W) missmonitors: tel het aantal keren dat de CPU gegevens leest of schrijft in het cachegeheugen en een transactie genereert op DCACHE-masterpoorten, om de gegevens uit het geheugengebied te laden (opgehaalde gegevens niet al beschikbaar in de cache). De (R/W) missmonitortellers zijn respectievelijk beschikbaar in de registers DCACHE_RMMONR en DCACHE_WMMONR.

Opmerking:

Deze vier monitoren wikkelen niet om wanneer ze hun maximale waarden bereiken. Deze monitoren worden beheerd vanuit de volgende bits in het DCACHE_CR-register:

  • WHITMAN-bit (respectievelijk WMISSMEN-bit) om de schrijfhit- (respectievelijk miss-)monitor in te schakelen/te stoppen
  • RHITMEN-bit (respectievelijk RMISSMEN-bit) om de leeshit- (respectievelijk miss-)monitor in of uit te schakelen
  • WHITMRST-bit (respectievelijk WMISSMRST-bit) om de schrijfhit- (respectievelijk miss-)monitor te resetten
  • RHITMRST-bit (respectievelijk RMISSMRST-bit) om de leeshit- (respectievelijk miss-)monitor te resetten

Standaard zijn deze monitoren uitgeschakeld om het stroomverbruik te verminderen.

DCACHE-onderhoud
De DCACHE biedt meerdere onderhoudsbewerkingen die kunnen worden geconfigureerd via CACHECMD[2:0] in DCACHE_CR.

  • 000: geen bediening (standaard)
  • 001: schoon bereik. Reinig een bepaald bereik in de cache
  • 010: bereik ongeldig maken. Maak een bepaald bereik in de cache ongeldig
  • 010: bereik opschonen en ongeldig maken. Opschonen en ongeldig maken van een bepaald bereik in de cache

Het geselecteerde bereik wordt geconfigureerd via:

  • CMDSTARTADDR-register: startadres van de opdracht
  • CMDENDADDR-register: eindadres van de opdracht

Opmerking:

Dit register moet worden ingesteld voordat CACHECMD wordt geschreven. Het onderhoud van de cacheopdracht begint wanneer de STARTCMD-bit is ingesteld in het DCACHE_CR-register. De DCACHE ondersteunt ook een volledige CACHE-invalidatie door de CACHEINV-bit in het DCACHE_CR-register in te stellen.

DCACHE-beveiliging
De DCACHE is een beveiligd randapparaat dat als veilig kan worden geconfigureerd via het beveiligde configuratieregister van GTZC TZSC. Wanneer het als beveiligd is geconfigureerd, zijn alleen beveiligde toegangen tot de DCACHE-registers toegestaan. DCACHE kan ook als geprivilegieerd worden geconfigureerd via het GTZC TZSC-privilegeconfiguratieregister. Wanneer DCACHE is geconfigureerd als bevoorrecht, zijn alleen bevoorrechte toegangen toegestaan ​​tot de DCACHE-registers. Standaard is de DCACHE niet beveiligd en heeft hij geen privileges via de GTZC TZSC.

Beheer van evenementen en onderbrekingen
De DCACHE beheert de functionele fouten wanneer deze worden gedetecteerd, door de ERRF-vlag in DCACHE_SR in te stellen. Er kan ook een interrupt worden gegenereerd als de ERRIE-bit is ingesteld in DCACHE_IER. In het geval van DCACHE-invalidatie, wanneer de cache-bezet-status is beëindigd, wordt de BSYENDF-vlag ingesteld in DCACHE_SR. Er kan ook een interrupt worden gegenereerd als de BSYENDIE-bit is ingesteld in DCACHE_IER. De DCACHE-opdrachtstatus kan worden gecontroleerd via CMDENF en BUSYCMDF via de DCACHE_SR. Er kan ook een interrupt worden gegenereerd als de CMDENDIE-bit is ingesteld in DCACHE_IER. De onderstaande tabel geeft een overzicht van de DCACHE-interrupts en gebeurtenisvlaggen

Tabel 8. DCACHE Interrupt- en gebeurtenisbeheerbits

Register Register Beetje beschrijving Type bittoegang
 

 

 

DCACHE_SR

BEZIG Cache waarbij een volledige ongeldige bewerking wordt uitgevoerd  

 

 

Alleen-lezen

BSYENDF Cache vol ongeldige bewerking beëindigd
BEZIGCMDF Cache bij het uitvoeren van een bereikopdracht
CMDENDF Een bereikcommando eindigt
ERRF Er is een fout opgetreden tijdens het cachen
 

DCACHE_IER

ERRIE Schakel interrupt voor cachefout in  

Lezen/schrijven

CMDENDIE Schakel interrupt in bij einde bereikcommando
BSYENDIE Schakel interrupt in bij volledig ongeldig maken van de bewerking
 

DCACHE_FCR

CERRF Wist ERRF in DCACHE_SR  

Alleen schrijven

CCMDENDF Wist CMDENDF in DCACHE_SR
CBSYENDF Wist BSYENDF in DCACHE_SR

ICACHE- en DCACHE-prestaties en energieverbruik

Het gebruik van ICACHE en DCACHE verbetert de applicatieprestaties bij toegang tot externe herinneringen. De volgende tabel toont de impact van ICACHE en DCACHE op de uitvoering van CoreMark® bij toegang tot externe geheugens.

Tabel 9. ICACHE- en DCACHE-prestaties bij CoreMark-uitvoering met externe geheugens

(1)
CoreMark-code CoreMark-gegevens ICACHE-configuratie DCACHE-configuratie CoreMark-score/Mhz
Intern Flash-geheugen Interne SRAM Ingeschakeld (2-weg) Gehandicapt 3.89
Intern Flash-geheugen Extern Octo-SPI PSRAM (S-bus) Ingeschakeld (2-weg) Ingeschakeld 3.89
Intern Flash-geheugen Extern Octo-SPI PSRAM (S-bus) Ingeschakeld (2-weg) Gehandicapt 0.48
Externe Octo-SPI-flitser (C-bus) Interne SRAM Ingeschakeld (2-weg) Gehandicapt 3.86
Externe Octo-SPI-flitser (C-bus) Interne SRAM Gehandicapt Gehandicapt 0.24
Intern Flash-geheugen Interne SRAM Gehandicapt Gehandicapt 2.69

Test voorwaarden:

  • Toepasselijk product: STM32U575/585
  • Systeemfrequentie: 160 MHz.
  • Extern Octo-SPI PSRAM-geheugen: 80 MHz (DTR-modus).
  • Extern Octo-SPI-flashgeheugen: 80 MHz (STR-modus).
  • Compiler: IAR V8.50.4.
  • Interne flitser PREFETCH: AAN.

Het gebruik van ICACHE en DCACHE vermindert het stroomverbruik bij toegang tot interne en externe geheugens. De volgende tabel toont de impact van ICACHE op het stroomverbruik tijdens de uitvoering van CoreMark.

Tabel 10. Uitvoering van CoreMark ICACHE-impact op energieverbruik

ICACHE-configuratie MCU-stroomverbruik (mA)
Ingeschakeld (2-weg) 7.60
Ingeschakeld (1-weg) 7.13
Gehandicapt 8.89
  1. Test voorwaarden:
    • Toepasselijk product: STM32U575/585
    • CoreMark-code: intern Flash-geheugen.
    • CoreMark-gegevens: interne SRAM.
    • Intern flashgeheugen PREFETCH: AAN.
    • Systeemfrequentie: 160 MHz.
    • Compiler: IAR V8.32.2.
    • Deeltage-bereik: 1.
    • SMPS: AAN.
  2. way set associatieve configuratie presteert beter dan 1-way set associatieve configuratie voor code die niet volledig in de cache kan worden geladen. Ondertussen is 1-weg ingestelde associatieve cache bijna altijd energiezuiniger dan 2-weg ingestelde associatieve cache. Elke code moet in beide associativiteitsconfiguraties worden geëvalueerd om de beste afweging tussen prestaties en energieverbruik te selecteren. De selectie is afhankelijk van de prioriteit van de gebruiker.

Conclusie

De eerste caches ontwikkeld door STMicroelectronics, ICACHE en DCACHE, kunnen interne en externe herinneringen cachen, wat prestatieverbetering biedt voor dataverkeer en het ophalen van instructies. Dit document toont de verschillende functies die worden ondersteund door de ICACHE en DCACHE. Hun eenvoud en flexibiliteit bij de configuratie zorgen voor lagere ontwikkelingskosten en een snellere time-to-market.

Revisiegeschiedenis

Tabel 11. Document revisiegeschiedenis

Datum Versie Wijzigingen
10-okt-2019 1 Eerste release.
 

 

27-feb-2020

 

 

2

Bijgewerkt:

• Tabel 2. Geheugenregio's en hun adressen

• Paragraaf 2.1.7 ICACHE-onderhoud

• Paragraaf 2.1.8 ICACHE-beveiliging

 

 

 

 

7-dec-2021

 

 

 

 

3

Bijgewerkt:

• Document titel

• Introductie

• Sectie 1 ICACHE en DCACHE voorbijview

• Paragraaf 4 Conclusie toegevoegd:

• Sectie 2 ICACHE- en DCACHE-functies

• Hoofdstuk 3 ICACHE- en DCACHE-prestaties en energieverbruik

 

 

 

 

 

 

15-feb-2023

 

 

 

 

 

 

4

Bijgewerkt:

•         Sectie 2.2: Slimme architectuur uit de STM32U5-serie

•         Sectie 2.5: DCACHE-blokdiagram

•         Paragraaf 3.1.1: Duale masters

•         Paragraaf 3.1.2: 1-weg versus 2-weg ICACHE

•         Sectie 3.1.4: Cachebare regio's en functie voor opnieuw toewijzen

•         Sectie 3.2: DCACHE-functies

•         Sectie 3.2.2: DCACHE cachebare regio's

•         Sectie 4: ICACHE- en DCACHE-prestaties en energieverbruik Toegevoegd:

•         Rubriek 1: Algemene informatie

 

11-mrt-2024

 

5

Bijgewerkt:

•         Sectie 2.3: Slimme architectuur uit de STM32H5-serie

•         Paragraaf 3.1.1: Duale masters

BELANGRIJKE MEDEDELING – LEES ZORGVULDIG
STMicroelectronics NV en haar dochterondernemingen (“ST”) behouden zich het recht voor om op elk moment en zonder voorafgaande kennisgeving wijzigingen, correcties, uitbreidingen, aanpassingen en verbeteringen aan ST-producten en/of dit document aan te brengen. Kopers moeten de meest recente relevante informatie over ST-producten verkrijgen voordat ze bestellingen plaatsen. ST-producten worden verkocht overeenkomstig de verkoopvoorwaarden van ST die van kracht zijn op het moment van orderbevestiging. Kopers zijn als enige verantwoordelijk voor de keuze, selectie en gebruik van ST-producten en ST aanvaardt geen aansprakelijkheid voor hulp bij de toepassing of het ontwerp van de producten van kopers. Er wordt door ST hierin geen enkele licentie verleend, expliciet of impliciet, voor enig intellectueel eigendomsrecht. Door de wederverkoop van ST-producten met andere bepalingen dan de hierin uiteengezette informatie vervalt elke door ST voor een dergelijk product verleende garantie. ST en het ST-logo zijn handelsmerken van ST. Voor aanvullende informatie over ST-handelsmerken gaat u naar www.st.com/trademarks. Alle andere product- of servicenamen zijn eigendom van hun respectievelijke eigenaren. De informatie in dit document vervangt en vervangt de eerder verstrekte informatie in eerdere versies van dit document. © 2024 STMicroelectronics – Alle rechten voorbehouden

Documenten / Bronnen

STMicroelectronics STM32H5-serie microcontrollers [pdf] Gebruikershandleiding
STM32H5-serie microcontrollers, STM32H5, serie microcontrollers, microcontrollers

Referenties

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *