MIPS

作者:Øivind Loe,Silicon Labs微控制器产品高级营销经理

即使是在诸如物联网应用的无线连接这种主导功耗的事件中,让尽可能多的进程自主运行,也可大大提高电池寿命。降低功耗一直是微控器(MCU)市场的一个主要关注点。超低功耗MCU现在可以大大降低工作模式和深度睡眠模式下的功耗。这种变化的效果是显而易见的,它大大提高了我们日常嵌入式应用中的电池寿命,并且提供了在未来使用能量收集的可能性。

然而,要基于新型MCU降低功耗,开发人员必须考虑到许多因素,对此Silicon Labs特别撰写一篇技术文章:“以0 MIPS运行你的嵌入式系统”,帮助开发人员了解如何利用新型MCU中外设的自主运行,通过更接近以“0”MIPS运行,来实现数据手册中所承诺的低功耗。

低功耗为嵌入式系统研发关键

对于在功耗敏感型物联网(IoT)应用中所使用的新型MCU和无线MCU(WMCU)来说,执行代码时的功耗已经明显下降,甚至达到40μA/ MHz以下。使用这些低功耗规格,您可能会想知道为什么我们需要睡眠模式,为什么不以500 kHz运行您的代码来实现20μA的电流消耗,并且允许您的应用使用电池运行10年?其实事情并不是这么简单的。

睡眠模式下的功耗在过去几年中也有显著的改善。我们现在可以看到深度睡眠模式下的功耗低于2μA,而一些睡眠模式下的功耗甚至低于50 nA。您可能会觉得拥有这些模式设计出来的系统功耗自然很低,然而事实并非如此,应用能否利用睡眠模式才是关键。

为什么工作模式是好的...也是坏的

使用MCU或WMCU的最直接的方法是让CPU管理一切。例如,您可以启动模数转换(ADC),将一些数据放入通信接口(如USART传输)中,读取ADC数据,并对数据做出一些处理,所有一切都由CPU直接控制。直接的CPU控制简化了开发,但其成本是:每当外设或外部事件需要处理时,MCU都将处于工作模式,从而使功耗大增。

近期,一些数据手册显示工作模式的电流是40μA/MHz甚至更低,它们通常是高时钟频率下的参数,低频下会变大,进而导致绝对功耗变大。这是因为工作模式下频率和功耗不是线性关系。功耗由如下两部分组成,其中第二部分和频率联系不紧密:
1. 处理器本身,它是和频率按比例变化的。
2. 有基础工作电流的模块,比如低压差线性稳压器(LDO),欠压检测器(BOD)等。

要想降低功耗,应尽可能地减少MCU在高功耗的工作模式下运行,尽可能地关闭外设,让CPU尽可能多地睡眠。

功耗预算

对于受限于能源的电池供电型应用来说,要知道能源消耗在哪里才能进行优化。表1显示了一个传感器检测无线应用的功耗预算,它的功耗优化不太好。

通过平均计算每个组件的功耗来测量或估计功耗。如果CPU占空比为两个百分点,并且在60μA/ MHz时工作在20 MHz,则CPU的消耗为24μA。

请注意,表1所示的功耗预算是根据功能划分的。例如,基础睡眠电流包括一个低频振荡器和一个实时时钟(RTC)来对系统事件进行定时从而允许深度睡眠。

传感器测量部分是由一个0.5kHz的中断触发,中断之间深度睡眠。低功耗蓝牙每秒钟都要把数据发出去,这是个很普遍的低功耗应用。最后,还有一些非MCU部分的功耗。MCU可能无法直接控制这些模块中的一部分,包括电源管理外设,在这个例子中,MCU是直接控制ADC对传感器进行采样,如果不是的话,传感器电流将完全是图片中的数据。

对于这个例子,传感器的持续电流大约是390μA,但是通过调整占空比,每个ADC采样仅仅使用了10 μs的时间,从而可以大大降低功耗。

【干货】以0 MIPS运行你的嵌入式系统

表1 目标应用的功耗预算

如果该无线应用由具有225 mAh容量的CR2032电池供电,则在61.6μA功耗下操作时其寿命约为0.4年。事实上,我们可以做得更好。

改善现状

我们来看看降低MCU传感器测量电流的方法。虽然此示例涉及ADC测量外部传感器,但相关示例可能集中在一系列不同类型的测量以及与外部环境的交互上。在这两种情况下,MCU和外部环境之间都会发生频繁的交互。

实现低功耗传感的最简单的方法是让CPU尽可能多地处于睡眠模式,只在采样时唤醒,并尽可能快地重回睡眠模式。对于非常低的采样率来说,这种方法很好,但是从图1可以看出,当每秒采样次数增加时,系统的功耗也会显著增加:

【干货】以0 MIPS运行你的嵌入式系统

图1 采用中断进行ADC采样,显示出随着每秒采样次数的增加,功耗也在增加

许多类型的应用必须具有频繁的活动,同时还需要保持电池寿命。超过1kHz的活动率并不是闻所未闻,这时候就需要采取措施来保持低功耗。

图2显示了传感器管理的两种附加方法。外设反射系统/直接存储器访问(PRS / DMA)方法使CPU在完全不参与的情况下在深度睡眠模式进行ADC采样。而不是RTC唤醒CPU,然后CPU启动ADC进行采样。RTC通过事件系统(如Silicon Labs的PRS)将事件直接发送到ADC。ADC在接收到此事件时自动启动ADC转换。转换完成后,DMA在这种情况下也能够从深度睡眠模式下运行,从ADC获取数据并将其存储在RAM中。 PRS / DMA方法的好处是显著降低了电流消耗。在1 kHz时,系统电流从58μA降低到25μA。

【干货】以0 MIPS运行你的嵌入式系统

图2 该ADC采样图显示了各种工作方式下的功耗

驱动ADC的更有效的方法是PRS /比较器(CMP)方法,其中RTC仍然通过PRS系统触发ADC,但在这种情况下,ADC立即使用比较功能对样本进行评估,除非发现有需要的数据,否则不使用DMA或CPU。这种方法能够实现1 kHz采样率时系统电流只有3.5μA。

动态ADC比较器

使用PRS/CMP方法,大部分采样数据都被丢弃,CPU只关注需要处理的数据。当信号变化缓慢时,或者需要特定的信号时,这种方法很有效。

当使用比较功能监视信号时,一种方法是测量信号,然后根据这个信号设置阈值,只要信号在阈值范围内,那么当ADC测量信号时,系统可以保持在深度睡眠模式,当然CPU也保持在睡眠模式。

然而,如果信号发生变化,并且超过阈值,系统将知道该信号,并采取适当的措施。在回到睡眠模式之前,ADC阈值将重新配置以适应新的信号值,因此系统可以再次进入睡眠模式,直到下一次信号发生变化。图3显示了这种技术的示例。圆点表示ADC样本,箭头表示每当CPU被唤醒时,它将记录本次变化并重新配置阈值。

【干货】以0 MIPS运行你的嵌入式系统

图3 当信号超过阈值时,CPU中断动态修改ADC的阈值

使用这种方法,系统实际上将丢失一些信号准确性,因为信号可以在触发器之间的阈值范围内任意移动。然而,益处是功耗显著降低。

如果系统的目标是测量信号的动态值,则PRS / DMA驱动方法是理想的,因为它使所有数据可用,同时仍然可以提供非常有益的节能特性。

自主工作子系统

ADC示例只是众多通过睡眠模式降低应用功耗的方法之一。专注于低功耗应用的新型MCU(如Silicon Labs的EFM32 Gecko MCU)拥有大量功能,可在深度睡眠模式下运行,从而实现高水平的自主行为。

例如,Gecko MCU的LESENSE(低功耗传感)模块可以自动地、周期性地采样多达16个通道,完全不需要CPU参与。它可以实现高频率检测且充电1次就能工作10年。

在许多情况下,单个外设可以自主地履行其职责,但也有许多需要交互的情况。在这种情况下,我们可以利用诸如在当前一些新型MCU中存在的PRS系统这样的外设互连。这些外设互连允许多个外设连接以自主执行更复杂的任务。

图4显示了这样的自主系统示例,其使用事件链来执行其功能:
1. RTC以给定的时间周期性地发送PRS信号至ADC以启动转换。
2. RTC同时启动外部传感器,这样在测量时信号就已经准备好了。
3. ADC完成采样并通知DMA,DMA把数据传送到RAM。
4. 来自ADC的完成PRS信号关闭外部传感器。
5. 当缓冲器满时中断唤醒CPU,或者超过ADC阈值时中断唤醒CPU。
6. 可选项:PRS看门狗监视事件循环,确保它保持运行。

DMA可以从图4所示系统中拿走,通过设置ADC的比较功能来做到更省电。

【干货】以0 MIPS运行你的嵌入式系统

图4 该自主ADC系统包含周期工作的传感器和看门狗

这些自主子系统具有以下几个主要优点:
1. 显著节能。
2. 即使CPU负载很重时传感器依旧可以稳定工作。

缺点是,并不是所有的MCU都支持这种类型的操作,并且在设置交互时,您会希望像硬件设计人员一样思考。总之,对于许多电池供电型应用来说,其优点明显多于缺点。

结论

通过利用各种节能技术,当传感器测量时,CPU几乎完全脱离工作。对于表1所示的无线应用,这将使总平均功耗从61.6μA降低到37.6μA,降低了39%,从而使电池寿命从大约5个月延长到8个月,增加了64%,或者可以允许电池尺寸减小以改善系统外形。

对于非无线应用,节能将更加显著。表1中的示例,能耗将从29.6μA降低到5.6μA,由CR2032电池供电,理论上寿命将从10个月延长到4.6年。

来源: Silicon Labs

围观 318

来源: http://www.tuicool.com/articles/YJfqUjV

最近在利用空余时间写一个兼容MIPS32指令集架构的CPU,尽管它和Intel的不同,但MIPS对nop指令的处理方式可以给你一点启发。

首先上过计算机体系结构课的你一定知道,现代CPU都采用流水线结构。在一个简单的五级流水的MIPS32处理器中,五级流水分别实现的逻辑操作是: 取指、译码、执行、访存、回写 。

CPU空操作的原理是什么?

(图片来自网络,侵删)

在取指阶段,cpu从内存中代码区读取指令,然后将其送入译码阶段进行译码。那么译码阶段做了什么呢?要了解这一点,我们先来看看指令本身长什么样子,以移位操作指令sll为例,其在汇编语言中的用法为:

sll rd, rt, sa

意思是将地址为rt的通用寄存器的值向左移sa位(空出来的位置用0填充),得到的结果保存到地址为rd的通用寄存器中。(寄存器在上面那张图中就是译码阶段上方的那个“Register file”方块)

这么一条汇编指令用32位二进制表达将会是这个样子:

CPU空操作的原理是什么?

译码阶段先通过前六位和后六位识别出它是SLL移位指令,然后从rt寄存器读取数据,将其与“sa”一起送入执行阶段,并且告诉执行阶段: “数据已经给你了,请利用这两个数据做移位操作,做完请保存在rd这个地址。”

这下清楚了,译码其实就是在识别、拆解指令码,并准备好数据(这个数据可能来自寄存器,也可能就来自指令)送给执行阶段去执行特定的计算。至于访存和回写在干什么,与此问题无关,就不做介绍了。

有意思的来了。 我们来看看nop指令长什么样吧:

CPU空操作的原理是什么?

没错, 全0 。这就有问题了,按照刚才SLL指令的说明,SLL指令是通过前六位和后六位唯一确定的,那么nop指令被送往译码阶段后,不就会被当成SLL指令么……你别说,还真是。

按照sll指令的译码和执行方案,nop指令会被解释成这样:

sll $0, $0, 0

意思是把地址为$0的寄存器的值拿出来,左移0位,再存到地址为$0的寄存器当中去……那么寄存器$0里保存着的是什么呢…… MIPS32架构规定$0的值只能为0。

所以nop指令被CPU当成sll指令做了一次无意义的移位操作,实际上等于什么都没做,只是占用了一级流水线,如@龚黎明大大所说,用来作流水线填充,白白占用1个T的等待时间。

围观 368

来源:赛迪顾问

一、下游应用牵引MCU产业前景向好

(一)物联网

自上世纪70年代问世以来,单片机(Microcontroller Unit,MCU)就凭借其极强的通用型和极高的研发普及率成为全球嵌入式电子应用领域不可或缺的核心部件。网络通信、工业控制、汽车电子、消费电子、金融电子等领域都离不开MCU产品的支持。未来,物联网相关应用将是集成电路(Integrated Circuit,IC)和电子信息终端产品的发展方向,无论是工业制造业、汽车还是消费电子,都在向互联互通的方向演进升级。新增的物联网设备和老旧设备的物联网替代将是未来发展的主题。

通常情况下,物联网设备都需要具备嵌入式控制、传感数据采集、能耗控制及数据交互通信等功能。在数据吞吐量较大、通信协议较复杂、对主控芯片运算精度要求较高的场合,主流的解决方案多采用32位MCU;而在轻负荷、要求快速响应的应用中,16位及8位MCU仍有大量需求,特别是8位MCU凭借其成本优势及开发的便利,在一些颗粒度较小的模块中仍然大规模使用。综合来看,随着下游物联网产业的演进和相关技术的快速发展,MCU市场必将延续高速稳定增长的态势。

(二)智能卡

数据显示,MCU芯片在智能卡领域的出货量接近50%,而从销售收入看,智能卡领域的收入占比达到15.8%。近年来,随着加密算法、NFC等相关技术的逐渐成熟,搭载MCU芯片的智能IC卡(Integrated Circuit Card)已基本覆盖日常消费、金融支付、政府及公共事务等各个领域。特别是金融IC卡方面,在政策引导和市场驱动的双重作用下正在加快普及。

目前,全国近400家商业银行中绝大多数都已经发行了金融IC卡。其全面替代磁条卡已成定局。与此同时,银联芯片卡标准已相继落地泰国等旅游业发达的东南亚国家,实现了我国自主研发金融技术标准的对外输出。预计未来几年,智能卡市场将迎来爆发式增长,这也将直接拉动上游的MCU市场。

(三)汽车电子

在汽车智能化的演进趋势下,越来越多的MCU产品被应用于新型智能驾驶控制系统以实现半自动驾驶、自动泊车、巡航控制以及电子稳定控制(ESC)等功能。与此同时,越来越多的汽车制造商开始致力于扩展驾驶辅助系统功能,使之在5-10年后能够最终实现无人驾驶功能,这将为车用MCU和传感器市场的发展带来机会。

新能源汽车方面,据中国汽车工业协会统计,截至2016年11月,我国累计生产新能源汽车42.7万辆,销售40.2万辆。新能源汽车的快速发展也直接拉动了汽车电子用MCU芯片的市场需求。配备大容量片上存储空间和更多I/O接口功能的32位MCU目前已被广泛应用于监视新能源汽车的电池状态,以及纯电动或混动车的启动电功率。未来汽车电子应用仍将是MCU市场的主要增长动力之一。

二、投资MCU企业的三种思路

(一)入股MCU龙头企业,快速切入下游市场

2016年,高通收购恩智浦、软银收购ARM公司无疑是集成电路产业界的两起重磅事件。巧合的是,这两件收购案的标的都与MCU产品有关。恩智浦继2015年收购飞思卡尔后,已成为汽车电子领域MCU的当之无愧的领军企业;而ARM则早已凭借其划时代的IP架构左右着MCU产业生态。成熟型MCU相关企业在研发实力、供应链、市场认可度及客户渠道等方面都具有显著优势。收购成熟型企业一方面可以直接补齐自有产品线,扩大专利覆盖度,优势技术互补形成完整解决方案,同时可通过规模效应实现外延式增长并降低运营成本;另一方面可以快速切入其所在下游应用领域,拓展应用市场范围,扩大市场占有率。

(二)并购成长型MCU及IP设计公司,提升技术层次

成熟型企业间的兼并重组往往是出于战略布局需要,这些公司的普遍特点是运营状况良好,盈利能力较强,市场占有率较高。与之相比,一些初创型或中等体量的芯片企业一方面或多或少存在运营效率低下、产品线较为单一、资金不足或缺乏完善销售渠道等问题;另一方面又在某些细分领域具有技术先进性。这样的公司虽然尚未在市场上占有一席之地,且短时间内难以贡献业绩,却可以作为投资方补齐短板、拓展市场、布局新领域的技术储备。同样地,一些大型芯片企业由于战略布局的需要,会对一些非核心业务部门进行剥离或调整,这些部门也进入了资本市场。国际知名MCU供应商微芯科技就一直贯彻着这种扩张性收购战略。自2010年以来先后凭借收购获得了存储器控制、蓝牙及Wi-Fi无线连接、车载娱乐系统、悬浮手势、屏幕触控、气体监测等方面的相关技术及专利,持续提升着其MCU技术层次。

(三)搭车全球产能扩张,投资产业链下游环节

MCU虽然属于通用型芯片,但是汽车、工业、网络通信等应用领域因其具有不同的行业标准,对工艺的要求也有较大差别。因此,国际MCU领军厂商多采取IDM的运营策略。目前,中国大陆及台湾地区的MCU设计企业基本都是Fabless的经营模式,整体实力及营收规模方面与国际领先厂商有着较大差距,因此在工艺流程环节基本不具备议价能力,产业链环节缺失;此外,申请行业认证的周期一般较长。以汽车电子用芯片为例,从前期研发到通过最终验证可能需要2-3年的时间,这与大陆及台湾半导体厂商产品快速上市的经营理念相悖。随着新能源汽车产业、智能制造产业的迅速发展,MCU的应用场景也将持续拓展,投资产业链下游的制造环节,完善针对不同应用领域的工艺技术,打造虚拟IDM集团的投资路径初步显现。

三、关注国际并购把脉市场契机

(一)密切关注全球产业界重大兼并重组

同业公司间的兼并重组多出于扩展产品线、扩大市场份额等目的,而在体量较大的并购案后,往往会出现一系列连锁的业务优化调整举措,如NXP在收购Freescale仅一个月后,便将其RF部门出售给中国建广资本;2016年6月,又宣布将分立器件及逻辑IC部门出售给建广资本为首的中国财团。无独有偶,2016年11月,中国IC设计公司华大半导体发布声明,将通过旗下的晶门科技收购微芯公司的触控技术资产;而就在今年2月份,微芯公司刚刚完成对另一家触控芯片提供商爱特梅尔(Atmel)的收购。因此,中国产业界公司及金融资本应密切关注国际IC巨头的战略层面的合纵连横,通过聘请专业的行业咨询公司等途径拆解分析并购双方的业务及产品线,以发现潜在的投资机会。

(二)重点考察下游应用优势企业

当前,全球主流MCU厂家的高端产品基本都是基于ARM或8051架构。不同于专注某一嵌入式应用场景的SoC芯片,MCU产品更强调通用性,且由于MCU芯片对集成度和工艺制程的要求相对较低,国际大厂之间基本不存在技术壁垒。在市场上的产品趋于同质化的环境下,各家MCU厂商的策略是深耕下游应用领域以取得差异化竞争优势,如NXP在智能卡领域份额较高,而瑞萨电子则在汽车电子领域优势明显。未来,随着集成电路企业势力范围的划定,一家公司通吃下游领域的可能性将微乎其微。因此,下游应用市场前景将直接决定芯片提供商的可持续发展能力。

(三)“异构”产品短时间内难以爆发

除了目前绝对主流的ARM架构和传统的8051架构,目前市面上还有基于MIPS架构的MCU产品。2015年9月,Microchip宣布将其基于新的MIPS M5150架构的PIC32MZ产品系列的时钟频率提升至200MHz。虽然在某些参数性能上,非主流架构MCU能够取得局部领先,但是由于其应用范围较窄,相关研发人员不足,产业生态基础极为薄弱。以服务器芯片领域作为对比,Power架构、MIPS架构的服务器芯片始终未能获得市场认可。IBM在中国普及Power架构的力度不可谓不大,但是目前却依然没有一家公司做出成绩。因此,在没有颠覆性的技术革新的情况下,ARM架构及8051架构MCU依然将会占据绝大部分市场份额。

围观 343

来源:Microchip微芯

概述
PIC32MM系列是Microchip功耗最低且最具成本效益的32位PIC32单片机系列。PIC32MM系列填补了我们广受欢迎的PIC24F XLP和PIC32MX系列之间的空白。PIC32MM器件的休眠模式电流低至500 nA,封装尺寸小至4 × 4 mm,适用于需要更长电池寿命和更小外形的应用。这些器件具有独立于内核的外设,例如可配置逻辑单元(CLC)和多输出捕捉/比较/PWM(MCCP),旨在降低CPU负荷。采用紧凑型microMIPS™指令、microAptiv™ UC内核和影子寄存器集,使PIC32MM系列器件在25 MHz时可达79 CoreMark™评分。microMIPSISA整合了16位和32位指令,以实现紧凑的代码。Microchip的MPLAB®代码配置器(MCC)支持该系列器件,有助于简化设计。

主要特点
● 低功耗:优化电池的功耗性能
• 低电压休眠模式,RAM数据保持电流< 500 nA
● 低成本:批量购买时单价低至0.60美元
● 小外形封装:4 × 4 mm、5 × 5 mm和6 × 6 mm
● 集成独立于内核的外设
• ADC、比较器、RTCC、WDT和CLC
• 灵活的PWM/IC/OC/定时器(MCCP和SCCP)
● 模拟集成
• 12位200 ksps ADC、5位DAC和比较器
● 受MPLAB代码配置器支持,可简化设置

目标应用
● 低功耗/无线应用:
• IoT传感器节点
• 联网温控器/环境监视
• 便携式医疗设备和远程控制
● 消费类应用:
• 游戏控制台和家庭保健/健身设备
● 工业控制应用:
• 楼宇自动化和温度/照明控制
● 低成本电机控制应用:
• 白色家电和小家电

围观 278
订阅 RSS - MIPS