ASPM介绍

ASPM介绍本文介绍了 ASPM 作为 PCIExpress 的一种省电模式的工作原理

大家好,欢迎来到IT知识分享网。

aspm是pcie的一种省电模式。涉及到的寄存器主要是pci配置空间的如下3个寄存器。

(以下已usb 3.0 控制器的pci配置空间为例子:

ASPM介绍

其中:

link capabilities register [11:10]是活动状态链路的PM支持位。 [11:10] = 00保留。[11:10]=01表示支持L0s。[11:10]=10又保留了。[11:10]=11表示同时支持L0s和L1。设备也使用[14:12]和[17:15]来指示L0s和L1的退出延迟。

link control register[1:0]是活动状态的PM控制位。[1:0]=00表示两者都是禁用的。01表示启用了L0s,禁用了ASPM L1。10表示禁用L0s,启用ASPM L1。11表示两者都是启用的。

具体的datasheet如下:

ASPM介绍

ASPM介绍 

 要看BIOS下有没有设置,可以在shell下使用mm命令查看对应寄存器,看BIOS有没有设置相应位

在OS下,可以通过命令:

lspci -s 01:00.0 -xxx |vim -

图中01:00.0表示这个设备在BUS 1,Dev 0, Func 0上。具体可以先使用lspci命令查看

查看相应的0xAC,0xB0偏移地址的值就可以知道了。

也有如下命令:

setpci -s 01:00.0 b0.B=43

通过修改偏移地址0xb0的值为0x43,其中B代表一个字节

另外,内核可以通过添加config来实现不同的策略。目前有如下策略

defualt:使用BIOS的设置

powersave:内核会打开L0s,以及L1

performance:强行关闭L0s,L1,就算BIOS打开了

power_superave:比powersave多了L1 substates

具体可以通过OS下的这个文件查看

cat /sys/module/pcie_aspm/parameters/policy 

其中涉及到的config在kernel中:

ASPM介绍

其中涉及了4中状态。查看drivers/pci/pcie/Makefile可以看到相应的文件

 补充:

以下转载自:[PCIe] [电源管理] 面向硬件的ASPM链路状态和L1子状态_messi_cyc的专栏-CSDN博客_pciexpress链接状态电源管理

PCIe设备的低功耗状态要求系统驱动程序显式地将设备置于低功耗状态,从而PCIe链路则可以依次变为低功耗链路状态。PCIe规范允许PCIe链路在没有系统驱动的情况下进入低功耗状态。这个特性就是所谓的主动状态电源管理(ASPM)。一般来说,无论是系统驱动端硬件(RC)还是设备硬件(EP)都可以通过检测pcie链路上的空闲时间,然后启动电源状态转移。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/138188.html

(0)
上一篇 2025-06-14 19:20
下一篇 2025-06-14 19:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信