Logo STMicroelectronics

STMicroelectronics Mikrokontroléry řady STM32H5

STMicroelectronics-STM32H5-Series-Mikrokontroléry-produkt

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

STMicroelectronics-STM32H5-Series-Mikrokontroléry-obr-1

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

STMicroelectronics-STM32H5-Series-Mikrokontroléry-obr-2

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

STMicroelectronics-STM32H5-Series-Mikrokontroléry-obr-3

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

STMicroelectronics-STM32H5-Series-Mikrokontroléry-obr-4

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

STMicroelectronics-STM32H5-Series-Mikrokontroléry-obr-5

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

STMicroelectronics-STM32H5-Series-Mikrokontroléry-obr-6

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

(1)

 

 

 

 

 

 

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
  1. Pro řadu STM32L5 / řadu STM32H5 / STM32U535/545/575/585
  2. 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

STMicroelectronics-STM32H5-Series-Mikrokontroléry-obr-9

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

STMicroelectronics-STM32H5-Series-Mikrokontroléry-obr-7

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

STMicroelectronics-STM32H5-Series-Mikrokontroléry-obr-8

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
  1. 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.
  2. 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

•         Sekce 3.1.1: Duální master

•         Čá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: Funkce DCACHE

•         Čá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:

•         Oddíl 1: Všeobecné informace

 

11-března-2024

 

5

Aktualizováno:

•         Část 2.3: Inteligentní architektura řady STM32H5

•         Sekce 3.1.1: Duální master

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

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *