动态时钟配置下的 SoC 低功耗管理引 言??随着集成电路技术的'飞速进展和对消费类电子产品——特别是 便 携 式 ( 移 动 ) 面 对 客 户 的 电 子 产 品 的 需 求 , 推 动 了SoC(System on Chip)的飞速进展,也给人们提出了许多新的课题[1]。对于电池驱动的 SoC 芯片,已不能再只考虑它优化空间的两个方面——速度(performance)和面积(cost),而必须要注意它已经表现出来的且变得越来越重要的第三个方面——功耗[1],这样才能延长电池的寿命和电子产品的运行时间。图 1 SoC 中 CMOS 电路功耗有:一是静态功耗,主要是由静电流、漏电流等因素造成的;二是动态功耗,主要是由电路中信号变换时造成的瞬态开路电流(crowbar current)和负载电流(load current)等因素造成的[2],它是 SoC 芯片中功耗的主要来源[3]。因此,解决好 SoC 中的动态功耗是降低整个 SoC 芯片功耗的关键。本文后面所提到的功耗就是指 SoC 芯片中的动态功耗。 如何降低 SoC 中的功耗,从不同的层面分析会得出不同的解决方案。从芯片的系统级(architecture)角度考虑,有低功耗总线设计、低功耗存储系统设计、低功耗时钟网络设计、开发系统的休息模式、时钟门控等技术;从芯片的行为级(RTL)角度考虑,有信号门控、预前计算、操作数分离、状态机优化、并行和流水结构等技术;从芯片的门级(gate)角度考虑,有缓冲插入、提取因子、单元缩放、管脚交换、相位配置等技术[4]。从越高的抽象层次去考虑功耗问题,芯片功耗优化的幅度就越显著。 本文所提出的基于动态配置时钟的 SoC 低功耗管理是从芯片的系统级角度考虑的。在最后的实验中,它非常明显地降低了整个芯片的功耗。1 动态配置时钟的 SoC 低功耗管理原理 基于微处理器应用的 SoC 设计,其复杂程度变化很大:在一些应用中可能需要用到所有的硬件资源,但是在其它的一些应用中可能只需要用到其中一部分硬件资源;在一些应用中可能需要很高的工作频率,而在其它的一些应用中却可以大大降低工作频率。动态管理 SoC 系统时钟的思想就是:不仅动态地管理 SoC 内部模块的时钟源供给,还可以动态地配置 SoC 系统的时钟频率。 动态地管理 SoC 内部模块的时钟源供给就是,根据不同的应用,管理 SoC 内部的硬件资源。简而言之,就是进行内部模块的开和关的操作。关闭单个模块,可以通过对每个模块设置一个使能位,然后对这个使能位编程做到关闭或打开那...