[PCIe] [电源管理] 面向硬件的ASPM链路状态和L1子状态

news/2025/2/19 23:01:05/

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

有两种低功率链路状态:

  1. L0s,也叫L0 standby。对于所有的pcie设备都是强制性的。L0s是一个单向的pcie链路状态。所以设备在初始化L0s时,可以在rx保持在L0状态,但让tx进入L0s。
  2. L1 ASPM。可选的。pcie链路的两个方向都需要在L1中。

为了使ASPM工作,系统驱动程序需要首先读取设备配置空间中的链接功能寄存器,以了解该pcie设备是否支持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 )来启用L0S和ASPM L1。 link control register[1:0]是活动状态的PM控制位。[1:0]=00表示两者都是禁用的。01表示启用了L0s,禁用了ASPM L1。10表示禁用L0s,启用ASPM L1。11表示两者都是启用的。

当系统或设备端pcie硬件在pcie链路上检测到空闲时间时,可以将其tx置为L0s状态。它不需要告诉高层软件来阻止outbound (出站)TLP事务。L0s状态退出相应的也由phy 硬件来发起。

L1状态进入不同,因为L1需要两个方向都处在L1中。下面是设备如何请求链接进入ASPM L1:

  1. 设备端phy检测pcie链路上一定的空闲时间。注意,这个空闲时间长度依赖于具体实现,通常是7-10us。然后设备阻塞新的出站事务(outbound transaction)到系统(RC)。
  2. 设备一直向系统端(RC)发送PM_Active_State_Request_L1 DLLP,直到它从系统端(RC)接收PM_Request_ACK。
  3. 系统(RC)接收到PM_Active_State_Request_L1,阻塞要发送给设备的新事务,并不断发送PM_Request_ACK,直到接收到电气空闲ordered set。
  4. 设备接收PM_Request_ACK,发送电气空闲ordered set,将其tx进入电气空闲
  5. 系统接收到电气空闲,将其tx转入电气空闲。现在Pcie链路处于ASPM L1状态。

系统或设备都可以启动ASPM L1退出。

PCIE教程中提到的设备低功耗状态序列,可以看出L1的启动不需要系统驱动介入。这是很重要的,因为设备可以将自己置于低功耗状态,然后将pcie链路放入L1中。设备比任何人都更了解自己的电源状态。

让我们看一下用力科Teledyne LeCroy pcie分析仪捕获的pcie包。首先设备端检测到几个us(微秒)的链接空闲。它将PM_Active_State_Request_L1 DLLP发送到Root Complex,即系统软件端。RC使用PM_Request_Ack DLLP进行响应。如果没有收到电空闲,RC可以发送另一个PM_Request_Ack到设备。这个ack DLLP可以表示为包错误,但它是ok的。这实际上是预期的,因为对方是在电气闲置状态。

下面是另一个例子。设备像先前一样向RC发送PM_Active_State_Request_L1。但是设备立即注意到它有mem wr TLP到RC。它现将这笔数据发送出去。重新检测到链路空闲后,需要再次发送PM_Active_State_Request_L1。最后,当RC返回PM_Request_Ack时,链接可以到达L1。

 

Pcie规范还定义了L1.1和L1.2低功耗子状态。

下面是对L1.1和L1.2的历史和总体思想的一个很好的描述:

 

到PCI Express在2002年开发时,附加的“链接状态”又称“L-States”已经包含在规范中。这些模式兼容现有的“D - state”模式。“L0”反映了一个PCI Express链路完全运行。“L1”是一个不传输数据的链路,但可以相对较快地恢复正常运行。“L2”和“L3”分别反映一个主电源已被移除的连接(“L2”表示一个辅助电源处于活动状态,为设备提供“保持通电”的电源)。还定义了“L0s”状态,在这种状态下,PCI Express链路的各个方向都可以独立关闭,快速恢复正常运行。“D0”中完全活动的设备可以在“L0”、“L0s”和“L1”之间自由切换,不需要软件干预,不需要任何操作系统的交互,自动省电。

虽然这似乎是设备主动节能问题的一个解决方案,但“L-States”的致命弱点却是电源的启动或关闭速度。PCI Express规范要求设备在不到1微秒的时间内从“L0s”退出,从“L1”退出的时间约为2-4微秒。虽然物理层设计人员可以让处于L1中的接收器和发射机逻辑空转以满足这些恢复时间,但是他们不得不让他们的共模电压保持器和锁相环(PLLs)保持通电并运行。这意味着“L1”中的每条PCIe通道(lane)仍然可能消耗20-30毫瓦的能量,这对于电池供电的设备来说显然是太高了。

到2012年,人们越来越清楚地认识到,这种移动设备中专门的硬件和软件组合可以处理正常和低功耗状态之间的PCI Express组件转换,只要它们有这样的机制。进而引入“带CLKREQ的L1 PM子状态”到PCI Express(通常简称为“L1子状态”)是为了允许PCI Express设备进入更深层的省电状态(“L1.1”和“L1.2”),同时仍然显示让软件处于“L1”状态。

L1子态的关键是提供一个数字信号(“clkreq#”),供物理系统唤醒并恢复正常工作。这允许PCI Express PHYs在新的子状态完全关闭他们的接收器和发射机逻辑,因为它不再需要检测或信号的链路恢复。当ECN指定了两级恢复延迟时,它们还可以关闭它们的PLLs,甚至可能关闭共模电压保持器。L1.1子状态的目标恢复时间为20微秒(比L1子状态允许的时间长5到10倍),而L1.2子状态的目标恢复时间为100微秒(比L1子状态长50倍)。两个状态都应该允许好的物理层设计来关闭他们的锁相环。L1.1子状态要求维持共模电压,而L1.2子状态允许其释放。在L1.1状态下设计良好的PCI Express PHYs应该能够达到L1状态下的1/100左右的功率水平。同样地,在L1.2子状态中,PHYs的功耗应该降低到L1态的1/1000左右。

传统的L1状态也是新的L1.0子状态。

L1.1的功耗比L1.0低。这是因为不需要启用pcie端口来检测电力空闲状态。但是pcie链路的共模电压仍然保持不变。

L1.2的功率甚至比L1.1还要低,因为没有保持链路共模电压。

L1.1和L1.2都需要一个双向开漏的CLKREQ#来进入和退出状态。

L1.1和L1.2进入顺序如下:

  1. 首先设备在pcie链路上检测到一些空闲时间,它想进入L1.0,这是传统的L1状态。
  2. 设备将检查L1.1和L1.2是否由系统驱动程序启用。
    1. 如果禁用,设备将转到L1.0。
    2. 如果启用,设备将根据L1.1和L1.2预先编程的LTR阈值检查LTR值。如果LTR值不小于LTR阈值,则设备应进一步检查CLKREQ#
  3. 如果clkreq#是高指示系统不需要设备在L0,设备可以得到pcie链接到L1.1或L1.2。

LTR阈值在配置空间中。LTR值是定期发送到系统的LTR消息设备。LTR表示延迟容忍报告。这是为了让设备向系统端报告其内存读写的服务延迟需求,以便能够在不影响设备功能和性能的情况下对系统进行电源管理。LTR消息值不小于LTR阈值,表示设备能够容忍长时间的读写系统内存延迟(因此可以将链接置于低功耗状态)。


http://www.ppmy.cn/news/171176.html

相关文章

富士胶片首次参展贵阳数博会;佳能携多元化专业影像设备亮相CCBN2021;七彩虹建设国内首家GPU博物馆 | 全球TMT...

今日焦点 富士胶片首次参展贵阳数博会 佳能携多元化专业影像设备亮相CCBN2021 七彩虹建设国内首家GPU博物馆 百度爱番番拓客专业版发布 大公司动向 富士胶片首次参展贵阳数博会。富士胶片(中国)携旗下记录媒体产品以及解决方案首次参展,其中包…

esxi能直通的显卡型号_七彩虹RTX SUPER祝融(火神)版显卡上手体验

18年中旬英伟达发布了20系列显卡。而今年为了对付AMD刚上市的显卡老黄又对自家的显卡产线做出了更细致的划分,即在2060,70,80,80ti之间插♂入了SUPER(强化)版本。 我们都知道super版本显卡相比同型号非super的显卡要强出太多,而且价格上也比较接近非supe…

电脑pro,拒绝等待!七彩虹全新设计师电脑ProMaster H1为创意加速

新年伊始,七彩虹科技正式发布了全新设计师领域整机系列:Colorful ProMaster(专业大师)。并同时公布了旗下第一款设计师电脑整机:Colorful ProMaster H1。其采用全新三面环绕布艺设计要素,搭载NVIDIA GeForce RTX Studio和英特尔傲…

Vue.js 中的父子组件通信方式

Vue.js 中的父子组件通信方式 在 Vue.js 中,组件是构建应用程序的基本单元。当我们在应用程序中使用组件时,组件之间的通信是非常重要的。在 Vue.js 中,父子组件通信是最常见的组件通信方式之一。在本文中,我们将讨论 Vue.js 中的…

七彩虹固态硬盘 慧荣SM2258XT主控开卡教程,SM2259XT2貌似差不多

七彩虹SL500价格低但性能也低,速度非常慢,据说是SLC缓存用尽后,主控会进入被动垃圾回收操作,导致写入速度极慢,卡顿明显,由于它采用的是MLC/TLC双模式闪存,那么是不是可以用开卡工具把模式调成M…

七彩虹主板CVN系列首发 这个主板有点冷

20世纪70年代以来,随着电脑技术的高速发展,电脑游戏的内容日渐丰富,种类日趋繁多,游戏的情节也越来越复杂,图像越来越逼真。尤其是当下虚拟现实游戏大行其道的情况下,很多玩家都愿意选择一个具有更高的游戏…

超频到3200最佳时序_10900K内存搭配超频测试,七彩虹CVN捍卫者内存颜值标杆

随着DIY的蓬勃发展,机箱内部部件的颜值已经被提到了一个新高度。在过去,内存条、硬盘、显卡以及散热器这些部件的外观优先级都在性能、做工、稳定性之后,随着DIY主机对颜值的重视程度,机器内部部件的颜值也需要非常重视。为了搭配一套让自己赏心悦目的主机,秋叶苦苦寻找一…

ubuntu16.04+七彩虹GTX1060的NVIDIA驱动+Cuda8.0+cudnn5.1+tensorflow+keras搭建深度学习环境【学习笔记】【原创】

平台信息: PC:ubuntu16.04、i5、七彩虹GTX1060显卡 作者:庄泽彬(欢迎转载,请注明作者) 说明:参考了网上的一堆的资料搭建了深度学习的开发环境,下班在宿舍折腾了好几个晚上才搞定,写篇文章记录一下。 一、安装Nvidi…