低功耗动态功能单元分配策略解析
1. 引言
随着计算机复杂度和时钟速度的不断提升,功耗已成为微处理器设计中的关键问题。低功耗技术不仅能提高时钟速度,还能延长电池续航时间。本文介绍了一种简单的硬件方案,通过检查操作数的少量位并相应地分配功能单元,成功将整数 ALU 操作的功耗降低了 17%,浮点操作的功耗降低了 18%。虽然整体功耗降低约 4%,但这种方法仍有重要意义。一方面,可以与其他针对芯片不同关键区域的技术结合使用;另一方面,执行单元功耗降低 17% - 18% 本身就很有价值,因为执行核心是处理器内功率密度的热点之一。此外,还提出了一种名为“交换”的独立编译器优化方法,可将整数 ALU 操作的功耗降低效果进一步提升至 26%。
2. 功能单元的能量建模
为许多计算模块开发简单的功耗模型时,采用了一系列近似方法。模块中功耗的主要来源是其门的动态充电和放电,即开关电容,它取决于模块的输入值。连续输入模式的汉明距离(即它们之间不同的位位置数量)可作为功耗的合适度量。功率模型可表示为:
[P = \frac{1}{2}CV^{2}f\sum_{k = 1}^{n}a_{k}C_{k}]
其中,(V) 是电压,(f) 是时钟频率,(C_{k}) 是输出门 (k) 的电容,(a_{k}) 是输出门 (k) 的转换次数(称为开关活动),(C) 是模块的总电容,汉明距离是当前输入与前一个输入之间的差异。
由于功耗与汉明距离近似线性相关,因此希望最小化汉明距离。现代处理器包含多个整数算术逻辑单元(IALU)和多个浮点算术单元(FPAU),通过更好的分配可以降低功耗。例如,在图 35 - 1 中,交替路由通过减少周期 1 和周期 2 之间的汉明距离,消耗的功率更