功耗分类:启动功耗(浪涌)、静态功耗、动态功耗;
降低功耗可以在各个层次上降低,但最好是在高级一点的层次上降低及在系统级或体系结构及降低;
系统级:
1. 由于I/O使用比芯片内核逻辑更高的电压供电,所以I/O使用占用总功耗的50%,所以减小整个系统的芯片间的连接,尽量集成在一块芯片上,
片上系统主要就是关注降低功耗,缩减面积以及降低成本。
2.软硬件协同设计,事实上10%的代码花费90%的执行时间,如果把资源密集型模块能用硬件实现,就能节约大量功耗。
体系结构级:
1.高级门控时钟;(之前随笔有提到过)
2.动态电压、频率调节:对频率不敏感的应用阶段中降低时钟速率和供电电压,可以在性能适度损失的境况下大幅度降低功耗。
在处理器不需要全速运行时,可以简单地通过降低频率来达到降低功耗的目的。
3.异步(无时钟)设计;减少时钟上的能量损耗。
4.电源门控,(细粒度电源门控,粗粒度电源门控)
5.多阈值电压晶体管(高阈值电压功耗低,低阈值电压功耗高);
6.多电压供电,使用电压岛或者电压域,根据每个区域时序的要求而提供不同的供电电压;
7.存储器电源门控;(不使用存储器阵列时将其关闭);
寄存器传输级降低功耗:
1.状态机编码和解码:在各种状态机设计类型中,格雷码是最适合降低功耗的设计;有效状态机分解达到一个在运行另一个关闭。
2.二进制表示法:在-1to0转换时用有符号表示比用补码表示更有利;
3.RTL代码风格产生门控时钟,
4.独热码多路器:case或if语句选择时采用独热码。
5.除掉多余的转换:总线数据会发生无意义转换,如下load_out无效的时候应把load_op也设为无效,另外操作1和操作2转换也可以控制不用时不转换;
6.资源共享,资源复用;
7.总线反转:在当前数据和下一个数据之间的差值大于N/2时(N为总线宽度)就将下一个数据反向后传输;
8.大规模逻辑云启用和禁用,(宽加法器、乘法器)。
寄存器级:
1.工艺沟道尺寸;
2.衬底偏压;采用动态偏压形式,在工作模式下保持较小的偏压保持阈值电压小从而保持性能,在保持模式下加强偏压,从而减小功耗。
3.减小氧化层厚度;
4.多氧化层器件;
5.减小电容;
静态功耗:是由漏电流引起的功耗;
- 多阈值工艺,阈值越大漏电越小;
- 电源门控,控制在不工作时电源断开。
动态功耗:分为反转功耗和短路功耗,反转功耗是0~1反转时的功耗,短路功耗是Pmos和nmos都导通时候的功耗;
- 多电压域技术;
- 门控时钟;
- 动态电压和动态频率调节;