一种PCIe设备的状态切换控制方法、装置及相关设备与流程

文档序号:24067345发布日期:2021-02-26 13:34阅读:323来源:国知局
一种PCIe设备的状态切换控制方法、装置及相关设备与流程
一种pcie设备的状态切换控制方法、装置及相关设备
技术领域
[0001]
本申请涉及电子技术领域,特别涉及一种pcie设备的状态切换控制方法、装置、电子设备及计算机可读存储介质。


背景技术:

[0002]
pcie(peripheral component interconnect express,外围组件互联)是一种高速串行计算机扩展总线,以传输速度快(不断满足日益增长的传输带宽需求)、端到端的可靠性传输、支持热拔插、低功耗管理及服务质量等特性在个人计算机、服务器、固态硬盘、数据中心、网卡等领域得到了青睐和广泛应用,使得该领域得到快速发展。
[0003]
pcie协议2.0版本中规定了pcie电源管理分为两种模式,即pci-pm(power management,电源管理)和aspm(active state power management,活动状态电源管理)。其中aspm电源管理状态分为l0、l0s、l1、l2、l3状态。自pcie协议3.0版本开始,aspm状态增加了l1子状态以便更好的支持低功耗电源管理。
[0004]
根据pcie3.1a协议,l1状态包含l1.0、l1.1、l1.2子状态,其中l1.0子状态即传统的l1状态,l1.1和l1.2均是在l1.0状态的基础上满足一定条件后进入:l1.1子状态和l1.2子状态都是通过一个双向的开漏类型的时钟请求信号clkreq#的变化来进入和退出,不同的是,两个子状态的功耗不一样,能提供的服务也不一样。在l1.1子状态下,链路共模电压还存在,上游端口和下游端口的电气空闲退出检测电路还在工作;在l1.2子状态下,链路的共模电压已经被关闭,上游端口和下游端口的电气空闲退出检测电路的功能也已被关闭。l1.2子状态是更深的低功耗状态,退出延时也比l1.1子状态大。
[0005]
现有技术虽然对pcie低功耗做了一些研究,但是,申请人发现,现有技术中还存在有因pcie主机端未严格遵循pcie协议撤离参考时钟而导致pcie设备端无法进入l1子状态的问题。因此,提供一种解决上述技术问题的方案,已经成为本领域中的一个重要课题。


技术实现要素:

[0006]
本申请的目的在于提供一种pcie设备的状态切换控制方法、装置、电子设备及计算机可读存储介质,以便有效解决因pcie主机端未严格遵循pcie协议撤离参考时钟而导致pcie设备端无法进入l1子状态的问题,增强pcie设备端对不同pcie主机端的低功耗的兼容性。
[0007]
为解决上述技术问题,第一方面,本申请公开了一种pcie设备的状态切换控制方法,应用于所述pcie设备,所述方法包括:
[0008]
在进入到l1状态后,判断硬件电路是否发起l1子状态进入流程;
[0009]
若是,则开启一个在预设时长后进行报时的定时器;
[0010]
当所述定时器触发报时后,判断所述pcie设备是否仍处于l1状态而未进入l1子状态;
[0011]
若是,则将参考时钟切换为所述pcie设备的内部时钟,以便进入l1子状态。
[0012]
可选地,在所述将参考时钟切换为所述pcie设备的内部时钟之后,还包括:
[0013]
当所述硬件电路发起l1子状态退出流程后,将参考时钟切换为外部时钟。
[0014]
可选地,在所述定时器启动期间,还包括:
[0015]
持续判断所述硬件电路是否发起l1状态退出流程;
[0016]
若是,则提前关闭所述定时器并结束判断。
[0017]
可选地,在所述定时器启动期间,还包括:
[0018]
持续判断所述pcie设备是否已经进入l1子状态;
[0019]
若是,则提前关闭所述定时器并结束判断。
[0020]
可选地,所述预设时长为5μs。
[0021]
另一方面,本申请还公开了一种pcie设备的状态切换控制装置,应用于所述pcie设备,所述装置包括:
[0022]
判断模块,用于在进入到l1状态后,判断硬件电路是否发起l1子状态进入流程;
[0023]
启动模块,用于在判定硬件电路发起l1子状态进入流程后,开启一个在预设时长后进行报时的定时器;
[0024]
处理模块,用于当所述定时器触发报时后,判断所述pcie设备是否仍处于l1状态而未进入l1子状态;若是,则将参考时钟切换为所述pcie设备的内部时钟,以便进入l1子状态。
[0025]
可选地,所述处理模块还用于:
[0026]
在将参考时钟切换为所述pcie设备的内部时钟之后,当所述硬件电路发起l1子状态退出流程后,将参考时钟切换为外部时钟。
[0027]
可选地,所述处理模块还用于:
[0028]
在所述定时器启动期间,持续判断所述硬件电路是否发起l1状态退出流程;若是,则提前关闭所述定时器并结束判断。
[0029]
可选地,所述处理模块还用于:
[0030]
在所述定时器启动期间,持续判断所述pcie设备是否已经进入l1子状态;若是,则提前关闭所述定时器并结束判断。
[0031]
可选地,所述预设时长为5μs。
[0032]
又一方面,本申请还公开了一种电子设备,包括:
[0033]
存储器,用于存储计算机程序;
[0034]
处理器,用于执行所述计算机程序以实现如上所述的任一种pcie设备的状态切换控制方法的步骤。
[0035]
又一方面,本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如上所述的任一种pcie设备的状态切换控制方法的步骤。
[0036]
本申请所提供的pcie设备的状态切换控制方法应用于所述pcie设备,所述方法包括:在进入到l1状态后,判断硬件电路是否发起l1子状态进入流程;若是,则开启一个在预设时长后进行报时的定时器;当所述定时器触发报时后,判断所述pcie设备是否仍处于l1状态而未进入l1子状态;若是,则将参考时钟切换为所述pcie设备的内部时钟,以便进入l1子状态。
[0037]
本申请所提供的pcie设备的状态切换控制方法、装置、电子设备及计算机可读存储介质所具有的有益效果是:本申请通过状态检测以及参考时钟模式配置等手段,有效解决了因pcie主机端未严格遵循pcie协议撤离参考时钟而导致pcie设备端无法进入l1子状态的问题,增强了pcie设备端对不同pcie主机端的低功耗的兼容性,进而有效提高了产品经济效益。
附图说明
[0038]
为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。
[0039]
图1为本申请实施例公开的一种pcie设备的状态切换控制方法的流程图;
[0040]
图2为本申请实施例公开的一种pcie设备的状态切换控制装置的结构框图;
[0041]
图3为本申请实施例公开的一种电子设备的结构框图。
具体实施方式
[0042]
本申请的核心在于提供一种pcie设备的状态切换控制方法、装置、电子设备及计算机可读存储介质,以便有效解决因pcie主机端未严格遵循pcie协议撤离参考时钟而导致pcie设备端无法进入l1子状态的问题,增强pcie设备端对不同pcie主机端的低功耗的兼容性。
[0043]
为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0044]
pcie协议2.0版本中规定了pcie电源管理分为两种模式,即pci-pm(power management,电源管理)和aspm(active state power management,活动状态电源管理)。其中aspm电源管理状态分为l0、l0s、l1、l2、l3状态。自pcie协议3.0版本开始,aspm状态增加了l1子状态以便更好的支持低功耗电源管理。
[0045]
根据pcie3.1a协议,l1状态包含l1.0、l1.1、l1.2子状态,其中l1.0子状态即传统的l1状态,l1.1和l1.2均是在l1.0状态的基础上满足一定条件后进入:l1.1子状态和l1.2子状态都是通过一个双向的开漏类型的时钟请求信号clkreq#的变化来进入和退出,不同的是,两个子状态的功耗不一样,能提供的服务也不一样。在l1.1子状态下,链路共模电压还存在,上游端口和下游端口的电气空闲退出检测电路还在工作;在l1.2子状态下,链路的共模电压已经被关闭,上游端口和下游端口的电气空闲退出检测电路的功能也已被关闭。l1.2子状态是更深的低功耗状态,退出延时也比l1.1子状态大。
[0046]
现有技术虽然对pcie低功耗做了一些研究,但是,申请人发现,现有技术中还存在有因pcie主机端未严格遵循pcie协议撤离参考时钟而导致pcie设备端无法进入l1子状态的问题。鉴于此,本申请提供了一种pcie设备的状态切换控制方案,可有效解决上述问题。
[0047]
参见图1所示,本申请实施例公开了一种pcie设备的状态切换控制方法,应用于pcie设备,该方法主要包括:
[0048]
s101:在进入到l1状态后,判断硬件电路是否发起l1子状态进入流程;若是,则进入s102。
[0049]
具体地,当pcie设备的cpu(central processing unit,中央处理单元)接收到进入l1状态的中断信号后,即可进入s101以启动后续程序。值得补充说明的是,进入l1状态后,cpu可首先将用于指示进入l1状态的中断状态寄存器进行清零复位,以便后续继续使用。
[0050]
如前,l1子状态是在进入到l1状态后、满足了一定条件后所进入的状态。当硬件电路在l1状态下又发起了l1子状态进入流程后,相应的寄存器即app_l1sub-dis寄存器将改变其标志位。一般地,1表示不需要进入l1子状态,0表示需要进入l1子状态。
[0051]
s102:开启一个在预设时长后进行报时的定时器;进入s103。
[0052]
若硬件电路已经发起了l1子状态进入流程,则,在正常情况下,pcie设备应当在一定时间内顺利切换进入l1子状态。为了检测pcie设备是否顺利地完成l1子状态的切换,本申请设置了一个定时时长固定为预设时长的定时器。
[0053]
由于在正常情况下完成l1子状态的切换过程不超过5μs,因此,作为一种优选实施例,该预设时长可具体为5μs。
[0054]
s103:当定时器触发报时后,判断pcie设备是否仍处于l1状态而未进入l1子状态;若是,则进入s104。
[0055]
当定时器的定时结束后,若pcie设备依然在l1状态而尚未切换为l1子状态,则此时可判定pcie设备端无法进入l1子状态的问题已经发生。
[0056]
s104:将参考时钟切换为pcie设备的内部时钟,以便进入l1子状态。
[0057]
申请人发现,导致l1子状态无法顺利切换的原因,主要是pcie主机端未严格遵循pcie协议而撤离参考时钟,即此时的pcie设备端依然使用不适用于l1子状态的外部时钟。由此,本申请通过将pcie设备端的参考时钟切换为内部时钟,即芯片内部自带的时钟,从而可有效解决该问题。
[0058]
具体地,一般pcie设备端通过相应寄存器来控制时钟模式,该寄存器为参考时钟模式寄存器。cpu通过读取参考时钟模式寄存器中存储的数值,选择使用对应的参考时钟模式。一般地,数值1表示采用参考时钟内部模式;数值0表示采用参考时钟外部模式。
[0059]
可见,本申请所提供的pcie设备的状态切换控制方法,通过状态检测以及参考时钟模式配置等手段,有效解决了因pcie主机端未严格遵循pcie协议撤离参考时钟而导致pcie设备端无法进入l1子状态的问题,增强了pcie设备端对不同pcie主机端的低功耗的兼容性,进而有效提高了产品经济效益。
[0060]
作为一种具体实施例,本申请实施例所提供的pcie设备的状态切换控制方法在上述内容的基础上,在将参考时钟切换为pcie设备的内部时钟之后,还包括:当硬件电路发起l1子状态退出流程后,将参考时钟切换为外部时钟。
[0061]
具体地,当退出l1子状态后,pcie设备可重新恢复使用外部的参考时钟,由此需要将参考时钟模式寄存器的数值修改为0。类似还需要说明的是,当接收到退出l1状态的中断信号后,cpu可首先将用于指示退出l1状态的中断状态寄存器进行清零复位,以便后续继续
使用。
[0062]
作为一种具体实施例,本申请实施例所提供的pcie设备的状态切换控制方法在上述内容的基础上,在定时器启动期间,还包括:持续判断硬件电路是否发起l1状态退出流程;若是,则提前关闭定时器并结束判断。
[0063]
具体地,当定时器的定时尚未结束、而pcie设备已经启动退出l1状态,则便不需要再进入l1子状态,因此定时器可就此关闭,无需再进行其他处理。其中,当硬件电路发起l1状态退出流程后,将触发ltssm(link training and status state machine,链路训练和状态状态机)修改其数值。
[0064]
作为一种具体实施例,本申请实施例所提供的pcie设备的状态切换控制方法在上述内容的基础上,在定时器启动期间,还包括:持续判断pcie设备是否已经进入l1子状态;若是,则提前关闭定时器并结束判断。
[0065]
此外,当定时器的定时尚未结束、而pcie设备已经成功切换到l1子状态,则说明情况正常,因此定时器也可就此关闭,无需再进行其他处理。
[0066]
参见图2所示,本申请实施例公开了一种pcie设备的状态切换控制装置,应用于pcie设备,该装置主要包括:
[0067]
判断模块201,用于在进入到l1状态后,判断硬件电路是否发起l1子状态进入流程;
[0068]
启动模块202,用于在判定硬件电路发起l1子状态进入流程后,开启一个在预设时长后进行报时的定时器;
[0069]
处理模块203,用于当定时器触发报时后,判断pcie设备是否仍处于l1状态而未进入l1子状态;若是,则将参考时钟切换为pcie设备的内部时钟,以便进入l1子状态。
[0070]
可见,本申请实施例所公开的pcie设备的状态切换控制装置,通过状态检测以及参考时钟模式配置等手段,有效解决了因pcie主机端未严格遵循pcie协议撤离参考时钟而导致pcie设备端无法进入l1子状态的问题,增强了pcie设备端对不同pcie主机端的低功耗的兼容性,进而有效提高了产品经济效益。
[0071]
关于上述pcie设备的状态切换控制装置的具体内容,可参考前述关于pcie设备的状态切换控制方法的详细介绍,这里就不再赘述。
[0072]
作为一种具体实施例,本申请实施例所公开的pcie设备的状态切换控制装置在上述内容的基础上,处理模块203还用于:
[0073]
在将参考时钟切换为pcie设备的内部时钟之后,当硬件电路发起l1子状态退出流程后,将参考时钟切换为外部时钟。
[0074]
作为一种具体实施例,本申请实施例所公开的pcie设备的状态切换控制装置在上述内容的基础上,处理模块203还用于:
[0075]
在定时器启动期间,持续判断硬件电路是否发起l1状态退出流程;若是,则提前关闭定时器并结束判断。
[0076]
作为一种具体实施例,本申请实施例所公开的pcie设备的状态切换控制装置在上述内容的基础上,处理模块203还用于:
[0077]
在定时器启动期间,持续判断pcie设备是否已经进入l1子状态;若是,则提前关闭定时器并结束判断。
[0078]
作为一种具体实施例,本申请实施例所公开的pcie设备的状态切换控制装置在上述内容的基础上,预设时长为5μs。
[0079]
参见图3所示,本申请实施例公开了一种电子设备,包括:
[0080]
存储器301,用于存储计算机程序;
[0081]
处理器302,用于执行所述计算机程序以实现如上所述的任一种pcie设备的状态切换控制方法的步骤。
[0082]
进一步地,本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如上所述的任一种pcie设备的状态切换控制方法的步骤。
[0083]
关于上述电子设备和计算机可读存储介质的具体内容,可参考前述关于pcie设备的状态切换控制方法的详细介绍,这里就不再赘述。
[0084]
本申请中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0085]
还需说明的是,在本申请文件中,诸如“第一”和“第二”之类的关系术语,仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。此外,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0086]
以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1