学过很多遍PDP和EDP,以及EDDP(能量延时平方积),但始终感觉没掌握精髓,今天又仔细思考了一遍,小有感悟,记录在下面供大家讨论:
功耗延时积: PDP=P_{avg}\times T_{d} ,即功耗(power)与延迟时间t的乘积
能量延时积: EDP=E_{avg}\times T_{d}=PDP\times T_{d} ,即能量(energy)与延迟时间t的乘积
能量延时平方积: EDDP=E_{avg}\times T_{d}^{2}=EDP\times T_{d} =PDP\times T_{d}^{2} ,即能量(energy)与延迟时间t二次方的乘积
先说几点前提:
比如我们要用一个加法器来做计算,那么需要计算的值不同,这个加法器从输入,计算,得到输出值的延迟时间肯定也都是不同的,那么把所有加法情况考虑进来(或者只用最具有代表性的加法情况),能够计算得到一个平均延迟时间: T_{d} , 而在加法器做上述所有计算的时候我们能测出电路在每一个时间点的功耗是多少,然后计算出对应的平均功率: P_{avg} ,从而可以计算得到对应的PDP,该值衡量了这个加法器完成一次加法运算时消耗的能量(任务量是一次加法)。
因此,PDP衡量了一个电路完成一次对应任务所消耗的能量,所以PDP的值越小越好。
但仅仅有PDP的衡量是不足的,因为我可以将电路设计的功耗P_{avg} 很小,但T_{d} 时间很大,(比如我把上述加法器的工作频率变小,延迟增加。)这样别人设计的加法器延迟只有1ns,而我设计的加法器延迟有100ns,但两者消耗能量相同,PDP值相等,无法考虑电路运行速度的优势。
基于上面阐述,就引入了EDP,即能量延时积的概念,此时在消耗能量相同的情况下,运算速度的因素也被考虑进来了。就像前面说的,如果两个电路完成相同计算消耗的能量相同,对方的设计运行速度更快,说明对方电路使用上的性能更好。(但不一定是基于能量相同的假设,总体上EDP考虑了能量和延时两个概念。)
对于EDDP,则和EDP类似,相当于该指标更多考虑了延时对电路性能的影响。
首先我们知道: P=\frac{1}{2}\cdot C\cdot V_{dd}^{2}\cdot \alpha\cdot f , 如果VDD减小,f减小(因为延迟增加,时钟频率必须下降来满足timing的要求),得到P减小,td增加,对于PDP来说,PDP的值肯定会减小(f减小和td增加抵消),[此时PDP的公式为: PDP∝ C\cdot V_{dd}^{2}\cdot \alpha ], 此时我们可以说这样的电路是更优的吗?当然不行,因为该电路的延迟增加了,如果我们只看PDP,我可以将所有的电路设计的VDD都趋近于阈值电压Vth(不考虑漏电流的影响),此时电路延时会急剧增加,而PDP的值反而变小了,所以只有PDP作为电路设计优略的考虑显然是不行的。而为因此我们使用EDP和EDDP来弥补没有计算延时的不足。
对于CPU,我们首先要知道的一个前提就是CPU是依据指令行事的,即CPU的所有行为都服从于其固定数量的指令集命令,我们看到的电脑运行的所有软件,归根结底就是汇编[指令的数量是确定的],就是对应的二进制操作数, 因此,我们衡量CPU的PDP时,可以这样考虑, T_{d} :即平均执行一条指令所需要的延迟时间(从给入命令到命令执行完成), P_{avg} :CPU的平均功耗,那么计算一个CPU的PDP,就是对于平均执行一个指令,CPU所消耗的能量(这里的任务量是一条指令):
PDP=P_{avg} \cdot T_{d} = P_{avg}\times \frac{CPI}{f} = P_{avg}\times \frac{1}{IPC \times f}
(CPI指一个指令需要多少个时钟周期,IPC指一个时钟周期可以执行多少指令,f是时钟频率)
对于EDP和EDDP也与上述类似,这里就不写出来了。那么对于执行一个指令,消耗的能量PDP越小就越好正确吗?当然也不对,由上面我们提到的P的公式我们可以得到: PDP∝C\cdot V_{dd}^{2}\cdot \alpha\cdot CPI , 也同上面所说的一样,如果我们设计了一个CPU,能运行的时钟频率很小,此时CPI值不变,但是执行一条指令需要的时间很长(比如1s)但PDP的值不会反应该情况,不能和那些可以执行一条指令只有1ns的CPU区分开来,所以不能用只用该值来作为整体衡量电路的指标,具有缺陷。同时这里再介绍一个公式: IPC\times f = \frac{f}{CPI} ∝ MIPS , (MIPS指的是1s内CPU可以执行几百万条指令), 即我们减小了时钟频率,使得MIPS的值减小,电路运算处理能力变差。因此使用EDP和EDDP来弥补PDP的缺陷。
[实际上,当我们降低电路运行频率时,一般会对应降低电压VDD值,这就是DVFS(动态电压频率调整技术),从而虽然时延时td增加了,但与此同时PDP也会下降,因此EDP和EDDP所具有的意义更加微妙和深远,而且PDP,EDP,EDDP都是可以通过直接测量得到的值,所以十分有利于准确又直观的评价一个电路的综合性能。]
这里再强调一下使用EDDP作为全面评价一个电路的指标是最合适的,因为如我们前面提到的,在电压VDD正常的变化范围内,VDD和时钟频率f的关系可以视为线性的,因此,上述的 : P=\frac{1}{2}\cdot C\cdot V_{dd}^{2}\cdot \alpha\cdot f 就会变成: P∝\frac{1}{2}\cdot C\cdot f^{3} , 这时EDDP相当于把延时T_{d} 乘了3次,可以得到: P∝\frac{1}{2}\cdot C\cdot f^{3} \times \alpha \times T_{d}^{3} ∝ \frac{1}{2}\cdot C \cdot \alpha, 从这里可以看出,此时VDD,f和延时td之间的关系被抵消,剩下了纯粹对电路本身性能的考量(此时减小VDD来减小f从而导致td时间增加这种依存关系对电路性能提升的影响考量就会消失。)
最后,为什么说上述加法器和CPU,甚至基本的门级电路的PDP,EDP,EDDP三个指标的值是统一的呢?实际上,这些值都是反应在处理相同任务量(完成相同任务)的情况下,评价一个芯片所具有的性能(与相同功能的其他芯片相比,正如我们一开始提到的)的综合指标。
上一篇:《行为即财富底层逻辑的发现》
下一篇:私域如何精准营销