太大而不能处理吗?

为电源管理任务正在推高到软件领域,嵌入式软件工程师可以自己处理这个问题吗?

受欢迎程度

由安Steffora Mutschler
今天的贪得无厌的需求功率效率,电源管理任务已推高到软件工程师的领域由于硬件设计的复杂性和对硬件的要求设计部分。

管理权力适当嵌入式软件可以归结为真正了解应用程序,以及它如何与硬件交互。这就意味着许多层几乎压倒性的软件的复杂性。

“当你看看嵌入式系统存在着很大的差别我的冰箱是做什么与我的手机做什么,”Chris再生草说节奏的家伙。“冰箱里是一个不间断设备,需要非常节能,但并不经常变化模式。真是的东西可能是大部分时间,这真的是管理权力的时候什么都没做。手机你有更加复杂的情况。这需要非常低功耗待机,但是今天电池寿命在很大程度上取决于是什么当你做的时候你说话,当你浏览的时候,当你玩游戏。那些真正主宰的电池寿命,这是你要的东西管理明确如何高效计算。”

与软件的问题,这与scenarios-how在这两种情况下所使用的产品,有哪些不同的睡眠模式时,冰箱是睡着了,怎么睡着了是吗?“在电源管理软件起着很大的作用,因为它只有在应用程序级别,你知道什么,比如你是否应该根据睡眠或深度睡眠或者做一些事情。所以它是现任的嵌入式软件知道国家是什么,可以设置不同的权力模式,打开和关闭不同的权力领域内芯片和使用适当的低或高功率,低或高带宽通信与其他网络为了做正确的事。battle-knowing如何警惕的一半,”他继续说道。

电源管理听起来不很复杂,一些嵌入式软件工程师。事实上,一些较复杂的特性,比如空闲抽搐镇压,许多嵌入式软件供应商供应,是显而易见的,可以做在一个金属裸代码循环没有任何重大工程的努力,技术销售工程师丰富Rejmaniak说导师图形。

然而,关键是如果你开始意识到你想要关闭的事情和一个进程实现,它将关闭,它会发出低功耗的要求。但它不能做那一刻,因为我们说,wi - fi在中间传输一个数据包或接收数据包。请求仍然需要发布,但是如果现在不能做,回来以后,他解释说。

“这是更复杂的软件,”Rejmaniak说。“软件做出决定:‘我应该关闭或不呢?“我最好去检查所有这些系统使用的状态,然后我必须做一个决定。如果这个决定是错误的我必须回来之后,我必须安排一个过程回来以后。这是一个相当复杂的过程。”

大局趋势,指出马克·米切尔嵌入式工具主任导师图形,是如果你超越电源管理有一个趋势在过去三十年暴露越来越多的控制处理器的软件。“我们从CISC RISC指令集,但总的来说硬件设计师提供给我们越来越多的功能。而不是试图找出如何解决所有的问题在硬件基本上是说,“这是一个巨大的转折和交换机将旋钮。软件的家伙,你去弄明白。”

甚至在microarchitectural层面,这是一个关键领域工程师提取很大的性能提高和权力从设计,减少他们频繁的东西带出硅和移动软件的水平。“所以这些东西不断推高到软件层,和电源管理是一个很好的例子。你看看一些新的现代嵌入式处理器从钛或瑞萨,等等,他们是异类,多核,也许有一些皮质a15或者皮层a7和一些m3和一个或两个DSP和一两个GPU,他们都和一群外围设备联系在一起。和所有这些东西正在软件电源管理控制。你可以打开核心,关掉核心,使他们更快,让他们慢,把外围设备,降低peripheral-you可以做任何你想要的。”

问题是,一旦暴露在软件,通过屋顶和复杂性变得难以管理。当唯一的旋钮你必须把时钟频率与你想要的东西,你可能会有所成就,做的好的,但需要大政策框架的原因是这种复杂性已经超出一个程序员可以创建或可以精神处理设备由设备基础上。一样以同样的方式,人们用来写汇编代码,现在我们有编译器为我们工作,因为他们很难找出所有单独的机器指令,同样的事情发生在电源管理。专业软件层正在接管管理的东西,就像程序员来处理,超出了我们的能力”米切尔宣称。

一个有趣的平行
过去,过去,嵌入式软件都是关于性能优化,威廉说Ruby, RTL电力产品工程高级总监Apache设计,“因为你想低成本的cpu上运行,你想把它到最小的内存大小,使用成本最低的内存。但现在越来越对力量,它有一个硬件流惊人的相似。”

在数字硬件流,有一个规范,然后潜入RTL编码,做合成,得到一个网表和物理实现,他说。“这是这样的软件。实际的软件有点像RTL代码,然后编译器。奇怪的是,合成工具在硬件设计流也称为编译器。然后你有东西实际上运行在一个特定的系统,这可能是硬件描述,这可能是盖茨或布局,然后你在软件方面的实际对象代码。”

工程团队开始担心优化软件对权力,把一些方法和手段的系统中等待事情发生。我们的目标是创建一个更聪明的方法把处理器空闲模式。Ruby,回想起与客户对话来说明这一点。”一个客户给我打电话,说,我以为你的RTL电动工具有一个缺陷,因为它告诉我们,这个特定的块是消耗更多的权力比主动模式在空闲模式下,这怎么可能?然后他们说,然后我们意识到发生了什么。事实证明,所谓的空闲模式有一个内存块内被监测,不做任何有用的东西。但在主动模式内存被选中和去掉的时候在适当的时间,所以它实际上是浪费在空闲模式更多的权力。”

从软件的角度来看,关键是首先把系统尽可能地在一个真正的空闲模式,然后找到叫醒它的最佳方式。有中断,但根据速度的事情需要处理,也许CPU可以醒来本身每10毫秒,看看有什么来处理,然后就回到了类似self-idling场景,Ruby建议。

“从根本上讲,软件总是运行在硬件那么你可以从软件的角度必须非常密切相关,至少从权力方面,硬件是能力。是完全关闭的硬件能够在空闲模式下,在这种情况下,你必须有硬件设计以这样一种方式保留某些州之类的东西吗?硬件能够改变时钟频率或改变电压,”他说。

活跃的电源管理
最小化空闲状态很重要,但再生草,更重要的是如何减少权力在主动模式。“假设您正在运行一个游戏或拍摄一个视频或听音乐或上网和看YouTube,你会怎么做呢?你不能说,‘关闭我。“这可能是他们需要的应用程序可以识别哪些子系统和不需要的东西。所以你可能会说,“我看一个视频,这意味着我不需要3 - d图形可以断电3 d图形,“不然我可能会说,“我真的需要一个相对低水平的整体计算的吞吐量。我可以有一个我的胳膊皮层a7运行,而不是我的任何皮质a15,因为那些运行在一个很大的权力。渲染的或者你可能会说,这个页面我需要打开电源饿a15几秒钟,”或“我真的有这种节能成像处理器我要卸载所有这些计算密集型任务成像协处理器,因为我知道这将是5或10倍节能运行在GPU和CPU’。”

正如这些例子所演示的,有很多的选择不仅仅是代码,可能是由应用程序,但是运行它。“我在低功耗CPU运行它,一个大功率CPU、GPU,成像处理器,或者做我碰巧有一些天生的引擎,做特定的事情,不需要非常处理器干预吗?人们思考所有这些不同等级的处理在一起协调工作。摩尔定律的一个老生常谈的现代soc是硅是便宜的但是它消散的力量是昂贵的,进一步的那个方向。因此,人们思考有一系列不同的计算选择。有一个自助餐,处理器的沙拉吧,”他补充道。

这不是简单的工作。不过,如果一些政策框架实施管理,并提供应用程序程序员更简单的世界观,它可以减轻一些负担。否则,嵌入式软件任务是棘手的,米切尔的结论。



留下一个回复


(注意:这个名字会显示公开)

Baidu