PCIe 5.0 spec学习4.1----PCI-PM(part1)

1 PCIe中的PM职能

PM,即Power Management提供以下服务:

  1. 确定给定function的PM能力机制
  2. 将function转换到特定PM状态的能力
  3. function当前PM状态的通知
  4. 在特定事件时唤醒系统

前三条基本就是各种通信IP中各功能的软件入口三件套:能力(capability)、控制(control)、状态(status)。

2 PM的两种机制

PCIe的PM机制有两种:基于软件的PCI-PM和基于硬件的ASPM(active state power management)。PCI-PM会涉及链路状态(即L状态)和function状态(即D状态)的管理;而ASPM只管理L状态,ASPM可以被软件禁用,ASPM在function处于D0时也可以根据需要把链路置于非L0来降低功耗,而PCI-PM只能通过将function置入非D0才有可能把链路状态转到非L0。

本文仅介绍PCI-PM机制。

3 L状态

图1 链路PM状态转移图

注意:图1所示的状态不能跟物理层LTSSM里的状态直接对应,比如上图的L0其实对应了LTSSM的L0,Recovery以及linkup期间的Configuration;而LDn则有可能是Linkdown下的所有状态,比如detect,polling等。

图1中有2点我感兴趣的信息说明如下:

  1. 为什么L1不能直接切到L2/L3 Ready?---因为仅L2/L3 Ready需要TLP支持,而TLP仅可在L0下收发,所以只能通过Recovery先回到L0再进。
  2. L2/L3 Ready进L2和L3的选择---系统支持Vaux就会进L2,否则就进L3。

其余信息图上文字描述比较清楚,不赘述。

上表里的internal PLL,如果关闭,代价是增大退出延迟。

L0s的退出延迟为100 symbol的时间;L1的退出延迟为若干ms。

4 L1

4.1 L1和L0之间的互相转换

上图为L0到L1的流程,简要描述如下:

(为了简单起见,以UC代替upstream component,DC代替downstream component)

1、 UP发configuration write TLP配置DC的PMCSR来将DC从D0转移到其它状态

2、DP启动链路L0到L1的切换,应答configuration write TLP

3、DP关闭事务层,重复发送PM_Enter_L1 DLLP

4、UP关闭事务层,重复应答PM_Request_Ack DLLP

5、DP关闭数据链路层,并把物理层置入EI

6、UP检测到EI后也关掉数据链路层,把物理层置入EI

至此,完成L0到L1的切换

上图为L1到L0的转换流程,基本就是UP先回到D0后再逐步把链路切到L0,再把DP且到D0,这部分内容跟LTSSM部分的L1到L0有点重合,不展开描述。 

4.2 L1子状态的进出

由于其余状态比较简单,只挑L1进行介绍。

L1有三个子状态:

L1.0

RX需要能检测到对端退出EI(电气空闲)

L1.1

共模电压被保持;

不需要具备检测EI退出的能力,依靠sideband信号CLKREQ#来触发退出;

不需要参考时钟

L1.2

共模电压不被保持;

不需要具备检测EI退出的能力,依靠sideband信号CLKREQ#来触发退出;

不需要参考时钟

需要注意的是,通过ASPM和PCI-PM都可以进入L1,这两种机制进入的L1是独立的。由ASPM进入的记作ASPM L1.0/ASPM L1.1/ASPM L1.2,而由PCI-PM进入的把前缀改成PCI-PM即可,本文后续描述的均是PCI-PM,为了简便起见,不加前缀。

三个状态之间的转换入下图,可见L1.1和L1.2是互不相关的,L1.0后进哪个完全取决于软件对L1 PM Substates Control 1寄存器的配置。

L1.1和L1.2进入的规则:

  1. USP和DSP都必须监视CLKREQ#的状态
  2. 处于PCI-PM L1.0时,PCI-PM L1.2 Enablebit被置1时,当CLKREQ#被拉高时需要进L1.2
  3. 处于PCI-PM L1.0时,PCI-PM L1.1 Enablebit被置1时,当CLKREQ#被拉高时需要进L1.1,且PCI-PM L1.2 Enable bit被清除。

当进L1.2的条件被满足时,需要应用如下规则:

  1. USP和DSP都必须监视CLKREQ#的状态
  2. 链路进入L1.0后USP才能拉高CLKREQ#
  3. USP和DSP都可以通过拉低CLKREQ#来避免进L1.2
  4. DSP如果想中断进L1.2,那么在进L1前就应该保持拉低CLKREQ#
  5. CLKREQ#被拉高后,链路进入L1.2中的子状态L1.2.Entry

 

上图为spec给出的L1.2进出波形,由DSP驱动进入L1.0(通过DLLP协商),再由USP拉高CLKREQ#进入L1.2,退出则是USP和DSP都可触发,上图是以USP触发来举例。上图所标的时间参数约束如下表

 5 L2/L3 Ready

如前文所述,L2/L3 Ready是L2 L3之前的伪状态,这里以spec给的例子介绍进入机制

例1

1.系统软件将DC的所有function引导到D3hot

2.DC将链路转到L1

3.系统软件让RC广播PME_Turn_Off,以准备移除主电源

4.为了能发送此报文,链路将被切回L0,如此DC也能够以PME_to_Ack进行响应

5.DC启动L2/L3 Ready转换协议(用PM_Enter_L23 DLLP于UC交互)

故链路状态转换流程为L0--L1--L0--L2/L3 Ready

例2

1.系统软件让RC广播PME_Turn_Off,以准备移除主电源

2.DP以PME_to_Ack进行响应

3.DP启动L2/L3 Ready转换协议

故链路状态转换流程为L0--L2/L3 Ready

剩余D状态、唤醒、PME等介绍将放到下一篇文章。

  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "pcie-xxx-02-x-d-th-footprint"是一个电子元件的标准尺寸。 首先,"pcie"表示这个尺寸是适用于PCI Express(PCIe)接口的元件。PCIe是一种计算机总线标准,用于连接电脑主板和外部设备。 接下来,"xxx"表示这个尺寸所适用的规范和版本。具体规范取决于硬件制造商和应用需求,可能是PCIe 3.0、PCIe 4.0等。 "02"表示这个尺寸的版本或修订号,通常代表了硬件标准的更新或改进。 "x"可能指的是特定尺寸的变量,可以是不同封装类型、连接器数量、针脚数目等。 "d"可能代表了器件的密度,指的是在给定的面积上有多少个引脚或连接器。 "th"表示这个尺寸是一个表面贴装型(SMT)元件,需要通过焊接技术安装在电路板上。 最后,"footprint"指的是元件的物理布局和尺寸。电子元件的脚位位置、尺寸以及间距将会按照这个标准来设计和制造。 因此,"pcie-xxx-02-x-d-th-footprint"可以被理解为一个符合PCI Express接口、特定规范和版本、特定封装类型和形状的表面贴装型电子元件的标准尺寸。这个标准尺寸指导了电路板设计师在设计和布局电路板时需要遵循的硬件规范。 ### 回答2: PCIE-XXX-02-X-D-TH是一种电子元件的封装底座或插座类型,用于安装PCI Express(PCIe)接口的电子设备上。 首先,"PCIE"代表了Peripheral Component Interconnection Express,即外设互连快速总线的缩写,它是一种高速数据传输接口标准,广泛应用于计算机、服务器、图形卡等设备。 "XXX"是具体的型号代码,代表了该电子元件的特定型号及规格。 "02"表示该元件有多个版本或系列,而"-X"代表了一个保密或未公开的特殊版本。 "D"表示该底座或插座是双排连接的,即拥有两个并列的排针或排孔。 "TH"代表Through-Hole,表示这个底座或插座是通过插针固定在电路板上的,而不是表面贴装(Surface Mount)类型。 "footprint"是指底座或插座在电路板上占据的物理空间,也可理解为底座的尺寸和布局。这个尺寸和布局信息对于设计师来说非常重要,因为它决定了元件在电路板上的布局和连线方式,也影响到整个电路的性能和稳定性。 总结来说,PCIE-XXX-02-X-D-TH-footprint表示了一种特定型号的PCIe插座,它采用双排连接,通过插针固定在电路板上,具有特定的尺寸和布局。这个信息对于电子设备的设计和生产非常关键,因为它决定了PCIe接口设备在电路板上的安装方式和连接方式。 ### 回答3: "pcie-xxx-02-x-d-th-footprint" 是一个针对 PCIe 槽位的规格标识。 PCIE 是指 PCI Express,是一种用于电脑主板上插槽的通信接口标准,用于连接外部设备,如显卡、硬盘等等。它提供了高带宽和高速度的数据传输。 而 "xxx-02-x-d-th-footprint" 用于描述 PCI Express 插槽的特征和尺寸。这个标识中的每个部分代表了具体的规格: - "xxx" 指的是 PCIe 插槽的物理尺寸和定位,例如 x1、x4、x8 或 x16 等; - "02" 指的是 PCI 版本。PCIe 标准有多个版本,每个版本之间有所不同; - "x" 是插槽的数量和布局,表示该插槽是通过 CPU 来提供扩展能力还是通过北桥芯片来提供扩展能力。例如,x1 指的是插槽数量为1, x16 指的是插槽数量为16; - "d" 是标识插槽的驱动能力,表示 PCIe 插槽能够提供的功率; - "th" 指的是插槽的连接方式,例如 "th" 可以代表固定直插插座,而 "mgc-th" 可以代表通过柔性连接器连接。 通过这样的规格标识,用户、制造商和设计师可以准确了解 PCIe 插槽的尺寸、版本、驱动能力和连接方式,以便选择合适的设备和进行正确的设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值