当前位置: 首页 > news >正文

PCIe ASPM详解

一、ASPM 概述

Active State Power Management (ASPM) 是一种在 PCIe 链路处于设备 D0(完全激活)状态下,通过硬件自主地降低链路功耗的技术。它与传统的 PCI-PM(基于软件的电源管理) 不同,ASPM 是在 链路空闲时由硬件自动触发 的节能机制,不依赖操作系统或驱动程序直接控制。

✅ 核心目标:在不影响性能的前提下,动态减少链路功耗,尤其适用于移动设备、嵌入式系统等对能效敏感的场景。

二、ASPM 与 PCI-PM 的关系

在这里插入图片描述
📌 关键点:

ASPM 必须被视为与 PCI-PM 正交的功能。
即使设备支持 PCI-PM,也必须实现 ASPM 的最低要求(除非是内部 Root Complex Link 或 Egress Port)。
Root Complex 虽然免于 PCI-PM 要求,但 必须支持 ASPM 的最小功能。

三、ASPM 的低功耗链路状态

1. 非 Flit 模式(Non-Flit Mode)下的 ASPM 状态

在这里插入图片描述

⚠️ 注意:L0s 和 L1 是串行链路层面的状态,不是设备电源状态。

2. Flit 模式(Flit-Based Switching, PCIe 6.0+)下的变化

从 PCIe 6.0 开始引入 Flit Mode,改变了部分 ASPM 行为:
在这里插入图片描述

📌 L0p 的优势:
支持在链路宽度变更(lane width change)过程中维持通信。
入口延迟短,出口延迟较长。
链路在 L0p 期间仍可操作,但带宽降低。

四、各 ASPM 状态详解

1. L0s(Low Power Idle - Short Latency)

用途:短暂空闲时快速进入/退出。
进入条件:TX 链路无数据发送。
退出延迟:极低(通常 < 64 ns)。
节能程度:显著(关闭部分 PHY 电路)。
实现建议:只要硬件支持,应尽可能启用。
调用策略(见 §5.4.1.1.1):
当发送端检测到一段时间无流量,可发起进入 L0s。
接收端需同步进入电气空闲(Electrical Idle)。
🔧 实现方式:通过 TS1/TS2 Ordered Sets 协商进入 L0s。

2. L1(Low Power - Long Latency)

用途:长时间空闲,追求最大节能。
进入条件:链路长时间未使用。
退出延迟:较长(可达 μs 级别),受设备能力限制。
节能程度:高于 L0s(可关闭更多 PHY 模块)。
可选子状态:
L1.1:关闭部分参考时钟(Refclk),进一步节能。
L1.2:关闭 PLL 和大部分 PHY 电源,节能最多,恢复最慢。
📌 L1.1/L1.2 是否启用取决于平台设计和时钟架构(如是否共享 Refclk)。

3. L0p(Flit Mode Only)

特点:
入口快,出口慢(因需重新训练链路宽度)。
在宽度切换过程中保持链路“运行”,但带宽下降。
适用于动态 lane scaling 场景。
适用场景:高吞吐波动环境(如 AI 加速器、GPU)。

五、ASPM 支持能力报告机制

每个 PCIe 组件必须在其 Link Capabilities Register 中报告以下信息:
在这里插入图片描述
📌 作用:

BIOS/OS 使用这些信息决定是否启用 L0s 或 L1。
若主机侧退出延迟 > 设备可容忍延迟,则不应启用该状态。

六、ASPM 的启用与协商

1. 启用流程

BIOS 或 OS 初始化阶段读取两端设备的 ASPM 能力。
根据系统策略(如电源模式:Performance / Balanced / Power Saving)决定启用哪些状态。
通过 Link Control Register 设置 ASPM 控制位(如 Enable L0s, Enable L1)。
两端协商一致后,硬件自动管理链路状态转换。

2. 协商规则

ASPM 模式由链路两端共同决定,取交集。
若一端不支持 L1,则整个链路不能使用 L1。
BIOS/UEFI 通常负责初始配置,OS 可后续调整。

七、ASPM 的实际影响与权衡

在这里插入图片描述

启用 ASPM 后出现网络延迟抖动(尤其是 NIC)。
SSD 性能波动(特别是低端控制器)。
解决方案:在 BIOS 或 OS 中禁用 ASPM(pcie_aspm=off Linux 参数)。

八、Linux 下的 ASPM 配置

1. 查看当前 ASPM 状态

lspci -vv | grep -i aspm

输出示例:
在这里插入图片描述

2. 内核参数控制

在这里插入图片描述

default:BIOS 设置
performance:只允许 L0s
powersave:允许 L0s + L1(含子状态)

九、不同形态设备的要求(Form Factor Requirements)

某些规范强制要求 ASPM 支持:
在这里插入图片描述

十、总结:ASPM 关键要点

在这里插入图片描述

http://www.dtcms.com/a/338228.html

相关文章:

  • 14.Linux线程(2)线程同步、线程安全、线程与fork
  • 【秋招笔试】2025.08.17大疆秋招机考第一套
  • plantsimulation知识点25.8.18-从一个RGV到另一台RGV,工件长度和宽度方向互换
  • pytest测试框架之基本用法
  • GPT-5之后:当大模型更新不再是唯一焦点
  • 本地搭建dify+deepseek智能体
  • 【unitrix数间混合计算】3.1 零标记trait(zero.rs)
  • 【最后203篇系列】033 Mongo副本集修复过程
  • Maven resources资源配置详解
  • 小程序被爬虫攻击,使用waf能防护吗?
  • Vision Master的C#脚本与opencv联合编程
  • 【opencv-Python学习笔记(7):图像平滑处理】
  • 【图像算法 - 17】慧眼识“果”:基于深度学习与OpenCV的苹果智能检测系统(附完整代码)
  • sqli-labs通关笔记-第54关 GET字符型注入(单引号闭合 限制10次探测机会)
  • 英特尔公司Darren Pulsipher 博士:以架构之力推动政府数字化转型
  • 【leetcode】392. 判断子序列
  • 【yocto】为什么要选择yocto?
  • leetcode4_452 and 763
  • 力扣热题100------19.删除链表的倒数第N个结点
  • 【MongoDB与Python:数据库操作入门教程】
  • 力扣hot100:移动零问题的巧妙解决:双指针与原地交换策略(283)
  • ETL中统一调度的方式
  • Vue深入组件:组件事件详解1
  • 如何使用 React 101 的 Highcharts 包装器
  • 【网络安全实验报告】实验七:简单的防火墙搭建实验
  • css word-pass
  • 数据转换细节揭秘:ETL如何精准映射复杂业务逻辑
  • 专题:2025AI技术应用与发展报告|附600+份报告PDF、数据仪表盘汇总下载
  • 前端处理导出PDF。Vue导出pdf
  • GPT-5博士级AI使用教程及国内平替方案