作者WYchuang (打不留歪庄)
看板CSSE
标题Re: [讨论] Low Power?
时间Sun Aug 21 12:36:17 2005
稍微把上面各位分析的东西整理一下:
有错请指正,谢谢啦
Bus level:
大抵是减少swithing次数,在encoding/decoding的时候动手脚,比如将资料换为
gray code ... etc.
Cache:
找出比较容易Hit的部分,维持那部分的高电压,其他的部分以低电压对待,牺牲小部
分效能来换取大量low power可能性。
Compiler level:(or ISA level)
1. 减少bus switching,作法有很多种比如:
I. 对instruction的顺序做出最好的code,但不影响原有function
(尤其在VLIW架构上,因为指令及很长,比较有机会)
II. 找出程式常有的规则,在设计ISA时使用类似霍夫曼编码的精神,把特定
的instruction pattern间的bus switch降到最低。
2.减少Memory Access机会,尽量提高Cache hit的可能,减少透过Bus存取Data为目的
OS level:
即时动态分析(by stochastic model ... etc),排schedule时加入low power考量,
把最省电的Task schedule找出来。
补充一点我最近听到的,以Linux实做,当OS idle时把OS timer tick速度调慢,这样
整个系统都会慢下来,达到省电的效果。
------------------------------------------------------
看来其实还有很多地方可以玩的,只是小弟我不才,想不到新花样
不过根据上面的描述,我觉得有些地方会冲突
最明显的应该是 compiler 跟 Bus encoder/decoder,当 compiler辛辛苦苦把
instruction排好,却被底层的Bus encoder/decoder的演算法搞的乱七八糟
这是我观察到的矛盾点
--
笑年ㄟ:老板,这是什麽啊?这麽苦!
老板 :笑年ㄟ,这就是人蔘啊 ~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.96.129.115
1F:推 duidae:推 140.112.30.116 08/21
2F:推 jeunder:其实并不矛盾. 如果每一层能够保证处理後, 会比 61.64.150.151 08/22
3F:→ jeunder:原来好, 或者至少不能比较差... 那就不会矛盾. 61.64.150.151 08/22
4F:→ jeunder:当然, 所谓的好或不好的评估方法有待商确, 尤其 61.64.150.151 08/22
5F:→ jeunder:在多层最佳化的情况下, 其间的交互作用所带来的 61.64.150.151 08/22
6F:→ jeunder:复杂关系, 是很难厘清的... 我知道你所顾虑的... 61.64.150.151 08/22
7F:推 gwliao:两位考虑的很周详, 但实际状况实在无法预期!140.112.230.224 08/22
8F:→ gwliao:所以做Bus encoding研究的都有留後路,140.112.230.224 08/22
9F:→ gwliao:就如jeunder说的, encode後效果差就bypass掉 XD140.112.230.224 08/22
10F:→ gwliao:不过有的方法就没这功能, 因为这样会让速度变慢140.112.230.224 08/22
11F:→ gwliao:因为有的方法是用於on-chip bus,有的是off-chip140.112.230.224 08/22
12F:→ gwliao:不过那些没bypass的方法都宣称在"一般情况"下,140.112.230.224 08/22
13F:→ gwliao:不会变差 XD140.112.230.224 08/22