TWI622015B - 用於處理單元之以訊框為基礎之時脈速率調整 - Google Patents

用於處理單元之以訊框為基礎之時脈速率調整 Download PDF

Info

Publication number
TWI622015B
TWI622015B TW105142545A TW105142545A TWI622015B TW I622015 B TWI622015 B TW I622015B TW 105142545 A TW105142545 A TW 105142545A TW 105142545 A TW105142545 A TW 105142545A TW I622015 B TWI622015 B TW I622015B
Authority
TW
Taiwan
Prior art keywords
gpu
frame
clock rate
time
busyness
Prior art date
Application number
TW105142545A
Other languages
English (en)
Other versions
TW201729162A (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 TW201729162A publication Critical patent/TW201729162A/zh
Application granted granted Critical
Publication of TWI622015B publication Critical patent/TWI622015B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Sources (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

本發明描述一處理器基於一圖形處理單元(GPU)完成一當前訊框之再現之時間與該GPU完成緊接在該當前訊框之前的一前一訊框的再現之時間之間的一時間間隔來判定該GPU忙碌於再現該當前訊框之程度的技術。該處理器基於該GPU忙碌於再現該當前訊框之程度的該判定來設定該GPU之一時脈速率。

Description

用於處理單元之以訊框為基礎之時脈速率調整
本發明係關於時脈速率調整,且更特定言之係關於圖形處理單元(GPU)之時脈速率調整。
行動裝置藉由有限大小及/或容量之電池供電。通常,行動裝置用於進行電話通話、檢查電子郵件、記錄/播放照片/視訊、收聽無線電、導航、web瀏覽、玩遊戲、管理裝置,及執行計算。許多此等動作利用圖形處理單元(GPU)來執行一些任務。實例GPU任務包括內容再現至顯示器及執行通用計算(compute computation)(例如,在通用GPU(GPGPU)操作中)。因此,GPU通常為行動裝置中之功率的大消費者。因而,管理GPU之功率消耗以便延長電池壽命係有益的。
一般而言,本發明描述用於主動地調整圖形處理單元(GPU)之時脈信號之頻率的技術。在一些實例中,中央處理單元(CPU)判定GPU完成一個訊框的再現之時間與GPU完成緊接在前面之訊框的再現之時間之間的時間間隔。CPU亦判定GPU在此時間間隔期間忙碌之程度,並基於GPU在該時間間隔期間忙碌之程度的判定而判定GPU的時脈信號之頻率。以此方式,CPU可基於單個訊框之忙碌程度迅速判定時脈信號之頻率,而不是在判定時脈信號之頻率之前等待多個訊框被處理。 在一個實例中,本發明描述一種時脈速率判定之方法,該方法包含:藉由處理器判定圖形處理單元(GPU)完成再現第一訊框的第一時間例項;藉由處理器判定GPU完成再現緊接在第一訊框之前的第二圖框的第二時間例項;藉由處理器基於第一時間例項及第二時間例項而判定時間間隔;藉由處理器判定在時間間隔期間用於再現第一訊框的GPU之忙碌程度;及基於判定出之忙碌程度設定GPU之時脈速率。 在一個實例中,本發明描述一種用於時脈速率判定之裝置,該裝置包含:記憶體,其經組態以儲存由圖形處理單元(GPU)使用用於再現第一訊框及第二訊框的圖形資料;及處理器,其包含積體電路,該處理器經組態以判定GPU完成再現第一訊框的第一時間例項,判定GPU完成再現第二訊框的第二時間例項,基於第一時間例項及第二時間例項判定時間間隔,判定在時間間隔期間用於再現第一訊框的GPU之忙碌程度,並基於判定出之忙碌程度設定GPU之時脈速率。 在一個實例中,本發明描述一種儲存指令之非暫時性電腦可讀儲存媒體,該等指令當經執行時使得一個或多個處理器執行以下操作:判定圖形處理單元(GPU)完成再現第一訊框之第一時間例項;判定GPU完成再現緊接在第一訊框之前的第二訊框之第二時間例項;基於第一時間例項及第二時間例項判定時間間隔;判定在時間間隔期間用於再現第一訊框的GPU之忙碌程度;並基於判定出之忙碌程度設定GPU之時脈速率。 在一個實例中,本發明描述一種用於時脈速率判定之裝置,該裝置包含;用於判定圖形處理單元(GPU)完成再現第一訊框的第一時間例項的構件;用於判定GPU完成再現緊接在第一訊框之前的第二訊框之第二時間例項的構件;用於基於第一時間例項及第二時間例項判定時間間隔的構件;用於判定在時間間隔期間用於再現第一訊框的GPU之忙碌程度的構件;及用於基於判定出之忙碌程度設定GPU之時脈速率的構件。 在以下隨附圖式及實施方式中闡述一或多個實例之細節。其他特徵、目標及優勢自描述、圖式及申請專利範圍將係顯而易見的。
諸如圖形處理單元(GPU)之處理單元包括設定GPU處理指令所藉以之速率(例如,設定GPU之操作頻率)的內部時脈。較高時脈速率導致GPU之較高功率消耗,但允許GPU每秒處理更多命令。換言之,較高時脈速率允許GPU提供較高效能,但以較高功率消耗為代價。較低時脈速率導致GPU之較小功率消耗,但減少GPU每秒可處理的命令之數目。換言之,較低時脈速率使得GPU提供較低效能,但以較低功率消耗為收益。舉例而言,施加至GPU或GPU內之振盪器的電壓位準設定時脈速率且較高電壓位準導致較高時脈速率,但更多功率消耗,且較低電壓位準導致較低時脈速率,及較小功率消耗。 在一些實例中,主機處理器(例如,中央處理單元(CPU))可判定GPU操作應藉以的頻率。如上文所描述,在較高頻率下之操作導致快速完成,但以額外功率消耗為代價。相應地,主機處理器嘗試設定GPU之操作頻率以在不影響及時完成情況下使功率消耗保持為低。 為易於描述,本發明描述主機處理器判定GPU之操作頻率(例如,時脈速率)。然而,在本發明中所描述之技術並不如此受限,且實例技術可應用於GPU,亦如下文所描述。 本發明描述基於由GPU用以再現一個訊框的資源主動地調整GPU之時脈速率(例如,調整GPU之操作頻率)所藉以的實例方式。為判定操作頻率,主機處理器判定在某一時間量內如何忙碌(例如,多少算術單元經操作)。作為一個實例,主機處理器可判定GPU在所設定時間間隔如何忙碌。作為另一實例,主機處理器可每當GPU空閒時(例如,自GPU上次空閒之時至GPU再次空閒時的例項之時間間隔)判定GPU如何忙碌。在一些情況中,儘管GPU將處理的資料量可相對恆定,但GPU可在常規間隔中不接收資料。因此,在設定間隔處或每當GPU空閒時判定GPU如何忙碌可導致主機處理器判定極大波動GPU操作頻率位準。在其中GPU判定其時脈速率之實例中,GPU可執行類似於上文針對主機處理器所描述的彼等功能之功能,且與主機處理器相同,GPU可判定極大波動操作頻率位準。 在本發明中所描述之技術中,主機處理器判定GPU完成再現訊框之時(例如,每當GPU完成處理訊框並到達訊框之末端時)。主機處理器接著判定自訊框之處理完成至緊接在前面之訊框的處理完成GPU如何忙碌。藉由量測GPU訊框至訊框如何忙碌,主機處理器可更準確判定GPU之操作頻率。在一些實例中,GPU可判定自訊框之處理完成至緊接在前面之訊框的處理完成GPU如何忙碌,並判定GPU之操作頻率。 可存在主機處理器可判定GPU完成處理訊框之時所藉以的各種方式。作為一個實例,GPU可每當GPU完成處理訊框所需要的複數個任務中之一任務時向主機處理器指示。在完成最後任務之後,主機處理器可判定GPU在訊框的末端處。在一些情況中,在GPU完成處理訊框之後,主機處理器執行用以交換緩衝器以釋放緩衝器空間以用於處理下一訊框的功能。舉例而言,用以交換緩衝器之功能將一個訊框緩衝器自讀取改變至寫入及將另一緩衝器自寫入改變至讀取,以使得一個緩衝器被寫入同時另一個緩衝器被顯示。交換緩衝器之功能可經組態以包括主機處理器可判定訊框之末端所藉以的指令。 在其中GPU設定其時脈速率之實例中,GPU(例如,經由控制器)可判定GPU完成每一訊框之處理之時。作為回應,控制器可判定GPU訊框至訊框如何忙碌,且基於訊框至訊框忙碌時間判定時脈速率。 由於實例技術可藉由主機處理器、GPU或執行一些功能之主機處理器與執行一些功能之GPU的某一組合實施,因此在本發明中所描述之技術可被視為藉由處理器執行。處理器之一個實例為主機處理器(例如,其中主機處理器判定GPU之時脈速率並指導GPU設定時脈速率),處理器之一個實例為GPU(例如,其中GPU判定其自身時脈速率並相應地設定時脈速率),且處理器之一個實例為主機處理器與GPU之組合(例如,主機處理器與GPU一起判定GPU之時脈速率並設定GPU之時脈速率)。 相應地,處理器可判定在GPU完成處理第一訊框時的第一時間例項,及在GPU完成處理緊接在第一訊框之前的第二訊框時的第二時間例項。處理器可基於第一時間例項及第二時間例項判定時間間隔,並判定在時間間隔期間GPU之忙碌程度。基於忙碌程度,處理器設定GPU之時脈速率。 舉例而言,處理器可基於忙碌程度判定GPU之操作頻率(例如,時脈速率)。在其中主機處理器判定時脈速率之實例中,主機處理器可指導GPU基於經判定時脈速率設定時脈速率。在其中GPU判定時脈速率之實例中,GPU可基於經判定時脈速率設定時脈速率。 圖1為說明可用於實施本發明之技術的實例計算裝置2的方塊圖。計算裝置2可包含個人電腦、桌上型電腦、膝上型電腦、電腦工作站、視訊遊戲平台或控制台、無線通信裝置(諸如,行動電話、蜂巢式電話、衛星電話及/或行動電話手持機)、陸線電話、網際網路電話、手持型裝置(諸如,攜帶型視訊遊戲裝置或個人數位助理(PDA))、個人音樂播放器、視訊播放器、顯示裝置、電視、電視機上盒、伺服器、中間網路裝置、大型電腦、或處理及/或顯示圖形資料的任何其他類型的裝置。 如圖1之實例中所說明,計算裝置2包括使用者輸入介面4、CPU 6、記憶體控制器8、系統記憶體10、圖形處理單元(GPU)12、本端記憶體14、顯示介面16、顯示器18及匯流排20。使用者輸入介面4、CPU 6、記憶體控制器8、GPU 12及顯示介面16可使用匯流排20彼此通信。匯流排20可為多種匯流排結構中之任一者,諸如第三代匯流排(例如,超傳輸匯流排或無線帶寬匯流排)、第二代匯流排(例如,高級圖形埠匯流排、周邊組件互連(PCI)Express匯流排或進階可擴展介面(AXI)匯流排)或另一類型之匯流排或裝置互連件。應注意,圖1中所示之不同組件之間的匯流排及通信介面之特定組態僅為例示性的,且計算裝置之其他組態及/或具有相同或不同組件之其他圖形處理系統可用以實施本發明之技術。 CPU 6可包含控制計算裝置2之操作的通用或專用處理器。使用者可將輸入提供至計算裝置2以使CPU 6執行一或多個軟體應用程式。在CPU 6上執行之軟體應用程式可包括:例如,作業系統、文書處理器應用程式、電子郵件應用程式、總分析表應用程式、媒體播放器應用程式、視訊遊戲應用程式、圖形使用者介面應用程式或另一程式。使用者可經由一或多個輸入裝置(未圖示)提供輸入至計算裝置2,該等輸入裝置諸如鍵盤、滑鼠、麥克風、觸控板或經由使用者介面4經耦接至計算裝置2之另一輸入裝置。 在CPU 6上執行的軟體應用程式可包括一或多個圖形再現指令,其指導CPU 6將圖形資料再現至顯示器18。在一些實例中,軟體指令可符合圖形應用程式設計介面(API),諸如開放圖形程式管(OpenGL® )API、開放圖形程式管嵌入系統(OpenGL ES)API、OpenCL API、Direct3D API、X3D API、RenderMan API、WebGL API,或任何其他公共或專屬標準圖形API。技術不應考慮為限於需要特定API。 為了處理圖形再現指令,CPU 6可將一或多個圖形再現命令發出至GPU 12以使GPU 12執行圖形資料之再現的一些或全部。在一些實例中,待再現的圖形資料可包括例如點、線、三角形、四邊形、三角形帶等圖形基元之列表。 記憶體控制器8促進將資料轉移進入至及離開系統記憶體10。舉例而言,記憶體控制器8可接收記憶體讀取及寫入命令,且服務關於記憶體10之此類命令以便提供用於計算裝置2中之組件的記憶體服務。將記憶體控制器8通信地耦接至系統記憶體10。儘管在圖1之實例計算裝置2中將記憶體控制器8說明為自CPU 6及系統記憶體10兩者分離之處理模組,但在其他實例中,可將記憶體控制器8之功能性中的一些或全部實施於CPU 6及系統記憶體10中之一者或兩者上。 系統記憶體10可儲存可由CPU 6存取以用於執行的程式模組及/或指令及/或由在CPU 6上執行的程式使用的資料。舉例而言,系統記憶體10可儲存使用者應用程式及與該應用程式相關聯之圖形資料。系統記憶體10可另外儲存用於由計算裝置2之其他組件使用及/或由其產生的資訊。舉例而言,系統記憶體10可充當用於GPU 12的裝置記憶體且可儲存待由GPU 12操作的資料以及由GPU 12執行的操作產生的資料。舉例而言,系統記憶體10可儲存紋理緩衝器、深度緩衝器、模板緩衝器、頂點緩衝器、訊框緩衝器或其類似者之任何組合。另外,系統記憶體10可儲存命令串流以供GPU 12處理。系統記憶體10可包括一或多種依電性或非依電性記憶體或儲存裝置,諸如,隨機存取記憶體(RAM)、靜態RAM(SRAM)、動態RAM(DRAM)、唯讀記憶體(ROM)、可抹除可程式化ROM(EPROM)、電可抹除可程式化ROM(EEPROM)、快閃記憶體、磁性資料媒體或光學儲存媒體。 在一些態樣中,系統記憶體10可包括使CPU 6及/或GPU 12執行在本發明中歸於CPU 6及GPU 12的功能的指令。相應地,系統記憶體10可為其上儲存有指令的電腦可讀儲存媒體,該等指令當經執行時使得一個或多個處理器(例如,CPU 6及GPU 12)執行各種功能。 在一些實例中,系統記憶體10為非暫時性儲存媒體。術語「非暫時性」指示儲存媒體並不以載波或傳播信號體現。然而,術語「非暫時性」不應解釋成意謂系統記憶體10為非可移動或其內容為靜態。作為一個實例,可自裝置2移除系統記憶體10,並將其移動至另一裝置。作為另一實例,可將實質上類似於系統記憶體10之記憶體插入至裝置2中。在某些實例中,非暫時性儲存媒體可儲存隨著時間的過去可改變之資料(例如,在RAM中)。 GPU 12可經組態以執行圖形操作以向顯示器18再現一或多個圖形基元。因此,當在CPU 6上執行的軟體應用程式中的一者需要圖形處理時,CPU 6可向GPU 12提供圖形命令及圖形資料以用於向顯示器18再現。圖形命令可包括(例如)繪製命令(諸如繪製調用)、GPU狀態程式設計命令、記憶體轉移命令、通用計算命令、核心執行命令等。在一些實例中,CPU 6可藉由將命令及圖形資料寫入至記憶體10而將命令及圖形資料提供至GPU 12,記憶體10可由GPU 12存取。在一些實例中,GPU 12可經進一步組態以針對在CPU 6上執行的應用程式執行通用計算。 在一些情況下,GPU 12可建置有與CPU 6相比提供對向量運算更有效處理的高度並行之結構。舉例而言,GPU 12可包括經組態以按並行方式對多個頂點或像素操作的複數個處理元件。在一些情況下,GPU 12之高度並行性質允許GPU 12比使用CPU 6直接將場景繪製至顯示器18更快速地將圖形影像(例如,GUI及二維(2D)及/或三維(3D)圖形場景)繪製至顯示器18上。另外,GPU 12之高度並行性質可允許GPU 12比CPU 6更快速地處理用於通用計算應用的某些類型之向量及矩陣運算。 在一些情況下,可將GPU 12整合至計算裝置2之母板中。在其他情況下,GPU 12可存在於圖形卡上,該圖形卡安裝於計算裝置2之母板中的埠中或可以其他方式併入經組態以與計算裝置2交互操作的周邊裝置內。在其他情況下,GPU 12可定位於與CPU 6相同之微晶片上,從而形成系統單晶片(SoC)。GPU 12及CPU 6可包括一個或多個處理器,諸如一或多個微處理器、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、數位信號處理器(DSP),或其他等效整合或離散邏輯電路。 GPU 12可直接耦接至本端記憶體14。因此,GPU 12可在不必使用匯流排20的情況下自本端記憶體14讀取資料並將資料寫入至本端記憶體14。換言之,GPU 12可使用本端儲存器而非晶片外記憶體來在本端處理資料。此藉由消除GPU 12經由匯流排20讀取及寫入資料的需要來允許GPU 12以更高效方式操作,經由匯流排讀取及寫入資料可經歷繁重的匯流排訊務。然而,在一些情況下,GPU 12可不包括單獨快取記憶體,而是改為經由匯流排20利用系統記憶體10。本端記憶體14可包括一或多個依電性或非依電性記憶體或儲存裝置,諸如隨機存取記憶體(RAM)、靜態RAM(SRAM)、動態RAM(DRAM)、可抹除可程式化ROM(EPROM)、電可抹除可程式化ROM(EEPROM)、快閃記憶體、磁性資料媒體或光學儲存媒體。 CPU 6及/或GPU 12可在系統記憶體10內分配的訊框緩衝器中儲存再現之影像資料。顯示介面16可自訊框緩衝器擷取該資料並組態顯示器18以顯示由所再現影像資料表示的影像。在一些實例中,顯示介面16可包括數位至類比轉換器(DAC),其經組態以將自訊框緩衝器擷取的數位值轉換成可由顯示器18消耗的類比信號。在其他實例中,顯示介面16可將數位值直接傳遞至顯示器18以用於處理。顯示器18可包括:監視器、電視、投影裝置、液晶顯示器(LCD)、電漿顯示板、發光二極體(LED)陣列、陰極射線管(CRT)顯示器、電子紙、表面傳導電子發射顯示器(SED)、雷射電視顯示器、奈米晶體顯示器或另一類型之顯示單元。顯示器18可整合於計算裝置2內。舉例而言,顯示器18可為行動電話手持機或平板電腦之螢幕。替代地,顯示器18可為經由有線或無線通信鏈路經耦接至計算裝置2之獨立裝置。舉例而言,顯示器18可為經由電纜或無線鏈路經連接至個人電腦之電腦監視器或平板顯示器。 如所描述,CPU 6可將圖形處理分擔至GPU 12,諸如需要大規模並行運算的任務。作為一個實例,圖形處理需要大規模並行運算,且CPU 6可將此類圖形處理任務分擔至GPU 12。然而,諸如矩陣運算之其他運算亦可得益於GPU 12之並行處理能力。在此等實例中,CPU 6可充分利用GPU 12之並行處理能力,以使GPU 12執行非圖形相關運算。 在本發明中所描述之技術中,第一處理單元(例如,CPU 6)將某些任務分擔至第二處理單元(例如,GPU 12)。為分擔任務,CPU 6輸出待由GPU 12執行的命令及為命令之運算元的資料(例如,命令操作所針對的資料)至系統記憶體10及/或直接輸出至GPU 12。GPU 12直接自CPU 6及/或自系統記憶體10接收命令及資料,並執行該等命令。在一些實例中,CPU 6可將待由GPU 12執行的命令,及用於命令之資料運算元儲存於在包括GPU 12及CPU 6之IC本端並由CPU 6及GPU 12兩者共用的記憶體(例如,本端記憶體14)中,而非將該等命令及資料運算元儲存在系統記憶體10中。一般而言,本發明中所描述之技術適用於CPU 6可使命令可用於在GPU 12上執行所藉以的各種方式,且該等技術不限於上文之實例。 GPU 12執行命令所藉以的速率係藉由時脈信號之頻率(亦稱作GPU 12之時脈速率或操作頻率)設定。舉例而言,GPU 12可在時脈信號之每一上升或下降邊緣執行命令,或在時脈信號之每一上升邊緣執行一個命令並在時脈信號之每一下降邊緣執行另一命令。因此,時脈信號之上升或下降邊緣多久一次出現在時間段內(例如,時脈信號之頻率)設定GPU 12在該時間段內執行多少命令。 在一些實例(諸如CPU 6將待由GPU 12執行之命令儲存在記憶體(例如,系統記憶體10或本端記憶體)中之彼等實例)中,CPU 6可輸出識別GPU 12將執行的命令之群組的記憶體位址資訊。GPU 12將執行的命令之群組被稱為經提交之命令。在其中CPU 6直接輸出命令至GPU 12的實例中,所提交命令包括CPU 6指導GPU 12直接地執行的彼等命令。 可存在CPU 6可分群命令所藉以的各種方式。作為一個實例,命令之群組包括由GPU 12再現一個訊框所需要的所有命令。作為另一實例,命令之群組可為所謂的在GPU 12不切換至其他命令情況下待一起被執行的「原子命令」。分群經提交至GPU 12之命令的其他方式可為可能的,且本發明不限於上述實例技術。 在一些情況中,GPU 12可在設定之時間段內執行所提交命令。舉例而言,裝置2可為手持型裝置,其中顯示器18亦充當使用者介面。作為一個實例,為達成流暢(亦稱作無閃避)使用者介面,GPU 12可在大致16毫秒(ms)內完成所提交命令之執行,假定每秒60訊框之訊框速率(其他時間段係可能的)。此16 ms時間段可被稱為「vsync」窗,且若GPU 12未在vsync窗內完成所提交命令之執行,則在GPU 12之執行管線中可存在「泡」,從而引起閃避填充之使用者介面。 GPU 12的執行管線中之「泡」指其中GPU 12之正執行命令的單元已部分完成命令之執行從而產生一些中間資料,但GPU 12之將接收中間資料的單元仍忙於執行其他命令從而致使中間資料保持建構的情況。舉例而言,GPU 12之執行管線包括一系列單元,該系列單元各自產生藉由系列中(亦即,在管線中)之下一單元進一步處理的中間資料。在一些情況中,與GPU 12之執行管線的下游單元可消耗中間資料速度相比,GPU 12之執行管線的上游單元更快地產生中間資料,從而產生所謂的泡。 CPU 6提交的命令量及CPU 6提交命令之時間的時序無需一定為恆定的。可存在GPU 12將執行的命令之數目的流入或減少。舉例而言,在CPU 6上執行的應用程式(例如,第三方應用程式)可增加或減少待由GPU 12執行的命令之數目,或在CPU 6上執行的作業系統(例如,構架自身)可增加或減少待由GPU 12執行的命令之數目。作為另一實例,CPU 6可在時間0處提交第一命令群組,在時間1處提交第二命令群組,並在時間2處提交第三命令群組。然而,第一命令群組提交與第二命令群組提交之間的時間間隔可不同於第二命令提交與第三命令群組提交群組之間的時間間隔。 由於GPU 12將在設定時間段(例如,16 ms)內執行的命令量可改變,因此GPU 12的時脈信號之頻率(亦即,GPU 12之時脈速率或GPU 12之操作頻率)可需要增加或減少以使得GPU 12能夠在設定時間段內執行命令而無需不必要地增加功率消耗。GPU 12在設定時間段內需要執行的命令量可改變,此係由於命令之群組中存在需要在設定時間段內執行的更多或更少命令,此係由於存在需要在設定時間段內執行的命令群組之數目的增加或減少,或兩個原因之組合。 若時脈信號之頻率永久地保持在相對高頻處,則GPU 12將能夠在大部分情況下及時執行所提交命令。然而,以相對高頻執行命令使得GPU 12之功率消耗增加(例如,需要更多電功率以較高時脈速率驅動GPU 12)。若時脈信號之頻率永久地保持在相對低頻率處,則GPU 12之功率消耗可減少(例如,需要較小電功率以較低時脈速率驅動GPU 12),但GPU 12可不能夠在大部分情況下及時執行所提交命令,從而導致閃避行為及可能其他不需要的效應。 本發明中所描述之技術描述基於在特定時間間隔內GPU 12之使用情況主動地增加或減少GPU 12的時脈速率(亦即,時脈信號之頻率)所藉以之實例方式。用以判定GPU 12之時脈速率的時間間隔之一個實例為GPU 12完成當前訊框之再現之時與GPU 12完成緊接在當前訊框之前的前一訊框之再現之時之間的時間間隔。如本發明中所使用,再現訊框之完成指GPU 12執行再現訊框所需要的所有命令,包括但未必始終包括用以將再現之訊框儲存在系統記憶體10中的命令。舉例而言,再現訊框之完成可被視為在GPU 12判定訊框的最後像素之像素值時或在GPU 12將訊框的最後像素之像素值寫入至系統記憶體10時的例項。 如在本發明中所使用,訊框指可被呈現之完整影像,但在一些實例中可為完整影像的一部分。舉例而言,可存在並不每次重新再現的靜態背景,但藉由GPU 12再現之訊框可與靜態背景複合(例如,藉由顯示介面16)以產生完整影像。作為另一實例,顯示介面16可組合視訊與藉由GPU 12再現的訊框。 訊框包括表示圖形內容之複數個像素,其中每一像素具有像素值。舉例而言,在GPU 12再現訊框之後,GPU 12將訊框的像素之所得像素值儲存在訊框緩衝器中,該訊框緩衝器可在系統記憶體10中。顯示介面16自訊框緩衝器接收訊框的像素之像素值並基於像素值輸出值以使顯示器18顯示訊框之圖形內容。在一些實例中,顯示介面16使顯示器18在每秒60框數(fps)之速率下顯示訊框(例如,大致每16.67 ms顯示一訊框)。 在以下描述中,關於CPU 6判定GPU 12之忙碌程度及設定GPU 12之時脈速率描述實例技術。然而,此等技術亦可藉由GPU 12或CPU 6與GPU 12一起實施。 為確保GPU 12在足夠高但不過高之操作頻率下操作以確保滿足60 fps要求,CPU 6可判定GPU 12之忙碌程度,忙碌程度指示GPU 12將如何忙碌地再現訊框。忙碌程度指GPU 12在時間間隔期間執行再現訊框的命令的時間量。考慮另一方式,忙碌程度指示在時間間隔期間使用多少GPU循環(例如,GPU 12之時脈循環)來再現訊框。忙碌程度量測值可以時間為單位,且有時可表示為百分比(例如,忙碌時間量除以乘以100之時間間隔)。一般而言,忙碌程度指GPU 12完成訊框工作負荷所花費的時間量。 GPU 12可包括每當GPU 12內之單元儲存資料至一或多個通用暫存器(GPR)及/或自一或多個通用暫存器(GPR)讀取資料時遞增計數器的電路。在時間間隔結束處(例如,在GPU 12完成訊框之再現之後),CPU 6可判定GPU 12內之單元存取一或多個GPR以再現訊框的次數。舉例而言,CPU 6可判定在完成緊接在前面之訊框的再現的結束處之計數器值與在完成當前訊框之再現的結束處之計數器值之間的差以判定GPU 12內之單元存取該一或多個GPR以再現訊框的次數。 GPU 12內的單元存取一或多個GPR之次數可為用以再現訊框的時脈循環之數目的充分近似值。基於訊框再現期間的GPU 12之時脈速率及用以再現訊框的時脈循環之數目,CPU 6可判定GPU 12在訊框再現期間忙碌的時間量。舉例而言,用以再現訊框的時脈循環之數目乘以GPU 12的時脈速率之週期指示GPU 12在訊框再現期間忙碌的的時間量(例如,用於再現訊框的GPU 12之忙碌程度)。 作為另一實例,GPU 12可包括只要任一GPU子區塊(例如,GPU 12內之單元)忙碌便遞增計數器以及GPU 12之時脈週期的電路。計數器中之值指示用以再現訊框的時脈循環之數目。 上述為CPU 6判定GPU 12之忙碌程度所藉以的兩個實例方式。本發明中所描述的技術不限於用以判定GPU 12之忙碌程度的此特定實例。可存在用以判定GPU 12之忙碌程度的多種不同方式,且CPU 6可採用該等不同方式中之一或多者來判定GPU 12之忙碌程度。 CPU 6可將GPU 12忙於再現當前訊框的時間量除以時間間隔之時間量以判定GPU 12之忙碌程度百分比。在一些實例中,CPU 6可將GPU 12忙碌用於再現當前訊框的時間量除以先前N數目個時間間隔的平均時間量以判定GPU 12之忙碌程度百分比。在任一實例中,忙碌程度百分比係基於當前訊框之忙碌程度且並不基於任何其他訊框之忙碌程度(例如,GPU 12怎樣忙碌於再現僅僅當前訊框)。 CPU 6接著可判定是增加抑或減少GPU 12之時脈速率。舉例而言,若忙碌程度百分比大於第一臨限值,則CPU 6可增加GPU 12之時脈速率且若忙碌百分比小於第二臨限值,則CPU 6可減少GPU 12之時脈速率。第一臨限值及第二臨限值可為不同臨限值或相同臨限值。在一些實例中,可存在CPU 6可判定增加或減少GPU 12之時脈速率多少所藉以的多個臨限值。 在一些實例中,GPU 12可判定GPU 12完成當前訊框之再現之時與GPU 12完成緊接在當前訊框之前的前一訊框之再現之時之間的時間間隔,而非CPU 6或結合CPU 6。舉例而言,GPU 12之控制器可自上文所描述的實例計數器讀取以判定GPU 12在訊框再現期間怎樣忙碌以及先前N數目個時間間隔的GPU 12忙於再現之平均時間量。GPU 12之控制器接著可類似於關於CPU 6描述的上述實例而增加或減少時脈速率。 藉由基於訊框末端至訊框末端(例如,GPU 12完成當前訊框的再現之時與GPU 12完成緊接在當前訊框之前的前一訊框的再現之時之間的時間間隔)判定忙碌程度,CPU 6及/或GPU 12可相對迅速及相對準確地判定GPU 12之時脈速率。在一些技術中,CPU 6可基於在GPU 12空閒時的例項判定時間間隔,而非基於訊框末端至訊框末端判定時間間隔,CPU 6及/或GPU 12判定在該時間間隔內的忙碌程度或忙碌程度百分比。 然而,基於GPU 12空閒之時或基於所呈現時間間隔判定忙碌程度或忙碌程度百分比可需要平均多個忙碌位準或忙碌程度百分比以判定準確忙碌程度或忙碌程度百分比。判定忙碌程度或忙碌程度百分比為平均值需要CPU 6等待GPU 12再現多個訊框,此係由於CPU 6可判定GPU 12之時脈速率。等待GPU 12再現多個訊框導致用以判定忙碌程度或忙碌程度百分比的長延遲,且延遲GPU 12之時脈速率調整,此可導致閃避行為。 舉例而言,若GPU 12在臨限時間量內不輸出任何圖形資料,則GPU 12被認為空閒。在一些實例中,CPU 6監視由GPU 12對GPU 12將像素值儲存至的儲存位置的存取以判定在臨限時間量中無圖形資料輸出。作為回應,如上文所描述,CPU 6自計數器讀取以判定忙碌程度及忙碌程度百分比。舉例而言,CPU 6判定自GPU 12為空閒之最後時間至GPU 12為空閒之當前例項(例如,空閒至空閒時間)的計數器的差異。 然而,由於GPU 12變為空閒之時及在GPU 12變為空閒時的時間之間處理的訊框之數目可係相對隨機的,因此依賴於GPU 12變為空閒之時的例項在所有情形中可不係有益的。舉例而言,常常,一個訊框緊跟在另一個訊框之後,意謂在GPU 12之空閒至空閒時間之間存在相對大間隙。若僅僅一個訊框在GPU 12之空閒至空閒時間之間再現,則空閒至空閒時間可相對短暫。即使訊框中之每一者的工作負荷係相同的,此仍導致使忙碌程度百分比波動。為抵消波動,CPU 6可平均在多個空閒至空閒時間間隔內的忙碌程度百分比,此延遲設定GPU 12之時脈速率之時。另外,若在存在空閒之前存在長延遲(例如,由於多個訊框在其間沒有空閒時間情況下再現),則CPU 6可在判定用於GPU 12之時脈速率時延遲。 另外,在一些情況中,可在訊框之處理內存在空閒時間。舉例而言,CPU 6可提交命令至GPU 12以再現訊框所藉以的方式可包括其中CPU 6提交複數個命令至GPU以再現訊框,且接著存在期間CPU 6不提交額外命令的部分,且接著在該部分之後,CPU 6提交剩餘命令至GPU以再現訊框的情形。在此情況下,在命令之提交之間的此部分期間,GPU 12可為空閒的。與其中GPU 12在再現訊框之一部分期間為空閒的僅一個例項相比,可存在更多空閒時間。發生在GPU 12在再現訊框之過程中時的此空閒時間可觸發CPU 6判定時脈速率,該判定可係在GPU 12仍再現訊框時基於不充分資訊。 判定時脈速率時之延遲意謂GPU 12並不迅速對GPU 12需要執行的命令量之變化作出反應。舉例而言,若GPU 12之時脈速率回應於工作負荷之增加而不漸升,則歸因於訊框可能丟棄而在顯示於顯示器18上的使用者介面中可存在閃避。若GPU 12之時脈速率回應於工作負荷之減少而不漸降,則GPU 12可浪費功率。在一些情況中,在工作負荷減少之後可在減緩GPU 12之時脈速率時存在200至800 ms延遲,在此期間由GPU 12消耗的功率不必大於其應消耗的功率。 在使用本發明中描述的技術情況下,CPU 6可依賴於與單個訊框之再現有關的資訊以判定時脈速率,其允許CPU 6判定GPU 12之時脈速率而不需忙碌程度或忙碌程度百分比之多個量測值。另外,由於CPU 6使用訊框末端來觸發判定忙碌程度或忙碌程度百分比之時,因此甚至在存在不具有空閒時間之背對背訊框的情況下或在再現訊框中間存在空閒時間的情況下,可能對忙碌程度或忙碌程度百分比判定幾乎沒有影響。在一些實例中,GPU 12可實施類似技術以判定其自身時脈速率,而非CPU 6判定GPU 12之時脈速率。 為判定GPU 12完成再現訊框之時,CPU 6可自GPU 12接收CPU 6用以判定GPU 12完成再現訊框的資訊(例如,輸出訊框的最後像素之像素值)。作為一個實例,作為OpenGL API之部分,在再現訊框結束處,GPU 12可請求系統記憶體10中之記憶體空間用於再現下一訊框。為請求記憶體空間,GPU 12可輸出對於記憶體空間之請求至CPU 6,且CPU 6可使用此記憶體請求之接收以判定GPU 12完成訊框之再現。舉例而言,GPU 12執行gl.SwapBuffer API以輸出對於記憶體空間之請求。作為實例,gl.SwapBuffer可將一緩衝器自寫入改變至讀取並將另一緩衝器自讀取改變至寫入,但請求記憶體空間的其他方式係可能的。CPU 6使用請求之接收以判定GPU 12完成訊框之再現。 作為另一實例,GPU 12之軟體工具包可包括開發者程式化GPU 12以在完成再現訊框時調用的使用者模式驅動器(UMD),且UMD之執行使得GPU 12輸出訊框末端標誌。CPU 6使用訊框末端標誌以判定GPU 12完成訊框之再現。作為另一實例,gl.SwapBuffer API可直接以UMD更新,以使得CPU 6基於gl.SwapBuffer API接收訊框末端標誌且不需要開發者干預。 用於CPU 6判定GPU 12完成訊框之再現的其他技術係可能的且在本發明中所描述的技術不應被考慮限制於上文之實例。此外,在其中GPU 12判定訊框末端至訊框末端時間間隔的實例中,GPU 12之控制器可判定GPU 12執行gl.SwapBuffer API之時或UMD被執行之時。在此等情況下,控制器可判定GPU 12到達訊框末端。 在本發明中所描述的技術中,處理器(例如,亦稱作主機處理器之CPU 6、GPU 12,或兩者之組合)可判定在GPU 12完成再現第一訊框時的第一時間例項並判定在GPU 12完成再現緊接在第一訊框之前的第二訊框時的第二時間例項。第一時間例項為在GPU 12判定當前訊框的最後像素之像素值時的例項或在GPU 12輸出當前訊框的最後像素之像素值時的例項。第二時間例項為在GPU 12判定前一訊框的最後像素之像素值時的例項或在GPU 12輸出當前訊框的最後像素之像素值時的例項。 在一些情況中,GPU 12可已在當前訊框之再現期間的至少一部分中空閒。舉例而言,自GPU 12開始再現第一訊框的時間起,GPU 12可不連續再現訊框,且可持續一段時間空閒。在持續該部分空閒之後,GPU 12可繼續再現第一訊框,且接著指示CPU 6完成第一訊框之再現之時或判定(例如,經由控制器)完成第一訊框之再現之時。 在一些情況中,在前一訊框與當前訊框之間可不存在空閒時間。舉例而言,CPU 6可指導GPU 12再現第二前一訊框且接著緊接著指導GPU 12再現第一當前訊框。在此實例中,GPU 12緊接在完成再現第二訊框之後開始再現第一訊框,以使得在再現第二訊框與再現第一訊框之間不存在GPU 12空閒時間。 CPU 6可基於接收對於用於再現下一訊框之記憶體的請求而判定第一時間例項及第二時間例項。類似地,GPU 12可基於傳輸對於用於再現下一訊框之記憶體的請求之時而判定第一時間例項及第二時間例項。以此方式,處理器可判定在GPU 12變得空閒之前及基本上緊接在完成再現前一或當前訊框之後的第一時間例項及第二時間例項。舉例而言,處理器可自GPU 12完成再現第二(前一)訊框或第一(當前)訊框之時起小於5 ms、2 ms或甚至可能小於1 ms(例如,在比CPU 6判定GPU 12空閒所花費的時間更少的時間中)判定GPU 12完成再現第二訊框或第一訊框。 處理器(例如,CPU 6及/或GPU 12)可基於第一時間例項及第二時間例項判定時間間隔(例如,第一時間例項之時間與第二時間例項之時間之間的差)。處理器可判定用於在時間間隔期間再現當前訊框的GPU 12之忙碌程度(例如,用以在時間間隔期間處理用於再現訊框的工作負荷之時間量)。 基於經判定忙碌程度,處理器可判定GPU 12之時脈速率。舉例而言,處理器可基於經判定忙碌程度及經判定時間間隔判定忙碌程度百分比(例如,將在時間間隔期間處理工作負荷的時間量除以時間間隔之時間量)。處理器可比較忙碌程度百分比與臨限值並基於該比較判定時脈速率。 作為另一實例,處理器可平均時間間隔與一或多個先前時間間隔以判定平均時間間隔。在此實例中,一或多個先前時間間隔中之每一者指示各別先前訊框之再現的完成之間的時間間隔。舉例而言,處理器可對於N數目個時間間隔平均當前訊框與前一訊框的再現之間的時間間隔,前一訊框與緊接在前一訊框之前的訊框的再現之間的時間間隔,等。此平均可被視為經開窗流動平均值。 處理器可基於經判定忙碌程度及平均時間間隔判定忙碌程度百分比,並比較忙碌程度百分比與臨限值。類似於上述,處理器可基於該比較判定時脈速率。 處理器可基於經判定忙碌程度判定GPU 12之時脈速率。在一些實例中,處理器可基於用於再現第一訊框及無其他訊框的經判定忙碌程度判定GPU 12之時脈速率。以此方式,處理器經組態以基於單個訊框而非在GPU 12再現多個訊框之後判定時脈速率,其允許GPU 12以極少延遲漸升或漸降其操作頻率以使得GPU 12在其最低頻率位準處操作同時仍及時完成命令之執行。 處理器可將GPU 12之時脈速率設定成經判定時脈速率。舉例而言,在其中處理器為CPU 6之實例中,CPU 6接著可指導GPU 12將GPU 12之時脈速率設定成經判定時脈速率。在其中處理器為GPU 12之實例中,GPU 12之控制器可指導GPU 12設定GPU 12之時脈速率。GPU 12接著可以經判定時脈速率操作。儘管處理器基於設定用於再現後續訊框之時脈速率的當前訊框藉由使用用於判定時脈速率之僅僅一個訊框來判定GPU 12之時脈速率,但處理器可在時脈速率不正確的情況下即刻更新時脈速率,此係由於處理器可緊接在GPU 12完成再現下一訊框之後更新時脈速率。 圖2為更詳細地說明圖1中所說明之裝置之組件的方塊圖。如圖2中所說明,GPU 12包括控制器30、振盪器34、計數器暫存器35、著色器核心36及固定功能管線38。著色器核心36及固定功能管線38可共同形成用以執行圖形或非圖形相關功能之執行管線。儘管僅說明一個著色器核心36,但在一些實例中,GPU 12可包括類似於著色器核心36的一或多個著色器核心。 GPU 12將執行的命令係由著色器核心36及固定功能管線38執行,如藉由GPU 12之控制器30所判定。控制器30可經實施為GPU 12上之硬體或在GPU 12之硬體上執行的軟體或韌體。控制器30為上文所描述用於在GPU 12判定時脈速率之情況下執行實例技術的控制器之實例。 控制器30可自系統記憶體10之命令緩衝器40或直接自CPU 6接收待經執行用於再現訊框的命令(例如,接收CPU 6判定現在應由GPU 12執行的所提交命令)。控制器30亦可自系統記憶體10之資料緩衝器42或直接自CPU 6擷取用於命令的運算元資料。舉例而言,命令緩衝器40可儲存將A與B相加的命令。控制器30自命令緩衝器40擷取此命令並自資料緩衝器42擷取A及B之值。控制器30可判定哪些命令待由著色器核心36執行(例如,在著色器核心36上執行軟體指令)及哪些命令待由固定功能管線38執行(例如,用於固定功能管線38之單元的命令)。 在一些實例中,來自命令緩衝器40及資料緩衝器42中之一者或兩者的命令及/或資料可為GPU 12之本端記憶體14的部分。舉例而言,GPU 12可包括分別儲存來自命令緩衝器40之命令及來自資料緩衝器42之資料的指令快取記憶體及資料快取記憶體,其可為本端記憶體14之部分。在此等實例中,控制器30可自本端記憶體14擷取命令及/或資料。 著色器核心36及固定功能管線38可自彼此傳輸及接收資料。舉例而言,著色器核心36執行的命令中之一些可產生為用於固定功能管線38之單元將執行的命令之運算元的中間資料。類似地,固定功能管線38之單元執行的命令中之一些可產生為用於著色器核心36將執行的命令之運算元的中間資料。以此方式,經由固定功能管線38之單元及著色器核心36以管線化方式逐漸地處理所接收資料。因此,著色器核心36及固定功能管線38可被稱為實施執行管線。在一些實例中,GPU 12可包括大於一個著色器核心36,且圖2中之實例經提供以僅輔助理解。 一般而言,著色器核心36允許各種類型的命令被執行,從而意謂著色器核心36為可程式化的且將功能靈活性提供給使用者,此係由於使用者可程式化著色器核心36以按大部分可以想像的方式執行所要任務。然而,固定功能管線38之固定功能單元為固線式以用於固定功能單元執行任務所藉以之方式。因此,固定功能單元可不提供大的功能靈活性。 亦如圖2中所說明,GPU 12包括振盪器34。當著色器核心36及/或固定功能管線38之單元執行命令時,振盪器34輸出設定時間例項的時脈信號。儘管振盪器34經說明為在GPU 12內部,但在一些實例中,振盪器34可在GPU 12外部。另外,振盪器34無需僅提供用於GPU 12之時脈信號,且亦可提供用於其他組件之時脈信號。 振盪器34可產生方波、正弦波、三角波,或其他類型之週期性波。振盪器34可包括用以放大所產生波之電壓並將所得波作為用於GPU 12之時脈信號輸出的放大器。 在一些實例中,在藉由振盪器34輸出的時脈信號之上升邊緣或下降邊緣上,著色器核心36及固定功能管線38之每一單元可執行一個命令。在一些情況中,命令可被分成子命令,且著色器核心36及固定功能管線38之每一單元可回應於時脈信號之上升或下降邊緣執行子命令。舉例而言,A+B之命令包括用以擷取A之值及B之值的子命令,且著色器核心36或固定功能管線38可在時脈信號之上升邊緣或下降邊緣處執行此等子命令中之每一者。 著色器核心36及固定功能管線38之單元執行命令所藉以之速率可影響GPU 12之功率消耗。舉例而言,若藉由振盪器34輸出的時脈信號之頻率相對較高,則與著色器核心36及固定功能管線38之單元將針對時脈信號之相對較低頻率執行的命令之數目相比,著色器核心36及固定功能管線38之單元可在時間段內執行更多命令。然而,與其中著色器核心36及固定功能管線38之單元在時間段中執行較少命令(歸因於來自振盪器34的時脈信號之較低頻率)的例項相比,GPU 12之功率消耗可在其中著色器核心36及固定功能管線38之單元在時間段中執行更多命令(歸因於來自振盪器34的時脈信號之較高頻率)的例項中更大。 如上文所描述,CPU 6可歸因於GPU 12之大規模並行處理能力而分擔任務至GPU 12。舉例而言,GPU 12可設計成具有單指令、多資料(SIMD)結構。在SIMD結構中,著色器核心36包括複數個SIMD處理元件,其中每一SIMD處理元件執行相同命令,但是針對不同資料。 在特定SIMD處理元件上執行的特定命令被稱為執行緒。每一SIMD處理元件可被視為執行不同執行緒,此係由於用於給定執行緒之資料可不同;然而,在處理元件上執行之執行緒為與在其他處理元件上執行之命令相同的命令。以此方式,SIMD結構允許GPU 12並行執行許多任務(例如,在同一時間)。對於此SIMD結構化GPU 12,每一SIMD處理元件可在時脈信號之上升邊緣或下降邊緣上執行一個執行緒。 為避免混淆,本發明使用術語「命令」來一般指由著色器核心36或固定功能管線38之單元執行的處理程序。舉例而言,命令包括實際命令、構成子命令(例如,記憶體調用命令)、執行緒,或GPU 12執行特定功能所藉以的其他方式。由於GPU 12包括著色器核心36及固定功能管線38,因此GPU 12可被視為執行命令。 另外,在上文之實例中,著色器核心36或固定功能管線38之單元回應於由振盪器34輸出的時脈信號之上升或下降邊緣而執行命令。然而,在一些實例中,著色器核心36或固定功能管線38之單元可在上升邊緣上執行一個命令並在時脈信號之下降邊緣上執行另一後續命令。可存在「時脈化」命令的其他方式,且本發明中所描述之技術不限於上文之實例。 由於GPU 12在每一上升邊緣、下降邊緣或兩者處執行命令,因此由振盪器34輸出的時脈信號之頻率(亦稱作時脈速率)設定GPU 12可在某一時間內執行的命令量。舉例而言,若GPU 12在時脈信號之每一上升邊緣執行一個命令,且時脈信號之頻率為1 MHz,則GPU 12可在一秒中執行一百萬個命令。 如圖2中所說明,CPU 6執行應用程式26,如由虛線邏輯框所說明。在執行期間,應用程式26產生待由GPU 12執行的命令,包括指導GPU 12擷取並執行著色器程式(例如,頂點著色器、片段著色器、用於非圖形應用程式之計算著色器,及類似者)的命令。另外,應用程式26產生命令操作所針對的資料(亦即,用於命令之運算元)。CPU 6將所產生命令儲存在命令緩衝器40中,並將運算元資料儲存在資料緩衝器42中。 在CPU 6將所產生命令儲存在命令緩衝器40中之後,CPU 6使命令可用於藉由GPU 12執行。舉例而言,CPU 6將一組儲存命令及其運算元資料之記憶體位址及指示GPU 12將何時執行該組命令的資訊傳達至GPU 12。以此方式,CPU 6提交命令至GPU 12以供執行以再現訊框。 如圖2中所說明,CPU 6亦可執行圖形驅動器28。在一些實例中,圖形驅動器28可為在CPU 6之硬體或硬體單元上執行的軟體或韌體。圖形驅動器28可經組態以允許CPU 6及GPU 12彼此通信。舉例而言,當CPU 6分擔圖形或非圖形處理任務至GPU 12時,CPU 6經由圖形驅動器28分擔此等處理任務至GPU 12。舉例而言,當CPU 6輸出指示GPU 12將執行的命令之量的資訊時,圖形驅動器28可為CPU 6之輸出資訊至GPU 12的單元。 作為額外實例,應用程式26產生圖形資料及圖形命令,且CPU 6可分擔此圖形資料之處理至GPU 12。在此實例中,CPU 6可將圖形資料儲存在資料緩衝器42中並將圖形命令儲存在命令緩衝器40中,且圖形驅動器28可指導GPU 12何時分別自資料緩衝器42及命令緩衝器40擷取圖形資料及圖形命令,自何處分別自資料緩衝器42及命令緩衝器40擷取圖形資料及圖形命令,及何時藉由執行該組命令中之一或多個命令來處理圖形資料。 另外,應用程式26可能需要GPU 12執行一或多個著色器程式。舉例而言,應用程式26可需要著色器核心36執行頂點著色器及片段著色器以產生用於待顯示(例如,在圖1之顯示器18上)的訊框之像素值。圖形驅動器28可指導GPU 12何時執行著色器程式並指導GPU 12何處擷取來自資料緩衝器42之圖形資料及何處擷取來自命令緩衝器40或來自系統記憶體10中之其他位置的命令。以此方式,圖形驅動器28可在CPU 6與GPU 12之間形成鏈路。 圖形驅動器28可根據應用程式處理介面(API)而組態;但圖形驅動器28不需要限制於根據特定API而組態。在裝置2為行動裝置的實例中,可根據OpenGL ES API來組態圖形驅動器28。OpenGL ES API特定被設計成用於行動裝置。在裝置2為非行動裝置的實例中,可根據OpenGL ES API來組態圖形驅動器28。 所提交命令中之命令的量可基於再現使用者介面或遊戲應用之一個訊框所需要的命令。對於使用者介面實例,GPU 12可需要執行在vsync窗(例如,新的訊框應準備顯示所截至的時間,諸如每一16 ms)內再現使用者介面之一個訊框所需要的命令以提供無閃避使用者體驗。若存在需要顯示的相對較大內容量,則命令的數量可比在存在需要顯示的相對較小內容量情況下大。 為確保GPU 12能夠在設定時間段內執行所提交命令,控制器30可調整振盪器34輸出的時脈信號之頻率(亦即,時脈速率)。然而,為調整時脈信號之時脈速率以使得時脈速率高得足以允許GPU 12在設定時間段內執行所提交命令,控制器30可接收指示是增加、減少振盪器34之時脈速率抑或保持時脈速率相同的資訊。在一些實例中,控制器30可接收指示振盪器34輸出的時脈信號之特定時脈速率的資訊。 在本發明中描述之其中CPU 6判定GPU 12之時脈速率的技術中,頻率管理模組32可經組態以判定振盪器34輸出的時脈信號之時脈速率。在其中GPU 12判定時脈速率的一些實例中,控制器30可經組態以執行關於頻率管理模組32描述之實例技術,但在GPU 12上執行。 頻率管理模組32(亦稱作動態時脈及電壓縮放(DCVS)模組)經說明為在CPU 6上執行之軟體。然而,頻率管理模組32可為在CPU 6上之硬體或硬體與軟體或韌體之組合。 頻率管理模組32可經組態以判定在GPU 12完成再現第一(當前)訊框時的第一時間例項及在GPU 12完成再現緊接在當前訊框之前的第二(前一)訊框時的第二時間例項。在本發明中,緊接在當前訊框之前的前一訊框係指在當前訊框之前的訊框,其中沒有其他訊框在前一訊框與當前訊框之間。在一些情況中,在GPU 12完成再現前一訊框之時與GPU 12開始再現當前訊框之時之間可存在某一空閒時間。然而,在一些實例中,可在GPU 12完成再現前一訊框之時與GPU 12開始再現當前訊框之時之間不存在此空閒時間。 舉例而言,圖形驅動器28可一次性提交命令以再現兩個訊框。在此實例中,控制器30接收用以再現兩個訊框中之第一者的命令並指導著色器核心36及固定功能管線38執行該等命令。當命令經由圖形管線前進時,一旦用於再現第一訊框之最後命令前進通過GPU 12之圖形管線中的第一單元,控制器30便擷取第一命令以開始第二訊框之執行(例如,指導GPU 12的圖形管線之第一單元執行用於再現第二訊框之命令)。在此實例中,在訊框之間不存在藉由GPU 12進行之處理的暫停(例如,在兩個訊框之再現之間無空閒時間)。在一些情況中,圖形驅動器28可一次性提交用於大於兩個訊框之命令。 在一些情況中,圖形驅動器28可不一定一次性提交再現訊框所需要的所有命令至GPU 12或可提交所有命令,但可不指導GPU 12一個緊接一個地執行所有命令。舉例而言,圖形驅動器28可提交用於再現訊框之第一組命令,且接著在GPU 12變為空閒的時間期間暫停發送更多命令,且接著提交用於再現訊框之剩餘命令。作為另一實例,圖形驅動器28可提交所有命令至GPU 12,接著指導GPU 12執行第一組命令,接著指導GPU 12在GPU 12變為空閒之時間期間暫停執行命令,且接著指導GPU 12執行剩餘指令。可在再現訊框期間存在大於一個在期間GPU 12變為空閒的持續時間,且僅僅為達成說明之目的提供其中GPU 12在再現訊框期間在僅僅一個持續時間中變為空閒的上文之實例。 如上文所描述,在GPU 12完成再現當前訊框或前一訊框時的例項為在GPU 12分別判定當前訊框或前一訊框之最後像素之像素值時的例項,或在GPU 12分別輸出當前訊框或前一訊框之最後像素之像素值時的例項。作為一個實例,在GPU 12完成再現訊框(例如,當前或前一訊框)時的例項為著色器核心36上的像素著色器之最後執行的例項或在著色器核心36上執行的像素著色器輸出訊框之最後像素值的例項。 頻率管理模組32判定GPU 12僅完成再現訊框(例如,在再現訊框之5 ms、2 ms或甚至1 ms內)所藉以的一種方式係基於對於系統記憶體10中之記憶體的請求的接收。儘管未說明,但GPU 12輸出像素值(例如,圖形資料)至系統記憶體10內之訊框緩衝器。在再現訊框之後,控制器30執行gl.SwapBuffer API以向CPU 6請求用以在其中儲存用於下一訊框之像素值的記憶體位置。可存在控制器30將執行gl.SwapBuffer API的極高必然程度,因為此為GPU 12經分配用於再現下一訊框之記憶體所藉以的方式。 在此實例中,控制器30輸出對於記憶體之請求至圖形驅動器28。圖形驅動器28轉遞請求至作業系統24及頻率管理模組32。頻率管理模組32隨後將GPU 12完成再現訊框的時間例項判定為頻率管理模組32接收請求的時間例項。作業系統24分配用於GPU 12之記憶體以輸出下一訊框之像素值。 作為另一實例,控制器30可執行使得控制器30輸出訊框末端標誌至圖形驅動器28的UMD(使用者模式驅動器),圖形驅動器28接著轉遞訊框末端標誌至頻率管理模組32。作為另一實例,gl.SwapBuffer API可以UMD更新,因此除gl.SwapBuffer API之正常執行以外不需要額外執行。 在其中控制器30判定GPU 12之時脈速率的實例中,控制器30可判定執行UMD或gl.SwapBuffer API之時。基於執行,控制器30可判定GPU 12完成再現訊框,且基於執行之時序,控制器30可判定在再現訊框末端至訊框末端之間逝去的時間量。 頻率管理模組32可基於第一時間例項及第二時間例項判定時間間隔(例如,第一時間例項減去第二時間例項)。另外,頻率管理模組32可判定在時間間隔期間用於再現當前訊框的GPU 12之忙碌程度。控制器30可經組態以在其中控制器30判定其時脈速率之實例中執行類似功能。 每當控制器30、著色器核心36或固定功能管線38自本端記憶體14內之通用暫存器(GPR)讀取資料或儲存資料至其時,控制器30可更新(例如,遞增)計數器暫存器35中之計數器。頻率管理模組32及/或控制器30可能在再現前一訊框之後已讀取計數器暫存器35並可在再現當前訊框之後讀取計數器暫存器35。頻率管理模組32及/或控制器30可判定自計數器暫存器35讀取的兩個值之間的差,且所得值可為GPU 12再現當前訊框所花費的振盪器34之時脈循環之數目的近似值。頻率管理模組32及/或控制器30可將時脈循環之經判定數目乘以振盪器34在再現當前訊框期間輸出的時脈信號的時脈速率之時間段以判定GPU 12忙碌的時間量(例如,GPU 12之忙碌程度)。 作為另一實例,只要GPU 12之任一GPU子區塊忙碌,控制器30便可更新(例如,遞增)計數器暫存器35中之計數器。如上所述,頻率管理模組32及/或控制器30可在再現前一訊框之後已讀取計數器暫存器35並可在再現當前訊框之後讀取計數器暫存器35。頻率管理模組32及/或控制器30可判定自計數器暫存器35讀取的兩個值之間的差,且所得值可為GPU 12再現當前訊框所花費的振盪器34之時脈循環之數目的近似值。另外,如上所述,頻率管理模組32及/或控制器30可將時脈循環之經判定數目乘以振盪器34在再現當前訊框期間輸出的時脈信號的時脈速率之時間段以判定GPU 12忙碌之時間量(例如,GPU 12之忙碌程度)。可存在判定GPU忙碌程度所藉以的各種其他方式,且上文提供兩個實例技術。 頻率管理模組32及/或控制器30可基於經判定忙碌程度判定振盪器34輸出的時脈信號之時脈速率。在其中CPU 6設定時脈速率之實例中,頻率管理模組32接著可使得圖形驅動器28指導GPU 12之控制器30將振盪器34輸出的時脈信號之時脈速率設定成經判定時脈速率。在其中GPU 12設定時脈速率之實例中,控制器30可設定振盪器34輸出的時脈信號之時脈速率。以此方式,頻率管理模組32及/或控制器30可基於用於再現當前訊框及無其他訊框的經判定忙碌程度而判定振盪器34輸出的時脈信號之時脈速率。 在一個實例中,頻率管理模組32及/或控制器30可基於經判定忙碌程度及經判定時間間隔而判定忙碌程度百分比(例如,將忙碌程度除以乘以100之時間間隔)。頻率管理模組32及/或控制器30可比較忙碌程度百分比與臨限值,並基於該比較判定振盪器34輸出的時脈信號之時脈速率。 在一個實例中,頻率管理模組32及/或控制器30可追蹤用於再現當前訊框之時間間隔及用於再現一或多個先前訊框(例如,總共5個訊框)之時間間隔。頻率管理模組32及/或控制器30可判定時間間隔之平均值(亦即,平均訊框時間(AFT))。在此實例中,初始訊框時間可經設定成一個vsync間隔(預設16.67 ms,取決於顯示器18之再新率)。每秒框數(FPS)可等於1/AFT。vsync邊界圖形應用程式之FPS通常為恆定值且AFT相對穩定。 在此實例中,頻率管理模組32及/或控制器30可藉由將用於再現當前訊框之忙碌程度除以平均訊框時間判定忙碌程度百分比。類似於上文,頻率管理模組32及/或控制器30可比較忙碌程度百分比與臨限值,並基於該比較判定振盪器34輸出的時脈信號之時脈速率。另外,類似於上文,頻率管理模組32及/或控制器30可使用用於僅再現當前訊框之忙碌程度來用於判定時脈速率,但在此實例中,可使用多個先前訊框之時間間隔。 如所描述,頻率管理模組32及/或控制器30可追蹤用於時脈速率判定之訊框邊界。舉例而言,頻率管理模組32及/或控制器30判定GPU 12之忙碌程度(例如,GPU 12之訊框負載)及訊框末端至訊框末端時間間隔(例如,訊框時間或來自再現前一訊框之完成及再現當前訊框之完成的時間間隔)。頻率管理模組32及/或控制器30可使用對於記憶體之請求或訊框末端標記作為用於判定忙碌程度百分比及頻率管理模組32及/或控制器30判定用於再現訊框的GPU 12之忙碌程度所經過的持續時間的時戳。 以此方式,與可需要五個或超過五個訊框以準確判定時脈速率的其他技術相比,頻率管理模組32及/或控制器30可將在進行脈速率判定時之潛時減少至一個訊框時間。低潛時及時脈速率之準確判定導致具有更少閃避之更平滑UI體驗,且可在其中需要精確時脈速率管理情況下(諸如在並行使用情況下)具有特定使用。另外,使用該等技術,時脈速率無需逐漸改變,但可在需要時跳轉。舉例而言,若時脈速率在200 MHz處,但GPU 12之忙碌程度百分比為300%,則頻率管理模組32可指導控制器30以使得振盪器34或控制器30可使得振盪器34將時脈速率跳轉至600 MHz,而繞過300 MHz、400 MHz及500 MHz時脈速率選項。 此外,由於實例技術依賴於再現訊框之完成以判定時脈速率,因此即使在再現訊框期間存在GPU 12為空閒的一或多個部分,頻率管理模組32及/或控制器30仍可能不判定時脈速率中框再現,且可一直等待直至在判定時脈速率之前再現訊框為止。另外,與依賴於空閒時間用於判定何時判定時脈速率的其他技術相比,由於技術不依賴於GPU 12之空閒時間以判定時脈速率,因此在本發明中描述之技術甚至在訊框之再現之間不存在空閒時間的情況下可準確且低潛時地判定時脈速率。 圖3A至圖3C為說明GPU 12接收用於再現訊框之命令的實例之時序圖。圖3A至圖3C說明GPU 12接收以用於再現訊框的不同命令集合。在圖3A至圖3C中所說明之實例中,每當判定忙碌程度百分比時GPU 12之實際忙碌程度百分比係相同的(例如,50%忙碌程度百分比);然而該經判定忙碌程度百分比可變化。在圖3A至圖3C中,GPU 12之忙碌程度百分比為GPU 12之忙碌程度除以GPU 12之兩個空閒之間的時間間隔。 圖3A至圖3C的x軸上之數字說明CPU 6判定忙碌程度百分比的例項。如所說明,在GPU 12完成再現訊框之後在判定GPU 12為空閒之前經過某一時間。因此,CPU 6判定忙碌程度百分比的時間係在再現訊框之後且不在再現訊框時或緊接在再現訊框之後。在圖3A至圖3C中,在GPU 12輸出最後像素之像素值之後在判定忙碌程度百分比之前流逝某一時間。如上文所描述,在可進行忙碌程度百分比之準確判定之前,基於GPU 12為空閒時之時間判定忙碌程度百分比可需要長延遲。 舉例而言,圖3A說明如下理想情況:GPU 12再現訊框且接著存在GPU 12為空閒的設定時間,接著GPU 12在其中再現下一訊框的設定時間量,繼之以GPU 12為空閒的設定時間等等。在此實例中,實際忙碌程度百分比及量測忙碌程度百分比追蹤彼此(例如,兩者皆為50%)。然而,理想GPU訊務係罕見的。 圖3B說明不同於圖3A中間隔為恆定的情況的GPU 12將再現訊框之時間之間的間隔不恆定的情況。舉例而言,對於最後兩個訊框,在再現訊框之間可不存在用於GPU 12之空閒時間。在此實例中,在樣本1(例如,在第一訊框之後不久)處,CPU 6可判定忙碌程度百分比為50%,其與實際忙碌程度百分比相同。在樣本2(例如,在第二訊框之後不久)處,CPU 6可判定忙碌程度百分比為60%,此係由於時間間隔較短但被執行的命令數量對於每一訊框而言係相同的(例如,訊框負載相同)。在此情況下,由於在再現訊框3與訊框4之間不存在空閒時間,因此在再現訊框3之後無樣本獲得。在樣本3(例如,在第四訊框之後不久)處,CPU 6可判定忙碌程度百分比為40%,此係由於時間間隔的量可大得多。三個經判定忙碌程度百分比之平均值將為50%(例如,(50%+60%+40%)除以3),但四個訊框係在達到50%之前被處理。 圖3C說明其中在再現訊框期間存在空閒時間的情況,在此時間期間CPU 6可判定忙碌程度百分比。在此實例中,在樣本1處,CPU 6可判定忙碌程度百分比為50%,在樣本2處,CPU 6可判定忙碌程度百分比為60%,在樣本3處,CPU 6可判定忙碌程度百分比在30%處,在樣本4處,CPU 6可判定忙碌程度百分比在30%處,且在樣本5處,CPU 6可判定忙碌程度百分比在80%處。樣本之平均值為50%,但五個樣本係在到達50%之前被處理。 因此,在圖3A至圖3C中,若在GPU 12變為空閒時CPU 6判定忙碌程度百分比,則即使具有恆定忙碌程度,CPU 6判定的忙碌程度百分比仍可波動。此可係由於訊框間空閒持續時間並不均勻分佈及/或由於可在訊框之再現的一部分期間存在空閒時間。在一些實例中,CPU 6可使用樣本(例如,3或5個樣本,如圖3B及圖3C中所說明)之大滑動窗以濾除波動。然而,在等待大滑動窗中,在設定GPU 12之振盪器34的時脈信號之時脈速率時存在大延遲。 在本發明中所描述之技術中,由於CPU 6在完成再現訊框時而非在空閒時間期間判定時脈速率。因此,波動可不存在,且CPU 6可能夠在再現一個訊框而不是再現多個訊框之後判定時脈速率。同樣,儘管關於CPU 6描述圖3A至圖3C中所說明之實例,但實例技術亦可藉由GPU 12執行。 圖4為說明GPU 12接收用於再現訊框之命令的另一實例之時序圖。圖4用以說明本發明中所描述之技術為何減少判定振盪器34輸出的時脈信號之時脈速率的潛時。實例係關於CPU 6說明但亦可藉由GPU 12執行。為了說明潛時減少,圖4係關於CPU 6基於僅再現當前訊框判定忙碌程度百分比而描述,並關於CPU 6藉由平均忙碌程度百分比判定忙碌程度百分比而描述。即使假定GPU 12變為空閒的時間與訊框之末端相同,依賴於待再現之多個訊框且接著平均仍在可設定GPU 12之時脈速率之前延遲時間量。應理解,空閒時間恰在訊框末端處並非處理程序實際上怎樣起作用,而是為了說明,進行此假定以易於理解。 圖4中,存在六個訊框。前五個訊框之忙碌程度(例如,訊框負載)為10 ms,且第六訊框之忙碌程度為15 ms。第一訊框之訊框間隔(例如,僅為易於理解,訊框之末端至訊框之末端經假定為與空閒時間至空閒時間相同)為16 ms,第二訊框之訊框間隔為12 ms,第三訊框之訊框間隔為20 ms,第四訊框之訊框間隔為20 ms,第五訊框之訊框間隔為12 ms,且第六訊框之訊框間隔為16 ms。 對於其中CPU 6僅使用當前訊框之忙碌時間百分比的此實例,CPU 6可判定第一訊框之平均時間間隔為16 ms((16+16)/2)(假定初始訊框時間為16 ms)並判定第一訊框之忙碌時間百分比為63%(10/16)。用於第二訊框,CPU 6可判定平均時間間隔為15 ms((16+16+12)/3)),並判定忙碌時間百分比為67%(10/15)。用於第三訊框,CPU 6可判定平均時間間隔為16 ms((16+16+12+20)/4)),且判定忙碌時間百分比為63%(10/16)。用於第四訊框,CPU 6可判定平均時間間隔為17 ms((16+16+12+20+20)/5)),並判定忙碌時間百分比為59%(10/17)。用於第五訊框,CPU 6可判定平均時間間隔為16 ms((16+16+12+20+20+12)/6)),且判定忙碌時間百分比為63%(10/16)。用於第六訊框,CPU 6可判定平均時間間隔為16 ms((16+16+12+20+20+12+16)/7)),且判定忙碌時間百分比為94%(15/16)。 如此實例中所見,儘管CPU 6可判定時間間隔之平均值,但CPU 6可使用僅僅當前訊框之忙碌程度來判定忙碌時間百分比。舉例而言,CPU 6可使用最新訊框利用率而不是移動平均值。在一些實例中,使用者模式驅動器(UMD)可藉由使得CPU 6能夠在訊框邊界處判定GPU 12工作負荷的訊框邊界資訊(例如,訊框之末端)輔助核心裝置驅動器(例如,圖形驅動器28)。 在此實例中,假定五個先前訊框全部具有63%之樣本忙碌百分比。另外,假定五個先前訊框用以判定平均忙碌百分比。對於CPU 6等待GPU 12之空閒時間的情況,針對第一訊框,CPU 6可判定忙碌程度百分比為63%(10/16)並判定平均忙碌程度百分比為63%(例如,(63+63+63+63+63)/5=63)。針對第二訊框,CPU 6可判定忙碌程度百分比為83%(10/12)並判定平均忙碌程度百分比為67%(例如,(63+63+63+63+83)/5=67)。針對第三訊框,CPU 6可判定忙碌程度百分比為50%(10/20)並判定平均忙碌程度百分比為65%(例如,(63+63+63+83+50)/5=64.4)。針對第四訊框,CPU 6可判定忙碌程度百分比為50%(10/20)並判定平均忙碌程度百分比為62%(例如,(63+63+83+50+50)/5=61.8)。針對第五訊框,CPU 6可判定忙碌程度百分比為83%(10/12)並判定平均忙碌程度百分比為66%(例如,(63+83+50+50+83)/5=65.8)。針對第六訊框,CPU 6可判定忙碌程度百分比為94%(15/16)並判定平均忙碌程度百分比為72%(例如,(83+50+50+83+94)/5=72)。 圖5為說明相對於時間段的GPU將執行的命令之數目的圖表。在圖5的實例中,訊框速率為每秒30框數,且如所說明,GPU 12之可導出忙碌程度所藉以的訊框負載大致恆定在24,000。 圖6A為說明利用一個實例技術之相對於圖5中所說明的時間段的忙碌程度百分比判定的圖表。圖6B為說明利用另一實例技術之相對於圖5中所說明的時間段之忙碌程度百分比判定的圖表。在圖6A的實例中,CPU 6及/或GPU 12可基於GPU 12之空閒至空閒時間判定振盪器34的時脈信號之時脈速率,且在圖6B的實例中,CPU 6及/或GPU 12可基於訊框末端至訊框末端判定振盪器34的時脈信號之時脈速率。如圖6A中所說明,時脈速率波動。然而,在圖6B中,時脈速率相當恆定。 圖7為說明根據本發明中描述之技術的時脈速率判定之實例方法的流程圖。如所描述,實例技術可藉由CPU 6、GPU 12或CPU 6與GPU 12之組合執行。因此,關於處理器描述圖7。處理器之一個實例為CPU 6,處理器之一個實例為GPU 12,且處理器之一個實例為CPU 6與GPU 12之組合。 如所說明,處理器(例如,CPU 6及/或GPU 12)判定在GPU 12完成再現第一訊框時的第一時間例項(50)。第一時間例項包含在GPU 12判定第一訊框的最後像素之像素值時的例項或在GPU 12輸出第一訊框的最後像素之像素值時的例項。處理器判定在該GPU 12完成再現緊接在當前訊框之前的第二訊框時的第二時間例項(52)。第二時間例項包含在GPU 12判定第二訊框的最後像素之像素值時的例項或在GPU 12輸出第二訊框的最後像素之像素值時的例項。 在一些情況中,GPU 12在再現第一訊框期間的至少一部分中係空閒的。另外,在一些情況中,GPU 12緊接在完成再現第二訊框之後再現第一訊框,以使得在再現第二訊框與再現第一訊框之間不存在GPU空閒時間。CPU 6接收對於用於再現下一訊框之記憶體的請求,且CPU 6回應於接收到對於用於再現下一訊框之記憶體的請求判定第一時間例項。 處理器基於第一時間例項及第二時間例項判定時間間隔(54)。處理器判定在時間間隔期間用於再現第一訊框的GPU 12之忙碌程度(56)。基於經判定忙碌程度,處理器可設定GPU 12之時脈速率(58)。 在一些實例中,處理器基於經判定忙碌程度判定GPU 12之時脈速率,且處理器基於經判定時脈速率設定GPU 12之時脈速率。舉例而言,CPU 6可指導控制器30設定振盪器34之時脈速率或控制器30可直接設定振盪器34之時脈速率。處理器可基於用於再現第一訊框及無其他訊框的經判定忙碌程度判定用於GPU 12之時脈速率。 在一些實例中,處理器可基於經判定忙碌程度及經判定時間間隔來判定忙碌程度百分比,比較忙碌程度百分比與臨限值,並基於該比較判定時脈速率。在一些實例中,處理器可平均時間間隔及一或多個先前時間間隔以判定平均時間間隔,該一或多個先前時間間隔中之每一者指示各別先前訊框之再現的完成之間的時間間隔。處理器可基於該經判定忙碌程度及平均時間間隔來判定忙碌程度百分比,可比較忙碌程度百分比與臨限值,並基於該比較判定時脈速率。 在一或多個實例中,所描述之功能可以硬體、軟體、韌體或其任何組合來實施。若以軟件實施,則該功能可作為一或多個指令或程式碼儲存在電腦可讀媒體上並由基於硬體之處理單元執行。電腦可讀媒體可包括電腦可讀儲存媒體,其對應於諸如資料儲存媒體之有形媒體。以此方式,電腦可讀媒體通常可對應於非暫時性的有形電腦可讀儲存媒體。資料儲存媒體可為可藉由一或多個電腦或一或多個處理器存取以擷取指令、程式碼及/或資料結構以用於實施本發明所描述之技術的任何可用媒體。電腦程式產品可包括電腦可讀媒體。 藉由實例而非限制,此等電腦可讀儲存媒體可包含RAM、ROM、EEPROM、CD-ROM或其他光碟儲存器、磁碟儲存器或其他磁性儲存裝置、快閃記憶體或可用於儲存呈指令或資料結構形式之所要程式碼且可由電腦存取的任何其他媒體。應理解,電腦可讀儲存媒體及資料儲存媒體並不包括載波、信號或其他暫時性媒體,但取而代之涉及非暫時性、有形儲存媒體。如本文中所使用,磁碟及光碟包括緊密光碟(CD)、雷射光碟、光學光碟、數位影音光碟(DVD)、軟碟和藍光光碟,其中磁碟通常以磁性方式再現資料,而光碟使用雷射以光學方式再現資料。以上各者之組合亦應包括於電腦可讀媒體之範疇內。 可由諸如一或多個數位信號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、場可程式化邏輯陣列(FPGA)或其他等效整合式或離散邏輯電路之一或多個處理器來執行指令。因此,如本文中所使用之術語「處理器」可指上述結構或適合於實施本文中所描述之技術的任何其他結構中之任一者。另外,在一些態樣中,本文中所描述之功能性可提供於經組態用於編碼及解碼之專用硬體及/或軟體模組內,或併入組合式編解碼器中。此外,該等技術可完全實施於一或多個電路或邏輯元件中。 本發明之技術可在廣泛多種裝置或設備中實施,包括無線手持機、積體電路(IC)或一組IC(例如,晶片組)。在本發明中描述各種組件、模組或單元以強調經組態以執行所揭示技術之裝置的功能態樣,但未必要求由不同硬體單元來實現。確切而言,如上文所描述,可將各種單元組合於編解碼器硬體單元中,或藉由互操作性硬體單元(包括如上文所描述之一或多個處理器)之集合結合合適之軟體及/或韌體來提供該等單元。 已描述各種實例。此等及其他實例係在以下申請專利範圍之範疇內。
2‧‧‧計算裝置
4‧‧‧使用者輸入介面
6‧‧‧中央處理單元(CPU)
8‧‧‧記憶體控制器
10‧‧‧系統記憶體
12‧‧‧圖形處理單元(GPU)
14‧‧‧本端記憶體
16‧‧‧顯示介面
18‧‧‧顯示器
20‧‧‧匯流排
24‧‧‧作業系統
26‧‧‧應用程式
28‧‧‧圖形驅動器
30‧‧‧控制器
32‧‧‧頻率管理模組
34‧‧‧振盪器
35‧‧‧計數器暫存器
36‧‧‧著色器核心
38‧‧‧固定功能管線
40‧‧‧命令緩衝器
42‧‧‧資料緩衝器
圖1為說明根據本發明中所描述的一或多個實例技術的用於處理資料之實例裝置的方塊圖。 圖2為更詳細地說明圖1中所說明之裝置之組件的方塊圖。 圖3A至圖3C為說明圖形處理單元(GPU)接收用於再現訊框之命令的實例之時序圖。 圖4為說明GPU接收用於再現訊框之命令的另一實例之時序圖。 圖5為說明相對於時間段的GPU將執行的命令之數目的圖表。 圖6A為說明利用一個實例技術之相對於圖5中所說明的時間段的忙碌程度百分比判定的圖表。 圖6B為說明利用另一實例技術之相對於圖5中所說明的時間段之忙碌程度百分比判定的圖表。 圖7為說明根據本發明中描述之技術的時脈速率判定之實例方法的流程圖。

Claims (27)

  1. 一種時脈速率判定之方法,其包含:藉由一處理器判定一圖形處理單元(GPU)完成再現一第一訊框時的一第一時間例項;藉由該處理器判定該GPU完成再現緊接在該第一訊框之前的一第二訊框時的一第二時間例項;藉由該處理器基於該第一時間例項及該第二時間例項判定一時間間隔;藉由該處理器判定該GPU之在該時間間隔期間用於再現該第一訊框的一忙碌程度,其中該GPU對於該第一訊框之再現期間的至少一部分係空閒的;及基於該判定出之忙碌程度設定該GPU之一時脈速率。
  2. 如請求項1之方法,其中該第一時間例項包含該GPU判定該第一訊框的一最後像素之像素值時的例項或該GPU輸出該第一訊框的該最後像素之該等像素值時的例項,且其中該第二時間例項包含該GPU判定該第二訊框的一最後像素之像素值時的例項或該GPU輸出該第二訊框的該最後像素之該等像素值時的例項。
  3. 如請求項1之方法,其進一步包含:基於該判定出之忙碌程度判定該GPU之一時脈速率,其中設定該時脈速率包含將該時脈速率設定成該判定出之時脈速率。
  4. 如請求項1之方法,其中該GPU緊接在完成再現該第二訊框之後開始再現該第一訊框,以使得在再現該第二訊框與再現該第一訊框之間不存在GPU空閒時間。
  5. 如請求項1之方法,其進一步包含:基於該判定出之忙碌程度及該判定出之時間間隔判定一忙碌程度百分比;比較該忙碌程度百分比與一臨限值;及基於該比較判定該時脈速率,其中設定該時脈速率包含基於該判定出之時脈速率設定該GPU之該時脈速率。
  6. 如請求項1之方法,其進一步包含:對該時間間隔及一或多個先前時間間隔進行平均以判定一平均時間間隔,該一或多個先前時間間隔中之每一者指示各別先前訊框之再現的完成之間的時間間隔;基於該判定出之忙碌程度及該平均時間間隔判定一忙碌程度百分比;比較該忙碌程度百分比與一臨限值;及基於該比較判定該時脈速率,其中設定該時脈速率包含基於該判定出之時脈速率設定該GPU之該時脈速率。
  7. 如請求項1之方法,其進一步包含:基於用於再現該第一訊框及不再現其他訊框的該判定出之忙碌程度判定該GPU之該時脈速率。
  8. 如請求項1之方法,其進一步包含:自該GPU接收對於用於再現一下一訊框的記憶體之一請求,其中判定該第一時間例項包含回應於接收到對於用於再現該下一訊框的該記憶體之該請求而判定該第一時間例項。
  9. 如請求項1之方法,其中該處理器包含一主機處理器,且其中設定該時脈速率包含藉由該主機處理器指導該GPU設定該時脈速率。
  10. 如請求項1之方法,其中該處理器包含該GPU。
  11. 一種用於時脈速率判定之裝置,其包含:記憶體,其經組態以儲存由一圖形處理單元(GPU)使用以用於再現一第一訊框及一第二訊框的圖形資料;及一處理器,其包含積體電路,該處理器經組態以:判定該GPU完成再現該第一訊框時的一第一時間例項;判定該GPU完成再現該第二訊框時的一第二時間例項;基於該第一時間例項及該第二時間例項判定一時間間隔;判定該GPU在該時間間隔期間用於再現該第一訊框之一忙碌程度,其中該GPU對於該第一訊框之再現期間的至少一部分係空閒的; 及基於該判定出之忙碌程度設定該GPU之一時脈速率。
  12. 如請求項11之裝置,其中該第一時間例項包含該GPU判定該第一訊框的一最後像素之像素值時的例項或該GPU輸出該第一訊框的該最後像素之該等像素值時的例項,且其中該第二時間例項包含該GPU判定該第二訊框的一最後像素之像素值時的該例項或該GPU輸出該第二訊框的該最後像素之該等像素值時的該例項。
  13. 如請求項11之裝置,其中該處理器經組態以基於該判定出之忙碌程度判定該GPU之一時脈速率,且其中為設定該時脈速率,該處理器經組態以將該時脈速率設定成該判定出之時脈速率。
  14. 如請求項11之裝置,其中該GPU緊接在完成再現該第二訊框之後開始再現該第一訊框,以使得在再現該第二訊框與再現該第一訊框之間不存在GPU空閒時間。
  15. 如請求項11之裝置,其中該處理器經組態以:基於該判定出之忙碌程度及該判定出之時間間隔判定一忙碌程度百分比;比較該忙碌程度百分比與一臨限值;及基於該比較判定該時脈速率,其中為設定該時脈速率,該處理器經組態以基於該經判定時脈速率設 定該時脈速率。
  16. 如請求項11之裝置,其中該處理器經組態以:對該時間間隔及一或多個先前時間間隔進行平均以判定一平均時間間隔,該一或多個先前時間間隔中之每一者指示各別先前訊框之再現的完成之間的時間間隔;基於該判定出之忙碌程度及該平均時間間隔判定一忙碌程度百分比;比較該忙碌程度百分比與一臨限值;及基於該比較判定該時脈速率,其中為設定該時脈速率,該處理器經組態以基於該判定出之時脈速率設定該時脈速率。
  17. 如請求項11之裝置,其中該處理器經組態以基於用於再現該第一訊框及不再現其他訊框的該經判定出之忙碌程度判定該GPU之該時脈速率。
  18. 如請求項11之裝置,其中該處理器經組態以:自該GPU接收對於用於再現一下一訊框的記憶體之一請求,其中為判定該第一時間例項,該處理器經組態以回應於接收到對於用於再現該下一訊框的該記憶體之該請求而判定該第一時間例項。
  19. 如請求項11之裝置,其中該處理器包含一主機處理器,且其中為設定該時脈速率,該主機處理器經組態以指導該GPU設定該時脈速率。
  20. 如請求項11之裝置,其中該處理器包含該GPU。
  21. 一種儲存指令的非暫時性電腦可讀儲存媒體,該等指令在經執行時使一或多個處理器執行以下操作:判定一圖形處理單元(GPU)完成再現一第一訊框時的一第一時間例項;判定該GPU完成再現緊接在該第一訊框之前的一第二訊框時的一第二時間例項;基於該第一時間例項及該第二時間例項判定一時間間隔;判定該GPU在該時間間隔期間用於再現該第一訊框之一忙碌程度,其中該GPU對於該第一訊框之再現期間的至少一部分係空閒的;及基於該GPU之該判定出之忙碌程度設定該GPU之一時脈速率。
  22. 如請求項21之非暫時性電腦可讀儲存媒體,其中該第一時間例項包含該GPU判定該第一訊框的一最後像素之像素值時的該例項或該GPU輸出該第一訊框的該最後像素之該像素值時的該例項,且其中該第二時間例項包含該GPU判定該第二訊框的一最後像素之像素值時的該例項或該GPU輸出該第二訊框的該最後像素之該像素值時的該例項。
  23. 如請求項21之非暫時性電腦可讀儲存媒體,其進一步包含使該一或多個處理器執行以下操作之指令:基於該判定出之忙碌程度判定該GPU之一時脈速率,其中使得該一或多個處理器設定該時脈速率之該等指令包含使得該 一或多個處理器將該時脈速率設定成該判定出之時脈速率的指令。
  24. 如請求項21之非暫時性電腦可讀儲存媒體,其中該一或多個處理器包含一主機處理器。
  25. 一種用於時脈速率判定之裝置,其包含:用於判定一圖形處理單元(GPU)完成再現一第一訊框時的一第一時間例項的構件;用於判定該GPU完成再現緊接在該第一訊框之前的一第二訊框時之一第二時間例項的構件;用於基於該第一時間例項及該第二時間例項判定一時間間隔的構件;用於判定該GPU在該時間間隔期間用於再現該第一訊框之一忙碌程度的構件,其中該GPU對於該第一訊框之再現期間的至少一部分係空閒的;及用於基於該判定出之忙碌程度設定該GPU之一時脈速率的構件。
  26. 如請求項25之裝置,其中該第一時間例項包含該GPU判定該第一訊框的一最後像素之像素值時的該例項或該GPU輸出該第一訊框的該最後像素之該等像素值時的該例項,且其中該第二時間例項包含該GPU判定該第二訊框的一最後像素之像素值時的該例項或該GPU輸出該第二訊框的該最後像素之該等像素值時的該例項。
  27. 如請求項25之裝置,其進一步包含: 用於基於該判定出之忙碌程度判定該GPU之一時脈速率的構件,其中用於設定該時脈速率的該構件包含用於將該時脈速率設定成該判定出之時脈速率的構件。
TW105142545A 2016-02-03 2016-12-21 用於處理單元之以訊框為基礎之時脈速率調整 TWI622015B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/014,727 US9817431B2 (en) 2016-02-03 2016-02-03 Frame based clock rate adjustment for processing unit
US15/014,727 2016-02-03

Publications (2)

Publication Number Publication Date
TW201729162A TW201729162A (zh) 2017-08-16
TWI622015B true TWI622015B (zh) 2018-04-21

Family

ID=57750637

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105142545A TWI622015B (zh) 2016-02-03 2016-12-21 用於處理單元之以訊框為基礎之時脈速率調整

Country Status (7)

Country Link
US (1) US9817431B2 (zh)
EP (3) EP4242797A3 (zh)
JP (1) JP6526920B2 (zh)
KR (1) KR101931073B1 (zh)
CN (1) CN108604113B (zh)
TW (1) TWI622015B (zh)
WO (1) WO2017136047A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10796397B2 (en) * 2015-06-12 2020-10-06 Intel Corporation Facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance at computing devices
US10388054B2 (en) * 2016-06-03 2019-08-20 Apple Inc. Controlling display performance using animation based refresh rates
US10319065B2 (en) * 2017-04-13 2019-06-11 Microsoft Technology Licensing, Llc Intra-frame real-time frequency control
US10761592B2 (en) * 2018-02-23 2020-09-01 Dell Products L.P. Power subsystem-monitoring-based graphics processing system
CN110018874B (zh) * 2019-04-09 2021-07-13 Oppo广东移动通信有限公司 垂直同步方法、装置、终端及存储介质
CN111240835B (zh) * 2020-01-06 2024-04-16 北京小米移动软件有限公司 Cpu工作频率调整方法、cpu工作频率调整装置及存储介质
WO2021164004A1 (en) 2020-02-21 2021-08-26 Qualcomm Incorporated Reduced display processing unit transfer time to compensate for delayed graphics processing unit render time
US11467621B2 (en) * 2020-02-28 2022-10-11 Qualcomm Incorporated Computer processing unit intra-frame clock and voltage scaling based on graphics application awareness
WO2021196175A1 (en) * 2020-04-03 2021-10-07 Qualcomm Incorporated Methods and apparatus for clock frequency adjustment based on frame latency
US11860688B1 (en) * 2020-04-28 2024-01-02 T-Mobile Innovations Llc Network generated precision time
GB202012559D0 (en) 2020-08-12 2020-09-23 Samsung Electronics Co Ltd Reducing latency between receiving user input and displaying resulting frame
CN113542840B (zh) * 2021-06-11 2023-04-07 浙江大华技术股份有限公司 调整显示延迟的方法、电子装置和存储介质
KR102516412B1 (ko) * 2022-01-13 2023-03-31 성균관대학교산학협력단 기계학습 추론을 위한 gpu 클럭 조절 방법 및 장치
WO2023145641A1 (ja) * 2022-01-31 2023-08-03 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、その制御方法、及びプログラム
WO2024085642A1 (ko) * 2022-10-19 2024-04-25 삼성전자 주식회사 디스플레이를 포함하는 전자 장치 및 이의 동작 방법
KR102621930B1 (ko) * 2023-09-08 2024-01-05 주식회사 엠컴 유휴자원에 따라 컴퓨터의 리소스를 절감하여 절전을 행하는 컴퓨터 시스템 및 그 제어 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200708067A (en) * 2005-08-08 2007-02-16 Lighten Technologies N Image adaptation system and method
TW200931339A (en) * 2007-09-14 2009-07-16 Qualcomm Inc Fragment shader bypass in a graphics processing unit, and apparatus and method thereof
US8495397B2 (en) * 2010-07-09 2013-07-23 Elitegroup Computer Systems Co., Ltd. Computer system capable of adjusting operating frequency dynamically
US20150066433A1 (en) * 2013-08-30 2015-03-05 Google Inc. Measuring user interface performance consistency

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149909B2 (en) 2002-05-09 2006-12-12 Intel Corporation Power management for an integrated graphics device
US7075541B2 (en) 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
CN101458555B (zh) * 2007-12-12 2011-12-21 成都市华为赛门铁克科技有限公司 一种调节时钟周期的方法和计算系统
US8732488B1 (en) 2008-04-17 2014-05-20 Marvell International Ltd. Millions of instruction per second (MIPS) based idle profiler in a power management framework
US8199158B2 (en) 2008-06-11 2012-06-12 Intel Corporation Performance allocation method and apparatus
US8909962B2 (en) * 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8924752B1 (en) 2011-04-20 2014-12-30 Apple Inc. Power management for a graphics processing unit or other circuit
US8856566B1 (en) 2011-12-15 2014-10-07 Apple Inc. Power management scheme that accumulates additional off time for device when no work is available and permits additional power consumption by device when awakened
US9250665B2 (en) 2012-06-07 2016-02-02 Apple Inc. GPU with dynamic performance adjustment
US9424620B2 (en) 2012-12-29 2016-08-23 Intel Corporation Identification of GPU phase to determine GPU scalability during runtime
US9201487B2 (en) * 2013-03-05 2015-12-01 Intel Corporation Reducing power consumption during graphics rendering
US20150185803A1 (en) 2013-12-30 2015-07-02 Qualcomm Incorporated System and method for dcvs headroom adjustment and processing level optimization in a system on a chip
US10446118B2 (en) * 2015-06-02 2019-10-15 Intel Corporation Apparatus and method using subdivided swapchains for improved virtual reality implementations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200708067A (en) * 2005-08-08 2007-02-16 Lighten Technologies N Image adaptation system and method
TW200931339A (en) * 2007-09-14 2009-07-16 Qualcomm Inc Fragment shader bypass in a graphics processing unit, and apparatus and method thereof
US8495397B2 (en) * 2010-07-09 2013-07-23 Elitegroup Computer Systems Co., Ltd. Computer system capable of adjusting operating frequency dynamically
US20150066433A1 (en) * 2013-08-30 2015-03-05 Google Inc. Measuring user interface performance consistency

Also Published As

Publication number Publication date
EP4242797A3 (en) 2023-11-15
BR112018015857A2 (pt) 2018-12-26
WO2017136047A1 (en) 2017-08-10
US20170220062A1 (en) 2017-08-03
CN108604113B (zh) 2022-03-08
TW201729162A (zh) 2017-08-16
JP2019508804A (ja) 2019-03-28
EP4113249A1 (en) 2023-01-04
US9817431B2 (en) 2017-11-14
KR20180093084A (ko) 2018-08-20
JP6526920B2 (ja) 2019-06-05
EP3411774A1 (en) 2018-12-12
KR101931073B1 (ko) 2018-12-19
EP4242797A2 (en) 2023-09-13
CN108604113A (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
TWI622015B (zh) 用於處理單元之以訊框為基礎之時脈速率調整
US10332230B2 (en) Characterizing GPU workloads and power management using command stream hinting
EP3436894B1 (en) Active and stall cycle based dynamic scaling of processor frequency and bus bandwidth
US10134103B2 (en) GPU operation algorithm selection based on command stream marker
JP5792402B2 (ja) グラフィックス処理ユニット上でのグラフィックスアプリケーションおよび非グラフィックスアプリケーションの実行
US20170199558A1 (en) Flexible and scalable energy model for estimating energy consumption
US9940905B2 (en) Clock rate adjustment for processing unit
US20110285709A1 (en) Allocating Resources Based On A Performance Statistic
US8522254B2 (en) Programmable integrated processor blocks
BR112018015857B1 (pt) Ajuste da taxa de clock baseado em quadro para unidade de processamento
US12033603B2 (en) Methods and apparatus for plane planning for overlay composition