发 帖  
原厂入驻New
张飞60小时讲透半桥串联谐振软开关电源设计,立即学习!

[经验] 经验处理器间通信与状态机设计降低异构双核系统的总体系统功耗

2019-5-15 10:57:13  584 嵌入式 soc 状态机
分享
0
作者:Loc Truong技术专家
德州仪器

随着功耗成本在总营运成本中所占比例的不断扩大,功耗问题已变得日益严峻。试想一下,超市安装有成排的收银台,而每个收银台都少不了配备一台现金出纳机、信用卡读卡器、条形码扫描仪以及电子秤。如果这些设备没有经过节能设计,不能使其在两个客户结帐之间或是在非营业时间自动关闭,就会造成浪费。把这种浪费乘以超市的数量、城市的数量以及设备的使用寿命,累积的总能耗费用就将以数百万美元计。

现在,诸如Linux等操作系统(OS)都具备了电源管理支持功能。自Linux力图拓展以智能手机、平板电脑以及电子书阅读器等为代表的低功耗便携式设备领域以来,主流的内核就一直提供这项功能特性。因而,即便您设计的是“外接电源”设备,也可以从最底层开始支持“节能环保”理念,通过整合现有的电源管理功能,使其充分发挥作用。

本文探讨如何使用处理器间通信与状态机设计来降低异构双核系统的总体系统功耗。文章首先简要回顾当今外接电源SoC嵌入式系统可用的低功耗技术,然后分析如何让两套各具供电方式的操作系统在系统层面协作,以提供电源管理功能。

芯片与系统硬件问题

从硅芯片制造工艺的角度来看,有两个不同的指标可以来衡量组件的功耗:静态功耗(有时也称待机功耗),以及工作状态下的功耗。静态功耗主要受漏电流影响,并随温度的上升和供电电压的升高而相应增大。由于漏电流是一种自然现象,是伴随不断缩小的工艺技术而出现的,因而唯一消除它的方法就是将该组件关闭。在SoC中目前常用的方法是电源岛,其可使SoC的一部分完全关闭。

另一方面,工作状态下的功耗取决于芯片的活动,其不会随温度上升而增大,而是随供电电压上升而增大。这种情况可采用的相关策略包括:
1、动态电压与频率缩放(DVFS),其可让电压和频率按所需的性能进行动态调整;
2、采用时钟域关闭未使用的外设;
3、 动态电源切换(DPS),即软件可根据系统的活动情况对电源模式进行切换。这里的“软件”通常属于操作系统的组成部分;
4、自适应电压缩放(AVS),一种同时采用软硬件的闭环策略,可根据硅芯片的工艺和温度在采用最低电压的同时保持性能水平。

从系统的角度来看,电源管理功能应能够完成如下操作:
1、进入待机模式(由用户应用或者系统启动的系统服务);
2、休眠存储器存储(由用户应用或者系统启动的系统服务);
3、挂起和唤醒(由用户应用启动的系统服务);
4、转换至不同的电源模式(根据用户应用条件或者状态,由系统启动并进行控制)。

此外,应用代码的设计也对功耗有影响。例如,引脚处的输入/输出(I/O)缓存、存储器控制器,尤其是双数据率(DDR)需要驱动电流。不必要地将数据移入和移出SoC也会造成能源浪费。

让我们来看看下面图1所示的典型调制解调器嵌入式系统方框图。该处理器不仅集成度很高,而且还内置了多种可满足专用需求的处理器和加速器,以及输入输出数据所需的所有I/O外设。



图1:采用复杂SoC实现的现代嵌入式系统。

除了电池和时钟管理支持集成电路(IC)外,系统电路板还集成了适用于各种不同电源轨的外部稳压器。此外,其还包含了外部I/O模块和可热插拔的器件。为了进一步降低能耗,应用方案可通过采用数据和代码对齐的方法来充分利用内部存储器,从而使流水线中的算法能够复用本地缓冲器,这样就无需在非必要的情况下切换到引脚处的I/O缓冲器。

其他众多技术还包括:将数据类型与架构进行匹配;纠正对齐;将阵列的大小安排为2次方数,以简化地址计算。由于更低的MIPS能够降低温度,因而这些技术有助于降低功耗。有人将这些技术称为“能源编码”,并且将其列为除速度和代码大小之外的第三种优化方式。

电源管理是一种协调性的工作。诸如进入待机模式这样的任务需要涉及一系列硬件和软件步骤。因此,要真正地“正确完成”工作,电源管理需要成为系统级(即硬件与软件交汇的地方)的设计目标,尤其当处理器是一颗带有多个内部总线主控系统的复杂SoC时更应如此。

例如,对于“挂起”操作,软件必须控制硬件完成下列任务:
1、通知驱动器和待完成的任务系统正在关闭电源;
2、等待安全模式启动关断队列;
3、通过门控电源或时钟关闭I/O和加速器;
4、将系统状态保存到存储器(本例中为mDDR);
5、调节稳压器,以减少供电;
6、将电池管理设置为挂起状态;
7、将时钟转换为挂起状态(通常仅涉及实时时钟与mDDR运行)。
为了解电源管理具体是如何实施的,现在需要将我们的讨论内容落实到真正的器件和软件上。




采用DSP/BIOS实现电源管理

在SoC上一般有两个片上处理器:ARM核等通用处理器(GPP)与数字信号处理器(DSP)或图形处理单元(GPU)等专用内核。ARM核一般运行嵌入式Linux来支持I/O任务与图形用户界面任务。专门用于信号处理的处理器需要DSP/BIOS软件内核基础等更具确定性与轻量级特性的操作系统来执行信号处理。

该芯片是由以太网、USB、SATA、LCD控制器等多个I/O外设高度集成,如图2所示。每个处理器都可平等访问片上外设,从而可根据系统响应时间要求在两者之间分配I/O。为支持嵌入式系统需求,Linux 2.6内核可以使用框架及驱动器网络来执行电源管理。



图2:嵌入式Linux的电源管理实施.

为便于理解,我们只需关注所涉及的主要功能,如挂起、唤醒、空闲、DVFS,以及实现涉及控制中央处理单元(CPU,CPU休眠状态的CPU Idle)、时钟(时钟框架与非固定时钟选项)、稳压器(调速器框架)与辅助驱动器(主要是I2C和SPI)等上述功能的机制。

操作性能点(OPP)可定义特定电源目标,而调速器则可管理如何在这些OPP之间实现转换。近期引入的电源管理质量服务(PMQoS)概念可将硬件中的计算资源及功能与时迟及吞吐量需求相结合,从而定义整个平台所需要的最低OPP。

本文没有详尽讨论应用编程接口(API)和数据结构,不过,为了让问题更加清楚,前文图2显示了当前如何通过嵌入式Linux端口为ti OMAP-L138C6-Integra DSP+ARM处理器评估板(EVM)实施电源管理。

在应用层面,OPP等电源管理策略可通过sysfs接口访问。在内核空间里,支持其调速器与驱动器的框架由Linux通用部分以及平台(SoC)与电路板专用的定制驱动器部分构成。

在DSP/BIOS操作系统上,电源管理服务集成在电源管理器(PWRM)框架内。与Linux类似,PWRM可将实现门时钟及时钟域开关、控制DSP睡眠模式以及协调内部资源在OPP之间实现安全切换所需的低级工作抽象出来。PWRM处于图3所示的电源扩展库(PSCL)和电源管理界面(PMI)的顶层。



图3:DSP/BIOS电源管理框架。

为了协调Linux和DSP/BIOS环境,需要一个硬件机制来实现通信。让我们再次以TI OMAP-L138C6-Integra DSP+ARM处理器为例来探讨处理器间的通信工作。如图4所示,OMAPL-138C6-Integra DSP+ARM处理器的处理器间通信(IPC)硬件机制非常直观。



图4:OMAP-L138C6-Integra DSP+ARM处理器的处理器间通信(IPC)机制。

在SoC层面,给位于SYSCFG系统配置模块中的CHIPSIG存储器映射寄存器(MMR)分配了5个CHIPINT位,用于DSP和ARM之间的信号发送。DSP最多可映射4个用于通知ARM的信号,而ARM则最多可映射两个用于通知DSP的信号,另有一个信号仅用于DSP非可屏蔽中断(NMI)事件。请注意,DSP和ARM有两个公共位,所以它们可同时被中断。这对未来调试工作非常实用。向该位写入一个“1”,就可生成信号或事件。这些事件可供给对应的中断控制器(INTC),最后映射到内核中断输入。

要在两个处理器之间传输数据,可将任何内部或外部存储器区域用作共享存储器区域,并且可使用由操作系统提供的互斥或信号量机制,控制其相互间的排斥。该SoC提供系统级存储器保护单元(MPU),可防止ARM或DSP核或者DMA等内部总线主控对存储器区域的覆盖。在开发过程调试IPC软件机制、检测运行不当的程序或存储器泄漏时,这项功能非常实用。

对于Linux和DSP/BIOS而言,IPC是从名为DSPLink的软件组件中抽象出来的。DSPLink由数个模块构成,可提供DSP控制与代码加载功能,缓存传递和控制,并可发送传递及控制的消息。对于Linux,它是内核模式驱动器。而对于DSP/BIOS,它又是可在任务层调用的常规驱动器。对于将DSP用作加速器的应用,如果其不再需要DSP提供服务,可使用DSPLinkPROC功能关断DSP。

对于ARM将Linux作为主控处理器运行,并且需要禁用I/O和加速器,以进入待机模式的大多数嵌入式系统来说,这种方法已经绰绰有余了。禁用DSP仅在处理器层面就可实现超过91%的节电,如图5所示。



图5:采用现有PM服务可将功耗锐降达90%

对于其它DSP空闲状态,可通过扩展Linux内核空间平台驱动器,或创建用户空间代理服务器来实现节电。同时,用户空间代理服务器可采用DSPLink传输消息,从而与DSP/BIOS端应用进行通信,然后向PWRM发送请求。例如,如果要转换到一个只让DSP处于空闲状态(省电90%)的OPP,需要在Linux挂起框架驱动器上添加这项服务,该驱动器将向DSP发送一个消息来初始化PWRM_sleepDSP操作。

本文小结

电源管理服务越来越多地被应用于主流Linux内核,要实现显著节电,只需“启动它们”即可。希望本文能够鼓励读者仔细研究其平台的硬件特性,了解它是否能够降低运行功耗,从而去支持“节能环保”理念。

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发经验
课程
    关闭

    站长推荐 上一条 /10 下一条

    快速回复 返回顶部 返回列表