CN103514133B - 一种用于pcie高速链路管理的方法 - Google Patents
一种用于pcie高速链路管理的方法 Download PDFInfo
- Publication number
- CN103514133B CN103514133B CN201310473819.5A CN201310473819A CN103514133B CN 103514133 B CN103514133 B CN 103514133B CN 201310473819 A CN201310473819 A CN 201310473819A CN 103514133 B CN103514133 B CN 103514133B
- Authority
- CN
- China
- Prior art keywords
- state
- detect
- link
- processor
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种用于PCIE高速链路管理的方法,其特征在于:在链路训练时加入自适应学习处理器,可以在链路重复发生异常情况下,自学习链路上的信息,并预测下一状态,控制状态机的跳转,状态机按照处理器的指示直接进入Detect或轮询,跳过超时时间或Detect状态。本发明提高了链路处理异常情况的恢复速度,通过在链路训练过程中加入自适应学习处理器来控制状态机的跳转,实现状态机异常情况下的快速恢复,完全兼容现有协议,不需要进行兼容性处理,该快速恢复机制可以根据用户和环境需要打开和关闭。
Description
技术领域
本发明涉及一种高速链路管理的方法,具体涉及一种用于PCIE物理层链路管理的方法。
背景技术
PCIE中实现链路管理技术的是链路训练状态机LTSSM,它负责链路定向和初始化,说明从上电或复位、到正常工作(L0)状态的初始化过程。另外,描述低功耗管理状态(L0s、L1、L2、L3)。在链路训练过程中,通过两端设备发送链路训练有序集(TS, TrainingSequence)来交互信息,完成以下内容:配置链路宽度、通路反排、极性颠倒、协商速率、位锁定/符号锁定、速度切换以及均衡。
LTSSM状态转换如图1所示,LTSSM 包括11个大状态,每个状态完成各自的功能。复位进入的初始状态是Detect,在此状态,设备检测在链路的另一端是否有设备。在polling状态实现位锁定和符号锁定,确认通路是否可用。在configuration状态给有效的通道分配链路号和通路号。接着就是正常工作状态L0,在此状态可以发送和接收事务层包(TLP,Transaction Layer Packet)、数据链路层包(DLLP, Data Link Laye Packet)以及物理层的有序集。L0s、L1、L2、L3都是低功耗状态,在链路没有包需要发送的情况下进入低功耗状态可以降低链路的功耗。当链路发生了某个错误时可以从L0进入恢复(Recovery)状态,进行链路重训练。此外,还有回环(Loopback)状态,两端设备进入测试状态;链路禁止(Disabled)状态,使得一条已配置的链路被禁止;热复位(Hot Reset)状态,使得设备热复位。
如图2,以LTSSM中的Configuration状态为例说明。Configuration有6个子状态,主要是进行链路协商和通路协商,确定链路宽度。各子状态的说明如下:
开始链路宽度协商状态(Configuration.linkwidth.start):给链路分配链路号,并确定链路号;
接受链路号分配状态(Configuration.linkwidth.accept):确定链路号之后,分配通道号;
等待分配通道号状态(Configuration.lanenum.wait):通道号协商过程中的一个等待状态;
接受通道号分配状态(Configuration.lanenum.accept):通道号确认;
配置完成状态(Configuration.complete):两端设备发有序集(TS2)进行链路号、通路号的确认。
发送/接收逻辑闲状态(Configuration.idle):两端设备发送和接收逻辑闲数据(IDLE Data)退出Configuration状态。
在链路正常协商过程中,状态的跳转是从Configuration.linkwidth.start—Configuration.linkwidth.accept—Configuration.lanenum.wait—Configuration.lanenum.accept—Configuration.complete—Configuration.idle,然后退出。
如果设备当前处在Configuration.linkwidth.start,假设能够正常收到符合条件的2个TS1,状态机就会进入到Configuration.linkwidth.accept。假设由于链路的一些原因,在当前状态不能收到2个符合条件的TS1,就会一直停留在Configuration.linkwidth.start,直到24ms超时,才会跳出该状态到Detect状态。其他几个子状态在异常时与此类似。这样每当链路发现异常时都要回到初始状态Detect进行对端设备检测,再进入Polling进行通路可用性判断,也就是重新训练,链路恢复效率降低。
现有方案对异常情况的处理方法:在异常情况下,如果正常跳转条件没有满足,那么都需要等到规定的timeout时间到,才能退出到detect重新训练开始(进行接收端检测,判断通路是否可用),这样的异常处理较浪费时间。
发明内容
本发明的目的在于克服上述不足,提供一种用于PCIE高速链路管理的方法,能够在出现异常情况时实现链路的快速恢复,减少链路恢复时间。
本发明的目的是这样实现的:一种用于PCIE高速链路管理的方法,在链路训练时加入自适应学习处理器,可以在链路重复发生异常情况下,自学习链路上的信息,并预测下一状态,控制状态机的跳转,状态机按照处理器的指示直接进入Detect或轮询,跳过超时时间或Detect状态。
所述自适应学习处理器包括5个单元:采样单元、输入单元、规则单元、处理单元和输出单元,所述5个单元的具体功能如下:
1)采样单元:处理器对配置状态的每个状态都进行监测,采样当前状态的一些信息,包括当前链路有效通道信息,每条通道收到的链路训练有序集信息,当前状态和下一状态;
2)输入单元:将上述采样到的信息输入到处理器的内存中;
3)规则单元:制定学习的规则
规则1:若从当前状态进入Detect的次数达到5次,且是由于通道原因进入,则下一次进入该状态时就直接进入Detect,跳过timeout;
规则2:若从当前状态进入Detect的次数达到5次,且是由于链路原因进入,则下一次进入该状态时就直接进入Polling,跳过timeout,且跳过Detect状态;
4)处理单元:根据输入的当前状态和下一状态,对状态进入Detect的次数计数;根据输入的有效通道和通道上收到TS的信息,来判断当前超时原因;根据进入Detect的次数以及当前超时的原因给出输出,预测该状态下一状态;
5)输出单元:把指示状态机进入下一状态的标志变量输出到状态机中。
与现有技术相比,本发明的有益效果是:
本发明提高了链路处理异常情况的恢复速度,通过在链路训练过程中加入自适应学习处理器来控制状态机的跳转,实现状态机异常情况下的快速恢复,完全兼容现有协议,不需要进行兼容性处理,该快速恢复机制可以根据用户和环境需要打开和关闭。
附图说明
图1是本发明涉及的链路训练LTSSM状态图。
图2是本发明涉及的现有技术方案Configuration状态图。
图3是本发明中受自适应学习处理器控制的Configuration状态图。
图4是本发明中链路出现异常处理时的流程图。
图5是本发明中自适应学习处理器的内部模块图。
图6是本发明中自适应学习处理器的流程图。
具体实施方式
如图3所示,本发明涉及一种用于PCIE高速链路管理的方法, 所述方法为在链路训练过程中加入自适应学习处理器,它可以监测状态机各个状态的信息。处理器根据监测的状态信息来自学习并作出预测,控制状态机的跳转,实现异常情况下的快速恢复。
处理器监测到状态机重复某种跳转达到5次之后,下一次就给出预测,状态机可以跳过超时或者某些状态,而直接进入目标状态。
这种快速恢复模式可以根据用户需求来选择是否开启,当选择开启该模式,就会加入自适应学习机制:
该种机制是加入自适应学习处理器,如图5所示,包括以下5个单元:采样单元、输入单元、规则单元、处理单元、输出单元。
采样单元:处理器对配置状态的每个状态都进行监测,采样当前状态的一些信息,包括当前链路有效通道信息,每条通道收到TS信息,当前状态,下一状态。
输入单元:将采样的信息输入到处理器的内存中。
规则单元:制定学习的规则
规则1:若从该状态进入Detect的次数达到5次,且是由于通道原因进入,则下一次进入该状态时就直接进入Detect,跳过timeout。
规则2:若从该状态进入Detect的次数达到5次,且是由于链路原因进入,则下一次进入该状态时就直接进入Polling,跳过timeout,且跳过Detect状态。
处理单元:
(1)内部设置计数器,根据输入的当前状态和下一状态,对状态进入Detect的次数计数。
(2)根据输入的有效通道和通道上收到TS的信息,来判断当前超时原因。如果当前通道都是有效的,且每条通道都相应收到了TS,但是链路号或者通路号不匹配,表明是通道的原因,把any_lanes_rcvd_ts置为1。如果输入的当前通道都是无效的,表明是链路原因,当前链路有可能断开,把变量link_off置为1。
(3)根据进入Detect的次数以及当前超时的原因给出输出,预测该状态下一状态。若当前进入Detect的次数达到5次,且any_lanes_rcvd_ts为1,把处理器的标志变量flag_xx_to_detect置为1。若当前进入Detect的次数达到5次,且link_off为1,把处理器的标志变量flag_xx_to_poll置为1。
否则,flag_xx_to_detect、flag_xx_to_poll都置为0。
输出单元:把指示状态机进入下一状态的标志变量flag_xx_to_detect、flag_xx_to_poll输出到状态机中。
状态机在处理器控制下的跳转:
如图4所示,为受处理器控制下的状态机流程图。
(1)在没有选择快速恢复模式下,按照原先设计的状态跳转。若在特定状态收到符合条件的TS,就进入下一状态继续训练。若在特定状态一直没有收到符合条件的TS,等到超时退出到Detect。
(2)在选择快速恢复模式下,因为加入了自适应学习处理器,就要考虑处理器的输出控制。若在特定状态收到符合条件的TS,就进入下一状态继续训练。否则就在配置状态的相应子状态,监测处理器的控制符号flag_xx_to_detect、flag_xx_to_poll。若检测到相应状态的控制符号flag_xx_to_detect有效,就立马进入Detect,不需要等待timeout超时。若检测到相应状态的控制符号flag_xx_to_poll有效,就立马进入Polling,不需要等待timeout且跳过Detect状态。
以下结合具体应用场景,描述对本发明异常情况处理的具体方法。
以Configuration.linkwidth.accept子状态为例说明。假设当前是选择了快速恢复模式,即加入自适应学习机制。
自适应学习处理器会实时监测Configuration.linkwidth.accept状态的信息,包括:当前链路有效通道信息,每条通道收到TS信息,当前状态,下一状态。
内部设置计数器cfg_linkwidth_start_timeout_cnt,用于在Configuration.linkwidth.accept状态对出现超时的次数进行计数。若当前状态为Configuration.linkwidth.accept,下一状态为detect,计数器cfg_linkwidth_start_timeout_cnt就会执行加1操作。
在cfg_linkwidth_start_timeout_cnt未达到5之前,处理器的输出flag_xx_to_detect、flag_xx_to_poll都置为0。
当cfg_linkwidth_start_timeout_cnt达到5,即说明在Configuration.linkwidth.accept子状态跳到Detect的次数达到5次,之前已经重复该跳转5次,这样处理器会把当前Configuration.linkwidth.accept中输入的信息,根据内部制定的规则,经过处理模块来给出输出,直接输出到Configuration.linkwidth.accept状态。
处理器中处理模块:根据当前Configuration.linkwidth.accept状态中输入的有效通道及收到TS的信息,判断当前超时原因。如果当前通道都是有效的,且每条通道都相应收到了TS,但是链路号或者通路号不匹配,把any_lanes_rcvd_ts置为1,表明是通道的原因。如果输入的当前通道都是无效的,把变量link_off置为1,表明是链路原因。
根据处理器内部制定的规则,若cfg_linkwidth_start_timeout_cnt为5,且any_lanes_rcvd_ts为1,输出flag_cfg_linkwidth_acept_to_poll为1。若cfg_linkwidth_start_timeout_cnt为5,且link_off为1,输出flag_cfg_linkwidth_acept_to_detect为1。
以上是处理器在Configuration.linkwidth.accept状态的处理方式。
对于状态机,当前状态是在Configuration.linkwidth.accept,正常情况下在收到符合条件的TS之后,就进入下一状态Configuration.lanenum.wait进行正常的链路训练。如果一直没有收到符合条件的TS,且这时flag_cfg_linkwidth_acept_to_detect、flag_cfg_linkwidth_acept_to_poll都为0,就会出现timeout,下一状态为Detect,重新开始训练。这样,链路如果在Configuration.linkwidth.accept一直都收不到符合条件的TS,就会重复出现超时进入Detect,一直当重复这样的跳转到达5次,检测到状态机的输入flag_cfg_linkwidth_acept_to_detect或flag_cfg_linkwidth_acept_to_poll为1,那么在下一次进入Configuration.linkwidth.accept,状态机会直接进入到Detect或Polling。
若flag_cfg_linkwidth_acept_to_detect为1,跳过2ms超时,直接进入Detect;若flag_cfg_linkwidth_acept_to_poll为1,跳过2ms超时和Detect状态,直接进入Polling。
这种快速恢复机制,通过加入自适应学习处理器来控制状态机的跳转。避免每次异常时都等待规定的timeout时间才退出到Detect状态,这种机制加快了链路的恢复时间。
在此处,仅以Configuration状态为例,其中的6个子状态在具体实施时,都可以按照上述流程处理。
上述仅为Configuration状态的快速恢复机制说明,其他LTSSM状态也可以在发生异常时采用该方法,实现快速恢复。
以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。
Claims (1)
1.一种用于PCIE高速链路管理的方法,其特征在于:在链路训练时加入自适应学习处理器,可以在链路重复发生异常情况下,自学习链路上的信息,并预测下一状态,控制状态机的跳转,状态机按照处理器的指示直接进入Detect或轮询,跳过超时时间或Detect状态,所述自适应学习处理器包括5个单元:采样单元、输入单元、规则单元、处理单元和输出单元,所述5个单元的具体功能如下:
1)采样单元:处理器对配置状态的每个状态都进行监测,采样当前状态的一些信息,包括当前链路有效通道信息,每条通道收到的链路训练有序集信息,当前状态和下一状态;
2)输入单元:将上述采样到的信息输入到处理器的内存中;
3)规则单元:制定学习的规则
规则1:若从当前状态进入Detect的次数达到5次,且是由于通道原因进入,则下一次进入该状态时就直接进入Detect,跳过timeout;
规则2:若从当前状态进入Detect的次数达到5次,且是由于链路原因进入,则下一次进入该状态时就直接进入Polling,跳过timeout,且跳过Detect状态;
4)处理单元:根据输入的当前状态和下一状态,对状态进入Detect的次数计数;根据输入的有效通道和通道上收到TS的信息,来判断当前超时原因;根据进入Detect的次数以及当前超时的原因给出输出,预测该状态下一状态;
5)输出单元:把指示状态机进入下一状态的标志变量输出到状态机中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310473819.5A CN103514133B (zh) | 2013-10-12 | 2013-10-12 | 一种用于pcie高速链路管理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310473819.5A CN103514133B (zh) | 2013-10-12 | 2013-10-12 | 一种用于pcie高速链路管理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103514133A CN103514133A (zh) | 2014-01-15 |
CN103514133B true CN103514133B (zh) | 2017-05-24 |
Family
ID=49896881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310473819.5A Active CN103514133B (zh) | 2013-10-12 | 2013-10-12 | 一种用于pcie高速链路管理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103514133B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915312B (zh) * | 2015-04-17 | 2017-12-29 | 苏州中晟宏芯信息科技有限公司 | 一种高速串行链路的通道资源回收拓展方法 |
CN104820649A (zh) * | 2015-04-17 | 2015-08-05 | 苏州中晟宏芯信息科技有限公司 | 一种高速串行异构链路的动态管理方法 |
CN105306306B (zh) * | 2015-11-12 | 2018-08-24 | 姚焕根 | 链路连通性检测系统及方法 |
CN107957885B (zh) * | 2017-12-01 | 2021-02-26 | 麒麟软件有限公司 | 一种基于飞腾平台的pcie链路设备待机与恢复方法 |
CN113359968B (zh) * | 2021-05-14 | 2023-03-03 | 山东英信计算机技术有限公司 | 一种基于arm平台复位pcie设备的方法、系统、设备及介质 |
CN115098427B (zh) * | 2022-06-24 | 2024-05-07 | 中国电子科技集团公司第五十八研究所 | 一种链路宽度自适应的实现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7730376B2 (en) * | 2005-06-24 | 2010-06-01 | Intel Corporation | Providing high availability in a PCI-Express™ link in the presence of lane faults |
CN102298544A (zh) * | 2010-06-25 | 2011-12-28 | 广达电脑股份有限公司 | 计算机系统的除错方法 |
-
2013
- 2013-10-12 CN CN201310473819.5A patent/CN103514133B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7730376B2 (en) * | 2005-06-24 | 2010-06-01 | Intel Corporation | Providing high availability in a PCI-Express™ link in the presence of lane faults |
CN102298544A (zh) * | 2010-06-25 | 2011-12-28 | 广达电脑股份有限公司 | 计算机系统的除错方法 |
Non-Patent Citations (1)
Title |
---|
基于PCI Express总线的高速DMA传输系统的研究与实现;刘博;《中国优秀硕士学位论文全文数据库》;20130515;第2.1节,图2.8 * |
Also Published As
Publication number | Publication date |
---|---|
CN103514133A (zh) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103514133B (zh) | 一种用于pcie高速链路管理的方法 | |
CN106462528B (zh) | Usb功率传输源装置的功率节约模式 | |
CN104170322B (zh) | 一种PCIe链路故障的处理方法、设备及系统 | |
CN106063076B (zh) | 电源适配器、终端和充电系统 | |
CN104429020B (zh) | 基于以太网的供电的监控的方法与装置 | |
CN103916475B (zh) | 一种网络遥控方法 | |
CN107078911A (zh) | 经由受电设备的功率转送 | |
CN101529763A (zh) | 链路聚合的禁用状态和状态信令 | |
CN105354159A (zh) | 一种基于rs485分布式总线系统的控制方法 | |
CN104160786A (zh) | 照明系统以及提取照明系统状态信息的方法 | |
CN104798010B (zh) | 至少部分的串行存储协议兼容帧转换 | |
CN107508693A (zh) | 路由器控制方法、装置及电源适配器、路由器 | |
CN108989235A (zh) | 一种报文转发控制方法及装置 | |
CN105140886B (zh) | 继电保护系统和利用其来收集数据的方法 | |
CN107612800A (zh) | 一种连接profibus冗余网络与单总线网络的y型转换设备的实现方法及控制装置 | |
CN103916281B (zh) | 一种动态lacp聚合链路故障恢复方法 | |
CN107889550A (zh) | 用于令牌网络的主通信设备 | |
CN108873798A (zh) | 可编程逻辑控制器 | |
CN109039799A (zh) | 链路状态检测方法、装置和网络设备 | |
CN109162953A (zh) | 一种风扇控制装置及服务器 | |
CN109116832A (zh) | 车辆诊断数据无线通讯方法 | |
CN104333477B (zh) | 一种旁路控制方法、系统及网络设备 | |
EP2540048B1 (en) | Gigabits zero-delay tap and methods thereof | |
CN103096387A (zh) | 智能电网中基于数据优先分级的认知传输方法 | |
CN107276856B (zh) | 网络检测方法、网络检测装置及智能终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170317 Address after: 214400 Wuxi City, Jiangyin, Shoushan Road, No. 117 sunshine golden home, room 2, building 401, room Applicant after: Ding Xiangen Address before: 214433 Jiangyin, Wuxi, Chengjiang street, new road, No., No. 9 Applicant before: Jiangsu Huali Network Engineering Co., Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |