作者gwliao (gwliao)
看板CSSE
标题Re: [讨论] Low Power?
时间Mon Aug 15 01:03:22 2005
※ 引述《WYchuang (打不留歪庄)》之铭言:
: ※ 引述《saker ()》之铭言:
: : ※ 引述《WYchuang (打不留歪庄)》之铭言:
: : : 说到实际面 ...
: : : 我只看果有某paper利用OS的排程机制来省电(某位老中的paper)
: : : 理由很简单,但是做起来颇麻烦,就是在schedule的时候
: : : 把所有的task作个分析,预测一下每个task下个时间点的IO (这边是最难的部分)
: : : 然後把一样IO的task排在一起执行,当这些一样IO的task都跑过之後
: : : 把该IO调到idle (因为暂时没有task会需要它了)
: : : 其他的都是一堆机率,看都看不懂 XD
就字面上看来,
就是找出task有用到哪些module(Hardware),
然後让那些module睡久一点,
这个基础是module的operation mode switch很耗时or耗能.
没用的module就去睡, 睡越多, power越低.
: : 看到这个我有一点疑问.....
: : 基本上task的新增是随时都有可能的吧...
: : 难道每次schedule时都要重新分析一次? 这样loading会不会太大阿
: : 而且在embedded上还有硬体限制说 我之前听老师说过 基本上
: : 这种想法只能在paper写写而已 因为他们都是考虑理想状况
: : 要真正拿来使用几乎不可能.....不过我没有看过这篇paper
: : 所以我也只是随便说说而已..... :)
:
: ㄟ ... 详细的状况由於年代久远,我早忘了 :-P
: 不过我记得他有实做,然後还有数据的样子 ...
:
即时动态分析就可以了,
那paper我也没看过 :)
但有类似的方式用於cache.
一般cache中的内容, 马上有用到的部份只有被hit的部份,
所以那paper就将原本的3.3v降到1v, 这样速度变的很慢,
但很省power. 降压是部分降, 一部分还是处於高压(快速),
然後有一些方法判定哪些要由高压变低压, 哪些低压变高压,
假如猜对的话, 那个区域的power省很多,
假如猜错的话....花时间由低压变高压 (就是变慢 Orz )
不管CPU如何access memory, 那个cache都不会有问题,
顶多power很大且效能很差 XD
不过那是最差的情况, 在paper的实验中还不错!
Krisztian Flautner, Nam Sung Kim, Steve Martin, David Blaauw,Trevor Mudge.
"Drowsy Caches: Simple Techniques for Reducing Leakage Power,"
ISCA'02, p.p. 148-157.
应该有特定的方式在收集资料, 例如某module的使用情况,
所以每次schedule时, 就可以愈预测这个task和module之间的关系,
进而排出low power的顺序, 所以才有一堆机率.
loading! 就要看演算法和low power的需求度,
就像IA32的主力CPU的power都很高, 而ARM的CPU都不高(有的还很低),
就是看哪个是主要,那个是次要.
在实作中, 都是case by case没有定则, 只有候选方案(建议方法).
: : : 我只看过在即时系统的讨论
: : : 由於real-time sys知道每个task的最短执行时间(理论上啦)
: : : 如果系统可以降速度跑,但依然可以符合此task的时间需求
: : : 那就降速跑,理论上似乎可以省电
: : 那降速跑的功能是作在软体还是硬体阿
: : 如果是软体handle 那不是又要多task来处理这一件工作
: : 那摸分析的task + 降速後的task 会不会反而耗电量比原task还多??
:
: 降速度跑大概是软体决定,硬体执行 ...
: (比较dynamic的东西,硬体做应该会想死吧)
其实也有硬体决定,硬体执行. 只是user没感觉而已,
只发现这个机器的power好像很低 XD
大部分还是体决定,硬体执行.
因为这个能玩的花样很多, 例如在校能极度不需要的妆况下, 关闭cache的电,
这样会省很多电! 或者关闭32 bit的module, 只有16 bit的module!
但这些一但关了, 会影响CPU的正常运做, 所以之後run的code(or功能)要挑选过,
所以当然是软体决定, 不然之後的code要谁保证是挑选过!
也许有人觉得硬体决定,硬体执行的部份没举例不好了解,
那我举个例子: CPU的电压,速度和温度!
电压高->速度快,温度低, 电压低->速度慢,温度高,
我有看过一个电路能侦测温度, 以温度调整CPU的电压来降温,
但有额外的介面, 给软体调这电路能调整电压的范围(包含关闭这电路)
:
: 我自己是觉得,system的东西总是牵涉广泛,往往牵一发而动全身
: 比如说我上次去听清大的某教授报告(专精compiler的教授),
: 他说他们认为OS的low power机制一定要搭配Compiler,效果才会好
: 我到现在还是参不透这句话 XD
简单地说,老王卖瓜!
他是专精compiler的教授, 他会说搭配Compiler的效果不大吗? XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.230.224
2F:→ damon98:compiler的确可以达到比较好的low power 140.123.103.40 08/17