为什么8位处理器的能效低于32位处理器
扫描二维码
随时随地手机看文章
近年来,随着工艺与IP的逐渐成熟,32位的MCU增长迅速,风头之劲乃至16位的MCU基本上被跳过了。现在说嵌入式MCU,要么就是8位,要么就是32位,16位的MCU产品型号屈指可数。
本文引用地址:
那么8位的MCU的情形又如何,很多嵌入式工程师都有一些误解,下面来简单分析下。
一、8位MCU正在被淘汰
这是最常见的误解,先说事实,根据最新的Gartner的市场报告,8位的市场营收额和增长额跟32位的相比都仅仅差几个百分点。考虑到8位的单个芯片比32位芯片要便宜很多的事实,8位的出货量其实远高于32位的。打个直观的比方,现在我们有了高铁,是不是所有传统的普快、特快火车都要立即淘汰呢?显然事实并非如此,至于原因就太多了。现实情况就是8位 MCU曾经的应用领域并不能立即用32位的MCU直接替代。
二、8位处理器缺乏创新
不少人会认为既然现在市场的宠儿是32位的MCU,厂商们是不是都没有投入研发资源在8位产品上了。这么想的人可能一想到8位的MCU,脑海中会浮现40DIP的“经典8051”的形象。事实上芯片厂商们并没有停止创新。比如CIP-51内核因为采用了一个时钟周期等同于一个指令周期的设计,瞬间将同频率的8051性能提高了12倍。国内的一些半导体厂商也有基于8051或其他8位内核的创新。
三、8位处理器难以使用C/C++语言编程
如果你了解Arduino的设计原理,这个误解就不攻自破。当然坦白讲,8位的MCU使用高级语言编程确实比32位的MCU要困难些,主要障碍就是内存地址的不统一。比如8051内核的内存地址就分为CODE、data、sfr、idata和xdata。如果涉及到banking就更复杂了。8位的PIC还有硬件Stack这样更加“非主流”的设计,但是这些障碍都可以通过工具的优化来缓解。
四、8位处理器专为简单应用而生
这个观点倒是有几分真实,但是嵌入式应用本身就是简单应用居多。嵌入式系统应用的本身特点决定了8位依然有很多用武之地。外设和编译器的进化将慢慢拓展8位处理器的应用范畴。
五、8位处理器不能胜任IoT应用需求
IoT应用不是一个单独的应用,而是一个复合应用。智能手表、智能音箱、主控制器、网关这种当然需要复杂的处理器来实现。但是IoT应用还包含大量的传感器节点、执行节点和转换节点。这种节点用低功耗的8位处理器来实现更加适合。
六、8位处理器响应慢
这个就是完全的误解了。典型的嵌入式应用中,响应速度主要跟中断响应和唤醒延迟相关。8位处理器有天然的优势(地址转换工作量小、IP单元实现门数少),至少不输于32位的处理器。
七、8位处理器的能效低于32位处理器
曾经看过ARM公司的权威工程师写的一本书,书中观点是32位处理器的能效比高于8位的MCU,理由是32位处理器能快速处理完任务,休眠时间的比例更大,但是这个结论包含一个假设,就是任务有一定复杂度。
如果任务本身非常简单,唤醒过程的功耗也很大,那么这个假设不成立。针对不同应用场景,不能简单说8位、32位哪个能效比更高。至少在非常简单的应用中,8位的能效比要高。如果再加上单独响应,无需CPU干预的一些任务,8位的能效比甚至能高出很多。
八、相同价格的32位处理器功能远强于8位处理器
这个也有一定程度的可信度,但是不要忘记有相当大的一部分应用使用8位的MCU就已足够,在这种情况下,非要购买平均价格高一点的32位 MCU,成本就会上升。对于很多基本上标准化了的嵌入式产品来说,8位MCU还是具有一定的成本优势的。
九、8位处理器设计的应用不能适应未来变化
这是个思维角度问题,作为嵌入式程序员,更应该考虑当前的任务。不管是什么类型的MCU,如果产品形态变化了或者需求本身变化了,就要重新设计。未来谁都看不清,何必考虑那么多没有实际意义的前瞻。
十、8位处理器开发工作更繁重且没有升级路径
32位处理器的处理更加以软件为中心,可以做更多的代码复用。而8位处理器更多地利用硬件外设来完成任务。综合而言,没有绝对的差别。
只要是嵌入式处理器,升级路径都不大明确。如果你采用既有8位,又有32位的产品的厂家,你会发现很多外设都很相似。考虑到现在图形化配置外设的趋势,升级路径逐渐变得不那么重要,反正都是图形化或者脚本化来生成基础驱动代码。
MCU(单片机)按照位数主要划分为4位、8位、16位、32位及64位,位数越多,数据处理能力越来越强,应用场景变得更加复杂。观察整个应用市场,8位和32位是两大主流,16位则处于二者之间,目前只有部分经典产品拥有存量空间。
8位MCU至今已经应用了几十年,一直是无数嵌入式应用的主力,尤其是消费产品和医疗器械中的应用。2012年飞思卡尔推出号称“8位MCU终结者“Kinetis L系列,近十年也陆续有业内专家宣称“8位MCU已死”。
虽然32位的MCU越做越强,也越做越便宜,但整个市场对于8位市场的应用量从来没有放缓的迹象。为什么直到现在,8位MCU仍未被淘汰,这其中有哪些逻辑,未来又会怎样发展?付斌丨作者 电子工程世界(ID:EEworldbbs)丨出品
8位MCU,老兵不死
现在的MCU市场,充斥着矛盾。一方面,厂商们对于8位MCU的未来拥有信心:
Microchip(微芯)在今年4月宣布一项新的晶圆厂制造计划,耗资8亿美元将其位于美国俄勒冈州的格雷舍姆制造工厂产能提高两倍;
Silicon Labs(芯科科技)在本月宣布推出全新8位微控制器(MCU)系列产品BB5系列;
瑞萨推出RL78/G15,继续深耕8位MCU,但也布局16位MCU;
另一方面,全世界又在加速推出低成本的32位MCU,想要替代8位MCU:
ST(意法半导体)推出STM32C0,用于替代8位MCU;
灵动微电子推出MM32F00、01系列MCU,目的也是替代8位MCU;
沁恒推出5毛的RISC-V单片机,价格极具诱惑力;
兆易创推出GD32VF1系列处理器;
TI(德州仪器)推出基于ARM Cortex-M0+的MSPM0系列产品,降低了成本、复杂性,并缩短了设计时间,今年首次推出数十款产品以外,德州仪器计划在今年推出100多款MCU;
STC明确将2023定义为32位51单片机元年,表示要全面进军32位MCU市场。
IC Insights数据显示,2011年~2020年全球MCU产品中,4/8位MCU占比为15%。到2026年,全球4/8位MCU依然有24亿美元的规模。
早在十几年前,有人在预测8位MC即将退出市场,不过由于其成本具有明显优势,现在依然在诸多领域大杀四方,甚至跟32位MCU市场份额在长时间里维持一种微妙平衡。在2020年中国通用型MCU市场中,8位市场占比达43%。
又便宜,又省电,谁不爱?
对很多简单的应用来说,8位MCU已经足够了,完全没必要选择32位,适合的产品才是最佳的选择。
8位MCU的功耗、成本、体积一定比32位MCU低。
例如,智能停车场中的传感器/指示器、联网路灯、自动化城市园艺和植物监测,这些地方不需要那么高大上的功能,就是做个采集,对这种设备来说,更换电池是一件非常耗费人力物力的事。8位MCU可以做到几十nA的休眠电流,几百nA的看门狗定时器电流和实时时钟/日历电流。
再比如,小型设备的优势和价值不仅体现在其降低的功耗方面,更体现在其更小巧的外形上,这使它们非常适合空间受限的便携式电池供电类物联网产品。8位MCU常见封装是20引脚超薄正方扁平无引线封装(VQFN),其尺寸为3x3mm,32位MCU常见封装则是4x4mm的QFN。因为增加更多功能需要更多连接和更大封装,但具有足够功能的8位MCU可以安装在无法使用16位或32位MCU的电路板空间中。
又比如,现如市面上8位MCU售价还不到1元,厂商依然能够保持不错的毛利率。但对32位MCU来说,即便厂商能把价格压到1元以下,毛利也会变得非常可怜。专家也曾表示,相对8位MCU,32位还没有表现出足够的性价比。
当然,对于8位MCU来说,在硬参数上的优势也并非绝对。比如说,ST推出的STM32C0拥有9种小巧紧凑的封装形式,从最小的SO8N到最大的LQFP48,从8pin到48pin,而普通MCU的引脚数很少能达到20pin以下。
工程师爱用,才是硬道理
很多工程师已经习惯了使用8位MCU做开发,所以在选择的时候8位自然是首选。
一个产品之中,使用芯片和选型的是工程师,对大部分工程师来说,如果使用8位MCU就能满足应用需求,专门换32位MCU,不仅意味着要重新学习一套系统内容,也意味着产品要重新再验证一遍,这其中但凡出了差错,最终影响的都会是整个产品。
Silicon Labs也表示,对开发人员来说具有挑战性的是,大多数8位和32位MCU使用的开发工具不同,这使得开发人员很难同时开发这两种MCU。因此开发人员尽管不需要更强的计算能力,但通常会承担额外的开发成本。
“能用8位MCU的,为什么要多此一举换成32位MCU。原则是够用就好,不同任务需求不同,满足需求下也必须追求性价比。”工程师表示,体积、功耗、成本,这些都是8位MCU存在的原因。几毛钱的8位MCU怎么都比32位MCU便宜。我们做工程研发的,只要性能够用就可以了,成本节约,用好用尽器件的每项性能才是真正该考虑的。很多8位MCU性能也很强大的,假如一些低端产品用不了那么多性能,就没必要用32位了吧。(原帖地址:http://www.eeworld.com.cn/aPiH4yT)
一位工程师预测,8位MCU仍将在今后十年内持续存在,每天都还会有新的8位应用出现。决定集成电路价格的根本在于芯片面积,只要这个规律还在,8位MCU就不会消失,甚至不会退出主流的地位。而对M0来说,16位MCU才是取代的对象。
很多人认为,8位MCU使用高级语言编程,会比32位MCU要困难些,主要障碍就是内存地址的不统一。比如8051内核的内存地址就分为CODE、data、sfr、idata和xdata,涉及到banking就更为复杂,还有硬件Stack这样“非主流”设计,但这些障碍都可以通过工具优化来缓解。