到底哪个才是cpu功耗天梯.c

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
μCOSII内核扩展接口的低功耗模式.pdf 3页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
μCOSII内核扩展接口的低功耗模式.pdf
你可能关注的文档:
··········
··········
内核扩展接口的低功耗模式
在嵌入式实时操作系统中!如何在操作系统层面尽量降低系统功耗已成为一个值得研究的问题&本文以
嵌入式实时操作系统
为例!以飞思卡尔 位单片机
作为硬件平台!详细讨论如
何实现一个低功耗的实时操作系统!如何利用
内核扩展接口省电$详细分析如何选择一种合
适的单片机低功耗模式!说明利用
内核扩展接口实现一个低功耗系统的可行性&
内核扩展接口
低功耗模式
后9将执行节拍中断服务程序9重新判断是否有任务处于
就绪态o如果有9就执行该任务;如果没有9则重复上面的
随着消费类电子产品的功能日益复杂9在其中移植或
固化实时操作系统已不是新鲜事了9如手机\
最多可以管理
个任务9并为每一个任
对于该类产品9低功耗特性往往占有举足轻重的地位o如
务分配一个不同的优先级o每一个任务有五种可能的状
何在操作系统层面上9尽量降低系统功耗9是一个值得探
态 睡眠态\就绪态\运行态\等待态和中断服务态o
讨的问题o一般来说9嵌入式 CPU 都具有低功耗的工作
属于可剥夺型内核9也就是说9
模式9如果在任务调度的空闲时间9使 CPU 进入这种模
运行进入就绪状态的优先级最高的任务o一旦优先级高
式9就能大幅度降低系统功耗o
的任务进入就绪态9就可以将 CPU 从低优先级任务中抢
本文以嵌入式实时操作系统
在飞思卡尔
位单片机 HCSOSGT6O 上的移植为例9详细讨论如何利用
初始化时9会建立一个优先级最低的任
给出的内核扩展接口9实现一个低功耗的嵌入
务 空闲任务9在没有任务进入就绪态的时候9空闲任
式实时系统;进一步分析
正在加载中,请稍后...CPU省电的秘密(二):CStatesa year ago其中Count表示所支持的Cstate的个数CState: Package ( Register ,
Register表示OSPM调整C-state的方式,Type表示CState的类型(1=C1, 2=C2, 3=C3)。Latency表示进入该Cstate的最大的延迟, Power表示在该Cstate时的功耗(单位是毫瓦)。下面是个样例,这个CPU支持4个Cstate,其中C1使用FFixedHW的方式访问,其它3个Cstate都是通过IO方式。Name(_CST, Package() {
Package(){ResourceTemplate(){Register(FFixedHW, 0, 0, 0)}, 1, 20, 1000},
Package(){ResourceTemplate(){Register(SystemIO, 8, 0, 0x161)}, 2, 40, 750},
Package(){ResourceTemplate(){Register(SystemIO, 8, 0, 0x162)}, 3, 60, 500},
Package(){ResourceTemplate(){Register(SystemIO, 8, 0, 0x163)}, 3, 100, 250}
_CSDC-State Dependency 用于向OSPM提供多个Thread(逻辑Core)之间Cstate的依赖关系。比如在一个Dual Core的平台上,每颗核可以独立运行C1但是如果其中一个核切换到C2,另一个也必须要切换到C2,这时就需要在_CSD中提供这部分信息。上面的逻辑通过程序看可能会更加直观。大家可以访问在Github上的Minnow3项目的源程序。代码在3.OSOS在收集到了各个ACPI CStates的耗电和延时数据后,会综合考虑迁移到各个状态的代价,而这些是一个叫做电源策略管理器(power policy manager)的模块来管理,在用户选择了不同的运行场景(可以调用powercfg.exe查看修改)情况下,根据目前工作量来调用processr.sys,这是个通用驱动,它再调用不同的CPU厂商的特有驱动来切换,Intel的EIST驱动是intelppm.sys,后记现在不但各个操作系统利用CStates来省电,甚至在固件的短短运行周期里也会在内核不工作时使其进入Cstate。有兴趣的人可以查看EDKII的CPU代码,其通过一个PCD来控制Idle时是Busy Idle, HLT还是更深的Cstate。其他CPU电源管理文章:欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!用微信扫描二维码加入UEFIBlog公众号赞赏还没有人赞赏,快来当第一个赞赏的人吧!47收藏分享举报文章被以下专栏收录一起来探索UEFI/BIOS和固件的秘密{&debug&:false,&apiRoot&:&&,&paySDK&:&https:\u002F\u002Fpay.zhihu.com\u002Fapi\u002Fjs&,&wechatConfigAPI&:&\u002Fapi\u002Fwechat\u002Fjssdkconfig&,&name&:&production&,&instance&:&column&,&tokens&:{&X-XSRF-TOKEN&:null,&X-UDID&:null,&Authorization&:&oauth c3cef7c66aa9e6a1e3160e20&}}{&database&:{&Post&:{&&:{&isPending&:false,&contributes&:[{&sourceColumn&:{&lastUpdated&:,&description&:&从首次运用于Intel 安腾处理器,到第一版统一的可扩展固件接口(UEFI)规范出版,无论是在高性能服务器,移动设备或是深度嵌入式设备等,UEFI已在所有平台完全淘汰了BIOS。这里有关于UEFI的一切。&,&permission&:&COLUMN_PUBLIC&,&memberId&:,&contributePermission&:&COLUMN_PUBLIC&,&translatedCommentPermission&:&all&,&canManage&:true,&intro&:&一起来探索UEFI\u002FBIOS和固件的秘密&,&urlToken&:&UEFIBlog&,&id&:31421,&imagePath&:&v2-15d9e454e5aa7f55a88f.jpg&,&slug&:&UEFIBlog&,&applyReason&:&0&,&name&:&UEFI和BIOS探秘&,&title&:&UEFI和BIOS探秘&,&url&:&https:\u002F\u002Fzhuanlan.zhihu.com\u002FUEFIBlog&,&commentPermission&:&COLUMN_ALL_CAN_COMMENT&,&canPost&:true,&created&:,&state&:&COLUMN_NORMAL&,&followers&:16650,&avatar&:{&id&:&v2-15d9e454e5aa7f55a88f&,&template&:&https:\u002F\u002Fpic1.zhimg.com\u002F{id}_{size}.jpg&},&activateAuthorRequested&:false,&following&:false,&imageUrl&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-15d9e454e5aa7f55a88f_l.jpg&,&articlesCount&:94},&state&:&accepted&,&targetPost&:{&titleImage&:&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-5ca7e28fcb0f53_r.jpg&,&lastUpdated&:,&imagePath&:&v2-5ca7e28fcb0f53.jpg&,&permission&:&ARTICLE_PUBLIC&,&topics&:[,1030],&summary&:&前一篇关于EIST的文章中,我们提到了CStates,这里我们详细介绍一下它的由来和运行机理。原理篇上一篇文章中我们介绍了EIST,OS在工作任务不重的时候,可以调用硬件提供的接口对CPU进行降频降压以节省用电。但是如果不但任务不重,而是无事可干怎么办,为什…&,&copyPermission&:&ARTICLE_COPYABLE&,&translatedCommentPermission&:&all&,&likes&:0,&origAuthorId&:0,&publishedTime&:&T09:24:56+08:00&,&sourceUrl&:&&,&urlToken&:,&id&:2456997,&withContent&:false,&slug&:,&bigTitleImage&:false,&title&:&CPU省电的秘密(二):CStates&,&url&:&\u002Fp\u002F&,&commentPermission&:&ARTICLE_ALL_CAN_COMMENT&,&snapshotUrl&:&&,&created&:,&comments&:0,&columnId&:0,&content&:&&,&parentId&:0,&state&:&ARTICLE_PUBLISHED&,&imageUrl&:&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-5ca7e28fcb0f53_r.jpg&,&author&:{&bio&:&UEFI固件、服务器、嵌入式产品、开源硬件从业者&,&isFollowing&:false,&hash&:&8feb0fc53a08ea672a5f&,&uid&:990800,&isOrg&:false,&slug&:&mikewolfwoo&,&isFollowed&:false,&description&:&致力于将deep learning等AI引入固件和开放硬件体系中。\nLet's learn something today!&,&name&:&老狼&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fmikewolfwoo&,&avatar&:{&id&:&v2-86ea4b8b7df16d9c219613abc03b1ee5&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},&memberId&:,&excerptTitle&:&&,&voteType&:&ARTICLE_VOTE_CLEAR&},&id&:587451}],&title&:&CPU省电的秘密(二):CStates&,&author&:&mikewolfwoo&,&content&:&\u003Cp\u003E前一篇关于EIST的文章中,我们提到了CStates,这里我们详细介绍一下它的由来和运行机理。\u003C\u002Fp\u003E\u003Ch2\u003E原理篇\u003C\u002Fh2\u003E\u003Cp\u003E上一篇文章中我们介绍了EIST,OS在工作任务不重的时候,可以调用硬件提供的接口对CPU进行降频降压以节省用电。但是如果不但任务不重,而是无事可干怎么办,为什么不干脆关掉这个内核呢?\u003C\u002Fp\u003E\u003Cp\u003E想象一下,我们新建了一个有八个大车间的新工厂,厂房干净漂亮,传送带笔直干净,各个厂房之间有宽阔的道路,到处照明充足,在车间外还有外围仓储库,和总的入厂出厂和后勤支持部门。更妙的是,这里全部机器人操作,只有你坐在总经理办公室里,手握一个可以控制各个地方的遥控器。你的最大敌人是需求极度不明确,随时都有可能变化,为了更大的利益,你会如何安排生产策略呢?聪明的你当然会在需求很大时加大马力全力生产,以求最大效益。在需求不足时,可以让有的生产线传送带减慢些,以节省不必要的消耗。需求进一步下滑时,你会停掉某个车间的流水线,同时切断流水线机器人的电源,你还留有后手,在需求回升时随时可以恢复生产。需求还是很糟糕一段时间后,你会干脆关掉这个车间,让机器人都回到仓库中,关掉车间所有的照明等等的电力,这样几乎不会消耗什么东西了,不过要恢复生产就要费一番时间了。在明确是淡季后,你关掉了几个相邻车间,并关闭其共享的道路和后勤部门,清空了附近的仓库,进一步减低消耗。在做这些事时,你需要仔细衡量各个时机,以在省电和不会被忽然来到的需求弄得焦头烂额之间寻求平衡,越节省电力,要恢复全力生产就越麻烦,而你必须做到心中有数。\u003C\u002Fp\u003E\u003Cp\u003E这里你就是OS(操作系统),工厂是CPU,而车间就是内核(假设八核),仓库是Cache;各个省电的级别可以映射到不同的CStates(第一个调慢流水线是Pstates),你聪明的抉择自然归于OS的电源管理策略了。怎么样,是不是很简单直接呢?\u003C\u002Fp\u003E\u003Ch2\u003E历史\u003C\u002Fh2\u003E\u003Cp\u003E你也许会吃惊于这个低功耗概念是在486DX就部分引入了,远不是什么新鲜事。然而,随着时间的迁移,越来越多更加省电的状态被引入到最新的CPU中。在深度上,最开始只有C1,接着C2、C3、C5、C6、C7等等陆续得到支持。在广度上,开始时Thread级别的(HT情况下,一个Core有两个Thread),后来加入了Core级别的,在多CPU的系统上还引入的CPU整体的CStates(Package CStates)。在最深的Package CStates下的CPU,耗电几乎为0了。下面有张简表我们可以看看各个CPU的支持程度:\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-d5664dfe0c5aa2bb52a5c9bf7cac2551_b.jpg\& data-caption=\&\& data-rawwidth=\&593\& data-rawheight=\&514\& class=\&origin_image zh-lightbox-thumb\& width=\&593\& data-original=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-d5664dfe0c5aa2bb52a5c9bf7cac2551_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='593'%20height='514'&&\u002Fsvg&\& data-caption=\&\& data-rawwidth=\&593\& data-rawheight=\&514\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&593\& data-original=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-d5664dfe0c5aa2bb52a5c9bf7cac2551_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-d5664dfe0c5aa2bb52a5c9bf7cac2551_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E操作系统最开始只是简单的在Idle(空闲)时调用HLT指令从而进入C1。在Windows95开始支持ACPI后,才开始支持其他的CStates。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Ch2\u003E实现\u003C\u002Fh2\u003E\u003Cp\u003E和上一篇文章一样,我们还是要强调,OS主导了在整个CStates在的的切换,只有它最了解工作量。同时CStates要工作,硬件,固件和OS三方缺一不可。我们也就从这三个方面介绍它的工作原理。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E1. 硬件\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003EIntel CPU是CState可以工作的硬件基础。它通过一系列寄存器保证固件和OS可以得到足够的信息,有足够的手段控制CState的工作模式。下面我们详细介绍下各个不同的CStates。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E·
C1\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E所有的X86 CPU都有个HLT(”Halt”)指令,调用后,CPU会进入idle模式,什么事也不干,直到收到中断。这里是个绝佳场所可以用来节电,Intel在这里引入了C1状态,关闭了时钟信号(内部bus和APIC除外)。由于时钟信号驱动内核里绝大多数部件,它的停止,让这些设备也停止了运行,从而减少了电能消耗。有趣的是HLT指令自从8086开始就有了,这次的功能扩展几乎不要任何软件改动就能省电。\u003C\u002Fp\u003E\u003Cp\u003E在Core 2 Duo(酷睿2)引入了C1E(Enhanced Halt),在关闭时钟的基础上调低了电压,从而更加省电。如果你在固件中打开它,HLT时会自动进入C1E而不是C1。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E·
C2\u002FC3\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003EC2也是在486DX引入,它增加了一个STPCLK(“Stop Clock”)引脚,这在某种程度上和C1很像,不同点在于,一个是软件触发的(C1),一个是硬件触发的(C2)。后来加入的关闭时钟发生器的功能让耗电进一步减少。后面C2E也出现了,C3开始内部的BUS和APIC时钟也被关闭,这里不再赘述。\u003C\u002Fp\u003E\u003Cp\u003E要特别强调的是,C1,C2和C3下,Cache一致性是得到保证的,从而恢复现场速度也很快。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E·
C4\u002FC6\u002FC7\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003EC4\u002FC6\u002FC7下,越来越多内部设备的上下文状态信息(Context)也被封存和冻结,Catch被清空和关闭。如此一来,要恢复现场变得越来越耗时。同时Cache一致性也被破坏,OS需要知道它何时需要清理Cache。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E2.固件\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E前文中已经提到ACPI,这里不再赘述。CStates的状态转换如下图:\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-3e23da47eb60eb0d684ae7ca1e9951a1_b.jpg\& data-caption=\&\& data-rawwidth=\&640\& data-rawheight=\&423\& class=\&origin_image zh-lightbox-thumb\& width=\&640\& data-original=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-3e23da47eb60eb0d684ae7ca1e9951a1_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='640'%20height='423'&&\u002Fsvg&\& data-caption=\&\& data-rawwidth=\&640\& data-rawheight=\&423\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&640\& data-original=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-3e23da47eb60eb0d684ae7ca1e9951a1_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-3e23da47eb60eb0d684ae7ca1e9951a1_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E这里要强调一下,ACPI的C1,C2,C3并不等同于硬件提供的C1,C2,C3,C5..C7。细心的读者会发现他们个数并不一致。ACPI的CStates是个软件抽象概念,它认为进入更深的Cstate时会有更大的延时,通常延迟越大功耗对应的Cstate的功耗就越低。APCI规定C0 C1 C2需要保持cache的一致性(要保证CPU cache中的数据一定要是最新的数据),C3以及后续的state就没有这个要求了。C0和C1必须支持,而C2\u002FC3就是可选项了。如此一来,固件就有责任将ACPI的CStates映射到合适的硬件的CStates上来。通常C0,C1,C2\u002FC3基本一致(硬件C3和C2基本二选一),而硬件的C4到C7我们都会映射到ACPI C3上了(ACPI C3不一定唯一,后面有介绍)。\u003C\u002Fp\u003E\u003Cp\u003E要完成基本的CStates的支持固件应该含有以下步骤:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003EI.
打开关闭CStates\u003C\u002Fb\u003E \u003C\u002Fp\u003E\u003Cp\u003EBIOS可以通过CPUID function 5 来检查 CPU是否支持Cstate,以及支持哪些Cstate(C1 C1E C3 C6 C7),支持的最大的Cstate也可以通过MSR去设定,默认情况下增强型Cstate以及IO MWAIT Redirection是不支持的,固件要根据系统的需求决定是否开启支持该功能的寄存器。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003EII.
初始化\u003C\u002Fb\u003E \u003C\u002Fp\u003E\u003Cp\u003E硬件提供我们两种方式进入CStates(除了C1):一个IO端口或者MWAIT指令。关于MWAIT,这里不再展开讨论,只需要知道MWAIT的方式通常延迟更小,因为不需要做耗时的IO操作。这里我们要根据用户选择或者预设,开启或者关闭MWAIT的支持。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003EIII.
填写各种ACPI tables\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E1.
_OSC & _P.DC\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E_0SC(Operating System Details) & _PDC(Processor Driver Capabilities)在功能上比较接近,基本上供OSPM调用和BIOS传递一些关于Cstate Pstate Tstate是否支持,以及支持的程度和实现方式的一些设定,BIOS可以依据OSPM的参数回报相应的ACPI Structures。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E2.
_CST\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E_CST 汇报给OSPM的有关该平台CPU所支持的C-state的信息。它的格式如下所示:\u003C\u002Fp\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003ECSTPackage : Package ( Count ,
CState ,…,
CState )\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E其中Count表示所支持的Cstate的个数\u003C\u002Fp\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003ECState: Package ( Register ,
Power )\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003ERegister表示OSPM调整C-state的方式,Type表示CState的类型(1=C1, 2=C2, 3=C3)。Latency表示进入该Cstate的最大的延迟, Power表示在该Cstate时的功耗(单位是毫瓦)。下面是个样例,这个CPU支持4个Cstate,其中C1使用FFixedHW的方式访问,其它3个Cstate都是通过IO方式。\u003C\u002Fp\u003E\u003Cp\u003EName(_CST, Package() \u003C\u002Fp\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E{\n4,\nPackage(){ResourceTemplate(){Register(FFixedHW, 0, 0, 0)}, 1, 20, 1000},\nPackage(){ResourceTemplate(){Register(SystemIO, 8, 0, 0x161)}, 2, 40, 750},\nPackage(){ResourceTemplate(){Register(SystemIO, 8, 0, 0x162)}, 3, 60, 500},\nPackage(){ResourceTemplate(){Register(SystemIO, 8, 0, 0x163)}, 3, 100, 250}\n})\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E\u003Cb\u003E3.
_CSD\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003EC-State Dependency 用于向OSPM提供多个Thread(逻辑Core)之间Cstate的依赖关系。比如在一个Dual Core的平台上,每颗核可以独立运行C1但是如果其中一个核切换到C2,另一个也必须要切换到C2,这时就需要在_CSD中提供这部分信息。\u003C\u002Fp\u003E\u003Cp\u003E上面的逻辑通过程序看可能会更加直观。大家可以访问在Github上的Minnow3项目的源程序。代码在\u003Ca href=\&https:\u002F\u002Flink.zhihu.com\u002F?target=https%3A\u002F\u002Fgithub.com\u002Ftianocore\u002Fedk2-platforms\u002Fblob\u002Fdevel-MinnowBoard3\u002FSilicon\u002FBroxtonSoC\u002FBroxtonSiPkg\u002FCpu\u002FAcpiTables\u002FCpuSsdt\u002FCpu0Cst.asl\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003Etianocore\u002Fedk2-platforms\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E3.OS\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003EOS在收集到了各个ACPI CStates的耗电和延时数据后,会综合考虑迁移到各个状态的代价,而这些是一个叫做电源策略管理器(power policy manager)的模块来管理,在用户选择了不同的运行场景(可以调用powercfg.exe查看修改)情况下,根据目前工作量来调用processr.sys,这是个通用驱动,它再调用不同的CPU厂商的特有驱动来切换,Intel的EIST驱动是intelppm.sys,\u003C\u002Fp\u003E\u003Ch2\u003E后记\u003C\u002Fh2\u003E\u003Cp\u003E现在不但各个操作系统利用CStates来省电,甚至在固件的短短运行周期里也会在内核不工作时使其进入Cstate。有兴趣的人可以查看EDKII的CPU代码,其通过一个PCD来控制Idle时是Busy Idle, HLT还是更深的Cstate。\u003C\u002Fp\u003E\u003Cp\u003E其他CPU电源管理文章:\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& class=\&internal\&\u003ECPU省电的秘密(一):EIST - 知乎专栏\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\& class=\&internal\&\u003E睿频:榨干CPU所有的潜力(CPU电源管理系列番外篇) - 知乎专栏\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号\&UEFIBlog\&,在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-45479ebdd2351fcdcfb0771bd06fff3a_b.jpg\& data-rawwidth=\&344\& data-rawheight=\&344\& class=\&content_image\& width=\&344\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='344'%20height='344'&&\u002Fsvg&\& data-rawwidth=\&344\& data-rawheight=\&344\& class=\&content_image lazy\& width=\&344\& data-actualsrc=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-45479ebdd2351fcdcfb0771bd06fff3a_b.jpg\&\u003E\u003Cfigcaption\u003E用微信扫描二维码加入UEFIBlog公众号\u003C\u002Ffigcaption\u003E\u003C\u002Ffigure\u003E&,&updated&:new Date(&T01:24:56.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:3,&collapsedCount&:0,&likeCount&:47,&state&:&published&,&isLiked&:false,&slug&:&&,&lastestTipjarors&:[],&isTitleImageFullScreen&:false,&rating&:&none&,&titleImage&:&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-5ca7e28fcb0f53_r.jpg&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&reviewers&:[],&topics&:[{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&UEFI&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&计算机科学&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&中央处理器 (CPU)&}],&adminClosedComment&:false,&titleImageSize&:{&width&:480,&height&:359},&href&:&\u002Fapi\u002Fposts\u002F&,&excerptTitle&:&&,&tipjarState&:&activated&,&tipjarTagLine&:&真诚赞赏,手留余香&,&sourceUrl&:&&,&pageCommentsCount&:3,&tipjarorCount&:0,&annotationAction&:[],&hasPublishingDraft&:false,&snapshotUrl&:&&,&publishedTime&:&T09:24:56+08:00&,&url&:&\u002Fp\u002F&,&lastestLikers&:[{&bio&:&学生&,&isFollowing&:false,&hash&:&dfb6a1ed852&,&uid&:321700,&isOrg&:false,&slug&:&jie-mo-jiang-20-26&,&isFollowed&:false,&description&:&&,&name&:&芥末酱&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fjie-mo-jiang-20-26&,&avatar&:{&id&:&da8e974dc&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&音频初烧,ACGNM,铁道准从业者&,&isFollowing&:false,&hash&:&a820afe3ff7bd0ffcf59&,&uid&:543400,&isOrg&:false,&slug&:&ceng-qing-xun-2&,&isFollowed&:false,&description&:&&,&name&:&SORA&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fceng-qing-xun-2&,&avatar&:{&id&:&v2-e24da73ed9b605fc62eb01fe85184e4e&,&template&:&https:\u002F\u002Fpic2.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&&,&isFollowing&:false,&hash&:&b87df96bda60ae675ea1dc7f7b91d8db&,&uid&:027300,&isOrg&:false,&slug&:&yuan2345&,&isFollowed&:false,&description&:&但行好事,莫问前程&,&name&:&yuan&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fyuan2345&,&avatar&:{&id&:&b0e784a5a0de246a1afdb09daeca8925&,&template&:&https:\u002F\u002Fpic1.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&&,&isFollowing&:false,&hash&:&643d1f6adc8bec601f0f&,&uid&:80,&isOrg&:false,&slug&:&quiescencent&,&isFollowed&:false,&description&:&&,&name&:&quiescence&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fquiescencent&,&avatar&:{&id&:&dccaeac369bf8a77dfc37a&,&template&:&https:\u002F\u002Fpic1.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&全网黑E5第一人、全网黑八代U第一人&,&isFollowing&:false,&hash&:&e9fffbf51e06cf092fad13e&,&uid&:88,&isOrg&:false,&slug&:&zhutingting&,&isFollowed&:false,&description&:&http:\u002F\u002Fwww.lxiaohai.com\u002Ftingting\u002F&,&name&:&朱亭亭&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fzhutingting&,&avatar&:{&id&:&ddb35ad598dbcc99422cfe58d89108cf&,&template&:&https:\u002F\u002Fpic3.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false}],&summary&:&\u003Cimg src=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-d5664dfe0c5aa2bb52a5c9bf7cac.jpg\& data-caption=\&\& data-rawwidth=\&593\& data-rawheight=\&514\& class=\&origin_image inline-img zh-lightbox-thumb\& data-original=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-d5664dfe0c5aa2bb52a5c9bf7cac2551_r.jpg\&\u003E前一篇关于EIST的文章中,我们提到了CStates,这里我们详细介绍一下它的由来和运行机理。原理篇上一篇文章中我们介绍了EIST,OS在工作任务不重的时候,可以调用硬件提供的接口对CPU进行降频降压以节省用电。但是如果不但任务不重,而是无事可干怎么办,为什…&,&reviewingCommentsCount&:0,&meta&:{&previous&:null,&next&:null},&annotationDetail&:null,&commentsCount&:3,&likesCount&:47,&FULLINFO&:true}},&User&:{&mikewolfwoo&:{&isFollowed&:false,&name&:&老狼&,&headline&:&致力于将deep learning等AI引入固件和开放硬件体系中。\nLet's learn something today!&,&avatarUrl&:&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-86ea4b8b7df16d9c219613abc03b1ee5_s.jpg&,&isFollowing&:false,&type&:&people&,&slug&:&mikewolfwoo&,&bio&:&UEFI固件、服务器、嵌入式产品、开源硬件从业者&,&hash&:&8feb0fc53a08ea672a5f&,&uid&:990800,&isOrg&:false,&description&:&致力于将deep learning等AI引入固件和开放硬件体系中。\nLet's learn something today!&,&badge&:{&identity&:null,&bestAnswerer&:null},&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fmikewolfwoo&,&avatar&:{&id&:&v2-86ea4b8b7df16d9c219613abc03b1ee5&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false}},&Comment&:{},&favlists&:{}},&me&:{},&global&:{&experimentFeatures&:{&ge3&:&ge3_9&,&ge2&:&ge2_1&,&androidPassThroughPush&:&all&,&sEI&:&c&,&nwebQAGrowth&:&experiment&,&qawebRelatedReadingsContentControl&:&close&,&liveStore&:&ls_a2_b2_c1_f2&,&qawebThumbnailAbtest&:&new&,&nwebSearch&:&nweb_search_heifetz&,&rt&:&y&,&showVideoUploadAttention&:&true&,&isOffice&:&false&,&enableTtsPlay&:&post&,&newQuestionDiversion&:&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F&,&newLiveFeedMediacard&:&new&,&newMobileAppHeader&:&true&,&hybridZhmoreVideo&:&yes&,&nwebGrowthPeople&:&default&,&nwebSearchSuggest&:&default&,&qrcodeLogin&:&qrcode&,&enableVoteDownReasonMenu&:&enable&,&isf8&:&0&,&isShowUnicomFreeEntry&:&unicom_free_entry_off&,&newMobileColumnAppheader&:&new_header&,&androidDbRecommendAction&:&open&,&zcmLighting&:&zcm&,&androidDbFeedHashTagStyle&:&button&,&appStoreRateDialog&:&close&,&default&:&None&,&isNewNotiPanel&:&no&,&wechatShareModal&:&wechat_share_modal_show&,&growthBanner&:&default&,&androidProfilePanel&:&panel_b&}},&columns&:{&next&:{}},&columnPosts&:{},&columnSettings&:{&colomnAuthor&:[],&uploadAvatarDetails&:&&,&contributeRequests&:[],&contributeRequestsTotalCount&:0,&inviteAuthor&:&&},&postComments&:{},&postReviewComments&:{&comments&:[],&newComments&:[],&hasMore&:true},&favlistsByUser&:{},&favlistRelations&:{},&promotions&:{},&switches&:{&couldSetPoster&:false},&draft&:{&titleImage&:&&,&titleImageSize&:{},&isTitleImageFullScreen&:false,&canTitleImageFullScreen&:false,&title&:&&,&titleImageUploading&:false,&error&:&&,&content&:&&,&draftLoading&:false,&globalLoading&:false,&pendingVideo&:{&resource&:null,&error&:null}},&drafts&:{&draftsList&:[],&next&:{}},&config&:{&userNotBindPhoneTipString&:{}},&recommendPosts&:{&articleRecommendations&:[],&columnRecommendations&:[]},&env&:{&edition&:{&baidu&:false,&yidianzixun&:false,&qqnews&:false},&isAppView&:false,&appViewConfig&:{&content_padding_top&:128,&content_padding_bottom&:56,&content_padding_left&:16,&content_padding_right&:16,&title_font_size&:22,&body_font_size&:16,&is_dark_theme&:false,&can_auto_load_image&:true,&app_info&:&OS=iOS&},&isApp&:false,&userAgent&:{&ua&:&Mozilla\u002F5.0 (compatible, MSIE 11, Windows NT 6.3; Trident\u002F7.0; rv:11.0) like Gecko&,&browser&:{&name&:&IE&,&version&:&11&,&major&:&11&},&engine&:{&version&:&7.0&,&name&:&Trident&},&os&:{&name&:&Windows&,&version&:&8.1&},&device&:{},&cpu&:{}}},&message&:{&newCount&:0},&pushNotification&:{&newCount&:0}}}

我要回帖

更多关于 cpu功耗天梯图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信