降低3D工作负荷的功率.pdf

上传人:e2 文档编号:4429336 上传时间:2018-10-01 格式:PDF 页数:29 大小:4.90MB
返回 下载 相关 举报
降低3D工作负荷的功率.pdf_第1页
第1页 / 共29页
降低3D工作负荷的功率.pdf_第2页
第2页 / 共29页
降低3D工作负荷的功率.pdf_第3页
第3页 / 共29页
点击查看更多>>
资源描述

《降低3D工作负荷的功率.pdf》由会员分享,可在线阅读,更多相关《降低3D工作负荷的功率.pdf(29页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103959197 A (43)申请公布日 2014.07.30 C N 1 0 3 9 5 9 1 9 7 A (21)申请号 201180075158.X (22)申请日 2011.11.30 G06F 1/32(2006.01) G06F 9/44(2006.01) (71)申请人英特尔公司 地址美国加利福尼亚州 (72)发明人 M阿波达卡 (74)专利代理机构上海专利商标事务所有限公 司 31100 代理人高见 (54) 发明名称 降低3D工作负荷的功率 (57) 摘要 此处呈现了可以降低负责向显示器提供由在 系统内执行的应用程序所生成的视频数据的帧的 系统的。

2、工作负荷的各实施例。在系统内执行的应 用程序可以以被称为帧每秒(FPS)的指定的帧速 率生成视频内容的新帧。CPU和/或GPU可以负 责以指定的FPS实际生成帧。然后,这些帧被提供 给与系统通信地耦合的显示器,供呈现。降低帧速 率(FPS)可以降低由系统执行的工作量,因为在 给定时间段内可以生成较少的帧。当系统正在以 电池电源操作时,这可能特别有利,因为可以延长 电池的寿命。 (85)PCT国际申请进入国家阶段日 2014.05.29 (86)PCT国际申请的申请数据 PCT/US2011/062619 2011.11.30 (87)PCT国际申请的公布数据 WO2013/081602 EN 。

3、2013.06.06 (51)Int.Cl. 权利要求书4页 说明书18页 附图6页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书4页 说明书18页 附图6页 (10)申请公布号 CN 103959197 A CN 103959197 A 1/4页 2 1.一种设备,包括: 处理器电路;以及 图形驱动器,所述图形驱动器在所述处理器电路上操作以执行应用程序,所述应用程 序以与定义的帧速率执行时间相关联的定义的帧速率生成视频内容的帧,所述图形驱动器 操作用以: 计算在前一帧和当前帧之间流逝的时间,以确定当前帧速率执行时间; 通过从所述定义的帧速率执行时间减去所述当前帧速率。

4、执行时间,来计算时间差;以 及 当所述时间差大于0时,将与生成所述当前帧的所述应用程序相关联的处理器线程切 换到睡眠状态。 2.如权利要求1所述的设备,其特征在于,所述图形驱动器可操作,以: 当所述时间差达到零(0)时,向显示器呈现所述当前帧。 3.如权利要求2所述的设备,其特征在于,包括: 与所述处理器电路通信地耦合的显示器,所述显示器操作用以呈现由所述图形驱动器 呈现的所述当前帧。 4.如权利要求1所述的设备,其特征在于,包括耦合到所述处理器电路的电池,所述电 池操作用以向所述处理器电路提供电能。 5.如权利要求1所述的设备,其特征在于,所述定义的帧速率是可由所述应用程序支 持的最小帧速率。

5、。 6.一种设备,包括: 处理器电路;以及 图形驱动器,所述图形驱动器在所述处理器电路上操作以执行应用程序,所述应用程 序以与定义的帧速率执行时间相关联的定义的帧速率生成视频内容的帧,所述图形驱动器 操作用以: 计算在前一帧和当前帧之间流逝的时间,以确定当前帧速率执行时间; 选定在所述定义的帧速率执行时间和所述当前帧速率执行时间之间的缩短的帧速率 执行时间; 通过从所述缩短的帧速率执行时间减去所述当前帧速率执行时间,来计算时间差;以 及 当所述时间差大于零(0)时,将与生成所述当前帧的所述应用程序相关联的处理器线 程切换到睡眠状态。 7.如权利要求6所述的设备,其特征在于,包括操作用以执行下列。

6、操作的所述图形驱 动器: 当所述时间差达到零(0)时,向显示器呈现所述当前帧。 8.如权利要求7所述的设备,其特征在于,包括: 与所述图形驱动器通信地耦合的显示器,所述显示器操作用以呈现由所述图形驱动器 呈现的所述当前帧。 9.如权利要求6所述的设备,其特征在于,包括操作用以给所述处理器电路提供电能 的电池。 权 利 要 求 书CN 103959197 A 2/4页 3 10.如权利要求6所述的设备,其特征在于,所述图形驱动器操作用以确定剩余电池电 量的百分比水平。 11.如权利要求10所述的设备,其特征在于,所述图形驱动器操作用以当剩余电池电 量的百分比水平低于阈值百分比水平时,将所述缩短的。

7、帧速率调节成更低。 12.如权利要求6所述的设备,其特征在于,所述定义的帧速率是可由所述应用程序支 持的最小帧速率。 13.一种方法,包括: 在中央处理单元(CPU)上执行应用程序,所述应用程序操作用于以与定义的帧速率执 行时间相关联的定义的帧速率生成视频内容的帧; 计算在前一帧和当前帧之间流逝的时间,以确定当前帧速率执行时间; 通过从所述定义的帧速率执行时间减去所述当前帧速率执行时间,来计算时间差;以 及 当所述时间差大于零(0)时,将与生成所述当前帧的所述应用程序相关联的CPU线程 切换到睡眠状态。 14.如权利要求13所述的方法,其特征在于,包括: 只有当所述CPU正在以电池电源操作时,。

8、才将所述CPU线程切换到睡眠状态。 15.如权利要求13所述的方法,其特征在于,包括: 当所述时间差达到零(0)时,向显示器呈现所述当前帧。 16.如权利要求13所述的方法,其特征在于,所述定义的帧速率是可由所述应用程序 支持的最小帧速率。 17.一种方法,包括: 在中央处理单元(CPU)上执行应用程序,所述应用程序操作用于以与定义的帧速率执 行时间相关联的定义的帧速率生成视频内容的帧; 计算在前一帧和当前帧之间流逝的时间,以确定当前帧速率执行时间; 选定在所述定义的帧速率执行时间和所述当前帧速率执行时间之间的缩短的帧速率 执行时间; 通过从所述缩短的帧速率执行时间减去所述当前帧速率执行时间,。

9、来计算时间差;以 及 当所述时间差大于零(0)时,将与生成所述当前帧的所述应用程序相关联的CPU线程 切换到睡眠状态。 18.如权利要求17所述的方法,其特征在于,包括: 只有当所述CPU正在以电池电源操作时,才将所述CPU线程切换到睡眠状态。 19.如权利要求17所述的方法,其特征在于,包括: 当所述时间差达到零(0)时,向显示器呈现所述当前帧。 20.如权利要求17所述的方法,其特征在于,包括: 当所述CPU正在以电池电源操作时,确定剩余电池电源的百分比水平。 21.如权利要求17所述的方法,其特征在于,包括: 当剩余电池电量的百分比水平低于阈值百分比水平时,将所述缩短的帧速率调节成更 低。

10、。 权 利 要 求 书CN 103959197 A 3/4页 4 22.如权利要求17所述的方法,其特征在于,所述定义的帧速率是可由所述应用程序 支持的最小帧速率。 23.一种包括计算机可读存储介质的制品,所述计算机可读存储介质包含指令,当执行 所述指令时,所述指令导致系统: 在处理器电路上执行应用程序,所述应用程序操作用于以与帧速率执行时间相关联的 帧速率生成视频内容的帧; 确定当前帧速率执行时间; 确定所述当前帧速率执行时间和所述定义的帧速率执行时间之间的时间差;以及 将与生成所述当前帧的所述应用程序相关联的CPU线程切换到睡眠状态达等于所述 时间差的时段。 24.如权利要求23所述的制品。

11、,其特征在于,包含指令,所述指令在被执行时导致系 统: 只有当所述处理器电路正在以电池电源操作时,才将所述CPU线程切换到睡眠状态。 25.如权利要求23所述的制品,其特征在于,包含指令,所述指令当执行时导致系统: 当所述时间差达到零(0)时,向显示器呈现所述当前帧。 26.如权利要求23所述的制品,其特征在于,所述定义的帧速率是可由所述应用程序 支持的最小帧速率。 27.一种包括计算机可读存储介质的制品,所述计算机可读存储介质包含指令,当执行 所述指令时,所述指令导致系统: 在中央处理单元(CPU)上执行应用程序,所述应用程序操作用于以与定义的帧速率执 行时间相关联的定义的帧速率生成视频内容。

12、的帧; 确定当前帧速率执行时间; 选定低于所述当前帧速率执行时间的缩短的帧速率执行时间; 确定所述当前帧速率执行时间和所述缩短的帧速率执行时间之间的时间差;以及 将与生成所述当前帧的所述应用程序相关联的CPU线程切换到睡眠状态达等于所述 时间差的时段。 28.如权利要求27所述的制品,其特征在于,包含指令,所述指令在被执行时导致系 统: 只有当所述CPU正在以电池电源操作时,才将所述CPU线程切换到睡眠状态。 29.如权利要求27所述的制品,其特征在于,包含指令,所述指令在被执行时导致系 统: 当所述时间差达到零(0)时,向显示器呈现所述当前帧。 30.如权利要求27所述的制品,其特征在于,包。

13、含指令,所述指令在被执行时导致系 统: 当所述CPU正在以电池电源操作时,确定剩余电池电源的百分比水平。 31.如权利要求30所述的制品,其特征在于,包含指令,所述指令在被执行时导致系 统: 当剩余电池电量的百分比水平低于阈值百分比水平时,将所述缩短的帧速率调节成更 低。 权 利 要 求 书CN 103959197 A 4/4页 5 32.如权利要求27所述的制品,其特征在于,所述定义的帧速率是可由所述应用程序 支持的最小帧速率。 权 利 要 求 书CN 103959197 A 1/18页 6 降低 3D 工作负荷的功率 0001 背景 0002 计算平台一般能够以直接电源操作或当直接电源不可。

14、用时以电池电源来操作。电 池电源天然地是有限的资源,必须周期性地再充电。为用于当以电池电源操作时延长计算 平台的操作时间的方法和技术花费了大量的心思。许多计算平台在整个系统内使用中央处 理单元(CPU)和图形处理单元(GPU)。一种用于降低整个系统的功率消耗并延长电池寿命 的技术是当以电池电源操作时降低CPU和GPU操作的频率。此技术不一定会减少由CPU或 GPU执行的工作量相反地,它减慢工作被执行的速度。另一种方法可以是降低与在CPU 或GPU上执行的应用程序相关联的实际工作负荷。相应地,需要改善的技术来解决这些及 其他问题。 0003 附图简述 0004 图1示出了适用于实现本发明的各实施。

15、例的体系结构的框图。 0005 图2示出了适用于实现本发明的各实施例的体系结构的另一框图。 0006 图3示出了逻辑流程的一个实施例。 0007 图4示出了逻辑流程的一个实施例。 0008 图5示出了逻辑流程的一个实施例。 0009 图6示出了可以适用于实现本发明的各实施例的系统的实施例。 0010 图7示出了其中可以实现图6的系统的小形状因子设备的各实施例。 具体实施方式 0011 此处呈现了可以降低负责向显示器提供由在系统或计算平台内执行的应用程序 所生成的视频数据的帧的系统的工作负荷的各实施例。在系统内执行的应用程序可以以被 称为帧每秒(frames per second:FPS)的定义。

16、的帧速率生成视频内容的新帧。应用程序可 以能够支持多个定义的帧速率。CPU和/或GPU可以负责以指定的FPS实际生成帧。然后, 这些帧被提供给与系统通信地耦合的显示器,供呈现。降低帧速率(FPS)可以降低由系统 执行的工作量,因为在给定时间段内可以生成更少的帧。当系统正在以电池电源操作时,这 可能特别有利,因为可以延长电池的寿命。 0012 现在将参考附图,全部附图中相同的参考编号用于表示相同的元件。在下面的描 述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理解。然而,显而易见, 可以没有这些具体细节的情况下实施各新颖实施方式。在其他情况下,以框图形式示出了 各个公知的结构和设备。

17、以便于描述本发明。本发明将涵盖落入所要求保护的主题的精神和 范围内的所有修改、等效方案和替换方案。 0013 图1示出了实现示例性计算平台的系统100。系统100可以包括表示为CPU110的 处理器电路、表示为GPU120的处理器电路,以及存储器125。应用程序130可以在CPU110 的控制和监控下执行。系统100还可以包括图形驱动器140。在操作中,应用程序可以调用 图形驱动器140以呈现视频内容的帧155。然后,图形驱动器140可以处理向显示器160呈 现帧155。帧呈现可以涉及或可以不涉及GPU120。系统100可以通过外部直流电(DC)源 说 明 书CN 103959197 A 2/。

18、18页 7 170或电池电源180来供电。图形驱动器140可操作用以判断系统100是通过外部DC电源 170还是通过电池电源180来供电。系统100也可以与显示器160通信地耦合。 0014 一旦图形驱动器140判断系统100正在以电池电源180操作,图形驱动器140就 可以采取某些额外的步骤来降低系统100的工作负荷,以节省电池电量180。额外的步骤如 下文更详细地描述的,并且可以在图形驱动器140向显示器160呈现帧155之前发生。 0015 图1的系统100被示为集成到单个平台中。例如,CPU110和GPU120可以在同一 个处理器管芯上。图2示出了另一实施例,其中,CPU110和GPU。

19、120不一定在同一个处理器 管芯上。GPU120可以是,例如,与CPU110通信地耦合的单独的图形处理卡。 0016 图2的系统200类似于图1的系统100一般性地操作。一个或多个应用程序130 可以在CPU110和存储器125的控制下执行。系统200还可以包括图形驱动器140。在操 作中,应用程序130可以调用图形驱动器140以呈现视频内容的帧155。然后,图形驱动器 140可以处理向显示器160呈现帧155。帧呈现可以涉及或可以不涉及GPU120。系统200 可以通过外部直流电(DC)源170或电池电源180来供电。图形驱动器140可操作用以判 断系统100是通过外部DC电源170还是通过。

20、电池电源180来供电。系统200也可以与显 示器160通信地耦合。 0017 一旦图形驱动器140判断系统100正在以电池电源180操作,图形驱动器140就 可以采取某些额外的步骤来降低系统200的工作负荷,以节省电池电量180。额外的步骤如 下文更详细地描述的,并可以在图形驱动器140向显示器160呈现帧155之前发生。 0018 此处所包括的是一个或多个表示用于执行所公开的体系结构的新颖方面的示例 性方法的流程图。尽管出于解释简明的目的,此处例如以流程图形式示出的一个或多个方 法被示出并且描述为一系列动作,但是可以理解,各方法不受动作的次序的限制,因为根据 本发明,某些动作可以按与此处所示。

21、并描述的不同的次序和/或与其他动作同时发生。例 如,本领域的技术人员将明白并理解,方法可被替换地表示为一系列相互相关联的状态或 事件,诸如以状态图的形式。此外,并非方法中所示出的所有动作都是新颖实现所必需的。 0019 在一个实施例中,应用程序130可以调用图形驱动器140以呈现视频内容的帧 155。在处理帧呈现之前,如果用于执行帧的时间小于定义的帧执行时间,则图形驱动器140 可以将应用程序进程(例如,CPU线程)置于睡眠状态,其中定义的帧执行时间可以是最小 帧执行时间。将应用程序进程置于睡眠状态达某一时间长度可以对可以执行的最大帧每秒 (FPS)设上限(cap)。 0020 上文所描述的实。

22、施例的伪代码可以如下所示: 0021 0022 说 明 书CN 103959197 A 3/18页 8 0023 说 明 书CN 103959197 A 4/18页 9 0024 图3示出了根据本发明的各实施例的通过降低GPU125的工作负荷来节省电池电 量的逻辑流程300的一个实施例。逻辑流程300可以代表由此处所描述的一个或多个实施 例执行的某些或全部操作。 0025 在图3所示出的实施例中,在框305,CPU110可以执行应用程序130。例如,一个 或多个应用程序130可以在系统100上在CPU110的控制下执行。每一应用程序105都可 说 明 书CN 103959197 A 5/18页。

23、 10 以与图形驱动器140的实例相关联。每一应用程序130都可以生成最终旨在显示在显示器 160上的视频内容的帧155。应用程序130生成帧155的速率(例如,帧每秒或FPS)可以 是可变的,并包括定义的帧执行时间,其中定义的帧执行时间可以是最小帧执行时间。 0026 图形驱动器140可以由应用程序130调用以呈现帧155。对重新发送帧155的连 续调用之间的时间被称为帧速率,并可以用毫秒来表示。在正常工作状态下,每一应用程 序130都将根据在给定应用程序105内指定的设置来执行。例如,应用程序130可以具有 50FPS的最小帧执行速率,这对应于每帧20毫秒的帧速率执行时间。同一个应用程序1。

24、30 可以具有75FPS的最大帧执行速率,这对应于每帧大致13.33毫秒的帧速率执行时间。在 此上下文中,实施例不受限制。 0027 在框310,逻辑流程300可以判断系统100是否正在以电池电源140操作。例如, 系统100可以以电池电源180操作,或可以从外部DC电源150接收电源。外部DC电源170 可以表示系统被插入到交流电(AC)插座中。来自AC插座的电能可以穿过整流器,该整流 器将它转换为DC,供使系统100运转。当系统100接收来自外部DC电源170的电能时,功 率消耗不成问题。然而,当系统100接收来自电池180的电能时,功率消耗会成问题,因为 电池180中的电量是有限的,并随。

25、着系统100的使用而减少。图形驱动器140可以能够确 定系统100何时正在以电池电源180操作。在这样的情况下,可以实现某些功率节省技术, 以当系统100用电池供电时延长电池的寿命。在此上下文中,实施例不受限制。 0028 在框315,逻辑流程300可以计算每一毫秒的CPU时钟周期的数量。例如,CPU110 可以以指定的一(1)千兆赫(GHz)的时钟速率来操作。CPU110的1GHz速率的时钟对应于 每一毫秒一百万个时钟周期。在此上下文中,实施例不受限制。 0029 在框320,逻辑流程300可以确定最小帧速率执行时间。在上面的示例中,应用程 序130具有50FPS的最小帧速率。一秒等于100。

26、0毫秒。如此,1000毫秒/50FPS产生20毫 秒每帧,作为最小帧速率执行时间。在此上下文中,实施例不受限制。 0030 在框325,逻辑流程300可以确定前一帧的末尾处的CPU时间戳。例如,可以从上 面的框315已知每毫秒时钟周期的数量。可以通过将当前CPU计数器除以先前确定的每毫 秒时钟周期数,来确定前一帧末尾处的CPU时间戳。除法运算的结果产生表示前一帧末尾 处的CPU时间戳的以毫秒为单位的时间值。在此上下文中,实施例不受限制。 0031 在框330,逻辑流程300可以确定当前帧的末尾处的CPU时间戳。例如,可以从上 面的框315知晓每毫秒时钟周期的数量。可以通过将当前CPU计数器除以。

27、先前确定的每毫 秒时钟周期数,来确定当前帧末尾处的CPU时间戳。除法运算的结果产生表示当前帧末尾 处的CPU时间戳的以毫秒为单位的时间值。在此上下文中,实施例不受限制。 0032 在框335,逻辑流程300可以计算在前一帧的末尾和当前帧的末尾之间流逝的时 间。例如,可以从上面的框325知晓,前一帧的末尾处的CPU时间戳是以毫秒为单位的一个 值。也可以从上面的框330知晓,当前帧的末尾处的CPU时间戳是以毫秒为单位的另一值。 将在框325中获得的值减去在框330中获得的值会产生应用程序130的当前帧执行速率时 间。如果发现前一帧的时间值是110毫秒,且发现当前帧的时间值是123.33毫秒,则差将。

28、 是13.33毫秒。将此转换回当前帧速率产生75FPS。在此上下文中,实施例不受限制。 0033 在框340,逻辑流程300可以计算最小帧速率执行时间和当前帧速率执行时间之 间的时间差。例如,在框320,可能已经确定最小帧速率执行时间。在框335,可能已经确定 说 明 书CN 103959197 A 10 6/18页 11 当前帧速率执行时间。可以通过将当前帧速率执行时间减去最小帧速率执行时间,来计算 时间差。回头参考上面的示例,发现最小帧速率执行时间是20毫秒(50FPS),而发现当前帧 速率执行时间是13.33毫秒(75FPS)。如此,当前帧速率比最小帧速率更快。在此上下文 中,实施例不受。

29、限制。 0034 在框345,逻辑流程300可以判断时间差是否大于零。例如,应用程序的当前帧速 率可处于高于最小帧速率的水平。当系统100正在以电池电源180操作时,有机会通过强 制当前帧速率降低以等于最小帧速率来节省电能。当时间差大于零毫秒时,意味着,系统正 在生成比应用程序130的最小帧速率所需的更多的帧。在此上下文中,实施例不受限制。 0035 在框350,当时间差大于零时,逻辑流程300可以将与生成帧的应用程序130相关 联的CPU线程置于睡眠状态。例如,由于时间差大于零毫秒,因此系统100能够通过将帧速 率降低到由应用程序130支持的最小帧速率来降低其工作负荷。这可以通过将应用程序 。

30、130的生成帧155的CPU线程置于睡眠状态达在框340处计算出的时间差来完成。参考示 例,CPU线程可以在13.33毫秒内生成帧155,并调用图形驱动器140以呈现帧155。在正常 情况下,CPU线程将保持在活动状态,并继续工作,并生成下一帧。然而,通过将CPU线程置 于睡眠状态达6.67毫秒的时间差,CPU110在那6.67毫秒内不必工作来生成帧155。只要 时间差保持正的,CPU线程将保持在睡眠状态。一旦时间差为零,图形驱动器140就可以在 框355向显示器160呈现帧。净结果是,在此示例中,CPU线程可以被置于睡眠状态达50 的时间,以强制75FPS的当前帧速率降至50FPS的最小帧速。

31、率,由此,节省电能,并延长电池 180的寿命。该示例中所使用的数量是说明性的,对于不同的系统100或应用程序130,可 以不同。在此上下文中,实施例不受限制。 0036 在另一个实施例中,应用程序130可以调用图形驱动器140以呈现帧155。在处理 帧呈现之前,图形驱动器140可以将应用程序进程(例如,CPU线程)置于睡眠状态达总的 帧执行时间的固定百分比。将应用程序进程置于睡眠状态达某一时间段可以将可以执行的 最大帧每秒(FPS)降低固定百分比。 0037 上文所描述的实施例的伪代码可以如下所示: 0038 说 明 书CN 103959197 A 11 7/18页 12 0039 说 明 书。

32、CN 103959197 A 12 8/18页 13 0040 图4示出了根据本发明的各实施例的通过降低GPU125的工作负荷来节省电池电 量的逻辑流程400的一个实施例。 0041 逻辑流程400可以代表由此处所描述的一个或多个实施例执行的某些或全部操 作。 0042 在图4所示出的实施例中,在框405,CPU110可以执行应用程序130。例如,一个 或多个应用程序130可以在系统100上在CPU110的控制下执行。每一应用程序105都可 以与图形驱动器140的实例相关联。每一应用程序130都可以生成最终旨在显示在显示器 160上的视频内容的帧155。应用程序130生成帧155的速率(例如,。

33、帧每秒或FPS)可以 是可变的,并包括定义的帧执行时间,其中定义的帧执行时间可以是最小帧执行时间。 0043 图形驱动器140可以由应用程序130调用以呈现帧155。对重新发送帧155的连 续调用之间的时间被称为帧速率,并可以用毫秒来表示。在正常工作状态下,每一应用程 序130都将根据在给定应用程序105内指定的设置来执行。例如,应用程序130可以具有 50FPS的最小帧执行速率,这对应于每帧20毫秒的帧速率执行时间。同一个应用程序130 可以具有75FPS的最大帧执行速率,这对应于每帧大致13.33毫秒的帧速率执行时间。在 此上下文中,实施例不受限制。 0044 在框410,逻辑流程400可。

34、以判断系统100是否正在以电池电源140操作。例如, 系统100可以以电池电源180操作,或可以从外部DC电源150接收电源。外部DC电源170 可以表示系统被插入到交流电(AC)插座中。来自AC插座的电能可以穿过整流器,该整流 器将它转换为DC,供使系统100运转。当系统100接收来自外部DC电源170的电能时,功 率消耗不成问题。然而,当系统100接收来自电池180的电能时,功率消耗会成问题,因为 电池180中的电量是有限的,并随着系统100的使用而减少。图形驱动器140可以能够确 定系统100何时正在以电池电源180操作。在这样的情况下,可以实现某些节电技术,以当 系统100用电池供电时。

35、延长电池的寿命。在此上下文中,实施例不受限制。 0045 在框415,逻辑流程400可以计算每一毫秒的CPU时钟周期的数量。例如,CPU110 说 明 书CN 103959197 A 13 9/18页 14 可以以指定的一(1)千兆赫(GHz)的时钟速率来操作。CPU110的1GHz速率的时钟对应于 每一毫秒一百万的时钟周期。在此上下文中,实施例不受限制。 0046 在框420,逻辑流程400可以确定最小帧速率执行时间。在上面的示例中,应用程 序130具有50FPS的最小帧速率。一秒等于1000毫秒。如此,1000毫秒/50FPS产生20毫 秒每帧,作为最小帧速率执行时间。在此上下文中,实施例。

36、不受限制。 0047 在框425,逻辑流程400可以确定前一帧的末尾处的CPU时间戳。例如,可以从上 面的框415知晓每毫秒时钟周期的数量。可以通过将当前CPU计数器除以先前确定的每毫 秒时钟周期数,来确定前一帧末尾处的CPU时间戳。除法运算的结果产生表示前一帧末尾 处的CPU时间戳的以毫秒为单位的时间值。在此上下文中,实施例不受限制。 0048 在框430,逻辑流程400可以确定当前帧的末尾处的CPU时间戳。例如,可以从上 面的框415知晓每毫秒时钟周期的数量。可以通过将当前CPU计数器除以先前确定的每毫 秒时钟周期数,来确定当前帧末尾处的CPU时间戳。除法运算的结果产生表示当前帧末尾 处的。

37、CPU时间戳的以毫秒为单位的时间值。在此上下文中,实施例不受限制。 0049 在框435,逻辑流程400可以计算在前一帧的末尾和当前帧的末尾之间流逝的时 间。例如,可以从上面的框425知晓,前一帧的末尾处的CPU时间戳是以毫秒为单位的一个 值。也可以从上面的框430知晓,当前帧的末尾处的CPU时间戳是以毫秒为单位的另一值。 将在框425中获得的值减去在框430中获得的值会产生应用程序130的当前帧执行速率时 间。如果发现前一帧的时间值是110毫秒,且发现当前帧的时间值是123.33毫秒,则差将 是13.33毫秒。将此转换回当前帧速率产生75FPS。在此上下文中,实施例不受限制。 0050 在框。

38、440,逻辑流程400可以确定缩短的帧速率执行时间。例如,可以基于在框435 计算出的当前帧速率的百分比,确定缩短的帧速率执行时间。如果当前帧速率是75FPS,并 且最小帧速率是50FPS,那么,应用程序可以支持在50和75FPS之间的帧速率。由于系统 100正在以电池电源180操作,因此,帧速率的降低可以节省电能。例如,当前帧速率的20 的降低会将帧速率降低到60FPS。60FPS对应于每16.67毫秒一个帧。在此上下文中,实施 例不受限制。 0051 在框445,逻辑流程400可以计算缩短的帧速率执行时间和当前帧速率执行时间 之间的时间差。例如,在框440,可能已经确定缩短的帧速率执行时间。

39、。在框435,可能已经 确定当前帧速率执行时间。可以通过将当前帧速率执行时间减去缩短的帧速率执行时间, 来计算时间差。回头参考上面的示例,发现缩短的帧速率执行时间是16.67毫秒(60FPS), 而发现当前帧速率执行时间是13.33毫秒(75FPS)。如此,当前帧速率比最小帧速率更快。 在此上下文中,实施例不受限制。 0052 在框450,逻辑流程400可以判断时间差是否大于零。例如,应用程序的当前帧速 率可处于高于最小帧速率的水平。当系统100正在以电池电源180操作时,有机会通过强 制当前帧速率降低以等于最小帧速率来节省电能。当时间差大于零毫秒时,意味着,系统正 在生成比应用程序130的最。

40、小帧速率所需的更多的帧。在此上下文中,实施例不受限制。 0053 在框455,当时间差大于零时,逻辑流程400可以将与生成帧的应用程序130相关 联的CPU线程置于睡眠状态。例如,由于时间差大于零毫秒,因此系统100能够通过将帧速 率降低到由应用程序130支持的最小帧速率来降低其工作负荷。这可以通过将应用程序 130的生成帧155的CPU线程置于睡眠状态达在框440计算出的时间差来完成。参考示例, 说 明 书CN 103959197 A 14 10/18页 15 CPU线程可以在13.33毫秒内生成帧155,并调用图形驱动器140以呈现帧155。在正常情 况下,CPU线程将保持在活动状态,并继。

41、续工作,并生成下一帧。然而,通过将CPU线程置于 睡眠状态达3.34毫秒的时间差,CPU110在那3.34毫秒内不必工作来生成帧155。只要时 间差保持正的,CPU线程将保持在睡眠状态。一旦时间差为零,图形驱动器140就可以在框 460向显示器160呈现帧。净结果是,在此示例中,CPU线程可以被置于睡眠状态达25的 时间,以强制75FPS的当前帧速率降至60FPS的降低的帧速率,由此,节省电能,并延长电池 180的寿命。该示例中所使用的数量是说明性的,对于不同的系统100或应用程序130,可 以不同。在此上下文中,实施例不受限制。 0054 在另一个实施例中,应用程序130可以调用图形驱动器1。

42、40以呈现帧155。在处理 帧呈现之前,图形驱动器140可以将应用程序进程(例如,CPU线程)置于睡眠状态达总的 帧执行时间的某一百分比。百分比可以基于剩余电池电量180。将应用程序进程置于睡眠 状态达某一时间段可以降低可以执行的最大帧每秒(FPS)。 0055 上文所描述的实施例的伪代码可以如下所示: 0056 0057 说 明 书CN 103959197 A 15 11/18页 16 0058 说 明 书CN 103959197 A 16 12/18页 17 0059 图5示出了根据本发明的各实施例的通过降低GPU125的工作负荷来节省电池电 量的逻辑流程500的一个实施例。逻辑流程500。

43、可以代表由此处所描述的一个或多个实施 例执行的某些或全部操作。 0060 在图5所示出的实施例中,在框505,CPU110可以执行应用程序130。例如,一个 或多个应用程序130可以在系统100上在CPU110的控制下执行。每一应用程序105都可 以与图形驱动器140的实例相关联。每一应用程序130都可以生成最终旨在显示在显示器 160上的视频内容的帧155。应用程序130生成帧155的速率(例如,帧每秒或FPS)可以 是可变的,并包括定义的帧执行时间,其中定义的帧执行时间可以是最小帧执行时间。 0061 图形驱动器140可以由应用程序130调用以呈现帧155。对重新发送的帧155的 连续调用。

44、之间的时间被称为帧速率,并可以用毫秒来表示。在正常工作状态下,每一应用程 序130都将根据在给定应用程序105内指定的设置来执行。例如,应用程序130可以具有 50FPS的最小帧执行速率,这对应于每帧20毫秒的帧速率执行时间。同一个应用程序130 可以具有75FPS的最大帧执行速率,这对应于每帧大致13.33毫秒的帧速率执行时间。在 此上下文中,实施例不受限制。 0062 在框510,逻辑流程500可以判断系统100是否正在以电池电源140操作。例如, 系统100可以以电池电源180操作,或可以从外部直流电源150接收电源。外部DC电源 170可以表示系统被插入到交流电(AC)插座中。来自AC。

45、插座的电能可以穿过整流器,该整 流器将它转换为DC,供使系统100运转。当系统100接收来自外部DC电源170的电能时, 功率消耗不成问题。然而,当系统100接收来自电池180的电能时,功率消耗会成问题,因 为电池180中的电量是有限的,并随着系统100的使用而减少。图形驱动器140可以能够 确定系统100何时正在以电池电源180操作。在这样的情况下,可以实现某些节电技术,以 当系统100用电池供电时延长电池的寿命。在此上下文中,实施例不受限制。 0063 在框515,逻辑流程500可以计算每一毫秒的CPU时钟周期的数量。例如,CPU110 可以以指定的一(1)千兆赫(GHz)的时钟速率来操作。

46、。CPU110的1GHz速率的时钟对应于 每一毫秒一百万的时钟周期。在此上下文中,实施例不受限制。 0064 在框520,逻辑流程500可以确定最小帧速率执行时间。在上面的示例中,应用程 序130具有50FPS的最小帧速率。一秒等于1000毫秒。如此,1000毫秒/50FPS产生20毫 秒每帧,作为最小帧速率执行时间。在此上下文中,实施例不受限制。 0065 在框525,逻辑流程500可以确定前一帧的末尾处的CPU时间戳。例如,可以从上 说 明 书CN 103959197 A 17 13/18页 18 面的框515知晓每毫秒时钟周期的数量。可以通过将当前CPU计数器除以先前确定的每毫 秒时钟周。

47、期数,来确定前一帧末尾处的CPU时间戳。除法运算的结果产生表示前一帧末尾 处的CPU时间戳的以毫秒为单位的时间值。在此上下文中,实施例不受限制。 0066 在框530,逻辑流程500可以确定当前帧的末尾处的CPU时间戳。例如,可以从上 面的框515知晓每毫秒时钟周期的数量。可以通过将当前CPU计数器除以先前确定的每毫 秒时钟周期数,来确定当前帧末尾处的CPU时间戳。除法运算的结果产生表示当前帧末尾 处的CPU时间戳的以毫秒为单位的时间值。在此上下文中,实施例不受限制。 0067 在框535,逻辑流程500可以计算在前一帧的末尾和当前帧的末尾之间流逝的时 间。例如,可以从上面的框525知晓,前一。

48、帧的末尾处的CPU时间戳是以毫秒为单位的一个 值。也可以从上面的框530知晓,当前帧的末尾处的CPU时间戳是以毫秒为单位的另一值。 将在框525中获得的值减去在框530中获得的值会产生应用程序130的当前帧执行速率时 间。如果发现前一帧的时间值是110毫秒,且发现当前帧的时间值是123.33毫秒,则差将 是13.33毫秒。将此转换回当前帧速率产生75FPS。在此上下文中,实施例不受限制。 0068 在框540,逻辑流程500可以根据剩余电池电量180来确定缩短的帧速率执行时 间。例如,可以基于在框535计算出的当前帧速率的百分比,确定缩短的帧速率执行时间。 如果当前帧速率是75FPS,并且最小。

49、帧速率是50FPS,那么,应用程序可以支持在50和75FPS 之间的帧速率。由于系统100正在以电池电源180操作,因此,帧速率的降低可以节省电能。 例如,当前帧速率的20的降低会将帧速率降低到60FPS。六十(60)FPS对应于每隔16.67 毫秒一个帧。 0069 确定何时以及降低帧速率多少可以是电池电量180剩余多少的函数。图形驱动器 140可以能够确定在任何给定时刻剩余的电池电量180的百分比。此信息可以被用来确定 如何积极地降低帧速率。例如,图形驱动器140可以被编程为当电池电量180的百分比降 至第一阈值水平(例如,75)以下时第一次降低当前帧速率(例如,75FPS到60FPS)。另 外,当电池电量180的百分比降至第二阈值水平(例如,40)以下时,可以进一步降低帧 速率(例如,60FPS到50FPS)。在此上下文中,实施例不受限制。 0070 在框545,逻辑流程500可以计算缩短的帧速率执行时间和当前帧速率执行时间 之间的时间差。例如,在框540,可能已经确定缩短的帧速率执。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1