一、前言
随着计算机技术和微电子技术的迅速发展,嵌入式系统应用领域越来越广泛。节能是全球化的热潮,如计算机里的许多芯片过去用5V供电,现在用3.3V,1.8V,甚至更低的电压。目前的低功耗设计主要从芯片设计和系统设计两个方面考虑。随着半导体工艺的飞速发展和芯片工作频率的提高,芯片的功耗迅速增加,而功耗增加又将导致芯片发热量的增大和可靠性的下降。因此,功耗已经成为深亚微米集成电路设计中的一个重要考虑因素。为了使产品更具竞争力,工业界对芯片设计的要求已从单纯追求高性能、小面积转为对性能、面积、功耗的综合要求。而微处理器作为数字系统的核心部件,其低功耗设计对降低整个系统的功耗具有重要的意义。
低功耗设计可以在不同层级上进行,不同层级对功耗的减少程度和贡献也不尽相同,大体上分为架构层,逻辑层,物理层。层次越高对功耗较少就越明显,好的架构是好的开始,是功耗成功减少的开始。
上图示意了各层对功耗的贡献点以及可以进行优化或者改进的地方。
上表示意了每一层在总功耗中所占的比例,可见层次越高,对功耗影响越大!
二、系统级功耗减少方法
2.1 片上系统
纳米级工艺的高端芯片,在I/O电压为3.3v时,I/O上消耗的功耗大约为核心逻辑功耗的50%,所以如果整个系统由很多独立的芯片构成,那么将有很多的功耗耗在芯片的互联上。
SOC的出现在很大程度上解决了这一问题,也就是一颗芯片上将大部分的功能芯片都集成进去,如一个网络处理器SOC里面会有CPU,BUS,DRAM,SWITCH,PCIE,USB,PON等等。
2.2 软硬件划分
在数字系统中出现的嵌入式系统使得软硬件划分变得更加清晰明确了,什么归硬件处理,什么归软件处理,如何协同处理则变成了一门学问。好的软硬件划分同样可以减少很多的功耗。
通信算法本质上是高度递归的,这意味着小的代码块占了大量的处理资源,90%的时间消耗在10%的代码上,如果这些算法代码可以用硬件实现的话可以节省很多的功耗。有文献表明HDTV Chromakey algorithm总共有22000行,但是其中有15行关键的loop用硬件实现后功耗节省了77%。
下图示意了软硬件划分的过程以及每一步需要做什么。
2.3 软件低功耗
很多硬件工程师在设计IC芯片时会将功耗问题考虑进去,但是很多软件工程师在设计软件代码时脑海里却很少有低功耗的概念,其实这是错误的,不好的软件有时导致的功耗消耗会比硬件还大。
如上图的两个for循环整合成一个for循环的效果就要好很多,另外软件低功耗狠多时候需要和硬件搭配好,充分利用硬件的性能,然后发挥软件的灵活性。
2.4 选择合适的处理器
处理器的选择在很大程度上会对功耗造成影响,例如一个16bit的处理器,在执行16bit的乘法时需要执行30条指令,而在8bit的处理器上,则需要127条指令;而拥有16bit并行乘法器的乘法计算单元的处理器上,则一条指令则可以执行完毕。
curton 2019-4-5 16:08