【86】ASPM进入和退出L1

article/2025/9/18 10:08:24

    之前写过一篇power management的介绍,主要是介绍了一下power management的概念,这次主要是介绍下ASPM和ASPM L1机制。

【67】PCIe Power Management和linux对PME的处理_linjiasen的博客-CSDN博客

1、ASPM介绍

    ASPM全称Active State Power Management,是针对Power Management的一种管理机制。所谓“Active State”就是设备在D0状态下进入低功耗模式的管理机制。ASPM是硬件行为,软件只能写function配置空间Link Control Register的ASPM Control比特来disable和允许进入某种L state。

    PCI-PM是软件写function的配置空间的Power Management Control/Status Register来让function进入某种D state。

2、ASPM L1介绍

    如果设备是支持ASPM L1的(link cap reg的bit11-10),ASPM ctrl字段的L1 entry(link ctrl reg的bit1-0)默认是disable的。只有链路两端的component都支持ASPM L1时,software才能enable downstream component的ASPM L1。

    Software必须先使能upstream component的ASPM L1,然后再使能downtown component的ASPM L1。Disable ASPM L1的时候是相反的操作。这点在link control寄存器的ASPM control字段也有说明。

3、PCIe协议对ASPM L1协商的规定

  1. Downstream component必须积累有足够数量的credit才能发起ASPM L1 entry的初始化流程。
  2. 在进入low power link state前,Downstream component必须阻止发送端再从transaction layer发送TLP(包括completion)到data link layer
  3. Downstream component必须等到之前发送的最后一个TLP收到acknowledgement(retry buffer为空)。
  4. Downstream component 反复发送PM_Active_State_Request_L1 DLLP来进行ASPM协商。Downstream component发送PM_Active_State_Request_L1 DLLP的间隔不超过8个(8b/10b)或者32个(128b/130b)idle symbol times。
  5. Downstream component一直发送PM_Active_State_Request_L1 DLLP,直到收到Upstream component回复PM_Request_Ack DLLP或者PM_Active_State_Nak message。在等待Upstream component回复PM_Request_Ack DLLP期间,Downstream component不能发送TLP,可以正常接受Upstream component发送的TLP和DLLP,并回复FC updata DLLP。也就说Downstream component的Transaction Layer进入了inactive,但是data link layer还是active状态。
  6. Upstream component必须立刻响应,接受或者拒绝PM_Active_State_Request_L1请求。Upstream component不停发送PM_Request_Ack DLLP直到detect 链路进入idle。

  4、PCIe EP ASPM L1 entry机制

  1. LinkTX端是idle的(例如,client端没有transmit TLP并没有replay TLP pending),EP controller开启ASPM L1 entry timer开始计时,如果client端有TLP要发送,那么timer会被clear
  2. ASPM L1 entry timer达到时间后(ASPM L1 Entry Timeout Delay Register可以设置,默认是750*16ns=12us),EP controller检查是否有足够的credit
  3. EP controller block新的TLP发送,并且通过TX lane发送PM_Active_State_Request_L1 DLLP
  4. EP controller持续发送PM_Active_State_Request_L1 DLLP直到收到upstream deviceresponse
  5. Upstream component必须立刻对EP controller发出的PM_Active_State_Request做出响应(接收或者拒绝)。
  6. 如果Upstream component拒绝EP controller发出的PM_Active_State_Request,则Upstream component发出PM_Active_State_Nak message(注意NAKmessage,那么EP controllerabortASPM L1 entry并且继续正常发送TLP
  7. 如果Upstream component接受EP controller发出的PM_Active_State_Request,则Upstream component发出PM_Request_Ack DLLP(注意ACKDLLP,然后EP controller会让自己的TX进入electrical idle并进入ASPM L1
  8. Upstream component detect electrical idle后,让自己的TX进入electrical idle

5、PCIe EP ASPM L1 entry例子

(1)systemBIOS设置CPU支持ASPM L1

    设置完毕后,CPU对应Root Port的link cap就支持ASPM L1

 (2)设置CPU和EP两个PF的link ctrl为ASPM L1 Enabled

注意顺序:一定要先CPU,后EPPF0/PF1

设置CPU端口的link ctrl为0x2,L1 Entry Enabled

setpci -s 0:1.0 0x50.b

00

setpci -s 0:1.0 0x50.b=0x2

setpci -s 0:1.0 0x50.b

02

 设置EP芯片的两个PF的link ctrl为0x2,L1 Entry Enabled

setpci -s 1:0.0 0xd0.b

00

setpci -s 1:0.0 0xd0.b=0x2
setpci -s 1:0.0 0xd0.b

02

setpci -s 1:0.1 0xd0.b

00

setpci -s 1:0.1 0xd0.b=0x2

setpci -s 1:0.1 0xd0.b

02

 

(3)等待链路进入idle状态,从串口查看芯片状态

从pcie_status_0 reg(0x7F00814004)的bit24-21为0100b,知道链路在L1状态了

从lower power debug and ctrl reg(0x7F00900C88)的bit26-25为01b,知道是因为ASPM进入的L1。

(6)退出ASPM L1的方法

只要host端访问一下EP,EP就可以退出ASPM L1进入L0。


http://chatgpt.dhexx.cn/article/vYZmYYKj.shtml

相关文章

L1 L2范式

正则化(Regularization) 机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm和ℓ2ℓ2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数。 L1正…

L1正则项-稀疏性-特征选择

原文链接: http://chenhao.space/post/b190d0eb.html L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择。 所谓稀疏模型就是模型中很多的参数是0,这就相当于进行了一次特征选择,只留下了一些比较重要的特征&a…

梳理L1、L2与Smooth L1

关于L1、L2的范数、损失函数和正则化,之前一直混淆这几个概念,故对这几天看过的资料进行了学习总结。 范数(norm)是数学中的一种基本概念。在泛函分析中,它定义在赋范线性空间中,并满足一定的条件,即①非负性&#xff…

L1范数与L2范数的区别与联系

L1范数与L2范数的区别与联系 一、过拟合与正则化 过拟合指的就是在机器学习模型训练过程中把数据学习的太彻底,以至于把噪声数据的特征也学习到了,这样会导致在测试的时候不能够很好地识别数据,即不能正确的分类,模型测试的时候不…

L1正则化及其稀疏性的傻瓜解释

本文翻译自:L1 Norm Regularization and Sparsity Explained for Dummies, 特别感谢原作者Shi Yan! 0. 前言 好吧,我想我就是很笨的那一类人。 当理解一个抽象的数学概念,我必须把它转化成一张图像,然后在…

L1/L2范数

文中内容为一下博文整理而来 https://blog.csdn.net/iterate7/article/details/75443504 https://blog.csdn.net/zhaomengszu/article/details/81537197 什么是范数 范数是具有“长度”概念的函数。在向量空间内,为所有的向量的赋予非零的增长度或者大小。不同的范…

机器学习——L1范数充当正则项,让模型获得稀疏解,解决过拟合问题

问:使用L2范数正则项比L1范数正则项得到的是更为稀疏的解。 答:错误,L1范数正则项得到的是更稀疏的解。因为在L1正则项中,惩罚项是每个参数绝对值之和;而在L2正则项中,惩罚项是每个参数平方的和。L1正则项…

L1、L2的作用

L范式都是为了防止模型过拟合,所谓范式就是加入参数的约束。 L1的作用是为了矩阵稀疏化。假设的是模型的参数取值满足拉普拉斯分布。 L2的作用是为了使模型更平滑,得到更好的泛化能力。假设的是参数是满足高斯分布。 借用公众号python与算法社区的内容20…

机器人设计范式

“ 本期技术干货,我们邀请到了小米机器人实验室工程师徐海望,和大家分享在机器人学领域中,关系到机器人的行为模式或操作模型的三种行为执行逻辑,分别是分级范式(hierarchical paradigm)、反应范式&#xf…

数据库设计之范式与反范式

范式设计 什么是范式? 范式来自英文Normal Form,简称NF。要想表之间设计—个好的关系,必须使关系 满足一定的约束条件,此约束已经形成了规范,分成几个等级,一级比一级要求 得严格。满足这些规范的数据库是…

详解数据库的第一范式、第二范式、第三范式、BCNF范式

版权声明:本文转自小小呆原创文章 https://blog.csdn.net/gui951753/article/details/79609874 第一范式 定义以及分析:问题研究: 第二范式 必备知识点定义分析:解决办法:问题研究: 第三范式: 定义&…

关系范式

一、数据需要规范化的原因: 1.数据冗余大 2.防止更新异常 3.防止插入异常 4.删除异常 数据库范式分为1NF,2NF,3NF,BCNF,4NF,5NF 一张表按照范式的不同等级划分将分为多张表,每张表都是一个…

9.3范式

第一范式:定义:不包含非原子项属性的关系是第一范式的关系。 第二范式:定义:如果R(U,F)1NF,并且R中的每个非属性都完全函数依赖于主键,则R(U,F) 2NF。可以用模式分解的办法将非第二范式关系分解…

数据库——范式

范式 1、范式简介 在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 范式的英文名称是Normal Form&a…

范式的判断:方法+例题

范式的判断 例1:R(A,B,C),F{A→B,B→A,C→A},请问这是第几范式? 判断步骤:一图了解范式 一、首先判断候选键&#xff1…

mysql范式

MySQL 三大范式 为什么需要数据规范化? 信息重复 更新异常 插入异常 无法正常显示信息 删除异常 丢失有效的信息设计关系型数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式&#xff…

BNF范式(巴科斯范式)

BNF范式&#xff08;巴科斯范式&#xff09; 是一种用递归的思想来表述计算机语言符号集的定义规范。 基本结构&#xff1a; <non-terminal> :: <replacement> non-terminal意为非终止符&#xff0c;就是说我们还没有定义完的东西&#xff0c;还可以继续由右边的r…

第一、二、三范式的简单理解

范式 范式&#xff1a; 范式是符合某一种级别的关系模式的集合&#xff0c;表示一个关系内部属性之间的联系何合理化程度 粗略理解&#xff1a; 就是一张数据表的表结构所符合的某种设计标准的级别 数据库范式分为: 第一范式(1NF),第二范式(2NF),第三范式(3NF),BCNF(巴斯范式/鲍…

什么是范式?

原创不易,麻烦点个关注,点个赞,谢谢各位。 范式是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。 范式的种类: 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) BC范式(BCNF) 第四范式(4NF) 第五范式(5NF) 1NF的定义…

范式及反范式

** 什么是范式&#xff1f; ** 范式来自英文Normal Form&#xff0c;简称NF。MySQL是关系型数据库&#xff0c;但是要想设计—个好的关 系&#xff0c;必须使关系满足一定的约束条件&#xff0c;此约束已经形成了规范&#xff0c;分成几个等级&#xff0c;一级比 一级要求得…