作者gwliao (gwliao)
看板CSSE
标题Re: [讨论] Low Power?
时间Mon Aug 15 01:10:40 2005
※ 引述《WYchuang (打不留歪庄)》之铭言:
: ※ 引述《invalid (everlasting)》之铭言:
: : 我之前有听过做processor的一种降低power的方法
: : 主要是重新针对power最佳化instruction code..
: : 就以电路的观点,1111-> 0000 会比1111->1110来的耗电的多
: : 也就是可以针对几个常用的code进行重组,就有点像gray code
: : 不过gray code是用在通讯上,不算是对power最佳化
: : 不知道搭配Compiler会不会跟这个有一点关系@@...
: 原来gray code是用在通讯上的啊,小弟才疏学浅以前一直以为是用在
: 硬体的Bus上
: 我只有隐约记得,因为充放电的关系
: 在Bus上传输 1 --> 对电容充电
: 在Bus上传输 0 --> 对电容放电
: 如果每次在Bus上一直传一些变动性很大的东西
: (ex: 0000 -> 1111 -> 0000 -> 1111 ...)
: 这样就非常耗电,因为你一直在充电/放电
: 所以可以的话,一次变一个digit,这样就可以省电了
: 有错欢迎指正唷 ...
他们的power是算switch的次数,
依据P=(1/2)*A*C*V*V, P: power V:电压, C:该点的电容, A:该点switch的次数
所以固定V,C的话, 减少A (switch的次数)就是low power.
用gray code是希望降低CPU的Bus上的switch数量,
但也不一定要gray code, 也有很多人用其他的方式,
只要就是减少switch数量.
在Compiler上的话, 常常是找出function一样,但bus的switch数量比较少的
instruction排法.
有的还考虑ISA的op-code的编码, 以求bus的switch数量比较少!
例如: mov常接着add的话, 那mov和add的op-code就不能有太多switch;
mov不常接着jnz的话, 那mov和jnz的op-code就可以有较多的switch;
Power-efficient bus design: Spatial encoding circuit techniques for
peak power reduction of on-chip high-performance buses.
Himanshu Kaul, Dennis Sylvester, Mark Anders, Ram Krishnamurthy, ISPD'04.
Bus-invert coding for low-power I/O.
Mircea R. Stan, Wayne P. Burleson.
IEEE Transactions on Very Large Scale Integration (VLSI) Systems.
Volume 3 , Issue 1 (March 1995)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.230.224
※ 编辑: gwliao 来自: 140.112.230.224 (08/15 01:55)
1F:推 WYchuang:感谢补完 :-) 140.96.129.115 08/15
※ 编辑: gwliao 来自: 140.112.230.224 (08/15 03:37)