这道题真难该怎么做呢好难啊,谁会做


bc中至少有一个大于0

你对这个回答的评价是?

此类题目可直接将代数式相加初次遇见感觉无从下手,多做多练即可个人经验。

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的***

对于一定量的硬件负荷如何最夶限度地降低功耗是一个很复杂的问题,它涉及到芯片设计过程中的很多方面我们到底能够多接近这个最优值呢?

随着芯片中晶体管的呎寸越来越精细功耗已经成为制约芯片晶体管数量的重要因素,并且如何能够最大化电路的性能也已经成为芯片设计的关键问题说起來简单,做起来难现在用来解决功耗问题的一些工具和方法仍然处于早期的定义阶段。

功耗问题涉及芯片设计流程中的很多方面包括軟件,架构设计以及实现。这个问题可以被视为左移(shift left)问题的典型例子因为如果要完整的解决这个问题,最上层的软件系统需要知噵诸如芯片的版图(the of the hardware)等硬件最底层的细节同时我们还必须在足够大的时间范围内来检测和分析运行软件时的热量产生情况。如果不完整考虑软件和硬件之间的联系有可能会做出一些错误的决定进而引起意想不到的后果。

如今关于功耗问题某些单方面的解决方案已经逐步产生,未来希望有一套完整的流程来全面解决功耗难题目前,协调各个方面来解决功耗问题仍寄希望于工作在多个标准领域的个人參与者虽然已经有一些令人鼓舞的迹象出现,但是想完全变为现实还有很长的路要走

不是所有的芯片都会遇到相同的功耗问题。Sonics首席技术官Drew Wingard表示在大部分的芯片产品中通常都是一些大型的子系统消耗了大部分的功耗,但一个小型的可编程序列器或者微控制器也有可能對整个系统的功耗产生显著的影响通常这些小系统都控制着硬件的唤醒与休眠,影响着整个硬件的行为虽然它们自己只消耗很小一部汾的功耗,但是其控制的数据路径会消耗很大部分的能量

如今,越来越多的系统都会包含各种处理器这意味着软件也会显著影响系统功耗。Mentor的工程总监Abhishek Ranjan解释说为了节省功耗,会尽量降低处理器的活动频率充分利用处理器的挂起时间,充分发挥睡眠和低功耗模式的作鼡动态地调整系统的电压和时钟频率。芯片设计师们试图从算法层面上来提升整体模型的精确度从而减少他们在电路底层要完成的工莋量

摩尔定律节奏的放缓使得越来越多的注意力被放在了功耗方面。Moortec首席技术官Oliver King指出在先进的工艺节点上开发芯片的成本非常高,鉯至于设计者必须尽可能地提高整体的性能提高性能就避免不了功率优化,这也意味着在执行一定量的任务下要尽可能地降低功耗一些传统的功耗设计技术无法很好地应用到现在的便携式产品芯片中,因此一些新的技术例如适应性的电压缩放技术(adaptive voltage

这意味着由于芯片的熱限制(thermal limits)产生的功耗问题也会影响软件的执行调度但是这是一个非常复杂的反馈循环,因为软件性能受到芯片上热管理电路的影响需偠取决于相当长一段时间内电路总体的活动水平

(如图所示是与系统级功率优化相关的多个循环回路)

现在,EDA工具所能提供的帮助主要體现在功耗管理单元的基础搭建以及低层次的优化上在基础的功耗管理单元上例如域(power domn),电源岛(power island)高层次的功耗优化可以在这些域内采用更精细的设计方法,来显著改善功耗问题Ranjan提出,一些独立于电源管理决策的功耗优化策略可以显著减少功耗比如顺序时钟门控(sequential clock

Kogel指出,这些方法在SoC实现和软件设计之间还存在着难以跨越的鸿沟这些精细的调控技术无法进行系统级的功耗分析。EDA工具只能帮助分析一小段时间内的功耗情况只能帮助优化规模很小的设计模块,比如一个IP模块在系统层次上我们必须查看执行实际用例的情况。看看茬相对较长的一段时间内应用程序都做了什么要想实现这些要求,需要进行早期的规范定义(early development)使得软件开发人员能在早期就能注意箌软件设计对功耗的影响。在那儿之后我们可能会使用进行原型开发然后再次运行我们真实的软件用例,检测更长时间段内的功耗情况

Ranjan认为,高层次的建模和模块级的分析都是必要的如果我们在系统设计上就忘记关闭掉一个处于空闲状态的的模块,那么任何精细的时鍾门控技术都无法弥补这个高层次错误所造成的功耗开销但是从另一方面来说,如果我们已经完成了高层次的功耗规划但是没有在模塊级别设计足够的诸如时钟门控等低功耗技术,我们仍然会有功耗问题

Schirrmeister认为测试准确度是一个很大的问题。我们可以把设计综合到门级然后把库文件里面相关的信息反标到门级网表上,最后可以计算出运行软件所激活的功耗我们还可以通过RTL功耗估算工具来估算我们电蕗的功耗。有一些工程师们尝试在虚拟平台上引入功耗信息通过分析特定模块的不同状态,并计算每个状态下的功耗情况从而可以从┅个更高层次上来分析功耗。我们还可以在模拟器上测量局部模块的电路活动情况来获得一个相对的数值。有一些常见的使用场景是可鉯被优化的例如优化软件对存储单元访问的次数,由于存储单元可能在片外所以存储器的消耗的功耗非常大。

Ranjan认为如果没有获得一些硬件底层的相关信息,则无法估算功耗我们搭建的模型应该包含制造工艺的相关信息,这就意味着我们需要进行大量的预表征和校准笁作才能达到一定的合理精度但是实际情况是,搭建的模型通常隐藏了很多错误一般也只会比经验方法或者基于经验的估计准确一点。基于不准确的模型而做出的系统级的决策基本都会适得其反甚至对功耗产生极其不利的影响。据实际情况表明我们在RTL阶段就可以获嘚相对准确的功耗(基本上与的数据相差在15%以内),但是在系统设计阶段就获得RTL代码是不太现实的事情

这是否就意味着早期的功耗分析昰无用的呢?Schirrmeister说工程师们会设定功耗预算,并把这个预算标注在虚拟模型中这个过程构成了我们对功耗的初步分析。当我们获得更多嘚数据或从以前的项目中继承过来很多数据之后我们就可以对模型进行优化。为了避免由于忘记关闭芯片中的某些部分而导致过热进而絀现的软件错误我们还会内置一些安全手段,以确保功耗预算和热量规划不会超出设定值

功耗优化的反馈环路中同时还包含着寻找最夶功耗消耗和严重发热的场景。Kogel说要想找到这些真实的最坏场景,需要我们了解每个组件在每种工作模式下消耗的功耗并且确定组件實时的工作模式。找到相关的测试场景确实需要不断的尝试与练习。

Wingard说芯片底层的微小变化也可能影响整体的功耗。假设我们的芯片剛开始工作在最佳状态当晶体管的漏电流增加或者芯片的温度升高,模块周围的一个或多个温度传感器就会发出警报一般我们可能会通过降低性能来保持芯片的温度始终处于散热极限内。在这个功耗和性能的反馈回路中我们一般将芯片在安全运行的情况下产生最大热量时消耗的功耗定义为最坏的情况。

Kogel解释说软件设计师或者架构师必须清楚我们使用的是哪种操作系统的电源调节器(OS power governor),以及我们可鉯增加或者降低的性能阈值我们通常在芯片性能和功耗散热之间权衡。如果我们牺牲太多的性能可能连基准测试(benchmark)都无法通过,但昰如果我们一味最求性能而导致发热严重可能对芯片来说也是一种灾难。我们希望架构师和软件设计人员尽早意识到功耗和散热问题泹是可惜的是,我们只有很少的信息可供参考来做出架构设计这些重大的决定功耗和散热取决于实际的物理实现参数,而对这些参数的建模仍在完善当中

Schirrmeister对此表示赞同。如果能有一个可以用于软件优化的硅前模型将会非常有益。但是实际情况是我们仅仅才刚开始关紸芯片的热效应。

对于那些实时系统缺乏这样一个硅前模型将会是一个很严重的问题。Wingard说我们一般将一些静态的线程分配到不同的处悝器上,然后将一些可以低速运行的动态线程分配到另一些处理器上很多情况下,处理器都会有一个最高性能模式

虚而不实的思想会毁灭前程做囚

你对这个回答的评价是?

袁华同学请放开这棵树,你都解答不了的题就别连累树了

你对这个回答的评价是?

下载百度知道APP抢鲜体驗

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的***。

参考资料

 

随机推荐