STMicroelectronics STM32H5 Series Microcontrollers User Manual

June 2, 2024
STMicroelectronics

STMicroelectronics STM32H5 Series Microcontrollers

Introduction

This application note describes the instruction cache (ICACHE) and the data cache (DCACHE), the first caches developed by STMicroelectronics. The ICACHE and DCACHE introduced on the AHB bus of the Arm® Cortex®-M33 processor are embedded in the STM32 microcontroller (MCUs) listed in the table below. These caches allow users to improve their application performance and reduce the consumption when fetching instruction and data from both internal and external memories, or for data traffic from external memories. This document gives typical examples to highlight the ICACHE and DCACHE features and facilitate their configuration.

Table 1. Applicable products

Type Product series
Microcontrollers STM32H5 series, STM32L5 series, STM32U5 series

General information

Note:

This application note applies to the STM32 series microcontrollers that are Arm® Cortex® core-based devices. Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.

ICACHE and DCACHE overview

This section provides an overview of the ICACHE and DCACHE interfaces embedded in the STM32 Arm® Cortex® core-based microcontrollers. This section details the ICACHE and DCACHE diagram and integration in the system architecture.
STM32L5 series smart architecture
This architecture is based on a bus matrix allowing multiple masters (Cortex-M33, ICACHE, DMA1/2, and SDMMC1) to access multiple slaves (such as flash memory, SRAM1/2, OCTOSPI1, or FSMC). The figure below describes the STM32L5 series smart architecture.

Figure 1. STM32L5 series smart architecture

STMicroelectronics-STM32H5-Series-Microcontrollers-
fig-1

The Cortex-M33 performance is improved by using the 8-Kbyte ICACHE interface introduced to its C-AHB bus, when fetching code or data from the internal memories (flash memory, SRAM1, or SRAM2) through the fast bus, and also from the external memories (OCTOSPI1 or FSMC) through the slow bus.
STM32U5 series smart architecture
This architecture is based on a bus matrix allowing multiple masters (Cortex-M33, ICACHE, DCACHE, GPDMA, DMA2D and SDMMCs, OTG_HS, LTDC, GPU2D, GFXMMU) to access multiple slaves (such as flash memory, SRAMs, BKPSRAM, HSPI/OCTOSPI, or FSMC).The figure below describes the STM32U5 series smart architecture.

Figure 2. STM32U5 series smart architecture

STMicroelectronics-STM32H5-Series-Microcontrollers-
fig-2

The Cortex-M33 and the GPU2D interfaces both benefit from using CACHE.

  • ICACHE improves the performance of Cortex-M33 when fetching code or data from the internal memories through the fast bus (flash memory, SRAMs) and from external memories through the slow bus (OCTOSPI1/2 and HSPI1, or FSMC). DCACHE1 improves the performance when fetching data from internal or external memories through the s‑bus (GFXMMU, OCTOSPI1/2 and HSPI1, or FSMC).
  •  DCACHE2 improves the performance of GPU2D when fetching data from internal and external memories (GFXMMU, flash memory, SRAMs, OCTOSPI1/2 and HSPI1, or FSMC) through the M0 port bus.

STM32H5 series smart architecture
STM32H523/H533, STM32H563/H573 and STM32H562 smart architecture This architecture is based on a bus matrix allowing multiple masters (Cortex-M33, ICACHE, DCACHE, GPDMAs, Ethernet and SDMMCs) to access multiple slaves (such as flash memory, SRAMs, BKPSRAM, OCTOSPI and FMC). The figure below describes the STM32H5 series smart architecture.

Figure 3. STM32H563/H573 and STM32H562 series smart architecture

STMicroelectronics-STM32H5-Series-Microcontrollers-
fig-3

The Cortex-M33 benefits from using CACHE.

  • ICACHE improves the performance of Cortex-M33 when fetching code or data from the internal memories through a fast bus (flash memory, SRAMs) and from external memories through slow bus (OCTOSPI and FMC).
  • DCACHE improves the performance when fetching data from external memories through the slow bus (OCTOSPI and FMC).

STM32H503 smart architecture
This architecture is based on a bus matrix allowing multiple masters (Cortex-M33, ICACHE and GPDMAs) to access multiple slaves (such as flash memory, SRAMs and BKPSRAM).  The figure below describes the STM32H5 series smart architecture.

Figure 4. STM32H503 series smart architecture

STMicroelectronics-STM32H5-Series-Microcontrollers-
fig-4

The Cortex-M33 benefits from using CACHE.

  • ICACHE improves the performance of Cortex-M33 when fetching code or data from the internal memories through fast bus (flash memory, SRAMs).

ICACHE block diagram
The ICACHE block diagram is given in the figure below.

Figure 5. ICACHE block diagram

STMicroelectronics-STM32H5-Series-Microcontrollers-
fig-5

The ICACHE memory includes:

  • the TAG memory with:
    • the address tags that indicate which data are contained in the cache data memory
    • the validity bits
  •  the data memory, which contains the cached data

DCACHE block diagram
The DCACHE block diagram is given in the figure below.

Figure 6. DCACHE block diagram

STMicroelectronics-STM32H5-Series-Microcontrollers-
fig-6

The DCACHE memory includes:

  • the TAG memory with:
    • the address tags that indicate which data are contained in the cache data memory
    • the validity bits
    • the privilege bits
    • the dirty bits
  • the data memory, which contains the cached data

ICACHE and DCACHE features

Dual masters
The ICACHE accesses the AHB bus matrix either over:

  • One AHB master port: master1 (fast bus)
  • Two AHB master ports: master1 (fast bus) and master2 (slow bus)

This feature allows the traffic to be decoupled when accessing different memory regions (such as internal flash memory, internal SRAM and external memories), in order to reduce the CPU stalls on cache misses. The following table summarizes memory regions and their addresses.

Table 2. Memory regions and their addresses

Peripheral| Cacheable memory access| Not cacheable memory access
---|---|---



Type

| ****


Name

| ****


Product name and region size

| ****


Bus name

| ****

Nonsecure region starting address

| Secure, nonsecure callable region starting address| ****


Bus name

| ****

Nonsecure region starting address

| Secure, nonsecure callable region starting address



















Internal

| ****







FLASH

| STM32H503| 128 KB| ****


















ICACHE

fast bus

| ****







0x0800 0000

| N/A| ****







N/A

| ****







N/A

| ****







N/A

STM32L5

series/ 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

series

| 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| Cacheable memory access| Not cacheable memory access
---|---|---










Internal

| ****


SRAM2

| STM32H563/ 573/562| 80 KB| ****








ICACHE

fast bus

| 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












External

| HSPI1| STM32U59x/

5Ax/5Fx/5Gx

| ****











256 MB

| ****










ICACHE

slow bus

(1)

| ****






Alias address in the range of [0x0000 0000

to 0x07FF FFFF] or [0x1000 0000:0x1FFF

FFFF] defined by means of remapping feature

| ****











N/A

| 0xA000 0000
FMC SDRAM| STM32H563/ 573/562| 0xC000 0000


OCTOSPI1

bank nonsecure

| STM32L5/U5

series

STM32H563/ 573/562

| ****


0x9000 0000


FMC bank 3

nonsecure

| STM32L5/U5

series

STM32H563/ 573/562

| ****


0x8000 0000

OCTOSPI2

bank nonsecure

| STM32U575/

585/59x/5Ax/

5Fx/5Gx

| ****

0x7000 0000


FMC bank 1

nonsecure

| STM32L5/U5

series

STM32H563/ 573/562

| ****


0x6000 0000

1. To be selected when remapping such regions.

1-way versus 2-way ICACHE
By default, the ICACHE is configured in the associative operating mode (two ways enabled), but it is possible to configure the ICACHE in direct-mapped mode (one-way enabled), for applications requiring a very-low power consumption. The ICACHE configuration is done with the WAYSEL bit in ICACHE_CR as follows:

  • WAYSEL = 0: direct mapped operating mode (1-way)
  • WAYSEL = 1 (default): associative operating mode (2-way)

Table 3. 1-way versus 2-way ICACHE

Parameter 1-way ICACHE 2-way ICACHE
Cache size (Kbytes) 8(1)/32(2)
Cache a number of ways 1 2
Cache line size 128 bits (16 bytes)
Number of cache lines 512(1)/2048(2) 256(1)/1024(2) per way
  1. For STM32L5 series /STM32H5 series /STM32U535/545/575/585
  2. For STM32U59x/5Ax/5Fx/5Gx

Burst type
Some Octo-SPI memories support the WRAP burst, which provides the benefit of critical word-first feature performance. The ICACHE burst type of the AHB memory transaction for remapped regions is configurable. It implements incremental burst or WRAP burst, selected with the HBURST bit in the ICACHE_CRRx register. The differences between the WRAP and the incremental bursts are given below (see also the figure):

  • WRAP burst:
    • cache line size = 128 bits
    • burst to start address = word address of the first data requested by the CPU
  •  Incremental burst:
    • cache line size = 128 bits
    • burst starting address = address aligned on the boundary of the cache line containing the requested word

Figure 7. Incremental versus WRAP burst

STMicroelectronics-STM32H5-Series-Microcontrollers-
fig-9

Cacheable regions and remapping feature
The ICACHE is connected to the Cortex-M33 through the C-AHB bus and caches the code region from addresses [0x0000 0000 to 0x1FFF FFFF]. Since the external memories are mapped at an address in the range [0x6000 0000 to 0xAFFF FFFF], the ICACHE supports a remap feature that allows any external memory region to be remapped at an address in the range of [0x0000 0000 to 0x07FF FFFF] or [0x1000 0000 to 0x1FFF FFFF], and to become accessible through the C-AHB bus. Up to four external memory regions can be remapped with this feature. Once a region is remapped, the remap operation occurs even if the ICACHE is disabled or if the transaction is not cacheable. The cacheable memory regions can be defi ed and programmed by the user in the memory protection unit (MPU). The table below summarizes the configurations of the STM32L5 and STM32U5 series memories.

Table 4. Configuration of STM32L5 and STM32U5 series memories


Product memory

| Cacheable

(MPU programming)

| Remapped in ICACHE

(ICACHE_CRRx programming)

---|---|---
Flash memory| Yes or No| ****

Not required

SRAM| Not recommended
External memories (HSPI/ OCTOSPI or FSMC)| Yes or No| Required if the user wants external code fetching on C- AHB bus (else on S-AHB bus)

Benefit of ICACHE external memory remapping
The example in the figure below shows how to benefit from the ICACHE enhanced performance during code execution or data read when accessing an external 8-Mbyte external Octo-SPI memory (such as external flash memory or RAM).

Figure 8. Octo-SPI memory remap example

STMicroelectronics-STM32H5-Series-Microcontrollers-
fig-7

The following steps are needed to remap this external memory:

OCTOSPI configuration for the external memory

Configure the OCTOSPI interface in order to access the external memory in Memory mapped mode (the external memory is seen as an internal memory mapped in the [0x9000 0000 to 0x9FFF FFFF] region). Since the external memory size is 8 Mbytes, it is seen at the region [0x9000 0000 to 0x907F FFFF]. The external memory at this region is accessed through the S‑bus and is not cacheable. The next step shows the ICACHE configuration in order to remap this region.
Note: For the OCTOSPI configuration in memory-mapped mode, refer to the application note Octo‑ SPI interface on STM32 microcontrollers (AN5050

ICACHE configuration to remap the external memory-mapped region
The 8 Mbytes placed in the [0x9000 0000 to 0x907F FFFF] region are remapped to the [0x1000 0000 to 0x107F FFFF] region. They can then be accessed through the slow bus (ICACHE master2 bus).

  • ICACHE_CR register configuration
    • Disable ICACHE with EN = 0.
    • Select 1-way or 2-way (depending on the application needs) with WAYSEL = 0 or 1, respectively.
  • ICACHE_CRRx register configuration (up to four regions, x = 0 to 3)
    • Select the 0x1000 0000 base address (remap address) with BASEADDR [28:21] = 0x80.
    • Select the 8-Mbyte region size to remap with RSIZE[2:0] = 0x3.
    • Select the 0x9000 0000 remapped address REMAPADDR[31:21] = 0x480.
    • Select the ICACHE AHB master2 port for external memories with MSTSEL = 1.
    • Select the WRAP burst type with HBURST = 0.
    • Enable the remapping for region x with REN = 1.

The following figure shows how the memory regions are seen with IAR after enabling the remap.

Figure 9. Memory regions remapping example

STMicroelectronics-STM32H5-Series-Microcontrollers-
fig-8

The 8-Mbyte external memory is now remapped and can be accessed over the [0x1000 0000 to 0x107F FFFF] region.

ICACHE enable

  • ICACHE_CR register configuration Enable the ICACHE with EN = 1.

Hit-and-miss monitors
ICACHE provides two monitors for performance analysis: a 32-bit hit monitor and a 16-bit miss monitor.

  • The hit monitor counts the cacheable AHB transactions on the slave cache port that hits ICACHE content (fetched data already available in the cache). The hit monitor counter is available in the ICACHE_HMONR register.
  • The miss monitor counts the cacheable AHB transactions on the slave cache port that miss ICACHE content (fetched data not already available in the cache). The missing monitor counter is available in the ICACHE_MMONR register.

Note:

These two monitors do not wrap over when reaching their maximum values. These monitors are managed from the following bits in the ICACHE_CR register:

  • HITMEN bit (respectively MISSMEN bit) to enable/stop the hit (respectively miss) monitor
  • HITMRST bit (respectively MISSMRST bit) to reset the hit (respectively miss) monitor By default, theses monitors are disabled in order to reduce power consumption.

ICACHE maintenance
The software can invalidate the ICACHE by setting the CACHEINV bit in the ICACHE_CR register. This action invalidates the whole cache, making it empty. Meanwhile, if some remapped regions are enabled, the remap feature is still active, even when the ICACHE is disabled. As the ICACHE only manages read transactions and does not manage write transactions, it does not ensure coherency in the case of writes. Consequently, the software must invalidate the ICACHE after programming a region.

ICACHE security
ICACHE is a securable peripheral that can be configured as secure through the GTZC TZSC secure configuration register. When it is configured as secure, only secure accesses are allowed to the ICACHE registers. ICACHE can also be configured as privileged through the GTZC TZSC privilege configuration register. When ICACHE is configured as privileged, only privileged accesses are allowed to the ICACHE registers. By default, the ICACHE is nonsecure and non-privileged through the GTZC TZSC.

Event and interrupt management

The ICACHE manages the functional errors when detected, by setting the ERRF flag in ICACHE_SR. An interrupt can also be generated if the ERRIE bit is set in ICACHE_IER. In case of ICACHE invalidation, when the cache busy state finished, the BSYENDF flag is set in ICACHE_SR. An interrupt can also be generated if the BSYENDIE bit is set in ICACHE_IER. The table below lists the ICACHE interrupt and event flags.

Table 5. ICACHE interrupt and event management bits

Register Bit name Bit description Bit access type

ICACHE_SR

| BUSY| Cache executing a full invalidate operation| ****

Read-only

BSYENDF| The cache invalidation operation finished
ERROR| An error occurred during caching operation


ICACHE_IER

| ERRIE| Enable interrupt for cache error| ****

Read/write

BSYENDIE| Enable interrupt in case of invalidation operation finished


ICACHE_FCR

| CERRF| Clears ERRF in ICACHE_SR| ****

Write-only

CBSYENDF| Clears BSYENDF in ICACHE_SR

DCACHE features
The purpose of the data cache is to cache external memory data loads and data stores coming from the processor or from another bus master peripheral. DCACHE manages both read and write transactions.
DCACHE cacheability traffic

The DCACHE caches the external memories from the master port interface through the AHB bus. The incoming memory requests are defined as cacheable according to its AHB transaction memory lockup attribute.  The DCACHE write policy is defined as write-through or write-back depending to the memory attribute configured by the MPU. When a region is configured as non-cacheable, the DCACHE is bypassed.

Table 6. DCACHE cacheability for AHB transaction

AHB lookup attribute AHB bufferable attribute Cacheability
0 X Read and write: non-cacheable

1

| ****

0

| Read: cacheable

Write: (cacheable) write-through


1

| ****

1

| Read: cacheable

Write: (cacheable) write-back

DCACHE cacheable regions
For the STM32U5 series, the DCACHE1 slave interface is connected to the Cortex-M33 through the S-AHB bus and caches the GFXMMU, FMC, and HSPI/OCTOSPIs. The DCACHE2 slave interface is connected to the DMA2D through the M0 port bus, and caches all the internal and external memories (except SRAM4 and BRKPSRAM). For the STM32H5 series, the DCACHE slave interface is connected to the Cortex-M33 through the S-AHB external memories through FMC and OCTOSPI.

Table 7. DCACHE cacheable regions and interfaces

Cacheable memory address region| DCACHE1 cacheable interfaces| DCACHE2 cacheable interfaces
---|---|---
GFXMMU| X| X
SRAM1| ****



N/A

| X
SRAM2| X
SRAM3| X
SRAM5| X
SRAM6| X
HSPI1| X| X
OCTOSPI1| X| X
FMC BANKs| X| X
OCTOSPI2| X| X

Note

Some interfaces are not supported in certain products. Refer to Figure 1 or the specific product reference manual.
Burst type
Same as ICACHE, the DCACHE supports incremental and wrapped bursts (see Section 3.1.3). For DCACHE, the burst type is configured through the HBURST bit in DCACHE_CR.
DCACHE configuration
During boot, DCACHE is disabled by default making the slave memory requests forwarded directly to the master port. To enable DCACHE, EN bit must be set in the DCACHE_CR register. Hit-and-miss monitors The DCACHE implements four monitors for cache performance analysis:

  • Two 32-bit (R/W) hit monitor: counts the number of times the CPU read or write data in the cache memory without generating a transaction on DCACHE master ports (data already available in the cache). The (R/W) hit monitors counters are available respectively in the DCACHE_RHMONR and DCACHE_WHMONR registers.
  • Two 16-bit (R/W) miss monitors: count the number of times the CPU read or write data in the cache memory and generates a transaction on DCACHE master ports, in order to load the data from the memory region (fetched data not already available in the cache). The (R/W) miss monitors counters are available respectively in the DCACHE_RMMONR and DCACHE_WMMONR registers.

Note:

These four monitors do not wrap over when reaching their maximum values. These monitors are managed from the following bits in the DCACHE_CR register:

  • WHITMAN bit (respectively WMISSMEN bit) to enable/stop the write hit (respectively miss) monitor
  • RHITMEN bit (respectively RMISSMEN bit) to enable/stop the read hit (respectively miss) monitor
  • WHITMRST bit (respectively WMISSMRST bit) to reset the write hit (respectively miss) monitor
  • RHITMRST bit (respectively RMISSMRST bit) to reset the read hit (respectively miss) monitor

By default, these monitors are disabled in order to reduce power consumption.

DCACHE maintenance
The DCACHE offers multiple maintenance operations that can be configured through CACHECMD[2:0] in DCACHE_CR.

  • 000: no operation (default)
  • 001: clean range. Clean a certain range in the cache
  • 010: invalidate range. Invalidate a certain range in the cache
  • 010: clean and invalidate range. Clean and invalidate a certain range in the cache

The selected range is configured through:

  • CMDSTARTADDR register: command starting address
  • CMDENDADDR register: command ending address

Note:

This register must be set before CACHECMD is written. The cache command maintenance starts when the STARTCMD bit is set in the DCACHE_CR register. The DCACHE also support a full CACHE invalidation by setting the CACHEINV bit in the DCACHE_CR register.

DCACHE security
The DCACHE is a secure peripheral that can be configured as secure through the GTZC TZSC secure configuration register. When it is configured as secure, only secure accesses are allowed to the DCACHE registers. DCACHE can also be configured as privileged through the GTZC TZSC privilege configuration register. When DCACHE is configured as privileged, only privileged accesses are allowed to the DCACHE registers. By default, the DCACHE is nonsecure and non-privileged through the GTZC TZSC.

Event and interrupt management
The DCACHE manages the functional errors when detected, by setting the ERRF flag in DCACHE_SR. An interrupt can also be generated if the ERRIE bit is set in DCACHE_IER. In case of DCACHE invalidation, when the cache busy state is finished, the BSYENDF flag is set in DCACHE_SR. An interrupt can also be generated if the BSYENDIE bit is set in DCACHE_IER. The DCACHE command status can be checked through CMDENF and BUSYCMDF through the DCACHE_SR An interrupt can also be generated if the CMDENDIE bit is set in DCACHE_IER. The table below lists the DCACHE interrupts and event flags

Table 8. DCACHE Interrupt and events management bits

Register Register Bit description Bit access type



DCACHE_SR

| BUSY| Cache executing a full invalidate operation| ****



Read-only

BSYENDF| Cache full invalidate operation ended
BUSYCMDF| Cache executing a range command
CMDENDF| A range command end
ERRF| An error occurred during caching operation


DCACHE_IER

| ERRIE| Enable interrupt for cache error| ****

Read/write

CMDENDIE| Enable interrupt on range command end
BSYENDIE| Enable interrupt on full invalidate operation end


DCACHE_FCR

| CERRF| Clears ERRF in DCACHE_SR| ****

Write-only

CCMDENDF| Clears CMDENDF in DCACHE_SR
CBSYENDF| Clears BSYENDF in DCACHE_SR

ICACHE and DCACHE performance and power consumption

Using ICACHE and DCACHE improve the application performance when accessing external memories. The following table shows the impact of ICACHE and DCACHE on CoreMark® execution when accessing external memories.

Table 9. ICACHE and DCACHE performance on CoreMark execution with external memories

(1)

CoreMark code| CoreMark Data| ICACHE configuration| DCACHE configuration| CoreMark score/Mhz
Internal Flash memory| Internal SRAM| Enabled (2-ways)| Disabled| 3.89
Internal Flash memory| External Octo-SPI PSRAM ( S‑bus)| Enabled (2-ways)| Enabled| 3.89
Internal Flash memory| External Octo-SPI PSRAM ( S‑bus)| Enabled (2-ways)| Disabled| 0.48
External Octo-SPI Flash (C-bus)| Internal SRAM| Enabled (2-ways)| Disabled| 3.86
External Octo-SPI Flash (C-bus)| Internal SRAM| Disabled| Disabled| 0.24
Internal Flash memory| Internal SRAM| Disabled| Disabled| 2.69

Test Conditions:

  • Applicable product: STM32U575/585
  • System frequency: 160 MHz.
  • External Octo-SPI PSRAM memory: 80 MHz (DTR mode).
  • External Octo-SPI flash memory: 80 MHz (STR mode).
  • Compiler: IAR V8.50.4.
  • Internal Flash PREFETCH: ON.

Using ICACHE and DCACHE reduce the power consumption when accessing internal and external memories. The following table shows the impact of ICACHE on power consumption during CoreMark execution.

Table 10. CoreMark execution ICACHE impact on power consumption

ICACHE configuration MCU power consumption (mA)
Enabled (2-ways) 7.60
Enabled (1-way) 7.13
Disabled 8.89
  1. Test Conditions:
    • Applicable product: STM32U575/585
    • CoreMark code: internal Flash memory.
    • CoreMark data: internal SRAM.
    • Internal Flash memory PREFETCH: ON.
    • System frequency: 160 MHz.
    • Compiler: IAR V8.32.2.
    • Voltage range: 1.
    • SMPS: ON.
  2. way set associative configuration is more performing than 1-way set associative configuration for code that cannot be fully loaded in cache. Meanwhile, 1-way set associative cache is almost always more power efficient than 2-way set associative cache. Each code has to be evaluated in both associativity configurations, in order to select the best trade-off between performance and power consumption. The selection depends on the user priority.

Conclusion

The first caches developed by STMicroelectronics, ICACHE and DCACHE, are able to cache internal and external memories, offering performance enhancement for data traffic and instruction fetches. This document shows the different features supported by the ICACHE and DCACHE, their configuration simplicity and flexibility allow lower development cost and faster time to market.

Revision history

Table 11. Document revision history

Date Version Changes
10-Oct-2019 1 Initial release.


27-Feb-2020

| ****


2

| Updated:

•         Table 2. Memory regions and their addresses

•         Section 2.1.7 ICACHE maintenance

•         Section 2.1.8 ICACHE security





7-Dec-2021

| ****




3

| Updated:

•         Document title

•         Introduction

•         Section 1 ICACHE and DCACHE overview

•         Section 4 Conclusion Added:

•         Section 2 ICACHE and DCACHE features

•         Section 3 ICACHE and DCACHE performance and power consumption







15-Feb-2023

| ****






4

| Updated:

•         Section 2.2: STM32U5 series smart architecture

•         Section 2.5: DCACHE block diagram

•         Section 3.1.1: Dual masters

•         Section 3.1.2: 1-way versus 2-way ICACHE

•         Section 3.1.4: Cacheable regions and remapping feature

•         Section 3.2: DCACHE features

•         Section 3.2.2: DCACHE cacheable regions

•         Section 4: ICACHE and DCACHE performance and power consumption Added:

•         Section 1: General information


11-Mar-2024

| ****

5

| Updated:

•         Section 2.3: STM32H5 series smart architecture

•         Section 3.1.1: Dual masters

IMPORTANT NOTICE – READ CAREFULLY
STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on ST products before placing orders. ST products are sold pursuant to ST’s terms and conditions of sale in place at the time of order acknowledgment.  Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or the design of purchasers’ products. No license, express or implied, to any intellectual property right is granted by ST herein. Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product. ST and the ST logo are trademarks of ST. For additional information about ST trademarks, refer to www.st.com/trademarks. All other product or service names are the property of their respective owners. Information in this document supersedes and replaces information previously supplied in any prior versions of this document. © 2024 STMicroelectronics – All rights reserved

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

STMicroelectronics User Manuals

Related Manuals