自动门控时钟技术在聚芯SoC1000C中的应用
2009-05-21
作者:王伊蕾1,李 涛2,宋丽华1,
摘 要: 针对SoC中时钟网络的自动门控时钟技术进行应用方法的研究,主要以聚芯SoC1000C的CPU核为基础,通过对其内部时序逻辑特点的分析,提出以精确可靠的时序分析为基础的时钟网络设计方案,从而在不增加物理设计复杂度的情况下大大降低SoC的时钟功耗,同时达到改善时序性能和芯片面积的效果。
关键词: SoC1000C;单片机;门控时钟
近年来,芯片的内部时钟频率飞速增长,由于其时钟树的翻转率固定为时钟频率的2倍,而其他信号每个周期的平均翻转率通常要远小于1,因此时钟树以及触发器单元的功耗消耗要比处理器中其他非时序单元的功耗消耗大得多。芯片中的时钟网络包括时钟树以及时钟树所驱动的触发器两大部分,这两部分由于具有翻转频率高、分布广、连线长等特点,所以不论从延迟、可靠性,还是从功耗的角度看,时钟网络都是处理器中需要细心考虑的关键部分。根据功耗分析的结果,由时钟树和触发器组成的时钟网络虽然在单元数目上只占处理器所有单元数目的不到百分之十,但这部分的时钟功耗却通常占处理器总功耗的30%以上。例如在Alpha 21264中占总功耗的32%[1],Itanium2中占总功耗的33%[2],在龙芯2E处理器中达到47%[3]。
1 自动门控时钟技术原理
门控时钟技术是在寄存器排的时钟网络上插入门控电路,产生一个消除寄存器不必要活动的控制信号,减少了电路中不必要的信号翻转,从而降低功耗。当前,支持自动门控时钟技术的EDA工具,如Synopsys公司的Power Compiler,可以将以上三种类型的RTL代码自动映射为如图1所示的电路,触发器原先的使能端EN同时关闭时钟。为此,需要在时钟树上增加一个基本门控单元,它由一个逻辑与门(AND)和一个用来防止生成毛刺的锁存器(LATCH)组成,从而保证时序的正确性。当EN端为低时,寄存器排的时钟被自动关闭,有效降低了功耗;而当EN端为高时,寄存器排的时钟被自动打开,从而确保了电路的正常工作。当EN越长时间为低时,功耗优化效果会越明显。
根据门控时钟原理不难看出,门控时钟的引入可以带来如下好处:首先门控使能关闭时,位于门控单元后面的时钟不再翻转,因此节省了相应的时钟树与触发器上的时钟功耗;其次,加入门控逻辑后,被门控的每个触发器不再需要一个单独的多路选择器,因此进一步减少了功耗和面积;第三,面积的缩小可以降低物理设计时的布线拥塞度,对芯片的时序会有所改善,意味着芯片性能的提升。但与此同时会增加门控单元的代价以及时钟线的负载,并且带来了一系列与物理设计相关的问题,包括时序分析、可测性设计和验证等[4]。
2 自动门控时钟技术的应用问题与解决方法
虽然自动门控时钟技术理论上可以有效降低芯片功耗,甚至同时达到提高性能和减少面积的效果,但在当今EDA工具发挥重要作用的芯片设计流程中,还缺乏完备的支持。例如在中科SoC和聚芯SoC1000A两个版本中,都没有采用这种方法。如果依靠全定制设计来解决,就限制了ASIC设计流程对自动门控方法的使用。
2.1 时序分析问题
时序问题是自动门控时钟技术使用过程中最棘手的问题,其严重限制了这种技术的使用与推广。本文分析了自动门控时钟潜在的时序问题,并说明非理想时钟情况下,传统方法仍然可能导致门控后的时钟产生毛刺并针对工程实现给出解决方法。
图2所示是一个基本的门控单元。由于与门(AND)在时钟树上,CLK传递到ENCLK的延迟变大,因此DATAIN数据推迟到达寄存器排的Q端,DATAOUT后面的组合电路将要在不足一个时钟周期内完成,从而造成时序紧张。这种时序紧张只可能导致性能的下降而不会造成错误,但性能的下降也会带来严重的后果。如图3所示,EN由于其之前组合逻辑的作用产生一个毛刺(不足一个时钟周期),此时经过LATCH延迟delay时间后传递到ENL。假设CLK到达B点的延迟大于到达A点的延迟,即存在时钟偏斜skew且大于delay,这样ENCLK仍然会产生一个毛刺而不会被屏蔽,从而造成严重后果。
为了防止时钟产生以上分析的毛刺,只要门控时钟的建立时间和保持时间都得到满足,ENCLK就不会出现毛刺,并且可以在理论上得到占空比为1的时钟波形。因此只要对布线后网表的门控逻辑进行精确的静态时序分析(简称STA)[4],就可以保证自动门控时钟技术的可靠性。在一个电路中,门控时钟的建立时间和保持时间如何计算是一个复杂的过程,本文将针对Artisan 0.18 μm工艺进行实验和分析。
2.2 可测性设计问题
半导体在制造过程中可能带入各类失效,例如材料的缺陷以及工艺偏差都可能导致芯片中电路的短路、断路以及器件节点间穿通等问题,而这样的物理失效必然导致电路功能或者性能方面的故障。结构化测试可以定位生产制造过程中的故障,并且确保连线、晶体管等基本成分生产制造的正确性。为此原始设计需要加入只在测试过程中才使用的测试逻辑,以便于高质量测试向量的自动产生,同时也提供诊断失效器件的高效率方法,通常称这一过程为可测性设计(简称DFT)[5]。
本文关注的主要内容并不是DFT,但加入自动门控而不对原有DFT进行改动则会影响设计的可测性。例如,在没有加入自动门控时钟的设计中,所有触发器链接成一条扫描链,它们的CLK端(时钟端)与芯片时钟直接相连,以促使测试数据的传递。而在加入自动门控时钟之后(如图4所示),门控触发器的CLK端并不与时钟直接相连,当其之前的门控使能信号EN为低时,深色区域的电路将不具有可测性,从而影响扫描链的正常工作。当然可以将这类触发器从扫描链中删除,但后果是部分电路的可控性和可观察性都将降低,而当这类触发器占有相当大数量时,芯片的故障覆盖率(Fault Coverage)将会大幅度降低。
2.3 面积问题
自动门控时钟方法除了可以降低时钟网络的功耗,还可以减少综合后逻辑的面积,这是因为门控时钟方法可以消除大量反馈电路的多选器,取而代之的是一个LATCH和一个与门。表1列出Artisan 0.18 μm工艺库中的一组真实的多选器、LATCH以及与门的面积。数据表明,如果使用该工艺库,两个多选器的面积相当于一个门控单元(含一个LATCH和一个与门)的面积。因此当寄存器排中触发器的数量即位宽(Bit Width)超过2时,使用门控时钟方法将减少面积,而当位宽增大时,面积减小的效果会更加明显。
EDA工具提供了灵活的选项供设计者使用,用户可以选定当寄存器排中触发器数量超过特定数值时,才自动插入门控时钟单元。例如使用Artisan 0.18 μm库时,可以选择当寄存器排的位宽超过2时,对该寄存器排插入门控。
2.4 等价性验证问题
等价性验证比较RTL级与门级或门级与门级来保证设计没有偏离初始的设计意图。在一个典型的流程中,用户经常使用等价性验证比较RTL源码与综合后门级网表的逻辑功能等效性。这个过程通常用于整个设计周期,例如在扫描链插入、时钟树综合、优化、手工网表编辑等流程中,以便在流程的每一阶段都能在门级维持原始的功能。这样,在整个设计周期中就不再需要耗时的门级仿真,大幅度提高了设计和验证效率。
Formality是Synopsys公司推出的高性能、高速度的全芯片的形式验证工具[6],但是在自动门控插入后,RTL源代码与其门级网表不再等价。为此,需要在Formality环境中添加涉及门控时钟插入的配置如下:
fm_shell>set verification_clock_Gate_hold_mode any
这样,就可以精确得出RTL源代码与其综合而成的门级网表是否逻辑等价。
3 实验结果与分析
3.1 自动门控时钟技术的逻辑综合与结果分析
选择对聚芯SoC1000C的CPU核进行实验,这是因为其功耗比重最大(原始方法达70%),时钟单一(除接口模块和EJTAG模块之外整个CPU核只有一个时钟),功耗优化过程易于实现且效果明显。为保证功耗分析的精度,实验采用Artisan公司0.18 μm工艺库进行综合并进行物理设计,对带有电容和延迟信息的门级网表进行功耗计算。实验工具选用了工业界主流的EDA软件:综合选用Synopsys公司内嵌Power Compiler的Design Compiler,仿真选用Cadence公司的NCVerilog,功耗计算选择Synopsys公司的Power Compiler和Prime Power,物理设计选用Synopsys公司的Astro。
与自动门控时钟技术实现相关的综合脚本如图5所示,包含门控时钟单元风格的定义、最小位宽定义、门控相关的时序检查、DFT信号的连接等命令。为保险起见,参考前述Hspice的仿真结果,将门控时钟的建立时间和保持时间检查保守地设为0.25 ns。
对聚芯SoC中除CPU核以外的其他部分的寄存器和可以门控的寄存器数量进行了统计。由于CPU核中触发器数量占整个聚芯SoC的一半以上,甚至超过PowerPC 405LP的门控触发器比例(Power PC 405LP中CPU和其他部分分别为80%与50%[Nowka02]),所以这种方法的效果将会非常明显,甚至可以超过PowerPC 405LP。
为了分析自动门控时钟技术芯片性能的影响,对比了原始版本和自动门控时钟版本(分别采用test_mode和scan_enable两种不同DFT方式),综合后的时序结果如表2所示。保持时间(hold time)通常可以在后端物理设计时加以考虑和解决,因此可以暂时忽略。就建立时间(setup time)而言,门控的两个版本的时序结果都会略优于不带门控的原始版本,其主要原因是由于面积从原始的6 053 441μm2分别减少到5 690 474 μm2(test_mode)和5 527 114μm2(scan_enable),分别减少了6%和9%,从而使布线拥塞度显著降低,更加便于物理上的布局布线。
3.2 功耗仿真与分析
本文最终利用test_mode的门控版本网表进行进一步的物理设计和功耗分析实验。在运行Dhrystone测试下,整个聚芯SoC1000C功耗为0.564 W,内部各IP核功耗分布如图6所示,其中CPU核功耗为0.252 W,其内部各模块功耗分布如图7所示。研究发现,即使在聚芯SoC1000C中添加了MAC和CAN等IP核,同聚芯SoC1000A的0.99 W功耗相比,整个芯片仍然降低了43%的功耗。由于CPU采用了自动门控时钟技术,功耗比例降低为整个芯片的47%,而内部RAM所占的比例加大,这是由于自动门控时钟技术降低带有触发器的时钟网络功耗,但并没有能够有效降低RAM功耗。
本文以降低SoC中的时钟网络功耗为出发点,分析了现有自动门控时钟技术的工作原理,并提出该技术在ASIC设计应用过程中的困难,结合当今EDA厂商提供的软件特性,提出了相应的解决方案,从事实上缓解了设计难度并提高了设计的可靠性。本文提出的解决方法在聚芯SoC1000C的CPU核中进行实验,结果表明,该方法可以使整个芯片的功耗降低43%以上。在今后的工作中,将进一步考虑这种方法在复杂的多时钟域设计中可能存在的问题,并有望在聚芯SoC2000中得到进一步应用,从而大大降低SoC的时钟功耗。此外,由于RAM的功耗比例变大,已经成为功耗的瓶颈,因此下一步的工作将研究低功耗的RAM结构。
参考文献
[1] GOWAN M K,BIRO L L,JACHSON D B.Power considerations in the design of the alpha 21264 microprocessor[J].In:Proceedings of the 35th Annual Design Automation Conference(DAC′98),Los Alamitos USA,1998.
[2] NAFFZIGER S,Colon-Bonet G,FISCHER T,et al.The implementation of the itanium 2 microprocessor[J].IEEE Journal of Solid-State Circuits,2002,37(11).
[3] 张戈.高性能通用处理器核的低功耗技术研究[D].博士学位论文,中国科学院计算技术研究所,2006.
[4] Synopsys Prime Time User Guide[M].Release U-2005.06-QA,2005,6.
[5] BUSHNELL M L,AGRAWAL V D.Essentials of electronic testing for digital,memory,and mixed-signal VLSI circuits[M].Kluwer Academic Publishers,2000.
[6] Synopsys Formality User Guide[M].Release U-2005.06-QA,2005,6.