Mikrokontrolluesit e serisë STMicroelectronics STM32H5

Hyrje
Ky shënim i aplikacionit përshkruan cache-in e udhëzimeve (ICACHE) dhe cache-in e të dhënave (DCACHE), memoriet e para të krijuara nga STMicroelectronics. ICACHE dhe DCACHE të prezantuara në autobusin AHB të procesorit Arm® Cortex®-M33 janë të ngulitura në mikrokontrolluesin STM32 (MCU) të listuar në tabelën më poshtë. Këto cache i lejojnë përdoruesit të përmirësojnë performancën e aplikacionit të tyre dhe të zvogëlojnë konsumin kur marrin instruksione dhe të dhëna nga memoriet e brendshme dhe të jashtme, ose për trafikun e të dhënave nga memoriet e jashtme. Ky dokument jep shembullin tipikamples për të theksuar veçoritë ICACHE dhe DCACHE dhe për të lehtësuar konfigurimin e tyre.
Tabela 1. Produktet e aplikueshme
| Lloji | Seria e produkteve |
| Mikrokontrolluesit | Seria STM32H5, seria STM32L5, seria STM32U5 |
Informacione të përgjithshme
Shënim:
Ky shënim aplikimi zbatohet për mikrokontrolluesit e serisë STM32 që janë pajisje të bazuara në bërthamë Arm® Cortex®. Arm është një markë tregtare e regjistruar e Arm Limited (ose filialeve të saj) në SHBA dhe/ose gjetkë.
ICACHE dhe DCACHE mbarojnëview
Ky seksion ofron një mbiview e ndërfaqeve ICACHE dhe DCACHE të ngulitura në mikrokontrolluesit STM32 Arm® Cortex® me bazë bërthamore. Ky seksion detajon diagramin ICACHE dhe DCACHE dhe integrimin në arkitekturën e sistemit.
Arkitektura inteligjente e serisë STM32L5
Kjo arkitekturë bazohet në një matricë autobusi që lejon zotërit e shumëfishtë (Cortex-M33, ICACHE, DMA1/2 dhe SDMMC1) të aksesojnë skllevër të shumtë (si memoria flash, SRAM1/2, OCTOSPI1 ose FSMC). Figura më poshtë përshkruan arkitekturën inteligjente të serisë STM32L5.
Figura 1. Arkitektura inteligjente e serisë STM32L5

Performanca e Cortex-M33 përmirësohet duke përdorur ndërfaqen ICACHE 8 Kbyte të futur në autobusin e saj C-AHB, kur merr kodin ose të dhënat nga memoriet e brendshme (flash memoria, SRAM1 ose SRAM2) përmes autobusit të shpejtë, dhe gjithashtu nga kujtimet e jashtme (OCTOSPI1 ose FSMC) përmes autobusit të ngadaltë.
Arkitektura inteligjente e serisë STM32U5
Kjo arkitekturë bazohet në një matricë autobusi që lejon zotëruesit e shumtë (Cortex-M33, ICACHE, DCACHE, GPDMA, DMA2D dhe SDMMCs, OTG_HS, LTDC, GPU2D, GFXMMU) të kenë akses në skllevër të shumtë (siç janë memoria flash, SRAM, HKPSRAM, OCTOSPI, ose FSMC). Figura më poshtë përshkruan arkitekturën inteligjente të serisë STM32U5.
Figura 2. Arkitektura inteligjente e serisë STM32U5

Ndërfaqet Cortex-M33 dhe GPU2D përfitojnë nga përdorimi i CACHE.
- ICACHE përmirëson performancën e Cortex-M33 kur merr kodin ose të dhënat nga memoriet e brendshme përmes autobusit të shpejtë (memoria flash, SRAM) dhe nga kujtimet e jashtme përmes autobusit të ngadaltë (OCTOSPI1/2 dhe HSPI1, ose FSMC). DCACHE1 përmirëson performancën kur merr të dhëna nga memoriet e brendshme ose të jashtme përmes s-busit (GFXMMU, OCTOSPI1/2 dhe HSPI1, ose FSMC).
- DCACHE2 përmirëson performancën e GPU2D kur merr të dhëna nga memoriet e brendshme dhe të jashtme (GFXMMU, memoria flash, SRAM, OCTOSPI1/2 dhe HSPI1, ose FSMC) përmes autobusit të portës M0.
Arkitektura inteligjente e serisë STM32H5
Arkitekturë inteligjente STM32H523/H533, STM32H563/H573 dhe STM32H562 Kjo arkitekturë bazohet në një matricë autobusi që lejon zotërit e shumtë (Cortex-M33, ICACHE, DCACHE, GPDMA, Ethernet dhe SDMMCs) të kenë akses në disa skllevër flash, KPSM (SRAM) , OCTOSPI dhe FMC). Figura më poshtë përshkruan arkitekturën inteligjente të serisë STM32H5.
Figura 3. Arkitektura inteligjente e serive STM32H563/H573 dhe STM32H562

Cortex-M33 përfiton nga përdorimi i CACHE.
- ICACHE përmirëson performancën e Cortex-M33 kur merr kodin ose të dhënat nga memoriet e brendshme përmes një autobusi të shpejtë (memorie flash, SRAM) dhe nga memoriet e jashtme përmes autobusit të ngadaltë (OCTOSPI dhe FMC).
- DCACHE përmirëson performancën kur merr të dhëna nga memoriet e jashtme përmes autobusit të ngadaltë (OCTOSPI dhe FMC).
Arkitekturë inteligjente STM32H503
Kjo arkitekturë bazohet në një matricë autobusi që lejon zotërit e shumëfishtë (Cortex-M33, ICACHE dhe GPDMA) të aksesojnë skllevër të shumtë (si memoria flash, SRAM dhe BKPSRAM). Figura më poshtë përshkruan arkitekturën inteligjente të serisë STM32H5.
Figura 4. Arkitektura inteligjente e serisë STM32H503

Cortex-M33 përfiton nga përdorimi i CACHE.
- ICACHE përmirëson performancën e Cortex-M33 kur merr kodin ose të dhënat nga memoriet e brendshme përmes autobusit të shpejtë (memorie flash, SRAM).
Bllok-diagrami ICACHE
Bllok-diagrami ICACHE është dhënë në figurën më poshtë.
Figura 5. Bllok-diagrami ICACHE

Kujtesa ICACHE përfshin:
- të TAG memorie me:
- adresën tags që tregojnë se cilat të dhëna gjenden në memorien e të dhënave cache
- bitet e vlefshmërisë
- memoria e të dhënave, e cila përmban të dhënat e memorizuara
Bllok diagrami DCACHE
Bllok diagrami DCACHE është dhënë në figurën më poshtë.
Figura 6. Bllok diagrami DCACHE

Kujtesa DCACHE përfshin:
- të TAG memorie me:
- adresën tags që tregojnë se cilat të dhëna gjenden në memorien e të dhënave cache
- bitet e vlefshmërisë
- copat e privilegjit
- copat e pista
- memoria e të dhënave, e cila përmban të dhënat e memorizuara
Karakteristikat ICACHE dhe DCACHE
Mjeshtra të dyfishtë
ICACHE akseson matricën e autobusit AHB ose mbi:
- Një port kryesor AHB: master1 (autobus i shpejtë)
- Dy porte kryesore AHB: master1 (autobus i shpejtë) dhe master2 (autobus i ngadaltë)
Kjo veçori lejon që trafiku të shkëputet kur hyni në rajone të ndryshme të memories (si memoria e brendshme flash, SRAM e brendshme dhe memoriet e jashtme), në mënyrë që të zvogëlohet ngecja e CPU-së në mungesën e cache-it. Tabela e mëposhtme përmbledh rajonet e kujtesës dhe adresat e tyre.
Tabela 2. Rajonet e memories dhe adresat e tyre
| Periferike | Qasje memorie e fshehtë | Qasje memorie jo e disponueshme | |||||||
|
Lloji |
Emri |
Emri i produktit dhe madhësia e rajonit |
Emri i autobusit |
Adresa e fillimit të rajonit jo të sigurt |
Adresa fillestare e sigurt dhe jo e sigurt e rajonit të thirrshëm |
Emri i autobusit |
Adresa e fillimit të rajonit jo të sigurt |
Adresa fillestare e sigurt dhe jo e sigurt e rajonit të thirrshëm | |
|
E brendshme |
FLASH |
STM32H503 | 128 KB |
ICACHE autobus i shpejtë |
0x0800 0000 |
N/A |
N/A |
N/A |
N/A |
| STM32L5
seri/ 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-autobus |
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
seri |
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 |
||||
| Periferike | Qasje memorie e fshehtë | Qasje memorie jo e disponueshme | |||||||
|
E brendshme |
SRAM2 |
STM32H563/ 573/562 | 80 KB |
ICACHE autobus i shpejtë |
0x0A04 0000 | 0x0E04 0000 |
S-autobus |
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 |
|||
|
E jashtme |
HSPI1 | STM32U59x/
5Ax/5Fx/5Gx |
256 MB |
ICACHE autobus i ngadalshëm |
Adresa e pseudonimit në rangun prej [0x0000 0000 në 0x07FF FFFF] ose [0x1000 0000:0x1FFF FFFF] përcaktuar me anë të veçorisë së rimapping |
N/A |
0xA000 0000 | ||
| FMC SDRAM | STM32H563/ 573/562 | 0xC000 0000 | |||||||
|
OCTOSPI1 banka e pasigurt |
STM32L5/U5
seri STM32H563/ 573/562 |
0x9000 0000 |
|||||||
|
Banka FMC 3 jo të sigurta |
STM32L5/U5
seri STM32H563/ 573/562 |
0x8000 0000 |
|||||||
| OCTOSPI2
banka e pasigurt |
STM32U575/
585/59x/5Ax/ 5Fx/5Gx |
0x7000 0000 |
|||||||
|
Banka FMC 1 jo të sigurta |
STM32L5/U5
seri STM32H563/ 573/562 |
0x6000 0000 |
|||||||
1. Për t'u zgjedhur kur rimarrëzona rajone të tilla.
ICACHE 1-kahëshe kundrejt ICACHE 2-kahëshe
Si parazgjedhje, ICACHE është konfiguruar në modalitetin shoqërues të funksionimit (të aktivizuara dy mënyra), por është e mundur të konfigurohet ICACHE në modalitetin e hartës direkte (i aktivizuar në një drejtim), për aplikacionet që kërkojnë një konsum shumë të ulët të energjisë. Konfigurimi ICACHE bëhet me bitin WAYSEL në ICACHE_CR si më poshtë:
- WAYSEL = 0: modaliteti i funksionimit të hartës direkte (1-kahëshe)
- WAYSEL = 1 (e parazgjedhur): modaliteti shoqërues i funksionimit (2 drejtimesh)
Tabela 3. ICACHE 1-drejtimshe kundrejt ICACHE 2-kahëshe
| Parametri | ICACHE 1-kahëshe | ICACHE 2-kahëshe |
| Madhësia e cache (Kbajt) | 8(1)/32(2) | |
| Cache disa mënyra | 1 | 2 |
| Madhësia e linjës së cache-it | 128 bit (16 byte) | |
| Numri i linjave të cache | 512(1)/2048(2) | 256(1)/1024(2) për rrugë |
- Për serinë STM32L5 / serinë STM32H5 / STM32U535/545/575/585
- For STM32U59x/5Ax/5Fx/5Gx
Lloji i shpërthimit
Disa memorie Octo-SPI mbështesin shpërthimin WRAP, i cili ofron përfitimin e performancës kritike të funksionit të fjalës së parë. Lloji i shpërthimit ICACHE i transaksionit të memories AHB për rajonet e rimarrëve është i konfigurueshëm. Ai zbaton shpërthim inkremental ose shpërthim WRAP, të zgjedhur me bitin HBURST në regjistrin ICACHE_CRRx. Ndryshimet ndërmjet WRAP-it dhe shpërthimeve në rritje janë dhënë më poshtë (shih edhe figurën):
- Shpërthimi i WRAP:
- Madhësia e linjës së cache = 128 bit
- burst to start address = adresa e fjalës e të dhënave të para të kërkuara nga CPU
- Shpërthim në rritje:
- Madhësia e linjës së cache = 128 bit
- burst starting address = adresa e rreshtuar në kufirin e linjës cache që përmban fjalën e kërkuar
Figura 7. Shpërthimi në rritje kundrejt WRAP

Rajonet e fshehta dhe veçoria e rimapifikimit
ICACHE lidhet me Cortex-M33 përmes autobusit C-AHB dhe ruan rajonin e kodit nga adresat [0x0000 0000 deri në 0x1FFF FFFF]. Meqenëse kujtimet e jashtme janë hartuar në një adresë në intervalin [0x6000 0000 deri në 0xAFFF FFFF], ICACHE mbështet një veçori rimap që lejon çdo rajon memorie të jashtme të rimarrë në një adresë në intervalin prej [0x0000 0000 deri në 0x07FF FFFF] ose [0x1000 0000 deri në 0x1FFF FFFF], dhe për t'u bërë i aksesueshëm përmes autobusit C-AHB. Deri në katër rajone të memories së jashtme mund të rikrijohen me këtë veçori. Pasi një rajon është rimarrë, operacioni i rimapimit ndodh edhe nëse ICACHE është i çaktivizuar ose nëse transaksioni nuk është i disponueshëm në memorie. Rajonet e memories së memorizuar mund të përcaktohen dhe programohen nga përdoruesi në njësinë e mbrojtjes së memories (MPU). Tabela më poshtë përmbledh konfigurimet e memories së serive STM32L5 dhe STM32U5.
Tabela 4. Konfigurimi i memories së serive STM32L5 dhe STM32U5
|
Kujtesa e produktit |
E fshehtë
(Programimi i MPU) |
Rimarrë në ICACHE
(Programimi ICACHE_CRRx) |
| Flash memorie | Po ose Jo |
Nuk kërkohet |
| SRAM | Nuk rekomandohet | |
| Kujtesa të jashtme (HSPI/ OCTOSPI ose FSMC) | Po ose Jo | Kërkohet nëse përdoruesi dëshiron marrjen e kodit të jashtëm në autobusin C-AHB (tjetër në autobusin S-AHB) |
Përfitimet e rimarrëveshjes së memories së jashtme ICACHE
Ishampnë figurën më poshtë tregon se si të përfitoni nga performanca e përmirësuar e ICACHE gjatë ekzekutimit të kodit ose të të dhënave të lexuara kur aksesoni një memorie të jashtme Octo-SPI 8 Mbajt (si memoria e jashtme flash ose RAM).
Figura 8. Rimarrëveshja e kujtesës Octo-SPI p.shample

Hapat e mëposhtëm nevojiten për të rimarrë këtë memorie të jashtme:
Konfigurimi OCTOSPI për memorien e jashtme
Konfiguro ndërfaqen OCTOSPI për të hyrë në memorien e jashtme në modalitetin e hartës së kujtesës (memoria e jashtme shihet si një memorie e brendshme e hartuar në rajonin [0x9000 0000 deri në 0x9FFF FFFF]). Meqenëse madhësia e memories së jashtme është 8 Mbajt, ajo shihet në rajonin [0x9000 0000 deri në 0x907F FFFF]. Memoria e jashtme në këtë rajon aksesohet përmes S-bus dhe nuk mund të ruhet në memorie. Hapi tjetër tregon konfigurimin ICACHE për të rimarrë këtë rajon.
Shënim: Për konfigurimin OCTOSPI në modalitetin e hartës së kujtesës, referojuni shënimit të aplikacionit Ndërfaqja Octo-SPI në mikrokontrolluesit STM32 (AN5050
Konfigurimi ICACHE për të rimarrë në hartë rajonin e hartuar me memorie të jashtme
8 Mbajt të vendosura në rajonin [0x9000 0000 deri në 0x907F FFFF] janë rimarrë në rajonin [0x1000 0000 deri në 0x107F FFFF]. Ato më pas mund të aksesohen përmes autobusit të ngadaltë (autobusi ICACHE master2).
- Konfigurimi i regjistrit ICACHE_CR
- Çaktivizo ICACHE me EN = 0.
- Zgjidhni 1-kahëshe ose 2-kahëshe (në varësi të nevojave të aplikacionit) me WAYSEL = 0 ose 1, përkatësisht.
- Konfigurimi i regjistrit ICACHE_CRRx (deri në katër rajone, x = 0 deri në 3)
- Zgjidhni adresën bazë 0x1000 0000 (adresa e rimarrëve) me BASEADDR [28:21] = 0x80.
- Zgjidhni madhësinë e rajonit 8 Mbajt për ta rimarrë me RSIZE[2:0] = 0x3.
- Zgjidhni adresën e rimarrë 0x9000 0000 REMAPADDR[31:21] = 0x480.
- Zgjidhni portën ICACHE AHB master2 për memoriet e jashtme me MSTSEL = 1.
- Zgjidhni llojin e shpërthimit WRAP me HBURST = 0.
- Aktivizo rimaprimin për rajonin x me REN = 1.
Figura e mëposhtme tregon se si shihen rajonet e memories me IAR pas aktivizimit të rimap.
Figura 9. Rimarrëveshja e rajoneve të kujtesës p.shample

Kujtesa e jashtme 8 Mbajt tani është rimarrë dhe mund të aksesohet në rajonin [0x1000 0000 deri në 0x107F FFFF].
Aktivizo ICACHE
- Konfigurimi i regjistrit ICACHE_CR Aktivizo ICACHE me EN = 1.
Vëzhguesit e goditur dhe të humbur
ICACHE ofron dy monitorë për analizën e performancës: një monitor goditës 32-bit dhe një monitor të humbjes 16-bit.
- Monitoruesi i goditjes numëron transaksionet AHB të disponueshme në portën e memories skllav që godet përmbajtjen ICACHE (të dhënat e marra tashmë të disponueshme në cache). Numri i monitorit të goditjeve është i disponueshëm në regjistrin ICACHE_HMONR.
- Monitoruesi i mungesës numëron transaksionet AHB të disponueshme në portën e memories skllav që humbasin përmbajtjen ICACHE (të dhënat e marra nuk janë tashmë të disponueshme në cache). Numri i monitorit që mungon është i disponueshëm në regjistrin ICACHE_MMONR.
Shënim:
Këta dy monitorë nuk mbështillen kur arrijnë vlerat e tyre maksimale. Këta monitorë menaxhohen nga bitet e mëposhtme në regjistrin ICACHE_CR:
- bit HITMEN (përkatësisht bit MISSMEN) për të aktivizuar/ndaluar monitorin e goditjes (përkatësisht të humbasë)
- Biti HITMRST (përkatësisht biti MISSMRST) për të rivendosur monitorin e goditur (përkatësisht të humbur) Si parazgjedhje, këta monitorë çaktivizohen për të reduktuar konsumin e energjisë.
Mirëmbajtja ICACHE
Softueri mund të zhvlerësojë ICACHE duke vendosur bitin CACHEINV në regjistrin ICACHE_CR. Ky veprim zhvlerëson të gjithë memorien e fshehtë, duke e bërë atë bosh. Ndërkohë, nëse aktivizohen disa rajone të rimarrë, funksioni i rimap është akoma aktiv, edhe kur ICACHE është i çaktivizuar. Duke qenë se ICACHE menaxhon vetëm transaksionet e leximit dhe nuk menaxhon transaksionet e shkrimit, ai nuk siguron koherencë në rastin e shkrimeve. Rrjedhimisht, softueri duhet të zhvlerësojë ICACHE pas programimit të një rajoni.
Siguria ICACHE
ICACHE është një pajisje periferike e sigurueshme që mund të konfigurohet si e sigurt përmes regjistrit të konfigurimit të sigurt të GTZC TZSC. Kur konfigurohet si i sigurt, lejohen vetëm akseset e sigurta në regjistrat ICACHE. ICACHE gjithashtu mund të konfigurohet si i privilegjuar përmes regjistrit të konfigurimit të privilegjeve GTZC TZSC. Kur ICACHE konfigurohet si i privilegjuar, vetëm akseset e privilegjuara lejohen në regjistrat ICACHE. Si parazgjedhje, ICACHE është i pasigurt dhe jo i privilegjuar përmes GTZC TZSC.
Menaxhimi i ngjarjeve dhe ndërprerjeve
ICACHE menaxhon gabimet funksionale kur zbulohen, duke vendosur flamurin ERRF në ICACHE_SR. Një ndërprerje mund të gjenerohet gjithashtu nëse biti ERRIE është vendosur në ICACHE_IER. Në rast të pavlefshmërisë së ICACHE, kur gjendja e zënë me cache përfundon, flamuri BSYENDF vendoset në ICACHE_SR. Një ndërprerje mund të gjenerohet gjithashtu nëse biti BSYENDIE është vendosur në ICACHE_IER. Tabela më poshtë liston flamujt e ndërprerjeve dhe ngjarjeve ICACHE.
Tabela 5. Ndërprerjet ICACHE dhe bitet e menaxhimit të ngjarjeve
| Regjistrohu | Emri bit | Përshkrimi i bitit | Lloji i aksesit në bit |
|
ICACHE_SR |
I ZËNË | Cache ekzekuton një operacion të zhvlerësimit të plotë |
Vetëm për lexim |
| BSYENDF | Operacioni i anulimit të memories së memories përfundoi | ||
| GABIM | Ndodhi një gabim gjatë funksionimit të memorizimit | ||
|
ICACHE_IER |
ERRI | Aktivizo ndërprerjen për gabimin e cache-it |
Lexo/shkruaj |
| BSYENDIE | Aktivizo ndërprerjen në rast të përfundimit të operacionit të zhvlerësimit | ||
|
ICACHE_FCR |
CERRF | Pastron ERRF në ICACHE_SR |
Vetëm për të shkruar |
| CBSYENDF | Pastron BSYENDF në ICACHE_SR |
Karakteristikat e DCACHE
Qëllimi i cache-it të të dhënave është të ruajë ngarkesat e të dhënave të memories së jashtme dhe ruajtjen e të dhënave që vijnë nga procesori ose nga një pajisje tjetër kryesore periferike e autobusit. DCACHE menaxhon transaksionet e leximit dhe të shkrimit.
Trafiku i mundësisë së memorizimit DCACHE
DCACHE ruan memoriet e jashtme nga ndërfaqja kryesore e portit përmes autobusit AHB. Kërkesat e memories hyrëse përcaktohen si të memorizuara sipas atributit të bllokimit të memories së transaksionit AHB. Politika e shkrimit DCACHE përkufizohet si shkrim-përmes ose rikthim në varësi të atributit të memories të konfiguruar nga MPU. Kur një rajon është konfiguruar si jo-cache, DCACHE anashkalohet.
Tabela 6. Cacheability DCACHE për transaksionin AHB
| Atributi i kërkimit AHB | Atributi bufferable AHB | Cacheability |
| 0 | X | Lexoni dhe shkruani: jo i fshehtë |
|
1 |
0 |
Lexoni: cacheable
Shkruaj: (i fshehtë) me shkrim |
|
1 |
1 |
Lexoni: cacheable
Shkruaj: (i fshehtë) shkruaj-mbrapa |
Rajonet e memorizimit DCACHE
Për serinë STM32U5, ndërfaqja skllav DCACHE1 është e lidhur me Cortex-M33 përmes autobusit S-AHB dhe ruan në memorie të fshehtë GFXMMU, FMC dhe HSPI/OCTOSPI. Ndërfaqja skllav DCACHE2 lidhet me DMA2D përmes autobusit të portit M0 dhe ruan të gjitha memoriet e brendshme dhe të jashtme (përveç SRAM4 dhe BRKPSRAM). Për serinë STM32H5, ndërfaqja skllav DCACHE është e lidhur me Cortex-M33 përmes memories së jashtme S-AHB përmes FMC dhe OCTOSPI.
Tabela 7. Rajonet dhe ndërfaqet e ruajtjes së memorjes DCACHE
| Rajoni i adresës së memories me memorie të fshehtë | Ndërfaqet e fshehta të DCACHE1 | Ndërfaqet e fshehta të DCACHE2 |
| GFXMMU | X | X |
| SRAM1 |
N/A |
X |
| SRAM2 | X | |
| SRAM3 | X | |
| SRAM5 | X | |
| SRAM6 | X | |
| HSPI1 | X | X |
| OCTOSPI1 | X | X |
| BANKA KMF | X | X |
| OCTOSPI2 | X | X |
Shënim
Disa ndërfaqe nuk mbështeten në produkte të caktuara. Referojuni figurës 1 ose manualit specifik të referencës së produktit.
Lloji i shpërthimit
Njësoj si ICACHE, DCACHE mbështet breshëri në rritje dhe të mbështjellë (shih seksionin 3.1.3). Për DCACHE, lloji i shpërthimit konfigurohet përmes bitit HBURST në DCACHE_CR.
Konfigurimi DCACHE
Gjatë nisjes, DCACHE është i çaktivizuar si parazgjedhje duke bërë që kërkesat e memories slave të përcillen direkt në portin kryesor. Për të aktivizuar DCACHE, biti EN duhet të vendoset në regjistrin DCACHE_CR. Monitorët me goditje dhe humbje DCACHE zbaton katër monitorë për analizën e performancës së cache:
- Dy monitor 32-bitësh (R/W): numëron numrin e herëve që CPU lexon ose shkruan të dhëna në memorien e memories pa gjeneruar një transaksion në portat kryesore DCACHE (të dhënat tashmë të disponueshme në cache). Numëruesit e monitorëve të goditur (R/W) janë të disponueshëm përkatësisht në regjistrat DCACHE_RHMONR dhe DCACHE_WHMONR.
- Dy monitorë 16-bitësh (R/W): numëroni sa herë CPU lexon ose shkruan të dhëna në memorien e memories dhe gjeneron një transaksion në portat kryesore DCACHE, në mënyrë që të ngarkojë të dhënat nga rajoni i memories (të dhënat e marra jo tashmë në dispozicion në cache). Numëruesit e monitorëve të humbjes (R/W) janë të disponueshëm përkatësisht në regjistrat DCACHE_RMMONR dhe DCACHE_WMMONR.
Shënim:
Këta katër monitorë nuk mbështillen kur arrijnë vlerat e tyre maksimale. Këta monitorë menaxhohen nga bitet e mëposhtme në regjistrin DCACHE_CR:
- bit WHITMAN (përkatësisht bit WMISSEN) për të aktivizuar/ndaluar monitorin e goditjes së shkrimit (përkatësisht të humbasë)
- bit RHITMEN (përkatësisht bit RMISSMEN) për të aktivizuar/ndaluar monitorin e goditjes së leximit (përkatësisht mungesës)
- Bit WHITMRST (përkatësisht bit WMISSMRST) për të rivendosur monitorin e goditjes së shkrimit (përkatësisht të humbasë)
- Bit RHITMRST (përkatësisht bit RMISSMRST) për të rivendosur monitorin e goditjes së lexuar (përkatësisht humbasin)
Si parazgjedhje, këta monitorë çaktivizohen për të zvogëluar konsumin e energjisë.
Mirëmbajtja e DCACHE
DCACHE ofron operacione të shumta mirëmbajtjeje që mund të konfigurohen përmes CACHECMD[2:0] në DCACHE_CR.
- 000: nuk ka funksion (parazgjedhje)
- 001: varg i pastër. Pastroni një gamë të caktuar në cache
- 010: zhvlerësoni intervalin. Anuloni një gamë të caktuar në cache
- 010: pastroni dhe zhvlerësoni gamën. Pastroni dhe zhvlerësoni një gamë të caktuar në cache
Gama e zgjedhur konfigurohet përmes:
- Regjistri CMDSTARTADDR: adresa e fillimit të komandës
- Regjistri CMDENDADDR: adresa e përfundimit të komandës
Shënim:
Ky regjistër duhet të vendoset përpara se të shkruhet CACHECMD. Mirëmbajtja e komandës së cache-it fillon kur biti STARTCMD vendoset në regjistrin DCACHE_CR. DCACHE gjithashtu mbështet një anulim të plotë të CACHE duke vendosur bitin CACHEINV në regjistrin DCACHE_CR.
Siguria DCACHE
DCACHE është një pajisje periferike e sigurt që mund të konfigurohet si e sigurt përmes regjistrit të konfigurimit të sigurt të GTZC TZSC. Kur konfigurohet si i sigurt, lejohen vetëm akseset e sigurta në regjistrat DCACHE. DCACHE gjithashtu mund të konfigurohet si i privilegjuar përmes regjistrit të konfigurimit të privilegjeve GTZC TZSC. Kur DCACHE është konfiguruar si i privilegjuar, vetëm akseset e privilegjuara lejohen në regjistrat DCACHE. Si parazgjedhje, DCACHE është i pasigurt dhe jo i privilegjuar përmes GTZC TZSC.
Menaxhimi i ngjarjeve dhe ndërprerjeve
DCACHE menaxhon gabimet funksionale kur zbulohen, duke vendosur flamurin ERRF në DCACHE_SR. Një ndërprerje mund të gjenerohet gjithashtu nëse biti ERRIE është vendosur në DCACHE_IER. Në rast të pavlefshmërisë së DCACHE, kur gjendja e ngarkimit të cache-it përfundon, flamuri BSYENDF vendoset në DCACHE_SR. Një ndërprerje mund të gjenerohet gjithashtu nëse biti BSYENDIE është vendosur në DCACHE_IER. Statusi i komandës DCACHE mund të kontrollohet përmes CMDENF dhe BUSYCMDF përmes DCACHE_SR Një ndërprerje mund të gjenerohet gjithashtu nëse biti CMDENDIE është vendosur në DCACHE_IER. Tabela më poshtë liston ndërprerjet DCACHE dhe flamujt e ngjarjeve
Tabela 8. DCACHE Ndërprerjet dhe bitet e menaxhimit të ngjarjeve
| Regjistrohu | Regjistrohu | Përshkrimi i bitit | Lloji i aksesit në bit |
|
DCACHE_SR |
I ZËNË | Cache ekzekuton një operacion të zhvlerësimit të plotë |
Vetëm për lexim |
| BSYENDF | Operacioni i zhvlerësimit të plotë të memories së memories përfundoi | ||
| BUSYCMDF | Cache duke ekzekutuar një komandë intervali | ||
| CMDENDF | Fundi i komandës së intervalit | ||
| ERRF | Ndodhi një gabim gjatë funksionimit të memorizimit | ||
|
DCACHE_IER |
ERRI | Aktivizo ndërprerjen për gabimin e cache-it |
Lexo/shkruaj |
| CMDENDIE | Aktivizo ndërprerjen në fund të komandës së intervalit | ||
| BSYENDIE | Aktivizo ndërprerjen në përfundimin e operacionit të zhvlerësimit të plotë | ||
|
DCACHE_FCR |
CERRF | Pastron ERRF në DCACHE_SR |
Vetëm për të shkruar |
| CCMDENDF | Pastron CMDENDF në DCACHE_SR | ||
| CBSYENDF | Pastron BSYENDF në DCACHE_SR |
Performanca ICACHE dhe DCACHE dhe konsumi i energjisë
Përdorimi i ICACHE dhe DCACHE përmirëson performancën e aplikacionit kur aksesoni memoriet e jashtme. Tabela e mëposhtme tregon ndikimin e ICACHE dhe DCACHE në ekzekutimin e CoreMark® kur aksesoni memoriet e jashtme.
Tabela 9. Performanca ICACHE dhe DCACHE në ekzekutimin e CoreMark me memorie të jashtme
| (1) | ||||
| Kodi CoreMark | Të dhënat CoreMark | Konfigurimi ICACHE | Konfigurimi DCACHE | Rezultati CoreMark/Mhz |
| Memorie e brendshme flash | SRAM i brendshëm | Aktivizuar (2 drejtime) | I paaftë | 3.89 |
| Memorie e brendshme flash | Octo-SPI PSRAM i jashtëm (S-bus) | Aktivizuar (2 drejtime) | Aktivizuar | 3.89 |
| Memorie e brendshme flash | Octo-SPI PSRAM i jashtëm (S-bus) | Aktivizuar (2 drejtime) | I paaftë | 0.48 |
| Blic i jashtëm Octo-SPI (autobus C) | SRAM i brendshëm | Aktivizuar (2 drejtime) | I paaftë | 3.86 |
| Blic i jashtëm Octo-SPI (autobus C) | SRAM i brendshëm | I paaftë | I paaftë | 0.24 |
| Memorie e brendshme flash | SRAM i brendshëm | I paaftë | I paaftë | 2.69 |
Kushtet e provës:
- Produkti i aplikueshëm: STM32U575/585
- Frekuenca e sistemit: 160 MHz.
- Kujtesa e jashtme Octo-SPI PSRAM: 80 MHz (modaliteti DTR).
- Memorie e jashtme flash Octo-SPI: 80 MHz (modaliteti STR).
- Përpiluesi: IAR V8.50.4.
- PARAPRAPASJA E BRENDSHME TË BLESKIT: AKTIV.
Përdorimi i ICACHE dhe DCACHE zvogëlon konsumin e energjisë kur aksesoni memoriet e brendshme dhe të jashtme. Tabela e mëposhtme tregon ndikimin e ICACHE në konsumin e energjisë gjatë ekzekutimit të CoreMark.
Tabela 10. Ndikimi i ICACHE i ekzekutimit të CoreMark në konsumin e energjisë
| Konfigurimi ICACHE | Konsumi i energjisë MCU (mA) |
| Aktivizuar (2 drejtime) | 7.60 |
| Aktivizuar (1-kahëshe) | 7.13 |
| I paaftë | 8.89 |
- Kushtet e provës:
- Produkti i aplikueshëm: STM32U575/585
- Kodi CoreMark: memorie e brendshme Flash.
- Të dhënat CoreMark: SRAM i brendshëm.
- Memoria e brendshme e flashit PARAPRAKE: AKTIV.
- Frekuenca e sistemit: 160 MHz.
- Përpiluesi: IAR V8.32.2.
- VëlltagGama e: 1.
- SMPS: ON.
- Konfigurimi shoqërues i setit të mënyrës është më performues sesa konfigurimi shoqërues i grupit 1-drejtimësh për kodin që nuk mund të ngarkohet plotësisht në cache. Ndërkohë, cache-i shoqërues i grupeve 1-kahëshe është pothuajse gjithmonë më efikas në energji sesa cache-i shoqërues i grupeve 2-kahëshe. Çdo kod duhet të vlerësohet në të dy konfigurimet e asociativitetit, në mënyrë që të zgjidhet shkëmbimi më i mirë midis performancës dhe konsumit të energjisë. Zgjedhja varet nga përparësia e përdoruesit.
konkluzioni
Memoriet e para të zhvilluara nga STMicroelectronics, ICACHE dhe DCACHE, janë në gjendje të ruajnë memorien e brendshme dhe të jashtme, duke ofruar përmirësim të performancës për trafikun e të dhënave dhe marrjen e instruksioneve. Ky dokument tregon veçoritë e ndryshme të mbështetura nga ICACHE dhe DCACHE, thjeshtësia dhe fleksibiliteti i konfigurimit të tyre lejojnë kosto më të ulët të zhvillimit dhe kohë më të shpejtë në treg.
Historia e rishikimit
Tabela 11. Historia e rishikimit të dokumentit
| Data | Versioni | Ndryshimet |
| 10-tetor-2019 | 1 | Lëshimi fillestar. |
|
27-shkurt-2020 |
2 |
Përditësuar:
• Tabela 2. Rajonet e memories dhe adresat e tyre • Seksioni 2.1.7 Mirëmbajtja ICACHE • Seksioni 2.1.8 Siguria ICACHE |
|
7-dhjetor-2021 |
3 |
Përditësuar:
• Titulli i dokumentit • Prezantimi • Seksioni 1 ICACHE dhe DCACHE mbiview • Përfundimi i seksionit 4 u shtua: • Seksioni 2 Karakteristikat ICACHE dhe DCACHE • Seksioni 3 Performanca ICACHE dhe DCACHE dhe konsumi i energjisë |
|
15-shkurt-2023 |
4 |
Përditësuar:
• Seksioni 2.2: Arkitektura inteligjente e serisë STM32U5 • Seksioni 2.5: Blloku i DCACHE • Seksioni 3.1.1: Zotërues të dyfishtë • Seksioni 3.1.2: ICACHE 1-kahëshe kundrejt ICACHE 2-kahëshe • Seksioni 3.1.4: Rajonet e memorizuara dhe veçoria e rimadhimit • Seksioni 3.2: Karakteristikat e DCACHE • Seksioni 3.2.2: Rajonet e memorishme të DCACHE • Seksioni 4: Performanca ICACHE dhe DCACHE dhe konsumi i energjisë Shtuar: |
|
11-Mars-2024 |
5 |
Përditësuar: |
NJOFTIM I RËNDËSISHËM – LEXO ME KUJDES
STMicroelectronics NV dhe filialet e saj ("ST") rezervojnë të drejtën për të bërë ndryshime, korrigjime, përmirësime, modifikime dhe përmirësime në produktet ST dhe/ose në këtë dokument në çdo kohë pa paralajmërim. Blerësit duhet të marrin informacionin më të fundit përkatës mbi produktet ST përpara se të bëjnë porosi. Produktet ST shiten në përputhje me termat dhe kushtet e shitjes të ST në fuqi në momentin e njohjes së porosisë. Blerësit janë vetëm përgjegjës për zgjedhjen, përzgjedhjen dhe përdorimin e produkteve ST dhe ST nuk merr asnjë përgjegjësi për asistencën e aplikimit ose dizajnimin e produkteve të blerësve. Asnjë licencë, e shprehur apo e nënkuptuar, për ndonjë të drejtë të pronësisë intelektuale nuk jepet nga ST këtu. Rishitja e produkteve ST me dispozita të ndryshme nga informacioni i përcaktuar këtu do të anulojë çdo garanci të dhënë nga ST për këtë produkt. ST dhe logoja ST janë marka tregtare të ST. Për informacion shtesë rreth markave ST, referojuni www.st.com/trademarks. Të gjithë emrat e tjerë të produkteve ose shërbimeve janë pronë e pronarëve të tyre përkatës. Informacioni në këtë dokument zëvendëson dhe zëvendëson informacionin e dhënë më parë në çdo version të mëparshëm të këtij dokumenti. © 2024 STMicroelectronics – Të gjitha të drejtat e rezervuara
Dokumentet / Burimet
![]() |
Mikrokontrolluesit e serisë STMicroelectronics STM32H5 [pdf] Manuali i Përdoruesit Mikrokontrolluesit e serisë STM32H5, STM32H5, mikrokontrolluesit e serisë, mikrokontrolluesit |

