Mikrokontrolerji serije STMicroelectronics STM32H5

Uvod
Ta opomba o aplikaciji opisuje predpomnilnik ukazov (ICACHE) in podatkovni predpomnilnik (DCACHE), prva predpomnilnika, ki ju je razvil STMicroelectronics. ICACHE in DCACHE, predstavljena na vodilu AHB procesorja Arm® Cortex®-M33, sta vdelana v mikrokrmilnik STM32 (MCU), naveden v spodnji tabeli. Ti predpomnilniki omogočajo uporabnikom, da izboljšajo zmogljivost svojih aplikacij in zmanjšajo porabo pri pridobivanju navodil in podatkov iz notranjih in zunanjih pomnilnikov ali za podatkovni promet iz zunanjih pomnilnikov. Ta dokument podaja tipične examples za poudarjanje funkcij ICACHE in DCACHE in olajšanje njihove konfiguracije.
Tabela 1. Veljavni izdelki
| Vrsta | Serija izdelkov |
| Mikrokontrolerji | Serija STM32H5, serija STM32L5, serija STM32U5 |
Splošne informacije
Opomba:
Ta opomba o uporabi velja za mikrokontrolerje serije STM32, ki so naprave, ki temeljijo na jedru Arm® Cortex®. Arm je registrirana blagovna znamka Arm Limited (ali njenih podružnic) v ZDA in/ali drugje.
Konec ICACHE in DCACHEview
Ta razdelek ponuja overview vmesnikov ICACHE in DCACHE, vdelanih v mikrokontrolerje na osnovi jedra STM32 Arm® Cortex®. Ta razdelek podrobno opisuje diagram ICACHE in DCACHE ter integracijo v sistemsko arhitekturo.
Pametna arhitektura serije STM32L5
Ta arhitektura temelji na matriki vodila, ki več glavnim enotam (Cortex-M33, ICACHE, DMA1/2 in SDMMC1) omogoča dostop do več podrejenih (kot je bliskovni pomnilnik, SRAM1/2, OCTOSPI1 ali FSMC). Spodnja slika opisuje pametno arhitekturo serije STM32L5.
Slika 1. Pametna arhitektura serije STM32L5

Zmogljivost Cortex-M33 je izboljšana z uporabo 8-Kbajtnega vmesnika ICACHE, uvedenega v njegovo vodilo C-AHB, pri pridobivanju kode ali podatkov iz notranjih pomnilnikov (flash pomnilnik, SRAM1 ali SRAM2) prek hitrega vodila in tudi iz zunanje pomnilnike (OCTOSPI1 ali FSMC) prek počasnega vodila.
Pametna arhitektura serije STM32U5
Ta arhitektura temelji na matriki vodila, ki več glavnim enotam (Cortex-M33, ICACHE, DCACHE, GPDMA, DMA2D in SDMMC, OTG_HS, LTDC, GPU2D, GFXMMU) omogoča dostop do več podrejenih (kot so bliskovni pomnilnik, SRAM, BKPSRAM, HSPI/ OCTOSPI ali FSMC). Spodnja slika opisuje pametno arhitekturo serije STM32U5.
Slika 2. Pametna arhitektura serije STM32U5

Vmesnika Cortex-M33 in GPU2D imata koristi od uporabe predpomnilnika.
- ICACHE izboljša zmogljivost Cortex-M33 pri pridobivanju kode ali podatkov iz notranjih pomnilnikov prek hitrega vodila (flash pomnilnik, SRAM) in iz zunanjih pomnilnikov prek počasnega vodila (OCTOSPI1/2 in HSPI1 ali FSMC). DCACHE1 izboljša zmogljivost pri pridobivanju podatkov iz notranjih ali zunanjih pomnilnikov prek s‑bus (GFXMMU, OCTOSPI1/2 in HSPI1 ali FSMC).
- DCACHE2 izboljša zmogljivost GPU2D pri pridobivanju podatkov iz notranjih in zunanjih pomnilnikov (GFXMMU, bliskovni pomnilnik, SRAM, OCTOSPI1/2 in HSPI1 ali FSMC) prek vodila vrat M0.
Pametna arhitektura serije STM32H5
Pametna arhitektura STM32H523/H533, STM32H563/H573 in STM32H562. Ta arhitektura temelji na matriki vodila, ki omogoča več glavnim enotam (Cortex-M33, ICACHE, DCACHE, GPDMA, Ethernet in SDMMC) dostop do več podrejenih enot (kot so bliskovni pomnilnik, SRAM, BKPSRAM). , OCTOSPI in FMC). Spodnja slika opisuje pametno arhitekturo serije STM32H5.
Slika 3. Pametna arhitektura serije STM32H563/H573 in STM32H562

Cortex-M33 ima koristi od uporabe CACHE.
- ICACHE izboljša zmogljivost Cortex-M33 pri pridobivanju kode ali podatkov iz notranjih pomnilnikov prek hitrega vodila (flash pomnilnik, SRAM) in iz zunanjih pomnilnikov prek počasnega vodila (OCTOSPI in FMC).
- DCACHE izboljša zmogljivost pri pridobivanju podatkov iz zunanjih pomnilnikov prek počasnega vodila (OCTOSPI in FMC).
Pametna arhitektura STM32H503
Ta arhitektura temelji na matriki vodila, ki več glavnim enotam (Cortex-M33, ICACHE in GPDMA) omogoča dostop do več podrejenih (kot so bliskovni pomnilnik, SRAM in BKPSRAM). Spodnja slika opisuje pametno arhitekturo serije STM32H5.
Slika 4. Pametna arhitektura serije STM32H503

Cortex-M33 ima koristi od uporabe CACHE.
- ICACHE izboljša zmogljivost Cortex-M33 pri pridobivanju kode ali podatkov iz notranjih pomnilnikov prek hitrega vodila (flash pomnilnik, SRAM).
Blokovni diagram ICACHE
Blokovni diagram ICACHE je podan na spodnji sliki.
Slika 5. Blokovni diagram ICACHE

Pomnilnik ICACHE vključuje:
- the TAG spomin z:
- naslov tags ki kažejo, kateri podatki so v predpomnilniku podatkov
- bitov veljavnosti
- podatkovni pomnilnik, ki vsebuje predpomnjene podatke
Blokovni diagram DCACHE
Blokovni diagram DCACHE je podan na spodnji sliki.
Slika 6. Blokovni diagram DCACHE

Pomnilnik DCACHE vključuje:
- the TAG spomin z:
- naslov tags ki kažejo, kateri podatki so v predpomnilniku podatkov
- bitov veljavnosti
- bitov privilegijev
- umazane koščke
- podatkovni pomnilnik, ki vsebuje predpomnjene podatke
Funkcije ICACHE in DCACHE
Dvojni mojstri
ICACHE dostopa do matrike vodila AHB preko:
- Ena glavna vrata AHB: master1 (hitro vodilo)
- Dva glavna priključka AHB: master1 (hitro vodilo) in master2 (počasno vodilo)
Ta funkcija omogoča ločevanje prometa pri dostopu do različnih pomnilniških območij (kot so notranji bliskovni pomnilnik, notranji SRAM in zunanji pomnilniki), da se zmanjšajo zastoji CPE ob zgrešenih predpomnilnikih. Naslednja tabela povzema pomnilniške regije in njihove naslove.
Tabela 2. Pomnilniške regije in njihovi naslovi
| Periferni | Dostop do predpomnilnika | Dostop do pomnilnika, ki ga ni mogoče predpomniti | |||||||
|
Vrsta |
Ime |
Ime izdelka in velikost regije |
Ime avtobusa |
Začetni naslov nezaščitene regije |
Varen, nevaren začetni naslov klicne regije |
Ime avtobusa |
Začetni naslov nezaščitene regije |
Varen, nevaren začetni naslov klicne regije | |
|
Notranji |
FLASH |
STM32H503 | 128 KB |
ICACHE hitri avtobus |
0x0800 0000 |
N/A |
N/A |
N/A |
N/A |
| STM32L5
serija/ 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
serije |
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 |
||||
| Periferni | Dostop do predpomnilnika | Dostop do pomnilnika, ki ga ni mogoče predpomniti | |||||||
|
Notranji |
SRAM2 |
STM32H563/573/562 | 80 KB |
ICACHE hitri avtobus |
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 |
|||
|
Zunanji |
HSPI1 | STM32U59x/
5Ax/5Fx/5Gx |
256 MB |
ICACHE počasen avtobus |
Vzdevek naslova v območju [0x0000 0000 na 0x07FF FFFF] ali [0x1000 0000:0x1FFF FFFF], definiran s funkcijo ponovnega preslikave |
N/A |
0xA000 0000 | ||
| FMC SDRAM | STM32H563/573/562 | 0xC000 0000 | |||||||
|
OCTOSPI1 banka nevarna |
STM32L5/U5
serije STM32H563/573/562 |
0x9000 0000 |
|||||||
|
FMC banka 3 nevaren |
STM32L5/U5
serije STM32H563/573/562 |
0x8000 0000 |
|||||||
| OCTOSPI2
banka nevarna |
STM32U575/
585/59x/5Ax/ 5Fx/5Gx |
0x7000 0000 |
|||||||
|
FMC banka 1 nevaren |
STM32L5/U5
serije STM32H563/573/562 |
0x6000 0000 |
|||||||
1. Izbrati pri ponovnem preslikavanju takih regij.
1-smerni proti 2-smernemu ICACHE
Privzeto je ICACHE konfiguriran v asociativnem načinu delovanja (omogočena sta dva načina), vendar je mogoče konfigurirati ICACHE v načinu neposredne preslikave (omogočeno enosmerno) za aplikacije, ki zahtevajo zelo nizko porabo energije. Konfiguracija ICACHE se izvede z bitom WAYSEL v ICACHE_CR, kot sledi:
- WAYSEL = 0: neposredno preslikan način delovanja (1-smerni)
- WAYSEL = 1 (privzeto): asociativni način delovanja (2-smerni)
Tabela 3. 1-smerni proti 2-smernemu ICACHE
| Parameter | 1-smerni ICACHE | 2-smerni ICACHE |
| Velikost predpomnilnika (Kbajti) | 8(1)/32(2) | |
| Predpomnite na več načinov | 1 | 2 |
| Velikost vrstice predpomnilnika | 128 bitov (16 bajtov) | |
| Število vrstic predpomnilnika | 512(1)/2048(2) | 256(1)/1024(2) na smer |
- Za serijo STM32L5 / serijo STM32H5 / STM32U535/545/575/585
- For STM32U59x/5Ax/5Fx/5Gx
Razpočni tip
Nekateri pomnilniki Octo-SPI podpirajo izbruh WRAP, ki zagotavlja prednost kritične zmogljivosti funkcije prve besede. Vrsto izbruha ICACHE pomnilniške transakcije AHB za ponovno preslikane regije je mogoče konfigurirati. Izvaja inkrementalni izbruh ali izbruh WRAP, izbran z bitom HBURST v registru ICACHE_CRRx. Spodaj so navedene razlike med WRAP in inkrementalnimi izbruhi (glejte tudi sliko):
- WRAP izbruh:
- velikost vrstice predpomnilnika = 128 bitov
- burst to start address = naslov besede prvih podatkov, ki jih zahteva CPE
- Prirastni izbruh:
- velikost vrstice predpomnilnika = 128 bitov
- burst začetni naslov = naslov poravnan na meji predpomnilniške vrstice, ki vsebuje zahtevano besedo
Slika 7. Inkrementalni v primerjavi z WRAP izbruhom

Regije, ki jih je mogoče predpomniti, in funkcija ponovnega preslikave
ICACHE je povezan s Cortex-M33 prek vodila C-AHB in predpomni kodno regijo z naslovov [0x0000 0000 do 0x1FFF FFFF]. Ker so zunanji pomnilniki preslikani na naslov v območju [0x6000 0000 do 0xAFFF FFFF], ICACHE podpira funkcijo ponovne preslikave, ki omogoča preslikavo katere koli zunanje pomnilniške regije na naslov v območju od [0x0000 0000 do 0x07FF FFFF] oz. [0x1000 0000 do 0x1FFF FFFF] in postanejo dostopni prek vodila C-AHB. S to funkcijo je mogoče preslikati do štiri zunanje pomnilniške regije. Ko je regija ponovno preslikana, se operacija preslikave izvede, tudi če je ICACHE onemogočen ali če transakcije ni mogoče predpomniti. Pomnilniške regije, ki jih je mogoče predpomniti, lahko definira in programira uporabnik v enoti za zaščito pomnilnika (MPU). Spodnja tabela povzema konfiguracije pomnilnikov serije STM32L5 in STM32U5.
Tabela 4. Konfiguracija pomnilnikov serije STM32L5 in STM32U5
|
Pomnilnik izdelka |
Predpomnilnik
(programiranje MPU) |
Preslikano v ICACHE
(programiranje ICACHE_CRRx) |
| Flash pomnilnik | da ali ne |
Ni potrebno |
| SRAM | Ni priporočljivo | |
| Zunanji pomnilnik (HSPI/OCTOSPI ali FSMC) | da ali ne | Zahtevano, če želi uporabnik zunanje pridobivanje kode na vodilu C-AHB (sicer na vodilu S-AHB) |
Prednost preslikave zunanjega pomnilnika ICACHE
Bivšiample na spodnji sliki prikazuje, kako izkoristiti izboljšano zmogljivost ICACHE med izvajanjem kode ali branjem podatkov pri dostopu do zunanjega 8-Mbajtnega zunanjega pomnilnika Octo-SPI (kot je zunanji bliskovni pomnilnik ali RAM).
Slika 8. Preslikava pomnilnika Octo-SPI nprample

Za ponovno preslikavo tega zunanjega pomnilnika so potrebni naslednji koraki:
Konfiguracija OCTOSPI za zunanji pomnilnik
Konfigurirajte vmesnik OCTOSPI za dostop do zunanjega pomnilnika v načinu preslikave pomnilnika (zunanji pomnilnik je viden kot notranji pomnilnik, preslikan v območju [0x9000 0000 do 0x9FFF FFFF]). Ker je velikost zunanjega pomnilnika 8 Mbajtov, je viden v območju [0x9000 0000 do 0x907F FFFF]. Do zunanjega pomnilnika v tej regiji se dostopa prek vodila S-bus in ga ni mogoče predpomniti. Naslednji korak prikazuje konfiguracijo ICACHE za ponovno preslikavo te regije.
Opomba: Za konfiguracijo OCTOSPI v pomnilniško preslikanem načinu glejte opombo o aplikaciji Vmesnik Octo‑ SPI na mikrokrmilnikih STM32 (AN5050
Konfiguracija ICACHE za ponovno preslikavo območja, preslikanega v zunanji pomnilnik
8 Mbajtov v območju [0x9000 0000 do 0x907F FFFF] je preslikanih v območje [0x1000 0000 do 0x107F FFFF]. Do njih je nato mogoče dostopati prek počasnega vodila (ICACHE master2 vodilo).
- Konfiguracija registra ICACHE_CR
- Onemogočite ICACHE z EN = 0.
- Izberite 1-smerno ali 2-smerno (odvisno od potreb aplikacije) z WAYSEL = 0 oziroma 1.
- Konfiguracija registra ICACHE_CRRx (do štiri regije, x = 0 do 3)
- Izberite osnovni naslov 0x1000 0000 (naslov za ponovno preslikavo) z BASEADDR [28:21] = 0x80.
- Izberite 8-Mbajtno velikost regije za ponovno preslikavo z RSIZE[2:0] = 0x3.
- Izberite 0x9000 0000 preslikan naslov REMAPADDR[31:21] = 0x480.
- Izberite vrata ICACHE AHB master2 za zunanje pomnilnike z MSTSEL = 1.
- Izberite vrsto rafala WRAP s HBURST = 0.
- Omogoči ponovno preslikavo za regijo x z REN = 1.
Naslednja slika prikazuje, kako so območja pomnilnika vidna z IAR po omogočitvi ponovne preslikave.
Slika 9. Preslikava pomnilniških regij nprample

Zunanji pomnilnik velikosti 8 MB je zdaj preslikan in je do njega mogoče dostopati v območju [0x1000 0000 do 0x107F FFFF].
Omogoči ICACHE
- Konfiguracija registra ICACHE_CR Omogočite ICACHE z EN = 1.
Monitorji zadeti in zgrešiti
ICACHE nudi dva monitorja za analizo zmogljivosti: 32-bitni monitor zadetkov in 16-bitni monitor napak.
- Nadzornik zadetkov šteje transakcije AHB, ki jih je mogoče predpomniti, na vratih podrejenega predpomnilnika, ki zadenejo vsebino ICACHE (pridobljeni podatki, ki so že na voljo v predpomnilniku). Števec nadzornika zadetkov je na voljo v registru ICACHE_HMONR.
- Nadzornik napak prešteje transakcije AHB, ki jih je mogoče predpomniti, na vratih podrejenega predpomnilnika, ki pogrešajo vsebino ICACHE (pridobljeni podatki, ki še niso na voljo v predpomnilniku). Števec manjkajočega monitorja je na voljo v registru ICACHE_MMONR.
Opomba:
Ta dva monitorja se ne zavijeta, ko dosežeta najvišje vrednosti. Ti monitorji se upravljajo iz naslednjih bitov v registru ICACHE_CR:
- HITMEN bit (oziroma MISSMEN bit) za omogočanje/ustavitev nadzora zadetka (oziroma zgrešenega)
- Bit HITMRST (oziroma bit MISSMRST) za ponastavitev zadetega (oziroma zgrešenega) monitorja Privzeto so ti monitorji onemogočeni, da se zmanjša poraba energije.
Vzdrževanje ICACHE
Programska oprema lahko razveljavi ICACHE z nastavitvijo bita CACHEINV v registru ICACHE_CR. To dejanje razveljavi celoten predpomnilnik in ga naredi praznega. Medtem, če so omogočene nekatere ponovno preslikane regije, je funkcija ponovne preslikave še vedno aktivna, tudi če je ICACHE onemogočen. Ker ICACHE upravlja le transakcije branja in ne pisalnih transakcij, ne zagotavlja skladnosti v primeru pisanja. Posledično mora programska oprema po programiranju regije razveljaviti ICACHE.
Varnost ICACHE
ICACHE je zaščitna periferna naprava, ki jo je mogoče konfigurirati kot varno prek registra varne konfiguracije GTZC TZSC. Ko je konfiguriran kot varen, so dovoljeni samo varni dostopi do registrov ICACHE. ICACHE je mogoče konfigurirati tudi kot privilegiran prek registra konfiguracije privilegijev GTZC TZSC. Ko je ICACHE konfiguriran kot privilegiran, so dovoljeni samo privilegirani dostopi do registrov ICACHE. Privzeto je ICACHE nezaščiten in neprivilegiran prek GTZC TZSC.
Upravljanje dogodkov in prekinitev
ICACHE upravlja funkcionalne napake, ko jih odkrije, z nastavitvijo zastavice ERRF v ICACHE_SR. Prekinitev se lahko ustvari tudi, če je bit ERRIE nastavljen v ICACHE_IER. V primeru razveljavitve ICACHE, ko je stanje zasedenosti predpomnilnika končano, je zastavica BSYENDF nastavljena v ICACHE_SR. Prekinitev se lahko ustvari tudi, če je bit BSYENDIE nastavljen v ICACHE_IER. Spodnja tabela navaja zastavice prekinitev in dogodkov ICACHE.
Tabela 5. ICACHE prekinitev in bit upravljanja dogodkov
| Registrirajte se | Bitno ime | Opis bitov | Vrsta bitnega dostopa |
|
ICACHE_SR |
ZASEDEN | Predpomnilnik, ki izvaja operacijo popolne razveljavitve |
Samo za branje |
| BSYENDF | Operacija razveljavitve predpomnilnika je končana | ||
| NAPAKA | Med operacijo predpomnjenja je prišlo do napake | ||
|
ICACHE_IER |
ERRIE | Omogoči prekinitev za napako predpomnilnika |
Beri/piši |
| BSYENDIE | Omogoči prekinitev v primeru končane operacije razveljavitve | ||
|
ICACHE_FCR |
CERRF | Počisti ERRF v ICACHE_SR |
Samo za pisanje |
| CBSYENDF | Počisti BSYENDF v ICACHE_SR |
Funkcije DCACHE
Namen podatkovnega predpomnilnika je predpomniti naložene podatke zunanjega pomnilnika in shrambo podatkov, ki prihajajo iz procesorja ali druge periferne enote glavnega vodila. DCACHE upravlja transakcije branja in pisanja.
Promet predpomnilnika DCACHE
DCACHE predpomni zunanje pomnilnike iz vmesnika glavnih vrat prek vodila AHB. Vhodne zahteve po pomnilniku so opredeljene kot predpomnjene glede na atribut zaklepanja transakcijskega pomnilnika AHB. Politika pisanja DCACHE je definirana kot pisanje skozi ali nazaj, odvisno od atributa pomnilnika, ki ga konfigurira MPU. Ko je regija konfigurirana kot nepredpomnjena, se DCACHE zaobide.
Tabela 6. Predpomnilnik DCACHE za transakcijo AHB
| Atribut iskanja AHB | AHB atribut medpomnilnika | Predpomnilniška zmogljivost |
| 0 | X | Branje in pisanje: ni mogoče predpomniti |
|
1 |
0 |
Beri: možnost predpomnilnika
Pisanje: (cacheable) pisanje skozi |
|
1 |
1 |
Beri: možnost predpomnilnika
Pisanje: (cacheable) povratno pisanje |
DCACHE regije, ki jih je mogoče predpomniti
Za serijo STM32U5 je podrejeni vmesnik DCACHE1 povezan s Cortex-M33 prek vodila S-AHB in predpomni GFXMMU, FMC in HSPI/OCTOSPI. Podrejeni vmesnik DCACHE2 je povezan z DMA2D prek vodila vrat M0 in predpomni vse notranje in zunanje pomnilnike (razen SRAM4 in BRKPSRAM). Za serijo STM32H5 je podrejeni vmesnik DCACHE povezan s Cortex-M33 prek zunanjih pomnilnikov S-AHB prek FMC in OCTOSPI.
Tabela 7. Regije in vmesniki, ki jih je mogoče predpomniti DCACHE
| Območje naslova pomnilnika, ki ga je mogoče predpomniti | DCACHE1 vmesniki, ki jih je mogoče predpomniti | DCACHE2 vmesniki, ki jih je mogoče predpomniti |
| GFXMMU | X | X |
| SRAM1 |
N/A |
X |
| SRAM2 | X | |
| SRAM3 | X | |
| SRAM5 | X | |
| SRAM6 | X | |
| HSPI1 | X | X |
| OCTOSPI1 | X | X |
| FMC BANKE | X | X |
| OCTOSPI2 | X | X |
Opomba
Nekateri vmesniki niso podprti v nekaterih izdelkih. Glejte sliko 1 ali referenčni priročnik za določen izdelek.
Razpočni tip
Enako kot ICACHE tudi DCACHE podpira inkrementalne in zavite izbruhe (glejte razdelek 3.1.3). Za DCACHE je vrsta izbruha konfigurirana prek bita HBURST v DCACHE_CR.
Konfiguracija DCACHE
Med zagonom je DCACHE privzeto onemogočen, zaradi česar se zahteve za podrejeni pomnilnik posredujejo neposredno v glavna vrata. Če želite omogočiti DCACHE, mora biti EN bit nastavljen v registru DCACHE_CR. Monitorji hit-and-miss DCACHE izvaja štiri monitorje za analizo zmogljivosti predpomnilnika:
- Dva 32-bitna (R/W) monitorja zadetkov: štejeta, kolikokrat je CPE prebral ali zapisal podatke v predpomnilnik brez generiranja transakcije na glavnih vratih DCACHE (podatki so že na voljo v predpomnilniku). Števci nadzornikov zadetkov (R/W) so na voljo v registrih DCACHE_RHMONR oziroma DCACHE_WHMONR.
- Dva 16-bitna (R/W) monitorja napak: preštejeta, kolikokrat je CPE prebral ali zapisal podatke v predpomnilnik in generira transakcijo na glavnih vratih DCACHE, da naloži podatke iz pomnilniškega območja (pridobljeni podatki niso že na voljo v predpomnilniku). (R/W) števci nadzorovanih napak so na voljo v registrih DCACHE_RMMONR oziroma DCACHE_WMMONR.
Opomba:
Ti štirje monitorji se ne ovijejo, ko dosežejo največje vrednosti. Ti monitorji se upravljajo iz naslednjih bitov v registru DCACHE_CR:
- Bit WHITMAN (oziroma bit WMISSMEN) za omogočanje/ustavitev monitorja zapisovalnega zadetka (oziroma zgrešenega)
- Bit RHITMEN (oziroma bit RMISSMEN), da omogočite/ustavite nadzor zadetka branja (oziroma zgrešenega)
- Bit WHITMRST (oziroma bit WMISSMRST) za ponastavitev monitorja zapisovalnega zadetka (oziroma zgrešenega)
- Bit RHITMRST (oziroma bit RMISSMRST) za ponastavitev monitorja zadetka branja (oziroma zgrešenega)
Ti monitorji so privzeto onemogočeni, da se zmanjša poraba energije.
Vzdrževanje DCACHE
DCACHE ponuja več operacij vzdrževanja, ki jih je mogoče konfigurirati prek CACHECMD[2:0] v DCACHE_CR.
- 000: brez operacije (privzeto)
- 001: čisto območje. Očistite določen obseg v predpomnilniku
- 010: razveljavlja obseg. Razveljavi določen obseg v predpomnilniku
- 010: počisti in razveljavi območje. Očistite in razveljavite določen obseg v predpomnilniku
Izbrani obseg je konfiguriran prek:
- Register CMDSTARTADDR: začetni naslov ukaza
- Register CMDENDADDR: končni naslov ukaza
Opomba:
Ta register je treba nastaviti, preden se zapiše CACHECMD. Vzdrževanje ukaza predpomnilnika se začne, ko je bit STARTCMD nastavljen v registru DCACHE_CR. DCACHE podpira tudi popolno razveljavitev CACHE z nastavitvijo bita CACHEINV v registru DCACHE_CR.
Varnost DCACHE
DCACHE je varna periferna naprava, ki jo je mogoče konfigurirati kot varno prek registra varne konfiguracije GTZC TZSC. Ko je konfiguriran kot varen, so dovoljeni samo varni dostopi do registrov DCACHE. DCACHE je mogoče konfigurirati tudi kot privilegiran prek konfiguracijskega registra privilegijev GTZC TZSC. Ko je DCACHE konfiguriran kot privilegiran, so dovoljeni samo privilegirani dostopi do registrov DCACHE. Privzeto je DCACHE nezaščiten in neprivilegiran prek GTZC TZSC.
Upravljanje dogodkov in prekinitev
DCACHE upravlja funkcionalne napake, ko jih odkrije, z nastavitvijo zastavice ERRF v DCACHE_SR. Prekinitev se lahko ustvari tudi, če je bit ERRIE nastavljen v DCACHE_IER. V primeru razveljavitve DCACHE, ko je stanje zasedenosti predpomnilnika končano, je zastavica BSYENDF nastavljena v DCACHE_SR. Prekinitev se lahko ustvari tudi, če je bit BSYENDIE nastavljen v DCACHE_IER. Stanje ukaza DCACHE je mogoče preveriti prek CMDENF in BUSYCMDF prek DCACHE_SR. Prekinitev se lahko ustvari tudi, če je bit CMDENDIE nastavljen v DCACHE_IER. Spodnja tabela navaja prekinitve DCACHE in zastavice dogodkov
Tabela 8. Biti upravljanja prekinitev in dogodkov DCACHE
| Registrirajte se | Registrirajte se | Opis bitov | Vrsta bitnega dostopa |
|
DCACHE_SR |
ZASEDEN | Predpomnilnik, ki izvaja operacijo popolne razveljavitve |
Samo za branje |
| BSYENDF | Operacija razveljavitve polnega predpomnilnika je končana | ||
| BUSYCMDF | Predpomnilnik izvajanja ukaza obsega | ||
| CMDENDF | Konec ukaza območja | ||
| ERRF | Med operacijo predpomnjenja je prišlo do napake | ||
|
DCACHE_IER |
ERRIE | Omogoči prekinitev za napako predpomnilnika |
Beri/piši |
| CMDENDIE | Omogoči prekinitev na koncu ukaza območja | ||
| BSYENDIE | Omogoči prekinitev ob koncu operacije popolne razveljavitve | ||
|
DCACHE_FCR |
CERRF | Počisti ERRF v DCACHE_SR |
Samo za pisanje |
| CCMDENDF | Počisti CMDENDF v DCACHE_SR | ||
| CBSYENDF | Počisti BSYENDF v DCACHE_SR |
Zmogljivost in poraba energije ICACHE in DCACHE
Uporaba ICACHE in DCACHE izboljša zmogljivost aplikacije pri dostopu do zunanjih pomnilnikov. Naslednja tabela prikazuje vpliv ICACHE in DCACHE na izvajanje CoreMark® pri dostopu do zunanjih pomnilnikov.
Tabela 9. Zmogljivost ICACHE in DCACHE pri izvajanju CoreMark z zunanjimi pomnilniki
| (1) | ||||
| Koda CoreMark | Podatki CoreMark | Konfiguracija ICACHE | Konfiguracija DCACHE | Rezultat CoreMark/Mhz |
| Notranji Flash pomnilnik | Notranji SRAM | Omogočeno (dvosmerno) | Onemogočen | 3.89 |
| Notranji Flash pomnilnik | Zunanji Octo-SPI PSRAM (S-bus) | Omogočeno (dvosmerno) | Omogočeno | 3.89 |
| Notranji Flash pomnilnik | Zunanji Octo-SPI PSRAM (S-bus) | Omogočeno (dvosmerno) | Onemogočen | 0.48 |
| Zunanja bliskavica Octo-SPI (C-bus) | Notranji SRAM | Omogočeno (dvosmerno) | Onemogočen | 3.86 |
| Zunanja bliskavica Octo-SPI (C-bus) | Notranji SRAM | Onemogočen | Onemogočen | 0.24 |
| Notranji Flash pomnilnik | Notranji SRAM | Onemogočen | Onemogočen | 2.69 |
Testni pogoji:
- Veljavni izdelek: STM32U575/585
- Sistemska frekvenca: 160 MHz.
- Zunanji pomnilnik Octo-SPI PSRAM: 80 MHz (način DTR).
- Zunanji bliskovni pomnilnik Octo-SPI: 80 MHz (način STR).
- Prevajalnik: IAR V8.50.4.
- Notranji Flash PREFETCH: VKLOP.
Uporaba ICACHE in DCACHE zmanjša porabo energije pri dostopu do notranjih in zunanjih pomnilnikov. Naslednja tabela prikazuje vpliv ICACHE na porabo energije med izvajanjem CoreMark.
Tabela 10. Vpliv izvajanja CoreMark ICACHE na porabo energije
| Konfiguracija ICACHE | Poraba energije MCU (mA) |
| Omogočeno (dvosmerno) | 7.60 |
| Omogočeno (1-smerno) | 7.13 |
| Onemogočen | 8.89 |
- Testni pogoji:
- Veljavni izdelek: STM32U575/585
- Koda CoreMark: notranji pomnilnik Flash.
- Podatki CoreMark: notranji SRAM.
- Notranji bliskovni pomnilnik PREFETCH: ON.
- Sistemska frekvenca: 160 MHz.
- Prevajalnik: IAR V8.32.2.
- voltage obseg: 1.
- SMPS: VKLOP.
- Asociativna konfiguracija nabora načinov je učinkovitejša od asociativne konfiguracije 1-smernega nabora za kodo, ki je ni mogoče v celoti naložiti v predpomnilnik. Medtem je 1-smerni asociativni predpomnilnik skoraj vedno energetsko učinkovitejši od dvosmernega asociativnega predpomnilnika. Vsako kodo je treba ovrednotiti v obeh konfiguracijah asociativnosti, da se izbere najboljši kompromis med zmogljivostjo in porabo energije. Izbira je odvisna od prioritete uporabnika.
Zaključek
Prvi predpomnilniki, ki jih je razvilo podjetje STMicroelectronics, ICACHE in DCACHE, lahko predpomnijo notranje in zunanje pomnilnike ter nudijo izboljšavo zmogljivosti za podatkovni promet in pridobivanje navodil. Ta dokument prikazuje različne funkcije, ki jih podpirata ICACHE in DCACHE, njihova preprostost konfiguracije in prilagodljivost omogočata nižje stroške razvoja in hitrejši čas za trženje.
Zgodovina revizij
Tabela 11. Zgodovina revizij dokumenta
| Datum | Različica | Spremembe |
| 10. oktober 2019 | 1 | Začetna izdaja. |
|
27-2020.feb |
2 |
posodobljeno:
• Tabela 2. Pomnilniške regije in njihovi naslovi • Razdelek 2.1.7 Vzdrževanje ICACHE • Razdelek 2.1.8 Varnost ICACHE |
|
7. december 2021 |
3 |
posodobljeno:
• Naslov dokumenta • Uvod • Oddelek 1 ICACHE in DCACHE je končanview • Dodan sklep 4. razdelka: • Funkcije ICACHE in DCACHE v razdelku 2 • Oddelek 3 Zmogljivost in poraba energije ICACHE in DCACHE |
|
15-2023.feb |
4 |
posodobljeno:
• Razdelek 2.2: Pametna arhitektura serije STM32U5 • Razdelek 2.5: Blokovni diagram DCACHE • Razdelek 3.1.1: Dvojni glavni • Razdelek 3.1.2: 1-smerni proti 2-smernemu ICACHE • Razdelek 3.1.4: Področja, ki jih je mogoče predpomniti, in funkcija preslikave • Razdelek 3.2: Funkcije DCACHE • Razdelek 3.2.2: Regije, ki jih je mogoče predpomniti DCACHE • Razdelek 4: Zmogljivost in poraba energije ICACHE in DCACHE dodano: |
|
11-mar-2024 |
5 |
posodobljeno: |
POMEMBNO OBVESTILO – POZORNO PREBERITE
STMicroelectronics NV in njegove hčerinske družbe (»ST«) si pridržujejo pravico do sprememb, popravkov, izboljšav, modifikacij in izboljšav izdelkov ST in/ali tega dokumenta kadar koli brez predhodnega obvestila. Kupci morajo pred oddajo naročil pridobiti najnovejše ustrezne informacije o izdelkih ST. Izdelki ST se prodajajo v skladu s prodajnimi pogoji ST, ki veljajo v času potrditve naročila. Kupci so izključno odgovorni za izbiro, izbiro in uporabo izdelkov ST in ST ne prevzema nobene odgovornosti za pomoč pri uporabi ali oblikovanje izdelkov kupcev. ST v tem dokumentu ne podeljuje nobene licence, izrecne ali implicitne, za katero koli pravico do intelektualne lastnine. Nadaljnja prodaja izdelkov ST z določbami, ki se razlikujejo od informacij, navedenih v tem dokumentu, razveljavi vsako garancijo, ki jo ST podeli za tak izdelek. ST in logotip ST sta blagovni znamki ST. Za dodatne informacije o blagovnih znamkah ST glejte www.st.com/trademarks. Vsa druga imena izdelkov ali storitev so last njihovih lastnikov. Informacije v tem dokumentu nadomestijo in nadomeščajo informacije, ki so bile predhodno navedene v kateri koli prejšnji različici tega dokumenta. © 2024 STMicroelectronics – Vse pravice pridržane
Dokumenti / Viri
![]() |
Mikrokontrolerji serije STMicroelectronics STM32H5 [pdfUporabniški priročnik Mikrokontrolerji serije STM32H5, STM32H5, mikrokrmilniki serije, mikrokrmilniki |

