你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【中文文档】AN4667_STM32F7系列的系统架构和性能

[复制链接]
eefishing 发布时间:2019-5-28 13:00
本帖最后由 eefishing 于 2019-5-28 13:02 编辑
" Y" z9 q8 y+ f- l) E: ?5 p9 v. j  j! l, J
前言
0 Z# j! W7 W6 b6 ?% t* F  WSTM32F7系列器件是首款基于ARM®Cortex®-M7的32位微控制器。利用ST的ART加速器™和L1缓存的优势,STM32F7系列器件实现了Cortex®-M7的最大理论性能。
! k# @: c/ Q( H基准测试分数稳步达到了1082 CoreMark和462 DMIPS,无论代码是通过嵌入式Flash存储器 执行,还是通过内部RAM或者外部存储器(SRAM、SDRAM或者Quad SPI Flash存储器) 执行。2 a3 c; @+ f# `( O2 [
STM32F7系列器件的高性能源自:
! f- u" k/ J; A* @, Y/ M) `• 强力的超标量流水线和DSP性能提供了一个具有低中断时延的快速实时响应9 w; o  o* h5 r$ p9 A( |, \
• 对大容量外部存储的高效访问
8 J  A0 X0 Q9 |! {) y• 适合复杂计算的高性能浮点运算能力
) W" P# c6 a% t/ r6 U7 f* }, F本应用笔记呈现了STM32F7的全面架构以及存储接口和特性,它们提供了更高的灵活度以实 现最佳的性能以及额外的代码和数据大小。它还提供了有助于提高系统性能和卸载CPU的多 主机架构。
% J0 b" y$ L' S本应用笔记同样提供了STM32F7系列器件在多种存储分区配置下(不同代码和数据位置)的 架构性能以及使能DMA的架构性能的软件演示。
, q/ x5 w6 v& T$ t6 }& W) p1 Y本应用笔记随附X-CUBE-32F7PERF嵌入式软件包,其中包括两个项目:
- U# p7 U: G2 Z$ c• Stm32f7_performances项目的目的是演示STM32F7架构在不同配置下的性能,即使用ART accelerator™和高速缓存时代码的执行和数据在不同存储空间中的存储。3 b0 y7 M: T3 ]
• Stm32f7_performances_DMAs目的是演示多主机配置下的架构性能
) g" p5 y- c+ }+ n9 s& i: d: d. f" R' x3 W
每个项目都是采用以下可用板子完成:STM32756G-EVAL,STM32F769I-EVAL和STM32F723EDISCO板。7 O" N& z) `! c8 @
, A5 ]7 q! \/ @. s+ J6 h" ~
1 STM32F7系列的系统架构概览
9 `! x& m; e8 e4 E0 V% |- ^1.1 Cortex®-M7内核6 o' o$ \* e% c/ m
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个周 期。双指令的特征是允许内核同时执行两条指令,并且与指令的顺序无关,由此来增加指令吞吐率。
4 f  ]% B- r5 p6 m 1 n' m7 a! |3 H- v- M  F! x/ V: f
1.2 Cortex®-M7系统缓存
7 s( E9 x) p% ]6 l8 M# A+ V 这些器件嵌入了Cortex®-M7,具有1级缓存(L1-cache),该缓存可分为两个独立的高速缓存:数据缓存(D-cache)和指令缓存 (I-cache),支持Harvard架构,可实现最佳性能。这些缓存使得即使在高频率下也可以达 到零等待状态。
5 f5 \- [) z& c+ e# D) r/ w 默认情况下,指令和数据缓存是禁用的。ARM CMSIS库提供了两个使能数据和指令缓存的函数:
% S. a6 V6 _2 c& s1 ~* K/ q: D• SCB_EnableICache()用于使能指令缓存2 U) F, U0 K! E9 @# B" A
• SCB_EnableDCache()用于使能数据缓存: I+ U* Q" ]1 Q. s5 ~
更多关于怎样使能和停用缓存的信息,请参考“ARMv7-M架构参考手册”。$ ]+ v4 |3 p3 }
有关STM32F7系列上L1-cache使用的更多详细信息,还请参考STM32F7系列产品上的1级 缓存应用笔记(AN4839)。4 Q* T) n& j2 t4 z4 ^8 H7 u
表 1总结了STM32F7系列中每个器件的缓存空间大小。4 r* i; i! U- S5 K1 e' m
表1. STM32F7系列器件缓存空间大小1 x+ {* V) j/ e) x$ [" u
2.png

" P! d; D/ k7 r7 [$ c2 j
6 z' T( B# A* Y" ]1 A
...........
0 P% q2 n" g& L$ A0 |: h. `
想了解更多,请下载原文阅读
收藏 1 评论1 发布时间:2019-5-28 13:00

举报

1个回答
Kevin_G 回答时间:2019-5-28 17:20:05
收藏
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版