ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

ASPM介绍

2022-01-12 17:02:35  阅读:620  来源: 互联网

标签:11 10 ASPM 链路 L0s 介绍 PCIe L1


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

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

其中:

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如下:

 

 要看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中:

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

 补充:

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

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

标签:11,10,ASPM,链路,L0s,介绍,PCIe,L1
来源: https://blog.csdn.net/fell_sky/article/details/122450464

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有