首先来看看ARM官网的M7和M4架构对比:
可见M7核比M4核主要多了指令和数据缓存功能以及新的总线矩阵,带来的性能提升却是十分明显的,看下图:
STM32F7 系列器件是首款基于 ARM
® Cortex
®-M7 的 32 位微控制器。利用 ST 的 ART 加速器
™ 和 L1 缓存的优势,STM32F7 系列器件实现了 Cortex
®-M7 的最大理论性能。基准测试分数稳步达到了 1082 CoreMark 和 462 DMIPS,无论代码是通过嵌入式 Flash 存储器执行,还是通过内部 RAM 或者外部存储器 ( SRAM、 SDRAM 或者 Quad SPI Flash 存
储器 ) 执行。STM32F7 系列器件的高性能源自:
• 强力的超标量流水线和 DSP 性能提供了一个具有低中断时延的快速实时响应
• 对大容量外部存储的高效访问
• 适合复杂计算的高性能浮点运算能力
Cortex®-M7 内核
STM32F7
系列器件基于高性能的 ARM
® Cortex
®-M7 32
位 RISC
内核,工作频率高达 216MHz
。 Cortex
®-M7
内核带有高性能单 /
双精度浮点运算单元 (ARM)
,支持单 /
双精度数据处理指令和数据类型。它还具有一整套 DSP
指令和提高应用安全性的一个存储器保护单元(MPU)
。 Cortex
®-M4
到 Cortex
®-M7
的向上兼容性允许为 Cortex
®-M4
编译的二进制数直接在 ®-M7
上运行。Cortex
®-M7
的特性是具有分支预测和双指令执行的 6/7-
级超标量流水线。分支预测允许分支解析以预测下一个分支,因此将循环消耗的周期数从每个循环 4~3
个周期减少为 1
个周期。双指令的特征是允许内核同时执行两条指令,并且与指令的顺序无关,由此来增加指令吞吐率。
Cortex®-M7 系统缓存
STM32F7
集成了 Cortex
®-M7
,其特点是具有 1
级缓存 ( L1-
缓存),该缓存分为两个缓存:数据缓存 ( D-
缓存)和指令缓存 ( I-
缓存),这样可以实现具有最佳性能的哈佛架构。这些缓存使得即使在高频率下也可以达到零等待状态。默认情况下,指令和数据缓存是禁用的。ARM CMSIS
库提供了两个使能数据和指令缓存的函数:
• SCB_EnableICache()
用于使能指令缓存
• SCB_EnableDCache()
用于使能数据缓存
Cortex®-M7 总线接口
Cortex
®-M7
具有五个接口: AXIM
、 ITCM
、 DTCM
、 AHBS
和 AHBP
。
AXI 总线接口
AXI
作为高级可扩展接口。 Cortex
®-M7
实现了 AXIM AMBA4
,它是一个 64
位宽的接口,用以获得更大取指和数据加载带宽。如果缓存使能,任何不是对 TCM
或者 AHBP
接口的访问由适当的缓存控制器处理。用户需要考虑到并非所有的存储区域都可以缓存,这取决于它们的类型。具有共享存储、器件或者强秩序类型的存储区域无法缓存。只有典型的非共享存储器才可以缓存 。
TCM 总线接口
作为紧密耦合的 TCM
存储器用来提供内核到内部 RAM
存储器的连接。 TCM
接口具有哈佛架构,因此这里有一个 ITCM
(指令 TCM
)和 DTCM
(数据 TCM
)接口。 ITCM
是一个 64
位的存储接口,而 DTCM
分为两个 32
位端口: D0TCM
和 D1TCM
。
AHBS 总线接口
Cortex
®-M7 AHBS
( AHB
从设备)是一个 32
位宽接口,可以提供系统到 ITCM
、 D1TCM
和 D0TCM
的访问。然而在 STM32F7
架构中, AHBS
只允许与 DTCM-RAM
的数据相互传输。 AHBS
上无法访问 ITCM
总线,因此不支持 DMA
与 ITCM RAM
之间的数据传输。对于 DMA
与 ITCM
接口上的 -Flash
存储之间的数据传输,所有的传输被强制通过AHB
总线。 AHBS
接口可以在内核处于睡眠状态时使用,因此 DMA
传输可以在低功耗模式下进行。 AHBP 总线接口
AHBP
接口 ( AHB
外设)是一个单独的 32
位宽的接口,专门用于 CPU
和外设的连接。它只用于数据访问。取指令从不在该接口上进行。在 STM32F7
架构中,这条总线连接Cortex-M7
内核的 AHBP
外设总线到 AHB
总线矩阵。该总线连接到 AHB1
、 AHB2
、 APB1
和 APB2
外设。
关于M7内核的详细介绍参考:
点击此处,查看STM32F769I开发板官方资源。