Windows完全可以不关机,客服乱说。
不过看到大家都在讨论睡眠的问题,我还以为至少会有几个人提一下S0、S3睡眠状态,结果还是出乎了我的意料啊。那就让我来唠几句。
为了简化讨论和避免远古时期遗留的刻板印象,Windows笔记本这边我准备只讨论搭载UEFI和Windows 10的系统。
采用x86(Intel)处理器的MacBook和采用x86处理器的Windows PC都属于x86兼容机,实现睡眠的方式是类似的,也就是那几个ACPI电源状态[1]:
以上电源状态耗电量递减。S4和S5一样,因为关机了所以理论上不耗电。S1、S2不常用,S3非常省电,S0ix比较耗电。通常来讲,最适合一台采用x86处理器的“笔记本电脑”的待机状态是S3。
既然硬件是类似的,那主要的区别就是软件实现方面了。
MacBook和macOS的实现简单直接,盒盖待机后会进入S3睡眠状态,如果开启了“电能小憩”功能,可能会进入S0/S0ix状态,不过具体的文档没有查到。Mac还会在低电量状态下将内存内容存储到硬盘来确保断电后不会丢数据。在待机时长达到一定时间之后,Mac会进入S4状态,不再耗电(有些人说Mac待机几周甚至一个月都可以,废话电脑都关掉了)。
在Windows上,事情变得比较复杂。微软最近几年比较迷惑的操作就是强推S0ix待机模式,目的大概是想把电脑变成类似手机和平板的东西,能够实时收到消息推送(这一看就知道是微软在Windows 8时代提出的错误理念,事实上现在大多数人都有手机,实时收到新消息推送的功能完全被手机替代了)。S0ix状态的好处除了能在待机状态下更新数据外,主要就是可以快速唤醒,因为处理器其实并没有被关闭,可以快速恢复工作状态。顺便提一句,M1发布会上那个看起来很惊艳的开盖秒亮屏在Windows这边不稀奇,有关M1的之后会再讨论。那么为什么要说微软“强推”呢,因为在Windows上,只要系统发现这台电脑支持S0ix,就会禁用S3。
个人认为强推S0ix是微软的一大错误决定,x86处理器即使在低功耗模式下,耗电也不容忽视,所以S0ix待机模式下可观察到的掉电是会存在的。然而更大的问题是唤醒,S0ix状态下,系统不仅会被用户输入唤醒,还可能会被定时器甚至网络包唤醒。其次很多东西也可能阻止系统进入低功耗模式。如果上面的东西出现了一些问题,一个可能的结果就是电脑一直没有进入睡眠状态。当然,这样的异常在新的硬件和Windows版本中会越来越少的出现。
而反观S3,CPU这个耗电大户完全停止工作,基本上不会有耗电问题。内存数据保留让电脑能够相对S4较快的唤醒,是一个很理想的睡眠模式。好在新版Windows可以用下面的命令强行开启S3:
reg add HKLMSystemCurrentControlSetControlPower /v PlatformAoAcOverride /t REG_DWORD /d 0
Windows也是支持睡眠一段时间后自动进入休眠的,部分笔记本可能默认进行了配置,没有默认配置的可以进高级电源设置进行更改。
如果都采用S3,Windows和Mac在待机掉电方面不会有什么区别,我的Yoga 14s原生不支持S0ix,盒盖进入S3后可以保证3小时一格电都不掉(至于为什么是3小时,我设置了3小时后自动休眠,之后再怎么放都不掉电),即使是不开自动睡眠,放一晚上掉电也在我的感知之外。
遇到待机异常耗电的,建议检查驱动是不是Windows 10自动安装的。以及背包里有没有忘记关机的无线鼠标等蓝牙设备,都会导致系统被唤醒。
采用Apple Silicon的Mac电脑只支持类似S0的待机状态(具体是怎么样的,没有人知道),得益于M1的低功耗,待机耗电不会很严重,但确实会有能被人感知到的掉电量,待机一晚上平均会掉3%-5%的电。如果软件出现异常就会更高,我没遇到过但是网上有很多相关的反馈。如果有人认为M1待机很省电,那建议看看苹果是怎么说的:在Intel Mac的技术规格中,苹果在“电池和电源”部分提到了
最长可达 30 天的待机时间
而M1笔记本的技术规格中,苹果去掉了这样的条目。
这是macOS 12.2.1 的更新,瞧瞧它修复了什么?
第一,Mac,准确的说是MacBook吧,如果没记错的话,苹果在MacBook上一共放了两组传感器,屏幕顶端的磁铁,这里应该是盒盖的时候会触发一个霍尔传感器,然后转轴的部分还有一组。在两组传感器的加成下,MacBook转轴阻尼这些也做的比较好,盒盖下去能够很准确的判断到盖子是打开还是关闭。然而windows阵营这边的笔记本,绝大部分都只在转轴的位置放了一个传感器,而且是一个不是左右一组,然后呢,关盖的阻尼又不太好,你把电脑盒盖放到包里,说不定在哪儿抖一下就被判断为开盖了,然后系统开始运行,等你回家或者第二天把电脑拿出来的时候要么是烫的不行,要么就没电了。这是一个方面。
第二个是硬盘,虽然说这里苹果一直比较抠门只给128或者256这种钙中钙的容量,但是呢,很久以前苹果就已经是全系ssd,而且是速度特别快的那种。在睡眠的时候要迅速的把整个系统快照存到硬盘中,唤醒的时候再从硬盘拉到内存里面来,而windows这边,其实直到现在都仍然还有纯机械硬盘的设备,这也是一个原因。
第三个是,windows里面有睡眠和休眠两种选项,其实说实话,我到现在都不太明白这两个的区别,也就是如果你的电脑没有我上面说的两个问题,你在这一步要是没选对,也达不到自己想要的效果。我如果没记错,睡眠是不会给内存断电的,休眠会,这个具体的需要自己去查一下看看。
第四个就是软硬件的配合,像MacBook也可以关盖休眠之后用极少的电量保证电脑还能收到一些通知,整个硬件都是可控的,软件上处理起来就比较方便,不用考虑各种因素。而windows这边,就像我说的第一个问题,绝大多数厂商连合盖的检测都做不好,就更别说什么电源管理这些种种问题了,这些厂商几乎都是疯狂的省成本的。特别是现在苹果用上自己的arm芯片之后,这一块就超过windows阵营太多了,你想想iPhone的锁屏唤醒,那个m1的MacBook就是超大号iPhone加键盘运行的macOS,这软硬件适配能不好吗?PS:其实从最开始iPhone运行的就是魔改的OS X。
所以其实windows是可以不关机的,但是windows笔记本最好还是关机,当然你不随身携带都无所谓,周一带到公司开机,然后周五关机带回家也没啥问题。不然你只要遇到一次从包里拿出电脑那个风扇狂转的情况,你背一个没关机的windows笔记本,你心里随时都是提心吊胆的。
和系统没关系,和硬件有关系……
Wintel联盟也早早的就实现了休眠功能,奈何Windows笔记本没有一个能把体验最好的。
合盖自动休眠,Windows笔记本的合盖检测就没几个能做好的,再加上一大堆后台全家桶,只要你盖子松一下唤醒一下,后台的玩意儿就马上开始补作业,风扇狂转,电量蹭蹭蹭的掉。
20年前windows就可以,那个客服胡扯
官方客服在扯淡。
旧时代,计算机让你关机,主要是硬盘这玩意不停的连轴转,不必要的开着真的有损耗。
不那么旧的时代,硬盘学会了长时间不干活的时候自己停下,这个时候机箱里唯一会动的就剩下风扇了,关不关机已经无所谓了。
新时代,因为大家都用上了固态,哪怕是机械盘也早就已经不在乎那丢丢损耗,而且新的制程使得待机状态下处理器发热根本用不着风扇,所以基本上开机无损耗。
因此,到了今天,只要你的机器不是太老,使用win10,官方基本上是鼓励不要经常开关机的,就算有需要,休眠睡眠就好。是的,不需要关机,不会坏的。基本上也就只有笔记本电池问题会让你长时间不用关机省点电了。
当然,如果用上了神奇的系统(前俩月的win11)或者神奇的软件,会有内存泄漏之类的bug,开几个小时自己把内存吃满了。。。当我没说。
最新的Windows 8/10/11都已经支持这种即开即用的方式。这种可以媲美手机的高级特性正式名称叫做“现代待机”(Modern Standby),业内叫做S0ix,用来和S3(睡眠)对应。这种现代待机目前最新的Intel CPU都是支持的,甚至过两代,S3反倒变得不支持了。
现代待机和睡眠由于硬件原因,开机时只能选择一种(可以在很多BIOS里面切换,要重启)。基本上微软自家的笔电Surface系列缺省都是现代待机,而很多品牌机却缺省关闭,甚至在做BIOS的时候,就没有enable过。为什么这么好用的功能好些人不用呢?好些人诟病它耗电不好用,难点在哪里呢?我们今天先从它究竟是什么讲起,结论部分告诉你原因,对技术不感兴趣的可以直接看结论。
“现代待机”(Modern Standby),它实际上有了十年左右的历史,一路走来,十分艰难。伴随着它坎坷命运的是它的名字,在最初,它叫做Instant-on,Windows 8上市的时候叫做Connected Standby,后改名叫做InstantGo,在Windows 10为了包容性,改名Modern Standby(现代待机),包含Connected Standby和Disconnected Standby两种模式。对于CPU和BIOS固件工程师来说,它的名字叫做S0ix,而对于设备厂商和固件来讲,它又和RTD3(Runtime D3)紧密相关。这么多年下来,Modern Standby的普及率还很低,这和它的复杂性紧密相关。所幸随着新一代的CPU们逐渐占领市场,老旧的S3睡眠模式重要要慢慢地被扫入历史的垃圾堆中,而更多的人可以慢慢享受到Modern Standby带来的便捷与舒适中去了。所谓由俭入奢易,由奢入俭难,一旦大家尝到个中滋味,那就回不去了,这也是技术发展的魅力所在。
那么这个现代待机为什么会被发明出来?中间经历了哪些坎坷?怎么看自己的机器支持不支持它?这些问题我们今天就一起来探究一下。当然作为一个技术专栏,也会介绍一下其中的技术难点,这对理解这项技术为什么迟迟不能推广紧密相关。
PC机在出现的前十几年,关注的主要是提高性能,而不是节省电力。在笔记本这种便携式设备出现后,才开始考虑如何省电,以延长电池的供电时间,这样各种省电状态被发明了出来,ACPI标准囊获了这些发明,其中包括系统级的S1、S3、S4;CPU级的C0/C1/C2/C3;设备级别的D0/D1/D3等等。
一切工作的很好:笔记本暂时不用,合上盖子,进入S3状态;想要用的时候,打开盖子,在一秒钟以后,进入操作系统。动作如行云流水,比关机重开机体验好太多。这下各方都满意了,也变成了约定俗成的标准操作方法,没有任何人有疑问,直到智能手机出现在地平线上。
苹果的iPhone教育了市场,让大家看到,手机还可以这么用,这么好用!记得那时我拜访Apple总部,相熟的工程师从兜里拿出一个手机向我炫耀,说公司每个发了一个。我微微一笑,没说什么。心里想:“苹果刚做手机,能做好吗?有黑莓好吗?我口袋里的摩托罗拉表示不服!”朋友看我不以为然,立刻表演了起来,左划划,右划划。我表示这些是奇技淫巧,好麻烦!谁知道没过几年,大家都开始用起来智能手机,高通和MTK等等芯片厂商大赚特赚,这里按下不表。
另一头,Wintel两兄弟坐不住了,也要向智能手机进发。Windows CE + Intel CPU是否可以扫平他们呢?现在我们当然知道结果,可当时的人们并非没有信心,当时人们认为有一个明显的优势:可以把Wintel巨量的用户无缝导入Windows Phone市场。CPU的性能当然没有问题,但一个摆在眼前的难题是功耗。为此阉割了指令集和流水线,定制出Atom系列CPU,但问题并没有完全解决。
iPhone几乎没有任何人会关闭电话,按下电源键也只是关闭屏幕而已,重要的短信和推送的消息都会收到并提醒,人们想用手机时按一下键,屏幕立刻亮了起来,无需等待。如果谁指望胃口被养叼了的用户能够忍受某新手机,按下电源键就完全变木头,想用的时候要一秒钟以后才有反应,那一定是疯了。S3睡眠不能满足客户,但仅仅关闭屏幕,让CPU进入C2或者C3,功耗又比ARM阵营高的多,此路也不通。看过我介绍C State文章的同学们应该知道:
最深的C State只是让CPU内核部分进入了功耗几乎为 0的状态,而CPU的uncore/SA/NorthComplex部分则继续工作(近期的UFS改善了这点),更糟的是PCH(SouthComplex)和主板上其他的芯片也无怨无悔的全力工作并贡献自己的功耗。
ARM阵营的大部分手机待机功耗只有数毫瓦,而Wintel新样机的待机功耗高达到数百毫瓦。如何填补其中的巨大黑洞,成为了微软和英特尔工程师必须解决的问题。
为了匹敌ARM阵营的特性,Wintel一起提出了Instant On/Off(ConnectedStandby)的技术。顾名思义,这项技术要求按下电源键立刻屏幕点亮、系统可用,同时要求系统在待机状态(Standby)模式下,网络通信等必要设备必须能够唤醒设备,以保持通信通知等畅通。系统0秒启动和保持可用,要求必须是S0的开机状态,同时又要求待机功耗在数毫瓦,大致是S3的功耗,这种奇怪的组合就是所谓S0ix(最深的是S0i3)的由来了。
为了达成这个目标,从硬件到软件做了极大的改动,付出了非常多的努力。我们都知道,只是把Clock Gating住,可以降低功耗,但要达成0功耗,必须关闭电力输入,就是要Power Gating。而关闭电力,就意味着芯片里面的状态机全部复位了,粗浅的理解就是寄存器等全部清0了,要恢复可用,必须重新初始化寄存器,这就是S3回来的时候,BIOS在那个1秒钟主要干的事情。而现在又要求不能有这个1秒钟,所以寄存器内容或者说状态机状态就不能丢失,怎么做到呢?
只有靠芯片自己记住自己的状态了。芯片内部电源管理模块会按照步骤,一步步关闭芯片内部区域(S0->S0i1->S0i2->S0i3),并把寄存器/状态保存在内部的nvram中,并切断这些区域的供电,让其功耗接近0;在恢复的时候,则反着来,一步步恢复寄存器。相当于做了个快照,一会再恢复回来。由于这个过程是硬件完成的,速度很快。
对芯片外部的设备来说,不需要通知的设备要进入D3cold状态,功耗为0。这一般由BIOS报告ACPI,操作GPIO来关闭设备的Power rail。对于需要唤醒的设备,必须支持一种叫做Runtime D3(RTD3)的状态,把信息offload到该设备处理,并在必须时才唤醒CPU和其他处于低功耗的设备。
对整个系统来说,是从外到内部一步步进入S0i3的状态中去的:
先是CPU/SOC外部设备进入D3cold,接下来通讯设备进入RTD3,下来是芯片组和uncore,然后是Core和GPU,最后是扫尾的电路。一步一步,中间如果谁拒绝进入低功耗状态,整个链路就会中断,回到普通的运行模式。
软件也需要调优,不能有任何软件拒绝系统进入deepest idle runtime platform state (DRIPS)。Window会通过一系列步骤才能达到最后的低功耗状态,详见参考资料1[1]
别看这么多步骤,效果还是非常让人满意的,最终达成了和手机相同的用户体验。细心的同学可能看出来了,如果要让这个过程顺利完成,仅仅因为Windows和Intel CPU支持是不够的,必须主板,外围器件和BIOS都支持并很好的调优过,才能顺利达成,是个系统工程。
我们都知道Windows Phone并没有一统江湖,反而寂寂无声了。但Connected Standby这种好技术和它带来的用户体验却不能放弃。Windows 10把它拔高成Modern Standby,并支持两种mode:
Connected Standby是待机后Wifi、network等还有效,Disconnected Standby是这些也进入D3cold了。它们和老式的S3的区别是都支持Instant On,也就是即开即用。
怎么看自己的电脑是不是支持Modern Standby呢?打开Command窗口或者PowerShell:
红框就是所谓的现代待机。显然我的机器并不支持它。
好了,我们回头来看一下我们的问题。为什么这么好用的功能好些人不用呢?好些人诟病它耗电不好用,难点在哪里呢?
原因可以从硬件和软件上面来找,硬件设计上需要所有外围硬件都支持D3Hot,并能够offload一部分功能,而不能什么事情都来叫醒CPU处理,并且要设计好整个主板的Power rail;软件上BIOS部分相当重要,必须确保所有设备能全部进入D3hot状态,相当麻烦。Power部分是现代笔电中最麻烦的部分(现在的雷电3和USB4、PD、retimer这些东西的复杂度有后来居上的趋势),为此,Intel有专门的手册,规范了硬件和软件要做什么。有要求,有recipe,当然还有检查工具,帮忙各个BIOSer来核对是不是做对了,当然这不是一般用户能接触到的了。
总结下来就是,功能很好,但好多笔电硬件或者软件技术能力不够,没有用好,所以比较难用。所以有些笔电这个功能需要手动开启,甚至某些笔电这款就没有enable过,颇为遗憾。
最后是一些其他的信息:
1.虽然现在只有部分笔记本支持Connected Standby,但未来台式机也会支持它。并且过一段时间S3甚至都会被淘汰。
2. S3和Connected Standby是互斥的。
欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。关注公众号,留言“资料”,有一些公开芯片资料供下载。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有