PCIE Spec 学习---Power management

Overview

电源管理主要是分为两个大类:D states 和 L states。

D states 是和某个特定的 Function 有关的电源状态:

      • D0为运行状态,功耗最大
      • D1、D2为中间省电状态
      • D3Hot是一个非常低的功率状态
      • D3Cold为关机状态

L states 是和特定的 link 有关的电源状态:

      • L0是运行状态
      • L0p是L0的低功率子状态
      • L0s, L1, L1.0, L1.1和L1.2是各种低功率状态

电源管理主要提供如下服务:

  • 识别给定功能的电源管理功能的机制
  • 将功能转换到某种电源管理状态的能力
  • 通知当前功能的电源管理状态
  • 在特定事件上唤醒系统的选项

下面是链路状态的转化:

Device Power Management States (D-States) of a Function

设备电源状态主要有以下几个:

    • D0:是设备正常运行的状态,其他的模式则是用于节能从而关闭部分操作,从而达到节能的目的,但是更低的功耗也就一位置恢复到 D0 状态的时间需要更多。
    • D1:可选的状态,D1 发生时除了消息以及配置 TLP 可以接收,其他所有的请求都会视为不支持的 TLP。若是发生 TLP 错误,则需要返回至 D0 状态处理 D0 到 D1 是需要软件参与的,用于保存任何的状态信息,并且从 D0 切换至 D1 需要处理完所有的 TLP。
    • D2:也是可选的状态,设备可能有段时间未使用,则进入,显著提高节能能力,但是同时保留直接唤醒至 D0 的能力。相同链路中只能有配置以及信息请求,其他的请求也是未支持的。
    • D3 状态又可以分成两类:
      • D3 hot:
        • No_Rest_Soft = 1----------function 的上下文是在 D3 hot 的状态下收集的,若是软件从 D3hot-->D0 状态,需要重新初始化 Function。
        • No_Rest_Soft = 0----------Function 的上下文不在 D3 hot 状态下收集,所以不能确认上下文是否被清除,所以需要重新初始化。
        • Note:若是链路层切换至 L2/L3 ready,则不需要管 No_Rest_Soft 的值,都是需要重新初始化的。
      • D3 cold:在设备电源移除之后进入的状态,若是重新进入 D0 状态需要 Function 重新进行初始化。

PCI Bridges and Power Management

由于电源管理是在操作系统的指导下进行的,因此每一类函数都必须有一个明确定义的标准,以确定功能可用性,以及在每种电源管理状态下运行时必须保留哪些功能上下文。一些示例设备类规范已经被提议作为ACPI规范的一部分,用于从音频到网络外接卡的各种功能。虽然为大多数函数定义特定于设备类的行为策略超出了本规范的范围,但定义PCI桥接函数所需的行为,这里的定义适用于所有三种类型的PCIe桥:

      • Host bridge, PCI Express to expansion bus bridge, or other ACPI enumerated bridge
      • Switches
      • PCI Express to PCI bridge
      • PCI-to-CardBus bridge

控制这些函数状态的机制在一定程度上取决于哪种类型的起源设备存在。下面的部分描述这些机制是如何在三种类型的桥上工作的.

介绍PCI Express Bridge功能的电源管理策略。PCI Express Bridge 可以被描述为具有次级总线下游的始发设备。介绍网桥功能的电源管理状态与其从母线的电源管理状态之间的关系。从图5-19中可以看出,从操作系统的角度来看,本章描述的PCI Express Bridge行为对于主机桥、交换机和PCI Express到PCI桥都是通用的。

Switches and PCI Express to PCI Bridges

交换机或PCI Express到PCI桥的次要总线的电源管理策略与为任何桥功能定义的策略相同,桥函数的PMCSR_BSE寄存器中的BPCC_En和B2_B3#总线电源/时钟控制字段支持与任何其他桥相同的功能。

Power Management Events

电源管理事件有两种类型:

  • 唤醒事件
  • PME 产生

Wakeup事件用于请求打开电源。PME生成事件用于向系统标识请求上电的函数。在传统的PCI中,这两个事件都与pme#信号相关。pme#信号由函数断言,以请求更改其电源管理状态。

当PME_En位被设置并且事件发生时,函数设置PME_Status位,并断言pme#信号。它保持pme#信号断言,直到PME_En位或PME_Status被清除(通常由软件)。

在PCI Express中,Wakeup事件与wake#信号相关联。如果支持,WAKE#信号在相关的外形规格中定义,当功能处于D3Cold和PME_En设置时,函数使用该信号来请求更改其PCI-PM电源管理状态。

  • 28
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sprd指的是Spreadtrum Communications Inc.,是一家位于中国的半导体公司。该公司专注于移动通信和物联网领域,为全球提供芯片解决方案和相关产品。sprd的产品覆盖了从2G到5G的全系列移动通信领域,还包括IoT、车载以及AI等领域,为手机、平板、智能穿戴等各类智能终端设备提供芯片解决方案和系统集成服务。 pcie-startup-syscons 是一个Linux内核模块,主要用于启动PCI Express子系统并初始化PCIe端点。PCIe(startup-syscons)是PCI Express架构的一部分,用于通过PCI Express总线连接设备,支持高速数据传输和低延迟操作。PCIe架构已经成为电脑和服务器上的主流总线架构,因为它的带宽高、响应快,具有良好的可扩展性和兼容性。 在操作系统中,pcie-startup-syscons 模块是自启动的,它会在内核启动时自动加载并初始化硬件设备。该模块的主要作用是启动PCI Express子系统,包括 PCIe端点和 PCIe总线,为用户提供一个稳定的硬件平台。同时,pcie-startup-syscons 还提供了一套API接口,用于管理PCI Express子系统和PCIe总线上接入的设备。 综上所述,sprd是一家专注于移动通信和物联网领域的半导体公司,提供芯片解决方案和相关产品;而pcie-startup-syscons是一个用于启动PCI Express子系统和初始化PCIe端点的Linux内核模块,具有高速数据传输和低延迟操作的优点,在处理器、电脑和服务器中普遍使用。在数字化时代,半导体技术和PCI Express总线架构的重要性越来越凸显,这两个领域的发展也将会给智能终端设备和数字化应用带来更多的机遇和挑战。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值