每一名系统设计人员都理解功耗和性能的相对关系:您的应用需要的计算性能越高,设计的功耗也就越高。但是,新一类应用对这一规则发出了挑战。智能电话设计人员希望同时实现pc级峰值应用速率以及更长的电池使用寿命。嵌入式系统规划采用智能传感器以满足严格的数据分析要求,安全的连接互联网,但是要求最大限度的降低功耗。在传统的思路中,这些明显是无法实现的。但是,arm工程师在6月份设计自动化大会(dac)上的发言表明,cpu知识产权(ip)带头企业的发展方向却是将这些不可能变为可能。
当然,arm从开始出现便一直专用于低功耗计算。在其dac主题发言中,arm创始人之一mike muller从小剑桥计算机业余爱好供应商acorn computer公司一个芯片设计人员小组在1980年早期提出的问题开始,追溯了体系结构的发展:他们能使用risc原理来开发16位微处理器,其性能超越个人计算机中的传统芯片吗?这一问题的答案是acorn risc机——arm今后发展壮大的萌芽。
acorn公司最初的成功源自高效的使用逻辑门和寄存器,主要是在简洁的risc体系结构的支撑下实现的。尽量减少每一操作所需的逻辑转换数也一直是arm套件的关键工具。但是,随着公司在研发预算上的增长,以及公司影响的扩大,arm设计人员开始在降低每一操作所需的功耗上寻求更好的工艺和电路技术。异步设计、低功耗工艺技术、精细粒度时钟选通、电源选通以及动态电压频率调整(dvfs)等都成为工具套件的一部分。
muller说,今天,arm增加了新工具:超精细粒度电源选通,例如,以非常低的电压进行工作等。但是,完全不同的发展方向将产生完全不同的技术:异构多核计算和虚拟化的概念——这是来自服务器领域的理念。
扩展低端
在评估功耗和性能的一张图(图1 )上,不同的技术扩展了这张图中不同位置的曲线。进一步使曲线向高性能方向扩展的技术包括,深度流水线、高时钟频率以及多核簇等。这些方法完全不同于功耗管理技术,功耗管理技术将整条曲线向低功耗方向下拉。两者都具有的不同之处是新出现的一类技术,使曲线向下向左:超低功耗,低速计算。
图1 将功耗性能曲线向高速方向移动的一些技术,同时通过功耗管理拉低整条曲线
muller说,这是长寿命电池和低功耗的范围。这里的问题是,怎样以很低的能量来完成少量的计算。今天,异步cpu毫无争议的占据了这一领域的制高点。只有当信号出现变化时才消耗动态功耗——而不是在每一次时钟转换时,因此,如果异步电路能够克服其开销逻辑的能耗成本,它将大幅度降低动态功耗。
但是,在高级工艺节点,特别是在较低时钟频率时,静态功耗会大于动态功耗。因此,muller关注的重点不是动态功耗,而是泄漏问题。
在高级工艺节点唯一降低泄漏真正有效的手段是降低工作电压。muller指出,问题是,当我们减小了器件尺寸后,很难调整晶体管阈值电压vt。我们目前所处的情景是,无法再进一步调整vt以减小供电电压,晶体管不能工作在传统的饱和模式下。取决于所采用的传统cmos电路,一旦退出饱和模式后,会产生很强的源极漏极电流,还会进行快速开关。
muller解释说,但这并不意味着一点办法都没有。我们还是能够减小工作电压vdd,使电流足够快,直至系统满足性能要求。只要不太靠近vt,我们可以采用的技术是dvfs。而muller则阐述了更激进的一些想法。
第一个是关断所有电源,把泄漏降到零。很显然,粗粒度电源选通是有效的方法——例如,没有使用的模块。muller指出,消耗很大的电能来迅速执行一项任务,然后关断电源,这样做通常可以节省能量。但还有更有趣的想法。
非常慢的运行
大部分系统都有一些不需要高速运行的任务,只需要完成它们就可以了。一般会由于某一原因而保持这些任务处于工作状态,因此,系统不能简单的接通,让它们工作,然后,再次关断。有针对减小这些任务的泄漏功耗而采取的节能方法。
arm展示了当模块工作在较长的时钟周期中时,您可以在时钟转换期间关掉组合逻辑电源。如果时序正确,保持时间之后关掉供电,在逻辑需要传播新状态时再恢复供电,这样不会改变寄存器中的序列。根据某些信息来源,这一方法能够把泄漏减小25倍。由于逻辑电源网络实际上成为自己的信号通路,因此,这一“子时钟电源选通”(图2 )方法会增加一些晶体管,增大动态功耗,当然也会增加时序收敛的复杂度。但是,在电路中降低了25倍,这的确是非常重要的方法。
图2 极低功耗技术,例如,子时钟电源选通,近/亚阈值工作等,实现了拉低曲线的新方法
这就带来了怎样降低寄存器本身泄漏的问题,这涉及到在时钟转换期间无法进行电源选通的其他电路。muller说,arm研究了vdd非常靠近甚至低于vt。近阈值和亚阈值工作都能够使电路保持在低速工作,同时有效降低泄漏。但是都带来了复杂的问题。
还没有很好的定义什么是近阈值工作。在传统的mosfet模型中,晶体管有三种不同的工作模式。饱和模式,此时,vdd和vss明显大于vt。对于逻辑,这是正常的on模式。亚阈值模式,此时,vgs低于vt,这是传统的off模式,简单模型表示出只有一些很小的泄漏电流从源极流向漏极。在这两种模式之间是第三种模式,通常称为线性或者欧姆模式,vgs接近vt。在这种模式中,假设mosfet的行为与栅极压控电阻相似。
采用目前的短沟道技术,线性和饱和模式之间的区别并不明显。imec业务开发执行副总裁ludo deferm评论说:“数字设计人员希望能够精确的把阈值电压控制在0.3至0.35 v之间,而工作点正好在这之上。在这一点,短沟道mosfet已经处于电子速度饱和,行为表现与其饱和特性非常接近,但是电流明显降低。较低的电流有可能会使逻辑速度降低几个数量级。虽然速度慢了,但是,传统的逻辑电路能够继续保持工作,与较高电压时相比,每次操作消耗的能量降低了几个数量级。总之,在这种模式中,可以在很长一段时间周期内或者在循环之间保持寄存器的状态不变。这种近阈值工作也可以用于连续工作系统,以节省能耗。muller描述了一种自足的堆栈管芯装配,它包括太阳能电池、普通电池,工作在快速运行和电源关断模式下的dsp管芯,以及近阈值cpu管芯,所有这些都在一个有源基底上。
近阈值工作会遇到很多难题。很明显,应用程序必须要容忍性能的大幅度降低。而deferm提醒说,还有其他引起很大变数的问题。工艺、供电电压、温度变化等都会对晶体管行为产生很大的影响。为减小这些变化的影响,芯片设计人员不仅要依靠其代工线工程师来保持vt不变,而且,还需要把管芯使用点电压稳压器靠近低电压电路放置,以减小vdd的变化和瞬变。
设计人员如果希望更接近vt,则需要采用更极端的方法。很多研究人员都建议逻辑电路设计使用差分信号和穿通晶体管逻辑,以及用作探测器的传感放大器,这些都有助于减小各种变化的影响。但是这类技术的应用毕竟是有限的。imec首席科学家praveen raghavan指出:“您可以通过定制设计流程,在隔离模块中使用低电压差分技术。但是,芯片设计团队仍然需要传统的时序分析方法。工具则无法支持这类电路。”
亚阈值工作
muller说,arm在低电压上的兴趣并不会止于vt。在亚阈值区,mosfet源极至漏极电流继续响应vgs。但是,这一电流现在非常小——泄漏电流,其响应会非常慢。而且,在某些情况下,特别是在必须保持数据同时要节省能耗的系统中,可以让vdd低于vt来工作。对于逻辑设计人员,这是尚未开发的领域,只有很少的专业模拟专家有所涉及。
raghavan说:“对于正常的体晶体管,通过亚阈值工作,可以让能耗降低十倍。但是性能降低了100到1000倍,工艺变化的影响会非常大。”而finfet的出现会有所改变,raghavan建议,“我们希望finfet能够让我们更好的控制vt,亚阈值工作对性能造成的影响会小很多,可能只有50倍。”亚阈值工作虽然可能一直需要进行定制设计,但是至少会有较为广泛的应用。
亚时钟电源选通和近阈值或者亚阈值工作为cmos电路超低泄漏工作开辟了新领域,但是极大的降低了速度,对电源供电结构和设计工具提出了新要求。从这一角度,muller把话题转向了讨论ic设计方法。但是在dac的其他讨论中,继续对扩展性能功耗曲线的讨论。
大-小:多核作为节能策略
在dac计划的异构多核系统小组讨论中,arm的carl wilton介绍了公司的宏体系结构计划,降低高性能系统的系统功耗:大-小计算。
大-小方法(图3 )是一种多核体系结构形式,内核有相同的指令集,几乎相同的状态寄存器,但是有完全不同的功耗性能特性。在目前的实现中,这意味着高性能arm® cortextm a-15内核簇,并配上高效的a-7内核簇,都通过arm连贯的互联架构进行连接。
图3 大-小结合连贯簇中的快速a-15和高效的星形a-7内核
a-15具有连续的三路前端,可无序执行,还具有深达24级的流水线,能够提供服务器级的执行速率。高速缓存结构为其提供支持,用于为不断出现的新指令提供服务。因此,运行在a-15上的任务会执行得非常快。相比较而言,a-7是双路、按序,相对简单的内核,具有较浅的8-10级流水线。a-7执行速度较慢,但是每次操作的能耗不到一半。
这里的想法是,仅在需求较高时使用a-15内核,其他时间对其进行电源选通:muller的快速运行和关断的观点。不需要a-15速率的任务可以运行在a-7 cpu上,可以使用dvfs来减小每次任务时的能耗。结果是,系统能够支持性能很高的突发,低功耗工作的时间很长,甚至是soc采用了高泄漏工艺制造的情况。
管理大-小系统的一种方法是使用静态任务分配,把任务分成峰值性能和高能效两部分,相应的把任务分配给cpu。另一方法是通过功耗预知可视化层来控制系统。这一管理程序会认为所有内核功能等价,这些内核工作后,完全根据性能需求,把线程分配给cpu,以满足线程的性能要求,实现最佳总能耗。这种设计会在管理程序和移动任务上消耗额外的能量,但是,能够动态响应环境的变化,或者使用模型的变化。
arm的ip,您的难题
除了电路级极低电压工作方法,以及系统级降低每次任务的能耗方法,arm还建议了一种宽范围执行选择。但是,cpu并不是系统js555888金沙老品牌的解决方案。对于系统设计人员,arm的ip仍然是难度很大的任务。
在超低能耗方面,系统设计人员的难题是规划工作,近阈值或者亚阈值工作的khz时钟应能满足计算的最低要求。在大-小系统中,对系统建模,使用模式就可以知道每一任务的实际性能,而这是一个主要的问题。而第二个难题是,怎样找到一种方法将信息随时传递给任务管理程序。
arm的方向是同时扩展性能功耗曲线的低端,提供一种方法在更长的曲线上拉伸系统。但是,具体实现仍然是系统设计人员的任务。