TWI601092B - 降低用於3d工作負載之功率的技術 - Google Patents

降低用於3d工作負載之功率的技術 Download PDF

Info

Publication number
TWI601092B
TWI601092B TW101142606A TW101142606A TWI601092B TW I601092 B TWI601092 B TW I601092B TW 101142606 A TW101142606 A TW 101142606A TW 101142606 A TW101142606 A TW 101142606A TW I601092 B TWI601092 B TW I601092B
Authority
TW
Taiwan
Prior art keywords
frame rate
execution time
frame
current
cpu
Prior art date
Application number
TW101142606A
Other languages
English (en)
Other versions
TW201333875A (zh
Inventor
麥可 亞波達卡
Original Assignee
英特爾公司
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 英特爾公司 filed Critical 英特爾公司
Publication of TW201333875A publication Critical patent/TW201333875A/zh
Application granted granted Critical
Publication of TWI601092B publication Critical patent/TWI601092B/zh

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)

Description

降低用於3D工作負載之功率的技術
本發明係有關於降低用於3D工作負載之功率的技術。
發明背景
電腦平臺通常是可在直流電源上或當直流電源是不可用的時則在電池電力上操作。電池電力自然地是一有限的資源並且必須週期性地再充電。已有相當多考慮關於當在電池電力上操作時用於延長電腦平臺操作時間之方法以及技術上。許多電腦平臺在一整體系統內採用中央處理單元(CPU)以及圖形處理單元(GPU)兩者。用以降低整體系統電力消耗以及延伸電池壽命之一技術是,當在電池電力上時減低CPU以及GPU操作頻率。這技術不必定地得減低利用CPU或GPU所進行之工作數量-而是緩慢工作完成速度。另一方法可以是減低關聯於CPU或GPU之任一者上執行之應用的實際工作負載。因此,其可能需要有改進技術以解決這些以及其他問題。
依據本發明之一實施例,係特地提出一種裝置,其包含:一處理器電路;以及一圖形驅動器,其可操作於該 處理器電路上執行一應用,其以關聯一界定像框率執行時間的一界定像框率,而產生視訊內容像框,該圖形驅動器可操作以進行下列事項:計算在一先前像框以及一目前像框之間的一經過時間,以決定一目前像框率執行時間;藉由自該界定像框率執行時間減去該目前像框率執行時間,以計算一時間差量;以及當該時間差量是大於零(0)時,將關聯於產生該目前像框之應用的一處理器線程切換至一睡眠狀態。
100、200、600‧‧‧系統
110、120‧‧‧CPU
125、612‧‧‧記憶體
130、616‧‧‧應用
140‧‧‧圖形驅動器
155‧‧‧像框
160、620、704‧‧‧顯示器
170‧‧‧外部直流電源
180‧‧‧電池電力
300、400、500‧‧‧邏輯流程圖
305-355、405-460、505-560‧‧‧邏輯流程步驟
602‧‧‧平臺
605‧‧‧晶片組
610‧‧‧處理器
614‧‧‧儲存裝置
615‧‧‧圖形子系統
618‧‧‧無線電
622‧‧‧使用者界面
630‧‧‧內容服務設備
640‧‧‧內容傳送設備
650‧‧‧導航控制器
660‧‧‧網路
700‧‧‧設備
702‧‧‧外罩
706‧‧‧輸入/輸出(I/O)設備
708‧‧‧天線
712‧‧‧導航特點
圖1是圖解地說明適用於實行本發明實施例之結構的方塊圖。
圖2是圖解地說明適用於實行本發明實施例之另一結構的方塊圖。
圖3是圖解地說明一邏輯流程之實施例。
圖4是圖解地說明一邏輯流程之實施例。
圖5是圖解地說明一邏輯流程之實施例。
圖6是圖解地說明可適用於實作所揭示之實施例的系統之實施例。
圖7是圖解地說明圖6系統可於其中被實施之小形式係數設備的實施例。
較佳實施例之詳細說明
各種實施例於此處被提出,其可減低具有利用在系統內執行之應用所產生而傳送至一顯示器的視訊資料之 像框的工作之系統負載。在該系統內執行之應用可在習知為每秒像框(FPS)的一指定像框率而產生新的視訊內容像框。該應用可能是可支援複數個界定的像框率。CPU及/或GPU是需要負責以所指定的FPS實際上產生像框。這些像框接著被傳送至連通地耦合於該系統以供渲染的一顯示器。降低該像框率(FPS)可減低利用系統被進行的工作,因為較少的像框可在一所給的時間週期內被產生。當系統是在電池電力上操作時,這可以是特別有利的,因為其可延長電池壽命。
接著參考至圖形,其中相同的參考號碼被使用以指示相同元件。於下面說明中,為說明目的,許多特定細節先前被設定,以便提供其全面之了解。但是,明顯地,新穎的實施例可被實施而不需這些特定細節。於其他實例中,習知的結構以及設備以方塊圖形式被展示以方便其說明。其目的是涵蓋所有在申述主題之精神以及範疇內之修改、等效者以及另外者。
圖1是圖解地說明實作電腦平臺範例之系統100。該系統100可包含表示如CPU 110之處理器電路、表示如GPU 120之處理器電路、以及記憶體125。一應用130可在CPU 110控制以及監督之下被執行。系統100可進一步包含圖形驅動器140。操作時,一應用可呼叫圖形驅動器140以呈現視訊內容之像框155。該圖形驅動器140接著可處理像框155至一顯示器160的呈現。該像框呈現可能有或可能無包含GPU 120。該系統100可利用外部直流(DC)電源170或 電池電力180之任一者被供電。圖形驅動器140可以是可操作以決定系統100是否利用外部直流電源170或電池電力180被供電。該系統100也可連通地耦合於顯示器160。
一旦圖形驅動器140決定系統100是於電池電力180上操作的,則圖形驅動器140可採取一些另外步驟以減低系統100之工作負載而節省電池電力180。下面將更詳細地說明另外的步驟並且可能在圖形驅動器140呈現像框155至顯示器160之前發生。
圖1之系統100已被說明如被整合成為單一平臺。例如,CPU 110以及GPU 120可以是在相同處理器晶圓上。另一實施例被說明於圖2中,於其中CPU 110以及GPU 120不必定得是在相同處理器晶圓上。GPU 120可以是,例如,連通地耦合於CPU 110之分別的圖形處理卡。
圖2之系統200通常相似於圖1之系統100地操作。一個或多個應用130可在CPU 110以及記憶體125控制之下被執行。系統200可進一步包含圖形驅動器140。於操作中,應用130可呼叫圖形驅動器140呈現視訊內容之像框155。圖形驅動器140接著可處理呈現的像框155至顯示器160。像框呈現可能有或可能無包含GPU 120。系統200可利用外部直流(DC)電源170或電池電力180之任一者被供電。圖形驅動器140可以是可操作以決定系統100是否利用外部直流電源170或電池電力180被供電。系統200也可連通地耦合於顯示器160。
一旦圖形驅動器140決定,系統100是在電池電力 180上操作,則圖形驅動器140可採取一些另外的步驟以減低系統200工作負載而節省電池電力180。在下面將更詳細地說明另外的步驟並且可能在圖形驅動器140呈現像框155至顯示器160之前發生。
此處所包含的是用以進行所揭示結構之新穎論點的範例方法之一個或多個流程圖表示。雖然,為說明之簡易目的,此處展示之一個或多個方法,例如,以流程圖或流程圖示之形式,作為一系列的動作被展示以及被說明,應了解以及察知,該等方法之動作順序是不受限定,因此一些動作可能以此處被展示以及被說明的不同順序發生及/或與其他動作同時地發生。例如,那些熟習本技術者應明白與察覺,一方法可另外地,例如,以狀態圖,被表示如一系列之相互關連狀態或事件。此外,不是於一方法中被說明之所有動作都是一新穎實作所需的。
於一實施例中,一應用130可呼叫圖形驅動器140呈現像框155。在處理像框呈現之前,如果執行該像框之時間是較少於一界定的像框執行時間的話,則圖形驅動器140可將應用處理程序(例如,CPU線程)置於睡眠狀態,其中該界定像框執行時間可能是一最小像框執行時間。將該應用處理程序置於睡眠狀態經某一時間週期可涵蓋可被執行的每秒最大像框(FPS)。
用於上述實施例之假性碼可如下所示:Present() { //only limit the frame rate if running on battery power if(UsingDCBatteryPower()) { //calculate the number of CPU clocks that equal one millisecond static const double clocksPerMs= (double)GetCPUFrequency()/1000.f; //calculate the minimum frame execution time in milliseconds static const double msPerFrame= 1000.f/(double)FixedFrameRate; //determine the CPU timestamp at the end of the previous frame static double prevFrameMs= (double)GetCurrentCPUCounter()/clocksPerMs; double currFrameMs=0.0f; bool complete=false; do { //determine the CPU timestamp at the end of the current frame currFrameMs= (double)GetCurrentCPUCounter()/clocksPerMs; //calculate the number of milliseconds elapsed between the previous and current frame const double elapsedMs=currFrameMs-prevFrameMs; //calculate the number of milliseconds remaining to limit the frame execution to the //minimum frame execution time const double remainingMs=msPerFrame-elapsedMs; if(remainingMs>=1.0f) { //put the CPU thread to sleep Sleep((DWORD)remainingMs); } else { complete=true; } //Sleep function may return early,so continue putting the thread to sleep //until the minimum time has elapsed }while(!complete); prevFrameMs=currFrameMs; } //Present the frame PresentFrame(); }
圖3是圖解地說明依據本發明實施例之邏輯流程300的實施例,於其中電池電力藉由降低GPU 125工作負載被節省。邏輯流程300可表示利用此處說明之一個或多個實施例被執行的一些或所有操作。
於圖3展示之說明的實施例中,在方塊305,CPU 110可執行應用130。例如,一個或多個應用130可在CPU 110 的控制之下於系統100上執行。各個應用105可以是關聯於圖形驅動器140之實例。各個應用130可產生最後預期被顯示在顯示器160上之視訊內容像框155。像框155利用應用130被產生的像框率(例如,每秒像框或FPS),可以是可變的並且包含一界定像框執行時間,其中該界定像框執行時間可以是最小像框執行時間。
圖形驅動器140可被應用130所呼叫以呈現像框155。在依次呼叫以再送像框155之間的時間被稱為像框率,並且可以毫秒被表示。在正常操作情況下,各個應用130將依據在所給的應用105內之指定的設定執行。例如,應用130可具有50FPS之最小像框執行率,其對應至每像框20毫秒之像框率執行時間。相同的應用130可具有75FPS之最大像框執行率,其對應至大約每像框13.33毫秒之像框率執行時間。該等實施例是不受限定於本文脈絡中。
在方塊310,邏輯流程300可決定系統100是否在電池電力140上操作。例如,系統100可以是在電池電力180上操作或可自外部直流電源150接收電力。一外部直流電源170可以是***上至交流電(AC)插座以接通電源之系統表示。來自AC電源插座之電力可通過一整流器而轉換AC為供操作系統100之直流電。當系統100接收來自外部直流電源170之電力時,電力消耗是較小之議題。但是,當系統100自電池180接收電力時,電力消耗成為議題,因為電池180中之電荷量是有限並且由於系統100使用而漸漸減少。圖形驅動器140能判定何時系統100是在電池電力180上操作。於 此情況中,某些電力節省技術可被實作以延長電池壽命而供電給系統100。該等實施例是不受限定於本文脈絡中。
在方塊315,邏輯流程300可計算每毫秒之CPU時脈週期數。例如,CPU 110可在指定的一(1)千兆赫(GHz)時脈率操作。用於CPU 110之1千兆赫時脈率對應至每毫秒一百萬時脈週期。該等實施例是不限定於本文脈絡中。
在方塊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時戳是以毫秒表示的另一數值。自區塊330中所得到的數值減去區塊325中所得到的數值產生用於應用130之目前像框執行率時間。如果對於先前像框的時間數值被發現是110毫秒並且目前像框之時間數值被發現是123.33毫秒,則差量將是13.33毫秒。轉換這值回至目前像框率則產生75FPS。該等實施例是不受限定於本文脈絡中。
在方塊340之邏輯流程300可計算在最小像框率執行時間以及目前像框率執行時間之間的時間差量。例如,該最小像框率執行時間可以是在方塊320已先前地被決定。目前像框率執行時間可以是在方塊335已先前地被決定。時間差量可藉由自最小像框率執行時間減去目前像框率執行時間而被計算。返回參看至上面範例,當目前像框率執行時間被發現是13.33毫秒(75FPS)時,最小像框率執行時間被發現是20毫秒(50FPS)。因此,目前像框率是更快於最小像框率。該等實施例是不受限定於本文脈絡中。
在方塊345,邏輯流程300可決定時間差量是否大於零(0)。例如,對於應用之目前像框率可以是在較高於最小像框率的位準。當系統100是在電池電力180上操作時,藉由迫使目前像框率中之減少以等於最小像框率而有節省電力之機會。當時間差量是大於零毫秒時,其意謂著系統是產生比對於應用130之最小像框率所必須者有更多的像 框。該等實施例是不受限定於本文脈絡中。
在方塊350,當時間差量是大於零(0)時,邏輯流程300可將關聯產生像框之應用130的CPU線程置於睡眠狀態。例如,因為時間差量是大於零(0)毫秒,系統100可藉由降低像框率至利用應用130所支援的最小像框率而能夠減低其之工作負載。這可藉由將產生對於應用130之像框155的CPU線程置於睡眠狀態經過在方塊340所計算的時間差量而被完成。參看至範例,CPU線程可產生於13.33毫秒之像框155並且呼叫圖形驅動器140呈現像框155。在正常情況下,CPU線程將保持於致動狀態中並且繼續工作而且往前移動以產生下一個像框。但是,藉由將CPU線程置於睡眠狀態經過6.67毫秒之時間差量,並且CPU 110在那些的6.67毫秒期間不需要工作以產生像框155。只要時間差量保持正值,CPU線程將停留在睡眠狀態中。一旦時間差量終止至零,在方塊355,圖形驅動器140接著呈現像框至顯示器160。淨量結果是,於這範例中,CPU線程可以在50%的時間置於睡眠狀態,以迫使75FPS之目前像框率降下至50FPS之最小像框率,因而節省電力並且延長電池180之壽命。被使用於範例中之數目是說明用的並且可以於不同的系統100或應用130是不同。該等實施例是不受限定於本文脈絡中。
於另一實施例中,應用130可呼叫圖形驅動器140呈現像框155。在處理像框呈現之前,圖形驅動器140可將應用處理程序(例如,CPU線程)置於睡眠狀態經過總像框執行時間的一固定百分比。將應用處理程序置於睡眠狀態經 過某一時間週期可依一固定百分比減低可被執行之每秒最大像框(FPS)。
對於上述實施例之假性碼可如下所示:Present() { //only limit the frame rate if running on battery power if(UsingDCBatteryPower()) { //calculate the number of CPU clocks that equal one millisecond static const double clocksPerMs= (double)GetCPUFrequency()/1000.f; //determine the CPU timestamp at the end of the previous frame static double prevFrameMs= (double)GetCurrentCPUCounter()/clocksPerMs; //determine the CPU timestamp at the end of the current frame double currFrameMs= (double)GetCurrentCPUCounter()/clocksPerMs; //calculate the minimum frame execution time in milliseconds as a percentage //of the current frame execution time const double msPerFrame= (currFrameMs-prevFrameMs)* (double)StaticReductionPercentage; bool complete=false; do { currFrameMs= (double)GetCurrentCPUCounter()/clocksPerMs; //calculate the number of milliseconds elapsed between the previous and current //frame const double elapsedMs=currFrameMs-prevFrameMs; //calculate the number of milliseconds remaining to limit the frame execution to the //minimum frame execution time const double remainingMs=msPerFrame-elapsedMs; if(remainingMs>=1.0f) { //put the CPU thread to sleep Sleep((DWORD)remainingMs); } else { complete=true; } //Sleep function may return early, so continue putting the thread to sleep //until the minimum time has elapsed }while(!complete); prevFrameMs=currFrameMs; } //Present the frame PresentFrame(); }
圖4是圖解地說明依據本發明實施例之邏輯流程400之實施例,其中電池電力藉由降低GPU 125工作負載而被節省。邏輯流程400可以表示藉由此處被說明之一個或多個實施例被執行的一些或所有操作。
圖4展示之說明實施例中,在方塊405,CPU 110可執行一應用130。例如,一個或多個應用130可在CPU 110的控制之下於系統100上執行。各個應用105可以關聯於圖形驅動器140之實例。各個應用130可產生最後預期在顯示器160上顯示之視訊內容像框155。像框155藉由應用130被產生的像框率(例如,每秒像框或FPS)可以是可變的並且包含一界定的像框執行時間,其中該界定像框執行時間可以是最小像框執行時間。
圖形驅動器140可被應用130呼叫以呈現像框155。在連續的呼叫以再送像框155之間的時間被稱為像框率並且可以毫秒被表示。在正常操作情況之下,各個應用130將依據在所給的應用105內所指定的設定而執行。例如,一應用130可具有50FPS之最小像框執行率,其對應至每像框20毫秒之像框率執行時間。相同的應用130可具有75FPS之最大像框執行率,其對應至每像框大約13.33毫秒之像框率執行時間。該等實施例是不受限定於本文脈絡中。
在方塊410,邏輯流程400可決定系統100是否在電池電力140上操作。例如,系統100可以是在電池電力180 上操作或可自外部直流電源150接收電力。一外部直流電源170可以是***上至交流電(AC)插座以接通電源之系統表示。來自AC電源插座之電力可通過一整流器而轉換AC為供操作系統100之直流電。當系統100接收來自外部直流電源170之電力時,電力消耗是較小之議題。但是,當系統100自電池180接收電力時,電力消耗成為議題,因為電池180中之電荷量是有限並且由於系統100使用而漸漸減少。圖形驅動器140能判定何時系統100是在電池電力180上操作。於此情況中,某些電力節省技術可被實作以延長電池壽命而供電給系統100。該等實施例是不受限定於本文脈絡中。
在方塊415,邏輯流程400可計算每毫秒之CPU時脈週期數。例如,CPU 110可在指定的一(1)千兆赫(GHz)時脈率操作。對於CPU 110之1千兆赫時脈率對應至每毫秒一百萬時脈週期。該等實施例是不受限定於本文脈絡中。
在方塊420,邏輯流程400可決定最小像框率執行時間。於上述範例中,應用130具有50FPS之最小像框率。一秒是等於1000毫秒。因此,1000毫秒/50FPS產生每像框20毫秒之最小像框率執行時間。該等實施例是不受限定於本文脈絡中。
在方塊425,邏輯流程400可決定在先前一像框的末端之CPU時戳。例如,其可以是自上面區塊315得知每毫秒的時脈週期數。在先前一像框末端的CPU時戳可藉由以目前CPU計數器除以先前決定之每毫秒的時脈週期而被決定。該除法運作結果產生以毫秒表示在先前像框末端之CPU 時戳的時間數值。該等實施例是不受限定於本文脈絡中。
在方塊430,邏輯流程400可決定在目前像框末端之CPU時戳。例如,其可以是自上面區塊415得知每毫秒的時脈週期數。在目前像框末端之CPU時戳可藉由以目前CPU計數器除以先前決定之每毫秒的時脈週期而被決定。該除法運作結果產生以毫秒表示在目前像框末端之CPU時戳的時間數值。該等實施例是不受限定於本文脈絡中。
在方塊435,邏輯流程400可計算在先前像框末端以及目前像框末端之間的經過時間。例如,其可以是自上面區塊425得知在先前像框末端之CPU時戳是以毫秒表示的一數值。其也可以是自上面區塊430得知在目前像框末端之CPU時戳是以毫秒表示的另一數值。自區塊430中所得到的數值減去區塊425中所得到的數值產生用於應用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可決定時間差量是否大於零(0)。例如,對於應用之目前像框率可以是在較高於最小像框率之位準。當系統100是在電池電力180上操作時,藉由迫使目前像框率中之減少以等於最小像框率而有節省電力之機會。當時間差量是大於零毫秒時,其意謂著系統是產生比對於應用130之最小像框率所必須者有更多的像框。該等實施例是不受限定於本文脈絡中。
在方塊455,當時間差量是大於零(0)時,邏輯流程400可將關聯產生像框之應用130的CPU線程置於睡眠狀態,例如,因為時間差量是大於零(0)毫秒,系統100可藉由降低像框率至利用應用130所支援的最小像框率而能夠減低其之工作負載。這可藉由將產生對於應用130之像框155的CPU線程置於睡眠狀態經過在方塊440所計算的時間差量而被完成。參看至範例,CPU線程可產生於13.33毫秒之 像框155並且呼叫圖形驅動器140呈現像框155。在正常情況下,CPU線程將保持於致動狀態中並且繼續工作而且往前移動以產生下一個像框。但是,藉由將CPU線程置於睡眠狀態經過3.34毫秒之時間差量,並且CPU 110在那些的3.34毫秒期間不需要工作以產生像框155。只要時間差量保持正值,CPU線程將停留在睡眠狀態中。在方塊460,一旦時間差量終止至零,圖形驅動器140接著可呈現像框至顯示器160。淨量結果是,於這範例中,CPU線程可以在25%的時間置於睡眠狀態,以迫使75FPS之目前像框率下降至60FPS之減低像框率,因而節省電力並且延長電池180之壽命。被使用於範例中之數目是說明用的並且可以於不同的系統100或應用130是不同。該等實施例是不受限定於本文脈絡中。
於另一實施例中,應用130可呼叫圖形驅動器140呈現像框155。在處理像框呈現之前,圖形驅動器140可將應用處理程序(例如,CPU線程)置於睡眠狀態經過總像框執行時間的一固定百分比。該百分比可以是取決於剩餘的電池電力180。將應用處理程序置於睡眠狀態經過某一時間週期可以減低可被執行之每秒最大像框(FPS)。
對於上述實施例之假性碼可如下所示:Present() { //only limit the frame rate if running on battery power if(UsingDCBatteryPower()) { //calculate the number of CPU clocks that equal one millisecond static const double clocksPerMs= (double)GetCPUFrequency()/1000.f; //determine the CPU timestamp at the end of the previous frame static double prevFrameMs= (double)GetCurrentCPUCounter()/clocksPerMs; //determine the CPU timestamp at the end of the current frame double currFrameMs= (double)GetCurrentCPUCounter()/clocksPerMs; //calculate the minimum frame execution time in milliseconds as a percentage //of the current frame execution time,where the percentage is a function //of the remaining battery power const double msPerFrame= (currFrameMs-prevFrameMs)* (double)DynamicReductionPercentage(batteryPower); bool complete=false; do { currFrameMs= (double)GetCurrentCPUCounter()/clocksPerMs; //calculate the number of milliseconds elapsed between the previous //and current frame const double elapsedMs=currFrameMs-prevFrameMs; //calculate the number of milliseconds remaining to limit the frame execution to the //minimum frame execution time const double remainingMs=msPerFrame-elapsedMs; if(remainingMs>=1.0f) { //put the CPU thread to sleep Sleep((DWORD)remainingMs); } else { complete=true; } //Sleep function may return early,so continue putting the thread to sleep //until the minimum time has elapsed }while(!complete); prevFrameMs=currFrameMs; } //Present the frame PresentFrame(); }
圖5是圖解地說明依據本發明實施例之邏輯流程500的實施例,其中電池電力藉由降低GPU 125工作負載而被節省。邏輯流程500可以是表示藉由此處被說明之一個或多個實施例被執行的一些或所有操作。
圖5展示之說明的實施例中,在方塊505,CPU 110可執行一應用130。例如,一個或多個應用130可在CPU 110的控制之下於系統100上執行。各個應用105可以關聯於圖形驅動器140之實例。各個應用130可產生最後預期在顯示器160上顯示之視訊內容像框155。像框155藉由應用130被產生的像框率(例如,每秒像框或FPS)可以是可變的並且包含一界定的像框執行時間,其中該界定像框執行時間可以是最小像框執行時間。
圖形驅動器140可被應用130呼叫以呈現像框155。在連續的呼叫以再送像框155之間的時間被稱為像框率並且可以毫秒被表示。在正常操作情況之下,各個應用130將依據在所給的應用105內所指定的設定而執行。例如,一應用130可具有50FPS之最小像框執行率,其對應至每像框20毫秒之像框率執行時間。相同的應用130可具有75FPS之最大像框執行率,其對應至每像框大約13.33毫秒之像框率執行時間。該等實施例是不受限定於本文脈絡中。
在方塊510,邏輯流程500可決定系統100是否在電池電力140上操作。例如,系統100可以是在電池電力180上操作或可自外部直流電源150接收電力。一外部直流電源170可以是***上至交流電(AC)插座以接通電源之系統表示。來自AC電源插座之電力可通過一整流器而轉換AC為供操作系統100之直流電。當系統100接收來自外部直流電源170之電力時,電力消耗是較小之議題。但是,當系統100自電池180接收電力時,電力消耗成為議題,因為電池180 中之電荷量是有限並且由於系統100使用而漸漸減少。圖形驅動器140能判定何時系統100是在電池電力180上操作。於此情況中,某些電力節省技術可被實作以延長電池壽命而供電給系統100。該等實施例是不受限定於本文脈絡中。
在方塊515,邏輯流程500可計算每毫秒之CPU時脈週期數。例如,CPU 110可在指定的一(1)千兆赫(GHz)時脈率操作。對於CPU 110之1千兆赫時脈率對應至每毫秒一百萬時脈週期。該等實施例是不受限定於本文脈絡中。
在方塊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時戳是以毫秒表示的另一數值。自區塊530中所得到的數值減去區塊525中所得到的數值產生用於應用130之目前像框執行率時間。如果對於先前像框的時間數值被發現是110毫秒並且目前像框之時間數值被發現是123.33毫秒,則差量將是13.33毫秒。轉換這值回至目前像框率則產生75FPS。該等實施例是不受限定於本文脈絡中。
在方塊540,邏輯流程500可決定一作為剩餘電池電力180之函數的減低像框率執行時間。例如,該減低像框率執行時間可依據在方塊535計算的目前像框率之百分比被決定。如果目前像框率是75FPS並且最小像框率是50FPS,則應用可支援在50以及75FPS之間的像框率。因為系統100是在電池電力180上操作,像框率之減少可節省電力。例如,目前像框率之20%的減少將減低像框率至60FPS。60FPS對應至每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可決定時間差量是否大於零(0)。例如,對於應用之目前像框率可以是在較高於最小像框率的位準。當系統100是在電池電力180上操作時,藉由迫使目前像框率中之減少以等於最小像框率而有節省電力之機會。當時間差量是大於零毫秒時,其意謂著系統是產生比對於應用130之最小像框率所必須者有更多的像框。該等實施例是不受限定於本文脈絡中。
在方塊555,當時間差量是大於零(0)時,邏輯流程400可將關聯產生像框之應用130的CPU線程置於睡眠狀態,例如,因為時間差量是大於零(0)毫秒,系統100可藉由 降低像框率至利用應用130所支援的最小像框率而能夠減低其之工作負載。這可藉由將產生對於應用130之像框155的CPU線程置於睡眠狀態經過在方塊540被計算的時間差量而被完成。參看範例,CPU線程可產生於13.33毫秒之像框155並且呼叫圖形驅動器140呈現像框155。在正常情況下,CPU線程將保持致動並且繼續工作並且往前移動以產生下一個像框。但是,藉由將CPU線程置於睡眠狀態經過3.34毫秒之時間差量,並且CPU 110在那些的3.34毫秒期間不需要工作以產生像框155。只要時間差量保持正值,CPU線程將停留在睡眠狀態中。在方塊560,一旦時間差量終止至零,圖形驅動器140接著可呈現像框至顯示器160。淨量結果是,於這範例中,CPU線程可以在25%的時間置於睡眠狀態,以迫使75FPS之目前像框率下降至60FPS之減低像框率,因而節省電力並且延長電池180之壽命。被使用於範例中之數目是說明用的並且可以於不同的系統100或應用130是不同。該等實施例是不受限定於本文脈絡中。
各種實施例可使用硬體元件、軟體元件、或其二者之組合被實作。硬體元件範例可包含處理器、微處理機、電路、電路元件(例如,電晶體、電阻器、電容器、電感器以及其它者)、積體電路、應用特定積體電路(ASIC)、可程控邏輯設備(PLD)、數位信號處理器(DSP)、場式可程控閘陣列(FPGA)、邏輯閘、暫存器、半導體設備、晶片、微晶片、晶片組、以及其它者。軟體範例可包含軟體構件、程式、應用、電腦程式、應用節目、系統程式、機器程式、 操作系統軟體、中間軟體、韌體、軟體模組、程式段、子程式、函數、方法、步驟、軟體界面、應用程式界面(API)、指令集、計算碼、電腦碼、數碼片段、電腦碼片段、字組、數值、符號、或其任何組合。決定一實施例是否使用硬體元件及/或軟體元件被實作可依據下列任何數量之因素而變化,例如,所需的計算率、功率位準、熱容限、處理週期預算、輸入資料率、輸出資料率、記憶體資源、資料匯流排速率以及其他設計或性能限制。
圖6是圖解地說明系統600之實施例,系統600可以是適用於實作所揭示之強制性VSYNC處理實施例。於實施例中,系統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。例如,界面可以是高清晰度多媒體界面、顯示埠、無線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)快速圖形卡。
於各種實施例中,被展示於系統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 核心”,可被儲存於有實體、機器可讀取媒體上,並且被供應至各種顧客或製造設備以裝載進入實際上構成邏輯或處理器之製造機器。
一些實施例可使用詞句“一實施例”或“一個實施例”與它們的衍生詞一起被說明。這些名詞表示關連上述實施例之一特定特點、結構或特性被包含於至少一實施例中。於說明文中各處出現之詞組“於一實施例中”不必定得是都相關於相同實施例。進一步地,一些實施例可使用詞句“耦合”以及“連接”與它們的衍生字一起被說明。這些名詞不必定得是預期彼此為同義字。例如,一些實施例可使用名詞“連接”及/或“耦合”被說明,以指示二個或更多個元件是彼此直接實際或電氣接觸。但是,名詞“耦合”也可能表示二個或更多個元件不是彼此直接接觸,但是仍然彼此共同操作或互動。
所強調的是,本揭示之摘要被提供以允許讀者快速地明白技術之揭示性質。應了解,其將不被使用以解釋或限制申請專利範圍之範疇或含義。此外,於前述詳細說明中,為了流暢揭示之目的,可看見各種特點一起被聚集在單一實施例中。這揭示方法將不被詮釋作為反映申請專利之實施例明顯地需要比各申請專利項中所列舉者有更多特點之含義。反而,如下面申請專利範圍反映,本發明主題以較少於個別被揭示之實施例的所有特點方式展現。因此下面的申請專利範圍被包含於詳細說明中,而各申請專利項本身獨立地如一個別之實施例。於附加之申請專利範 圍中,名詞“包含”以及“於其中”分別地被使用作為平常英文之分別名詞“包括”以及“其中”的等效詞。此外,名詞“第一”、“第二”、“第三”,以及其它者,被使用僅作為標籤,並且不打算強加數值需求在它們的物件上。
上面已被說明者包含所揭示結構範例。當然,是不可能說明每一個可想像到的構件及/或方法之組合,但是通常熟習本技術者可辨識,許多進一步的組合以及重置是可能的。因此,新穎結構是預期包含落在附加申請專利範圍的精神以及範疇內之所有的此等變更、修改以及變化。
300‧‧‧降低3D工作負載功率之邏輯流程圖
305-355‧‧‧降低3D工作負載功率之邏輯流程步驟

Claims (24)

  1. 一種裝置,其包含:一處理器電路;一顯示器,其通訊地耦合於該處理器電路;以及一圖形驅動器,其可操作於該處理器電路上執行一應用,其以關聯於一界定像框率執行時間的一界定像框率,而產生視訊內容像框,該圖形驅動器可操作以進行下列事項:計算在一先前像框以及一目前像框之間的一經過時間以決定一目前像框率執行時間;藉由自該界定像框率執行時間減去該目前像框率執行時間,以計算一時間差量;當該時間差量是大於零(0)時,將關聯於產生該目前像框之應用的一處理器線程,切換至一睡眠狀態;以及當該時間差量達到零(0)時,則呈現該目前像框至一顯示器;其中該顯示器可操作以渲染利用該圖形驅動器所呈現的該目前像框。
  2. 如申請專利範圍第1項之裝置,其包含耦合至該處理器電路的一電池,該電池可操作以提供電力至該處理器電路。
  3. 如申請專利範圍第1項之裝置,其中,該界定像框率是 該應用可支援的一最小像框率。
  4. 一種裝置,其包含:一處理器電路;一圖形驅動器,其可操作於該處理器電路上執行一應用,其以關聯於一界定像框率執行時間的一界定像框率,而產生視訊內容像框;以及一顯示器,其通訊地耦合於該圖形驅動器;其中該圖形驅動器可操作以進行下列事項:計算在一先前像框以及一目前像框之間的一經過時間,以決定一目前像框率執行時間;固定在該界定像框率執行時間以及該目前像框率執行時間之間的一減低像框率執行時間;藉由自該減低像框率執行時間減去該目前像框率執行時間,以計算一時間差量;當該時間差量是大於零(0)時,將關聯於產生該目前像框之應用的一處理器線程切換至一睡眠狀態;以及當該時間差量達到零(0)時,呈現該目前像框至一顯示器;其中該顯示器可操作以渲染利用該圖形驅動器所呈現的該目前像框。
  5. 如申請專利範圍第4項之裝置,其包含可操作以供電給該處理器電路之一電池。
  6. 如申請專利範圍第4項之裝置,該圖形驅動器可操作以 決定剩餘電池電力之一百分比位準。
  7. 如申請專利範圍第6項之裝置,該圖形驅動器可操作以當剩餘電池電力之該百分比位準是較低於一臨界百分比位準時,則將該減低像框率調整為更低。
  8. 如申請專利範圍第4項之裝置,該界定像框率是該應用可支援的一最小像框率。
  9. 一種方法,其包含下列步驟:於一中央處理單元(CPU)上執行一應用,該應用可操作而以關聯於一界定像框率執行時間的一界定像框率,而產生視訊內容像框;計算在一先前像框以及一目前像框之間的一經過時間,以決定一目前像框率執行時間;藉由自該界定像框率執行時間減去該目前像框率執行時間,以計算一時間差量;當該時間差量是大於零(0)時,將關聯於產生該目前像框之應用的一CPU線程切換至一睡眠狀態;以及當該時間差量達到零(0)時,則呈現該目前像框至一顯示器。
  10. 如申請專利範圍第9項之方法,其包含:僅當該CPU是在電池電力上操作時,才切換該CPU線程至一睡眠狀態。
  11. 如申請專利範圍第9項之方法,其中該界定像框率是該應用可支援的一最小像框率。
  12. 一種方法,其包含: 在一中央處理單元(CPU)上執行一應用,該應用可操作而以關聯於一界定像框率執行時間的一界定像框率而產生視訊內容像框;計算在一先前像框以及一目前像框之間的一經過時間,以決定一目前像框率執行時間;固定在該界定像框率執行時間以及該目前像框率執行時間之間的一減低像框率執行時間;藉由自該減低像框率執行時間減去該目前像框率執行時間,以計算一時間差量;當該時間差量是大於零(0)時,將關聯於產生該目前像框之應用的一CPU線程切換至一睡眠狀態;以及當該時間差量達到零(0)時,則呈現該目前像框至一顯示器。
  13. 如申請專利範圍第12項之方法,其包括:僅當該CPU是在電池電力上操作時,才切換該CPU線程至一睡眠狀態。
  14. 如申請專利範圍第12項之方法,其包括:當該CPU是在電池電力上操作時,則決定剩餘電池電力之一百分比位準。
  15. 如申請專利範圍第12項之方法,其包括:當剩餘電池電力之百分比位準是較低於一臨界百分比位準時,則將該減低像框率調整為更低。
  16. 如申請專利範圍第12項之方法,其中該界定像框率是該應用可支援之一最小像框率。
  17. 一種製造物件,其包括含有指令之一電腦可讀取儲存媒體,當該等指令被執行時導致一系統進行下列事項:在一處理器電路上執行一應用,該應用可操作而以關聯於一界定像框率執行時間的一界定像框率,而產生視訊內容像框;決定一目前像框率執行時間;決定在該目前像框率執行時間以及該界定像框率執行時間之間的一時間差量;將關聯於產生該目前像框的應用之一CPU線程,切換至一睡眠狀態於等於該時間差量的一週期內;以及當該時間差量達到零(0)時,則呈現該目前像框至一顯示器。
  18. 如申請專利範圍第17項之物件,其包含指令當被執行時,導致一系統進行:僅當該處理器電路是在電池電力上操作時,才切換該CPU線程至一睡眠狀態。
  19. 如申請專利範圍第17項之物件,其中該界定像框率是該應用可支援的一最小像框率。
  20. 一種製造物件,其包含含括有指令之一電腦可讀取儲存媒體,當該等指令被執行時導致一系統進行下列事項:在一中央處理單元(CPU)上執行一應用,該應用可操作而以關聯於一界定像框率執行時間的一界定像框率,而產生視訊內容像框;決定一目前像框率執行時間; 固定一減低像框率執行時間,其係較低於該目前像框率執行時間;決定在該目前像框率執行時間以及該減低像框率執行時間之間的一時間差量;將關聯於產生該目前像框的應用之一CPU線程切換至一睡眠狀態於等於該時間差量的一週期內;以及當該時間差量達到零(0)時,則呈現該目前像框至一顯示器。
  21. 如申請專利範圍第20項之物件,其包含指令當被執行時,導致一系統進行:僅當該CPU是在電池電力上操作時,才將該CPU線程切換至一睡眠狀態。
  22. 如申請專利範圍第20項之物件,其包含指令當被執行時,導致一系統進行:當該CPU是在電池電力上操作時,則決定剩餘電池電力之一百分比位準。
  23. 如申請專利範圍第22項之物件,其包含指令當被執行時,導致一系統進行:當剩餘電池電力之百分比位準是較低於一臨界百分比位準時,則將該減低像框率調整為更低。
  24. 如申請專利範圍第20項之物件,其中該界定像框率是該應用可支援的一最小像框率。
TW101142606A 2011-11-30 2012-11-15 降低用於3d工作負載之功率的技術 TWI601092B (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
TW201333875A TW201333875A (zh) 2013-08-16
TWI601092B true TWI601092B (zh) 2017-10-01

Family

ID=48535899

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101142606A TWI601092B (zh) 2011-11-30 2012-11-15 降低用於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)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2786224B1 (en) * 2011-11-30 2020-05-06 Intel Corporation Reducing power for 3d workloads
US20180144436A1 (en) * 2014-06-24 2018-05-24 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
CN106095541B (zh) * 2016-05-31 2019-11-05 深圳市万普拉斯科技有限公司 睡眠管理方法及相关装置
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 (4)

* 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
TW200607354A (en) * 2004-05-04 2006-02-16 Qualcomm Inc Method and apparatus to construct bi-directional predicted frames for temporal scalability
CN101025655A (zh) * 2006-02-16 2007-08-29 株式会社东芝 屏幕画面发送装置与屏幕画面产生方法
US20080079732A1 (en) * 2006-10-02 2008-04-03 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

Family Cites Families (14)

* 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
JP2006115470A (ja) 2004-09-16 2006-04-27 Ntt Docomo Inc 映像評価装置、フレームレート決定装置、映像処理装置、映像評価方法、および映像評価プログラム
WO2006073578A2 (en) * 2004-11-16 2006-07-13 Broadramp, Inc. System for rapid delivery of digital content via the internet
JP5123472B2 (ja) * 2005-03-09 2013-01-23 京セラ株式会社 携帯情報端末
JP4887727B2 (ja) * 2005-10-20 2012-02-29 ソニー株式会社 画像信号処理装置、カメラシステム、および画像信号処理方法
JP2007164071A (ja) * 2005-12-16 2007-06-28 Toshiba Corp 情報処理装置および動作速度制御方法
US9015075B2 (en) * 2006-09-29 2015-04-21 Oracle America, Inc. Method and apparatus for secure information distribution
US20080108396A1 (en) * 2006-11-02 2008-05-08 Sara Maria Lundqvist Wireless communications terminals that selectively power radio communications components
US9256265B2 (en) 2009-12-30 2016-02-09 Nvidia Corporation Method and system for artificially and dynamically limiting the framerate of a graphics processing unit
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 (4)

* 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
TW200607354A (en) * 2004-05-04 2006-02-16 Qualcomm Inc Method and apparatus to construct bi-directional predicted frames for temporal scalability
CN101025655A (zh) * 2006-02-16 2007-08-29 株式会社东芝 屏幕画面发送装置与屏幕画面产生方法
US20080079732A1 (en) * 2006-10-02 2008-04-03 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

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI601092B (zh) 降低用於3d工作負載之功率的技術
TWI575368B (zh) 用於降低三維(3d)應用程式工作負載的裝置及方法以及電腦可讀取儲存媒體
TWI516912B (zh) 適應性圖形次級系統電源及效能管理
US9652300B2 (en) Systems, methods, and computer program products for preemption of threads at a synchronization barrier
TWI567548B (zh) 基於電池統計資料之視覺指示器及媒體與遊戲屬性的調整技術
JP5792337B2 (ja) グラフィクスのレンダリング中における電力消費の低減
TWI540891B (zh) 媒體播放工作量排程器
US10228748B2 (en) Context aware power management for graphics devices
US10748234B2 (en) Reducing power for 3D workloads
JP2015530661A (ja) プロセッサにおける周波数変化に関連するオーバーヘッドの削減
US9792151B2 (en) Energy efficient burst mode
US9514715B2 (en) Graphics voltage reduction for load line optimization
US20150170315A1 (en) Controlling Frame Display Rate
TWI587694B (zh) 固定功能媒體裝置之先佔
US20150170317A1 (en) Load Balancing for Consumer-Producer and Concurrent Workloads