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

发布时间:2017-07-28  

china0513-624x468

来源:内容来自新电子 ,谢谢。

虽然Cortex-M处理器家族目标瞄准效能光谱较低端的区域,但是和大多数微控制器(MCU)采用的其他典型处理器相比,Cortex-M的效能依然算相当强悍。举例来说,像是许多高效能微控制器所采用的Cortex-M4与Cortex-M7处理器,其最高时脉频率就高达400MHz。

当然在选择处理器时效能并非唯一考量的因素。在许多应用中,低功耗与成本是顾客最关切的标准。因此,Cortex-M处理器家族纳入各种类型的产品来因应不同的需求(表1)。

china0513-624x468

Cortex-M和传统ARM处理器(像是ARM7TDMI、ARM9)大相径庭之处,就是大幅改造的架构。举例来说:

  • 仅支援ARM Thumb指令,但在Thumb-2中,已延伸成能支援16位元与32位元指令。

  • 中断处理任务,由名为巢状向量中断控制器(NVIC)的内建中断控制器执行,NVIC提供自动优先排程、中断遮罩与巢状配置、以及系统例外处理。

  • 中断处理程序(Handler)可写成正规的C语言函式以及向量化中断处理机制,不须使用软体去判断该服务哪个中断。而中断的回应则属于决定性,并具有低延迟特性。

  • 中断向量表方面,从分支指令改成中断的起始位址以及系统例外处理程序。

  • 暂存器区块(bank)以及程式开发模式的部分细节亦有所变动。

这些改变意谓许多针对传统ARM处理器撰写的组合语言程式码必须进行修改,而旧的Projects档在移植到Cortex-M时必须进行修改与重新编译。


指令集概述

china0513-624x468

在大多数情况中,软体的程式码多以C或其他高阶语言撰写。不过,如果对Cortex-M处理器所支援的指令集有基本的认识,能帮助判断特定任务须要用到哪一种Cortex-M处理器。指令集架构(ISA)是处理器架构的一部分,Cortex-M处理器能区分成几种架构类型(表2)。

china0513-624x468

所有Cortex-M处理器都支援名为Thumb的指令集。在Thumb-2技术释出后,整个Thumb指令集就变得相当庞大。然而,不同Cortex-M处理器支援Thumb ISA里的指令子集合也不一致,如图1所示。

china0513-624x468

图1 各款Cortex-M处理器支援的指令集

Cortex-M0/M0+/M1处理器以ARMv6-M架构为基础,其指令集很小,只有56个指令,其中大多数为16位元,如图1中较小的椭圆形。不过,处理器中的暂存器以及处理的资料依然为32位元。对于大多数简单的I/O控制作业以及生成资料处理,这样的小指令集就已经足够应付。由于指令集很小,因此仅须用少量的逻辑闸就能建置处理器,像是Cortex-M0与Cortex-M0+处理器仅需1.2万个逻辑闸。不过,这些指令当中有一些不能用有高位暂存器(R8到R12),而且在即时生成资料方面的能力相当有限。这主要是为了在超低功耗处理器设计以及效能之间作折衷。

Cortex-M3处理器是以ARMv7-M架构为基础,并支援大上许多的指令集,当中有许多属于32位元指令,让系统能更有效率地运用高位暂存器。此外,它还支援向量表分支指令与条件执行(使用IT指令)、硬体除法指令、乘加(MAC)运算、可变位元栏位作业。


具更多指令集Cortex-M3效能大提升

china0513-624x468

更多的指令能透过几种方式提升效能。例如像32位元Thumb指令能提供较大范围的立即资料值、分支偏移、以及立即偏移以利资料记忆体的存取。另外,它还对DSP作业提供基本支援(像是几个MAC指令,须用几个时脉周期,另外还有饱和调整指令)。最后,32位元指令允许滚筒移位器和多个资料处理作业在同一个指令中操作。

然而,更大的指令集,代价就是矽元件面积与耗电都增加。在典型微控制器中,Cortex-M3的逻辑闸数量会比Cortex-M0或Cortex-M0+设计的逻辑闸多两倍以上。但由于在多数现代微控制器中处理器,只占一小部分的矽元件空间,因此较大的矽元件空间以及功耗产生的影响也变得微不足道。

Cortex-M4处理器在许多层面相当类似Cortex-M3,包括管线与程式开发模式。它除了支援Cortex-M3的所有功能,还额外支援DSP应用方面的指令,像是SIMD、饱和演算法指令、以及各种能在单周期完成的MAC指令(相对于Cortex-M3的多周期指令以及有限部分),选配的浮点运算单元能支援各种单精度浮点运算。

Cortex-M4的SIMD作业能同时处理两个16位元资料或4个8位元资料。举例来说,图2显示QADD8以及QADD16作业。

china0513-624x468

图2 SIMD指令范例:QADD8与QADD16

在某些DSP作业方面,由于计算能同时执行,因此,SIMD能让系统能更快运算16位元与8位元资料。然而,在一般程式开发方面,C语言编译器不太可能用到SIMD功能。这也导致Cortex-M3与Cortex-M4会产生大家常见的效能量测结果。然后,Cortex-M4的内部资料通道和Cortex-M3并不相同,Cortex-M3的通道在一些案例中支援更快的资料处理(像是单周期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功能比较总结

china0513-624x468

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

china0513-624x468

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也可用软体执行浮点运算。在这些处理器中,当使用程式处理浮点运算资料,编译程式在链结阶段会插入所需的执行阶段函式库函数。使用软体来执行浮点运算,除了运算时间变长,程式码长度也会略为增长。但如果没有频繁执行浮点运算,所开发的应用也适合采用这种类型的处理器。

今天是《半导体行业观察》为您分享的第1348期内容,欢迎关注。

关注微信公众号 半导体行业观察,后台回复关键词获取更多内容

回复 雄心 ,看《苹果的芯片帝国雄心》

回复 张汝京 ,看《中国半导体教父张汝京的“三落三起”》

回复 国产 ,看《国产手机崛起背后的最大受益者》

回复 ASR ,看《ASR收购Marvell MBU背后:一段有关RDA的爱恨情仇》

回复 IC ,看《一文看懂 IC 产业结构及竞争关系》

回复 展会,看《2017最新半导体展会会议日历》

回复 投稿 ,看《如何成为“半导体行业观察”的一员 》

回复 搜索 ,还能轻松找到其他你感兴趣的文章!

摩尔邀请您加入精英微信群

china0513-624x468

责任编辑:mooreelite
文章来源于:半导体行业观察    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>