LJgibbs · 2022年01月05日

PCI Express 学习篇_Power Management(1)

写在前面

笔者在工作中需要包个 PCIe wrapper,正在努力飞快学习 PCIe ing.
本文系转载,略做格式调整与增加解释,转自https://blog.csdn.net/weixin_48180416/article/details/115576240
相应内容可参考:

  • MindShare, PCI Express System Technology 3.0 第十六章。
  • 《PCI Express 体系结构导读》 第八章

转载正文

此篇为Power Management概述。下一篇介绍L1低功耗状态。

两种 PCIe PM

PCIe的Power Management(PM)分为两种:

  • PCI-Compatible PM
  • 符合PCI协议的电源管理,由软件通过Configuration Requests发起;
  • Active State Power Management(ASPM)
  • 定义基于硬件控制的电源管理,同时定义了唤醒系统的机制,PME message机制。

PM 基本知识

以下先介绍一些基本知识:

电源状态 (Power state)

PCIe 包含四种电源状态——D0,D1,D2,D3 (D3hot,D3cold)

  1. D0和D3是强制必须存在的状态,D1和D2是可选的状态;
  2. D0是full power的状态,D1为slight sleep, D2为deep sleep,D3hot无Main Power但是存在AUX Power,D3cold是全部off的状态;
  3. D0分为D0uninitialized和D0active状态, Convertional Reset(后续会介绍)和FLR后会进入D0uninitialized,配置BME,MSE,ISE后会进入D0active;
  4. 按照省电的顺序D0<D1<D2<D3hot<D3cold

image.png

链路状态 (Link state)

PCIe包含几种链路状态——L0,L0s,L1,L2 (L1包含子状态,后续再介绍)

  1. L0是Fully Active状态;
  2. L0s,低功耗模式,仅支持ASPM方式,是硬件自动发起的,软件无法控制,是单向的,比如upstream有大量数据,downstream没有数据的时候downstream可以独立的进入L0s;
  3. L1,低功耗模式,支持两种方式PCI-PM,ASPM;L1子状态可以关闭参考时钟、Tx common mode电路,Rx electric idle detect电路更加省电;
  4. L2,低功耗模式,仅支持PCI-PM方式,关闭参考时钟、关闭PLL、关闭Main Power, 但是需要保留Aux Power;
  5. L3,低功耗模式,仅支持PCI-PM方式,处于所有power都off的状态;
  6. 按照省电的顺序L0<L0s<L1<L2<L3,越省电的状态recovery到L0正常工作状态的时间就会越长。
    image.png
    电源状态和链路状态的对应关系

电源状态和链路状态是有对应关系的,需要熟悉以下几点:

  1. D0状态下可以对应L0,L0s,L1;
  2. D1、D2、D3hot对应的链路状态是L1;
  3. D3cold对应的链路状态是L2,L3。
    image.png

PM 相关的寄存器

关于寄存器方面,有两个很重要的寄存器可以先简单的了解下:

1.PCIe配置空间的Power Management Capabilities的Power Management Control/Status(PMCSR)包含PowerState bit位, 为电源状态, 其中

  • 00-D0
  • 01-D1
  • 10-D2
  • 11-D3hot

2.PCIe配置空间的Power Management Capabilities的Power Management Control/Status(PMCSR)包含PME_EN bit位,为PME Message使能,只有PME Support位为1(Power Management Capabilities寄存器中)且PME_EN=1时,可以发起PME Message.
image.png

PCI-PM和ASPM

先简要地介绍下PCI-PM和ASPM,后面会详细介绍。

PCI-PM

由Power management software发起, 例如RC和EP相连的情况下,RC会向EP发起CfgWr配置EP的PMCSR 寄存器PowerState改变直接电源状态,这会自动引起链路状态的改变;

例如配置EP为D1,D2,D3hot状态,会使EP进入L1状态

ASPM

包含L0s和L1 ASPM,ASPM名称的“Acitve”的意思可以理解为L0s和L1 ASPM都是在D0下发生的。
ASPM是基于硬件“hardware-based”的电源管理,软件不能控制具体的过程只能enable/disable

版权声明

版权声明:本文为CSDN博主「小雨滴落落」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:PCI Express学习篇---Power Management(一)

转载自:知乎
作者:小雨滴落落

推荐阅读

更多招聘及面经请关注FPGA的逻辑
推荐阅读
关注数
10614
内容数
577
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息