STMicroelectronics Mikrokontroléry řady STM32H5
Zavedení
Tato aplikační poznámka popisuje mezipaměť instrukcí (ICACHE) a mezipaměť dat (DCACHE), první mezipaměti vyvinuté společností STMicroelectronics. ICACHE a DCACHE představené na sběrnici AHB procesoru Arm® Cortex®-M33 jsou zabudovány v mikrokontroléru STM32 (MCU) uvedeném v tabulce níže. Tyto mezipaměti umožňují uživatelům zlepšit výkon aplikací a snížit spotřebu při načítání instrukcí a dat z interních i externích pamětí nebo pro datový provoz z externích pamětí. Tento dokument uvádí typické exampsoubory pro zvýraznění funkcí ICACHE a DCACHE a usnadnění jejich konfigurace.
Tabulka 1. Použitelné produkty
Typ | Produktová řada |
Mikrokontroléry | Řada STM32H5, řada STM32L5, řada STM32U5 |
Obecné informace
Poznámka:
Tato aplikační poznámka se vztahuje na mikrokontroléry řady STM32, které jsou zařízeními na bázi jádra Arm® Cortex®. Arm je registrovaná ochranná známka společnosti Arm Limited (nebo jejích dceřiných společností) v USA a/nebo jinde.
ICACHE a DCACHE skončilyview
Tato sekce poskytuje přesview rozhraní ICACHE a DCACHE zabudovaných do mikrokontrolérů na bázi jádra STM32 Arm® Cortex®. Tato část podrobně popisuje diagram ICACHE a DCACHE a integraci do systémové architektury.
Inteligentní architektura řady STM32L5
Tato architektura je založena na matici sběrnice, která umožňuje více masterům (Cortex-M33, ICACHE, DMA1/2 a SDMMC1) přistupovat k více podřízeným zařízením (jako je flash paměť, SRAM1/2, OCTOSPI1 nebo FSMC). Obrázek níže popisuje chytrou architekturu řady STM32L5.
Obrázek 1. Inteligentní architektura řady STM32L5
Výkon Cortex-M33 je vylepšen použitím 8Kbyte ICACHE rozhraní zavedeného do jeho C-AHB sběrnice, při načítání kódu nebo dat z vnitřních pamětí (flash paměti, SRAM1 nebo SRAM2) přes rychlou sběrnici a také z externí paměti (OCTOSPI1 nebo FSMC) přes pomalou sběrnici.
Inteligentní architektura řady STM32U5
Tato architektura je založena na matici sběrnice, která umožňuje více masterům (Cortex-M33, ICACHE, DCACHE, GPDMA, DMA2D a SDMMC, OTG_HS, LTDC, GPU2D, GFXMMU) přistupovat k více podřízeným zařízením (jako je flash paměť, SRAM, BKPSRAM, HSPI/ OCTOSPI nebo FSMC). Obrázek níže popisuje chytrou architekturu řady STM32U5.
Obrázek 2. Inteligentní architektura řady STM32U5
Rozhraní Cortex-M33 a GPU2D těží z použití CACHE.
- ICACHE zlepšuje výkon Cortex-M33 při načítání kódu nebo dat z vnitřních pamětí přes rychlou sběrnici (flash paměti, SRAM) a z externích pamětí přes pomalou sběrnici (OCTOSPI1/2 a HSPI1, nebo FSMC). DCACHE1 zlepšuje výkon při načítání dat z interních nebo externích pamětí přes s-bus (GFXMMU, OCTOSPI1/2 a HSPI1 nebo FSMC).
- DCACHE2 zlepšuje výkon GPU2D při načítání dat z interních a externích pamětí (GFXMMU, flash paměti, SRAM, OCTOSPI1/2 a HSPI1 nebo FSMC) přes sběrnici portu M0.
Inteligentní architektura řady STM32H5
Inteligentní architektura STM32H523/H533, STM32H563/H573 a STM32H562 Tato architektura je založena na matici sběrnice, která umožňuje více masterům (Cortex-M33, ICACHE, DCACHE, GPDMA, Ethernet a SDMMC) přistupovat k více podřízeným zařízením (jako je flash paměť, SRAM, BKPSRAM , OCTOSPI a FMC). Obrázek níže popisuje chytrou architekturu řady STM32H5.
Obrázek 3. Inteligentní architektura řady STM32H563/H573 a STM32H562
Cortex-M33 těží z používání CACHE.
- ICACHE zlepšuje výkon Cortex-M33 při načítání kódu nebo dat z interních pamětí přes rychlou sběrnici (flash paměti, SRAM) a z externích pamětí přes pomalou sběrnici (OCTOSPI a FMC).
- DCACHE zlepšuje výkon při načítání dat z externích pamětí přes pomalou sběrnici (OCTOSPI a FMC).
Inteligentní architektura STM32H503
Tato architektura je založena na matici sběrnice, která umožňuje více masterům (Cortex-M33, ICACHE a GPDMA) přistupovat k více podřízeným zařízením (jako jsou flash paměti, SRAM a BKPSRAM). Obrázek níže popisuje chytrou architekturu řady STM32H5.
Obrázek 4. Inteligentní architektura řady STM32H503
Cortex-M33 těží z používání CACHE.
- ICACHE zlepšuje výkon Cortex-M33 při načítání kódu nebo dat z vnitřních pamětí pomocí rychlé sběrnice (flash paměti, SRAM).
Blokové schéma ICACHE
Blokové schéma ICACHE je uvedeno na obrázku níže.
Obrázek 5. Blokové schéma ICACHE
Paměť ICACHE obsahuje:
- a TAG paměť s:
- adresu tags které udávají, která data jsou obsažena v datové paměti cache
- bity platnosti
- datová paměť, která obsahuje data uložená v mezipaměti
Blokové schéma DCACHE
Blokové schéma DCACHE je uvedeno na obrázku níže.
Obrázek 6. Blokové schéma DCACHE
Paměť DCACHE obsahuje:
- a TAG paměť s:
- adresu tags které udávají, která data jsou obsažena v datové paměti cache
- bity platnosti
- privilegované bity
- špinavé kousky
- datová paměť, která obsahuje data uložená v mezipaměti
Funkce ICACHE a DCACHE
Dvojí mistři
ICACHE přistupuje k matici sběrnice AHB buď přes:
- Jeden hlavní port AHB: master1 (rychlá sběrnice)
- Dva hlavní porty AHB: master1 (rychlá sběrnice) a master2 (pomalá sběrnice)
Tato funkce umožňuje oddělit provoz při přístupu k různým paměťovým oblastem (jako je interní flash paměť, interní SRAM a externí paměti), aby se snížilo zasekávání CPU při chybách mezipaměti. Následující tabulka shrnuje oblasti paměti a jejich adresy.
Tabulka 2. Oblasti paměti a jejich adresy
Obvodový | Přístup do mezipaměti | Není přístup do mezipaměti | |||||||
Typ |
Jméno |
Název produktu a velikost regionu |
Název autobusu |
Počáteční adresa nezabezpečeného regionu |
Počáteční adresa zabezpečené, nezabezpečené volatelné oblasti |
Název autobusu |
Počáteční adresa nezabezpečeného regionu |
Počáteční adresa zabezpečené, nezabezpečené volatelné oblasti | |
Vnitřní |
BLIKAT |
STM32H503 | 128 kB |
ICACHE rychlý autobus |
0x0800 0000 |
N/A |
N/A |
N/A |
N/A |
STM32L5
řada/ 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
série |
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 |
Obvodový | Přístup do mezipaměti | Není přístup do mezipaměti | |||||||
Vnitřní |
SRAM2 |
STM32H563/ 573/562 | 80 kB |
ICACHE rychlý 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 |
|||
Externí |
HSPI1 | STM32U59x/
5Ax/5Fx/5Gx |
256 MB |
ICACHE pomalý autobus |
Aliasová adresa v rozsahu [0x0000 0000 až 0x07FF FFFF] nebo [0x1000 0000:0x1FFF FFFF] definované pomocí funkce přemapování |
N/A |
0xA000 0000 | ||
FMC SDRAM | STM32H563/ 573/562 | 0xC000 0000 | |||||||
OCTOSPI1 banka nezabezpečená |
STM32L5/U5
série STM32H563/ 573/562 |
0x9000 0000 |
|||||||
FMC banka 3 nezabezpečené |
STM32L5/U5
série STM32H563/ 573/562 |
0x8000 0000 |
|||||||
OCTOSPI2
banka nezabezpečená |
STM32U575/
585/59x/5Ax/ 5Fx/5Gx |
0x7000 0000 |
|||||||
FMC banka 1 nezabezpečené |
STM32L5/U5
série STM32H563/ 573/562 |
0x6000 0000 |
1. K výběru při přemapování takových regionů.
Jednocestný versus dvoucestný ICACHE
Ve výchozím nastavení je ICACHE nakonfigurován v asociativním provozním režimu (povoleno dvěma způsoby), ale je možné nakonfigurovat ICACHE v režimu přímé mapy (povoleno jednosměrně), pro aplikace vyžadující velmi nízkou spotřebu energie. Konfigurace ICACHE se provádí pomocí bitu WAYSEL v ICACHE_CR takto:
- WAYSEL = 0: přímo mapovaný provozní režim (1-cestný)
- WAYSEL = 1 (výchozí): asociativní provozní režim (2-cestný)
Tabulka 3. Jednocestný versus dvoucestný ICACHE
Parametr | Jednosměrný ICACHE | Jednosměrný ICACHE |
Velikost mezipaměti (kbajty) | 8(1)/32(2) | |
Ukládání do mezipaměti několika způsoby | 1 | 2 |
Velikost řádku mezipaměti | 128 bitů (16 bajtů) | |
Počet řádků keše | 512(1)/2048(2) | 256(1)/1024(2) na cestu |
- Pro řadu STM32L5 / řadu STM32H5 / STM32U535/545/575/585
- For STM32U59x/5Ax/5Fx/5Gx
Typ burst
Některé paměti Octo-SPI podporují burst WRAP, který poskytuje výhodu kritického výkonu funkce jako první slovo. Typ shluku ICACHE transakce paměti AHB pro přemapované oblasti je konfigurovatelný. Implementuje inkrementální burst nebo WRAP burst, vybraný bitem HBURST v registru ICACHE_CRRx. Rozdíly mezi WRAP a inkrementálními dávkami jsou uvedeny níže (viz také obrázek):
- WRAP dávka:
- velikost řádku mezipaměti = 128 bitů
- burst to start address = adresa slova prvních dat požadovaných CPU
- Přírůstková dávka:
- velikost řádku mezipaměti = 128 bitů
- burst počáteční adresa = adresa zarovnaná na hranici řádku mezipaměti obsahující požadované slovo
Obrázek 7. Inkrementální versus WRAP burst
Oblasti s možností ukládání do mezipaměti a funkce přemapování
ICACHE je připojen k Cortex-M33 prostřednictvím sběrnice C-AHB a ukládá oblast kódu z adres [0x0000 0000 až 0x1FFF FFFF]. Protože jsou externí paměti mapovány na adresu v rozsahu [0x6000 0000 až 0xAFFF FFFF], ICACHE podporuje funkci přemapování, která umožňuje přemapování libovolné oblasti externí paměti na adresu v rozsahu [0x0000 0000 až 0x07FF FFFF] nebo [0x1000 0000 až 0x1FFF FFFF] a zpřístupní se prostřednictvím sběrnice C-AHB. Pomocí této funkce lze přemapovat až čtyři oblasti externí paměti. Jakmile je oblast přemapována, dojde k operaci přemapování, i když je ICACHE deaktivována nebo pokud transakce nelze uložit do mezipaměti. Oblasti paměti, které lze uložit do mezipaměti, může uživatel definovat a naprogramovat v jednotce ochrany paměti (MPU). Níže uvedená tabulka shrnuje konfigurace pamětí řady STM32L5 a STM32U5.
Tabulka 4. Konfigurace pamětí řady STM32L5 a STM32U5
Paměť produktu |
Uložitelné do mezipaměti
(programování MPU) |
Přemapováno v ICACHE
(programování ICACHE_CRRx) |
Flash paměť | ano nebo ne |
Není vyžadováno |
SRAM | Nedoporučuje se | |
Externí paměti (HSPI/OCTOSPI nebo FSMC) | ano nebo ne | Povinné, pokud chce uživatel načíst externí kód na sběrnici C-AHB (jinak na sběrnici S-AHB) |
Výhoda přemapování externí paměti ICACHE
BývalýampObrázek níže ukazuje, jak těžit z vylepšeného výkonu ICACHE během spouštění kódu nebo čtení dat při přístupu k externí 8Mbyte externí paměti Octo-SPI (jako je externí flash paměť nebo RAM).
Obrázek 8. Přemapování paměti Octo-SPI example
K přemapování této externí paměti jsou potřeba následující kroky:
Konfigurace OCTOSPI pro externí paměť
Nakonfigurujte rozhraní OCTOSPI pro přístup k externí paměti v režimu mapování paměti (externí paměť je považována za interní paměť mapovanou v oblasti [0x9000 0000 až 0x9FFF FFFF]). Protože velikost externí paměti je 8 Mbytů, je vidět v oblasti [0x9000 0000 až 0x907F FFFF]. K externí paměti v této oblasti se přistupuje přes S-bus a nelze ji uložit do mezipaměti. Další krok ukazuje konfiguraci ICACHE za účelem přemapování této oblasti.
Poznámka: Informace o konfiguraci OCTOSPI v režimu mapování paměti naleznete v aplikační poznámce rozhraní Octo‑ SPI na mikrokontrolérech STM32 (AN5050
Konfigurace ICACHE pro přemapování oblasti mapované externí paměti
8 MB umístěných v oblasti [0x9000 0000 až 0x907F FFFF] je přemapováno na oblast [0x1000 0000 až 0x107F FFFF]. Poté k nim lze přistupovat prostřednictvím pomalé sběrnice (ICACHE master2 bus).
- Konfigurace registru ICACHE_CR
- Deaktivujte ICACHE s EN = 0.
- Vyberte 1-cestný nebo 2-cestný (v závislosti na potřebách aplikace) s WAYSEL = 0 nebo 1, v daném pořadí.
- Konfigurace registru ICACHE_CRRx (až čtyři oblasti, x = 0 až 3)
- Vyberte základní adresu 0x1000 0000 (adresu přemapování) s BASEADDR [28:21] = 0x80.
- Vyberte velikost oblasti 8 MB, kterou chcete přemapovat, pomocí RSIZE[2:0] = 0x3.
- Vyberte 0x9000 0000 přemapovanou adresu REMAPADDR[31:21] = 0x480.
- Vyberte port ICACHE AHB master2 pro externí paměti s MSTSEL = 1.
- Vyberte typ série WRAP s HBURST = 0.
- Povolte přemapování pro oblast x s REN = 1.
Následující obrázek ukazuje, jak jsou oblasti paměti vidět s IAR po povolení přemapování.
Obrázek 9. Přemapování paměťových oblastí napřample
8 MB externí paměť je nyní přemapována a lze k ní přistupovat přes oblast [0x1000 0000 až 0x107F FFFF].
Povolit ICACHE
- Konfigurace registru ICACHE_CR Povolte ICACHE s EN = 1.
Hit-and-miss monitory
ICACHE poskytuje dva monitory pro analýzu výkonu: 32bitový monitor hitů a 16bitový monitor chyb.
- Monitor přístupů počítá transakce AHB, které lze uložit do mezipaměti, na portu podřízené mezipaměti, který zasáhne obsah ICACHE (načtená data již dostupná v mezipaměti). Čítač monitoru přístupů je k dispozici v registru ICACHE_HMONR.
- Monitor chyb počítá transakce AHB, které lze uložit do mezipaměti na portu mezipaměti slave, kterým chybí obsah ICACHE (načtená data již nejsou v mezipaměti dostupná). Chybějící počítadlo monitoru je dostupné v registru ICACHE_MMONR.
Poznámka:
Tyto dva monitory se při dosažení svých maximálních hodnot nezabalí. Tyto monitory jsou spravovány z následujících bitů v registru ICACHE_CR:
- Bit HITMEN (respektive bit MISSMEN) pro povolení/zastavení sledování zásahu (respektive miss).
- Bit HITMRST (respektive bit MISSMRST) pro resetování hitu (respektive miss) monitoru Ve výchozím nastavení jsou tyto monitory zakázány, aby se snížila spotřeba energie.
Údržba ICACHE
Software může zneplatnit ICACHE nastavením bitu CACHEINV v registru ICACHE_CR. Tato akce zneplatní celou mezipaměť a tím ji vyprázdní. Mezitím, pokud jsou povoleny některé přemapované oblasti, je funkce přemapování stále aktivní, i když je ICACHE deaktivována. Protože ICACHE spravuje pouze transakce čtení a nespravuje transakce zápisu, nezajišťuje soudržnost v případě zápisů. V důsledku toho musí software po naprogramování regionu zrušit platnost ICACHE.
Zabezpečení ICACHE
ICACHE je zabezpečená periferie, kterou lze nakonfigurovat jako zabezpečenou prostřednictvím zabezpečeného konfiguračního registru GTZC TZSC. Když je nakonfigurován jako bezpečný, jsou k registrům ICACHE povoleny pouze zabezpečené přístupy. ICACHE lze také nakonfigurovat jako privilegovaný prostřednictvím registru konfigurace oprávnění GTZC TZSC. Když je ICACHE nakonfigurován jako privilegovaný, jsou k registrům ICACHE povoleny pouze privilegované přístupy. Ve výchozím nastavení je ICACHE nezabezpečený a neprivilegovaný prostřednictvím GTZC TZSC.
Správa událostí a přerušení
ICACHE spravuje funkční chyby, když jsou zjištěny, nastavením příznaku ERRF v ICACHE_SR. Přerušení lze také vygenerovat, pokud je v ICACHE_IER nastaven bit ERRIE. V případě zneplatnění ICACHE, když stav zaneprázdnění mezipaměti skončí, je v ICACHE_SR nastaven příznak BSYENDF. Přerušení lze také vygenerovat, pokud je v ICACHE_IER nastaven bit BSYENDIE. V tabulce níže jsou uvedeny příznaky přerušení a události ICACHE.
Tabulka 5. Bity přerušení a správy událostí ICACHE
Rejstřík | Název bitu | Popis bitů | Typ bitového přístupu |
ICACHE_SR |
OBCHOD | Mezipaměť provádějící úplnou operaci zrušení platnosti |
Pouze pro čtení |
BSYENDF | Operace zrušení platnosti mezipaměti byla dokončena | ||
CHYBA | Během operace ukládání do mezipaměti došlo k chybě | ||
ICACHE_IER |
ERRIE | Povolit přerušení pro chybu mezipaměti |
Čtení/zápis |
BSYENDIE | Povolit přerušení v případě dokončení operace zneplatnění | ||
ICACHE_FCR |
CERRF | Vymaže ERRF v ICACHE_SR |
Pouze pro zápis |
CBSYENDF | Vymaže BSYENDF v ICACHE_SR |
Funkce DCACHE
Účelem mezipaměti dat je ukládat do mezipaměti zatížení externí paměti a datová úložiště přicházející z procesoru nebo z jiné hlavní periferie sběrnice. DCACHE spravuje transakce čtení i zápisu.
Provoz v mezipaměti DCACHE
DCACHE ukládá externí paměti z rozhraní hlavního portu přes sběrnici AHB. Příchozí požadavky na paměť jsou definovány jako cacheovatelné podle atributu zamknutí paměti transakce AHB. Zásada zápisu DCACHE je definována jako přepis nebo zpětný zápis v závislosti na atributu paměti nakonfigurovaném MPU. Když je oblast nakonfigurována jako bez cacheovatelná, je DCACHE vynechána.
Tabulka 6. Mezipaměť DCACHE pro transakce AHB
Atribut vyhledávání AHB | Vyrovnávací atribut AHB | Možnost ukládání do mezipaměti |
0 | X | Čtení a zápis: nelze uložit do mezipaměti |
1 |
0 |
Čtení: možnost ukládání do mezipaměti
Zápis: (kachovatelný) zápis |
1 |
1 |
Čtení: možnost ukládání do mezipaměti
Zápis: (uložitelný do mezipaměti) zpětný zápis |
Oblasti, které lze uložit do mezipaměti DCACHE
U řady STM32U5 je podřízené rozhraní DCACHE1 připojeno k Cortex-M33 přes sběrnici S-AHB a ukládá do mezipaměti GFXMMU, FMC a HSPI/OCTOSPI. Podřízené rozhraní DCACHE2 je připojeno k DMA2D přes sběrnici portu M0 a ukládá do mezipaměti všechny interní a externí paměti (kromě SRAM4 a BRKPSRAM). U řady STM32H5 je podřízené rozhraní DCACHE připojeno k Cortex-M33 přes externí paměti S-AHB přes FMC a OCTOSPI.
Tabulka 7. Oblasti a rozhraní, které lze uložit do mezipaměti DCACHE
Oblast adresy paměti s možností ukládání do mezipaměti | Rozhraní s možností ukládání do mezipaměti DCACHE1 | Rozhraní s možností ukládání do mezipaměti DCACHE2 |
GFXMMU | X | X |
SRAM1 |
N/A |
X |
SRAM2 | X | |
SRAM3 | X | |
SRAM5 | X | |
SRAM6 | X | |
HSPI1 | X | X |
OCTOSPI1 | X | X |
FMC BANKY | X | X |
OCTOSPI2 | X | X |
Poznámka
Některá rozhraní nejsou v některých produktech podporována. Viz obrázek 1 nebo referenční příručku konkrétního produktu.
Typ burst
Stejně jako ICACHE podporuje DCACHE přírůstkové a zabalené bursty (viz část 3.1.3). Pro DCACHE je typ burstu konfigurován prostřednictvím bitu HBURST v DCACHE_CR.
Konfigurace DCACHE
Během spouštění je DCACHE ve výchozím nastavení zakázáno, takže požadavky na podřízenou paměť jsou předávány přímo na hlavní port. Chcete-li povolit DCACHE, musí být v registru DCACHE_CR nastaven bit EN. Monitory typu hit-and-miss DCACHE implementuje čtyři monitory pro analýzu výkonu mezipaměti:
- Dva 32bitové (R/W) monitory přístupů: počítá, kolikrát CPU čte nebo zapisuje data do mezipaměti bez generování transakce na hlavních portech DCACHE (data jsou již dostupná v mezipaměti). Čítače (R/W) monitorů zásahů jsou dostupné v registrech DCACHE_RHMONR a DCACHE_WHMONR.
- Dva 16bitové (R/W) monitory chyb: počítejte, kolikrát CPU čte nebo zapisuje data do mezipaměti a generuje transakci na hlavních portech DCACHE, aby načetla data z oblasti paměti (nenačtená data již k dispozici v mezipaměti). Čítače (R/W) miss monitorů jsou k dispozici v registrech DCACHE_RMMONR a DCACHE_WMMONR.
Poznámka:
Tyto čtyři monitory se při dosažení svých maximálních hodnot nezabalí. Tyto monitory jsou spravovány z následujících bitů v registru DCACHE_CR:
- Bit WHITMAN (respektive bit WMISSMEN) pro povolení/zastavení monitoru zápisu (respektive chybějícího)
- Bit RHITMEN (respektive bit RMISSMEN) pro povolení/zastavení monitoru čtení hitu (respektive chybějícího)
- Bit WHITMRST (respektive bit WMISSMRST) pro resetování monitoru zápisu (respektive chybného)
- Bit RHITMRST (respektive bit RMISSMRST) pro resetování monitoru čtení hitu (respektive miss)
Ve výchozím nastavení jsou tyto monitory zakázány, aby se snížila spotřeba energie.
Údržba DCACHE
DCACHE nabízí několik operací údržby, které lze konfigurovat prostřednictvím CACHECMD[2:0] v DCACHE_CR.
- 000: žádná operace (výchozí)
- 001: čistý rozsah. Vyčistěte určitý rozsah v mezipaměti
- 010: zneplatnit rozsah. Zrušte platnost určitého rozsahu v mezipaměti
- 010: vyčistit a zrušit rozsah. Vyčistěte a zneplatněte určitý rozsah v mezipaměti
Vybraný rozsah se konfiguruje pomocí:
- Registr CMDSTARTADDR: počáteční adresa příkazu
- Registr CMDENDADDR: koncová adresa příkazu
Poznámka:
Tento registr musí být nastaven před zápisem CACHECMD. Údržba příkazu cache se spustí, když je v registru DCACHE_CR nastaven bit STARTCMD. DCACHE také podporuje úplné zneplatnění CACHE nastavením bitu CACHEINV v registru DCACHE_CR.
Zabezpečení DCACHE
DCACHE je zabezpečená periferie, kterou lze nakonfigurovat jako zabezpečenou prostřednictvím zabezpečeného konfiguračního registru GTZC TZSC. Když je nakonfigurován jako bezpečný, jsou k registrům DCACHE povoleny pouze zabezpečené přístupy. DCACHE lze také nakonfigurovat jako privilegovaný prostřednictvím registru konfigurace oprávnění GTZC TZSC. Když je DCACHE nakonfigurován jako privilegovaný, jsou k registrům DCACHE povoleny pouze privilegované přístupy. Ve výchozím nastavení je DCACHE nezabezpečená a neprivilegovaná prostřednictvím GTZC TZSC.
Správa událostí a přerušení
DCACHE spravuje funkční chyby, když jsou zjištěny, nastavením příznaku ERRF v DCACHE_SR. Přerušení lze také vygenerovat, pokud je v DCACHE_IER nastaven bit ERRIE. V případě zneplatnění DCACHE, když je ukončen stav zaneprázdnění mezipaměti, je v DCACHE_SR nastaven příznak BSYENDF. Přerušení lze také vygenerovat, pokud je v DCACHE_IER nastaven bit BSYENDIE. Stav příkazu DCACHE lze zkontrolovat pomocí CMDENF a BUSYCMDF prostřednictvím DCACHE_SR. Přerušení lze také vygenerovat, pokud je v DCACHE_IER nastaven bit CMDENDIE. Níže uvedená tabulka uvádí přerušení DCACHE a příznaky událostí
Tabulka 8. Bity správy přerušení a událostí DCACHE
Rejstřík | Rejstřík | Popis bitů | Typ bitového přístupu |
DCACHE_SR |
OBCHOD | Mezipaměť provádějící úplnou operaci zrušení platnosti |
Pouze pro čtení |
BSYENDF | Operace plného zrušení mezipaměti byla ukončena | ||
BUSYCMDF | Uložte do mezipaměti provádění příkazu rozsahu | ||
CMDENDF | Konec příkazu rozsahu | ||
ERRF | Během operace ukládání do mezipaměti došlo k chybě | ||
DCACHE_IER |
ERRIE | Povolit přerušení pro chybu mezipaměti |
Čtení/zápis |
CMDENDIE | Povolit přerušení na konci příkazu rozsahu | ||
BSYENDIE | Povolit přerušení při úplném ukončení operace | ||
DCACHE_FCR |
CERRF | Vymaže ERRF v DCACHE_SR |
Pouze pro zápis |
CCMDENDF | Vymaže CMDENDF v DCACHE_SR | ||
CBSYENDF | Vymaže BSYENDF v DCACHE_SR |
Výkon a spotřeba ICACHE a DCACHE
Použití ICACHE a DCACHE zlepšuje výkon aplikace při přístupu k externím pamětem. Následující tabulka ukazuje dopad ICACHE a DCACHE na provádění CoreMark® při přístupu k externím pamětem.
Tabulka 9. Výkon ICACHE a DCACHE při provádění CoreMark s externími pamětmi
(1) | ||||
Kód CoreMark | Data CoreMark | Konfigurace ICACHE | Konfigurace DCACHE | CoreMark skóre/MHz |
Interní flash paměť | Interní SRAM | Povoleno (2 způsoby) | Zakázáno | 3.89 |
Interní flash paměť | Externí Octo-SPI PSRAM (S-bus) | Povoleno (2 způsoby) | Povoleno | 3.89 |
Interní flash paměť | Externí Octo-SPI PSRAM (S-bus) | Povoleno (2 způsoby) | Zakázáno | 0.48 |
Externí Octo-SPI Flash (C-bus) | Interní SRAM | Povoleno (2 způsoby) | Zakázáno | 3.86 |
Externí Octo-SPI Flash (C-bus) | Interní SRAM | Zakázáno | Zakázáno | 0.24 |
Interní flash paměť | Interní SRAM | Zakázáno | Zakázáno | 2.69 |
Zkušební podmínky:
- Použitelný produkt: STM32U575/585
- Systémová frekvence: 160 MHz.
- Externí paměť Octo-SPI PSRAM: 80 MHz (režim DTR).
- Externí flash paměť Octo-SPI: 80 MHz (režim STR).
- Kompilátor: IAR V8.50.4.
- Interní blesk PREFETCH: ON.
Použití ICACHE a DCACHE snižuje spotřebu energie při přístupu k interním a externím pamětem. Následující tabulka ukazuje dopad ICACHE na spotřebu energie během provádění CoreMark.
Tabulka 10. Spuštění CoreMark Vliv ICACHE na spotřebu energie
Konfigurace ICACHE | Spotřeba MCU (mA) |
Povoleno (2 způsoby) | 7.60 |
Povoleno (jednosměrné) | 7.13 |
Zakázáno | 8.89 |
- Zkušební podmínky:
- Použitelný produkt: STM32U575/585
- Kód CoreMark: interní paměť Flash.
- Data CoreMark: interní SRAM.
- Interní flash paměť PREFETCH: ON.
- Systémová frekvence: 160 MHz.
- Kompilátor: IAR V8.32.2.
- svtagrozsah: 1.
- SMPS: ZAPNUTO.
- Asociativní konfigurace way set je výkonnější než jednosměrná asociativní konfigurace pro kód, který nelze plně načíst do mezipaměti. Mezitím je jednosměrná asociativní mezipaměť téměř vždy energeticky účinnější než dvousměrná asociativní mezipaměť. Každý kód musí být vyhodnocen v obou konfiguracích asociativnosti, aby bylo možné vybrat nejlepší kompromis mezi výkonem a spotřebou energie. Výběr závisí na prioritě uživatele.
Závěr
První mezipaměti vyvinuté společností STMicroelectronics, ICACHE a DCACHE, jsou schopny ukládat do mezipaměti interní a externí paměti, čímž nabízejí zvýšení výkonu pro datový provoz a načítání instrukcí. Tento dokument ukazuje různé funkce podporované ICACHE a DCACHE, jejich jednoduchost konfigurace a flexibilita umožňují nižší náklady na vývoj a rychlejší uvedení na trh.
Historie revizí
Tabulka 11. Historie revizí dokumentu
Datum | Verze | Změny |
10. října 2019 | 1 | Počáteční vydání. |
27. února 2020 |
2 |
Aktualizováno:
• Tabulka 2. Oblasti paměti a jejich adresy • Oddíl 2.1.7 Údržba ICACHE • Oddíl 2.1.8 Zabezpečení ICACHE |
7. prosince - 2021 |
3 |
Aktualizováno:
• Název dokumentu • Úvod • Část 1 ICACHE a DCACHE končíview • Doplněn závěr oddílu 4: • Sekce 2 Funkce ICACHE a DCACHE • Část 3 Výkon a spotřeba energie ICACHE a DCACHE |
15. února 2023 |
4 |
Aktualizováno:
• Část 2.2: Inteligentní architektura řady STM32U5 • Část 2.5: Blokové schéma DCACHE • Část 3.1.2: Jednosměrný versus dvoucestný ICACHE • Část 3.1.4: Oblasti s možností ukládání do mezipaměti a funkce přemapování • Část 3.2.2: Oblasti, které lze uložit do mezipaměti DCACHE • Část 4: Výkon a spotřeba ICACHE a DCACHE Přidáno: |
11-března-2024 |
5 |
Aktualizováno: |
DŮLEŽITÉ UPOZORNĚNÍ – ČTĚTE POZORNĚ
STMicroelectronics NV a její dceřiné společnosti (“ST”) si vyhrazují právo provádět změny, opravy, vylepšení, úpravy a vylepšení produktů ST a/nebo tohoto dokumentu kdykoli bez upozornění. Kupující by měli před zadáním objednávky získat nejnovější relevantní informace o produktech ST. Produkty ST jsou prodávány v souladu s prodejními podmínkami ST platnými v době potvrzení objednávky. Kupující jsou výhradně odpovědní za výběr, výběr a použití produktů ST a ST nepřebírá žádnou odpovědnost za pomoc s aplikací nebo design produktů kupujících. Společnost ST zde neuděluje žádnou výslovnou ani předpokládanou licenci k právu duševního vlastnictví. Další prodej produktů ST s ustanoveními odlišnými od informací uvedených v tomto dokumentu ruší jakoukoli záruku poskytnutou společností ST na takový produkt. ST a logo ST jsou ochranné známky společnosti ST. Další informace o ochranných známkách ST najdete na www.st.com/trademarks. Všechny ostatní názvy produktů nebo služeb jsou majetkem jejich příslušných vlastníků. Informace v tomto dokumentu nahrazují a nahrazují informace dříve uvedené v předchozích verzích tohoto dokumentu. © 2024 STMicroelectronics – Všechna práva vyhrazena
Dokumenty / zdroje
![]() |
STMicroelectronics Mikrokontroléry řady STM32H5 [pdfUživatelská příručka Mikrokontroléry řady STM32H5, STM32H5, mikrokontroléry řady, mikrokontroléry |