意法半导体 STM32H5 系列微控制器
介绍
本应用笔记介绍了指令高速缓存 (ICACHE) 和数据高速缓存 (DCACHE),这是意法半导体开发的首批高速缓存。 Arm® Cortex®-M33 处理器的 AHB 总线上引入的 ICACHE 和 DCACHE 嵌入在下表列出的 STM32 微控制器 (MCU) 中。这些缓存允许用户提高应用程序性能并减少从内部和外部存储器获取指令和数据或从外部存储器获取数据流量时的消耗。本文档给出了典型的前amp文件来突出显示 ICACHE 和 DCACHE 功能并方便其配置。
表 1. 适用产品
类型 | 产品系列 |
微控制器 | STM32H5系列、STM32L5系列、STM32U5系列 |
一般信息
笔记:
本应用笔记适用于基于 Arm® Cortex® 内核的 STM32 系列微控制器。 Arm 是 Arm Limited(或其子公司)在美国和/或其他地方的注册商标。
ICACHE 和 DCACHE 结束view
本节提供了view 嵌入在基于 STM32 Arm® Cortex® 内核的微控制器中的 ICACHE 和 DCACHE 接口。本节详细介绍了 ICACHE 和 DCACHE 图以及系统架构中的集成。
STM32L5系列智能架构
该架构基于总线矩阵,允许多个主设备(Cortex-M33、ICACHE、DMA1/2 和 SDMMC1)访问多个从设备(例如闪存、SRAM1/2、OCTOSPI1 或 FSMC)。下图描述了STM32L5系列智能架构。
图 1. STM32L5系列智能架构
当通过快速总线从内部存储器(闪存、SRAM33 或 SRAM8)以及从通过慢速总线的外部存储器(OCTOSPI1 或 FSMC)。
STM32U5系列智能架构
该架构基于总线矩阵,允许多个主设备(Cortex-M33、ICACHE、DCACHE、GPDMA、DMA2D 和 SDMMC、OTG_HS、LTDC、GPU2D、GFXMMU)访问多个从设备(例如闪存、SRAM、BKPSRAM、HSPI/ OCTOSPI,即FSMC)。下图描述了STM32U5系列智能架构。
图 2。 STM32U5系列智能架构
Cortex-M33 和 GPU2D 接口都受益于使用 CACHE。
- 当通过快速总线(闪存、SRAM)从内部存储器获取代码或数据以及通过慢速总线(OCTOSPI33/1 和 HSPI2 或 FSMC)从外部存储器获取代码或数据时,ICACHE 提高了 Cortex-M1 的性能。 DCACHE1 提高了通过 s 总线(GFXMMU、OCTOSPI1/2 和 HSPI1 或 FSMC)从内部或外部存储器获取数据时的性能。
- DCACHE2 通过 M2 端口总线从内部和外部存储器(GFXMMU、闪存、SRAM、OCTOSPI1/2 和 HSPI1 或 FSMC)获取数据时提高了 GPU0D 的性能。
STM32H5系列智能架构
STM32H523/H533、STM32H563/H573 和 STM32H562 智能架构 该架构基于总线矩阵,允许多个主设备(Cortex-M33、ICACHE、DCACHE、GPDMA、以太网和 SDMMC)访问多个从设备(例如闪存、SRAM、BKPSRAM) 、OCTOSPI 和 FMC)。下图描述了STM32H5系列智能架构。
图 3. STM32H563/H573和STM32H562系列智能架构
Cortex-M33 受益于使用 CACHE。
- 当通过快速总线(闪存、SRAM)从内部存储器获取代码或数据以及通过慢速总线(OCTOSPI 和 FMC)从外部存储器获取代码或数据时,ICACHE 提高了 Cortex-M33 的性能。
- DCACHE 提高了通过慢速总线(OCTOSPI 和 FMC)从外部存储器获取数据时的性能。
STM32H503智能架构
该架构基于总线矩阵,允许多个主设备(Cortex-M33、ICACHE 和 GPDMA)访问多个从设备(例如闪存、SRAM 和 BKPSRAM)。下图描述了STM32H5系列智能架构。
图 4。 STM32H503系列智能架构
Cortex-M33 受益于使用 CACHE。
- 当通过快速总线(闪存、SRAM)从内部存储器获取代码或数据时,ICACHE 提高了 Cortex-M33 的性能。
ICACHE框图
ICACHE框图如下图所示。
图 5. ICACHE框图
ICACHE 内存包括:
- 这 TAG 内存:
- 地址 tags 指示缓存数据内存中包含哪些数据
- 有效性位
- 数据存储器,包含缓存数据
DCACHE框图
DCACHE框图如下图所示。
图 6. DCACHE框图
DCACHE内存包括:
- 这 TAG 内存:
- 地址 tags 指示缓存数据内存中包含哪些数据
- 有效性位
- 特权位
- 肮脏的部分
- 数据存储器,包含缓存数据
ICACHE 和 DCACHE 功能
双大师
ICACHE 通过以下方式访问 AHB 总线矩阵:
- 一个AHB主端口:master1(快速总线)
- 两个 AHB 主端口:master1(快速总线)和 master2(慢速总线)
此功能允许在访问不同内存区域(例如内部闪存、内部 SRAM 和外部内存)时对流量进行解耦,以减少因缓存未命中而导致的 CPU 停顿。下表总结了内存区域及其地址。
表 2. 内存区域及其地址
外围设备 | 可缓存内存访问 | 不可缓存的内存访问 | |||||||
类型 |
姓名 |
产品名称及区域大小 |
巴士名称 |
非安全区域起始地址 |
安全、非安全可调用区域起始地址 |
巴士名称 |
非安全区域起始地址 |
安全、非安全可调用区域起始地址 | |
内部的 |
闪光 |
STM32H503 | 128 千字节 |
缓存 快速巴士 |
0x0800 0000 |
不适用 |
不适用 |
不适用 |
不适用 |
STM32L5
系列/ STM32U535/ 545/ STM32H523/ 533 |
512 千字节 |
0x0C00 0000 |
|||||||
STM32U575/585
STM32H563/573/562 |
2 兆字节 |
||||||||
STM32U59x/
5Ax/5Fx/5Gx |
4 兆字节 | ||||||||
静态随机存储器1 |
STM32H503 | 16 千字节 |
0x0A00 0000 |
不适用 |
S总线 |
0x2000 0000 |
0x3000 0000 |
||
STM32L5
series/ STM32U535/ 545/575/585 |
192 千字节 |
0x0E00 0000 |
|||||||
STM32H523/533 | 128 千字节 | ||||||||
STM32H563/573/562 | 256 千字节 | ||||||||
STM32U59x/
5Ax/5Fx/5Gx |
768 千字节 | ||||||||
静态随机存储器2 |
STM32H503
系列 |
16 千字节 | 0x0A00 4000 | 不适用 | 0x2000 4000 | 不适用 | |||
STM32L5
series/ STM32U535/ 545/575/585 |
64 千字节 |
0x0A03 0000 |
0x0E03 0000 |
0x2003 0000 |
0x3003 0000 |
||||
STM32H523/533 | 64 千字节 |
0x0A04 0000 |
0x0E04 0000 |
0x2004 0000 |
0x3004 0000 |
外围设备 | 可缓存内存访问 | 不可缓存的内存访问 | |||||||
内部的 |
静态随机存储器2 |
STM32H563/573/562 | 80 千字节 |
缓存 快速巴士 |
0x0A04 0000 | 0x0E04 0000 |
S总线 |
0x2004 0000 | 0x3004 0000 |
STM32U59x/
5Ax/5Fx/5Gx |
64 千字节 | 0x0A0C 0000 | 0x0E0C 0000 | 0x200C 0000 | 0x300C 0000 | ||||
静态随机存储器3 |
STM32U575/585 | 512 千字节 | 0x0A04 0000 | 0x0E04 0000 | 0x2004 0000 | 0x3004 0000 | |||
STM32H523/533 | 64 千字节 |
0x0A05 0000 |
0x0E05 0000 |
0x2005 0000 |
0x3005 0000 |
||||
STM32H563/573/562 | 320 千字节 | ||||||||
STM32U59x/
5Ax/5Fx/5Gx |
832 千字节 | 0x0A0D 0000 | 0x0E0D 0000 | 0x200D 0000 | 0x300D 0000 | ||||
静态随机存储器5 | STM32U59x/
5Ax/5Fx/5Gx |
832 千字节 | 0x0A1A 0000 | 0x0E1A 0000 | 0x201A 0000 | 0x301A 0000 | |||
静态随机存储器6 | STM32U5Fx/
5Gx |
512 千字节 | 0x0A27 0000 | 0x0E27 0000 | 0x2027 0000 |
不适用 |
|||
外部的 |
HSPI1 | STM32U59x/
5Ax/5Fx/5Gx |
256 兆字节 |
缓存 慢巴士 |
别名地址范围为 [0x0000 0000 到 0x07FF FFFF] 或 [0x1000 0000:0x1FFF FFFF]通过重映射特征定义 |
不适用 |
0xA000 0000 | ||
FMC内存 | STM32H563/573/562 | 0xC000 0000 | |||||||
奥克托SPI1 银行无担保 |
STM32L5/U5
系列 STM32H563/573/562 |
0x9000 0000 |
|||||||
FMC银行3 不安全的 |
STM32L5/U5
系列 STM32H563/573/562 |
0x8000 0000 |
|||||||
奥克托SPI2
银行无担保 |
STM32U575/
585/59x/5轴/ 5Fx/5Gx |
0x7000 0000 |
|||||||
FMC银行1 不安全的 |
STM32L5/U5
系列 STM32H563/573/562 |
0x6000 0000 |
1. 重新映射此类区域时选择。
1 路 ICACHE 与 2 路 ICACHE
默认情况下,ICACHE 配置为关联操作模式(启用两种方式),但对于需要极低功耗的应用,也可以将 ICACHE 配置为直接映射模式(启用单向)。 ICACHE 配置是通过 ICACHE_CR 中的 WAYSEL 位完成的,如下所示:
- WAYSEL = 0:直接映射操作模式(1 路)
- WAYSEL = 1(默认):关联操作模式(2 路)
表 3. 1 路 ICACHE 与 2 路 ICACHE
范围 | 1路ICACHE | 2路ICACHE |
缓存大小(千字节) | 8(1)/32(2) | |
缓存的方式有多种 | 1 | 2 |
缓存行大小 | 128 位(16 字节) | |
缓存行数 | 512(1)/2048(2) | 每路 256(1)/1024(2) |
- 适用于STM32L5系列/STM32H5系列/STM32U535/545/575/585
- For STM32U59x/5Ax/5Fx/5Gx
连发型
一些 Octo-SPI 存储器支持 WRAP 突发,这提供了关键字优先特性性能的优势。重新映射区域的 AHB 内存事务的 ICACHE 突发类型是可配置的。它实现增量突发或 WRAP 突发,通过 ICACHE_CRRx 寄存器中的 HBURST 位进行选择。 WRAP 和增量突发之间的差异如下所示(另请参见图):
- WRAP 突发:
- 高速缓存行大小 = 128 位
- 突发起始地址 = CPU 请求的第一个数据的字地址
- 增量突发:
- 高速缓存行大小 = 128 位
- 突发起始地址 = 在包含请求字的高速缓存行边界上对齐的地址
图 7. 增量与 WRAP 突发
可缓存区域和重新映射功能
ICACHE 通过 C-AHB 总线连接到 Cortex-M33,并缓存地址 [0x0000 0000 到 0x1FFF FFFF] 的代码区域。由于外部存储器映射到 [0x6000 0000 到 0xAFFF FFFF] 范围内的地址,因此 ICACHE 支持重映射功能,允许将任何外部存储器区域重新映射到 [0x0000 0000 到 0x07FF FFFF] 范围内的地址或[0x1000 0000 至 0x1FFF FFFF],并可通过 C-AHB 总线进行访问。使用此功能最多可以重新映射四个外部存储区域。一旦区域被重新映射,即使 ICACHE 被禁用或者事务不可缓存,也会发生重新映射操作。用户可以在内存保护单元 (MPU) 中定义和编程可缓存内存区域。下表总结了 STM32L5 和 STM32U5 系列存储器的配置。
表 4. STM32L5 和 STM32U5 系列存储器的配置
产品内存 |
可缓存
(MPU编程) |
在 ICACHE 中重新映射
(ICACHE_CRRx编程) |
闪存 | 是还是不是 |
不要求 |
静态存储器 | 不推荐 | |
外部存储器(HSPI/OCTOSPI 或 FSMC) | 是还是不是 | 如果用户希望在 C-AHB 总线上获取外部代码(否则在 S-AHB 总线上),则需要此选项 |
ICACHE 外部存储器重新映射的好处
前任amp下图中的文件显示了在访问外部 8 MB 外部 Octo-SPI 存储器(例如外部闪存或 RAM)时,如何在代码执行或数据读取期间受益于 ICACHE 增强性能。
图 8. Octo-SPI 内存重映射 example
需要执行以下步骤来重新映射该外部存储器:
外部存储器的 OCTOSPI 配置
配置 OCTOSPI 接口,以便在内存映射模式下访问外部存储器(外部存储器被视为映射在 [0x9000 0000 至 0x9FFF FFFF] 区域的内部存储器)。由于外部存储器大小为 8 MB,因此可以在 [0x9000 0000 至 0x907F FFFF] 区域看到。该区域的外部存储器通过 S 总线访问,并且不可缓存。下一步显示 ICACHE 配置以重新映射该区域。
笔记: 有关存储器映射模式下的 OCTOSPI 配置,请参阅应用笔记 STM32 微控制器上的 Octo- SPI 接口 (AN5050
ICACHE 配置以重新映射外部内存映射区域
放置在 [8x0 9000 到 0000x0F FFFF] 区域中的 907 MB 被重新映射到 [0x1000 0000 到 0x107F FFFF] 区域。然后可以通过慢速总线(ICACHE master2 总线)访问它们。
- ICACHE_CR寄存器配置
- EN = 0 时禁用 ICACHE。
- 分别使用 WAYSEL = 1 或 2 选择 0 路或 1 路(取决于应用需求)。
- ICACHE_CRRx 寄存器配置(最多四个区域,x = 0 到 3)
- 选择 0x1000 0000 基地址(重映射地址),BASEADDR [28:21] = 0x80。
- 使用 RSIZE[8:2] = 0x0 选择要重新映射的 3 MB 区域大小。
- 选择 0x9000 0000 重映射地址 REMAPADDR[31:21] = 0x480。
- 通过 MSTSEL = 2 选择外部存储器的 ICACHE AHB master1 端口。
- 选择 HBURST = 0 的 WRAP 突发类型。
- 使用 REN = 1 启用区域 x 的重新映射。
下图显示了启用重映射后如何使用 IAR 查看内存区域。
图 9。内存区域重新映射前ample
8 MB 外部存储器现已重新映射,并且可以通过 [0x1000 0000 至 0x107F FFFF] 区域进行访问。
启用ICACHE
- ICACHE_CR 寄存器配置 通过 EN = 1 启用 ICACHE。
命中和错过监视器
ICACHE 提供了两个用于性能分析的监视器:一个 32 位命中监视器和一个 16 位未命中监视器。
- 命中监视器对命中 ICACHE 内容(已在缓存中获取的数据)的从属缓存端口上的可缓存 AHB 事务进行计数。命中监视器计数器在 ICACHE_HMONR 寄存器中可用。
- 未命中监视器对从属高速缓存端口上未命中 ICACHE 内容(所获取的数据在高速缓存中尚不可用)的可高速缓存 AHB 事务进行计数。丢失的监视器计数器可在 ICACHE_MMONR 寄存器中找到。
笔记:
这两个监视器在达到最大值时不会覆盖。这些监视器通过 ICACHE_CR 寄存器中的以下位进行管理:
- HITMEN 位(分别为 MISSMEN 位)启用/停止命中(分别为未命中)监视器
- HITMRST 位(分别为 MISSMRST 位)用于重置命中(分别为未命中)监视器 默认情况下,这些监视器被禁用以降低功耗。
高速缓存维护
软件可以通过设置 ICACHE_CR 寄存器中的 CACHEINV 位来使 ICACHE 无效。此操作会使整个缓存失效,使其变空。同时,如果启用了某些重映射区域,则即使禁用 ICACHE,重映射功能仍然处于活动状态。由于ICACHE只管理读事务,不管理写事务,因此它不能确保写入情况下的一致性。因此,软件必须在对区域进行编程后使 ICACHE 无效。
ICACHE安全性
ICACHE 是一种安全外设,可通过 GTZC TZSC 安全配置寄存器配置为安全。当配置为安全时,仅允许对 ICACHE 寄存器进行安全访问。 ICACHE 还可以通过 GTZC TZSC 特权配置寄存器配置为特权。当 ICACHE 配置为特权时,仅允许对 ICACHE 寄存器进行特权访问。默认情况下,ICACHE 是不安全的,并且通过 GTZC TZSC 没有特权。
事件和中断管理
ICACHE 通过在 ICACHE_SR 中设置 ERRF 标志来管理检测到的功能错误。如果 ICACHE_IER 中的 ERRIE 位被置位,也可以生成中断。在 ICACHE 失效的情况下,当缓存繁忙状态完成时,在 ICACHE_SR 中设置 BSYENDF 标志。如果 ICACHE_IER 中的 BSYENDIE 位被置位,也可以生成中断。下表列出了 ICACHE 中断和事件标志。
表 5. ICACHE 中断和事件管理位
登记 | 位名称 | 位描述 | 位存取类型 |
ICACHE_SR |
BUSY | 缓存执行完全无效操作 |
只读 |
BSYENDF | 缓存失效操作完成 | ||
错误 | 缓存操作期间发生错误 | ||
ICACHE_IER |
埃里 | 启用缓存错误中断 |
读/写 |
森迪 | 无效操作完成时启用中断 | ||
ICACHE_FCR |
欧洲研究基金 | 清除 ICACHE_SR 中的 ERRF |
只写 |
CBSYENDF | 清除 ICACHE_SR 中的 BSYENDF |
DCACHE特性
数据高速缓存的目的是高速缓存来自处理器或另一个总线主控外设的外部存储器数据加载和数据存储。 DCACHE 管理读取和写入事务。
DCACHE 可缓存流量
DCACHE 通过 AHB 总线缓存来自主端口接口的外部存储器。传入的内存请求根据其 AHB 事务内存锁定属性定义为可缓存。 DCACHE的写策略根据MPU配置的内存属性定义为直写式或回写式。当区域配置为不可缓存时,DCACHE 将被绕过。
表 6. AHB 事务的 DCACHE 缓存能力
AHB 查找属性 | AHB 可缓冲属性 | 可缓存性 |
0 | X | 读写:不可缓存 |
1 |
0 |
读取:可缓存
写入:(可缓存)直写 |
1 |
1 |
读取:可缓存
写入:(可缓存)回写 |
DCACHE 可缓存区域
对于STM32U5系列,DCACHE1从接口通过S-AHB总线连接到Cortex-M33,并缓存GFXMMU、FMC和HSPI/OCTOSPI。 DCACHE2从机接口通过M2端口总线连接到DMA0D,并缓存所有内部和外部存储器(SRAM4和BRKPSRAM除外)。对于STM32H5系列,DCACHE从接口通过FMC和OCTOSPI通过S-AHB外部存储器连接到Cortex-M33。
表 7. DCACHE 可缓存区域和接口
可缓存内存地址区域 | DCACHE1 可缓存接口 | DCACHE2 可缓存接口 |
GFXMMU | X | X |
静态随机存储器1 |
不适用 |
X |
静态随机存储器2 | X | |
静态随机存储器3 | X | |
静态随机存储器5 | X | |
静态随机存储器6 | X | |
HSPI1 | X | X |
奥克托SPI1 | X | X |
FMC 银行 | X | X |
奥克托SPI2 | X | X |
笔记
某些产品不支持某些接口。请参阅图1或具体产品参考手册。
连发型
与 ICACHE 相同,DCACHE 支持增量突发和包裹突发(参见第 3.1.3 节)。对于 DCACHE,突发类型通过 DCACHE_CR 中的 HBURST 位进行配置。
DCACHE配置
在启动期间,默认情况下禁用 DCACHE,从而使从内存请求直接转发到主端口。要启用 DCACHE,必须在 DCACHE_CR 寄存器中设置 EN 位。命中和未命中监视器 DCACHE 实现了四个用于缓存性能分析的监视器:
- 两个 32 位 (R/W) 命中监视器:计算 CPU 在高速缓存中读取或写入数据而不在 DCACHE 主端口上生成事务(高速缓存中已提供的数据)的次数。 (读/写)命中监视器计数器分别在 DCACHE_RHMONR 和 DCACHE_WHMONR 寄存器中可用。
- 两个 16 位 (R/W) 未命中监视器:计算 CPU 在高速缓存中读取或写入数据的次数,并在 DCACHE 主端口上生成事务,以便从内存区域加载数据(获取的数据不是已经在缓存中可用)。 (读/写)未命中监视器计数器分别在 DCACHE_RMMONR 和 DCACHE_WMMONR 寄存器中可用。
笔记:
这四个监视器在达到最大值时不会覆盖。这些监视器通过 DCACHE_CR 寄存器中的以下位进行管理:
- WHITMAN 位(分别为 WMISSMEN 位)启用/停止写命中(分别为未命中)监视器
- RHITMEN 位(分别为 RMISSMEN 位)启用/停止读命中(分别为未命中)监视器
- WHITMRST 位(分别为 WMISSMRST 位)复位写命中(分别为未命中)监视器
- RHITMRST 位(分别为 RMISSMRST 位)用于复位读命中(分别为未命中)监视器
默认情况下,这些监视器被禁用以降低功耗。
DCACHE维护
DCACHE 提供多种维护操作,可以通过 DCACHE_CR 中的 CACHECMD[2:0] 配置。
- 000:无操作(默认)
- 001:清洁范围。清理缓存中的一定范围
- 010:无效范围。使缓存中的某个范围失效
- 010:清理并使范围无效。清理和失效缓存中的某个范围
所选范围通过以下方式配置:
- CMDSTARTADDR寄存器:命令起始地址
- CMDENDADDR寄存器:命令结束地址
笔记:
该寄存器必须在写入 CACHECMD 之前设置。当 DCACHE_CR 寄存器中的 STARTCMD 位被置位时,缓存命令维护开始。 DCACHE 还通过设置 DCACHE_CR 寄存器中的 CACHEINV 位来支持完全 CACHE 失效。
DCACHE安全性
DCACHE 是一种安全外设,可通过 GTZC TZSC 安全配置寄存器将其配置为安全。当配置为安全时,仅允许对 DCACHE 寄存器进行安全访问。 DCACHE 还可以通过 GTZC TZSC 特权配置寄存器配置为特权。当 DCACHE 配置为特权时,仅允许对 DCACHE 寄存器进行特权访问。默认情况下,DCACHE 是不安全的,并且通过 GTZC TZSC 没有特权。
事件和中断管理
DCACHE 通过在 DCACHE_SR 中设置 ERRF 标志来管理检测到的功能错误。如果 DCACHE_IER 中的 ERRIE 位被置位,也可以生成中断。在 DCACHE 失效的情况下,当高速缓存繁忙状态完成时,在 DCACHE_SR 中设置 BSYENDF 标志。如果 DCACHE_IER 中的 BSYENDIE 位被置位,也可以生成中断。 DCACHE 命令状态可以通过 DCACHE_SR 通过 CMDENF 和 BUSYCMDF 检查。如果在 DCACHE_IER 中设置了 CMDENDIE 位,也可以生成中断。下表列出了 DCACHE 中断和事件标志
表 8. DCACHE 中断和事件管理位
登记 | 登记 | 位描述 | 位存取类型 |
DCACHE_SR |
BUSY | 缓存执行完全无效操作 |
只读 |
BSYENDF | 缓存完全无效操作结束 | ||
忙CMDF | 缓存执行范围命令 | ||
CMDENDF | 范围命令结束 | ||
ERRF | 缓存操作期间发生错误 | ||
DCACHE_IER |
埃里 | 启用缓存错误中断 |
读/写 |
指挥丹迪 | 在范围命令结束时启用中断 | ||
森迪 | 完全无效操作结束时启用中断 | ||
DCACHE_FCR |
欧洲研究基金 | 清除 DCACHE_SR 中的 ERRF |
只写 |
CMDENDF | 清除 DCACHE_SR 中的 CMDENDF | ||
CBSYENDF | 清除 DCACHE_SR 中的 BSYENDF |
ICACHE 和 DCACHE 性能和功耗
使用 ICACHE 和 DCACHE 可以提高访问外部存储器时的应用程序性能。下表显示了访问外部存储器时 ICACHE 和 DCACHE 对 CoreMark® 执行的影响。
表 9. 使用外部存储器执行 CoreMark 时的 ICACHE 和 DCACHE 性能
(1) | ||||
核心标记代码 | 核心标记数据 | ICACHE配置 | DCACHE配置 | CoreMark 分数/Mhz |
内部闪存 | 内部静态存储器 | 已启用(2 种方式) | 已禁用 | 3.89 |
内部闪存 | 外部 Octo-SPI PSRAM(S 总线) | 已启用(2 种方式) | 已启用 | 3.89 |
内部闪存 | 外部 Octo-SPI PSRAM(S 总线) | 已启用(2 种方式) | 已禁用 | 0.48 |
外部 Octo-SPI 闪存(C 总线) | 内部静态存储器 | 已启用(2 种方式) | 已禁用 | 3.86 |
外部 Octo-SPI 闪存(C 总线) | 内部静态存储器 | 已禁用 | 已禁用 | 0.24 |
内部闪存 | 内部静态存储器 | 已禁用 | 已禁用 | 2.69 |
测试条件:
- 适用产品:STM32U575/585
- 系统频率:160 MHz。
- 外部 Octo-SPI PSRAM 存储器:80 MHz(DTR 模式)。
- 外部 Octo-SPI 闪存:80 MHz(STR 模式)。
- 编译器:IAR V8.50.4。
- 内部闪存预取:开。
使用 ICACHE 和 DCACHE 可降低访问内部和外部存储器时的功耗。下表显示了CoreMark执行期间ICACHE对功耗的影响。
表 10. CoreMark 执行 ICACHE 对功耗的影响
ICACHE配置 | MCU功耗(mA) |
已启用(2 种方式) | 7.60 |
已启用(1 路) | 7.13 |
已禁用 | 8.89 |
- 测试条件:
- 适用产品:STM32U575/585
- CoreMark 代码:内部闪存。
- CoreMark 数据:内部 SRAM。
- 内部闪存预取:开。
- 系统频率:160 MHz。
- 编译器:IAR V8.32.2。
- 卷tage 范围:1。
- 开关电源:打开。
- 对于无法完全加载到缓存中的代码,方式集关联配置比 1 路集关联配置性能更高。同时,1 路组关联高速缓存几乎总是比 2 路组关联高速缓存更节能。每个代码都必须在两种关联性配置中进行评估,以便在性能和功耗之间选择最佳权衡。该选择取决于用户优先级。
结论
意法半导体开发的首款高速缓存 ICACHE 和 DCACHE 能够高速缓存内部和外部存储器,从而增强数据流量和指令读取的性能。本文档展示了 ICACHE 和 DCACHE 支持的不同功能,其配置简单且灵活,可降低开发成本并缩短上市时间。
修订历史
表 11. 文档修订历史
日期 | 版本 | 更改 |
10 年 2019 月 XNUMX 日 | 1 | 初始版本。 |
27 年 2020 月 XNUMX 日 |
2 |
更新:
• 表2. 内存区域及其地址 • 第 2.1.7 节 ICACHE 维护 • 第 2.1.8 节 ICACHE 安全 |
7 年 2021 月 XNUMX 日 |
3 |
更新:
• 文件名 • 介绍 • 第 1 节 ICACHE 和 DCACHEview • 添加第 4 节结论: • 第 2 节 ICACHE 和 DCACHE 功能 • 第 3 节 ICACHE 和 DCACHE 性能和功耗 |
15 年 2023 月 XNUMX 日 |
4 |
更新:
• 第 3.1.2 节:1 路 ICACHE 与 2 路 ICACHE |
11 年 2024 月 XNUMX 日 |
5 |
更新: |
重要通知——请仔细阅读
STMicroElectronics NV 及其子公司(“ST”)保留随时对 ST 产品和/或本文档进行更改、更正、增强、修改和改进的权利,恕不另行通知。采购商在下单前应获取ST产品的最新相关信息。 ST 产品按照订单确认时的 ST 销售条款和条件进行销售。购买者对 ST 产品的选择、选择和使用负全部责任,ST 对购买者产品的应用协助或设计不承担任何责任。 ST 在此未授予任何知识产权明示或暗示的许可。转售条款与此处所列信息不同的 ST 产品将使 ST 对该产品授予的任何保修失效。 ST 和 ST 徽标是 ST 的商标。有关 ST 商标的更多信息,请访问 www.st.com/trademarks。所有其他产品或服务名称均为其各自所有者的财产。本文档中的信息取代并替换本文档任何先前版本中先前提供的信息。 © 2024 意法半导体 – 保留所有权利
文件/资源
![]() |
意法半导体 STM32H5 系列微控制器 [pdf] 用户手册 STM32H5 系列微控制器、STM32H5 系列微控制器、微控制器 |