微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 为什么说Cortex-M是低功耗应用的首选

为什么说Cortex-M是低功耗应用的首选

时间:06-28 来源:新电子 点击:

通道在一些案例中支援更快的资料处理(像是单周期MAC,能在一个周期内将资料写回两个暂存器)。

Cortex-M7处理器的指令集支援类似Cortex-M4,另外还加入:

浮点运算架构方面,以FPv5为基础而不是FPv4 (Cortex-M4所采用),因此额外加入几个浮点运算指令。

选配双精度浮点运算指令。

支援预载资料(PLD)指令,让系统预先载入快取资料。

Cortex-M7的管线和Cortex-M4有极大差异。它拥有一个6阶双发送管线,发挥更高的效能。大多数针对Cortex-M4撰写的软体,都能在Cortex-M7重复使用,不过软体必须重新编译,才能针对管线特性的差异做最好的优化,在一些案例中,软体还需要一些微幅更新,才能利用像是快取在内的新功能。

Cortex-M23处理器的指令集以ARMv8-M基线sub-profile为基础,同时也是ARMv6-M的超集合。额外增加的指令包括硬体除法指令;比较与分支、以及32位元分支指令;TrustZone安全延伸的指令;互斥存取指令(通常用在旗标作业);16位元立即生成资料指令;Load acquire与store release指令(配合C11版C语言标准支援)。

在某些情况,这些指令集的加强有助于提升效能。另外,对于内含多个处理器的SoC设计也有助益(像是互斥存取在跨处理器的旗标传递相当有用)。

由于Cortex-M33的设计有极高的设定弹性,其中一些指令也属于选配,例如像是:

DSP指令(包括Cortex-M4与Cortex-M7处理器都有支援)都属于选配。

单精度浮点运算的支援能力属于选配。这项支援以FPv5为基础,比Cortex-M4浮点运算支援能力多了几项指令。

此外,Cortex-M33还支援ARMv8-M主线sub-profile,其中包括:

TrustZone安全延伸的指令。

Load Acquire与Store Release 指令(配合C11版C语言标准的支援能力)。

ISA功能比较总结

ARMv6-M、ARMv7-M、以及ARMv8-M架构具有为数众多的ISA特色,很难逐一详细介绍,所以在表3汇整其中关键的差异。

Cortex-M处理器中ISA其中一项关键特性就是向上相容性。Cortex-M处理器所支援的指令,系为Cortex-M0/M0+/M1的超集合(Superset)。因此,理论上如果记忆体地图相同,Cortex-M0/M0+/M1的二进位映像档就能直接在Cortex-M3上运行。Cortex-M4/M7和其他Cortex-M处理器之间也存在这样的相容性,Cortex-M0/M0+/M1/M3的指令能在Cortex-M4/M7上执行。

虽然Cortex-M0/M0+/M1/M3/M23处理器没有浮点运算单元选项,但可以用软体来执行浮点运算。另外,本身没有浮点运算单元的Cortex-M4/M7/M33也可用软体执行浮点运算。在这些处理器中,当使用程式处理浮点运算资料,编译程式在链结阶段会插入所需的执行阶段函式库函数。使用软体来执行浮点运算,除了运算时间变长,程式码长度也会略为增长。但如果没有频繁执行浮点运算,所开发的应用也适合采用这种类型的处理器。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top