Logo STMicroelectronics

Microcontrollori serie STM32H5 di STMicroelectronics

Prodotto con microcontrollori serie STMicroelectronics STM32H5

Introduzione

Questa nota applicativa descrive la cache delle istruzioni (ICACHE) e la cache dei dati (DCACHE), le prime cache sviluppate da STMicroelectronics. L'ICACHE e il DCACHE introdotti sul bus AHB del processore Arm® Cortex®-M33 sono incorporati nel microcontrollore STM32 (MCU) elencato nella tabella seguente. Queste cache consentono agli utenti di migliorare le prestazioni delle proprie applicazioni e ridurre il consumo durante il recupero di istruzioni e dati da memorie sia interne che esterne o per il traffico di dati da memorie esterne. Questo documento fornisce tipici examples per evidenziare le funzionalità ICACHE e DCACHE e facilitarne la configurazione.

Tabella 1. Prodotti applicabili

Tipo Serie di prodotti
Microcontrollori Serie STM32H5, serie STM32L5, serie STM32U5

informazioni generali

Nota:

Questa nota applicativa si applica ai microcontrollori della serie STM32 che sono dispositivi basati su core Arm® Cortex®. Arm è un marchio registrato di Arm Limited (o delle sue filiali) negli Stati Uniti e/o altrove.

ICACHE e DCACHE sono finitiview

Questa sezione fornisce una panoramicaview delle interfacce ICACHE e DCACHE integrate nei microcontrollori basati su core STM32 Arm® Cortex®. Questa sezione descrive in dettaglio il diagramma ICACHE e DCACHE e l'integrazione nell'architettura del sistema.
Architettura intelligente della serie STM32L5
Questa architettura si basa su una matrice di bus che consente a più master (Cortex-M33, ICACHE, DMA1/2 e SDMMC1) di accedere a più slave (come memoria flash, SRAM1/2, OCTOSPI1 o FSMC). La figura seguente descrive l'architettura intelligente della serie STM32L5.

Figura 1. Architettura intelligente della serie STM32L5

Microcontrollori serie STMicroelectronics-STM32H5-fig-1

Le prestazioni del Cortex-M33 sono migliorate utilizzando l'interfaccia ICACHE da 8 Kbyte introdotta nel suo bus C-AHB, quando si recuperano codice o dati dalle memorie interne (memoria flash, SRAM1 o SRAM2) attraverso il bus veloce, e anche dal memorie esterne (OCTOSPI1 o FSMC) tramite il bus lento.
Architettura intelligente della serie STM32U5
Questa architettura si basa su una matrice di bus che consente a più master (Cortex-M33, ICACHE, DCACHE, GPDMA, DMA2D e SDMMC, OTG_HS, LTDC, GPU2D, GFXMMU) di accedere a più slave (come memoria flash, SRAM, BKPSRAM, HSPI/ OCTOSPI o FSMC). La figura seguente descrive l'architettura intelligente della serie STM32U5.

Figura 2. Architettura intelligente della serie STM32U5

Microcontrollori serie STMicroelectronics-STM32H5-fig-2

Sia le interfacce Cortex-M33 che GPU2D traggono vantaggio dall'utilizzo della CACHE.

  • ICACHE migliora le prestazioni di Cortex-M33 durante il recupero di codice o dati dalle memorie interne tramite il bus veloce (memoria flash, SRAM) e da memorie esterne tramite il bus lento (OCTOSPI1/2 e HSPI1 o FSMC). DCACHE1 migliora le prestazioni durante il recupero dei dati da memorie interne o esterne tramite s‑bus (GFXMMU, OCTOSPI1/2 e HSPI1 o FSMC).
  •  DCACHE2 migliora le prestazioni di GPU2D durante il recupero di dati da memorie interne ed esterne (GFXMMU, memoria flash, SRAM, OCTOSPI1/2 e HSPI1 o FSMC) tramite il bus della porta M0.

Architettura intelligente della serie STM32H5
Architettura intelligente STM32H523/H533, STM32H563/H573 e STM32H562 Questa architettura si basa su una matrice di bus che consente a più master (Cortex-M33, ICACHE, DCACHE, GPDMA, Ethernet e SDMMC) di accedere a più slave (come memoria flash, SRAM, BKPSRAM , OCTOSPI e FMC). La figura seguente descrive l'architettura intelligente della serie STM32H5.

Figura 3. Architettura intelligente delle serie STM32H563/H573 e STM32H562

Microcontrollori serie STMicroelectronics-STM32H5-fig-3

Il Cortex-M33 trae vantaggio dall'utilizzo della CACHE.

  • ICACHE migliora le prestazioni di Cortex-M33 durante il recupero di codice o dati dalle memorie interne tramite un bus veloce (memoria flash, SRAM) e da memorie esterne tramite bus lento (OCTOSPI e FMC).
  • DCACHE migliora le prestazioni durante il recupero dei dati da memorie esterne tramite il bus lento (OCTOSPI e FMC).

Architettura intelligente STM32H503
Questa architettura si basa su una matrice di bus che consente a più master (Cortex-M33, ICACHE e GPDMA) di accedere a più slave (come memoria flash, SRAM e BKPSRAM). La figura seguente descrive l'architettura intelligente della serie STM32H5.

Figura 4. Architettura intelligente della serie STM32H503

Microcontrollori serie STMicroelectronics-STM32H5-fig-4

Il Cortex-M33 trae vantaggio dall'utilizzo della CACHE.

  • ICACHE migliora le prestazioni di Cortex-M33 durante il recupero di codice o dati dalle memorie interne tramite bus veloce (memoria flash, SRAM).

Diagramma a blocchi ICACHE
Lo schema a blocchi ICACHE è riportato nella figura seguente.

Figura 5. Diagramma a blocchi ICACHE

Microcontrollori serie STMicroelectronics-STM32H5-fig-5

La memoria ICACHE include:

  • IL TAG memoria con:
    • l'indirizzo tags che indicano quali dati sono contenuti nella memoria dati cache
    • i bit di validità
  •  la memoria dati, che contiene i dati memorizzati nella cache

Diagramma a blocchi DCACHE
Lo schema a blocchi DCACHE è riportato nella figura seguente.

Figura 6. Diagramma a blocchi DCACHE

Microcontrollori serie STMicroelectronics-STM32H5-fig-6

La memoria DCACHE comprende:

  • IL TAG memoria con:
    • l'indirizzo tags che indicano quali dati sono contenuti nella memoria dati cache
    • i bit di validità
    • i bit di privilegio
    • i pezzi sporchi
  • la memoria dati, che contiene i dati memorizzati nella cache

Funzionalità ICACHE e DCACHE

Doppi maestri
L'ICACHE accede alla matrice bus AHB tramite:

  • Una porta master AHB: master1 (bus veloce)
  • Due porte master AHB: master1 (bus veloce) e master2 (bus lento)

Questa funzionalità consente di disaccoppiare il traffico quando si accede a diverse regioni di memoria (come memoria flash interna, SRAM interna e memorie esterne), al fine di ridurre gli stalli della CPU in caso di errori di cache. La tabella seguente riassume le regioni di memoria e i relativi indirizzi.

Tabella 2. Regioni di memoria e relativi indirizzi

Periferica Accesso alla memoria memorizzabile nella cache Accesso alla memoria non memorizzabile nella cache
 

 

Tipo

 

 

Nome

 

 

Nome del prodotto e dimensioni della regione

 

 

Nome dell'autobus

 

Indirizzo iniziale della regione non protetta

Indirizzo iniziale della regione richiamabile sicura e non sicura  

 

Nome dell'autobus

 

Indirizzo iniziale della regione non protetta

Indirizzo iniziale della regione richiamabile sicura e non sicura
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Interno

 

 

 

 

 

 

 

FLASH

STM32H503 128 KB  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ICACHE

autobus veloce

 

 

 

 

 

 

 

0x0800 0000

N / A  

 

 

 

 

 

 

N / A

 

 

 

 

 

 

 

N / A

 

 

 

 

 

 

 

N / A

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

N / A  

 

 

 

 

 

 

 

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 N / A 0x2000 4000 N / A
STM32L5

series/ STM32U535/ 545/575/585

 

64 KB

 

0x0A03

 

0x0E03 0000

 

0x2003 0000

 

0x3003 0000

STM32H523/533 64 KB  

0x0A04

 

0x0E04 0000

 

0x2004 0000

 

0x3004 0000

Periferica Accesso alla memoria memorizzabile nella cache Accesso alla memoria non memorizzabile nella cache
 

 

 

 

 

 

 

 

 

Interno

 

 

SRAM2

STM32H563/573/562 80 KB  

 

 

 

 

 

 

 

ICACHE

autobus veloce

0x0A04 0x0E04 0000  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S‑bus

0x2004 0000 0x3004 0000
STM32U59x/

5Ax/5Fx/5Gx

64 KB 0x0A0C 0000 0x0E0C 0000 0x200C0000 0x300C0000
 

 

 

 

SRAM3

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

 

0x0A05

 

 

0x0E05 0000

 

 

0x2005 0000

 

 

0x3005 0000

STM32H563/573/562 320 KB
STM32U59x/

5Ax/5Fx/5Gx

832 KB 0x0A0D 0000 0x0E0D 0000 0x200D0000 0x300D0000
SRAM5 STM32U59x/

5Ax/5Fx/5Gx

832 KB 0x0A1A 0000 0x0E1A 0000 0x201A0000 0x301A0000
SRAM6 STM32U5Fx/

5Gx

512 KB 0x0A27 0x0E27 0000 0x2027 0000  

 

 

 

 

 

 

 

 

 

 

 

N / A

 

 

 

 

 

 

 

 

 

 

 

Esterno

HSPI1 STM32U59x/

5Ax/5Fx/5Gx

 

 

 

 

 

 

 

 

 

 

 

256 MB

 

 

 

 

 

 

 

 

 

 

ICACHE

autobus lento

(1)

 

 

 

 

 

 

Indirizzo alias nell'intervallo [0x0000 0000

a 0x07FF FFFF] o [0x1000 0000:0x1FFF

FFFF] definito mediante la funzione di rimappatura

 

 

 

 

 

 

 

 

 

 

 

N / A

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

OTTOSPI1

banca non sicura

STM32L5/U5

serie

STM32H563/573/562

 

 

0x9000 0000

 

Banca FMC 3

non sicuro

STM32L5/U5

serie

STM32H563/573/562

 

 

0x8000 0000

OTTOSPI2

banca non sicura

STM32U575/

585/59x/5Ax/

5FX/5Gx

 

0x7000 0000

 

Banca FMC 1

non sicuro

STM32L5/U5

serie

STM32H563/573/562

 

 

0x6000 0000

1. Da selezionare quando si rimappano tali regioni.

ICACHE a una via o a due vie
Per impostazione predefinita, ICACHE è configurato in modalità operativa associativa (bidirezionale abilitata), ma è possibile configurare ICACHE in modalità mappatura diretta (unidirezionale abilitata), per applicazioni che richiedono un consumo energetico molto basso. La configurazione ICACHE viene eseguita con il bit WAYSEL in ICACHE_CR come segue:

  • WAYSEL = 0: modalità operativa a mappatura diretta (unidirezionale)
  • WAYSEL = 1 (default): modalità operativa associativa (bidirezionale)

Tabella 3. ICACHE a una via e a due vie

Parametro ICACHE unidirezionale ICACHE unidirezionale
Dimensioni della cache (KByte) 8(1)/32(2)
Memorizza nella cache in diversi modi 1 2
Dimensioni della riga della cache 128 bit (16 byte)
Numero di linee cache 512(1)/2048(2) 256(1)/1024(2) per tratta
  1. Per serie STM32L5/serie STM32H5/STM32U535/545/575/585
  2. For STM32U59x/5Ax/5Fx/5Gx

Tipo a raffica
Alcune memorie Octo-SPI supportano il burst WRAP, che offre il vantaggio di prestazioni critiche con funzionalità word-first. Il tipo di burst ICACHE della transazione di memoria AHB per le regioni rimappate è configurabile. Implementa burst incrementale o burst WRAP, selezionato con il bit HBURST nel registro ICACHE_CRRx. Le differenze tra il WRAP e i burst incrementali sono riportate di seguito (vedi anche la figura):

  • Scoppio WRAP:
    • dimensione della riga della cache = 128 bit
    • indirizzo burst to start = indirizzo a parola dei primi dati richiesti dalla CPU
  •  Scoppio incrementale:
    • dimensione della riga della cache = 128 bit
    • indirizzo iniziale burst = indirizzo allineato al limite della linea cache contenente la parola richiesta

Figura 7. Burst incrementale rispetto a WRAP

Microcontrollori serie STMicroelectronics-STM32H5-fig-9

Regioni memorizzabili nella cache e funzionalità di rimappatura
L'ICACHE è connesso al Cortex-M33 tramite il bus C-AHB e memorizza nella cache la regione del codice dagli indirizzi [da 0x0000 0000 a 0x1FFF FFFF]. Poiché le memorie esterne sono mappate a un indirizzo compreso nell'intervallo da [0x6000 0000 a 0xAFFF FFFF], ICACHE supporta una funzione di rimappatura che consente di rimappare qualsiasi regione della memoria esterna a un indirizzo compreso tra [0x0000 0000 e 0x07FF FFFF] o [da 0x1000 0000 a 0x1FFF FFFF] e di diventare accessibile tramite il bus C-AHB. Con questa funzionalità è possibile rimappare fino a quattro regioni di memoria esterna. Una volta rimappata una regione, l'operazione di rimappatura avviene anche se ICACHE è disabilitato o se la transazione non è memorizzabile nella cache. Le regioni di memoria memorizzabili nella cache possono essere definite e programmate dall'utente nell'unità di protezione della memoria (MPU). La tabella seguente riassume le configurazioni delle memorie della serie STM32L5 e STM32U5.

Tabella 4. Configurazione delle memorie delle serie STM32L5 e STM32U5

 

Memoria del prodotto

Memorizzabile nella cache

(Programmazione MPU)

Rimappato in ICACHE

(programmazione ICACHE_CRRx)

Memoria flash Sì o no  

Non richiesto

SRAM Non consigliato
Memorie esterne (HSPI/ OCTOSPI o FSMC) Sì o no Necessario se l'utente desidera il recupero del codice esterno sul bus C-AHB (altrimenti sul bus S-AHB)

Vantaggio della rimappatura della memoria esterna ICACHE
L'exampIl file nella figura seguente mostra come trarre vantaggio dalle prestazioni migliorate di ICACHE durante l'esecuzione del codice o la lettura dei dati quando si accede a una memoria Octo-SPI esterna da 8 Mbyte (come memoria flash esterna o RAM).

Figura 8. Rimappatura della memoria Octo-SPI esample

Microcontrollori serie STMicroelectronics-STM32H5-fig-7

Per rimappare questa memoria esterna sono necessari i seguenti passaggi:

Configurazione OCTOSPI per la memoria esterna

Configurare l'interfaccia OCTOSPI per accedere alla memoria esterna in modalità Memory mapped (la memoria esterna è vista come una memoria interna mappata nella regione [da 0x9000 0000 a 0x9FFF FFFF]). Poiché la dimensione della memoria esterna è di 8 Mbyte, viene visualizzata nella regione [da 0x9000 0000 a 0x907F FFFF]. L'accesso alla memoria esterna in questa regione avviene tramite S‑bus e non è memorizzabile nella cache. Il passaggio successivo mostra la configurazione ICACHE per rimappare questa regione.
Nota: Per la configurazione OCTOSPI in modalità mappata in memoria, fare riferimento alla nota applicativa Interfaccia Octo‑ SPI sui microcontrollori STM32 (AN5050

Configurazione ICACHE per rimappare la regione mappata nella memoria esterna
Gli 8 Mbyte inseriti nella regione [da 0x9000 0000 a 0x907F FFFF] vengono rimappati nella regione [da 0x1000 0000 a 0x107F FFFF]. È quindi possibile accedervi tramite il bus lento (bus ICACHE master2).

  • Configurazione del registro ICACHE_CR
    • Disabilita ICACHE con EN = 0.
    • Selezionare monodirezionale o bidirezionale (a seconda delle esigenze dell'applicazione) con WAYSEL = 1 o 2, rispettivamente.
  • Configurazione del registro ICACHE_CRRx (fino a quattro regioni, x = da 0 a 3)
    • Selezionare l'indirizzo base 0x1000 0000 (indirizzo rimappato) con BASEADDR [28:21] = 0x80.
    • Selezionare la dimensione della regione da 8 Mbyte da rimappare con RSIZE[2:0] = 0x3.
    • Selezionare l'indirizzo rimappato 0x9000 0000 REMAPADDR[31:21] = 0x480.
    • Selezionare la porta ICACHE AHB master2 per memorie esterne con MSTSEL = 1.
    • Selezionare il tipo di burst WRAP con HBURST = 0.
    • Abilita la rimappatura per la regione x con REN = 1.

La figura seguente mostra come vengono visualizzate le regioni di memoria con IAR dopo aver abilitato la rimappatura.

Figura 9. Rimappatura delle regioni di memoria, ad esample

Microcontrollori serie STMicroelectronics-STM32H5-fig-8

La memoria esterna da 8 Mbyte è ora rimappata ed è possibile accedervi tramite la regione [da 0x1000 0000 a 0x107F FFFF].

Abilitazione ICACHE

  • Configurazione registro ICACHE_CR Abilitare ICACHE con EN = 1.

Monitor incostanti
ICACHE fornisce due monitor per l'analisi delle prestazioni: un monitor di successo a 32 bit e un monitor di mancato successo a 16 bit.

  • Il monitor degli hit conta le transazioni AHB memorizzabili nella cache sulla porta della cache slave che colpisce il contenuto ICACHE (dati recuperati già disponibili nella cache). Il contatore del monitoraggio degli accessi è disponibile nel registro ICACHE_HMONR.
  • Il miss monitor conta le transazioni AHB memorizzabili nella cache sulla porta della cache slave che mancano del contenuto ICACHE (dati recuperati non già disponibili nella cache). Il contatore del monitor mancante è disponibile nel registro ICACHE_MMONR.

Nota:

Questi due monitor non si capovolgono quando raggiungono i loro valori massimi. Questi monitor sono gestiti dai seguenti bit nel registro ICACHE_CR:

  • Bit HITMEN (rispettivamente bit MISSMEN) per abilitare/interrompere il monitoraggio dei colpi (rispettivamente miss)
  • Bit HITMRST (rispettivamente bit MISSMRST) per reimpostare il monitor colpito (rispettivamente mancato) Per impostazione predefinita, questi monitor sono disabilitati per ridurre il consumo energetico.

Manutenzione ICACHE
Il software può invalidare ICACHE impostando il bit CACHEINV nel registro ICACHE_CR. Questa azione invalida l'intera cache, rendendola vuota. Nel frattempo, se alcune regioni rimappate sono abilitate, la funzione di rimappatura è ancora attiva, anche quando ICACHE è disabilitato. Poiché ICACHE gestisce solo transazioni di lettura e non gestisce transazioni di scrittura, non garantisce la coerenza nel caso delle scritture. Di conseguenza, il software deve invalidare l'ICACHE dopo aver programmato una regione.

Sicurezza dell'ICACHE
ICACHE è una periferica protetta che può essere configurata come sicura tramite il registro di configurazione sicura GTZC TZSC. Quando è configurato come sicuro, sono consentiti solo gli accessi sicuri ai registri ICACHE. ICACHE può anche essere configurato come privilegiato tramite il registro di configurazione dei privilegi GTZC TZSC. Quando ICACHE è configurato come privilegiato, sono consentiti solo gli accessi privilegiati ai registri ICACHE. Per impostazione predefinita, ICACHE non è sicuro e non privilegiato tramite GTZC TZSC.

Gestione degli eventi e delle interruzioni

L'ICACHE gestisce gli errori funzionali quando rilevati, impostando il flag ERRF in ICACHE_SR. È anche possibile generare un'interruzione se il bit ERRIE è impostato in ICACHE_IER. In caso di invalidamento di ICACHE, al termine dello stato di cache occupata, il flag BSYENDF viene impostato in ICACHE_SR. È inoltre possibile generare un'interruzione se il bit BSYENDIE è impostato in ICACHE_IER. La tabella seguente elenca gli interrupt ICACHE e i flag di evento.

Tabella 5. Bit di gestione degli eventi e degli interrupt ICACHE

Registro Nome del bit Descrizione della punta Tipo di accesso bit
 

ICACHE_SR

OCCUPATO Cache che esegue un'operazione di invalidazione completa  

Di sola lettura

BSYENDF L'operazione di invalidamento della cache è terminata
ERRORE Si è verificato un errore durante l'operazione di memorizzazione nella cache
 

ICACHE_IER

ERRIE Abilita l'interruzione per errore cache  

Leggere/scrivere

BSIENDIE Abilita l'interruzione in caso di operazione di invalidamento terminata
 

ICACHE_FCR

CERRF Cancella ERRF in ICACHE_SR  

Solo scrittura

CBSYENDF Cancella BSYENDF in ICACHE_SR

Funzionalità DCACHE
Lo scopo della cache dei dati è memorizzare nella cache i carichi di dati della memoria esterna e gli archivi dati provenienti dal processore o da un'altra periferica bus master. DCACHE gestisce transazioni sia di lettura che di scrittura.
Traffico di memorizzazione nella cache DCACHE

Il DCACHE memorizza nella cache le memorie esterne dall'interfaccia della porta master attraverso il bus AHB. Le richieste di memoria in entrata sono definite come memorizzabili nella cache in base al relativo attributo di blocco della memoria delle transazioni AHB. La politica di scrittura DCACHE è definita come write-through o write-back a seconda dell'attributo di memoria configurato dalla MPU. Quando una regione è configurata come non memorizzabile nella cache, DCACHE viene ignorata.

 Tabella 6. Memorizzazione nella cache DCACHE per transazione AHB

Attributo di ricerca AHB Attributo bufferabile AHB Possibilità di memorizzazione nella cache
0 X Lettura e scrittura: non memorizzabile nella cache
 

1

 

0

Leggi: memorizzabile nella cache

Write: write-through (memorizzabile nella cache).

 

1

 

1

Leggi: memorizzabile nella cache

Write: write-back (memorizzabile nella cache).

Regioni memorizzabili nella cache DCACHE
Per la serie STM32U5, l'interfaccia slave DCACHE1 è collegata al Cortex-M33 tramite il bus S-AHB e memorizza nella cache GFXMMU, FMC e HSPI/OCTOSPI. L'interfaccia slave DCACHE2 è collegata al DMA2D tramite il bus della porta M0 e memorizza nella cache tutte le memorie interne ed esterne (eccetto SRAM4 e BRKPSRAM). Per la serie STM32H5, l'interfaccia slave DCACHE è collegata al Cortex-M33 tramite le memorie esterne S-AHB tramite FMC e OCTOSPI.

Tabella 7. Regioni e interfacce memorizzabili nella cache DCACHE

Regione degli indirizzi di memoria memorizzabili nella cache Interfacce memorizzabili nella cache DCACHE1 Interfacce memorizzabili nella cache DCACHE2
GFXMMU X X
SRAM1  

 

 

N / A

X
SRAM2 X
SRAM3 X
SRAM5 X
SRAM6 X
HSPI1 X X
OTTOSPI1 X X
BANCHE FMC X X
OTTOSPI2 X X

Nota

Alcune interfacce non sono supportate in determinati prodotti. Fare riferimento alla Figura 1 o al manuale di riferimento del prodotto specifico.
Tipo a raffica
Come ICACHE, DCACHE supporta burst incrementali e wrappati (vedere Sezione 3.1.3). Per DCACHE, il tipo di burst è configurato tramite il bit HBURST in DCACHE_CR.
Configurazione DCACHE
Durante l'avvio, DCACHE è disabilitato per impostazione predefinita e le richieste di memoria dello slave vengono inoltrate direttamente alla porta master. Per abilitare DCACHE, il bit EN deve essere impostato nel registro DCACHE_CR. Monitoraggi casuali DCACHE implementa quattro monitoraggi per l'analisi delle prestazioni della cache:

  • Due hit monitor a 32 bit (R/W): conta il numero di volte in cui la CPU ha letto o scritto dati nella memoria cache senza generare una transazione sulle porte master DCACHE (dati già disponibili nella cache). I contatori dei monitoraggi degli accessi (R/W) sono disponibili rispettivamente nei registri DCACHE_RHMONR e DCACHE_WHMONR.
  • Due miss monitor a 16 bit (R/W): contano il numero di volte in cui la CPU legge o scrive i dati nella memoria cache e genera una transazione sulle porte master DCACHE, per caricare i dati dalla regione di memoria (dati recuperati non già disponibile nella cache). I contatori di miss monitor (R/W) sono disponibili rispettivamente nei registri DCACHE_RMMONR e DCACHE_WMMONR.

Nota:

Questi quattro monitor non si capovolgono quando raggiungono i loro valori massimi. Questi monitor sono gestiti dai seguenti bit nel registro DCACHE_CR:

  • Bit WHITMAN (rispettivamente bit WMISSMEN) per abilitare/interrompere il monitoraggio dei colpi di scrittura (rispettivamente mancati)
  • Bit RHITMEN (rispettivamente bit RMISSMEN) per abilitare/interrompere il monitoraggio dei successi di lettura (rispettivamente miss)
  • Bit WHITMRST (rispettivamente bit WMISSMRST) per ripristinare il monitor di scrittura riuscita (rispettivamente mancata)
  • Bit RHITMRST (rispettivamente bit RMISSMRST) per reimpostare il monitor di lettura riuscita (rispettivamente mancata)

Per impostazione predefinita, questi monitor sono disabilitati per ridurre il consumo energetico.

Manutenzione DCACHE
DCACHE offre più operazioni di manutenzione che possono essere configurate tramite CACHECMD[2:0] in DCACHE_CR.

  • 000: nessuna operazione (predefinito)
  • 001: portata pulita. Pulisci un determinato intervallo nella cache
  • 010: intervallo invalidato. Invalidare un determinato intervallo nella cache
  • 010: intervallo pulito e invalidato. Pulisci e invalida un determinato intervallo nella cache

L'intervallo selezionato viene configurato tramite:

  • Registro CMDSTARTADDR: indirizzo iniziale del comando
  • Registro CMDENDADDR: indirizzo finale del comando

Nota:

Questo registro deve essere impostato prima della scrittura di CACHECMD. La manutenzione del comando cache inizia quando il bit STARTCMD viene impostato nel registro DCACHE_CR. Il DCACHE supporta anche un invalidamento completo della CACHE impostando il bit CACHEINV nel registro DCACHE_CR.

Sicurezza DCACHE
La DCACHE è una periferica sicura che può essere configurata come sicura attraverso il registro di configurazione sicura GTZC TZSC. Quando è configurato come sicuro, sono consentiti solo accessi sicuri ai registri DCACHE. DCACHE può anche essere configurato come privilegiato attraverso il registro di configurazione dei privilegi GTZC TZSC. Quando DCACHE è configurato come privilegiato, sono consentiti solo gli accessi privilegiati ai registri DCACHE. Per impostazione predefinita, DCACHE non è sicuro e non privilegiato tramite GTZC TZSC.

Gestione degli eventi e delle interruzioni
Il DCACHE gestisce gli errori funzionali quando rilevati, impostando il flag ERRF in DCACHE_SR. È possibile generare un'interruzione anche se il bit ERRIE è impostato in DCACHE_IER. In caso di invalidazione DCACHE, quando lo stato di cache occupata termina, il flag BSYENDF viene impostato in DCACHE_SR. È inoltre possibile generare un'interruzione se il bit BSYENDIE è impostato in DCACHE_IER. Lo stato del comando DCACHE può essere controllato tramite CMDENF e BUSYCMDF tramite DCACHE_SR. È anche possibile generare un interrupt se il bit CMDENDIE è impostato in DCACHE_IER. La tabella seguente elenca gli interrupt DCACHE e i flag di evento

Tabella 8. Bit di gestione degli interrupt e degli eventi DCACHE

Registro Registro Descrizione della punta Tipo di accesso bit
 

 

 

DCACHE_SR

OCCUPATO Cache che esegue un'operazione di invalidazione completa  

 

 

Di sola lettura

BSYENDF Operazione di invalidazione completa della cache terminata
OCCUPATOCMDF Memorizza nella cache l'esecuzione di un comando di intervallo
CMDENDF Fine del comando di intervallo
ERRF Si è verificato un errore durante l'operazione di memorizzazione nella cache
 

DCACHE_IER

ERRIE Abilita l'interruzione per errore cache  

Leggere/scrivere

CMENDIE Abilita l'interruzione alla fine del comando di intervallo
BSIENDIE Abilita l'interruzione al termine dell'operazione di invalidazione completa
 

DCACHE_FCR

CERRF Cancella ERRF in DCACHE_SR  

Solo scrittura

CCMENDDF Cancella CMDENDF in DCACHE_SR
CBSYENDF Cancella BSYENDF in DCACHE_SR

Prestazioni ICACHE e DCACHE e consumo energetico

L'utilizzo di ICACHE e DCACHE migliora le prestazioni dell'applicazione quando si accede a memorie esterne. La tabella seguente mostra l'impatto di ICACHE e DCACHE sull'esecuzione di CoreMark® quando si accede a memorie esterne.

Tabella 9. Prestazioni ICACHE e DCACHE sull'esecuzione di CoreMark con memorie esterne

(1)
Codice CoreMark Dati CoreMark Configurazione ICACHE Configurazione DCACHE Punteggio CoreMark/Mhz
Memoria flash interna SRAM interna Abilitato (2 vie) Disabilitato 3.89
Memoria flash interna PSRAM Octo-SPI esterna (S‑bus) Abilitato (2 vie) Abilitato 3.89
Memoria flash interna PSRAM Octo-SPI esterna (S‑bus) Abilitato (2 vie) Disabilitato 0.48
Flash Octo-SPI esterno (bus C) SRAM interna Abilitato (2 vie) Disabilitato 3.86
Flash Octo-SPI esterno (bus C) SRAM interna Disabilitato Disabilitato 0.24
Memoria flash interna SRAM interna Disabilitato Disabilitato 2.69

Condizioni di prova:

  • Prodotto applicabile: STM32U575/585
  • Frequenza del sistema: 160 MHz.
  • Memoria PSRAM esterna Octo-SPI: 80 MHz (modalità DTR).
  • Memoria flash Octo-SPI esterna: 80 MHz (modalità STR).
  • Compilatore: IAR V8.50.4.
  • PREFETCH Flash interno: ATTIVO.

Utilizzando ICACHE e DCACHE si riduce il consumo energetico durante l'accesso alle memorie interne ed esterne. La tabella seguente mostra l'impatto di ICACHE sul consumo energetico durante l'esecuzione di CoreMark.

Tabella 10. Impatto ICACHE dell'esecuzione CoreMark sul consumo energetico

Configurazione ICACHE Consumo energetico dell'MCU (mA)
Abilitato (2 vie) 7.60
Abilitato (unidirezionale) 7.13
Disabilitato 8.89
  1. Condizioni di prova:
    • Prodotto applicabile: STM32U575/585
    • Codice CoreMark: memoria Flash interna.
    • Dati CoreMark: SRAM interna.
    • Memoria Flash interna PREFETCH: ON.
    • Frequenza del sistema: 160 MHz.
    • Compilatore: IAR V8.32.2.
    • Voltaggamma e: 1.
    • SMPS: ATTIVO.
  2. La configurazione associativa di set a una via è più performante della configurazione associativa di set a una via per il codice che non può essere caricato completamente nella cache. Nel frattempo, la cache associativa a set unidirezionale è quasi sempre più efficiente dal punto di vista energetico rispetto alla cache associativa a set a 1 vie. Ciascun codice deve essere valutato in entrambe le configurazioni di associatività, al fine di selezionare il miglior compromesso tra prestazioni e consumo energetico. La selezione dipende dalla priorità dell'utente.

Conclusione

Le prime cache sviluppate da STMicroelectronics, ICACHE e DCACHE, sono in grado di memorizzare nella cache memorie interne ed esterne, offrendo miglioramenti delle prestazioni per il traffico dati e il recupero delle istruzioni. Questo documento mostra le diverse funzionalità supportate da ICACHE e DCACHE, la loro semplicità e flessibilità di configurazione consentono costi di sviluppo inferiori e tempi di commercializzazione più rapidi.

Cronologia delle revisioni

Tabella 11. Cronologia delle revisioni del documento

Data Versione Cambiamenti
10-Ott-2019 1 Versione iniziale.
 

 

27-feb-2020

 

 

2

Aggiornato:

• Tabella 2. Regioni di memoria e relativi indirizzi

• Sezione 2.1.7 Manutenzione ICACHE

• Sezione 2.1.8 Sicurezza ICACHE

 

 

 

 

7-dic-2021

 

 

 

 

3

Aggiornato:

• Titolo del documento

• Introduzione

• Sezione 1 ICACHE e DCACHE terminataview

• Sezione 4 Conclusione aggiunta:

• Sezione 2 Funzionalità ICACHE e DCACHE

• Sezione 3 Prestazioni ICACHE e DCACHE e consumo energetico

 

 

 

 

 

 

15-feb-2023

 

 

 

 

 

 

4

Aggiornato:

•         Sezione 2.2: Architettura intelligente della serie STM32U5

•         Sezione 2.5: Diagramma a blocchi DCACHE

•         Sezione 3.1.1: Doppio master

•         Sezione 3.1.2: ICACHE a 1 via e ICACHE a 2 vie

•         Sezione 3.1.4: Regioni memorizzabili nella cache e funzionalità di rimappatura

•         Sezione 3.2: Funzionalità DCACHE

•         Sezione 3.2.2: Regioni memorizzabili nella cache DCACHE

•         Sezione 4: prestazioni ICACHE e DCACHE e consumo energetico Aggiunto:

•         Sezione 1: Informazioni generali

 

11-mar-2024

 

5

Aggiornato:

•         Sezione 2.3: Architettura intelligente della serie STM32H5

•         Sezione 3.1.1: Doppio master

AVVISO IMPORTANTE – LEGGERE ATTENTAMENTE
STMicroelectronics NV e le sue controllate ("ST") si riservano il diritto di apportare cambiamenti, correzioni, miglioramenti, modifiche e miglioramenti ai prodotti ST e/o al presente documento in qualsiasi momento senza preavviso. Gli acquirenti devono ottenere le informazioni più recenti sui prodotti ST prima di effettuare gli ordini. I prodotti ST sono venduti in conformità ai termini e alle condizioni di vendita della ST in vigore al momento della conferma dell'ordine. Gli acquirenti sono gli unici responsabili della scelta, selezione e utilizzo dei prodotti della ST e la ST non si assume alcuna responsabilità per l'assistenza applicativa o la progettazione dei prodotti degli acquirenti. La ST non concede alcuna licenza, esplicita o implicita, su alcun diritto di proprietà intellettuale. La rivendita di prodotti ST con disposizioni diverse dalle informazioni qui stabilite annullerà qualsiasi garanzia concessa dalla ST per tale prodotto. ST e il logo ST sono marchi di fabbrica della ST. 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. Le informazioni contenute in questo documento sostituiscono le informazioni precedentemente fornite in qualsiasi versione precedente di questo documento. © 2024 STMicroelectronics – Tutti i diritti riservati

Documenti / Risorse

Microcontrollori serie STM32H5 di STMicroelectronics [pdf] Manuale d'uso
Microcontrollori serie STM32H5, Microcontrollori serie STM32H5, Microcontrollori

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *