Microcontrollers di a serie STMicroelectronics STM32H5

Introduzione
Questa nota di l'applicazione descrive a cache d'istruzzioni (ICACHE) è a cache di dati (DCACHE), i primi cache sviluppati da STMicroelectronics. L'ICACHE è DCACHE intrudutti nantu à u bus AHB di u processatore Arm® Cortex®-M33 sò incrustati in u microcontroller STM32 (MCU) elencati in a tabella sottu. Queste cache permettenu à l'utilizatori di migliurà a so prestazione di l'applicazione è di riduce u cunsumu quandu piglianu struzzioni è dati da e memorie interne è esterne, o per u trafficu di dati da i ricordi esterni. Stu documentu dà tipica examples per mette in risaltu e funziunalità ICACHE è DCACHE è facilità a so cunfigurazione.
Table 1. I prudutti applicabili
| Tipu | Serie di prudutti |
| Microcontrollers | Serie STM32H5, serie STM32L5, serie STM32U5 |
infurmazione generale
Nota:
Questa nota di l'applicazione si applica à i microcontrollers di a serie STM32 chì sò dispositivi basati in core Arm® Cortex®. Arm hè una marca registrata di Arm Limited (o i so filiali) in i Stati Uniti è / o in altrò.
ICACHE è DCACHE sopraview
Questa sezione furnisce un sopraview di l'interfacce ICACHE è DCACHE integrate in i microcontrollers basati in core STM32 Arm® Cortex®. Questa sezione detalla u diagramma ICACHE è DCACHE è l'integrazione in l'architettura di u sistema.
L'architettura intelligente di a serie STM32L5
Questa architettura hè basatu annantu à una matrice di bus chì permette à parechji maestri (Cortex-M33, ICACHE, DMA1/2, è SDMMC1) per accede à parechje schiavi (cum'è memoria flash, SRAM1/2, OCTOSPI1, o FSMC). A figura sottu descrive l'architettura intelligente di a serie STM32L5.
Figura 1. L'architettura intelligente di a serie STM32L5

U rendiment di Cortex-M33 hè migliuratu cù l'interfaccia ICACHE di 8-Kbyte introduttu à u so bus C-AHB, quandu pigliate codice o dati da i ricordi interni (memoria flash, SRAM1, o SRAM2) attraversu u bus veloce, è ancu da u memorie esterne (OCTOSPI1 o FSMC) attraversu u bus lento.
L'architettura intelligente di a serie STM32U5
Questa architettura hè basata nantu à una matrice di bus chì permette à parechji maestri (Cortex-M33, ICACHE, DCACHE, GPDMA, DMA2D è SDMMCs, OTG_HS, LTDC, GPU2D, GFXMMU) per accede à parechji slave (cum'è memoria flash, SRAM, BKPSRAM, HSPI/). OCTOSPI, o FSMC). A figura sottu descrive l'architettura intelligente di a serie STM32U5.
Figura 2. L'architettura intelligente di a serie STM32U5

L'interfacce Cortex-M33 è GPU2D beneficianu tramindui di l'usu di CACHE.
- ICACHE migliurà a prestazione di Cortex-M33 quandu piglia u codice o dati da e memorie internu attraversu u bus veloce (memoria flash, SRAM) è da memorie esterne attraversu u bus lento (OCTOSPI1/2 è HSPI1, o FSMC). DCACHE1 migliora le prestazioni quando recupera dati da memorie interne o esterne tramite s-bus (GFXMMU, OCTOSPI1/2 e HSPI1, o FSMC).
- DCACHE2 migliurà a prestazione di GPU2D quandu pigliate dati da memorie interne è esterne (GFXMMU, memoria flash, SRAM, OCTOSPI1/2 è HSPI1, o FSMC) attraversu u bus di portu M0.
L'architettura intelligente di a serie STM32H5
Architettura intelligente STM32H523/H533, STM32H563/H573 è STM32H562 Questa architettura hè basata nantu à una matrice di bus chì permette à parechji maestri (Cortex-M33, ICACHE, DCACHE, GPDMA, Ethernet è SDMMCs) per accede à parechji schiavi (cum'è memoria flash, SRAM, BKPSRAM). , OCTOSPI et FMC). A figura sottu descrive l'architettura intelligente di a serie STM32H5.
Figura 3. L'architettura intelligente di a serie STM32H563 / H573 è STM32H562

U Cortex-M33 beneficia di l'usu di CACHE.
- ICACHE migliurà a prestazione di Cortex-M33 quandu piglia u codice o dati da e memorie interne attraversu un bus veloce (memoria flash, SRAM) è da memorie esterne attraversu bus lento (OCTOSPI è FMC).
- DCACHE migliurà a prestazione quandu pigliate dati da memorie esterne attraversu u bus lento (OCTOSPI è FMC).
STM32H503 architettura intelligente
Questa architettura hè basatu annantu à una matrice di bus chì permette à parechji maestri (Cortex-M33, ICACHE è GPDMAs) per accede à parechji schiavi (cum'è memoria flash, SRAM è BKPSRAM). A figura sottu descrive l'architettura intelligente di a serie STM32H5.
Figura 4. L'architettura intelligente di a serie STM32H503

U Cortex-M33 beneficia di l'usu di CACHE.
- ICACHE migliurà a prestazione di Cortex-M33 quandu piglia u codice o dati da i ricordi interni per via di bus veloce (memoria flash, SRAM).
Schema di blocchi ICACHE
U schema di bloccu ICACHE hè datu in a figura sottu.
Figura 5. Schema di blocchi ICACHE

A memoria ICACHE include:
- lu TAG memoria cù:
- l'indirizzu tags chì indicanu quali dati sò cuntenuti in a memoria di dati cache
- i bit di validità
- a memoria di dati, chì cuntene i dati in cache
Schema di blocchi DCACHE
U schema di bloccu DCACHE hè datu in a figura sottu.
Figura 6. Schema di blocchi DCACHE

A memoria DCACHE include:
- lu TAG memoria cù:
- l'indirizzu tags chì indicanu quali dati sò cuntenuti in a memoria di dati cache
- i bit di validità
- i pezzi di privilegiu
- i pezzi sporchi
- a memoria di dati, chì cuntene i dati in cache
Funzioni ICACHE è DCACHE
Doppiu maestri
L'ICACHE accede à a matrice di bus AHB sia sopra:
- Un portu maestru AHB: master1 (bus veloce)
- Dui porti maestri AHB: master1 (bus veloce) è master2 (bus lento)
Questa funzione permette à u trafficu per esse disaccoppiatu quandu accede à e diverse regioni di memoria (cum'è a memoria flash interna, SRAM interna è memorie esterne), in modu di riduce l'impurtanza di CPU in cache miss. A tavula seguente riassume e regioni di memoria è i so indirizzi.
Table 2. Regioni di memoria è i so indirizzi
| Perifèricu | Accessu à a memoria cacheable | Accessu à a memoria micca cacheable | |||||||
|
Tipu |
Nome |
Nome di u produttu è dimensione di a regione |
Nome di l'autobus |
Indirizzu iniziale di a regione non sicura |
Indirizzu di partenza di a regione chjamata sicura è micca sicura |
Nome di l'autobus |
Indirizzu iniziale di a regione non sicura |
Indirizzu di partenza di a regione chjamata sicura è micca sicura | |
|
Internu |
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 0000 |
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 4000 | N/A | 0x2000 4000 | N/A | |||
| 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 |
||||
| Perifèricu | Accessu à a memoria cacheable | Accessu à a memoria micca cacheable | |||||||
|
Internu |
SRAM2 |
STM32H563/ 573/562 | 80 KB |
ICACHE autobus veloce |
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/A |
|||
|
Esternu |
HSPI 1 | STM32U59x/
5Ax/5Fx/5Gx |
256 MB |
ICACHE autobus lento |
Indirizzu alias in a gamma di [0x0000 0000 à 0x07FF FFFF] o [0x1000 0000:0x1FFF FFFF] definitu per mezu di a funzione di rimappatura |
N/A |
0xA000 0000 | ||
| SDRAM FMC | STM32H563/ 573/562 | 0xC000 0000 | |||||||
|
OCTOSPI1 banca micca sicura |
STM32L5/U5
serie STM32H563/ 573/562 |
0x9000 0000 |
|||||||
|
Banca FMC 3 micca sicuru |
STM32L5/U5
serie STM32H563/ 573/562 |
0x8000 0000 |
|||||||
| OCTOSPI2
banca micca sicura |
STM32U575/
585/59x/5Ax/ 5Fx/5Gx |
0x7000 0000 |
|||||||
|
Banca FMC 1 micca sicuru |
STM32L5/U5
serie STM32H563/ 573/562 |
0x6000 0000 |
|||||||
1. Per esse sceltu quandu remapping such regions.
ICACHE 1-way versus 2-way
Per automaticamente, l'ICACHE hè cunfiguratu in u modu operativu assuciativu (duie manere attivate), ma hè pussibule cunfigurà l'ICACHE in modu direttu-mappatu (un modu attivatu), per l'applicazioni chì necessitanu un cunsumu d'energia assai bassu. A cunfigurazione ICACHE hè fatta cù u bit WAYSEL in ICACHE_CR cusì:
- WAYSEL = 0: modalità operativa mappata diretta (1-way)
- WAYSEL = 1 (default): modu di funziunamentu assuciativu (2-way)
Table 3. ICACHE 1-way versus 2-way
| Parametru | ICACHE 1-way | ICACHE 2-way |
| Dimensione cache (Kbyte) | 8(1)/32(2) | |
| Cache un numeru di modi | 1 | 2 |
| Dimensione di a linea di cache | 128 bit (16 byte) | |
| Numero di linee di cache | 512(1)/2048(2) | 256(1)/1024(2) per via |
- Per a serie STM32L5 / serie STM32H5 /STM32U535/545/575/585
- For STM32U59x/5Ax/5Fx/5Gx
tipu di burst
Certi ricordi Octo-SPI supportanu u burst WRAP, chì furnisce u benefiziu di a prestazione critica di a prima parola. U tipu di burst ICACHE di a transazzione di memoria AHB per e regioni rimappate hè configurabile. Implementa burst incrementale o WRAP burst, sceltu cù u bit HBURST in u registru ICACHE_CRRx. E differenze trà u WRAP è i bursts incrementali sò datu quì sottu (vede ancu a figura):
- WRAP burst:
- dimensione di a linea di cache = 128 bits
- burst to start address = indirizzu parola di i primi dati dumandati da u CPU
- Burst incrementale:
- dimensione di a linea di cache = 128 bits
- burst starting address = indirizzu allinatu nantu à u cunfini di a linea di cache chì cuntene a parolla dumandata
Figura 7. Incrementale versus WRAP burst

Regioni cacheable è funzione di rimappatura
L'ICACHE hè cunnessu à u Cortex-M33 attraversu u bus C-AHB è cache a regione di codice da l'indirizzi [0x0000 0000 à 0x1FFF FFFF]. Siccomu i ricordi esterni sò mappati in un indirizzu in u intervalu [0x6000 0000 à 0xAFFF FFFF], l'ICACHE supporta una funzione di rimappazione chì permette à qualsiasi regione di memoria esterna per esse rimappata in un indirizzu in a gamma di [0x0000 0000 à 0x07FF FFFF] o [0x1000 0000 à 0x1FFF FFFF], è di diventà accessibile attraversu l'autobus C-AHB. Finu à quattru regioni di memoria esterna ponu esse rimappate cù sta funzione. Una volta chì una regione hè rimappata, l'operazione di rimappamentu si faci ancu se l'ICACHE hè disattivatu o se a transazzione ùn hè micca cacheable. E regioni di memoria cacheable ponu esse definite è programate da l'utilizatore in l'unità di prutezzione di memoria (MPU). A tavula sottu riassume e cunfigurazioni di e memorie di serie STM32L5 è STM32U5.
Table 4. Configurazione di i ricordi di serie STM32L5 è STM32U5
|
Memoria di u produttu |
Cacheable
(Programmazione MPU) |
Remappatu in ICACHE
(Programmazione ICACHE_CRRx) |
| Memoria flash | Iè o nò |
Ùn hè micca necessariu |
| SRAM | Ùn hè cunsigliatu | |
| Memorie esterne (HSPI/ OCTOSPI o FSMC) | Iè o nò | Ubligatoriu se l'utilizatore vole ricuperà u codice esternu nantu à u bus C-AHB (altrimenti in u bus S-AHB) |
Beneficiu di a rimappatura di memoria esterna ICACHE
L'example in a figura quì sottu mostra cumu prufittà di a prestazione rinforzata ICACHE durante l'esekzione di codice o di dati letti quandu accede à una memoria esterna Octo-SPI esterna di 8 Mbyte (cum'è memoria flash esterna o RAM).
Figura 8. remap di memoria Octo-SPI example

I seguenti passi sò necessarii per rimappà sta memoria esterna:
Configurazione OCTOSPI per a memoria esterna
Configurate l'interfaccia OCTOSPI per accede à a memoria esterna in u modu Memory mapped (a memoria esterna hè vista cum'è una memoria interna mappata in a regione [0x9000 0000 à 0x9FFF FFFF]). Siccomu a dimensione di a memoria esterna hè 8 Mbytes, hè vistu à a regione [0x9000 0000 à 0x907F FFFF]. A memoria esterna in questa regione hè accessata attraversu u S-bus è ùn hè micca cacheable. U passu prossimu mostra a cunfigurazione ICACHE per rimappà sta regione.
Nota: Per a cunfigurazione OCTOSPI in modalità di mappatura di memoria, riferite à a nota di l'applicazione Interfaccia Octo‑SPI nantu à i microcontrollers STM32 (AN5050).
Configurazione ICACHE per rimappà a regione mappata di memoria esterna
I 8 Mbytes posti in a regione [0x9000 0000 à 0x907F FFFF] sò rimappati à a regione [0x1000 0000 à 0x107F FFFF]. Puderanu esse accede à traversu u bus lento (bus ICACHE master2).
- Cunfigurazione di u registru ICACHE_CR
- Disable ICACHE cù EN = 0.
- Selezziunate 1-way o 2-way (secondu i bisogni di l'applicazione) cù WAYSEL = 0 o 1, rispettivamente.
- Cunfigurazione di u registru ICACHE_CRRx (finu à quattru regioni, x = 0 à 3)
- Selezziunate l'indirizzu di basa 0x1000 0000 (indirizzu remap) cù BASEADDR [28:21] = 0x80.
- Selezziunate a dimensione di a regione 8-Mbyte per rimappà cù RSIZE [2: 0] = 0x3.
- Selezziunate l'indirizzu rimappatu 0x9000 0000 REMAPADDR[31:21] = 0x480.
- Selezziunate u portu ICACHE AHB master2 per i ricordi esterni cù MSTSEL = 1.
- Selezziunate u tipu di burst WRAP cù HBURST = 0.
- Abilita a rimappatura per a regione x cù REN = 1.
A figura seguente mostra cumu si vede e regioni di memoria cù IAR dopu avè attivatu a remap.
Figura 9. Rimappatura di e regioni di memoria example

A memoria esterna di 8-Mbyte hè avà rimappata è pò esse accessu nantu à a regione [0x1000 0000 à 0x107F FFFF].
ICACHE attivà
- Cunfigurazione di u registru ICACHE_CR Abilita l'ICACHE cù EN = 1.
Hit-and-miss monitors
ICACHE furnisce dui monitori per l'analisi di u rendiment: un monitor hit 32-bit è un monitor miss 16-bit.
- U monitoru di hit conta e transazzione AHB cacheable nantu à u portu di cache slave chì tocca u cuntenutu ICACHE (dati recuperati digià dispunibili in a cache). U contatore di monitor di hit hè dispunibule in u registru ICACHE_HMONR.
- U miss monitor conta e transazzioni cacheable AHB nantu à u portu di cache slave chì manca u cuntenutu ICACHE (dati chjappi micca digià dispunibili in a cache). U contatore di monitor mancante hè dispunibule in u registru ICACHE_MMONR.
Nota:
Questi dui monitori ùn s'imbulighjanu micca quandu ghjunghjenu i so valori massimi. Questi monitori sò gestiti da i seguenti bit in u registru ICACHE_CR:
- HITMEN bit (rispettivamente MISSMEN bit) per attivà / piantà u hit (rispettivamente miss) monitor
- HITMRST bit (rispettivamente MISSMRST bit) per resettà u monitoru hit (rispettivamente miss) Per automaticamente, sti monitori sò disattivati per riduce u cunsumu di energia.
Manutenzione ICACHE
U software pò invalidà l'ICACHE mettendu u bit CACHEINV in u registru ICACHE_CR. Questa azione invalida tutta a cache, facendu viota. Intantu, se alcune regioni rimappate sò attivate, a funzione di remap hè sempre attiva, ancu quandu l'ICACHE hè disattivatu. Siccomu l'ICACHE gestisce solu transazzione di lettura è ùn gestisce micca transazzione di scrittura, ùn assicura micca a coherenza in u casu di scrittura. In cunseguenza, u software deve invalidà l'ICACHE dopu a prugrammazione di una regione.
ICACHE security
ICACHE hè un perifericu securable chì pò esse cunfiguratu cum'è sicuru attraversu u registru di cunfigurazione sicura GTZC TZSC. Quandu hè cunfiguratu cum'è sicuru, solu accessi sicuri sò permessi à i registri ICACHE. ICACHE pò ancu esse cunfiguratu cum'è privilegiatu attraversu u registru di cunfigurazione di privilegi GTZC TZSC. Quandu ICACHE hè cunfiguratu cum'è privilegiatu, solu l'accessi privilegiati sò permessi à i registri ICACHE. Per automaticamente, l'ICACHE ùn hè micca sicuru è micca privilegiatu attraversu u GTZC TZSC.
Gestione di l'avvenimenti è l'interruzzione
L'ICACHE gestisce l'errori funziunali quandu sò rilevati, mettendu a bandiera ERRF in ICACHE_SR. Una interruzzione pò ancu esse generata se u bit ERRIE hè impostatu in ICACHE_IER. In casu di invalidazione ICACHE, quandu u cache occupatu hè finitu, a bandiera BSYENDF hè stallata in ICACHE_SR. Una interruzzione pò ancu esse generata se u bit BSYENDIE hè stallatu in ICACHE_IER. A tavula quì sottu liste l'interruzzione ICACHE è i bandieri di l'avvenimentu.
Table 5. Bits di gestione di l'interruzzione è di l'avvenimenti ICACHE
| Registrate | Bit nome | Descrizzione di bit | Tipu di accessu à bit |
|
ICACHE_SR |
Occupatu | Cache esegue una operazione di invalidazione completa |
Lettura solu |
| BSYENDF | L'operazione di invalidazione di cache hè finita | ||
| ERRORE | Un errore hè accadutu durante l'operazione di caching | ||
|
ICACHE_IER |
ERRIE | Abilita l'interruzzione per l'errore di cache |
Leghje / scrive |
| BSYENDIE | Abilita l'interruzzione in casu di l'operazione di invalidazione finita | ||
|
ICACHE_FCR |
CERRF | Efface ERRF in ICACHE_SR |
Scrive solu |
| CBSYENDF | Cancella BSYENDF in ICACHE_SR |
caratteristiche DCACHE
U scopu di a cache di dati hè di cache di cache di dati di memoria esterna è magazzini di dati chì venenu da u processatore o da un altru perifericu maestru di bus. DCACHE gestisce transazzioni di lettura è scrittura.
DCACHE trafficu di cacheability
U DCACHE cache i ricordi esterni da l'interfaccia di u portu maestru attraversu u bus AHB. I richieste di memoria entranti sò definite cum'è cacheable secondu u so attributu di bloccu di memoria di transazzione AHB. A pulitica di scrittura DCACHE hè definita cum'è write-through o write-back secondu l'attributu di memoria cunfiguratu da u MPU. Quandu una regione hè cunfigurata cum'è non-cacheable, u DCACHE hè bypassatu.
Table 6. DCACHE cacheability per a transazzione AHB
| Attributu di ricerca AHB | Attributu bufferable AHB | Messa in cache |
| 0 | X | Leghjite è scrive: micca cacheable |
|
1 |
0 |
Leghjite: cacheable
Scrivite: (cacheable) scrive |
|
1 |
1 |
Leghjite: cacheable
Scrivite: (cacheable) scrive in daretu |
DCACHE regioni cacheable
Per a serie STM32U5, l'interfaccia slave DCACHE1 hè cunnessa à u Cortex-M33 attraversu u bus S-AHB è cache u GFXMMU, FMC è HSPI/OCTOSPI. L'interfaccia slave DCACHE2 hè cunnessa à u DMA2D attraversu u bus di portu M0, è cache tutte e memorie interne è esterne (eccettu SRAM4 è BRKPSRAM). Per a serie STM32H5, l'interfaccia slave DCACHE hè cunnessa à u Cortex-M33 attraversu e memorie esterne S-AHB attraversu FMC è OCTOSPI.
Table 7. DCACHE regioni cacheable è interfacce
| Regione di l'indirizzu di memoria cacheable | Interfacce cacheable DCACHE1 | Interfacce cacheable DCACHE2 |
| GFXMMU | X | X |
| SRAM1 |
N/A |
X |
| SRAM2 | X | |
| SRAM3 | X | |
| SRAM5 | X | |
| SRAM6 | X | |
| HSPI 1 | X | X |
| OCTOSPI1 | X | X |
| BANCHE FMC | X | X |
| OCTOSPI2 | X | X |
Nota
Certi interfacce ùn sò micca supportati in certi prudutti. Vede a Figura 1 o u manuale di riferimentu specificu di u produttu.
tipu di burst
Cum'è ICACHE, u DCACHE supporta bursts incrementali è wrapped (vede a Sezione 3.1.3). Per DCACHE, u tipu di burst hè cunfiguratu attraversu u bit HBURST in DCACHE_CR.
Cunfigurazione DCACHE
Durante l'avviamentu, DCACHE hè disattivatu per difettu facendu e richieste di memoria di schiavi trasmesse direttamente à u portu maestru. Per attivà DCACHE, EN bit deve esse stabilitu in u registru DCACHE_CR. Monitori Hit-and-miss U DCACHE implementa quattru monitori per l'analisi di prestazioni di cache:
- Dui 32-bit (R/W) hit monitor: conta u numeru di volte chì u CPU leghje o scrive dati in a memoria cache senza generà una transazzione nantu à i porti maestri DCACHE (dati digià dispunibili in a cache). I contatori di monitori di hit (R / W) sò dispunibuli rispettivamente in i registri DCACHE_RHMONR è DCACHE_WHMONR.
- Dui 16-bit (R/W) miss monitors: cuntà u numeru di volte chì u CPU leghje o scrive dati in a memoria cache è genera una transazzione nantu à i porti maestri DCACHE, per carricà e dati da a regione di memoria (dati catturati micca. digià dispunibule in a cache). I contatori di miss monitors (R/W) sò dispunibuli rispettivamente in i registri DCACHE_RMMONR è DCACHE_WMMONR.
Nota:
Questi quattru monitori ùn s'imbulighjanu micca quandu ghjunghjenu i so valori massimi. Questi monitori sò gestiti da i seguenti bit in u registru DCACHE_CR:
- Bit WHITMAN (rispettivamente bit WMISSMEN) per attivà / piantà u monitor di scrittura hit (rispettivamente miss)
- RHITMEN bit (rispettivamente RMISSMEN bit) per attivà / piantà u monitor di lettura hit (rispettivamente miss)
- WHITMRST bit (rispettivamente WMISSMRST bit) per resettà u monitor di scrittura hit (rispettivamente miss)
- RHITMRST bit (rispettivamente RMISSMRST bit) per resettà u monitoru di u hit di lettura (rispettivamente miss)
Per automaticamente, sti monitori sò disattivati per riduce u cunsumu di energia.
Mantenimentu DCACHE
U DCACHE offre parechje operazioni di mantenimentu chì ponu esse cunfigurate attraversu CACHECMD[2:0] in DCACHE_CR.
- 000: nisuna operazione (default)
- 001: gamma pulita. Pulite un certu intervallu in a cache
- 010: invalidà a gamma. Invalidate un certu intervallu in a cache
- 010: pulisce è invalida a gamma. Pulite è invalidate un certu intervallu in a cache
A gamma scelta hè cunfigurata attraversu:
- Registru CMDSTARTADDR: indirizzu di partenza di cumanda
- Registru CMDENDADDR : indirizzu di fine di cumanda
Nota:
Stu registru deve esse stabilitu prima chì CACHECMD hè scrittu. U mantenimentu di u cumandamentu di cache principia quandu u bit STARTCMD hè stallatu in u registru DCACHE_CR. U DCACHE supporta ancu una invalidazione di CACHE cumpleta per stabilisce u bit CACHEINV in u registru DCACHE_CR.
DCACHE security
U DCACHE hè un perifericu sicuru chì pò esse cunfiguratu cum'è sicuru attraversu u registru di cunfigurazione sicura GTZC TZSC. Quandu hè cunfiguratu cum'è sicuru, solu accessi sicuri sò permessi à i registri DCACHE. DCACHE pò ancu esse cunfiguratu cum'è privilegiatu attraversu u registru di cunfigurazione di privilegi GTZC TZSC. Quandu DCACHE hè cunfiguratu cum'è privilegiatu, solu l'accessi privilegiati sò permessi à i registri DCACHE. Per automaticamente, u DCACHE ùn hè micca sicuru è micca privilegiatu attraversu u GTZC TZSC.
Gestione di l'avvenimenti è l'interruzzione
U DCACHE gestisce l'errori funziunali quandu sò rilevati, mettendu a bandiera ERRF in DCACHE_SR. Un interrupt pò ancu esse generatu se u bit ERRIE hè impostatu in DCACHE_IER. In casu di invalidazione di DCACHE, quandu u statu di cache occupatu hè finitu, a bandiera BSYENDF hè stallata in DCACHE_SR. Una interruzzione pò ancu esse generata se u bit BSYENDIE hè stallatu in DCACHE_IER. U statutu di cumandamentu DCACHE pò esse verificatu attraversu CMDENF è BUSYCMDF attraversu DCACHE_SR Una interruzzione pò ancu esse generata se u bit CMDENDIE hè stabilitu in DCACHE_IER. A tavula sottu elenca l'interruzioni DCACHE è i bandieri di l'avvenimenti
Table 8. DCACHE Bits di gestione di l'interruzzione è di l'avvenimenti
| Registrate | Registrate | Descrizzione di bit | Tipu di accessu à bit |
|
DCACHE_SR |
Occupatu | Cache esegue una operazione di invalidazione completa |
Lettura solu |
| BSYENDF | L'operazione di invalidazione completa di a cache hè finita | ||
| BUSYCMDF | Cache chì esegue un cumandamentu di gamma | ||
| CMENDDF | Una fine di cumandamentu di gamma | ||
| ERRF | Un errore hè accadutu durante l'operazione di caching | ||
|
DCACHE_IER |
ERRIE | Abilita l'interruzzione per l'errore di cache |
Leghje / scrive |
| CMDENDIE | Abilita l'interruzzione à a fine di u cumandamentu di u range | ||
| BSYENDIE | Abilita l'interruzzione à a fine di l'operazione di invalidazione completa | ||
|
DCACHE_FCR |
CERRF | Cancella ERRF in DCACHE_SR |
Scrive solu |
| CCMDENDF | Cancella CMENDDF in DCACHE_SR | ||
| CBSYENDF | Cancella BSYENDF in DCACHE_SR |
Prestazione ICACHE è DCACHE è cunsumu di energia
Utilizà ICACHE è DCACHE migliurà u rendiment di l'applicazione quandu accede à e memorie esterne. A tabella seguente mostra l'impattu di ICACHE è DCACHE nantu à l'esecuzione di CoreMark® quandu accede à e memorie esterne.
Table 9. Prestazione ICACHE è DCACHE nantu à l'esekzione CoreMark cù ricordi esterni
| (1) | ||||
| codice CoreMark | Dati CoreMark | cunfigurazione ICACHE | Cunfigurazione DCACHE | Score CoreMark/Mhz |
| Memoria Flash interna | SRAM interna | Abilitatu (2 modi) | Disabilitatu | 3.89 |
| Memoria Flash interna | PSRAM Octo-SPI esterno (S-bus) | Abilitatu (2 modi) | Abilitatu | 3.89 |
| Memoria Flash interna | PSRAM Octo-SPI esterno (S-bus) | Abilitatu (2 modi) | Disabilitatu | 0.48 |
| Flash Octo-SPI esterno (C-bus) | SRAM interna | Abilitatu (2 modi) | Disabilitatu | 3.86 |
| Flash Octo-SPI esterno (C-bus) | SRAM interna | Disabilitatu | Disabilitatu | 0.24 |
| Memoria Flash interna | SRAM interna | Disabilitatu | Disabilitatu | 2.69 |
Cundizioni di prova:
- Pruduttu applicabile: STM32U575/585
- Frequenza di u sistema: 160 MHz.
- Memoria esterna Octo-SPI PSRAM: 80 MHz (modalità DTR).
- Memoria flash Octo-SPI esterna: 80 MHz (modalità STR).
- Cumpilatore: IAR V8.50.4.
- Flash internu PREFETCH: ON.
Utilizà ICACHE è DCACHE riduce u cunsumu d'energia quandu accede à i ricordi interni è esterni. A tabella seguente mostra l'impattu di ICACHE nantu à u cunsumu di energia durante l'esekzione CoreMark.
Table 10. CoreMark esecuzione ICACHE impattu in u cunsumu di energia
| cunfigurazione ICACHE | Cunsumu di energia MCU (mA) |
| Abilitatu (2 modi) | 7.60 |
| Abilitatu (1-direzzione) | 7.13 |
| Disabilitatu | 8.89 |
- Cundizioni di prova:
- Pruduttu applicabile: STM32U575/585
- Codice CoreMark: memoria Flash interna.
- Dati CoreMark: SRAM interna.
- Memoria Flash Interna PREFETCH: ON.
- Frequenza di u sistema: 160 MHz.
- Cumpilatore: IAR V8.32.2.
- Voltage gamma: 1.
- SMPS: ON.
- A cunfigurazione associativa di u modu hè più efficau chè a cunfigurazione associativa di 1-mode per u codice chì ùn pò micca esse cumpletamente caricatu in cache. Intantu, a cache associativa 1-way set hè quasi sempre più efficiente di u putere cà 2-way cache associative set. Ogni codice deve esse valutatu in e duie cunfigurazioni di l'associatività, per selezziunà u megliu scambiu trà u rendiment è u cunsumu di energia. A selezzione dipende da a priorità di l'utilizatori.
Cunclusioni
I primi cache sviluppati da STMicroelectronics, ICACHE è DCACHE, sò capaci di cache memorie interne è esterne, offrendu un miglioramentu di u rendiment per u trafficu di dati è i struzzioni. Stu documentu mostra e diverse caratteristiche supportate da l'ICACHE è DCACHE, a so simplicità di cunfigurazione è a flessibilità permettenu un costu di sviluppu più bassu è un tempu più rapidu per u mercatu.
Storia di rivisione
Table 11. Storia di rivisione di documenti
| Data | Versione | Cambiamenti |
| 10-ottobre-2019 | 1 | Liberazione iniziale. |
|
27-Feb-2020 |
2 |
Aghjurnatu:
• Table 2. Regioni di memoria è i so indirizzi • Section 2.1.7 mantenimentu ICACHE • Section 2.1.8 ICACHE security |
|
7-Dic-2021 |
3 |
Aghjurnatu:
• Titulu di u documentu • Introduzione • Section 1 ICACHE è DCACHE overview • Sezione 4 Conclusione Aggiunta: • Section 2 ICACHE è funzioni DCACHE • Section 3 ICACHE è DCACHE prestazione è cunsumu di energia |
|
15-Feb-2023 |
4 |
Aghjurnatu:
• Sezione 2.2: architettura intelligente di a serie STM32U5 • Sezione 2.5: diagramma di bloccu DCACHE • Sezione 3.1.2: ICACHE 1-way versus 2-way • Sezione 3.1.4: Regioni cacheable è funzione di rimappatura • Sezione 3.2: funzioni DCACHE • Sezione 3.2.2: DCACHE regioni cacheable • Sezione 4: Prestazione ICACHE è DCACHE è cunsumu di energia Aggiuntu: |
|
11-mar-2024 |
5 |
Aghjurnatu: |
AVVISU IMPORTANTE - LEGGIU ATTENTAMENTE
STMicroelectronics NV è e so filiali ("ST") si riservanu u dirittu di fà cambiamenti, correzioni, miglioramenti, mudificazioni è migliure à i prudutti ST è / o à stu documentu in ogni mumentu senza avvisu. I cumpratori anu da ottene l'ultime informazioni pertinenti nantu à i prudutti ST prima di fà ordini. I prudutti ST sò venduti in cunfurmità cù i termini è e cundizioni di vendita di ST in vigore à u mumentu di a ricunniscenza di l'ordine. I cumpratori sò solu rispunsevuli di a scelta, a selezzione è l'usu di i prudutti ST è ST ùn assume micca responsabilità per l'assistenza di l'applicazione o u disignu di i prudutti di l'acquirente. Nisuna licenza, espressa o implicita, à qualsiasi dirittu di pruprietà intellettuale hè cuncessa da ST quì. A rivendita di i prudutti ST cù disposizioni diverse da l'infurmazioni stabilite quì annullerà ogni garanzia accordata da ST per tali pruduttu. ST è u logo ST sò marchi di ST. Per infurmazioni supplementari nantu à i marchi ST, riferite à www.st.com/trademarks. Tutti l'altri prudutti o nomi di serviziu sò a pruprietà di i so rispettivi pruprietarii. L'infurmazioni in stu documentu rimpiazzanu è rimpiazzanu l'infurmazioni furnite prima in qualsiasi versione precedente di stu documentu. © 2024 STMicroelectronics - Tutti i diritti riservati
Documenti / Risorse
![]() |
Microcontrollers di a serie STMicroelectronics STM32H5 [pdfManuale d'usu Serie STM32H5 Microcontrollers, STM32H5, Serie Microcontrollers, Microcontrollers |

