MIPS架构寻机突破

时间:2022-10-25 01:41:07

如今,ARM是32位MCU架构中增长最快的部分,有专门为不同嵌入式处理器准备的lO种左右的Cortex授权。一般公XARM阵营的优势是可利用的丰富的生态环境。

不过,MIPS科技公司这几年也在寻求突破。Microchipx MlPS架构的积极拥趸者之一,最近,Microchip的Edendur Kristjansson~ARM公司声称的32位单片机(MCU)应用的可移植性产生了疑问。

32位单片机的应用可移植性:现实还是神话?

Erlendur首先介绍了事情的原委:2008年11月,ARM公司宣布推出Cortex微控制器软件接口标准(Microcontroller Software InterfaceStandard,CMSIS)。ARM声称,对于新器件的软件开发项目或将现有软件在不同芯片厂商的基于Cortex-M的单片机之间移植时,这项标准可降低软件设计成本。这听起来很不错,但事实确实如此吗?

Erlendur分析道,根据ARM所言,CMSIS是“适用于Cortex-M处理器系列的与厂商无关的硬件抽象层。CMSIS为不同芯片厂商和中间件提供商的处理器提供了简单一致的软件接口,这简化了软件重用,缩短了开发人员对于新单片机(MCU)的学习过程以及新器件的上市时间。CMSIS的问世使芯片厂商可将资源集中在突出其产品的外设功能上,无需在对单片机进行编程时保持各自不兼容的标准。”

可移植性的可能性探讨

我们已了解各个单片机制造商都能提供什么,现在可以看一下抽象层能为设计人员做些什么(如果有的话)。首先,我们来看CMSIS声称所能提供的功能,同时应记住前文所述的系统架构、外设和固件库。

CMSIS版本1.3

1.内核外设访问层:包含用于访问内核寄存器和外设的名称定义、地址定义和辅助函数。它还定义了一个用于RTOs内核的器件无关接口。其中包含调试通道定义。

2.这些软件层由芯片合作伙伴通过以下方式进行扩展:

a)器件外设访问层,提供所有器件外设的定义:

b)用于外设的访问函数(可选):提供用于外设的附加辅助函数。

仔细阅读此说明后,我们可以看到CMSIS提供了一种通用语言,通过它可描述MCU的不同元件。

接下来,我们看一下两个不同的“芯片合作伙伴(使用ARM Cortex-M处理器内核的MCU制造商)”所生产的MCU中包含的部分功能。

显而易见的是,尽管这两个32位MCU制造商都使用Cortex-M3内核,但主要功能仍有区别。表l中列出的功能是单片机最标准的功能,即便如此它们仍有不同。这意味着,即使这两个制造商使用相同的内核,也需要对软件进行调整才能运行最基本的程序,例如翻转I/O或使用UART。如果不进行一定程度的代码重写,而只是对基本参数进行调整,则无法在A和B之间移植软件。

另外,在表l的示例中,厂商A和B的单片机都使用了ARM Cortex-M3内核,并且都具有符合CMSIS标准的固件库。这是否意味着他们的库(例如电机控制库)可以互相移植?

其实不见得。这两个制造商对外设和固件采用了完全不同的方法。厂商A使用专用算法库(可能由多人经过数年开发而成)来最高效地利用其单片机上的专用外设。而厂商B则专注于使用更通用的外设并构建通用外设库,对于特定应用则使用示例代码和应用笔记进行说明。

这两种完全不同的方法使得在这两个制造商的MCU之间移植程序(例如电机控制子程序)非常困难,尽管它们使用了相同的内核。此外,库函数的命名也不相同,这意味着用户必须重写代码中的所有库函数调用,并且要弄清将哪些变量和值提交给函数。这完全不是所谓的可移植性。

再有,设计人员关注的重点是开发特定最终用途代码时的速度、效率和可靠性。厂商A和B采用不同的方法来达到这些目标。厂商A使用基于专用硬件的方法,而厂商B的法更加专注于通用硬件。厂商A针对特定应用提供了经过潜心开发的专用库,以最大限度地利用其单片机的功能。而厂商B只提供基本构件,让开发人员构建自己的解决方案。

笔者认为,如果真像Microchip所说的32位单片机的应用难以移植,那ARM阵营的优势会打一定的折扣。如果单挑,Microchip所选的MIPS公司的内核,在计算性能也是有优势的。

MIPS公司对其IP(知识产权)核功耗高的错觉进行了澄清。MIPS公司中国区市场总监费浙平称,最近,全球第一款MIPS智能手机平台来自于中国的客户――北京君正,这用事实证明YMIPS架构的高性能、低功耗能力。

那么如何理解高性能、低功耗,MIPS公司在这方面的创新是什么?费浙平说,高性能和低功耗是必须放在一起考量的一对指标。历史上MIPs一直被比较多地应用于高性能领域,比如15年前多数MIPS平台就运行在100~200MHz以上,而那时候很多其他架构只需要运行在50MHz以下,显然,200MHz的设计实现其绝对功耗是远大于50MHz设计的,不管其结构体系本身多么有优势。

多年来,MIPS比较多地被应用于绝对性能要求较高的地方,这就是关于

“MIPS高功耗”历史错觉形成的主要原因。现在MIPS鼓励使用“效率”来进行不同架构内核的比较,效率就是性能/功耗比,即单位能量能够提供的计算能力。这样大家就比较容易对不同的处理器架构进行横向比较了。

一个系统的功耗效率从本质上决定于以下这些因素(如图3所示):基础架构、并行处理能力、芯片后端设计和制造工艺、系统软件设计。MIPS在基础架构技术方面的优势是比较公认的:在多核多线程两项并行处理技术方面也领先一步(两者结合可以既增加计算平行度,又减少CPU空转时钟周期数的浪费)。芯片后端设计和制造工艺对一个芯片性能和功耗的影响现在越来越大,不过这方面的影响与具体CPU架构无关,对任何芯片设计影响都是一样的;同样,软件设计思想上的进步,也可以应用在所有不同CPU架构之上,是通用的。在MIPS现有产品系列中,像MIPS 1074K是双发射超标量结合多核技术的产品,提供较高性能;MIPS 1004K是多线程和多核技术结合的产品,适合并行度高的任务系统。

上一篇:嵌入式系统与FPGA的最新动向 下一篇:嵌入式技术开发论坛暨嵌入式系统编辑推荐奖颁...