SATA/AHCI

本部分详细介绍 Microsoft 的内置 SATA 驱动程序 (StorAHCI) 如何管理电源以及有哪些可用的配置选项。

HIPM/DIPM

默认情况下,启用了“仅 HIPM”,StorAHCI 管理“部分”到“睡眠”的转换。 当设备处于 D0 状态时,在链接进入“部分”状态 100 毫秒后,StorAHCI 将转换为“睡眠”状态。 StorAHCI 通过启用 SATA-I/O 标准版的“主动部分功能”,允许控制器处理从“活动”到“部分”的转换。

设备进入 D3 状态后,StorAHCI 会立即将链接转换到“睡眠”。

之所以选择“仅 HIPM”,是因为 StorAHCI 直接控制 DEVSLP 转换,并且通常情况下,支持 DEVSLP 的控制器指示只能通过“睡眠”状态访问 DEVSLP。 因此,StorAHCI 还需要控制到“睡眠”状态的转换。

DEVSLP

StorAHCI 直接控制 DEVSLP,以便有效地平衡功率、响应性和可诊断性。 因此,StorAHCI 不使用硬件控制的 DEVSLP 功能(即遵循 SATA-I/O 规范的“主动 DEVSLP”)。
DEVSLP 映射到单个逻辑空闲电源状态或“F 状态”,即 F1。

下表显示了 SATA 设备在不同系统电源状态下转换为 DEVSLP 之前必须处于空闲状态的时间。 请注意,如果控制器已指定必须从“睡眠”进入 DEVSLP,则 StorAHCI 会首先转换到“睡眠”,然后在完成到“睡眠”的转换后,立即转换为“DEVSLP”。 如上所述,这意味着必须支持 HIPM。

系统电源状态 DEVSLP 空闲超时
S0(工作正常) 6 秒
S0 低功耗空闲(新式待机 (MS)) 50 毫秒

自适应 D3 空闲超时

现在,新式待机系统支持带旋转介质的 SATA 驱动器,需要在省电和设备可靠性之间进行平衡。 处于“新式待机”模式时,设备需要更主动地关闭电源,以满足系统的电源要求。 但是,过于主动地关闭旋转驱动器可能会导致驱动器的机械部件过度消耗。 为了帮助你减少消耗和磨损,Windows 10 包括自适应 D3 空闲超时,根据典型设备保证来跟踪设备的电源周期计数,并与最差情况模型进行比较(最差情况是驱动器只能持续使用几年)。 如果实际电源周期频率趋势过于接近最差情况模型,则 D3 空闲超时会增大,使趋势恢复成更安全的数字。 如果电源周期频率够低,因此设备没有过度消耗风险,则 D3 空闲超时值会显著缩小,以确保驱动器在新式待机中空闲后快速关闭电源。

StorAHCI 将旋转驱动器的最小电源周期指定为 5 分钟。 这意味着,如果此类驱动器的电源周期频率超出 5 分钟一次,则当空闲时间较短时,它会改为保持通电状态,以这种方式进行补偿。 如果要根据设备供应商的指导修改最小电源周期,可以使用以下注册表项:

  • 名称:MinPowerCyclePeriodInSecs
  • 类型:MULTI_SZ
  • 路径:HKLM\System\CurrentControlSet\Services\storahci\Parameters\Device
  • 值:<Product ID> <Value>,例如“ST31000528AS 300”或“WDC WD4* 360”
    • 若要指定一个模式来匹配多个产品 ID,请使用:
      • ‘?’ 来匹配任何单个字符
      • “*”来匹配任何剩余字符
    • 值本身以秒为单位。

设备维护时间

由于现在可以给旋转驱动器留出大量的时间来关闭电源,因此 Windows 10 还提供了一种机制,该机制为驱动器留出一些启动空闲时间(每隔 24 小时 1 分钟)来执行内部维护。 只有在系统连接到交流电源以延长电池使用时间,并且系统处于“新式待机”状态以确保磁盘活动量最小时,才发生这种情况。 设备维护不可配置。

新式待机和 DRIPS

从 Windows 10 开始,新式待机系统支持带旋转介质的驱动器(HDD 或 SSHD)。 由于自适应 D3 空闲超时使磁盘在 D0 状态所处的时间更长,HDD 可能会导致功耗增加。 HDD 还可能导致从新式待机退出时的延迟时间更长。 但是,具有 HDD 的新式待机系统不需遵循 1 秒的系统恢复延迟时间要求。 建议尽可能使用 SSD 而不是 HDD(尤其是在用作主启动驱动器的情况下)。

无论系统中存储设备的介质类型如何,为了支持新式待机,平台都需要为以下任一项指定约束:

  1. 每个 SATA 端口;
  2. AHCI 控制器

此约束由 Power Engine 插件 (PEP) 使用,应允许系统在出现以下任一情况时进入其最深运行时空闲电源状态 (DRIPS):

  1. 所有 SATA 驱动器都进入 DEVSLP (F1) 或更深的状态(D3 被视为比 F1 更深);
  2. AHCI 控制器进入 F1 或更深的状态。

这方面的具体内容特定于平台,超出了本文档的范围。

注意

Microsoft 不建议让 SATA SSD/HDD 支持自动从“部分”转换到“睡眠”(APST)。 将自动禁用 APST。

PCIe-连接的 AHCI SSD

在 Windows 10 开发期间,我们遇到的 PCIe 连接的 AHCI SSD 均未向 StorAHCI 公开 DEVSLP 状态。 这意味着 Windows 10 在管理这些设备的电源时,几乎没有任何选择。 在这种情况下,设备和平台承担大部分电源管理责任。