作者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
推 duidae:推 140.112.30.116 08/21
推 jeunder:其實並不矛盾. 如果每一層能夠保證處理後, 會比 61.64.150.151 08/22
→ jeunder:原來好, 或者至少不能比較差... 那就不會矛盾. 61.64.150.151 08/22
→ jeunder:當然, 所謂的好或不好的評估方法有待商確, 尤其 61.64.150.151 08/22
→ jeunder:在多層最佳化的情況下, 其間的交互作用所帶來的 61.64.150.151 08/22
→ jeunder:複雜關係, 是很難釐清的... 我知道你所顧慮的... 61.64.150.151 08/22
推 gwliao:兩位考慮的很周詳, 但實際狀況實在無法預期!140.112.230.224 08/22
→ gwliao:所以做Bus encoding研究的都有留後路,140.112.230.224 08/22
→ gwliao:就如jeunder說的, encode後效果差就bypass掉 XD140.112.230.224 08/22
→ gwliao:不過有的方法就沒這功能, 因為這樣會讓速度變慢140.112.230.224 08/22
→ gwliao:因為有的方法是用於on-chip bus,有的是off-chip140.112.230.224 08/22
→ gwliao:不過那些沒bypass的方法都宣稱在"一般情況"下,140.112.230.224 08/22
→ gwliao:不會變差 XD140.112.230.224 08/22