STMicroelectronics STM32H5 serija mikrokontrolera

Uvod
Ova napomena o aplikaciji opisuje keš instrukcija (ICACHE) i keš podataka (DCACHE), prve keš memorije koje je razvio STMicroelectronics. ICACHE i DCACHE predstavljeni na AHB magistrali Arm® Cortex®-M33 procesora ugrađeni su u STM32 mikrokontroler (MCU) naveden u tabeli ispod. Ove keš memorije omogućavaju korisnicima da poboljšaju performanse svojih aplikacija i smanje potrošnju prilikom preuzimanja instrukcija i podataka iz interne i eksterne memorije, ili za promet podataka iz eksternih memorija. Ovaj dokument daje tipične pramples da istakne ICACHE i DCACHE karakteristike i olakša njihovu konfiguraciju.
Tabela 1. Primjenjivi proizvodi
| Tip | Serija proizvoda |
| Mikrokontroleri | STM32H5 serija, STM32L5 serija, STM32U5 serija |
Opće informacije
Napomena:
Ova napomena o primeni odnosi se na mikrokontrolere serije STM32 koji su Arm® Cortex® uređaji zasnovani na jezgri. Arm je registrovani zaštitni znak Arm Limited (ili njegovih podružnica) u SAD-u i/ili drugdje.
ICACHE i DCACHE su završeniview
Ovaj odeljak pruža prekoview ICACHE i DCACHE interfejsa ugrađenih u STM32 Arm® Cortex® mikrokontrolere sa jezgrom. Ovaj odjeljak opisuje ICACHE i DCACHE dijagram i integraciju u arhitekturu sistema.
Pametna arhitektura serije STM32L5
Ova arhitektura je zasnovana na matrici sabirnice koja omogućava višestrukim masterima (Cortex-M33, ICACHE, DMA1/2 i SDMMC1) da pristupe višestrukim slaveovima (kao što su fleš memorija, SRAM1/2, OCTOSPI1 ili FSMC). Slika ispod opisuje pametnu arhitekturu serije STM32L5.
Slika 1. Pametna arhitektura serije STM32L5

Performanse Cortex-M33 su poboljšane upotrebom 8-kilobajtnog ICACHE sučelja uvedenog u njegovu C-AHB magistralu, kada dohvaća kod ili podatke iz internih memorija (fleš memorija, SRAM1 ili SRAM2) kroz brzu magistralu, kao i sa eksterne memorije (OCTOSPI1 ili FSMC) preko spore magistrale.
Pametna arhitektura serije STM32U5
Ova arhitektura je zasnovana na matrici sabirnice koja omogućava višestrukim masterima (Cortex-M33, ICACHE, DCACHE, GPDMA, DMA2D i SDMMC, OTG_HS, LTDC, GPU2D, GFXMMU) da pristupe višestrukim slaveovima (kao što su flash memorija, SRAM, BKPSRAM, HSPI/ OCTOSPI, ili FSMC). Slika ispod opisuje pametnu arhitekturu serije STM32U5.
Slika 2. Pametna arhitektura serije STM32U5

Cortex-M33 i GPU2D interfejsi imaju koristi od korišćenja CACHE.
- ICACHE poboljšava performanse Cortex-M33 pri preuzimanju koda ili podataka iz internih memorija preko brze magistrale (fleš memorija, SRAM) i iz eksternih memorija preko spore magistrale (OCTOSPI1/2 i HSPI1, ili FSMC). DCACHE1 poboljšava performanse prilikom dohvaćanja podataka iz interne ili eksterne memorije preko s‑busa (GFXMMU, OCTOSPI1/2 i HSPI1, ili FSMC).
- DCACHE2 poboljšava performanse GPU2D pri preuzimanju podataka iz internih i eksternih memorija (GFXMMU, fleš memorija, SRAM, OCTOSPI1/2 i HSPI1, ili FSMC) preko M0 port magistrale.
Pametna arhitektura serije STM32H5
STM32H523/H533, STM32H563/H573 i STM32H562 pametna arhitektura Ova arhitektura je zasnovana na matrici sabirnice koja omogućava višestrukim masterima (Cortex-M33, ICACHE, DCACHE, GPDMA, Ethernet i SDMMC) da pristupe višestrukim slaveovima, SRAM memorijama (kao što su BKPS memorija). , OCTOSPI i FMC). Slika ispod opisuje pametnu arhitekturu serije STM32H5.
Slika 3. Pametna arhitektura serije STM32H563/H573 i STM32H562

Cortex-M33 ima koristi od upotrebe CACHE.
- ICACHE poboljšava performanse Cortex-M33 pri preuzimanju koda ili podataka iz internih memorija putem brze magistrale (fleš memorija, SRAM) i iz eksternih memorija preko spore magistrale (OCTOSPI i FMC).
- DCACHE poboljšava performanse pri preuzimanju podataka iz eksternih memorija preko spore magistrale (OCTOSPI i FMC).
STM32H503 pametna arhitektura
Ova arhitektura je zasnovana na matrici magistrale koja omogućava višestrukim masterima (Cortex-M33, ICACHE i GPDMA) pristup višestrukim slaveovima (kao što su fleš memorija, SRAM i BKPSRAM). Slika ispod opisuje pametnu arhitekturu serije STM32H5.
Slika 4. Pametna arhitektura serije STM32H503

Cortex-M33 ima koristi od upotrebe CACHE.
- ICACHE poboljšava performanse Cortex-M33 pri preuzimanju koda ili podataka iz internih memorija putem brze magistrale (fleš memorija, SRAM).
ICACHE blok dijagram
ICACHE blok dijagram je dat na donjoj slici.
Slika 5. ICACHE blok dijagram

ICACHE memorija uključuje:
- the TAG memorija sa:
- adresu tags koji označavaju koji se podaci nalaze u keš memoriji podataka
- bitovi valjanosti
- memoriju podataka, koja sadrži keširane podatke
DCACHE blok dijagram
Blok dijagram DCACHE je dat na donjoj slici.
Slika 6. DCACHE blok dijagram

DCACHE memorija uključuje:
- the TAG memorija sa:
- adresu tags koji označavaju koji se podaci nalaze u keš memoriji podataka
- bitovi valjanosti
- bitovi privilegija
- prljavi komadi
- memoriju podataka, koja sadrži keširane podatke
ICACHE i DCACHE karakteristike
Dual masters
ICACHE pristupa matrici sabirnice AHB preko:
- Jedan AHB glavni port: master1 (brza sabirnica)
- Dva AHB glavna porta: master1 (brza sabirnica) i master2 (spora sabirnica)
Ova funkcija omogućava razdvajanje saobraćaja kada se pristupa različitim memorijskim regionima (kao što su interna fleš memorija, interna SRAM i eksterne memorije), kako bi se smanjio zastoj CPU-a u slučaju promašaja keša. Sljedeća tabela sažima memorijske regije i njihove adrese.
Tabela 2. Memorijska područja i njihove adrese
| Peripheral | Pristup memoriji sa keširanjem | Pristup memoriji se ne može keširati | |||||||
|
Tip |
Ime |
Naziv proizvoda i veličina regije |
Ime autobusa |
Početna adresa nezaštićene regije |
Sigurna, nesigurna početna adresa regije koja se može pozvati |
Ime autobusa |
Početna adresa nezaštićene regije |
Sigurna, nesigurna početna adresa regije koja se može pozvati | |
|
Interni |
FLASH |
STM32H503 | 128 KB |
ICACHE brzi autobus |
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 |
||||
| Peripheral | Pristup memoriji sa keširanjem | Pristup memoriji se ne može keširati | |||||||
|
Interni |
SRAM2 |
STM32H563/ 573/562 | 80 KB |
ICACHE brzi autobus |
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 |
|||
|
Eksterni |
HSPI1 | STM32U59x/
5Ax/5Fx/5Gx |
256 MB |
ICACHE spor autobus |
Alias adresa u rasponu od [0x0000 0000 na 0x07FF FFFF] ili [0x1000 0000:0x1FFF FFFF] definiran pomoću funkcije ponovnog preslikavanja |
N/A |
0xA000 0000 | ||
| FMC SDRAM | STM32H563/ 573/562 | 0xC000 0000 | |||||||
|
OCTOSPI1 banka nesigurna |
STM32L5/U5
serije STM32H563/ 573/562 |
0x9000 0000 |
|||||||
|
FMC banka 3 nesiguran |
STM32L5/U5
serije STM32H563/ 573/562 |
0x8000 0000 |
|||||||
| OCTOSPI2
banka nesigurna |
STM32U575/
585/59x/5Ax/ 5Fx/5Gx |
0x7000 0000 |
|||||||
|
FMC banka 1 nesiguran |
STM32L5/U5
serije STM32H563/ 573/562 |
0x6000 0000 |
|||||||
1. Odabrati prilikom ponovnog mapiranja takvih regija.
Jednosmjerni naspram 1-smjerni ICACHE
Podrazumevano, ICACHE je konfigurisan u asocijativnom radnom režimu (omogućeno na dva načina), ali je moguće konfigurisati ICACHE u režimu direktnog mapiranja (omogućeno jednosmerno), za aplikacije koje zahtevaju veoma nisku potrošnju energije. ICACHE konfiguracija se radi sa WAYSEL bitom u ICACHE_CR na sljedeći način:
- WAYSEL = 0: direktno mapirani način rada (1-smjerni)
- WAYSEL = 1 (zadano): asocijativni način rada (2-smjerni)
Tabela 3. Jednosmjerni naspram 1-smjerni ICACHE
| Parametar | 1-smjerni ICACHE | 2-smjerni ICACHE |
| Veličina predmemorije (kilobajta) | 8(1)/32(2) | |
| Keširajte na više načina | 1 | 2 |
| Veličina predmemorije | 128 bita (16 bajtova) | |
| Broj keš linija | 512(1)/2048(2) | 256(1)/1024(2) u jednom pravcu |
- Za STM32L5 serije /STM32H5 serije /STM32U535/545/575/585
- For STM32U59x/5Ax/5Fx/5Gx
Burst type
Neke Octo-SPI memorije podržavaju WRAP burst, što pruža prednost kritičnih performansi funkcije prve riječi. ICACHE burst tip AHB memorijske transakcije za ponovno mapirane regije se može konfigurirati. Implementira inkrementalni burst ili WRAP burst, odabran bitom HBURST u registru ICACHE_CRRx. Razlike između WRAP-a i inkrementalnih rafala su date u nastavku (pogledajte i sliku):
- WRAP burst:
- Veličina keš linije = 128 bita
- burst to start adresa = adresa riječi prvih podataka koje zahtijeva CPU
- Inkrementalni rafal:
- Veličina keš linije = 128 bita
- burst početna adresa = adresa poravnata na granici keš linije koja sadrži traženu riječ
Slika 7. Inkrementalni u odnosu na WRAP burst

Regije koje se mogu keširati i funkcija ponovnog mapiranja
ICACHE je povezan sa Cortex-M33 preko C-AHB magistrale i kešira kodni region od adresa [0x0000 0000 do 0x1FFF FFFF]. Budući da su eksterne memorije mapirane na adresi u rasponu [0x6000 0000 do 0xAFFF FFFF], ICACHE podržava funkciju ponovnog mapiranja koja omogućava da se bilo koja regija eksterne memorije ponovo mapira na adresi u rasponu od [0x0000 0000 do 0x07FF FFFF] ili [0x1000 0000 do 0x1FFF FFFF], i da postane dostupan preko C-AHB magistrale. Ovom funkcijom mogu se remapirati do četiri eksterna memorijska područja. Jednom kada je regija ponovo mapirana, operacija ponovnog mapiranja se događa čak i ako je ICACHE onemogućen ili ako transakcija nije keširana. Memorijske regije koje se mogu keširati mogu biti definirane i programirane od strane korisnika u jedinici za zaštitu memorije (MPU). Tabela ispod sumira konfiguracije memorija serije STM32L5 i STM32U5.
Tabela 4. Konfiguracija memorija serije STM32L5 i STM32U5
|
Memorija proizvoda |
Cacheable
(MPU programiranje) |
Ponovno mapirano u ICACHE
(ICACHE_CRRx programiranje) |
| Flash memorija | Da ili Ne |
Nije potrebno |
| SRAM | Ne preporučuje se | |
| Eksterne memorije (HSPI/OCTOSPI ili FSMC) | Da ili Ne | Obavezno ako korisnik želi eksterno dohvaćanje koda na C-AHB sabirnici (drugo na S-AHB sabirnici) |
Prednost ICACHE remapiranje eksterne memorije
Bivšiample na donjoj slici pokazuje kako iskoristiti poboljšane performanse ICACHE tokom izvršavanja koda ili čitanja podataka kada se pristupa eksternoj Octo-SPI memoriji od 8 Mbajta (kao što je eksterna fleš memorija ili RAM).
Slika 8. Octo-SPI remap memorije example

Za ponovno mapiranje ove vanjske memorije potrebni su sljedeći koraci:
OCTOSPI konfiguracija za eksternu memoriju
Konfigurišite OCTOSPI interfejs da biste pristupili spoljnoj memoriji u režimu mapiranja memorije (spoljna memorija se vidi kao interna memorija mapirana u regionu [0x9000 0000 do 0x9FFF FFFF]). Pošto je veličina spoljne memorije 8 Mbajta, ona se vidi u regionu [0x9000 0000 do 0x907F FFFF]. Eksternoj memoriji u ovoj regiji pristupa se preko S‑busa i ne može se keširati. Sljedeći korak prikazuje ICACHE konfiguraciju kako bi se ponovo mapirala ova regija.
Napomena: Za konfiguraciju OCTOSPI u režimu mapiranja memorije, pogledajte napomenu o aplikaciji Octo-SPI interfejs na STM32 mikrokontrolerima (AN5050
ICACHE konfiguracija za ponovno mapiranje eksterne memorije mapirane regije
8 Mbajta smještenih u [0x9000 0000 do 0x907F FFFF] regiju se remapiraju u [0x1000 0000 to 0x107F FFFF] regiju. Tada im se može pristupiti preko spore magistrale (ICACHE master2 bus).
- ICACHE_CR konfiguracija registra
- Onemogućite ICACHE sa EN = 0.
- Odaberite 1-smjerni ili 2-smjerni (ovisno o potrebama aplikacije) sa WAYSEL = 0 ili 1, respektivno.
- ICACHE_CRRx konfiguracija registra (do četiri regije, x = 0 do 3)
- Odaberite 0x1000 0000 osnovnu adresu (remap adresu) sa BASEADDR [28:21] = 0x80.
- Odaberite veličinu regije od 8 Mbyte za ponovno mapiranje sa RSIZE[2:0] = 0x3.
- Izaberite 0x9000 0000 remapiranu adresu REMAPADDR[31:21] = 0x480.
- Odaberite ICACHE AHB master2 port za eksterne memorije sa MSTSEL = 1.
- Odaberite WRAP burst tip sa HBURST = 0.
- Omogućite ponovno mapiranje za regiju x sa REN = 1.
Sljedeća slika pokazuje kako se memorijski regioni vide sa IAR-om nakon omogućavanja ponovnog mapiranja.
Slika 9. Remapiranje memorijskih regija nprample

Eksterna memorija od 8 Mbyte je sada ponovo mapirana i može joj se pristupiti preko [0x1000 0000 do 0x107F FFFF] regiona.
Omogući ICACHE
- Konfiguracija registra ICACHE_CR Omogućite ICACHE sa EN = 1.
Monitori pogodaka i promašaja
ICACHE pruža dva monitora za analizu performansi: 32-bitni monitor pogodaka i 16-bitni monitor promašaja.
- Monitor pogodaka broji AHB transakcije koje se mogu keširati na slave keš portu koji pogađa ICACHE sadržaj (preuzeti podaci su već dostupni u kešu). Brojač praćenja pogodaka dostupan je u registru ICACHE_HMONR.
- Monitor promašaja broji AHB transakcije koje se mogu keširati na slave keš portu koje propuštaju ICACHE sadržaj (preuzeti podaci nisu već dostupni u kešu). Brojač monitora koji nedostaje dostupan je u registru ICACHE_MMONR.
Napomena:
Ova dva monitora se ne preklapaju kada dostignu svoje maksimalne vrijednosti. Ovim monitorima se upravlja iz sljedećih bitova u registru ICACHE_CR:
- HITMEN bit (odnosno MISSMEN bit) za omogućavanje/zaustavljanje praćenja pogodaka (odnosno promašaja)
- HITMRST bit (odnosno MISSMRST bit) za resetovanje monitora pogodaka (odnosno promašaja) Podrazumevano, ovi monitori su onemogućeni da bi se smanjila potrošnja energije.
ICACHE održavanje
Softver može poništiti ICACHE postavljanjem bita CACHEINV u ICACHE_CR registar. Ova radnja poništava cijeli keš, čineći ga praznim. U međuvremenu, ako su neke remapirane regije omogućene, funkcija ponovnog mapiranja je i dalje aktivna, čak i kada je ICACHE onemogućen. Kako ICACHE upravlja samo transakcijama čitanja i ne upravlja transakcijama pisanja, ne osigurava koherentnost u slučaju upisivanja. Shodno tome, softver mora poništiti ICACHE nakon programiranja regije.
ICACHE sigurnost
ICACHE je osigurana periferija koja se može konfigurirati kao sigurna preko GTZC TZSC registra sigurne konfiguracije. Kada je konfigurisan kao siguran, dozvoljeni su samo sigurni pristupi ICACHE registrima. ICACHE se također može konfigurirati kao privilegiran preko GTZC TZSC registra konfiguracije privilegija. Kada je ICACHE konfiguriran kao privilegiran, dozvoljeni su samo privilegirani pristupi ICACHE registrima. Prema zadanim postavkama, ICACHE nije siguran i nije privilegiran kroz GTZC TZSC.
Upravljanje događajima i prekidima
ICACHE upravlja funkcionalnim greškama kada se otkriju, postavljanjem ERRF zastavice u ICACHE_SR. Prekid se također može generirati ako je bit ERRIE postavljen u ICACHE_IER. U slučaju poništenja ICACHE, kada se završi stanje zauzetosti keša, BSYENDF zastavica se postavlja u ICACHE_SR. Prekid se također može generirati ako je bit BSYENDIE postavljen u ICACHE_IER. Donja tabela navodi ICACHE zastavice prekida i događaja.
Tablica 5. ICACHE prekidi i bitovi upravljanja događajima
| Registrirajte se | Ime bita | Bit opis | Bit pristup tip |
|
ICACHE_SR |
ZAUZETO | Keširanje izvršava potpunu operaciju poništavanja |
Samo za čitanje |
| BSYENDF | Operacija poništavanja predmemorije je završena | ||
| GREŠKA | Došlo je do greške tokom operacije keširanja | ||
|
ICACHE_IER |
ERRIE | Omogući prekid za grešku u keš memoriji |
Čitaj/piši |
| BSYENDIE | Omogući prekid u slučaju da je operacija poništenja završena | ||
|
ICACHE_FCR |
CERRF | Briše ERRF u ICACHE_SR |
Samo za pisanje |
| CBSYENDF | Briše BSYENDF u ICACHE_SR |
DCACHE karakteristike
Svrha predmemorije podataka je keširanje učitavanja podataka vanjske memorije i skladišta podataka koji dolaze iz procesora ili s druge periferne glavne magistrale. DCACHE upravlja transakcijama čitanja i pisanja.
DCACHE cacheability saobraćaj
DCACHE sprema eksterne memorije sa interfejsa glavnog porta preko AHB magistrale. Dolazni memorijski zahtjevi definirani su kao keširani prema njegovom atributu zaključavanja AHB transakcijske memorije. Politika pisanja DCACHE definirana je kao upisivanje ili povratno upisivanje ovisno o memorijskom atributu koji je konfigurirao MPU. Kada je regija konfigurirana kao ne-cacheable, DCACHE se zaobilazi.
Tablica 6. DCACHE predmemorija za AHB transakciju
| AHB lookup atribut | AHB baferabilni atribut | Mogućnost keširanja |
| 0 | X | Čitanje i pisanje: ne može se keširati |
|
1 |
0 |
Čitaj: može se keširati
Write: (keširanje) upisivanje |
|
1 |
1 |
Čitaj: može se keširati
Write: (keširanje) povratno upisivanje |
DCACHE regije koje se mogu keširati
Za seriju STM32U5, DCACHE1 slave interfejs je povezan sa Cortex-M33 preko S-AHB magistrale i kešira GFXMMU, FMC i HSPI/OCTOSPI. DCACHE2 slave interfejs je povezan na DMA2D preko M0 port magistrale i kešira sve interne i eksterne memorije (osim SRAM4 i BRKPSRAM). Za STM32H5 seriju, DCACHE slave interfejs je povezan sa Cortex-M33 preko S-AHB eksternih memorija preko FMC i OCTOSPI.
Tablica 7. DCACHE regije i sučelja za keširanje
| Adresna regija memorije koja se može keširati | DCACHE1 cacheable sučelja | DCACHE2 cacheable sučelja |
| 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 |
Napomena
Neki interfejsi nisu podržani u određenim proizvodima. Pogledajte sliku 1 ili referentni priručnik za određeni proizvod.
Burst type
Isto kao i ICACHE, DCACHE podržava inkrementalne i omotane rafale (pogledajte odjeljak 3.1.3). Za DCACHE, tip burst-a se konfigurira preko HBURST bita u DCACHE_CR.
DCACHE konfiguracija
Tokom pokretanja, DCACHE je po defaultu onemogućen, pa se zahtjevi za slave memoriju prosljeđuju direktno na glavni port. Da bi se omogućio DCACHE, EN bit mora biti postavljen u DCACHE_CR registru. Monitori hit-and-miss DCACHE implementira četiri monitora za analizu performansi keša:
- Dva 32-bitna (R/W) monitora pogodaka: broji koliko puta CPU čita ili upisuje podatke u keš memoriju bez generisanja transakcije na DCACHE glavnim portovima (podaci su već dostupni u kešu). Brojači (R/W) praćenja pogodaka dostupni su u registrima DCACHE_RHMONR i DCACHE_WHMONR.
- Dva 16-bitna (R/W) monitora promašaja: brojite koliko puta CPU čita ili upisuje podatke u keš memoriju i generiše transakciju na DCACHE glavnim portovima, kako bi učitao podatke iz memorijskog regiona (dohvaćeni podaci nisu već dostupno u kešu). (R/W) brojači promašaja su dostupni u registrima DCACHE_RMMONR i DCACHE_WMMONR.
Napomena:
Ova četiri monitora se ne preklapaju kada dostignu svoje maksimalne vrijednosti. Ovim monitorima se upravlja iz sljedećih bitova u registru DCACHE_CR:
- WHITMAN bit (odnosno WMISSMEN bit) za omogućavanje/zaustavljanje praćenja pogodaka upisivanja (odnosno promašaja)
- RHITMEN bit (odnosno RMISSMEN bit) za omogućavanje/zaustavljanje čitanja pogodaka (odnosno promašenog) monitora
- WHITMRST bit (odnosno WMISSMRST bit) za resetiranje monitora pogodaka (odnosno promašaja)
- RHITMRST bit (odnosno RMISMRST bit) za resetiranje monitora čitanja pogodaka (odnosno promašaja)
Podrazumevano, ovi monitori su onemogućeni kako bi se smanjila potrošnja energije.
DCACHE održavanje
DCACHE nudi višestruke operacije održavanja koje se mogu konfigurirati preko CACHECMD[2:0] u DCACHE_CR.
- 000: nema operacije (podrazumevano)
- 001: čist domet. Očistite određeni raspon u kešu
- 010: poništi raspon. Poništiti određeni raspon u kešu
- 010: očisti i poništi opseg. Očistite i poništite određeni raspon u kešu
Odabrani raspon se konfiguriše putem:
- CMDSTARTADDR registar: početna adresa naredbe
- CMDENDADDR registar: završna adresa naredbe
Napomena:
Ovaj registar mora biti postavljen prije upisivanja CACHECMD. Održavanje naredbi keša počinje kada se STARTCMD bit postavi u DCACHE_CR registar. DCACHE također podržava potpunu CACHE nevaljanost postavljanjem bita CACHEINV u registru DCACHE_CR.
DCACHE sigurnost
DCACHE je sigurna periferna jedinica koja se može konfigurirati kao sigurna preko GTZC TZSC registra sigurne konfiguracije. Kada je konfigurisan kao siguran, dozvoljeni su samo sigurni pristupi DCACHE registrima. DCACHE se također može konfigurirati kao privilegiran preko GTZC TZSC registra konfiguracije privilegija. Kada je DCACHE konfiguriran kao privilegiran, dozvoljeni su samo privilegirani pristupi DCACHE registrima. Prema zadanim postavkama, DCACHE nije siguran i nije privilegiran kroz GTZC TZSC.
Upravljanje događajima i prekidima
DCACHE upravlja funkcionalnim greškama kada se otkriju, postavljanjem ERRF zastavice u DCACHE_SR. Prekid se također može generirati ako je bit ERRIE postavljen u DCACHE_IER. U slučaju poništenja DCACHE, kada je stanje zauzetosti keša završeno, BSYENDF zastavica se postavlja u DCACHE_SR. Prekid se također može generirati ako je bit BSYENDIE postavljen u DCACHE_IER. Status naredbe DCACHE se može provjeriti kroz CMDENF i BUSYCMDF kroz DCACHE_SR. Prekid se također može generirati ako je CMDENDIE bit postavljen u DCACHE_IER. Tabela ispod navodi DCACHE prekide i zastavice događaja
Tablica 8. DCACHE Bitovi za upravljanje prekidima i događajima
| Registrirajte se | Registrirajte se | Bit opis | Bit pristup tip |
|
DCACHE_SR |
ZAUZETO | Keširanje izvršava potpunu operaciju poništavanja |
Samo za čitanje |
| BSYENDF | Operacija potpunog poništavanja keš memorije je završena | ||
| BUSYCMDF | Keširanje izvršava naredbu raspona | ||
| CMDENDF | Kraj komande opsega | ||
| ERRF | Došlo je do greške tokom operacije keširanja | ||
|
DCACHE_IER |
ERRIE | Omogući prekid za grešku u keš memoriji |
Čitaj/piši |
| CMDENDIE | Omogući prekid na kraju komande opsega | ||
| BSYENDIE | Omogući prekid na kraju potpuno nevažeće operacije | ||
|
DCACHE_FCR |
CERRF | Briše ERRF u DCACHE_SR |
Samo za pisanje |
| CCMDENDF | Briše CMDENDF u DCACHE_SR | ||
| CBSYENDF | Briše BSYENDF u DCACHE_SR |
ICACHE i DCACHE performanse i potrošnja energije
Korištenje ICACHE i DCACHE poboljšava performanse aplikacije prilikom pristupa vanjskim memorijama. Sljedeća tabela prikazuje uticaj ICACHE i DCACHE na CoreMark® izvršenje kada se pristupa vanjskim memorijama.
Tabela 9. ICACHE i DCACHE performanse na CoreMark izvršavanju s vanjskim memorijama
| (1) | ||||
| CoreMark kod | CoreMark Data | ICACHE konfiguracija | DCACHE konfiguracija | CoreMark rezultat/Mhz |
| Interna fleš memorija | Interni SRAM | Omogućeno (2-smjerno) | Onemogućeno | 3.89 |
| Interna fleš memorija | Eksterni Octo-SPI PSRAM (S‑bus) | Omogućeno (2-smjerno) | Omogućeno | 3.89 |
| Interna fleš memorija | Eksterni Octo-SPI PSRAM (S‑bus) | Omogućeno (2-smjerno) | Onemogućeno | 0.48 |
| Eksterni Octo-SPI Flash (C-bus) | Interni SRAM | Omogućeno (2-smjerno) | Onemogućeno | 3.86 |
| Eksterni Octo-SPI Flash (C-bus) | Interni SRAM | Onemogućeno | Onemogućeno | 0.24 |
| Interna fleš memorija | Interni SRAM | Onemogućeno | Onemogućeno | 2.69 |
Uvjeti testiranja:
- Primjenjiv proizvod: STM32U575/585
- Frekvencija sistema: 160 MHz.
- Eksterna Octo-SPI PSRAM memorija: 80 MHz (DTR režim).
- Eksterna Octo-SPI fleš memorija: 80 MHz (STR režim).
- Prevodilac: IAR V8.50.4.
- Interni Flash PREFETCH: UKLJUČENO.
Korištenje ICACHE i DCACHE smanjuje potrošnju energije prilikom pristupa internim i vanjskim memorijama. Sledeća tabela prikazuje uticaj ICACHE na potrošnju energije tokom izvršavanja CoreMark-a.
Tablica 10. Utjecaj ICACHE izvršenja CoreMarka na potrošnju energije
| ICACHE konfiguracija | MCU potrošnja energije (mA) |
| Omogućeno (2-smjerno) | 7.60 |
| Omogućeno (jednosmjerno) | 7.13 |
| Onemogućeno | 8.89 |
- Uvjeti testiranja:
- Primjenjiv proizvod: STM32U575/585
- CoreMark kod: interna fleš memorija.
- CoreMark podaci: interni SRAM.
- Interna fleš memorija PREFETCH: UKLJUČENO.
- Frekvencija sistema: 160 MHz.
- Prevodilac: IAR V8.32.2.
- VoltagOpseg: 1.
- SMPS: UKLJUČENO.
- asocijativna konfiguracija skupa načina je učinkovitija od asocijativne konfiguracije 1-smjernog skupa za kod koji se ne može u potpunosti učitati u keš memoriju. U međuvremenu, 1-smjerni skup asocijativni keš je gotovo uvijek energetski efikasniji od 2-smjernog skupa asocijativnog keša. Svaki kod se mora procijeniti u obje konfiguracije asocijativnosti, kako bi se odabralo najbolji kompromis između performansi i potrošnje energije. Izbor zavisi od prioriteta korisnika.
Zaključak
Prve keš memorije koje je razvio STMicroelectronics, ICACHE i DCACHE, mogu keširati interne i eksterne memorije, nudeći poboljšanje performansi za promet podataka i dohvaćanje instrukcija. Ovaj dokument pokazuje različite karakteristike koje podržavaju ICACHE i DCACHE, njihova jednostavnost i fleksibilnost konfiguracije omogućavaju niže troškove razvoja i brže vrijeme izlaska na tržište.
Istorija revizija
Tabela 11. Istorija revizije dokumenta
| Datum | Verzija | Promjene |
| 10-okt-2019 | 1 | Prvo izdanje. |
|
27-feb-2020 |
2 |
Ažurirano:
• Tabela 2. Memorijska područja i njihove adrese • Odeljak 2.1.7 Održavanje ICACHE • Odeljak 2.1.8 ICACHE sigurnost |
|
7-2021 |
3 |
Ažurirano:
• Naslov dokumenta • Uvod • Odjeljak 1 ICACHE i DCACHE završenview • Zaključak odeljka 4 dodan: • Odjeljak 2 ICACHE i DCACHE karakteristike • Odjeljak 3 ICACHE i DCACHE performanse i potrošnja energije |
|
15-feb-2023 |
4 |
Ažurirano:
• Odjeljak 2.2: Pametna arhitektura serije STM32U5 • Odjeljak 2.5: DCACHE blok dijagram • Odjeljak 3.1.1: Dual masters • Odjeljak 3.1.2: 1-smjerni naspram 2-smjerni ICACHE • Odjeljak 3.1.4: Regije koje se mogu keširati i funkcija ponovnog mapiranja • Odjeljak 3.2: DCACHE karakteristike • Odjeljak 3.2.2: DCACHE regioni za keširanje • Odjeljak 4: ICACHE i DCACHE performanse i potrošnja energije Dodato: |
|
11-Mar-2024 |
5 |
Ažurirano: |
VAŽNA NAPOMENA – PAŽLJIVO PROČITAJTE
STMicroelectronics NV i njegove podružnice (“ST”) zadržavaju pravo na izmjene, ispravke, poboljšanja, modifikacije i poboljšanja ST proizvoda i/ili ovog dokumenta u bilo koje vrijeme bez prethodne najave. Kupci bi trebali dobiti najnovije relevantne informacije o ST proizvodima prije nego što daju narudžbu. ST proizvodi se prodaju u skladu sa ST-ovim odredbama i uslovima prodaje koji su na snazi u trenutku potvrde narudžbe. Kupci su isključivo odgovorni za izbor, odabir i korištenje ST proizvoda, a ST ne preuzima nikakvu odgovornost za pomoć u primjeni ili dizajn proizvoda kupaca. ST ovdje ne daje nikakvu licencu, izričitu ili impliciranu, za bilo koje pravo intelektualne svojine. Preprodaja ST proizvoda sa odredbama koje se razlikuju od informacija navedenih ovde poništava svaku garanciju koju ST daje za takav proizvod. ST i ST logo su zaštitni znakovi ST. Za dodatne informacije o ST zaštitnim znakovima, pogledajte www.st.com/trademarks. Svi ostali nazivi proizvoda ili usluga vlasništvo su njihovih vlasnika. Informacije u ovom dokumentu zamjenjuju i zamjenjuju informacije koje su prethodno date u prethodnim verzijama ovog dokumenta. © 2024 STMicroelectronics – Sva prava zadržana
Dokumenti / Resursi
![]() |
STMicroelectronics STM32H5 serija mikrokontrolera [pdf] Korisnički priručnik STM32H5 serija mikrokontrolera, STM32H5, serija mikrokontrolera, mikrokontrolera |

