布局可穿戴和物联网市场的新伙伴Cortex-M7架构深入解读

  • 来源:微型计算机
  • 关键字:布局,物联网,苹果M7
  • 发布时间:2014-10-29 15:33

  说起ARM,除了我们常见的Cortex-A系列架构处理器外,其还有一类被称作MCU(微控制器)的产品,它们源自于ARM专门为单片微型控制单元设计的Cortex-M架构,且几乎无所不在。说到微控制器,大家比较熟悉的是苹果M7协处理器,在iPhone 5s中它是不可或缺的一环。而除了智能手机外,在一些其他的设备特别是未来的穿戴式设备中,MCU起着至关重要的作用。最近,ARM又发布了最新一代Cortex-M7架构,我们一起来看看它和我们常常谈论的Cortex-A15等产品有哪些不同,相比前代架构又有哪些改进,对我们的生活又有哪些帮助吧!

  2014年9月23日,ARM发布了他们全新一代Cortex-M系列、架构代号为Pelican(也就是“鹈鹕”)的全新一代Cortex-M7处理器。一般来说,普通玩家都会更为关注Cortex-A系列处理器,比如大家耳熟能详的Cortex-A15、Cortex-A17等,对Cortex-M系列处理器基本上没有太多的了解。

  如果你完全不熟悉Cortex-M系列处理器,是很正常的。因为这些产品虽然对性能有一定要求,但并非为追求性能的设备而生。和Cortex-A系列产品往往被厂商拿在镁光灯下比较性能、比拼分数不同的是,Cortex-M处理器承担的工作往往很重要,但用户并不知道。在很多设备中,Cortex-M处理器被作为微控制器使用。所谓微控制器(MCU,Micro Control Unit),又被称作单片微型计算机。它的特点在于在极为微小的芯片面积上,容纳了诸如CPU、RAM、ROM以及I/O单元等多种接口,形成了芯片级的计算机。微控制器一般没有内存管理单元(memorymanagement unit,简称MMU),这个单元的作用是在处理器和内存之间调配数据,将处理器发出来的存储地址、虚拟地址等内容转换成真正的物理地址。而由于几乎所有的通用操作系统比如Windows、Linux、Android、OSX和iOS,没有MMU的参与根本无法运行。所以Cortex-M使用的是RTOS,其自身独有能保证在一定时间限制内完成特定功能的实时操作系统。

  如今微控制器实际上已经无处不在。一个设备往往只包含一个Cortex-A系列或者Cortex-R系列处理器,但是却可能使用了几十个Cortex-M系列处理器。Cortex-A系列处理器执行的是和操作系统有关的工作,完成人机界面或者系统功能,Cortex-M则在幕后执行大量的功能性任务。比控制IC电源管理器、温度控制器等。对智能手机来说,一些协处理器,比如用在微软Lumia手机上的GlanceScreen功能、Sensor Core功能,以及之前MOTOX上的Moto Voice和MotoDisplay功能,甚至iPhone上的运动协处理器等,都有微控制器的身影,它对我们的生活影响却一点也不小。

  自从2004年ARM发布Cortex-M微架构以来(首款产品是Cortex-M3),Cortex-M系列就在高速增长着。迄今为止,Cortex-M系列产品销量超过80亿颗,这比所有其它ARM产品的总和还要多。随着技术发展,Cortex-M系列的需求变得越来越大,仅仅今年上半年,Cortex-M处理器就卖出了17亿颗,看起来今年超过去年29亿颗的销量已经毫无问题了。授权企业方面,Cortex-M也超过了175家,形成了庞大而繁荣的生态链。

  说了这么多,那么问题就来了,微控制器的用途究竟是什么呢?为什么今天本文尤其提及它呢?答案很明显:在移动计算时代,可穿戴设备的发展使得微控制器的市场需求越来越大,毕竟可穿戴设备对功耗的要求更为敏感,目前能满足这类产品需求的最佳选择就是微控制器—这种具有一定的性能、灵活可编程、超低功耗并能运行一个完整操作系统的设备,在同类市场上几乎没有太多之外的选择。不仅如此,考虑到未来市场对语音、传感器、显示器、控制器等设备的需求不断增长,微控制器应用范围不断扩大,对性能等要求不断提高,因此,ARM才继续发力,推出了更符合市场发展方向的Cortex-M7处理器。接下来,让我们一起来看看新的Cortex-M7又有哪些强悍之处,为什么适合可穿戴市场吧!

  Cortex-M7—性能大跃进

  根据ARM的官方消息来看,Cortex-M7最重要的一点是提高了性能,同时又保持了Cortex-M系列一贯的超低功耗和超低尺寸。做出这样改变的原因也不难确定,首先,ARM希望他们在传统的8bit微控制器和16bit微控制器市场之外提供一个差异化的选择;其次,Cortex-M7的目标将面对物联网市场和可穿戴市场,这个市场需要更强大的DSP(数字信号处理器)功能,因此Cortex-M7将比以往任何的Cortex-M系列产品更适合音频、视频以及传感器信息的处理和收集。

  架构方面,Cortex-M7采用了六级流水线设计,顺序执行模式,双发射超标量管线,拥有单精度和双精度浮点单元,指令和数据缓存,分支预测单元,支持SIMD,紧耦合内存(TCM)。这样的架构设计有别与之前的产品,也使得Cortex-M7拥有更为出色的性能。从ARM给出的详细资料来看,Cortex-M7和之前的产品,存在着很多的差异:

  首先,Cortex-M7终于拥有了真正的指令和数据高速缓存。一般来说,对微控制器这样的产品来说,谈及L1和L2缓存系统还略显奢侈。之前的Cortex-M系列处理器就没有加入高速缓存。对处理器而言,高速缓存的作用除了使得处理器能够暂存中间数据外,其最重要的作用就是大幅度提高数据命中率,提升整个产品的处理效率。在没有高速缓存的情况下,之前的Cortex-M系列产品甚至会使用慢速的闪存用作缓存,这样无论是速度还是带宽都无法跟上应用需求,处理器往往需要等待多个周期。Cortex-M7拥有了真正的高速缓存后,其整体架构更偏向于现代高性能处理器了。在缓存容量方面,Cortex-M7允许指令和数据缓存最大各64KB,基本上可以满足处理器的需求了。

  其次,Cortex-M7首次加入了紧耦合内存,这项技术之前仅存在于Cortex-A系列和Cortex-R系列产品上,Cortex-M系列也是首次引入。紧耦合内存从性能上来说和真正的缓存相差无几,但是它的内容可以由开发者直接控制。也就是说,紧耦合内存是微控制器物理内存映射的一部分,开发人员可以将一些关键性的代码和数据存入其中,以确保处理器可以快速调用。Cortex-M7最高可支持16MB的紧耦合内存。

  第三,Cortex-M7增加了全新的分支预测功能。在加入这个功能后,Cortex-M7可以用在一些DSP设备中,因为DSP设备所运行的代码通常是面向诸如音频输入关键字检查、音频输出均衡、频域峰值检测等模拟数据流,这部分任务经常都是循环运行的,如果没有分支预测功能,那么每次运行时代码都需要评估一下循环条件,但是几乎所有时间都指向完全相同的结果。在加入分支预测后,每次运行这类循环程序时,不需要再评估了,分支预测会直接指向结果。当然分支预测也有一些负面效应,比如分支预测表可能占用部分晶体管,但是考虑到性能的增幅和用途的拓展,这样的耗费也是值得的。

  此外,有关Cortex-M7的性能,在ARM的官方数据中的确增加了不少。Cortex-M7在Core Mark中可以达到5.04分/MHz,相比之前的Cortex-M4的的3.40分/MHz大约提升了47%,相比更低端的Cortex-M0等产品变化就更为明显了。如果使用Dhrystone来衡量的话,Cortex-M7的性能大概能达到3.23DMIPS/MHz,相比之下Cortex-M4只有1.95MHz,提升了65%。不过,Cortex-M7和Cortex-M4等产品并非竞争关系,而是市场的不同定位而已。此外,ARM没有给出有关Cortex-M7的面积和功耗等内容,只是说由于授权给各个厂商自行生产,在不同工艺下表现也各不相同,与此同时ARM也宣称Cortex-M7维持了和之前产品一样的高性能功耗比,这说明性能提升后,Cortex-M7的功耗也会有相应的增加。

  即使如此,Cortex-M7在面对可穿戴市场和物联网市场的发展时,能够凭借更为优秀的性能来获取更广阔的使用空间。尤其是在诸如智能手表、智能眼镜等设备上,或者充当某些移动计算设备的协处理器。Cortex-M7都有非常令人看好的应用前景。

  面向可穿戴和物联网市场—Cortex家族齐上阵前文我们提到,Cortex-M系列的目标是针对微控制器应用市场而研发的,包括物联网市场和可穿戴市场。那么,具体到Cortex-M尤其是Cortex-M7上,又应该如何应用呢?

  首先需要明确的是,ARM并不希望Cortex-M系列产品单打独斗,在ARM的设想中,这类产品应该结合应用Cortex-A系列高性能处理器产品和Cortex-M系列微控制器各自的优点来使用。比如使用Cortex-A系列处理器作为高性能处理器处理各类应用程序,而使用Cortex-M系列产品作为协处理器完成各种辅助功能和待机应用,以最大限度延长电池时间。

  接下来,ARM专门给出了产品市场划分,介绍了可穿戴设备的硬件架构设计内容。可以看出,基础架构甚至只包含Cortex-M系列产品,结构最简单,功能也最简单,甚至不需要显示屏,这部分产品主要以手环为主,运行嵌入式操作系统。接下来的中等架构就稍复杂一些,它可以有一颗主处理器用作处理应用程序,也设计了Cortex-M家族的协处理器,当然GPU、显示设备和视频设备是可选的,部分专注于充当智能传感器的可穿戴设备也完全不需要这些部件,这个档次的产品既可以运行嵌入式操作系统,也可以选用功能更多的高级操作系统。那么最顶级的可穿戴设备,比如智能眼镜、智能手表等,应该拥有高性能的应用处理器、协处理器、显示屏、GPU、视频模块等,运行高级操作系统。

  ARM之所以这样做,是因为目前的物联网和可穿戴厂商往往会使用智能手机那一套东西,因此使用体验尤其是续航表现都不够令人满意。这并非ARM本意。在ARM的计划中,即使诸如Cortex-A15这样的产品,ARM在发布时宣称它的频率最低可下探至1.2GHz,并且ARM还专门为此做出了优化,但是实际智能手机厂商都将其设置在更高频率、更高电压下以获取更高的性能,从而带来了更高的功耗。实际上,大量的物联网设备和可穿戴设备对性能的要求并不高,CPU并非重点,诸如Cortex-A7这样的产品不太适合被集成在这类设备中,因为它对能耗的要求还是太高了—就连苹果的Apple Watch也只能用一天。

  除此之外,ARM还看到另一个重要问题,目前的微控制器的性能都不够令人满意,尤其是在可穿戴、物联网市场上的应用,可能存在性能不足的问题,因此ARM才特别发布了Cortex-M7这样的产品,来保证满足市场应用的需求。此外,为了进一步节约能耗和提高效能。ARM建议厂商考虑将Cortex-M和精简的Cortex-A系列产品共同使用,并且将大部分待机和传感器任务转移至Cortex-M系列产品上来。ARM给出了一些例子,比如削减了缓存和频率的Cortex-A7核心面积甚至会进一步降低至1.1平方毫米,主频也降低至500MHz到800MHz,这样的CPU在顶级可穿戴设备中也足够了,再加上Cortex-M系列产品的配合,完全可以满足用户需求,并且如果这样设计的话,功耗最高可以降低至原来的15%,电池续航时间就会大大提升。

  这样看来,ARM打算将Cortex-M家族打造成为未来可穿戴市场和物联网市场的主力产品。尤其是Cortex-M7这样性能较高、功能全面同时功耗也保持在较低水平的架构将会成为厂商眼中的香饽饽。目前,已经有很多厂商表示看好Cortex-M7并购买了相关产品授权,包括Atmel,意法半导体、飞思卡尔、德州仪器、NXP等厂商。

  ARM的下一个目标?

  Cortex-M7通过架构的改进和性能的增强,使得ARM在微控制器领域开拓了一片新的市场。Cortex-M7使得ARM在微控制器和DSP领域进一步巩固了自己的领导地位。尤其是Cortex-M7作为一颗支持ARM指令集的32位微处理器,其增加的特性和性能还允许厂商在产品设计时更多的依靠微控制器而不是传统的处理器,以提高整体能耗比并实现之前无法达到的功能和应用。不仅如此,为了推动Cortex-M7的应用,ARM还改进了Cortex-M7的中端延迟设计,并提供了诸如ISO26262、IEC61508这样的安全认证套件。这些安全认证套件的价格极为昂贵,ARM这样做更可以进一步使得厂商更愿意使用Cortex-M7开发相关产品。总的来看,虽然无论在硬件还是软件层面,要达到ARM所说的将Cortex-M系列微控制器和Cortex-A系列处理器联合使用还比较困难,复杂的架构和软件设计可能成为厂商需要解决的首要问题,但不可否认的是,随着可穿戴设备和物联网设备的成熟,类似Cortex-M7这样超低功耗的产品应用范围肯定会越来越广。在ARM几乎完成对移动计算市场的“制霸”之后,是否在新兴的物联网市场和可穿戴市场,ARM是否也会“一统江湖”呢?

  总的来看,虽然无论在硬件还是软件层面,目前要达到ARM所说的将Cortex-M系列微控制器和Cortex-A系列处理器联合使用还比较困难,复杂的架构和软件设计可能成为厂商需要解决的首要问题,但不可否认的是,随着可穿戴设备和物联网设备的成熟,类似Cortex-M7这样超低功耗的产品应用范围肯定会越来越广。对目前才初起的可穿戴市场和物联网市场而言,Cortex-M家族尤其是Cortex-M7这样的产品,几乎就是专门为这个新兴市场量身定做的。而对一些简单设备或者物联网产品来说,更低功耗、更低性能的Cortex-M3、Cortex-M4也可以有存身之处。在面对如今主流的受用户青睐的诸如智能手表、智能眼镜等产品,Cortex-M7或者Cortex-M配合深度精简的Cortex-A家族产品也能非常好的完成任务。那么,现在的问题就是,在ARM几乎完成对移动计算市场的“制霸”之后,是否在新兴的物联网市场和可穿戴市场,ARM是否也会“一统江湖”呢?未来的答案只有等待时间才能一一揭示了。

  文 张振华

……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: