热度 23
2013-5-20 14:46
1399 次阅读|
3 个评论
修改2008年8月的一篇小文,结合近几年的一些学习,形成此文。 曾经在终端产品化的过程中,耗了好几年.细想起来,一直都在于省电做斗争.后来这些年做芯片的系统架构设计,省电依然是产品化最重要的环节。 为什么终端要省电? 为什么终端能够做得省电? 芯片的省电设计又有哪些因素呢? 这几个问题,我的理解大致这样: 刚设计出来的新的系统,新的终端产品,往往都很忽视省电.因为学通信的人往往只在乎通信协议占的开发,和整个功能,以及射频收发的一些指标问题.所以,刚出来的新终端都会存在省电不好的问题.表现在于,使用的时候发烫. 用户拿到这样的终端,几乎会疯掉.他们会感觉到危险. 如果不是很烫,也会有待机时间短,适用时间短,而且功耗其实也是成本的等等问题.依然会很难占住市场.所以,这样的东东是不能说是产品的. 那这就回答了第一个问题,只要是说终端,尤其是手机,省电的要求是很高的. 终端能够做得省电,这是需要一点点地去抠的. 1) 芯片本身要具有低功耗的设计,有睡眠的模式,可以给软件利用. 2) 板子要设计的简洁,多余的耗电器件尽量换掉. 3) 算法要设计得精巧,在收发的性能与功耗之间找到最佳的折中点. 4) 整个软件设计,要尽量控制利用一切可以休眠的时间休眠.因为通信往往不是连续的,即使表面上看起来是连续的通信,从微观的角度来看亦有一些空隙.所有能利用上的空隙,都要降低芯片在这些时候的耗电. 举例子说: 待机的时候,移动终端不是总在接收的,只是周期性的接收确定时间可能会发来的paging信号,或者是做一些测量的事情,确定是否需要做位置区的更新等移动事务。那么,这里省电的文章就有得做了。让终端尽量醒来干活的时间最短,且在这个醒来的过程中芯片中需要运转起来的部分也尽量最少,这样效果就会大大提高。如果只需要醒来4ms,就不要用8ms,但如果你的电路做得不够好,需要前后加很多时间来稳定电路,或者完成算法,那么时间就拉长了。是不是精品,往往就体现在这些细节的地方。 说到芯片设计中的省电问题,也特别系统,厚厚的一本书来讲了。 举个例子说明: 内核里面往往有好几个执行单元,或者好几个pipeline的控制单元。但一个程序在运行,或者说算法在运行过程中时,这些执行单元并不是都需要参与其中的。这个环节,相对于上面提到的终端而言就很微观了。于是每几拍,每个执行单元需要运行的部分可以有时钟,其他单元时钟可以不翻转,于是电路设计得精巧,则省电的效果又不一样了。还例如,取数据的IO控制单元,其实可能有多个,但往往不是多个都需要同时运行,时钟逻辑控制得越细节,省电设计的效果当然就会越好。 电源域的划分,看起来在芯片的省电设计里也是很基础而关键的环节。 说起来容易,做起来可是不容易的.慢慢抠,电流总是会一点一滴地降下来的.以上几点,每一点都可以展开说挺多内容的.很多细节,我很不是专家,都只是道听途说,了解一些。但确实是很值得深入研究的系统问题。