PCIe设备的处理方法、装置、设备及存储介质转让专利

申请号 : CN202010151463.3

文献号 : CN113360436B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 冯声威李小民

申请人 : 浙江宇视科技有限公司

摘要 :

本发明实施例公开了一种PCIe设备的处理方法、装置、设备及存储介质。所述方法包括:确定从发送方PCIe设备接收的当前PCIe差分信号;若当前PCIe差分信号的信号差值小于预设差值,则控制所述发送方PCIe设备提升下一PCIe差分信号的强度;依据接收的下一PCIe差分信号,对所述接收方PCIe设备的工作状态进行调整。采用本申请方案,能够尽可能避免由于接收方PCIe设备与发送方PCIe设备之间PCIe链路上的PCIe差分信号衰减过大,导致接收方PCIe设备在未收到EIOS序列的情况下会产生误判而误进入电气空闲状态,进而避免PCIe链路通信异常的情况发生。

权利要求 :

1.一种PCIe设备的处理方法,其特征在于,由接收方PCIe设备执行,所述方法包括:确定从发送方PCIe设备接收的当前PCIe差分信号;

若当前PCIe差分信号的信号差值小于预设差值,则控制所述发送方PCIe设备提升下一PCIe差分信号的强度;

依据接收的下一PCIe差分信号,确定所述接收方PCIe设备是否进入电气空闲状态。

2.根据权利要求1所述的方法,其特征在于,控制所述发送方PCIe设备提升下一PCIe差分信号的强度,包括:向所述发送方PCIe设备发送预配置的信号提升指令,以指示所述发送方PCIe设备提升预设大小的信号发送强度,并按照提升的信号发送强度发送下一PCIe差分信号。

3.根据权利要求2所述的方法,其特征在于,在向所述发送方PCIe设备发送预配置的信号提升指令之前,还包括:提升所述接收方PCIe设备的信号发送强度,用于按照提升后的信号发送强度向所述发送方PCIe设备发送信号提升指令。

4.根据权利要求1‑3中任一所述的方法,其特征在于,依据接收的下一PCIe差分信号,确定所述接收方PCIe设备是否进入电气空闲状态,包括:若接收的下一PCIe差分信号的信号差值小于预设差值,且所述发送方PCIe设备的信号提升次数小于预设次数,则返回继续执行控制所述发送方PCIe设备提升下一PCIe差分信号的强度的操作,暂不进入电气空闲状态。

5.根据权利要求3所述的方法,其特征在于,依据接收的下一PCIe差分信号,确定所述接收方PCIe设备是否进入电气空闲状态,包括:若接收的下一PCIe差分信号的信号差值小于预设差值,且所述发送方PCIe设备的信号提升次数大于或等于预设次数,则确定接收方PCIe设备的信号提升次数;

若所述接收方PCIe设备的信号提升次数小于预设次数,则将所述发送方PCIe设备的信号提升次数重置清零和将所述发送方PCIe设备的信号发送强度恢复至初始状态;以及,返回执行提升所述接收方PCIe设备的信号发送强度的操作,暂不进入电气空闲状态。

6.根据权利要求5所述的方法,其特征在于,在确定所述接收方PCIe设备的信号提升次数之后,还包括:若所述接收方PCIe设备的信号提升次数大于或等于预设次数,则将所述接收方PCIe设备的信号发送强度恢复至初始状态,并进入电气空闲状态。

7.根据权利要求1所述的方法,其特征在于,依据接收的下一PCIe差分信号,确定所述接收方PCIe设备是否进入电气空闲状态,包括:若接收的下一PCIe差分信号的信号差值大于或等于预设差值,则将所述接收方PCIe设备与所述发送方PCIe设备之间的PCIe链路保持在非电气空闲状态,以使所述接收方PCIe设备处于非低功耗状态。

8.一种PCIe设备的处理装置,其特征在于,配置于接收方PCIe设备,所述装置包括:信号确定模块,用于确定从发送方PCIe设备接收的当前PCIe差分信号;

强度控制模块,用于若当前PCIe差分信号的信号差值小于预设差值,则控制所述发送方PCIe设备提升下一PCIe差分信号的强度;

状态调整模块,用于依据接收的下一PCIe差分信号,确定所述接收方PCIe设备是否进入电气空闲状态。

9.一种电子设备,其特征在于,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现权利要求1‑7中任一所述的PCIe设备的处理方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1‑7中任一所述的PCIe设备的处理方法。

说明书 :

PCIe设备的处理方法、装置、设备及存储介质

技术领域

[0001] 本发明实施例涉及通信技术领域,尤其涉及一种PCIe设备的处理方法、装置、设备及存储介质。

背景技术

[0002] PCIe是一种新型的高速串行计算机扩展总线和接口标准,PCIe设备之间通过PCIe链路连接。PCIe标准定义了一种电气空闲状态,为了节省功耗,PCIe设备会根据PCIe链路的使用情况确定是否由正常工作状态切换至低功耗状态,在上述低功耗状态下,PCIe链路将置于电气空闲状态来降低能耗。
[0003] 目前,在正常情况下,PCIe设备会在接收到对端设备发送的电气空闲序列有序集(简称EIOS序列)后,才能进入电气空闲状态。但是,在一些特殊情况下,由于PCIe链路上信号在传输过程中会存在衰减,导致PCIe设备接收到的信号电压值会非常低,这样一来PCIe设备可能会误判进入电气空闲状态,从而使PCIe链路通信出现异常。因此,需要迫切解决上述误判问题。

发明内容

[0004] 鉴于上述问题,本发明实施例中提供了一种PCIe设备的处理方法、装置、设备及存储介质,以实现准确地进行电气空闲状态的切换操作。
[0005] 第一方面,本发明实施例中提供了一种PCIe设备的处理方法,由接收方PCIe设备执行,所述方法包括:
[0006] 确定从发送方PCIe设备接收的当前PCIe差分信号;
[0007] 若当前PCIe差分信号的信号差值小于预设差值,则控制所述发送方PCIe设备提升下一PCIe差分信号的强度;
[0008] 依据接收的下一PCIe差分信号,对所述接收方PCIe设备的工作状态进行调整。
[0009] 第二方面,本发明实施例中还提供了一种PCIe设备的处理装置,配置于接收方PCIe设备,所述装置包括:
[0010] 信号确定模块,用于确定从发送方PCIe设备接收的当前PCIe差分信号;
[0011] 强度控制模块,用于若当前PCIe差分信号的信号差值小于预设差值,则控制所述发送方PCIe设备提升下一PCIe差分信号的强度;
[0012] 状态调整模块,用于依据接收的下一PCIe差分信号,对所述接收方PCIe设备的工作状态进行调整。
[0013] 第三方面,本发明实施例中还提供了一种电子设备,包括:
[0014] 一个或多个处理器;
[0015] 存储装置,用于存储一个或多个程序;
[0016] 所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任意所述的PCIe设备的处理方法。
[0017] 第四方面,本发明实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任意所述的PCIe设备的处理方法。
[0018] 本发明实施例中提供了一种PCIe设备的处理方法,接收方PCIe设备能确定从发送方PCIe设备接收的当前PCIe差分信号,并对当前PCIe差分信号的信号差值进行检测确定,若当前PCIe差分信号的信号差值小于预设差值,接收方PCIe设备不会立即进入电气空闲状态,而是控制发送方PCIe设备提升下一PCIe差分信号的强度,进而依据接收的下一PCIe差分信号对所述接收方PCIe设备的工作状态进行调整,以确定是否进入电气空闲状态。采用本申请方案,能够尽可能避免由于接收方PCIe设备与发送方PCIe设备之间PCIe链路上的PCIe差分信号衰减过大,导致接收方PCIe设备在未收到EIOS序列的情况下会产生误判而误进入电气空闲状态,进而避免PCIe链路通信异常的情况发生。
[0019] 上述发明内容仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0020] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0021] 图1是本发明实施例中提供的一种电源管理状态机的状态示意图;
[0022] 图2是本发明实施例中提供的一种PCIe设备的处理方法的流程图;
[0023] 图3是本发明实施例中提供的一种PCIe设备之间增加驱动芯片的示意图;
[0024] 图4是本发明实施例中提供的一种PCIe设备以及PCIe设备之间的PCIe链路的示意图;
[0025] 图5是本发明实施例中提供的另一种PCIe设备的处理方法的流程图;
[0026] 图6是本发明实施例中提供的又一种PCIe设备的处理方法的流程图;
[0027] 图7是本发明实施例中提供的一种PCIe设备的处理装置的结构框图;
[0028] 图8是本发明实施例中提供的一种电子设备的结构示意图。

具体实施方式

[0029] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0030] 在更加详细地讨论示例性实施例之前,应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作(或步骤)可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0031] 为了更好地了解本申请中的PCIe设备的处理方案,下面针对PCIe设备的处理方案的应用场景进行简单阐述。为了节省功耗,PCIe总线规范规定了两种电源管理机制,一是基于软件控制的PCI‑PM电源管理机制,二是基于硬件控制的ASPM电源管理机制。其中,ASPM电源管理机制是PCIe链路在没有系统软件参与的情况下,由PCIe链路自发进行的电源管理方式。图1是本发明实施例中提供的一种电源管理状态机的状态示意图。如图1所示,以PCIe设备为例,PCIe设备的正常工作为L0状态,为了节省功耗,PCIe设备会根据PCIe链路的使用情况确定是否从L0状态切换至L0s、L1和L2等低功耗状态。在低功耗状态下,PCIe链路将置于电气空闲状态来降低能耗,在进入电气空闲状态后,PCIe链路上的PCIe差分信号的差值电压Vdiff通常在0mV~20mV之间。而,在正常工作L0状态下,PCIe差分信号的差值电压Vdiff通常在0.8V~1.2V之间。
[0032] 下面通过以下实施例及其可选方案,对本申请方案中提供的PCIe设备的处理方法、装置、设备及存储介质进行详细阐述。
[0033] 图2是本发明实施例中提供的一种PCIe设备的处理方法的流程图。本发明实施例可适用于对PCIe设备的工作状态进行调整的情况。该PCIe设备的处理方法可以由PCIe设备的处理装置执行,该装置可以采用软件和/或硬件的方式实现,并可集成在任何具有网络通信功能的电子设备上。例如,上述电子设备可为PCIe设备,该PCIe设备的处理方法可由接收方PCIe设备来执行。如图2所示,本申请实施例中的PCIe设备的处理方法,可包括以下步骤:
[0034] S210、确定从发送方PCIe设备接收的当前PCIe差分信号。
[0035] 在本实施例中,以发送方PCIe设备和接收方PCIe设备为例,在正常情况下,发送方PCIe设备的发送逻辑TX进入电气空闲状态之前,需要向接收方PCIe设备发送若干个EIOS序列(例如,2.5GT/s发送1个,5GT/s发送2个),而接收方PCIe设备的接收逻辑RX需要收到发送方PCIe设备的发送逻辑TX提供的EIOS序列后,才能进入到电气空闲状态。但是,当接收方PCIe设备的接收逻辑RX发现PCIe差分信号的差值电压Vdiff小于电气空闲判断阈值(判断阈值可为65mV)时也会进入电气空闲状态。
[0036] 在本实施例中,由于发送方PCIe设备的发送逻辑TX在经过PCIe链路将PCIe差分信号传递到接收方PCIe设备的接收逻辑RX时,PCIe差分信号将会存在衰减,从发送方PCIe设备到接收方PCIe设备的PCIe差分信号的差值电压Vdiff有可能会降到65mV~175mV以下。此时,接收方PCIe设备的接收逻辑RX可能会产生误判,这样接收方PCIe设备的接收逻辑就会误进入电气空闲状态,从而导致PCIe链路通信出现异常。图3是本发明实施例中提供的一种PCIe设备之间增加驱动芯片的示意图。参见图3,可在接收方PCIe设备与发送方PCIe设备之间增加驱动芯片,例如,可为PCIe Redriver驱动芯片,这样通过引入驱动芯片的方式,可尽可能避免由于误判进入电气空闲状态。但是,毫无疑问上述引入硬件的方案不仅会占用PCB面积,还会增加物料成本和硬件布线难度。
[0037] 在本实施例中,图4是本发明实施例中提供的一种PCIe设备以及PCIe设备之间的PCIe链路的示意图。参见图4,接收方PCIe设备与发送方PCIe设备之间存在PCIe链路,PCIe链路使用端到端的数据传送方式,每一个PCIe设备都含有发送逻辑TX和接收逻辑RX。在一个PCIe链路中,可包括一个或多个数据通路Lane,一个数据通路Lane可包括两组差分信号,具体分为:发送方PCIe设备向接收方PCIe设备发送的一组PCIe差分信号和接收方PCIe设备向发送方PCIe设备发送的另一组PCIe差分信号。
[0038] 在本实施例中,接收方PCIe设备和发送方PCIe设备均为PCIe设备,可根据实际情况界定哪个PCIe设备属于接收方以及哪个PCIe设备属于发送方。参见图4,接收方PCIe设备和发送方PCIe设备经过链路训练后,接收方PCIe设备和发送方PCIe设备可工作于正常工作状态L0状态。发送方PCIe设备的发送逻辑,可通过发送方PCIe设备与接收方PCIe设备之间的PCIe链路,向接收方PCIe设备的接收逻辑发送PCIe差分信号。同时,接收方PCIe设备的接收逻辑可通过PCIe链路接收发送方PCIe设备发送的PCIe差分信号。为了便于区分接收方PCIe设备在不同时刻接收的PCIe差分信号,这里可将接收方PCIe设备在当前时刻从发送方PCIe设备接收的PCIe差分信号作为当前PCIe差分信号。
[0039] S220、若当前PCIe差分信号的信号差值小于预设差值,则控制发送方PCIe设备提升下一PCIe差分信号的强度。
[0040] 在本实施例中,在确定当前PCIe差分信号,接收方PCIe设备可计算当前PCIe差分信号的差分对D+和D‑信号之间的差值,并将该差值作为当前PCIe差分信号的信号差值。例如,信号差值具体可为差分电压值。在接收方PCIe设备未收到EIOS序列的情况下,接收方PCIe设备可确定当前PCIe差分信号的信号差值是否小于预设差值。其中,预设差值可为电气空闲判断阈值,该电气空闲判断阈值可为65mV~175mV内任一电压值。如果确定当前PCIe差分信号的信号差值大于或等于预设差值,则接收方PCIe设备可保持正常工作状态。如果确定当前PCIe差分信号的信号差值小于预设差值,则不会立即进入电气空闲状态,而是控制发送方PCIe设备提升下一PCIe差分信号的强度。这样,接收方PCIe设备就可接收信号增强后的下一PCIe差分信号,以此根据增强后的下一PCIe差分信号来判断当前PCIe差分信号的信号差值小于预设差值是否是因为PCIe链路过长或其他信号完整性问题等原因导致信号衰减所造成。
[0041] 在本实施例的一种可选方式中,控制发送方PCIe设备提升下一PCIe差分信号的强度,可包括:向发送方PCIe设备发送预配置的信号提升指令,以指示发送方PCIe设备提升预设大小的信号发送强度,并按照提升的信号发送强度发送下一PCIe差分信号。
[0042] 在本实施方式中,信号提升指令可携带字符序列集信息,该字符序列集不同于PCIe标准中已有的序列集,其为自定义的序列集。通过字符序列集信息可指示信号发送强度的提升级别。其中,字符序列集中可包括多个字节,通过多个字节可指示需要提升的信号发送强度的具体取值。表1示出了本实施例的字符序列集信息及其功能描述信息。其中,表1中仅示例性地示出了三个字符序列集,具体包括字符序列集1、字符序列集2和字符序列集3。
[0043] 表1字符序列集信息及其功能描述信息
[0044]
[0045] 在本实施方式中,接收方PCIe设备的发送逻辑,可通过接收方PCIe设备与发送方PCIe设备之间的PCIe链路,向发送方PCIe设备发送预配置的信号提升指令。这样,发送方PCIe设备的接收逻辑能够接收到接收方PCIe设备的发送逻辑所发送的信号提升指令,并根据信号提升指令中包括的自定义的字符序列集信息提升预设大小的信号发送强度。可选地,发送方PCIe设备可采用预加重技术提升自身的信号发送强度。在此基础上,当发送方PCIe设备在发送下一时刻的下一PCIe差分信号时,可按照提升后的信号发送强度进行发送。
[0046] 采用上述方式,可通过提升发送方PCIe设备的信号发送强度,以使发送方PCIe设备按照提升后的信号发送强度发送下一PCIe差分信号,以便依据下一PCIe差分信号的信号差值来判断,是由于信号衰减造成接收的PCIe差分信号的信号差值小于预设差值,还是由于PCIe链路确实已经进入电气空闲状态造成接收的PCIe差分信号的信号差值小于预设差值。
[0047] 在本实施例的一种可选方式中,在向发送方PCIe设备发送预配置的信号提升指令之前,还可包括:提升接收方PCIe设备的信号发送强度。
[0048] 在本实施方式中,在向发送方PCIe设备发送预配置的信号提升指令时,因PCIe设备之间的PCIe链路过长或其他信号完整性问题等原因会导致信号衰减过大,继而很大可能会造成发送方PCIe设备无法准确接收到接收方PCIe设备发送的提升指令。为此,接收方PCIe设备需要先提升接收方PCIe设备自身的信号发送强度,然后再按照提升的信号发送强度来向发送方PCIe设备发送信号提升指令,以尽可能让发送方PCIe设备接收到准确地信号提升指令,以便发送方PCIe设备可依据信号提升指令准确地提升自身的信号发送强度来发送下一PCIe差分信号,进而可依据接收到下一PCIe差分信号来判断接收的PCIe差分信号的信号差值小于预设差值的真正原因。可选地,接收方PCIe设备可采用预加重技术提升自身的信号发送强度。
[0049] S230、依据接收的下一PCIe差分信号,对接收方PCIe设备的工作状态进行调整。
[0050] 在本实施例中,在控制发送方PCIe设备提升下一PCIe差分信号的强度之后,发送方PCIe设备会依次发送下一PCIe差分信号。接收方PCIe设备可接收发送方PCIe设备发送的下一PCIe差分信号,且下一PCIe差分信号是发送方PCIe设备经提升信号发送强度后发送的差分信号。为此,接收方PCIe设备可确定接收的下一PCIe差分信号的信号差值是否小于预设差值。
[0051] 在本实施例中,若确定接收的下一PCIe差分信号的信号差值大于或等于预设差值,表明发送方PCIe设备仍然在线,之前接收的PCIe差分信号之所以小于预设差值是因为信号衰减造成,此时可将接收方PCIe设备与发送方PCIe设备之间的PCIe链路保持在非电气空闲状态,以使接收方PCIe设备仍保持处于非低功耗状态进行正常工作。可选地,为了保证接收方PCIe设备能够正常接收发送方PCIe设备发送的信号而不受信号衰减的影响,在控制发送方PCIe设备提升下一PCIe差分信号的强度之后,若确定接收的下一PCIe差分信号的信号差值大于或者等于预设差值,还可指示发送方PCIe设备的信号发送强度继续保持或者继续提升。
[0052] 在本实施例中,若确定接收的下一PCIe差分信号的信号差值小于预设差值,表明之前接收的PCIe差分信号之所以小于预设差值并不是因信号衰减造成,而是因为PCIe链路确实已经进入电气空闲状态,此时可将接收方PCIe设备的信号发送强度恢复至初始状态,并进入电气空闲状态。
[0053] 在本实施例的一种可选方式中,依据接收的下一PCIe差分信号,对接收方PCIe设备的工作状态进行调整,可包括以下步骤:
[0054] 若接收的下一PCIe差分信号的信号差值小于预设差值,且发送方PCIe设备的信号提升次数小于预设次数,则返回继续执行控制发送方PCIe设备提升下一PCIe差分信号的强度的操作,暂不进入电气空闲状态。
[0055] 在本实施方式中,针对发送方PCIe设备提升少量次数或者提升较低级别的信号发送强度可能无法弥补PCIe链路的信号衰减程度,因为即便发送方PCIe设备发送了下一PCIe差分信号,其在到达接收方PCIe设备时也会很快衰减到预设差值以下,进而导致误判。因此,在接收的下一PCIe差分信号的信号差值小于预设差值时,可继续提升发送方PCIe设备的信号发送强度。进而,发送方PCIe设备可发送下一PCIe差分信号,接收方PCIe设备可依据接收的新的下一PCIe差分信号进行下一轮的比较。
[0056] 在本实施方式中,考虑到能耗问题,不可能无限制的提升发送方PCIe设备的信号发送强度,因为这样会大幅度地增加能耗,因此需要对发送方PCIe设备的信号提升次数进行限制。在确定接收的下一PCIe差分信号的信号差值小于预设差值时,同时还需要确定发送方PCIe设备的信号提升次数是否小于预设次数。若确定小于预设次数,则返回继续执行控制发送方PCIe设备提升下一PCIe差分信号的强度的操作,从而暂不进入电气空闲状态。可选地,当接收方PCIe设备控制发送方PCIe设备提升下一PCIe差分信号的强度时,接收方PCIe设备可对发送方PCIe设备的信号发送强度的信号提升次数进行实时统计。
[0057] 本发明实施例中提供了一种PCIe设备的处理方法,通过控制发送方PCIe设备提升下一PCIe差分信号的强度,进而依据接收的下一PCIe差分信号来确定PCIe链路是否真正进入电气空闲状态,上述方式能够尽可能避免由于接收方PCIe设备与发送方PCIe设备之间PCIe链路上的PCIe差分信号衰减过大,导致接收方PCIe设备在未收到EIOS序列的情况下会产生误判而误进入电气空闲状态,进而避免PCIe链路通信异常的情况发生。
[0058] 图5是本发明实施例中提供的另一种PCIe设备的处理方法的流程图。本发明实施例在上述实施例的基础上进行优化,本发明实施例可以与上述一个或者多个实施例中各个可选方案结合。如图5所示,本申请实施例中的一种PCIe设备的处理方法,可包括以下步骤:
[0059] S510、确定从发送方PCIe设备接收的当前PCIe差分信号。
[0060] S520、若当前PCIe差分信号的信号差值小于预设差值,则提升接收方PCIe设备的信号发送强度。
[0061] S530、向发送方PCIe设备发送预配置的信号提升指令,以指示发送方PCIe设备提升预设大小的信号发送强度,并使发送方PCIe设备按照提升的信号发送强度发送下一PCIe差分信号。
[0062] S540、确定发送方PCIe设备提升信号发送强度的信号提升次数。
[0063] S550、若接收的下一PCIe差分信号的信号差值小于预设差值,且发送方PCIe设备的信号提升次数小于预设次数,则返回执行S530的操作,暂不进入电气空闲状态。
[0064] 在本实施例中,接收方PCIe设备通过S520‑S530的操作,可对发送方PCIe设备的信号发送强度进行逐次提升增强,这样就可尽可能避免由于发送方PCIe设备发送的下一PCIe差分信号在PCIe链路中衰减过大,导致接收方PCIe设备检测到下一PCIe差分信号的信号差值小于预设差值而产生误判。通过逐次提升发送方PCIe设备的信号发送强度可以尽可能保证发送的下一PCIe差分信号不至于过度衰减,能尽可能排除由于信号衰减造成接收的下一PCIe差分信号小于预设差值,进而准确判断PCIe链路是否真正进入电气空闲状态。
[0065] S560、若接收的下一PCIe差分信号的信号差值小于预设差值,且发送方PCIe设备的信号提升次数大于或等于预设次数,则确定接收方PCIe设备的信号提升次数。
[0066] 在本实施例中,通过判断发送方PCIe设备的信号提升次数是否小于预设次数来对发送方PCIe设备的信号发送强度进行逐次提升,并依据逐次提升后接收的下一PCIe差分信号来进行判定,这样可尽可能排除由于PCIe链路的信号衰减造成接收的差分信号的信号差值低于预设次数,进而引起误判。但是,考虑到接收方PCIe设备的信号发送强度会影响信号提升指令的发送准确度,因此需要通过逐次提升接收方PCIe设备的信号发送强度,来排除由于接收方PCIe设备的信号发送强度较低导致信号提升指令无法准确到达发送方PCIe设备,进而引起发送方PCIe设备无法提升信号发送强度。另外,同样考虑到能耗问题不可能无限制提升接收方PCIe设备的信号发送强度,因此需要对接收方PCIe设备的信号发送强度的信号提升次数进行实时统计,以便于确定是否暂停提升。
[0067] S570、若接收方PCIe设备的信号提升次数小于预设次数,则将发送方PCIe设备的信号提升次数重置清零和将发送方PCIe设备的信号发送强度恢复至初始状态;以及,返回执行提升接收方PCIe设备的信号发送强度的操作,暂不进入电气空闲状态。
[0068] 在本实施例中,若接收方PCIe设备的信号提升次数小于预设次数,则告知发送方PCIe设备将之前已经统计记录的信号提升次数重置清零,同时将发送方PCIe设备的信号发送强度恢复至初始状态。在此基础上,接收方PCIe设备可返回执行S520步骤中提升接收方PCIe设备的信号发送强度的操作,来逐次提升接收方PCIe设备的信号发送强度,这样一来,接收方PCIe设备可分别在逐次提升接收方PCIe设备的信号发送强度的前提下,返回执行S520‑S530的操作。
[0069] S580、若接收方PCIe设备的信号提升次数大于或等于预设次数,则将接收方PCIe设备的信号发送强度恢复至初始状态,并进入电气空闲状态。
[0070] 在本实施例中,当接收方PCIe设备的信号提升次数大于或等于预设次数时,表明接收方PCIe设备和发送方PCIe设备分别进行了多次信号发送强度的提升操作。在此基础上,如果还是确定接收的下一PCIe差分信号的信号差值小于预设差值,那么基本可以排除是因为信号衰减导致,而是因为PCIe链路可能已经真正进入电气空闲状态,此时接收方PCIe设备可将已将提升的信号发送强度恢复至初始状态,并指示进入电气空闲状态,节省能耗。
[0071] 本发明实施例中提供了一种PCIe设备的处理方法,通过控制逐次提升发送方PCIe设备的信号发送强度以发送下一PCIe差分信号的强度,以及逐次提升接收方PCIe设备的信号发送强度以发送信号提升指令,进而能够依据逐次接收的下一PCIe差分信号来确定PCIe链路是否真正进入电气空闲状态,上述方式能够尽可能避免由于PCIe链路过长或其他信号完整性问题等原因使得接收方PCIe设备与发送方PCIe设备之间PCIe链路上的PCIe差分信号衰减过大,导致接收方PCIe设备在未收到EIOS序列的情况下会产生误判而误进入电气空闲状态,进而避免PCIe链路通信异常的情况发生,提升系统可靠性。
[0072] 图6是本发明实施例中提供的又一种PCIe设备的处理方法的流程图。本发明实施例在上述实施例的基础上进行优化,本发明实施例可以与上述一个或者多个实施例中各个可选方案结合。如图6所示,本申请实施例中的PCIe设备的处理方法,可包括以下步骤:
[0073] S610、在未接收到发送方PCIe设备发送的EIOS序列的情况下,接收方PCIe设备处于正常工作状态。
[0074] S620、确定从发送方PCIe设备接收的当前PCIe差分信号。
[0075] S630、检测当前PCIe差分信号的信号差值是否小于预设差值。
[0076] 其中,若确定小于预设差值,则继续执行S640的操作;若确定大于或等于预设差值,则返回执行S610的操作。
[0077] S640、提升接收方PCIe设备的信号发送强度。
[0078] S650、向发送方PCIe设备发送预配置的信号提升指令,以指示发送方PCIe设备提升预设大小的信号发送强度,并按照提升的信号发送强度发送下一PCIe差分信号。
[0079] S660、检测接收的下一PCIe差分信号的信号差值是否小于预设差值。
[0080] 其中,若确定小于预设差值,则继续执行S670的操作;若确定大于或等于预设差值,则返回执行S610的操作,用于保证PCIe链路保持在非电气空闲状态,使得接收方PCIe设备处于非低功耗状态。
[0081] S670、检测发送方PCIe设备的信号提升次数是否小于预设次数。
[0082] 其中,若确定小于预设次数,则返回执行S650的操作;若确定大于或等于预设次数,则继续执行S680的操作。
[0083] S680、检测接收方PCIe设备的信号提升次数是否小于预设次数。
[0084] 其中,若确定小于预设次数,则返回执行S690的操作;若确定大于或等于预设次数,则继续执行S6100的操作。
[0085] S690、将发送方PCIe设备的信号提升次数重置清零和将发送方PCIe设备的信号发送强度恢复至初始状态,并返回执行S640的操作。
[0086] S6100、将接收方PCIe设备的信号发送强度恢复至初始状态,并进入电气空闲状态。
[0087] 其中,在发送方PCIe设备被重新唤醒后,可返回执行S610的操作。
[0088] 本发明实施例中提供了一种PCIe设备的处理方法,通过在发送方PCIe设备与接收方PCIe设备之间发送信号提升指令,自动调节发送方PCIe设备与接收方PCIe设备之间的PCIe链路上的信号发送强度,以实现控制发送方PCIe设备提升下一PCIe差分信号的强度,进而依据接收的下一PCIe差分信号确定PCIe链路是否真正进入电气空闲状态。采用本申请方案,能够尽可能避免由于接收方PCIe设备与发送方PCIe设备之间PCIe链路上的PCIe差分信号衰减过大,导致接收方PCIe设备在未收到EIOS序列的情况下会产生误判而误进入电气空闲状态,进而避免PCIe链路通信异常的情况发生。
[0089] 图7是本发明实施例中提供的一种PCIe设备的处理装置的结构框图。本发明实施例可适用于对PCIe设备的工作状态进行调整的情况。该PCIe设备的处理装置可以采用软件和/或硬件的方式实现,并可集成在任何具有网络通信功能的电子设备上。例如,上述电子设备可为PCIe设备,该PCIe设备的处理装置可配置于接收方PCIe设备。如图7所示,本申请实施例中的PCIe设备的处理装置,包括:信号确定模块710、强度控制模块720和状态调整模块730。其中:
[0090] 信号确定模块710,用于确定从发送方PCIe设备接收的当前PCIe差分信号;
[0091] 强度控制模块720,用于若当前PCIe差分信号的信号差值小于预设差值,则控制所述发送方PCIe设备提升下一PCIe差分信号的强度;
[0092] 状态调整模块730,用于依据接收的下一PCIe差分信号,对所述接收方PCIe设备的工作状态进行调整。
[0093] 在上述实施例的基础上,可选地,强度控制模块720包括:
[0094] 向所述发送方PCIe设备发送预配置的信号提升指令,以指示所述发送方PCIe设备提升预设大小的信号发送强度,并按照提升的信号发送强度发送下一PCIe差分信号。
[0095] 在上述实施例的基础上,可选地,所述装置还包括:
[0096] 强度提升模块740,用于在向所述发送方PCIe设备发送预配置的信号提升指令之前,提升所述接收方PCIe设备的信号发送强度,用于按照提升后的信号发送强度向所述发送方PCIe设备发送信号提升指令。
[0097] 在上述实施例的基础上,可选地,状态调整模块730包括:
[0098] 若接收的下一PCIe差分信号的信号差值小于预设差值,且所述发送方PCIe设备的信号提升次数小于预设次数,则返回继续执行控制所述发送方PCIe设备提升下一PCIe差分信号的强度的操作,暂不进入电气空闲状态。
[0099] 在上述实施例的基础上,可选地,状态调整模块730包括:
[0100] 若接收的下一PCIe差分信号的信号差值小于预设差值,且所述发送方PCIe设备的信号提升次数大于或等于预设次数,则确定接收方PCIe设备的信号提升次数;
[0101] 若所述接收方PCIe设备的信号提升次数小于预设次数,则将所述发送方PCIe设备的信号提升次数重置清零和将所述发送方PCIe设备的信号发送强度恢复至初始状态;以及,返回执行提升所述接收方PCIe设备的信号发送强度的操作,暂不进入电气空闲状态。
[0102] 在上述实施例的基础上,可选地,状态调整模块730还包括:
[0103] 在确定所述接收方PCIe设备的信号提升次数之后,若所述接收方PCIe设备的信号提升次数大于或等于预设次数,则将所述接收方PCIe设备的信号发送强度恢复至初始状态,并进入电气空闲状态。
[0104] 在上述实施例的基础上,可选地,状态调整模块730包括:
[0105] 若接收的下一PCIe差分信号的信号差值大于或等于预设差值,则将所述接收方PCIe设备与所述发送方PCIe设备之间的PCIe链路保持在非电气空闲状态,以使所述接收方PCIe设备处于非低功耗状态。
[0106] 本发明实施例中所提供的PCIe设备的处理装置可执行上述本发明任意实施例中所提供的PCIe设备的处理方法,具备执行该PCIe设备的处理方法相应的功能和有益效果,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例中所提供的PCIe设备的处理方法。
[0107] 图8是本发明实施例中提供的一种电子设备的结构示意图。如图8所示结构,本发明实施例中提供的电子设备包括:一个或多个处理器810和存储装置820;该电子设备中的处理器810可以是一个或多个,图8中以一个处理器810为例;存储装置820用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器810执行,使得所述一个或多个处理器810实现如本发明实施例中任一项所述的PCIe设备的处理方法。
[0108] 该电子设备还可以包括:输入装置830和输出装置840。
[0109] 该电子设备中的处理器810、存储装置820、输入装置830和输出装置840可以通过总线或其他方式连接,图8中以通过总线连接为例。
[0110] 该电子设备中的存储装置820作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例中所提供的PCIe设备的处理方法对应的程序指令/模块。处理器810通过运行存储在存储装置820中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例中PCIe设备的处理方法。
[0111] 存储装置820可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储装置820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置820可进一步包括相对于处理器810远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0112] 输入装置830可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置840可包括显示屏等显示设备。
[0113] 并且,当上述电子设备所包括一个或者多个程序被所述一个或者多个处理器810执行时,程序进行如下操作:
[0114] 确定从发送方PCIe设备接收的当前PCIe差分信号;
[0115] 若当前PCIe差分信号的信号差值小于预设差值,则控制所述发送方PCIe设备提升下一PCIe差分信号的强度;
[0116] 依据接收的下一PCIe差分信号,对所述接收方PCIe设备的工作状态进行调整。
[0117] 当然,本领域技术人员可以理解,当上述电子设备所包括一个或者多个程序被所述一个或者多个处理器810执行时,程序还可以进行本发明任意实施例中所提供的PCIe设备的处理方法中的相关操作。
[0118] 本发明实施例中提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行PCIe设备的处理方法,该方法包括:
[0119] 确定从发送方PCIe设备接收的当前PCIe差分信号;
[0120] 若当前PCIe差分信号的信号差值小于预设差值,则控制所述发送方PCIe设备提升下一PCIe差分信号的强度;
[0121] 依据接收的下一PCIe差分信号,对所述接收方PCIe设备的工作状态进行调整。
[0122] 可选的,该程序被处理器执行时还可以用于执行本发明任意实施例中所提供的PCIe设备的处理方法。
[0123] 本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式CD‑ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0124] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0125] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(RadioFrequency,RF)等等,或者上述的任意合适的组合。
[0126] 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0127] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0128] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。