2020年1月|电脑可以像手机一样不用关机?( 三 )


2020年1月|电脑可以像手机一样不用关机?
文章图片
但微软的考量是 , S4休眠生成的文件比较大 , Windows上为可以使用总内存的40% , 我们能用PowerShell在C盘根目录看到这个休眠文件:
2020年1月|电脑可以像手机一样不用关机?
文章图片
如图所示 , 这个休眠文件大约有10GB , 这对一些磁盘容量较小的设备是一个不小的负担 。 另外如果设备使用的不是固态硬盘 , 如此大的文件加载时间可想而知也很慢 。 因此 , 开启「快速启动」以后 , Windows的关机功能确实是休眠 , 但在休眠之前 , Windows会退出所有应用并注销用户会话 , 再生成休眠文件;这时休眠文件就只占内存大小的20%了 , 「快速启动」体验自然也会变得更好 。
以上两个例子说明 , 厂商并非一定要拘泥于ACPI的规范 , 如果有了新的需求 , 解决需求才是第一位的 。 那么 , 传统S3睡眠遇到了什么无法解决的需求呢?微软在其硬件开发文档中如此回答:
电源管理架构的目的是满足不断增长的用户需求 , 包括:
客户要求他们的计算机随时可用 , 即使在关闭时也是如此……
在插电或者使用电池时 , 客户都希望减少PC使用的电量
S3睡眠也许能做到节能 , 但离随时可用差了不少 。 比如 , 我们希望电脑上的IM软件也和手机一样 , 可以及时接收消息 , 但S3状态处理器无法工作 , 就更不用提接收消息了;再比如 , 我们也希望电脑可以像手机一样按下指纹就能解锁 , 系统需要先花上大概5秒从S3切换到S0 , 才能识别指纹进行解锁;又比如我们想使用Windows下的语音助手 , 如果系统处于S3睡眠状态 , 那么收音、网络设备都处于D3关闭状态 , 这时语音助手就没有办法响应 , 而让系统整个保持在S0 , 这样整机功耗就无法控制了 。
看到这里 , 读者可能会想:这不就是智能手机上的即开即用的使用体验吗?确实如此 , 新型待机正是期望将智能手机的即开即用体验带到Windows上 。
新型待机
早在Windows8时代 , 微软就认识到了S3睡眠模式的不足 , 那时 , 微软期望PC能够在睡眠模式下也能正常连接网络 , 所以微软推出了一个新式的睡眠模式并命名为连接待机(ConnectedStandby) , 即在保证系统和设备处于S0响应速度的基础上 , 又能有S3的功耗控制 。 而在Windows10中重新更名为新型待机 。
2020年1月|电脑可以像手机一样不用关机?
文章图片
图注:图片修改自WinHECFall2017
传统S3待机控制CPU功耗的方法很简单 , 断开CPU/SoC部分的供电即可 , 这时芯片里的寄存器全部清空变成了0;但在唤醒时 , 需要重新初始化寄存器 , 这就是从S3恢复成S0时需要一点时间的原因 , 当然这个时间远比从S4恢复所需要的短得多 。
但现在连这一点初始化的时间都不能要了 , 也就意味着需要CPU/SoC「记住」之前寄存器的状态 。 因此 , CPU/SoC内部就需要有一枚专门的芯片按照下图的步骤 , 一步步把对应寄存器区域的状态保存在CPU/SoC内部的nvram中 , 再切断电源 。 这样就让设备实现了在S0响应速度的基础上 , 又能有S3的功耗控制 。
2020年1月|电脑可以像手机一样不用关机?
文章图片
所需要功耗从上到下依次变小 , 且只有每层的任务都完成以后才会操作下一层的目标
首先 , CPU/SoC外部的所有设备都必须进入低功率模式 , 也就是Sx对应的Dx为最低的设备电源状态 。 接下来 , 将网络和无线电设备置于低功率模式 , 在此期间 , 这些设备通常会使用很少的一部分电源以维护连接 , 并在必要时唤醒CPU/SoC 。