首页> 中国专利> 在活动状态功率管理过程中改善延时的方法和系统

在活动状态功率管理过程中改善延时的方法和系统

摘要

本发明涉及在活动状态功率管理过程中改善延时及减少状态转变的方法和系统。通过基于网络刺激在较早的时间点前瞻性地开始L1退出来改善PCI-EL1活动状态功率管理(ASPM)退出延时。改善的延时可实现更高级别的性能和响应度,同时支持ASPM的好处。本发明可通过缩减使用PCI-E接口的处理过程中的延时来最小化操作成本。本发明可嵌入在网络接口控制器(NIC)或任何其它具有支持ASPM的PCI-E接口的设备内。

著录项

  • 公开/公告号CN101420308A

    专利类型发明专利

  • 公开/公告日2009-04-29

    原文格式PDF

  • 申请/专利权人 美国博通公司;

    申请/专利号CN200810169656.0

  • 发明设计人 斯蒂文·B·林赛;

    申请日2008-10-07

  • 分类号H04L12/10(20060101);G06F1/32(20060101);

  • 代理机构44217 深圳市顺天达专利商标代理有限公司;

  • 代理人蔡晓红;纪媛媛

  • 地址 美国加州尔湾市奥尔顿公园路16215号92618-7013

  • 入库时间 2023-12-17 21:49:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-20

    专利权的转移 IPC(主分类):H04L12/10 登记生效日:20190830 变更前: 变更后: 申请日:20081007

    专利申请权、专利权的转移

  • 2018-05-22

    专利权的转移 IPC(主分类):H04L12/10 登记生效日:20180504 变更前: 变更后: 申请日:20081007

    专利申请权、专利权的转移

  • 2011-12-14

    授权

    授权

  • 2009-06-24

    实质审查的生效

    实质审查的生效

  • 2009-04-29

    公开

    公开

说明书

技术领域

本发明涉及计算机系统,具体涉及计算机系统中的PCI-E接口,更具体地说,涉及一种在活动状态功率管理过程中改善PCI-E L1 ASPM延时的方法和系统。

背景技术

PCI-E(Peripheral Component Interconnect Express)接口应用于服务器、桌面型电脑和移动PC中。PCI-E的一个重要的省电特征是活动状态功率管理(ASPM)。当在特定PCI-E链路中启用了L1 ASPM且该链路处于非活动状态一段时间(例如几十或几百微秒)时,PCI-E链路将转变到L1状态,消耗比全功率(即全功能的L0(on)状态)少很多的功率。在L1状态下,PCI-E时钟被停止,PLL掉电以省电。但是,为了使设备开始DMA并通过PCI-E链路传送数据,该链路必须返回到L0状态。

从L1转变到L0的过程不是瞬时的。这一转变时间期间被称为“L1退出延时”。L1退出延时从设备决定其需要进行PCI-E事务(例如DMA)并开始到L0的转变的时间点开始。L1退出延时在PCI-E链路已经完全转变到L0状态时结束。精确的L1退出延时取决于PCI-E链路两端的设备的设计,但若PLL未掉电该延时将大于20微秒,若PLL掉电则大于100微秒。

吉比特和快速以太网控制器可使用PCI-E总线来连接PC,因为PCI-E是公共高速外围接口。此外,这些具有PCI-E接口的以太网控制器非常期望支持L1 ASPM,以便在接口为非活动状态期间PCI-E链路能自动置入低功率状态。但是,长时间的L1延时将对网络响应和性能产生负面影响。这是因为L1退出延时会影响一个网络工作站处理并响应由另一网络工作站发送的网络数据包所需的延时。在吉比特以太网速度下,在某些涉及对延时敏感的应用或基准的情况下即使10微秒的延时也是非常不期望出现的。

设备的L1退出延时取决于该设备的物理层设计。在物理层设计的性能、成本和复杂度之间可以取得折衷。因此L1退出延时在稍小于10微秒到几百微秒的非常大的范围内。在PCI-E基准时钟以及PLL已掉电时,即使具有“较低”L1退出延时的设备也具有大于30(某些情况下大于100)微秒的从L1退出的延时,因为在向L0转变时,时钟需要重启,PLL需要重新获取时钟。

比较本发明后续将要结合附图介绍的系统,现有技术的其它局限性和弊端对于本领域的普通技术人员来说是显而易见的。

发明内容

本发明提供了一种通过在较早的时间点前瞻性地开始转变来改善有效的PCI-E L1 ASPM退出延时的方法和系统,结合至少一幅附图进行了充分的展现和描述,并在权利要求中得到了更完整的阐述。

根据本发明的一个方面,本发明提供了一种在活动状态功率管理过程中改善延时的方法,所述方法包括:

进入低功率PCI-E状态;

预测将需要全功率PCI-E状态的事务;

基于所述预测到的事务转变到全功率PCI-E状态。

优选地,预测所述事务包括调度一事件,其中所述事件在计时器期满时开始。

优选地,所述事件包括状态更新。

优选地,所述事件包括中断生成。

优选地,所述事件包括传送统计值给主机。

优选地,转变到全功率状态在一延时后发生。

优选地,所述延时是基于时间的。

优选地,预测所述事务包括:

接收数据包;

验证与所述数据包关联的地址。

优选地,转变到全功率PCI-E状态在一延时后发生。

优选地,所述延时是基于时间的。

优选地,所述延时是基于接收到数据量的。

优选地,所述延时是基于相对于数据包的长度接收到的数据的量的。

优选地,所述方法包括:在转变到全功率PCI-E状态后校验数据包的错误,然后在非活动状态计时器期满后发起返回低功率(L1)状态的转变。

根据本发明的一个方面,本发明还提供一种在活动状态功率管理过程中减少状态转变的方法,所述方法包括:

预测一DMA事务;

基于所述预测到的DMA事务重置一非活动状态计时器。

根据本发明的另一方面,本发明提供一种在活动状态功率管理过程中改善延时的系统,所述系统包括:

具有功率管理特征的接口,其中所述功率管理特征包括低功率PCI-E状态和全功率PCI-E状态;

用于指示所述接口发起从低功率PCI-E状态到全功率PCI-E状态的转变的控制器,其中所述控制器预测对所述全功率PCI-E状态的需求。

优选地,所述控制器是以太网MAC。

优选地,所述控制器是WLAN控制器。

优选地,所述控制器确定在发起从低功率PCI-E状态到全功率PCI-E状态的转变之前数据包已经通过了地址过滤。

优选地,所述控制器在预测全功率PCI-E状态需求和发起转变之间产生一延时。

优选地,所述延时是基于时间的。

优选地,所述延时是基于接收的数据量的。

优选地,所述延时是基于相对于数据包内的数据总量所接收的数据的量的。

优选地,所述控制器以一个或多个速度操作。

优选地,预测全功率PCI-E状态需求和发起转变之间的时间根据所述控制器的操作速度来确定。

根据本发明的一个方面,本发明提供一种在活动状态功率管理过程中减少状态转变的系统,所述系统包括:

具有功率管理特征的接口;

用于在预测到DMA事务时重置非活动状态计时器的控制器。

本发明的各种优点、各个方面和创新特征,以及其中所示例的实施例的细节,将在以下的描述和附图中进行详细介绍。

附图说明

图1是依据本发明第一实施例的改善PCI-E L1 ASPM退出延时的方法的流程图;

图2是依据本发明第二实施例的改善PCI-E L1 ASPM退出延时的方法的流程图;

图3是依据本发明实施例的改善PCI-E L1 ASPM退出延时的系统的示意图。

具体实施方式

下面将结合附图及实施例对本发明作进一步说明:

本发明涉及通过基于网络刺激(network stimulus)在较早的时间点前瞻性地开始L1退出来改善PCI-E L1活动状态功率管理(ASPM)退出延时。改善的延时可实现更高级别的性能和响应度,同时支持ASPM的好处。本发明可嵌入在具有PCI-E接口支持ASPM的网络接口控制器(NIC)内。尽管以下的描述将结合PCI-E接口的特定实施例来给出,还有其它很多实施例也可以使用这些系统和方法。本发明还可缩减使用PCI-E接口的其它处理中的延时。

根据本发明的不同实施例,智能NIC可基于网络刺激来预测比正常情况(正好在NIC必须发起DMA之前)更早地退出L1状态的需求。换言之,本发明使得NIC可正好在设备有待决的PCI-E事务(例如DMA读或写)准备发起之前发起从L1到L0的转变。根据本发明,NIC可前瞻性地发起从低功率的L1状态到全功率的L0状态的转变。通过预测并较早地发起该转变,可以将部分L1退出延时屏蔽,并且PCI-E链路可以更快地返回到L0状态。更快地回到L0状态可以改进支持PCI-E活动状态功率管理的网络控制器的性能和响应度。

从L1到L0的转变可由设备在其被请求发起PCI-E事务后立即开始。若NIC接收到数据包,在DMA请求将该数据包发送给主存储器之前,该数据包将被全部缓存并被验证。吉比特(以及更快的)NIC可在请求DMA之前完全地缓存一数据包。较慢的NIC在请求DMA之前仅能缓存该数据包的一部分。

为了缩减延时,可在设备真正地具有一待决PCI-E事务之前,基于预测(speculation)发起从L1到L0的转变。从L1到L0的转变可在NIC能够做出在近期极有可能需要进行DMA请求的决定时开始。这可以提供多于10微秒的领先。

图1是根据本发明第一实施例的改善PCI-E L1 ASPM退出延时的方法的流程图。步骤101中,激活NIC以接收数据包。步骤103中,只要一入站数据包的足够部分已经接收到,NIC就验证该数据包是否通过地址过滤。可以推测该数据包是无错的并且需要DMA到主存储器。

步骤105中,NIC确定PCI-E接口处于何种状态。若PCI-E接口正处于L0状态,在步骤107中将该设备的PCI-E非活动状态计数器重置,且NIC返回步骤101中等待接收数据包。若PCI-E接口正处于L1状态且在步骤109中发现该设备处于PCI D3状态,NIC返回到步骤101中等待接收数据包。若PCI-E接口处于L1状态且在步骤109中未发现该设备处于PCI D3状态,则步骤111中NIC将发起从L1到L0的转变并重置PCI-E非活动状态计时器。这正好在整个数据包被接收到之前发生,并可允许NIC比等待DMA引擎请求一DMA传输的情况至少提前10微秒开始从L1到L0的转变。

通过前瞻性地请求一较早的从L1到L0的转变,NIC可在实际无需做出DMA请求的情况下将总线转换到L0状态。若NIC最终确定该数据包是有错的(例如,具有FCS错误),则NIC可丢弃该数据包,并不发起针对该数据包数据的DMA请求。

PCI-E规范在即使状态转变并未立即引起PCI-E事务的情况下,也允许进行到L0的转变。做出不必要的从L1到L0的转变的不利结果是总线在一小段时间内将消耗掉稍微多一些功率。步骤113中,使用非活动状态计时器来确定因为非活动状态何时设备应该将链路从L0转变回L1。步骤115中,总线因非活动状态而转变回L1状态。若不必要的L1到L0转变的次数被保持在一个最小值(例如小于5%),功耗的负面影响便可以忽略,L1退出延时的改善将是显而易见且引人注目的。吉比特以太网上的错误率低于10-10(按照规范),并且对于大部分的媒体类型可低于10-12。因此,以太网上的数据包错误率将小于1%。

为了防止出现不必要的L0到L1到L0转变,步骤107和步骤111中,NIC可使用相同的提前指示来比正常情况较早地重置NIC的PCI-E非活动状态计时器。通过在某事件发生时(例如当接收到数据包但对该数据包的DMA准备好之前)较早地重置了该计时器,便可以避免不必要的L1转变。步骤117中,即使PCI-E链路正在L0状态下处理网络和PCI通信量,PCI-E非活动状态计时器也可被重置。虽然这一重置不能改善L1退出延时,但其可通过在生成DMA事务时提早将非活动状态计时器清零来减少不必要的L0到L1到L0转变。

图2是依据本发明第二实施例的改善PCI-E L1 ASPM退出延时的方法的流程图。

步骤201中,使用DMA事件计时器来调度DMA事件。一旦在步骤205中DMA事件计时器期满,将在步骤207中启动DMA事件。DMA事件可以是“主机合并(host coalescing)”事件,用当前硬件状态更新主机上运行的驱动并产生中断。DMA事件还可以是传送当前片上统计计数器给主机。步骤203中,可在DMA事件计时器期满前开始从L1到L0的转变。通过在DMA计时器被设置后且计时器正好期满之前发起L1到L0转变,设备可被配置成L1到L0转变正好在计时器期满前完成,从而完全屏蔽掉了L1退出延时。

图3是依据本发明实施例的改善PCI-E L1 ASPM退出延时的系统的示意图。图3示出了吉比特以太网控制器300。但是,以下描述还可以适用于其它类别的具有PCI-E总线的网络设备例如WLAN设备。

MAC 301可支持:1)以太网媒介访问控制(MAC)功能;2)以太网802.3协议;3)到物理层(PHY)的接口;4)数据包分类;5)用于入站数据包的错误检测逻辑;和/或6)用于临时数据包缓存的存储器。MA C301还可包含:1)用于卸载校验和计算的逻辑;2)用于TCP/IP或IPSEC通信量的加速器;和/或3)其它嵌入式处理器。DMA引擎303负责发起对PCI-E核305的DMA读和写请求。PCI-E核305负责在PCI-E总线上生成实际的DMA请求,支持PCI-E协议,以及提供PCI-E目标支持。

当在以太网上接收到数据包时,数据包内的数据具将通过芯片内的多个模块。对于接收到的数据包,数据将通过网络接口307从物理层309进入设备,并由MAC301进行处理。为了便于MAC确保该数据包未含有FCS(aka CRC)错误,必须接收到整个数据包。若数据包内没有错误,且该数据包是给这个系统的,DMA引擎303将形成DMA请求给PCI-E核305,以穿过PCI总线311将该数据包传送给主存储器。

吉比特以太网NIC可支持1Gb/s的操作,也支持较低速度例如100mb和10mb的操作。当以较低网速运行时,入站网络数据包的到达也会慢些。以100mb的速度接收最大大小的以太网(1518B)数据包所需的时间,大约是122微秒,这一时间将大于L1退出延时。在L1状态下PLL掉电未激活的情况下,L1退出延时将大于10微秒但小于64微秒。但是,若PLL掉电被激活,L1退出延时将大于100微秒。因此,当运行在10mb或100mb的速度下且在L1状态下接收数据包时,可能期望在对应于入站接收数据包内较晚一点的时间点发起L1到L0转变。例如,假设运行在100mb速度下的设备接收最大大小的1518B以太网数据包。该最大大小的入站数据包完全到达所需的时间(例如,约120微秒)将超过L1退出延时(即,若PLL掉电被激活)。因此,最好不在数据包的MAC报头刚好到达之后发起L1到L0转变,而是在数据包内某个稍晚的点(例如1000B)。这样可使得PCI-E接口不会过早地转变到L0一定时间段。因此,这一特征的优选实施包括使NIC的软件驱动器从NIC已确定入站数据包通过了地址过滤的时间点开始到NIC应该发起L1到L0转变的时间点配置一延迟因子的特征。该延迟因子可以是基于时间的(例如微秒),也可以是基于针对特定数据包所接收到的数据量的。软件驱动器可使用各种标准,例如网络速度,PLL掉电是否激活或未激活,以及特定系统上的预期设备L1退出延时,作为确定该延迟因子的标准。

为了支持较早的L1到L0转变,从MAC 301发送给PCI-E核305的信号指示PCI-E核发起L1到L0转变。这一信号可被边缘触发,MAC可在其想要指示PCI-E核进入L0时生成一脉冲。出于调试和诊断的目的,软件可激活或禁用这一信号的使用。这可通过设备专用寄存器比特(其可通过设备驱动器来配置)来完成。

PCI-E核305包含有逻辑以识别该信号上的脉冲。如果在设备级上已经激活了上述特征,且该设备处于L1ASPM状态和D0设备状态,PCI-E核305将在其识别出该信号断言时(即在其检测到该信号的上升边缘时)发起L1到L0转变。一旦已经转变到L0,PCI-E核305将重置PCI-E非活动状态计时器,以便总线上一段时间内没有活动时,设备将发起转变回到L1。若设备处于D3状态,这一信号将被PCI-E核完全忽略。若设备不处于L1ASPM状态而处于L0状态时,设备将在其检测到该信号上的脉冲时立即重置其PCI-E非活动状态计时器。若在较早指示信号被断言时非活动状态计时器接近期满,这可以提供消除可能的不必要的L0到L1到L0转变的好处。

为了支持因数据包接收的较早L1到L0转变,MAC 301可包括有逻辑,以允许MAC 301在给PCI-E核305的信号上产生脉冲,以告诉PCI-E核305在MAC301确定入站数据包已经通过地址过滤之后立即开始L1到L0转变。

可增加“较早L1退出延迟”寄存器,通过软件对其进行配置以延迟从MAC 301给到PCI-E核305的脉冲n微秒,或直到数据包的n个字节已经收到。在1Gb网络环境下,该寄存器正常情况下将被设为“0”(即没有额外的延迟),但是若网络速度较慢(例如100mb),将使用一延迟值,以便在DMA写该数据包被发布之前生成较早的L1退出脉冲,并从而缩减L1退出延时。通过使用该延迟值,脉冲不会像在数据包第一次通过地址过滤时一样早,因为那样会导致L1到L0转变,若PLL掉电未被激活的情况下这一转变为时过早。使用“n个字节”的方法对10/100半双工网络的好处在于,软件可将延迟阈值设置在冲突窗口(例如数据包内的头64B)之外。

该延迟值与数据包的长度相关。数据包的长度可通过硬件检查以太网报头内的typ/len字段和/或未分段IP包的IP报头内的IP len字段来确定。

NIC可具有计时器以在计时器期满时促使生成DMA。该计时器的例子包括用于聚合中断事件的计时器,用于聚合状态模块更新事件的计时器,或用于生成片上统计值的周期性DMA给主机的计时器。对何时特定计时器将会期满进行预测是可能的。为了支持因预期的计时器近期届满而引起的较早L1到L0转变,可修改MAC 301内的控制逻辑,以在计时器期满前达到一编程的阈值时生成“较早L1退出脉冲”。例如,可增加一个或多个寄存器,使得软件驱动器能够配置设备,以在特定计数器期满前n微秒启动内部L1退出信号。例如,对于正常情况下每秒期满的统计值模块更新计时器,若n等于30,设备将在准备发布统计值模块更新DMA之前30微秒发起L1到L0转变。若该设备处于L1 ASPM状态,这将屏蔽掉30微秒的L1退出延时。若PCI-E链路处于L0状态,将重置PCI-E非活动状态计时器以防止在计时器期满前发生不必要的L0到L1转变。

若设备处于L0状态且其PCI-E非活动状态计时器接近期满,较早进行L1到L0转变的信号断言将使得PCI-E非活动状态计时器立即重置,进而防止近期的L0到L1转变。当在前瞻性的较早指示表明DMA将会发生之后实际的DMA发生时,该非活动状态计时器可再次被重置。

若设备处于D3状态且WoL使能,并且该设备接收到数据包,L1到L0转变不会仅仅因为该设备接收到数据包便被发起。在D3状态下,PCI-E核内的较早L1退出特征被禁用。若设备收到了WoL数据包,其可断言WAKE#信号,该信号唤醒系统并使PCI-E接口重置。

本发明可以通过硬件、软件,或者软、硬件结合来实现。本发明可以在至少一个计算机系统中以集中方式实现,或者由分布在几个互连的计算机系统中的不同部分以分散方式实现。任何可以实现所述方法的计算机系统或其它设备都是可适用的。常用软硬件的结合可以是安装有计算机程序的通用计算机系统,通过安装和执行所述程序控制计算机系统,使其按所述方法运行。在计算机系统中,利用处理器和存储单元来实现所述方法。

本发明还可以通过计算机程序产品进行实施,所述程序包含能够实现本发明方法的全部特征,当其安装到计算机系统中时,通过运行,可以实现本发明的方法。本文件中的计算机程序所指的是:可以采用任何程序语言、代码或符号编写的一组指令的任何表达式,该指令组使系统具有信息处理能力,以直接实现特定功能,或在进行下述一个或两个步骤之后实现特定功能:a)转换成其它语言、编码或符号;b)以不同的格式再现。

本发明是通过几个具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号