专利名称:用于实施通用系统停顿的方法和系统的制作方法
技术领域:
本发明的实施例大体上涉及功率管理,且更具体地说,涉及用于实施通用系统停顿 的方法和系统。
背景技术:
除非本文另外指出,否则这部分中所描述的途径不作为本申请案中的权利要求书的 现有技术,且不通过包含在这部分中而被承认是现有技术。
能量效率正成为许多系统设计中越来越重要的考虑因素。存储器制造商已经开发出 具有多个功率状态(例如活动、活动闲置、断电和自刷新)的存储器系统。存储器系统 通常需要处于活动状态以服务某一请求,且其余功率状态是为了减少功率消耗,但增加 了转变回到活动的时间。换句话说,活动状态消耗最多功率,且自刷新状态引起用于时 钟再同步的最多延迟。类似地,系统互连链路也与多个功率状态相关联,其中最低功率 状态同样对应于最高等待时间。因此, 一种实现能量效率的途径是尽可能长时间地将存 储器系统、系统互连链路或两者维持在最低功率状态,且同时有效地管理与进入和退出 所述状态相关联的高等待时间。
为了说明,假设显示系统110是低功率状态期间计算装置100中的唯一活动代理, 其中系统存储器106处于自刷新状态,且系统链路108处于断电状态。图1A是能够在此 低功率状态下显示数据的计算装置100的简化框图。计算装置100的显示系统110包含 显示引擎112、显示装置114和显示先进先出("FIFO")缓冲器116。显示引擎112利用 显示FIFO缓冲器116来消除显示装置114的严格计时要求与存储器系统106的相互影响。 因此,为了能够经受住与将系统存储器106从低功率状态"唤醒"仅以检索数据相关联 的潜在相当大的等待时间,显示引擎112确保显示FIFO缓冲器116存储足够的像素数据, 以满足低功率状态期间显示装置114的计时要求。具体地说,当计算装置100驻存在低 功率状态时,显示引擎110在方向118上处理并汲取显示FIFO缓冲器116中的数据。当 显示引擎110达到显示FIFO缓冲器U6中的预定临界水位时,显示引擎110启动以下过 程退出低功率状态并从系统存储器106获取数据,以在方向120上填满显示FIFO缓冲 器116。此填满过程也被称为"装满"显示FIFO缓冲器116。
图IB是说明不具有用以优化功率效率的显示FIFO缓冲器以及显示引擎的显示系统所作的一种型式的系统存储器存取的时序图,而图1C是说明具有用以优化功率效率的显 示FIFO缓冲器116以及显示引擎112的显示系统110所作的不同型式的系统存储器存取 的时序图。在没有功率效率优化的情况下,任何两个存储器存取之间的间隙(表示为存 取间隙150)通常小于与进入或退出低功率状态(例如自刷新状态)相关联的等待时间。 另一方面,通过适当大小的显示FIFO缓冲器116,存储器存取可群集,且存取间隙160 可延长到至少等于与进入或退出自刷新状态相关联的等待时间。这种存储器存取请求的 群集和存取间隙的延长被统称为"显示停顿"。通过图1C中展示的型式,计算装置100 能够实现所需的能量效率。
然而,除显示系统110之外,计算装置100还具有各种输入/输出("I/O")代理,其 请求经由系统链路108和芯片集104来存取系统存储器106。这些I/0代理的一些实例包 含(但不限于)集成驱动器电子设备("IDE")装置、通用串行总线("USB")装置、网 络控制器、外围组件互连快递("PCI Express")控制器、PCI桥接器和PCI-X控制器。N 个I/O代理中的每一者都具有其自己的相异计时要求,且所述I/O代理中的许多I/O代理 不支持停顿要求。虽然将所述I/0代理中的每一者重新设计成发出导致与图1C中所示的 型式类似的存储器存取型式的存储器存取请求可以改进计算装置100的能量效率,但胡 乱修补多个工作装置(尤其是已经被广泛采用的传统I/O代理)的风险和成本可能远远 超过任何此类改进。
如前面所说明的,此项技术中需要一种通用系统停顿,其可容易部署且至少解决上 文所陈述的现有技术途径的缺点。
发明内容
本发明揭示用于实施通用系统停顿的方法和系统。具体地说,本发明的一个实施例
陈述一种方法,其包含以下步骤在计算装置的低功率状态期间,阻断从多个总线主控 器中的第一者接收到的第一请求持续所述计算装置的计时要求所允许的那么长时间,其
中达到计时要求限制的所述第一请求能够触发计算装置从低功率状态转变出来;以及在
计算装置的活动状态期间,在计算装置转变回到低功率状态之前,服务所述第一请求以 及来自所述多个总线主控器中的其余总线主控器的其它待决请求。
所揭示的方法和系统的一个优点是,可在不对计算装置中的各种I/O代理进行任何 重新设计的情况下管理此计算装置的存储器存取,以增强所述计算装置的能量效率。
可参考实施例(其中一些实施例在附图中说明)来获得可详细理解本发明的上述特征的方式,即本发明的更具体描述(上文简要概述)。然而,应注意,附图只说明本发明 的典型实施例,且因此并不被视为限制本发明的范围,因为本发明可承认其它同等有效 的实施例。
图1A是能够在低功率状态下显示数据的计算装置的简化框图1B是说明不具有显示FIFO缓冲器的显示系统所作的一种型式的系统存储器存取 的时序图1C是说明包含显示FIF0缓冲器的另一显示系统所作的不同型式的系统存储器存 取的时序图2是根据本发明一个实施例的经配置以实施通用系统停顿的计算装置中的一些组 件的简化框图3A是根据本发明一个实施例的集中停顿单元的分解图3B是根据本发明一个实施例的集中停顿单元中的阻断器的状态转变图4A是根据本发明一个实施例的处理来自具有高等待时间容限的总线主控器的存
储器存取请求的时序图4B是根据本发明一个实施例的处理来自具有显著低于存取间隙的等待时间容限
的总线主控器的存储器存取请求的时序图4C是根据本发明一个实施例的处理来自具有显著低于存取间隙的等待时间容限
的总线主控器的存储器存取请求的另一时序图4D是根据本发明一个实施例的处理来自不同总线主控器的多个存储器存取请求
的时序图;以及
图4E是根据本发明一个实施例的在处理显示系统的存储器存取群集期间处理来自 总线主控器的存储器存取请求的时序图。
具体实施例方式
在本揭示内容中,始终将本发明的一个实施例实施为与计算装置一起使用的软件组 件。所述软件组件界定所述实施例(包含本文所述的方法)的功能,且可包含在多种计
算机可读存储媒体上。说明性计算机可读存储媒体包含(但不限于)(i)上面永久存储
信息的不可写存储媒体(例如,计算装置内的只读存储器装置);(ii)上面存储可改动信 息的可写存储媒体(例如,可写存储器装置,例如快闪存储器)。此类计算机可读存储媒 体在携载指导本发明的功能的计算机可读指令时是本发明的实施例。其它媒体包含通信 媒体,通过所述通信媒体将信息传达给计算装置(例如通过数据或电话网络),其中包含无线通信网络。后者实施例具体包含向/从因特网和其它网络传输信息。此类通信媒体在 携载指导本发明的功能的计算机可读指令时是本发明的实施例。然而,所属领域的技术 人员应容易使用硬件组件或硬件组件与软件组件的组合来实施本发明的其它实施例。
图2是根据本发明一个实施例的经配置以实施通用系统停顿的计算装置200中的一 些组件的简化框图。计算装置200包含处理单元202、具有仲裁器205的芯片集204、系 统存储器206、显示系统210和耦合到系统链路208和许多1/0代理的集中停顿单元221。 显示系统210通常包含显示引擎212、本地视频存储器(图2中未展示)和显示FIFO缓 冲器216,以处理视频数据并驱动显示装置214。显示装置214是能够发射对应于显示引 擎212所产生的数据信号的视觉图像的输出装置。显示装置214的一些实例包含(但不 限于)阴极射线管(CRT)监视器、液晶显示器、等离子体显示器、投影仪或任何其它 合适的显示系统。
系统存储器206存储供处理单元202和甚至显示引擎212执行和操作的编程指令和 数据,其中包含屏幕数据。如图所示,处理单元202经由芯片集204与系统存储器206 和显示系统210通信。或者,处理单元202包含专用存储器端口,以连接到系统存储器 206。在其它实施方案中,处理单元202、显示系统210中的显示引擎212、芯片集204 或其任何组合可集成为单个处理单元。另外,显示引擎212的功能性可包含在芯片集204 中或包含在某种其它类型的专用处理单元或协处理器中。在此些实施例中,软件指令可 驻存在除系统存储器206以外的其它存储器系统中,且可由除处理单元202以外的处理 单元来执行。所属领域的技术人员还应容易认识到芯片集204可包含一起工作以服务不 同类型的1/0代理的多个离散集成电路,例如北桥和南桥。
虽然在图2中将仲裁器205和集中停顿单元221展示为两个离散组件,但所属领域 的技术人员应容易使用其它配置来实施通用系统停顿,且同时保持在本发明的范围内。 举例来说,在一个实施方案中,集中停顿单元221的功能性包含在仲裁器205中。
图3A是根据本发明一个实施例的集中停顿单元221的分解图。对于每个具有总线主 控器的I/0代理,集中停顿单元221包含相应的阻断器,以潜在地阻断总线主控器的请 求传播到仲裁器205。举例来说,阻断器,302对应于1/0代理,222,且阻断器N 304对 应于I/O代理N 224 。在一个实施方案中,每个阻断器具有可编程字段 MAX—BLOCK—TIME,其在数学上可表达如下
MAX_BLOCK—TIME二与I/O代理相关联的等待时间容限-(与退出低功率状态相关 联的等待时间+在I/O代理之间进行仲裁的时间量)为了说明,结合图2,假设I/0代理,222的总线主控器具有固有的100微秒的等待 时间容限,且总线主控器在处于低功率状态时请求来自系统存储器206的数据。进一步 假设系统存储器206从低功率状态转变到活动状态且仲裁器205选择一个请求以对其进 行服务两者花费20微秒。因此,为了I/0代理,222的总线主控器满足其计时限制,需 要在100微秒内接收所请求的数据。然而,由于仲裁器205和系统存储器206花费20微 秒来服务所述请求,所以阻断器! 302最多能阻断所述请求持续(100-20)或80微秒。 换句话说,在第80微秒时,阻断器,302需要开始向仲裁器205传播所述请求,且启动 使系统存储器206转换到活动状态的过程。或者,上述等式中所使用的等待时间容限进 一步取决于经配置以对计算装置200进行操作的软件安全网(如果有的话)的类型。举 例来说, 一个软件安全网对计算装置200进行配置,以在传输期间检测到包丢失时重新 发送包。通过此类软件安全网,等待时间容限可延长到超过总线主控器的固有等待时间 容限。
此外,每个阻断器彼此连接。因此, 一个总线主控器请求从单个I/O代理到仲裁器 205的传播触发集中停顿单元221中的所有其它阻断器的"解除阻断",且将所有待决总 线主控器请求释放到仲裁器205。仲裁器205经配置具有在来自各个总线主控器的请求 之间选择以进行服务的策略。所属领域的技术人员应容易认识到仲裁器205可在不超出 本发明范围的情况下采用任何已知仲裁方案。
图3B是根据本发明一个实施例的集中停顿单元221中的阻断器的状态转变图350。 使用图3A中所展示的阻断器! 302作为说明,阻断器,302通常保持在闲置状态352,尤 其在图2的计算装置200的低功率状态期间。此状态指示阻断器! 302不具有任何待决总 线主控器请求。假设在低功率状态期间,阻断器,302接收到来自1/0代理,222的总线 主控器请求。如果阻断器,302的前述MAX_BLOCK_TIME含有非零值,那么阻断器,302 转变到阻断状态354,且开始阻断请求。所述阻断保持有效,直到1/0代理! 222解除断 言所述请求或阻断器,302转变到请求待决状态356为止。为了转变到请求待决状态356, 一个触发条件是在总线主控器请求已经被阻断持续MAX_BLOCK_TIME时,且另一触发 条件是在计算装置200退出低功率状态时。在许多情形中,这种从低功率状态转变出来 的情况可在MAX—BLOCKJTIME期满之前发生。举例来说,集中停顿单元221中的另一 阻断器在阻断器,302达到其MAX_BLOCK_TIME之前解除阻断其待决请求且触发计算 装置200进入活动状态。在另一种情形中,在阻断器,302的MAX—BLOCK—TIME期满 之前,显示系统210开始经由系统链路208请求数据,且触发计算装置200从低功率状态转变出来。
代替如上文所述经由阻断状态354到达请求待决状态356,阻断器,302可直接从闲 置状态352到达请求待决状态356。为了说明,假设阻断器,302再次接收来自1/0代理 ,222的总线主控器请求。如果计算装置200不处于低功率状态或阻断器,302的 MAX—BLOCK—TIME被配置为零,那么阻断器,302直接转变到请求待决状态356。在将 待决请求传播到仲裁器205以供进一步处理之后,阻断器,302转换回到闲置状态352。
此外,因为显示系统210通常是图2的计算装置200的低功率状态期间的主要数据 消耗者,所以通用系统停顿的一个实施方案是操纵前述阻断器以使尽可能多的来自各个 I/O代理的存储器存取请求与来自显示系统210的存储器存取请求群集。图4A到图4E
以及以下论述内容描述具有不同等待时间容限限制的i/o代理的各种总线主控器的处理。
图4A是根据本发明一个实施例的处理来自具有高等待时间容限的总线主控器的存 储器存取请求400的时序图。此处,负责此总线主控器的阻断器致使存储器存取请求400 在显示器系统210的存储器存取群集402被执行之后得以服务。在一个实施方案中,存 储器存取群集402供显示引擎212填满显示FIFO 216。通过将存储器存取404与群集402 组群,系统存储器206不需要单独从低功率状态转变出来以只是为了满足存储器存取请 求400。值得注意的是,存取间隙406受计算装置中具有对存取系统存储器206的待决 请求的所有I/0代理之间的最小等待时间容限限制。然而,在图4A中所示的实例中,最 小等待时间容限等于显示系统210的等待时间容限,其在一个实施方案中由显示FIFO 216的大小规定。
图4B是根据本发明一个实施例的处理来自具有显著低于存取间隙416的等待时间容 限的总线主控器的存储器存取请求410的时序图。负责此总线主控器的阻断器致使仲裁 器205解除阻断且系统存储器206从低功率状态转换出来。在此具体实例中,将对应于 存储器存取请求410的存储器存取414注入显示系统210的存储器存取群集412中。类 似于图4A中所说明且上文详细描述的过程,处理存储器存取414以及群集412防止了系 统存储器206单独从低功率状态转变出来以只是为了服务存储器存取请求410。
图4C是处理来自具有显著低于存取间隙428的等待时间容限的总线主控器的存储器 存取请求420的另一时序图。此处,因为低等待时间容限的缘故,系统存储器206从低 功率状态转变出来,以服务对应于存储器存取请求420的存储器存取424。为了充分利 用在周期430期间处于活动状态的系统存储器206,显示引擎212的一个实施方案致使 显示FIFO 216在方向434上装满。更准确地说,当显示引擎212在低功率状态期间在方向432上汲取并处理显示FIFO 216中的像素数据时,存储器存取请求420的发生触发了 系统存储器206的唤醒以及存储器存取群集426的服务,以在方向434上装满显示FIFO 216。
图4D是根据本发明一个实施例的处理来自不同总线主控器的多个存储器存取请求 的时序图。假设两个总线主控器中的任一者的等待时间容限显著长于存取间隙450。负 责存储器存取请求440和存储器存取请求442的两个阻断器致使相应的存储器存取446 和448分别与显示系统210的存储器存取群集444组群。所属领域的技术人员应容易认 识到图4D中所示的存储器存取446和448的群集只是出于说明性目的,且可在不超出本 发明范围的情况下,根据仲裁器205所采用的仲裁策略来修改。
最后,图4E是根据本发明一个实施例的在处理显示系统210的存储器存取群集462 期间处理来自总线主控器的存储器存取请求460的时序图。在一个实施方案中,负责此 总线主控器的阻断器将请求传播到仲裁器205而没有进一步阻断,且致使存储器存取464 注入显示系统210的存储器存取群集462中。
以上描述内容说明本发明的各种实施例以及可如何实施本发明各方面的实例。以上 实例、实施例和图式不应被认为是仅有的实施例,且经呈现以说明如由所附权利要求书 所界定的本发明的灵活性和优点。
权利要求
1. 一种用于实施通用系统停顿的方法,所述方法包括在计算装置的低功率状态期间,阻断从多个总线主控器中的第一者接收到的第一请求持续所述计算装置的计时要求所允许的那么长时间,其中所述第一请求能够触发所述计算装置从所述低功率状态转变出来;以及在所述计算装置的活动状态期间,在所述计算装置转变回到所述低功率状态之前,服务所述第一请求以及来自所述多个总线主控器的其余总线主控器的其它待决请求。
2. 根据权利要求l所述的方法,其进一步包括在等于具有待决请求的所有所述多个总 线主控器之间的最小等待时间容限的时间周期期满之后,解除阻断所述第一请求以 使所述计算装置进入所述活动状态。
3. 根据权利要求2所述的方法,其中所述最小等待时间容限进一步考虑退出所述低功 率状态且在所述第一请求与所述其它待决请求之间进行仲裁所花费的总计时间量。
4. 根据权利要求3所述的方法,其中通过所述计算装置所支持的安全网机制来延长所 述最小等待时间容限。
5. 根据权利要求l所述的方法,其进一步包括在所述计算装置的所述低功率状态期间,处理显示缓冲器中的像素数据;以及 在所述计算装置的所述活动状态期间,填满所述显示缓冲器。
6. 根据权利要求1所述的方法,其中所述服务步骤进一步包括在所述第一请求与所述 其它待决请求之间进行仲裁以确定服务顺序。
7. 根据权利要求1所述的方法,其中所述服务步骤进一步包括-在所述计算装置的所述活动状态期间在接收到来自所述多个总线主控器中的第 二者的第二请求后,在所述活动状态期间服务所述第二请求。
8. —种经配置以支持通用系统停顿的计算装置,所述计算装置包括-处理单元; 仲裁器;系统存储器;以及集中停顿单元,其耦合到输入/输出("I/O")代理的多个总线主控器,其中所述集中停顿单元中的第一阻断器经配置以在所述计算装置的低功率状态期 间阻断从所述多个总线主控器中的第一者接收到的第一存储器存取请求持续所述计算装置的计时要求所允许的那么长时间,其中所述第一存储器存取请求能够触 发所述计算装置从所述低功率状态转变出来;以及在所述计算装置的活动状态期间,所述系统存储器经配置以在所述计算装置转 变回到所述低功率状态之前服务所述第一存储器存取请求以及来自所述多个总线 主控器中的其余总线主控器的其它待决存储器存取请求。
9. 根据权利要求8所述的计算装置,其中所述集中停顿单元中的每个阻断器均配置有 可编程的阻断时间周期。
10. 根据权利要求8所述的计算装置,其中所述集中停顿单元中的每个阻断器彼此连接。
11. 根据权利要求9所述的计算装置,其中所述第一阻断器在具有待决请求的所有所述 多个总线主控器之间的最小等待时间容限期满之后,解除阻断所述第一存储器存取 请求并将其发送到所述仲裁器以使所述计算装置进入所述活动状态。
12. 根据权利要求9所述的计算装置,其中所述可编程的阻断时间周期进一步考虑退出 所述低功率状态且在所述第一存储器存取请求与所述其它待决存储器存取请求之 间进行仲裁所花费的总计时间量。
13. 根据权利要求11所述的计算装置,其中所述计算装置经配置以支持安全网机制,以 延长所述最小等待时间容限。
14. 根据权利要求8所述的计算装置,其进一步包括显示引擎,其中所述显示引擎经配 置以在所述计算装置的所述低功率状态期间,处理显示缓冲器中的像素数据;以及 在所述计算装置的所述活动状态期间,填满所述显示缓冲器。
15. 根据权利要求8所述的计算装置,其中所述仲裁器包含在所述第一存储器存取请求 与所述其它待决存储器存取请求之间进行仲裁以确定服务顺序的策略。
16. 根据权利要求8所述的计算装置,其中在所述计算装置的所述活动状态期间在所述 集中停顿单元中的第二阻断器接收到来自所述多个总线主控器中的第二者的第二 请求之后,所述系统存储器经配置以也在所述活动状态期间服务所述第二请求。
17. —种含有指令序列的计算机可读媒体,所述指令序列在由计算装置执行时致使所述 计算装置在计算装置的低功率状态期间,阻断从多个总线主控器中的第一者接收到的第一 请求持续所述计算装置的计时要求所允许的那么长时间,其中所述第一请求能够触 发所述计算装置从所述低功率状态转变出来以及在所述计算装置的活动状态期间,在所述计算装置转变回到所述低功率状态之 前,服务所述第一请求以及来自所述多个总线主控器中的其余总线主控器的其它待 决请求。
18. 根据权利要求17所述的计算机可读媒体,其进一步含有指令序列,所述指令序列 在由所述计算装置执行时致使所述计算装置在等于具有待决请求的所有所述多个 总线主控器之间的最小等待时间容限的时间周期期满之后解除阻断所述第一请求 以使所述计算装置进入所述活动状态。
19. 根据权利要求17所述的计算机可读媒体,其进一步含有指令序列,所述指令序列 在由所述计算装置执行时致使所述计算装置在所述计算装置的所述低功率状态期间,处理显示缓冲器中的像素数据;以及 在所述计算装置的所述活动状态期间,填满所述显示缓冲器。
20. 根据权利要求17所述的计算机可读媒体,其进一步含有指令序列,所述指令序列 在由所述计算装置执行时致使所述计算装置在所述第一请求与所述其它待决请求 之间进行仲裁以确定服务顺序。
全文摘要
本发明揭示一种用于实施通用系统停顿的方法和系统。具体地说,本发明的一个实施例陈述一种方法,其包含以下步骤在计算装置的低功率状态期间,阻断从多个总线主控器中的第一者接收到的第一请求持续所述计算装置的计时要求所允许的那么长时间,其中所述第一请求能够触发所述计算装置从所述低功率状态转变出来;以及在所述计算装置的活动状态期间,在所述计算装置转换回到所述低功率状态之前,服务所述第一请求以及来自所述多个总线主控器中的其余总线主控器的其它待决请求。
文档编号G06F1/32GK101299165SQ200810094709
公开日2008年11月5日 申请日期2008年5月4日 优先权日2007年5月1日
发明者布拉德·W·西梅拉尔, 戴维·G·里德, 罗伯特·威廉·查普曼, 罗曼·苏尔古特奇克 申请人:辉达公司