
本帖最后由 eefishing 于 2019-5-28 13:02 编辑 前言 STM32F7系列器件是首款基于ARM®Cortex®-M7的32位微控制器。利用ST的ART加速器™和L1缓存的优势,STM32F7系列器件实现了Cortex®-M7的最大理论性能。 基准测试分数稳步达到了1082 CoreMark和462 DMIPS,无论代码是通过嵌入式Flash存储器 执行,还是通过内部RAM或者外部存储器(SRAM、SDRAM或者Quad SPI Flash存储器) 执行。 STM32F7系列器件的高性能源自: • 强力的超标量流水线和DSP性能提供了一个具有低中断时延的快速实时响应 • 对大容量外部存储的高效访问 • 适合复杂计算的高性能浮点运算能力 本应用笔记呈现了STM32F7的全面架构以及存储接口和特性,它们提供了更高的灵活度以实 现最佳的性能以及额外的代码和数据大小。它还提供了有助于提高系统性能和卸载CPU的多 主机架构。 本应用笔记同样提供了STM32F7系列器件在多种存储分区配置下(不同代码和数据位置)的 架构性能以及使能DMA的架构性能的软件演示。 本应用笔记随附X-CUBE-32F7PERF嵌入式软件包,其中包括两个项目: • Stm32f7_performances项目的目的是演示STM32F7架构在不同配置下的性能,即使用ART accelerator™和高速缓存时代码的执行和数据在不同存储空间中的存储。 • Stm32f7_performances_DMAs目的是演示多主机配置下的架构性能 每个项目都是采用以下可用板子完成:STM32756G-EVAL,STM32F769I-EVAL和STM32F723EDISCO板。 1 STM32F7系列的系统架构概览 1.1 Cortex®-M7内核 STM32F7系列器件基于高性能的ARM®Cortex®-M7 32位RISC内核,工作频率高达216 MHz。Cortex®-M7内核具有高性能浮点单元(FPU)。该内核可实现单精度浮点单元或双精度浮点 单元(取决于STM32F7系列器件),支持所有ARM®单精度和双精度数据处理指令和数据类型。它还具有一组DSP指令和提高应用安全性的一个存储器保护单元(MPU)。Cortex®-M4到Cortex®-M7的向前兼容性允许为Cortex®-M4编译的二进制数直接在®-M7上运行。Cortex®-M7的特性是具有分支预测和双指令执行的6/7-级超标量流水线。分支预测允许分 支解析以预测下一个分支,因此将环路消耗的周期数从每个环路4和3个周期减少为1个周 期。双指令的特征是允许内核同时执行两条指令,并且与指令的顺序无关,由此来增加指令吞吐率。 1.2 Cortex®-M7系统缓存 这些器件嵌入了Cortex®-M7,具有1级缓存(L1-cache),该缓存可分为两个独立的高速缓存:数据缓存(D-cache)和指令缓存 (I-cache),支持Harvard架构,可实现最佳性能。这些缓存使得即使在高频率下也可以达 到零等待状态。 默认情况下,指令和数据缓存是禁用的。ARM CMSIS库提供了两个使能数据和指令缓存的函数: • SCB_EnableICache()用于使能指令缓存 • SCB_EnableDCache()用于使能数据缓存 更多关于怎样使能和停用缓存的信息,请参考“ARMv7-M架构参考手册”。 有关STM32F7系列上L1-cache使用的更多详细信息,还请参考STM32F7系列产品上的1级 缓存应用笔记(AN4839)。 表 1总结了STM32F7系列中每个器件的缓存空间大小。 表1. STM32F7系列器件缓存空间大小 ![]() ........... 想了解更多,请下载原文阅读 |
收藏 |