【PCIE体系结构十六】PCIE电源管理之ASPM

👉个人主页:highman110

👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 

参考书籍:《PCI.EXPRESS系统体系结构标准教材 Mindshare》     

        PCIe总线的电源管理包含ASPM和软件电源管理两方面内容。所谓ASPM是指PCIe链路在没有系统软件参与的情况下,由PCIe链路自发进行的电源管理方式。而软件电源管理指PCI PM机制,PCIe总线的软件电源管理与PCI总线兼容。本章节讲述ASPM,下章节再讲PCI-PM。

        ASPM全称为Active State Power Management for the Link,是一个基于硬件的,自发的链路功耗状态管理单元,软件不能控制具体的过程只能enable/disable。讲LTSSM时我们提到了状态机中有几个和电源管理相关的状态,这里再详细列举一下:

        L0状态:PCIe设备的正常工作状态。

        L0s状态:PCIe设备处于低功耗状态。系统软件不能控制L0状态和L0s状态间的迁

移过程,这两个状态的迁移只能由ASPM控制。

        L1状态:PCIe设备使用的功耗低于处于L0s状态时的功耗。支持两种方式进入PCI-PM,ASPM。L1子状态可以关闭参考时钟、Tx common mode电路,Rx electric idle detect电路更加省电。

        L2/L3 Ready状态:PCI设备进入L2或者L3状态之前使用的过渡状态。

        L2状态:仅支持PCI-PM方式进入,关闭参考时钟、关闭PLL、关闭Main Power, 但是需要保留Aux Power;。在PCIe总线中L1和L2状态是可选的。

        L3状态:该状态也被称为“Link off”状态,此时PCIe设备使用的所有电源被关闭。仅支持PCI-PM方式。

        LDn状态:该状态是一个“伪”状态,PCIe链路处于L2、L3状态时,需要通过LDn状态之后才能进入L0状态。该状态由LTSSM状态机的Detect、Polling和Configuration等状态组成。

        各状态间的迁移如下图:

在PCIe设备中,Link Capabilities寄存器的ASPM Support字段表示当前PCIe设备可以支持的链路状态,该字段只读。而Link Control寄存器的ASPM Control字段为可读写的,PCIe设备根据ASPM Support字段判断当前PCIe链路是否支持L0s和L1状态,还是同时支持这两种状态,并设置ASPM Control字段。如下从PCIE 4.0规范的截图,大家可以到规范里具体查询:

       前面讲LTSSM时提到过几种电源管理状态之间的转换,总结起来就几个原则:

       1、如果PCIe设备发现链路“空闲”时,可以硬件自主从L0进入L0s状态。这里的“空闲”指的是没有要发送的TLP和DLLP。注意发送逻辑和接收逻辑可以一个处于L0,一个处于L0s,不要求同步转换状态。例如当一个EP进行DMA写操作时,其发送逻辑TX一直被使用,因此处于L0状态,而接收逻辑RX可能长时间没有被使用,从而可以暂时处于L0s状态,以降低功耗。

       2、PCIe设备可以通过上层软件,将链路状态从L0状态迁移到L1或者L2状态。当PCIe设备进入D1~D3状态时,其上游链路将进入L1状态;而进入D3cold状态时,其上游链路将进入L2状态。D1~D3和D3cold状态的详细说明后面讲PCIE的软件电源管理时会讲。而PCIe链路的两端设备需要同时进入L1或者L2状态。

       3、从L1恢复到L0时,是从L1先到recovery,再到配置,再到L0,而从L2恢复到L0,需要重新走一遍检测、轮询、配置流程,所以L2恢复到L0时间更长。L2状态可以通过Beacon(由AUX电源所驱动的一种信令技术,由一组通过D+和D-信号生成的脉冲信号组成。这些脉冲信号宽度的最小值为2ns,最大值为16us)机制唤醒。有同学有疑问了,不是用PME进行唤醒吗?这里要注意,要使用PME报文,必须要先将链路恢复到可以传输报文的L0状态,所以在L2状态就不能用这种方式了,只能通过带内硬件信标或者带外的WAKE信号进行唤醒。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/69728.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面试热题(两数之和)

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答…

STL初探

STL简介 STL(standard template libaray - 标准模板库)是C标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。 STL的一些版本 原始版本 Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,…

【UE4 RTS】07-Camera Boundaries

前言 本篇实现的效果是当CameraPawn移动到地图边缘时会被阻挡。 效果 步骤 1. 打开项目设置,在“引擎-碰撞”中,点击“新建Object通道” 新建通道命名为“MapBoundaries”,然后点击接受 2. 向视口中添加 阻挡体积 调整阻挡体积的缩放 向四…

孤立随机森林(Isolation Forest)(Python实现)

目录 1 简介 2 孤立随机森林算法 2.1 算法概述 2.2 原理介绍 2.3 算法步骤 3 参数讲解 4 Python代码实现 5 结果 1 简介 孤立森林(isolation Forest)是一种高效的异常检测算法,它和随机森林类似,但每次选择划分属性和划…

Zookeeper 面试题

一、ZooKeeper 基础题 1.1、Zookeeper 的典型应用场景 Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布和订阅。 通过对 Zookeeper 中丰富的数据节点进行交叉使用,配合 Watcher 事件通知机…

EFLFK——ELK日志分析系统+kafka+filebeat架构

环境准备 node1节点192.168.40.16elasticsearch2c/4Gnode2节点192.168.40.17elasticsearch2c/4GApache节点192.168.40.170logstash/Apache/kibana2c/4Gfilebeat节点192.168.40.20filebeat2c/4G https://blog.csdn.net/m0_57554344/article/details/132059066?spm1001.2014.30…

设计模式(2)工厂方法模式

一、 1、介绍:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说…

UML-状态图

目录 状态图 状态图的图符 状态机 状态 ​转换 电话机状态图 活动图和状态图区别: 状态图 状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应。通常我们创建一个UML状态…

中级课程——CSRF

文章目录 案例原理挖掘 案例 原理 挖掘 挖掘详情 首先就是对目标敏感部位进行抓包分析,比如修改信息、转账、添加信息等等。通常一个数据包HTTP请求头里边都会有一个Referer,这个需要特别去验证。比如放到Burpsuit Repeater里边去测试:去掉…

语音同声翻译软件助你跨越语言障碍

嘿,你在日常工作中是否曾经参加过跨国会议,是否也曾由于语言不通而感到尴尬?别担心,因为现在有了会议实时翻译软件,这些问题都将成为过去式!那么你知道会议实时翻译的软件有哪些吗?接下来就让我…

无涯教程-Perl - mkdir函数

描述 此功能使用MODE指定的模式创建一个名称和路径EXPR的目录,为清楚起见,应将其作为八进制值提供。 语法 以下是此函数的简单语法- mkdir EXPR,MODE返回值 如果失败,此函数返回0,如果成功,则返回1。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perl -w$dirname &…

【计算机视觉|生成对抗】条件生成对抗网络(CGAN)

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题:Conditional Generative Adversarial Nets 链接:[1411.1784] Conditional Generative Adversarial Nets (arxiv.org) 摘要 生成对抗网络(Generative Adversarial…

最大子数组和——力扣53

文章目录 题目描述解法一 动态规划题目描述 解法一 动态规划 int maxSubArray(vector<int>& nums){int pre=0, res=nums

自动测试框架airtest应用一:将XX读书书籍保存为PDF

一、Airtest的简介 Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架&#xff0c;这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。Sikuli这个框架的原理是这样的&#xff0c;计算机用户不需要…

微软杀入Web3:打造基于区块链的AI产品

作者&#xff1a;秦晋 2023年1月&#xff0c;微软向 ChatGPT 创建者 OpenAI 投资 100 亿美元&#xff0c;在AI业界引发格外关注。此举也让微软在AI的战略探索上提前取得有利位置。 2023年3月&#xff0c;微软软件工程师 Albacore 披露微软正在为Edge 浏览器测试内置的非托管加密…

Linux 共享内存mmap,进程通信

文章目录 前言一、存储映射 I/O二、mmap&#xff0c; munmap三、父子进程间 mmap 通信四、非血缘关系进程间 mmap 提通信五、mmap 匿名映射区总结 前言 进程间通信是操作系统中重要的概念之一&#xff0c;使得不同的进程可以相互交换数据和进行协作。其中&#xff0c;共享内存…

安达发|企业如何提高生产实现精细化管理

随着市场竞争的加剧&#xff0c;企业如何提高生产效率和降低成本成为了关键。本文将探讨生产计划排程表的制定方法&#xff0c;帮助企业实现精细化管理&#xff0c;提升竞争力。 在传统的生产管理中&#xff0c;企业往往依赖于人工经验和直觉来制定生产计划&#xff0c;导致生产…

刷题笔记 day9

1658 将 x 减到 0 的最小操作数 解析&#xff1a;1. 当数组的两端的数都大于x时&#xff0c;直接返回 -1。 2. 当数组所有数之和小于 x 时 &#xff0c;直接返回 -1。 3. 数组中可以将 x 消除为0&#xff0c;那么可以从左边减小为 0 &#xff1b;可以从右边减小为 0 &#xff1…

深眸科技|发现AI+3D视觉的价值,技术升级加速视觉应用产品国产替代

随着中国工业化进程的不断深入和智能制造浪潮的影响&#xff0c;工业生产对于机器视觉技术的需求不断攀升&#xff0c;其应用范围覆盖了工业领域的众多行业&#xff0c;包括3C电子、汽车、半导体、新能源、物流等。 据GGII发布的最新数据显示&#xff0c;近年来我国机器视觉市…

数据结构篇七:排序

文章目录 前言1.插入排序1.1 基本思想1.2 代码实现1.3 特性总结 2.希尔排序2.1 基本思想2.2 代码实现2.3 特性总结 3. 选择排序3.1 基本思想3.2 代码实现3.3 特性总结 4. 堆排序4.1 基本思想4.2 代码实现4.3 特性总结 5. 冒泡排序5.1 基本思想5.2 代码实现5.3 特性总结 6. 快速…