CN103959197A - 降低3d工作负荷的功率 - Google Patents

降低3d工作负荷的功率 Download PDF

Info

Publication number
CN103959197A
CN103959197A CN201180075158.XA CN201180075158A CN103959197A CN 103959197 A CN103959197 A CN 103959197A CN 201180075158 A CN201180075158 A CN 201180075158A CN 103959197 A CN103959197 A CN 103959197A
Authority
CN
China
Prior art keywords
frame
time
execution time
frame rate
application program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201180075158.XA
Other languages
English (en)
Other versions
CN103959197B (zh
Inventor
M·阿波达卡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN103959197A publication Critical patent/CN103959197A/zh
Application granted granted Critical
Publication of CN103959197B publication Critical patent/CN103959197B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3265Power saving in display device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Power Sources (AREA)

Abstract

此处呈现了可以降低负责向显示器提供由在***内执行的应用程序所生成的视频数据的帧的***的工作负荷的各实施例。在***内执行的应用程序可以以被称为帧每秒(FPS)的指定的帧速率生成视频内容的新帧。CPU和/或GPU可以负责以指定的FPS实际生成帧。然后,这些帧被提供给与***通信地耦合的显示器,供呈现。降低帧速率(FPS)可以降低由***执行的工作量,因为在给定时间段内可以生成较少的帧。当***正在以电池电源操作时,这可能特别有利,因为可以延长电池的寿命。

Description

降低3D工作负荷的功率
背景
计算平台一般能够以直接电源操作或当直接电源不可用时以电池电源来操作。电池电源天然地是有限的资源,必须周期性地再充电。为用于当以电池电源操作时延长计算平台的操作时间的方法和技术花费了大量的心思。许多计算平台在整个***内使用中央处理单元(CPU)和图形处理单元(GPU)。一种用于降低整个***的功率消耗并延长电池寿命的技术是当以电池电源操作时降低CPU和GPU操作的频率。此技术不一定会减少由CPU或GPU执行的工作量——相反地,它减慢工作被执行的速度。另一种方法可以是降低与在CPU或GPU上执行的应用程序相关联的实际工作负荷。相应地,需要改善的技术来解决这些及其他问题。
附图简述
图1示出了适用于实现本发明的各实施例的体系结构的框图。
图2示出了适用于实现本发明的各实施例的体系结构的另一框图。
图3示出了逻辑流程的一个实施例。
图4示出了逻辑流程的一个实施例。
图5示出了逻辑流程的一个实施例。
图6示出了可以适用于实现本发明的各实施例的***的实施例。
图7示出了其中可以实现图6的***的小形状因子设备的各实施例。
具体实施方式
此处呈现了可以降低负责向显示器提供由在***或计算平台内执行的应用程序所生成的视频数据的帧的***的工作负荷的各实施例。在***内执行的应用程序可以以被称为帧每秒(frames per second:FPS)的定义的帧速率生成视频内容的新帧。应用程序可以能够支持多个定义的帧速率。CPU和/或GPU可以负责以指定的FPS实际生成帧。然后,这些帧被提供给与***通信地耦合的显示器,供呈现。降低帧速率(FPS)可以降低由***执行的工作量,因为在给定时间段内可以生成更少的帧。当***正在以电池电源操作时,这可能特别有利,因为可以延长电池的寿命。
现在将参考附图,全部附图中相同的参考编号用于表示相同的元件。在下面的描述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理解。然而,显而易见,可以没有这些具体细节的情况下实施各新颖实施方式。在其他情况下,以框图形式示出了各个公知的结构和设备以便于描述本发明。本发明将涵盖落入所要求保护的主题的精神和范围内的所有修改、等效方案和替换方案。
图1示出了实现示例性计算平台的***100。***100可以包括表示为CPU110的处理器电路、表示为GPU120的处理器电路,以及存储器125。应用程序130可以在CPU110的控制和监控下执行。***100还可以包括图形驱动器140。在操作中,应用程序可以调用图形驱动器140以呈现视频内容的帧155。然后,图形驱动器140可以处理向显示器160呈现帧155。帧呈现可以涉及或可以不涉及GPU120。***100可以通过外部直流电(DC)源170或电池电源180来供电。图形驱动器140可操作用以判断***100是通过外部DC电源170还是通过电池电源180来供电。***100也可以与显示器160通信地耦合。
一旦图形驱动器140判断***100正在以电池电源180操作,图形驱动器140就可以采取某些额外的步骤来降低***100的工作负荷,以节省电池电量180。额外的步骤如下文更详细地描述的,并且可以在图形驱动器140向显示器160呈现帧155之前发生。
图1的***100被示为集成到单个平台中。例如,CPU110和GPU120可以在同一个处理器管芯上。图2示出了另一实施例,其中,CPU110和GPU120不一定在同一个处理器管芯上。GPU120可以是,例如,与CPU110通信地耦合的单独的图形处理卡。
图2的***200类似于图1的***100一般性地操作。一个或多个应用程序130可以在CPU110和存储器125的控制下执行。***200还可以包括图形驱动器140。在操作中,应用程序130可以调用图形驱动器140以呈现视频内容的帧155。然后,图形驱动器140可以处理向显示器160呈现帧155。帧呈现可以涉及或可以不涉及GPU120。***200可以通过外部直流电(DC)源170或电池电源180来供电。图形驱动器140可操作用以判断***100是通过外部DC电源170还是通过电池电源180来供电。***200也可以与显示器160通信地耦合。
一旦图形驱动器140判断***100正在以电池电源180操作,图形驱动器140就可以采取某些额外的步骤来降低***200的工作负荷,以节省电池电量180。额外的步骤如下文更详细地描述的,并可以在图形驱动器140向显示器160呈现帧155之前发生。
此处所包括的是一个或多个表示用于执行所公开的体系结构的新颖方面的示例性方法的流程图。尽管出于解释简明的目的,此处例如以流程图形式示出的一个或多个方法被示出并且描述为一系列动作,但是可以理解,各方法不受动作的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其他动作同时发生。例如,本领域的技术人员将明白并理解,方法可被替换地表示为一系列相互相关联的状态或事件,诸如以状态图的形式。此外,并非方法中所示出的所有动作都是新颖实现所必需的。
在一个实施例中,应用程序130可以调用图形驱动器140以呈现视频内容的帧155。在处理帧呈现之前,如果用于执行帧的时间小于定义的帧执行时间,则图形驱动器140可以将应用程序进程(例如,CPU线程)置于睡眠状态,其中定义的帧执行时间可以是最小帧执行时间。将应用程序进程置于睡眠状态达某一时间长度可以对可以执行的最大帧每秒(FPS)设上限(cap)。
上文所描述的实施例的伪代码可以如下所示:
图3示出了根据本发明的各实施例的通过降低GPU125的工作负荷来节省电池电量的逻辑流程300的一个实施例。逻辑流程300可以代表由此处所描述的一个或多个实施例执行的某些或全部操作。
在图3所示出的实施例中,在框305,CPU110可以执行应用程序130。例如,一个或多个应用程序130可以在***100上在CPU110的控制下执行。每一应用程序105都可以与图形驱动器140的实例相关联。每一应用程序130都可以生成最终旨在显示在显示器160上的视频内容的帧155。应用程序130生成帧155的速率(例如,帧每秒或FPS)可以是可变的,并包括定义的帧执行时间,其中定义的帧执行时间可以是最小帧执行时间。
图形驱动器140可以由应用程序130调用以呈现帧155。对重新发送帧155的连续调用之间的时间被称为帧速率,并可以用毫秒来表示。在正常工作状态下,每一应用程序130都将根据在给定应用程序105内指定的设置来执行。例如,应用程序130可以具有50FPS的最小帧执行速率,这对应于每帧20毫秒的帧速率执行时间。同一个应用程序130可以具有75FPS的最大帧执行速率,这对应于每帧大致13.33毫秒的帧速率执行时间。在此上下文中,实施例不受限制。
在框310,逻辑流程300可以判断***100是否正在以电池电源140操作。例如,***100可以以电池电源180操作,或可以从外部DC电源150接收电源。外部DC电源170可以表示***被***到交流电(AC)插座中。来自AC插座的电能可以穿过整流器,该整流器将它转换为DC,供使***100运转。当***100接收来自外部DC电源170的电能时,功率消耗不成问题。然而,当***100接收来自电池180的电能时,功率消耗会成问题,因为电池180中的电量是有限的,并随着***100的使用而减少。图形驱动器140可以能够确定***100何时正在以电池电源180操作。在这样的情况下,可以实现某些功率节省技术,以当***100用电池供电时延长电池的寿命。在此上下文中,实施例不受限制。
在框315,逻辑流程300可以计算每一毫秒的CPU时钟周期的数量。例如,CPU110可以以指定的一(1)千兆赫(GHz)的时钟速率来操作。CPU110的1GHz速率的时钟对应于每一毫秒一百万个时钟周期。在此上下文中,实施例不受限制。
在框320,逻辑流程300可以确定最小帧速率执行时间。在上面的示例中,应用程序130具有50FPS的最小帧速率。一秒等于1000毫秒。如此,1000毫秒/50FPS产生20毫秒每帧,作为最小帧速率执行时间。在此上下文中,实施例不受限制。
在框325,逻辑流程300可以确定前一帧的末尾处的CPU时间戳。例如,可以从上面的框315已知每毫秒时钟周期的数量。可以通过将当前CPU计数器除以先前确定的每毫秒时钟周期数,来确定前一帧末尾处的CPU时间戳。除法运算的结果产生表示前一帧末尾处的CPU时间戳的以毫秒为单位的时间值。在此上下文中,实施例不受限制。
在框330,逻辑流程300可以确定当前帧的末尾处的CPU时间戳。例如,可以从上面的框315知晓每毫秒时钟周期的数量。可以通过将当前CPU计数器除以先前确定的每毫秒时钟周期数,来确定当前帧末尾处的CPU时间戳。除法运算的结果产生表示当前帧末尾处的CPU时间戳的以毫秒为单位的时间值。在此上下文中,实施例不受限制。
在框335,逻辑流程300可以计算在前一帧的末尾和当前帧的末尾之间流逝的时间。例如,可以从上面的框325知晓,前一帧的末尾处的CPU时间戳是以毫秒为单位的一个值。也可以从上面的框330知晓,当前帧的末尾处的CPU时间戳是以毫秒为单位的另一值。将在框325中获得的值减去在框330中获得的值会产生应用程序130的当前帧执行速率时间。如果发现前一帧的时间值是110毫秒,且发现当前帧的时间值是123.33毫秒,则差将是13.33毫秒。将此转换回当前帧速率产生75FPS。在此上下文中,实施例不受限制。
在框340,逻辑流程300可以计算最小帧速率执行时间和当前帧速率执行时间之间的时间差。例如,在框320,可能已经确定最小帧速率执行时间。在框335,可能已经确定当前帧速率执行时间。可以通过将当前帧速率执行时间减去最小帧速率执行时间,来计算时间差。回头参考上面的示例,发现最小帧速率执行时间是20毫秒(50FPS),而发现当前帧速率执行时间是13.33毫秒(75FPS)。如此,当前帧速率比最小帧速率更快。在此上下文中,实施例不受限制。
在框345,逻辑流程300可以判断时间差是否大于零。例如,应用程序的当前帧速率可处于高于最小帧速率的水平。当***100正在以电池电源180操作时,有机会通过强制当前帧速率降低以等于最小帧速率来节省电能。当时间差大于零毫秒时,意味着,***正在生成比应用程序130的最小帧速率所需的更多的帧。在此上下文中,实施例不受限制。
在框350,当时间差大于零时,逻辑流程300可以将与生成帧的应用程序130相关联的CPU线程置于睡眠状态。例如,由于时间差大于零毫秒,因此***100能够通过将帧速率降低到由应用程序130支持的最小帧速率来降低其工作负荷。这可以通过将应用程序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的最小帧速率,由此,节省电能,并延长电池180的寿命。该示例中所使用的数量是说明性的,对于不同的***100或应用程序130,可以不同。在此上下文中,实施例不受限制。
在另一个实施例中,应用程序130可以调用图形驱动器140以呈现帧155。在处理帧呈现之前,图形驱动器140可以将应用程序进程(例如,CPU线程)置于睡眠状态达总的帧执行时间的固定百分比。将应用程序进程置于睡眠状态达某一时间段可以将可以执行的最大帧每秒(FPS)降低固定百分比。
上文所描述的实施例的伪代码可以如下所示:
图4示出了根据本发明的各实施例的通过降低GPU125的工作负荷来节省电池电量的逻辑流程400的一个实施例。
逻辑流程400可以代表由此处所描述的一个或多个实施例执行的某些或全部操作。
在图4所示出的实施例中,在框405,CPU110可以执行应用程序130。例如,一个或多个应用程序130可以在***100上在CPU110的控制下执行。每一应用程序105都可以与图形驱动器140的实例相关联。每一应用程序130都可以生成最终旨在显示在显示器160上的视频内容的帧155。应用程序130生成帧155的速率(例如,帧每秒或FPS)可以是可变的,并包括定义的帧执行时间,其中定义的帧执行时间可以是最小帧执行时间。
图形驱动器140可以由应用程序130调用以呈现帧155。对重新发送帧155的连续调用之间的时间被称为帧速率,并可以用毫秒来表示。在正常工作状态下,每一应用程序130都将根据在给定应用程序105内指定的设置来执行。例如,应用程序130可以具有50FPS的最小帧执行速率,这对应于每帧20毫秒的帧速率执行时间。同一个应用程序130可以具有75FPS的最大帧执行速率,这对应于每帧大致13.33毫秒的帧速率执行时间。在此上下文中,实施例不受限制。
在框410,逻辑流程400可以判断***100是否正在以电池电源140操作。例如,***100可以以电池电源180操作,或可以从外部DC电源150接收电源。外部DC电源170可以表示***被***到交流电(AC)插座中。来自AC插座的电能可以穿过整流器,该整流器将它转换为DC,供使***100运转。当***100接收来自外部DC电源170的电能时,功率消耗不成问题。然而,当***100接收来自电池180的电能时,功率消耗会成问题,因为电池180中的电量是有限的,并随着***100的使用而减少。图形驱动器140可以能够确定***100何时正在以电池电源180操作。在这样的情况下,可以实现某些节电技术,以当***100用电池供电时延长电池的寿命。在此上下文中,实施例不受限制。
在框415,逻辑流程400可以计算每一毫秒的CPU时钟周期的数量。例如,CPU110可以以指定的一(1)千兆赫(GHz)的时钟速率来操作。CPU110的1GHz速率的时钟对应于每一毫秒一百万的时钟周期。在此上下文中,实施例不受限制。
在框420,逻辑流程400可以确定最小帧速率执行时间。在上面的示例中,应用程序130具有50FPS的最小帧速率。一秒等于1000毫秒。如此,1000毫秒/50FPS产生20毫秒每帧,作为最小帧速率执行时间。在此上下文中,实施例不受限制。
在框425,逻辑流程400可以确定前一帧的末尾处的CPU时间戳。例如,可以从上面的框415知晓每毫秒时钟周期的数量。可以通过将当前CPU计数器除以先前确定的每毫秒时钟周期数,来确定前一帧末尾处的CPU时间戳。除法运算的结果产生表示前一帧末尾处的CPU时间戳的以毫秒为单位的时间值。在此上下文中,实施例不受限制。
在框430,逻辑流程400可以确定当前帧的末尾处的CPU时间戳。例如,可以从上面的框415知晓每毫秒时钟周期的数量。可以通过将当前CPU计数器除以先前确定的每毫秒时钟周期数,来确定当前帧末尾处的CPU时间戳。除法运算的结果产生表示当前帧末尾处的CPU时间戳的以毫秒为单位的时间值。在此上下文中,实施例不受限制。
在框435,逻辑流程400可以计算在前一帧的末尾和当前帧的末尾之间流逝的时间。例如,可以从上面的框425知晓,前一帧的末尾处的CPU时间戳是以毫秒为单位的一个值。也可以从上面的框430知晓,当前帧的末尾处的CPU时间戳是以毫秒为单位的另一值。将在框425中获得的值减去在框430中获得的值会产生应用程序130的当前帧执行速率时间。如果发现前一帧的时间值是110毫秒,且发现当前帧的时间值是123.33毫秒,则差将是13.33毫秒。将此转换回当前帧速率产生75FPS。在此上下文中,实施例不受限制。
在框440,逻辑流程400可以确定缩短的帧速率执行时间。例如,可以基于在框435计算出的当前帧速率的百分比,确定缩短的帧速率执行时间。如果当前帧速率是75FPS,并且最小帧速率是50FPS,那么,应用程序可以支持在50和75FPS之间的帧速率。由于***100正在以电池电源180操作,因此,帧速率的降低可以节省电能。例如,当前帧速率的20%的降低会将帧速率降低到60FPS。60FPS对应于每16.67毫秒一个帧。在此上下文中,实施例不受限制。
在框445,逻辑流程400可以计算缩短的帧速率执行时间和当前帧速率执行时间之间的时间差。例如,在框440,可能已经确定缩短的帧速率执行时间。在框435,可能已经确定当前帧速率执行时间。可以通过将当前帧速率执行时间减去缩短的帧速率执行时间,来计算时间差。回头参考上面的示例,发现缩短的帧速率执行时间是16.67毫秒(60FPS),而发现当前帧速率执行时间是13.33毫秒(75FPS)。如此,当前帧速率比最小帧速率更快。在此上下文中,实施例不受限制。
在框450,逻辑流程400可以判断时间差是否大于零。例如,应用程序的当前帧速率可处于高于最小帧速率的水平。当***100正在以电池电源180操作时,有机会通过强制当前帧速率降低以等于最小帧速率来节省电能。当时间差大于零毫秒时,意味着,***正在生成比应用程序130的最小帧速率所需的更多的帧。在此上下文中,实施例不受限制。
在框455,当时间差大于零时,逻辑流程400可以将与生成帧的应用程序130相关联的CPU线程置于睡眠状态。例如,由于时间差大于零毫秒,因此***100能够通过将帧速率降低到由应用程序130支持的最小帧速率来降低其工作负荷。这可以通过将应用程序130的生成帧155的CPU线程置于睡眠状态达在框440计算出的时间差来完成。参考示例,CPU线程可以在13.33毫秒内生成帧155,并调用图形驱动器140以呈现帧155。在正常情况下,CPU线程将保持在活动状态,并继续工作,并生成下一帧。然而,通过将CPU线程置于睡眠状态达3.34毫秒的时间差,CPU110在那3.34毫秒内不必工作来生成帧155。只要时间差保持正的,CPU线程将保持在睡眠状态。一旦时间差为零,图形驱动器140就可以在框460向显示器160呈现帧。净结果是,在此示例中,CPU线程可以被置于睡眠状态达25%的时间,以强制75FPS的当前帧速率降至60FPS的降低的帧速率,由此,节省电能,并延长电池180的寿命。该示例中所使用的数量是说明性的,对于不同的***100或应用程序130,可以不同。在此上下文中,实施例不受限制。
在另一个实施例中,应用程序130可以调用图形驱动器140以呈现帧155。在处理帧呈现之前,图形驱动器140可以将应用程序进程(例如,CPU线程)置于睡眠状态达总的帧执行时间的某一百分比。百分比可以基于剩余电池电量180。将应用程序进程置于睡眠状态达某一时间段可以降低可以执行的最大帧每秒(FPS)。
上文所描述的实施例的伪代码可以如下所示:
图5示出了根据本发明的各实施例的通过降低GPU125的工作负荷来节省电池电量的逻辑流程500的一个实施例。逻辑流程500可以代表由此处所描述的一个或多个实施例执行的某些或全部操作。
在图5所示出的实施例中,在框505,CPU110可以执行应用程序130。例如,一个或多个应用程序130可以在***100上在CPU110的控制下执行。每一应用程序105都可以与图形驱动器140的实例相关联。每一应用程序130都可以生成最终旨在显示在显示器160上的视频内容的帧155。应用程序130生成帧155的速率(例如,帧每秒或FPS)可以是可变的,并包括定义的帧执行时间,其中定义的帧执行时间可以是最小帧执行时间。
图形驱动器140可以由应用程序130调用以呈现帧155。对重新发送的帧155的连续调用之间的时间被称为帧速率,并可以用毫秒来表示。在正常工作状态下,每一应用程序130都将根据在给定应用程序105内指定的设置来执行。例如,应用程序130可以具有50FPS的最小帧执行速率,这对应于每帧20毫秒的帧速率执行时间。同一个应用程序130可以具有75FPS的最大帧执行速率,这对应于每帧大致13.33毫秒的帧速率执行时间。在此上下文中,实施例不受限制。
在框510,逻辑流程500可以判断***100是否正在以电池电源140操作。例如,***100可以以电池电源180操作,或可以从外部直流电源150接收电源。外部DC电源170可以表示***被***到交流电(AC)插座中。来自AC插座的电能可以穿过整流器,该整流器将它转换为DC,供使***100运转。当***100接收来自外部DC电源170的电能时,功率消耗不成问题。然而,当***100接收来自电池180的电能时,功率消耗会成问题,因为电池180中的电量是有限的,并随着***100的使用而减少。图形驱动器140可以能够确定***100何时正在以电池电源180操作。在这样的情况下,可以实现某些节电技术,以当***100用电池供电时延长电池的寿命。在此上下文中,实施例不受限制。
在框515,逻辑流程500可以计算每一毫秒的CPU时钟周期的数量。例如,CPU110可以以指定的一(1)千兆赫(GHz)的时钟速率来操作。CPU110的1GHz速率的时钟对应于每一毫秒一百万的时钟周期。在此上下文中,实施例不受限制。
在框520,逻辑流程500可以确定最小帧速率执行时间。在上面的示例中,应用程序130具有50FPS的最小帧速率。一秒等于1000毫秒。如此,1000毫秒/50FPS产生20毫秒每帧,作为最小帧速率执行时间。在此上下文中,实施例不受限制。
在框525,逻辑流程500可以确定前一帧的末尾处的CPU时间戳。例如,可以从上面的框515知晓每毫秒时钟周期的数量。可以通过将当前CPU计数器除以先前确定的每毫秒时钟周期数,来确定前一帧末尾处的CPU时间戳。除法运算的结果产生表示前一帧末尾处的CPU时间戳的以毫秒为单位的时间值。在此上下文中,实施例不受限制。
在框530,逻辑流程500可以确定当前帧的末尾处的CPU时间戳。例如,可以从上面的框515知晓每毫秒时钟周期的数量。可以通过将当前CPU计数器除以先前确定的每毫秒时钟周期数,来确定当前帧末尾处的CPU时间戳。除法运算的结果产生表示当前帧末尾处的CPU时间戳的以毫秒为单位的时间值。在此上下文中,实施例不受限制。
在框535,逻辑流程500可以计算在前一帧的末尾和当前帧的末尾之间流逝的时间。例如,可以从上面的框525知晓,前一帧的末尾处的CPU时间戳是以毫秒为单位的一个值。也可以从上面的框530知晓,当前帧的末尾处的CPU时间戳是以毫秒为单位的另一值。将在框525中获得的值减去在框530中获得的值会产生应用程序130的当前帧执行速率时间。如果发现前一帧的时间值是110毫秒,且发现当前帧的时间值是123.33毫秒,则差将是13.33毫秒。将此转换回当前帧速率产生75FPS。在此上下文中,实施例不受限制。
在框540,逻辑流程500可以根据剩余电池电量180来确定缩短的帧速率执行时间。例如,可以基于在框535计算出的当前帧速率的百分比,确定缩短的帧速率执行时间。如果当前帧速率是75FPS,并且最小帧速率是50FPS,那么,应用程序可以支持在50和75FPS之间的帧速率。由于***100正在以电池电源180操作,因此,帧速率的降低可以节省电能。例如,当前帧速率的20%的降低会将帧速率降低到60FPS。六十(60)FPS对应于每隔16.67毫秒一个帧。
确定何时以及降低帧速率多少可以是电池电量180剩余多少的函数。图形驱动器140可以能够确定在任何给定时刻剩余的电池电量180的百分比。此信息可以被用来确定如何积极地降低帧速率。例如,图形驱动器140可以被编程为当电池电量180的百分比降至第一阈值水平(例如,75%)以下时第一次降低当前帧速率(例如,75FPS到60FPS)。另外,当电池电量180的百分比降至第二阈值水平(例如,40%)以下时,可以进一步降低帧速率(例如,60FPS到50FPS)。在此上下文中,实施例不受限制。
在框545,逻辑流程500可以计算缩短的帧速率执行时间和当前帧速率执行时间之间的时间差。例如,在框540,可能已经确定缩短的帧速率执行时间。在框535,可能已经确定当前帧速率执行时间。可以通过将当前帧速率执行时间减去缩短的帧速率执行时间,来计算时间差。回头参考上面的示例,发现缩短的帧速率执行时间是16.67毫秒(60FPS),而发现当前帧速率执行时间是13.33毫秒(75FPS)。如此,当前帧速率比最小帧速率更快。在此上下文中,实施例不受限制。
在框550,逻辑流程500可以判断时间差是否大于零。例如,应用程序的当前帧速率可处于高于最小帧速率的水平。当***100正在以电池电源180操作时,有机会通过强制当前帧速率降低以等于最小帧速率来节省电能。当时间差大于零毫秒时,意味着,***正在生成比应用程序130的最小帧速率所需的更多的帧。在此上下文中,实施例不受限制。
在框555,当时间差大于零时,逻辑流程500可以将与生成帧的应用程序130相关联的CPU线程置于睡眠状态。例如,由于时间差大于零毫秒,因此***100能够通过将帧速率降低到由应用程序130支持的最小帧速率来降低其工作负荷。这可以通过将应用程序130的生成帧155的CPU线程置于睡眠状态达在框540计算出的时间差来完成。参考示例,CPU线程可以在13.33毫秒内生成帧155,并调用图形驱动器140以呈现帧155。在正常情况下,CPU线程将保持在活动状态,并继续工作,并生成下一帧。然而,通过将CPU线程置于睡眠状态达3.34毫秒的时间差,CPU110在那3.34毫秒内不必工作来生成帧155。只要时间差保持正的,CPU线程将保持在睡眠状态。一旦时间差为零,图形驱动器140就可以在框560向显示器160呈现帧。净结果是,在此示例中,CPU线程可以被置于睡眠状态达25%的时间,以强制75FPS的当前帧速率降至60FPS的降低的帧速率,由此,节省电能,并延长电池180的寿命。该示例中所使用的数量是说明性的,对于不同的***100或应用程序130,可以不同。在此上下文中,实施例不受限制。
各实施例可以使用硬件元件、软件元件或两者的组合来实现。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、感应器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等等。软件的示例可包括软件组件、程序、应用程序、计算机程序、***程序、机器程序、操作***软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号,或其任何组合。判断一个实施例是否使用硬件元件或软件元件来实现可以根据任意数量的因素而不同,如所希望的计算速率、功率级别、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度,及其他设计或性能约束。
图6示出了可以适用于实现本发明的强制的VSYNC处理实施例的***600的实施例。在各实施例中,***600可以是能够强制VSYNC的***,虽然***600不仅限于此上下文。例如,***600可以集成到个人计算机(PC)、膝上型计算机、超膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上电脑、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的组合、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动因特网设备(MID)、消息接发设备、数据通信设备等等。
在各实施例中,***600包括耦合到显示器620的平台602。平台602可以从诸如内容服务设备630、或内容分发设备640之类的内容设备或其他类似的内容源接收内容。包括一个或多个导航特征的导航控制器650可以被用来与例如平台602和/或显示器620进行交互。在下文中更详细地描述这些组件中的每一个。
在各实施例中,平台602可以包括芯片组605、处理器610、存储器612、存储614、图形子***615、应用程序616、和/或无线电618的任何组合。芯片组605可以在处理器610、存储器612、存储614、图形子***615、应用程序616和/或无线电618之间提供相互通信。例如,芯片组605可以包括能够与存储614进行相互通信的存储器适配器(未描绘)。
处理器610可以实现为复杂指令***计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容的处理器、多核,或任何其他微处理器或中央处理单元(CPU)。在各实施例中,处理器610可以包括双核处理器、双核移动处理器等等。
存储器612可以实现为易失性存储器设备,诸如,但不仅限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM),或静态RAM(SRAM)。
存储器614可以实现为非易失性存储器设备,诸如,但不仅限于,磁盘驱动、光盘驱动、磁带驱动、内部存储设备、附连存储设备、闪存、电池供电的SDRAM(同步DRAM),和/或网络可访问的存储设备。在各实施例中,存储器614可以包括当,例如,包括多个硬盘驱动器时,提高存储器性能或对有价值的数字媒体的增强的保护的技术。
图形子***615可以对诸如静止图像或视频之类的图像执行处理,供显示。图形子***615可以是,例如,图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可以被用来可通信地耦合图形子***615和显示器620。例如,接口可以是高清晰度多媒体接口、显示端口(DisplayPort)、无线HDMI,和/或遵循无线HD的技术中的任何一个。图形子***615可以被集成到处理器610或芯片组605中。图形子***615可以是可通信地耦合到芯片组605的独立卡。
此处所描述的图形和/或视频处理技术可以以各种硬件体系结构来实现。例如,图形和/或视频功能可以集成在芯片组内。替代地,可以使用单独的图形和/或视频处理器。作为再一个实施例,图形和/或视频功能可以通过通用处理器(包括多核处理器)来实现。在又一实施例中,功能可以在消费电子产品中实现。
无线电618可以包括能够使用各种合适的无线通信技术传输和接收信号的一个或多个无线电。这样的技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括(但不仅限于)无线局域网(WLAN)、无线人域网(WPAN)、无线城域网(WMAN)、蜂窝网络,以及卫星网络。在跨这样的网络的通信中,无线电618可以根据任何版本的一个或多个适用的标准来操作。
在各实施例中,显示器620可以包括任何电视机类型监视器或显示器。显示器620可以包括,例如,计算机显示器屏幕、触摸屏显示器、视频监视器、类似于电视机的设备,和/或电视机。显示器620可以是数字和/或模拟的。在各实施例中,显示器620可以是全息显示器。同样,显示器620还可以是可以接收视觉投影的透明表面。这样的投影可以传达各种形式的信息、图像,和/或对象。例如,这样的投影可以是对于移动增强的现实(MAR)应用程序的视觉覆盖。在一个或多个软件应用程序616的控制下,平台602可以在显示器622上显示用户界面620。
在各实施例中,内容服务设备630可以由任何国家的,国际的和/或独立的服务托管,并由此可以被平台602例如通过因特网来访问。内容服务设备630可以耦合到平台602和/或显示器620。平台602和/或内容服务设备630可以耦合到网络660以往返于网络660进行通信(例如,发送和/或接收)媒体信息。内容分发设备640还可以耦合到平台602和/或显示器620。
在各实施例中,内容服务设备630可以包括有线电视盒、个人计算机、网络、电话、启用因特网的设备或能够分发数字信息和/或内容的电器,以及能够通过网络660或直接在内容提供商和平台602和/或显示器620之间单方向地或双向地传递内容的任何其他类似的设备。可以理解,内容可以通过网络660往返于***600中的组件中的任何一个和内容提供商单向地和/或双向地传递。内容的示例可以包括任何媒体信息,包括,例如,视频、音乐、医学和游戏信息等等。
内容服务设备630接收内容,诸如有线电视节目,包括媒体信息、数字信息和/或其他内容。内容提供商的示例可以包括任何有线或***或电台或因特网内容提供商。所提供的示例不限制本发明的各实施例。
在各实施例中,平台602可以从具有一个或多个导航特征的导航控制器650接收控制信号。控制器650的导航特征可以被用来例如与用户界面622进行交互。在各实施例中,导航控制器650可以是指示设备,该指示设备可以是计算机硬件组件(具体地,人机接口设备),可使用户向计算机中输入空间(例如,连续的和多维)数据。诸如图形用户界面(GUI)、电视机和监视器之类的许多***可使用户使用物理手势控制并向计算机或电视机提供数据。
控制器650的导航特征的移动可以通过指针、光标、焦点环,或显示在显示器上的其他可视指示器,在显示器上反射(例如,显示器620)。例如,在软件应用616的控制下,位于导航控制器650上的导航特征可以被例如映射到用户界面622上显示的虚拟导航特征。在各实施例中,控制器650可以不是单独的组件,而是集成到平台602和/或显示器620中。然而,各实施例不仅限于在所示出的或此处所描述的上下文中的元件。
在各实施例中,驱动器(未示出)可以包括允许用户立即打开和关闭平台602的技术,类似于电视机,例如,当启用时,在初始引导之后,按下按钮。程序逻辑可以允许平台602当平台被“关闭”时向媒体适配器或其他内容服务设备630或内容分发设备640流送内容。另外,芯片组605还可以包括,例如,对于5.1环绕声音频和/或高清晰度6.1环绕声音频的硬件和/或软件支持。驱动器可以包括集成的图形平台的图形驱动器。在各实施例中,图形驱动器可以包括***组件互连(PCI)Express图形卡。
在各种实施例中,可以集成***600所示出的组件的任何一个或更多。例如,可以集成平台602和内容服务设备630,或者也可以集成平台602和内容分发设备640,或者,例如,也可以集成平台602、内容服务设备630,以及内容分发设备640。在各种实施例中,平台602和显示器620可以是集成单元。例如,可以集成显示器620和内容服务设备630,或者也可以集成显示器620和内容分发设备640。这些示例不限制本发明。
在各种实施例中,***600可以实现为无线***、有线***,或两者的组合。当实现为无线***时,***600可以包括适用于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等等。无线共享介质的示例可以包括诸如RF频谱之类的无线范围的某些部分等等。当实现为有线***时,***600可以包括适用于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(NIC)、光盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可包括,线路、电缆、金属导线、印刷电路板(PCB)、后面板、交换机结构、半导体材料、双绞线、同轴电缆、光纤等等。
平台602可以建立一个或多个逻辑或物理信道以传递信息。信息可以包括媒体信息和控制信息。媒体信息可以是指表示给用户的内容的任何数据。内容的示例可以包括,例如,来自语音谈话、视频会议、流式视频、电子邮件消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音谈话的数据可以是,例如,语音信息、静默时间长度、背景噪声、舒适噪声、音调等等。控制信息可以是指表示用于自动化***的命令、指令或控制字的任何数据。例如,控制信息可以用来通过***路由媒体信息,或指示节点以预先确定的方式处理媒体信息。然而,各实施例不仅限于图6中所示出的或所描述的上下文中的元件。
如上文所描述的,***600可以以不同的物理样式或形状因子来体现。图7示出了其中可以实现***600的小形状因子设备700的各实施例。在各实施例中,例如,设备700可以实现为具有无线能力的移动计算设备。移动计算设备可以是指具有处理***和移动电源(诸如,例如,一个或多个电池)的任何设备。
如上文所描述的,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上电脑、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的组合、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动因特网设备(MID)、消息传送设备、数据通信设备等等。
移动计算设备的示例还可以包括被配置为由人佩带的计算机,诸如腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带计算机、臂带计算机、鞋计算机、衣服计算机,及其他可佩带的计算机。例如,在各实施例中,移动计算设备可以实现为能够执行计算机应用程序以及语音通信和/或数据通信的智能电话。虽然可以利用作为示例实现为智能电话的移动计算设备描述一些实施例,但是,可以理解,其他实施例也可以使用其他无线移动计算设备来实现。在此上下文中,实施例不受限制。
如图7所示,设备700可以包括外壳702、显示器704、输入/输出(I/O)设备706,以及天线708。设备700还可以包括导航特征712。显示器704可以包括用于显示适合于移动计算设备的信息的任何合适的显示单元。I/O设备706可以包括用于向移动计算设备中输入信息的任何合适的I/O设备。I/O设备706的示例可以包括字母数字键盘、数字键区、触摸板、输入键、按钮、开关、往复式开关、麦克风、扬声器、语音识别设备以及软件等等。信息还可以通过麦克风输入到设备700中。这样的信息可以通过语音识别设备来数字化。在此上下文中,实施例不受限制。
各实施例可以使用硬件元件、软件元件或两者的组合来实现。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、感应器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等等。软件的示例可包括软件组件、程序、应用程序、计算机程序、***程序、机器程序、操作***软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号,或其任何组合。判断一个实施例是否使用硬件元件或软件元件来实现可以根据任意数量的因素而不同,如所希望的计算速率、功率级别、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度,及其他设计或性能约束。
至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的代表性的指令来实现,指令表示处理器内的各种逻辑,指令在由机器读取时使机器制造执行此处所描述的技术的逻辑。被称为“IP核”的这样的表示可以存储在有形的机器可读介质中,并提供给各种客户或生产设施,以加载到实际制造逻辑或处理器的制造机器中。
至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的代表性的指令来实现,指令表示处理器内的各种逻辑,指令在由机器读取时使机器制造执行此处所描述的技术的逻辑。被称为“IP核”的这样的表示可以存储在有形的机器可读介质中,并提供给各种客户或生产设施,以加载到实际制造逻辑或处理器的制造机器中。
可以使用表达“一个实施例”和“实施例”以及它们的派生词来描述某些实施例。这些术语意味着,参考实施例所描述的特定功能、结构或特征包括在至少一个实施例中。在本说明书中的不同位置出现短语“在一个实施例中”不一定都是指同一个实施例。进一步地,可以使用表达“耦合”和“连接”以及它们的派生词来描述某些实施例。这些术语不一定作为彼此的同义词。例如,可以使用术语“连接”和/或“耦合”来描述某些实施例,以指出两个或更多元件彼此处于直接的物理或电接触的状态。然而,术语″耦合″也可以意味着,两个或更多彼此不直接接触,但是仍彼此合作或进行交互的元件。
值得强调的是,提供“摘要”以使读者快速地弄清一技术公开的本质。但应理解,它不能被用来解释或限制权利要求的范围或含义。此外,在前面的″具体实施方式″中,可以看出,各种特点可以组合在一个实施例中,以便简化说明。本发明的此方法不应被解释为反映带权利要求的各实施例需要比每一个权利要求中明确地列举的特点更多的特点的意图。相反,如下面的权利要求所反映的,本发明的主题在于少于所公开的单一实施例的所有特点。如此,下面的权利要求被包括到“具体实施方式”,每一个权利要求本身也作为单独的实施例。在所附权利要求书中,术语“包括”和“其特征在于”被用作相应的术语“包含”和“其中”的普通英语等效词。此外,术语“第一”、“第二”、“第三”等等只用作标记,并不旨在对它们的对象施加数值要求。
上面描述的包括所公开的体系结构的各示例。当然,描述每一个可以想到的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,许多其他组合和排列都是可能的。因此,该新颖体系结构旨在涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变化。

Claims (32)

1.一种设备,包括:
处理器电路;以及
图形驱动器,所述图形驱动器在所述处理器电路上操作以执行应用程序,所述应用程序以与定义的帧速率执行时间相关联的定义的帧速率生成视频内容的帧,所述图形驱动器操作用以:
计算在前一帧和当前帧之间流逝的时间,以确定当前帧速率执行时间;
通过从所述定义的帧速率执行时间减去所述当前帧速率执行时间,来计算时间差;以及
当所述时间差大于0时,将与生成所述当前帧的所述应用程序相关联的处理器线程切换到睡眠状态。
2.如权利要求1所述的设备,其特征在于,所述图形驱动器可操作,以:
当所述时间差达到零(0)时,向显示器呈现所述当前帧。
3.如权利要求2所述的设备,其特征在于,包括:
与所述处理器电路通信地耦合的显示器,所述显示器操作用以呈现由所述图形驱动器呈现的所述当前帧。
4.如权利要求1所述的设备,其特征在于,包括耦合到所述处理器电路的电池,所述电池操作用以向所述处理器电路提供电能。
5.如权利要求1所述的设备,其特征在于,所述定义的帧速率是可由所述应用程序支持的最小帧速率。
6.一种设备,包括:
处理器电路;以及
图形驱动器,所述图形驱动器在所述处理器电路上操作以执行应用程序,所述应用程序以与定义的帧速率执行时间相关联的定义的帧速率生成视频内容的帧,所述图形驱动器操作用以:
计算在前一帧和当前帧之间流逝的时间,以确定当前帧速率执行时间;
选定在所述定义的帧速率执行时间和所述当前帧速率执行时间之间的缩短的帧速率执行时间;
通过从所述缩短的帧速率执行时间减去所述当前帧速率执行时间,来计算时间差;以及
当所述时间差大于零(0)时,将与生成所述当前帧的所述应用程序相关联的处理器线程切换到睡眠状态。
7.如权利要求6所述的设备,其特征在于,包括操作用以执行下列操作的所述图形驱动器:
当所述时间差达到零(0)时,向显示器呈现所述当前帧。
8.如权利要求7所述的设备,其特征在于,包括:
与所述图形驱动器通信地耦合的显示器,所述显示器操作用以呈现由所述图形驱动器呈现的所述当前帧。
9.如权利要求6所述的设备,其特征在于,包括操作用以给所述处理器电路提供电能的电池。
10.如权利要求6所述的设备,其特征在于,所述图形驱动器操作用以确定剩余电池电量的百分比水平。
11.如权利要求10所述的设备,其特征在于,所述图形驱动器操作用以当剩余电池电量的百分比水平低于阈值百分比水平时,将所述缩短的帧速率调节成更低。
12.如权利要求6所述的设备,其特征在于,所述定义的帧速率是可由所述应用程序支持的最小帧速率。
13.一种方法,包括:
在中央处理单元(CPU)上执行应用程序,所述应用程序操作用于以与定义的帧速率执行时间相关联的定义的帧速率生成视频内容的帧;
计算在前一帧和当前帧之间流逝的时间,以确定当前帧速率执行时间;
通过从所述定义的帧速率执行时间减去所述当前帧速率执行时间,来计算时间差;以及
当所述时间差大于零(0)时,将与生成所述当前帧的所述应用程序相关联的CPU线程切换到睡眠状态。
14.如权利要求13所述的方法,其特征在于,包括:
只有当所述CPU正在以电池电源操作时,才将所述CPU线程切换到睡眠状态。
15.如权利要求13所述的方法,其特征在于,包括:
当所述时间差达到零(0)时,向显示器呈现所述当前帧。
16.如权利要求13所述的方法,其特征在于,所述定义的帧速率是可由所述应用程序支持的最小帧速率。
17.一种方法,包括:
在中央处理单元(CPU)上执行应用程序,所述应用程序操作用于以与定义的帧速率执行时间相关联的定义的帧速率生成视频内容的帧;
计算在前一帧和当前帧之间流逝的时间,以确定当前帧速率执行时间;
选定在所述定义的帧速率执行时间和所述当前帧速率执行时间之间的缩短的帧速率执行时间;
通过从所述缩短的帧速率执行时间减去所述当前帧速率执行时间,来计算时间差;以及
当所述时间差大于零(0)时,将与生成所述当前帧的所述应用程序相关联的CPU线程切换到睡眠状态。
18.如权利要求17所述的方法,其特征在于,包括:
只有当所述CPU正在以电池电源操作时,才将所述CPU线程切换到睡眠状态。
19.如权利要求17所述的方法,其特征在于,包括:
当所述时间差达到零(0)时,向显示器呈现所述当前帧。
20.如权利要求17所述的方法,其特征在于,包括:
当所述CPU正在以电池电源操作时,确定剩余电池电源的百分比水平。
21.如权利要求17所述的方法,其特征在于,包括:
当剩余电池电量的百分比水平低于阈值百分比水平时,将所述缩短的帧速率调节成更低。
22.如权利要求17所述的方法,其特征在于,所述定义的帧速率是可由所述应用程序支持的最小帧速率。
23.一种包括计算机可读存储介质的制品,所述计算机可读存储介质包含指令,当执行所述指令时,所述指令导致***:
在处理器电路上执行应用程序,所述应用程序操作用于以与帧速率执行时间相关联的帧速率生成视频内容的帧;
确定当前帧速率执行时间;
确定所述当前帧速率执行时间和所述定义的帧速率执行时间之间的时间差;以及
将与生成所述当前帧的所述应用程序相关联的CPU线程切换到睡眠状态达等于所述时间差的时段。
24.如权利要求23所述的制品,其特征在于,包含指令,所述指令在被执行时导致***:
只有当所述处理器电路正在以电池电源操作时,才将所述CPU线程切换到睡眠状态。
25.如权利要求23所述的制品,其特征在于,包含指令,所述指令当执行时导致***:
当所述时间差达到零(0)时,向显示器呈现所述当前帧。
26.如权利要求23所述的制品,其特征在于,所述定义的帧速率是可由所述应用程序支持的最小帧速率。
27.一种包括计算机可读存储介质的制品,所述计算机可读存储介质包含指令,当执行所述指令时,所述指令导致***:
在中央处理单元(CPU)上执行应用程序,所述应用程序操作用于以与定义的帧速率执行时间相关联的定义的帧速率生成视频内容的帧;
确定当前帧速率执行时间;
选定低于所述当前帧速率执行时间的缩短的帧速率执行时间;
确定所述当前帧速率执行时间和所述缩短的帧速率执行时间之间的时间差;以及
将与生成所述当前帧的所述应用程序相关联的CPU线程切换到睡眠状态达等于所述时间差的时段。
28.如权利要求27所述的制品,其特征在于,包含指令,所述指令在被执行时导致***:
只有当所述CPU正在以电池电源操作时,才将所述CPU线程切换到睡眠状态。
29.如权利要求27所述的制品,其特征在于,包含指令,所述指令在被执行时导致***:
当所述时间差达到零(0)时,向显示器呈现所述当前帧。
30.如权利要求27所述的制品,其特征在于,包含指令,所述指令在被执行时导致***:
当所述CPU正在以电池电源操作时,确定剩余电池电源的百分比水平。
31.如权利要求30所述的制品,其特征在于,包含指令,所述指令在被执行时导致***:
当剩余电池电量的百分比水平低于阈值百分比水平时,将所述缩短的帧速率调节成更低。
32.如权利要求27所述的制品,其特征在于,所述定义的帧速率是可由所述应用程序支持的最小帧速率。
CN201180075158.XA 2011-11-30 2011-11-30 降低3d工作负荷的功率 Active CN103959197B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/062619 WO2013081602A1 (en) 2011-11-30 2011-11-30 Reducing power for 3d workloads

Publications (2)

Publication Number Publication Date
CN103959197A true CN103959197A (zh) 2014-07-30
CN103959197B CN103959197B (zh) 2017-01-18

Family

ID=48535899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180075158.XA Active CN103959197B (zh) 2011-11-30 2011-11-30 降低3d工作负荷的功率

Country Status (5)

Country Link
US (1) US9747657B2 (zh)
EP (1) EP2786223B1 (zh)
CN (1) CN103959197B (zh)
TW (1) TWI601092B (zh)
WO (1) WO2013081602A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095541A (zh) * 2016-05-31 2016-11-09 深圳市万普拉斯科技有限公司 睡眠管理方法及相关装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180144436A1 (en) * 2014-06-24 2018-05-24 Intel Corporation Reducing power for 3d workloads
WO2013081600A1 (en) * 2011-11-30 2013-06-06 Intel Corporation Reducing power for 3d workloads
US9483862B2 (en) * 2013-12-20 2016-11-01 Qualcomm Incorporated GPU-accelerated path rendering
CN105045367A (zh) * 2015-01-16 2015-11-11 中国矿业大学 基于游戏负载预测的android***设备功耗优化方法
US9872255B2 (en) 2015-04-01 2018-01-16 Ebay Inc. Battery charge aware communications
US10402932B2 (en) * 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment
CN107102936B (zh) * 2017-05-27 2021-06-15 腾讯科技(深圳)有限公司 一种流畅度的评估方法和移动终端以及存储介质
US12002143B2 (en) * 2021-06-06 2024-06-04 Apple Inc. Prediction and use of processor inactivity for rendering frames
TW202310630A (zh) * 2021-08-24 2023-03-01 美商元平台技術有限公司 用於以可變訊框速率在隨顯螢幕(aod)上進行動畫顯示的系統、裝置和方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233592A1 (en) * 2002-06-14 2003-12-18 Hung-Ming Lin Power saving method using frame rate control in computer graphics systems
US20060056515A1 (en) * 2004-09-16 2006-03-16 Ntt Docomo, Inc. Video evaluation device, frame rate determination device, video process device, video evaluation method, and video evaluation program
CN1984304A (zh) * 2005-10-20 2007-06-20 索尼株式会社 图像转换装置,图像信号处理装置,摄像机***以及图像信号处理方法
US20070139427A1 (en) * 2005-12-16 2007-06-21 Kabushiki Kaisha Toshiba Information processing apparatus and operation speed control method
CN101025655A (zh) * 2006-02-16 2007-08-29 株式会社东芝 屏幕画面发送装置与屏幕画面产生方法
US20110157191A1 (en) * 2009-12-30 2011-06-30 Nvidia Corporation Method and system for artifically and dynamically limiting the framerate of a graphics processing unit

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH089347A (ja) 1994-06-22 1996-01-12 Matsushita Electric Ind Co Ltd 動画像伝送装置
JP2005003692A (ja) 2001-07-12 2005-01-06 Internatl Business Mach Corp <Ibm> 表示装置、コンピュータ装置および表示制御方法
US7256788B1 (en) 2002-06-11 2007-08-14 Nvidia Corporation Graphics power savings system and method
US7187413B2 (en) * 2002-07-25 2007-03-06 Lockheed Martin Corporation Method and system for using an image based autofocus algorithm
US8320464B2 (en) 2004-05-04 2012-11-27 Qualcomm Incorporated Method and apparatus to construct bi-directional predicted frames for temporal scalability
EP1815362A2 (en) * 2004-11-16 2007-08-08 Broadramp, Inc. System for rapid delivery of digital content via the internet
JP5123472B2 (ja) * 2005-03-09 2013-01-23 京セラ株式会社 携帯情報端末
US9015075B2 (en) * 2006-09-29 2015-04-21 Oracle America, Inc. Method and apparatus for secure information distribution
US8112640B2 (en) 2006-10-02 2012-02-07 Samsung Electronics Co., Ltd. Method of controlling voltage of power supplied to 3D graphics data processor and the 3D graphics data processor using the method
US20080108396A1 (en) * 2006-11-02 2008-05-08 Sara Maria Lundqvist Wireless communications terminals that selectively power radio communications components
JP2011254416A (ja) * 2010-06-04 2011-12-15 Seiko Epson Corp 撮影装置
US20120166777A1 (en) * 2010-12-22 2012-06-28 Advanced Micro Devices, Inc. Method and apparatus for switching threads

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233592A1 (en) * 2002-06-14 2003-12-18 Hung-Ming Lin Power saving method using frame rate control in computer graphics systems
US20060056515A1 (en) * 2004-09-16 2006-03-16 Ntt Docomo, Inc. Video evaluation device, frame rate determination device, video process device, video evaluation method, and video evaluation program
CN1984304A (zh) * 2005-10-20 2007-06-20 索尼株式会社 图像转换装置,图像信号处理装置,摄像机***以及图像信号处理方法
US20070139427A1 (en) * 2005-12-16 2007-06-21 Kabushiki Kaisha Toshiba Information processing apparatus and operation speed control method
CN101025655A (zh) * 2006-02-16 2007-08-29 株式会社东芝 屏幕画面发送装置与屏幕画面产生方法
US20110157191A1 (en) * 2009-12-30 2011-06-30 Nvidia Corporation Method and system for artifically and dynamically limiting the framerate of a graphics processing unit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095541A (zh) * 2016-05-31 2016-11-09 深圳市万普拉斯科技有限公司 睡眠管理方法及相关装置
CN106095541B (zh) * 2016-05-31 2019-11-05 深圳市万普拉斯科技有限公司 睡眠管理方法及相关装置
US10901491B2 (en) 2016-05-31 2021-01-26 Oneplus Technology (Shenzhen) Co., Ltd. Sleep management method and device, and computer storage medium

Also Published As

Publication number Publication date
US9747657B2 (en) 2017-08-29
EP2786223A1 (en) 2014-10-08
TW201333875A (zh) 2013-08-16
EP2786223A4 (en) 2015-08-05
TWI601092B (zh) 2017-10-01
US20140354659A1 (en) 2014-12-04
CN103959197B (zh) 2017-01-18
WO2013081602A1 (en) 2013-06-06
EP2786223B1 (en) 2017-10-18

Similar Documents

Publication Publication Date Title
CN103959197A (zh) 降低3d工作负荷的功率
CN103959198A (zh) 降低3d工作负荷的功率
CN104704469B (zh) 动态地重新平衡图形处理器资源
CN104380258B (zh) 对图形硬件实施调度操作
CN104106053A (zh) 使用功率的动态cpu gpu 负载平衡
CN103959200B (zh) 自适应图像子***功率和性能管理
JP5792337B2 (ja) グラフィクスのレンダリング中における電力消費の低減
CN103999096A (zh) 用于视频数据背景区域的降低的图像质量
KR20220010580A (ko) 휴먼 머신 인터랙션 제어 방법, 장치와 시스템, 전자기기
CN109032732B (zh) 通知显示方法、装置、存储介质及电子设备
CN104115210A (zh) 显示控制器的电力管理
TW201405422A (zh) 於異質處理器群組間之運行時間調度技術
US9547356B2 (en) Context aware power management for graphics devices
CN103533286A (zh) 用于带静态区域排除的时间帧内插的方法和***
CN104067318A (zh) 使用三维光栅化的时间连续碰撞检测
CN109857317A (zh) 一种终端设备的控制方法及终端设备
CN104011789A (zh) 减少用于在屏幕上显示多个图像的显示控制器中使用的缩放引擎的数量
TWI642029B (zh) 內容適應性視訊處理技術
US20120317408A1 (en) Method and Apparatus for Changing an Operational Characteristic of a Device in Order to Adjust the Power Consumption Level
CN104067309A (zh) 流水线化的图像处理序列发生器
CN106406742B (zh) 移动终端屏幕亮度调节方法、装置及移动终端
CN109726003B (zh) 应用解冻的处理方法、电子装置及计算机可读存储介质
CN110109813B (zh) 用于gpu性能的信息确定方法、装置、终端及存储介质
CN104040501A (zh) 显示控制器中断寄存器
CN104461122A (zh) 自适应触摸扫描

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant