TWI597599B - 圖形處理單元與其管理方法 - Google Patents
圖形處理單元與其管理方法 Download PDFInfo
- Publication number
- TWI597599B TWI597599B TW101120156A TW101120156A TWI597599B TW I597599 B TWI597599 B TW I597599B TW 101120156 A TW101120156 A TW 101120156A TW 101120156 A TW101120156 A TW 101120156A TW I597599 B TWI597599 B TW I597599B
- Authority
- TW
- Taiwan
- Prior art keywords
- graphics
- engine
- processing unit
- graphics engine
- working
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- Power Sources (AREA)
- Processing Or Creating Images (AREA)
Description
本發明是有關於一種圖形處理單元(GPU:graphics processing unit),且特別是有關於一種圖形處理單元的管理方法。
目前大眾普遍使用的電子裝置,例如智慧型手機(smart phone)、個人數位助理(PDA:personal digital assistant)、平板電腦(tablet computer)、筆記型電腦(notebook computer)、或桌上型個人電腦(desktop personal computer),或多或少都有省電管理的功能。為了降低電力消耗或降低廢熱產生,這些電子裝置可以對處理器(processor)、輔助處理器(co-processor)和晶片組(chipset)這些重要元件進行省電管理。目前已經有多種基於硬體機制的省電管理技術,例如動態電壓頻率調整(DVFS:dynamical voltage/frequency scaling)和時脈截止(clock gating)。這些省電管理技術都是基於硬體層面,靈活性較差。
本發明提供一種圖形處理單元與其管理方法,可分離省電管理的硬體機制和軟體對策(policy),根據圖形處理單元的工作負荷的輕重程度,對圖形處理單元進行富有彈性
的省電管理。
本發明提出一種圖形處理單元,包括至少一圖形引擎和一引擎管理器(engine manager)。圖形引擎根據來自驅動程式(driver)的圖形指令執行視訊解碼(video decoding)功能或圖形繪製(graphics rendering)功能。引擎管理器耦接每一上述圖形引擎,記錄每一上述圖形引擎的工作指數,並根據來自驅動程式的調整指令以調整上述至少一圖形引擎其中的一個或多個的工作能力。其中,上述驅動程式根據上述工作指數提供上述調整指令。
本發明另提出一種圖形處理單元管理方法,包括下列步驟。接收來自一圖形處理單元的通知訊號。根據上述通知訊號,取得圖形處理單元的至少一圖形引擎的工作指數。根據上述至少一圖形引擎的工作指數,發出調整指令至圖形處理單元,以指示圖形處理單元以調整上述至少一圖形引擎其中的一個或多個的工作能力。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是依照本發明一實施例的一種電子裝置100的示意圖。電子裝置100包括圖形處理單元110以及圖形處理單元110的驅動程式130。圖形處理單元110包括顯示引擎(display engine)112、指令引擎(command engine)114、記憶體介面116、至少一個圖形引擎118、以及引擎管理器
120。
當電子裝置100執行的應用程式需要繪製圖形時,應用程式會呼叫電子裝置100的作業系統提供的應用程式介面(API:application programming interface),使驅動程式130發送出源自應用程式的圖形指令142至圖形處理單元110。圖形處理單元110中的指令引擎114可接收由驅動程式130發送的圖形指令142,以分析圖形指令142的種類,並根據圖形指令142的種類,將圖形指令142分派至圖形引擎118其中之一。對應之圖形引擎118則根據圖形指令142執行圖形處理單元110的視訊解碼功能或圖形繪製功能。
記憶體介面116耦接圖形引擎118和一個記憶體(未繪示),此記憶體可在圖形處理單元110的內部或外部。當此記憶體在圖形處理單元110的內部時,此記憶體可為圖形處理單元110的圖形記憶體(graphic memory)。當此記憶體在圖形處理單元110的外部時,此記憶體可為電子裝置100中的系統記憶體,此系統記憶體可為電子裝置100中的處理器(圖中未示)以及圖形處理單元110共用。記憶體介面116可將圖形引擎118的解碼或繪製所得的圖形資料存入上述記憶體。顯示引擎112耦接記憶體介面116,可透過記憶體介面116取得上述圖形資料,並根據諸如高畫質多媒體介面(HDMI:High-Definition Multimedia Interface)或數位視覺介面(DVI:Digital Visual Interface)之類的標準顯示介面輸出上述圖形資料。
引擎管理器120耦接每一個圖形引擎118,記錄每一個圖形引擎118的工作指數。在一實施例中,此工作指數和該圖形引擎118的工作負荷成正比,工作指數越高,表示此圖形引擎118的工作負荷越重。此工作指數可以是該圖形引擎118在單位時間內的接收工作量、完成工作量、剩餘工作量、閒置(idle)時脈週期數量、或對記憶體介面116所耦接的記憶體的存取總資料量。
上述的接收工作量是指圖形指令142給予該圖形引擎118的工作量,上述的接收工作量減去完成工作量就是上述的剩餘工作量。
至於閒置時脈週期數量,可參照以下說明。該圖形引擎118接收指令引擎114分派的圖形指令142後,圖形引擎118可進行對應圖形指令142的視訊解碼功能或圖形繪製功能。根據該圖形引擎118的工作能力(例如工作頻率或工作電壓),該圖形引擎118可在一定期間內完成對應此圖形指令142的工作。然而在此期間內該圖形引擎118不是一直持續在工作狀態中。以100個工作週期(duty cycle)為例,該圖形引擎118可能僅有60個時脈週期處於工作狀態,而有40個時脈週期處於閒置狀態。此工作狀態與閒置狀態的分配比例與該圖形引擎118有關,因此可用此閒置時脈週期數量作為該圖形引擎118的工作指數。
如前所述,圖形引擎118進行視訊解碼功能或圖形繪製功能後,會將解碼或繪製所得的圖形資料透過記憶體介面116存入記憶體中,等待顯示引擎112讀取。因此,在
單位時間內此記憶體被該圖形引擎118存取總資料量與該圖形引擎118的工作負荷有關,而可視為該圖形引擎118的工作指數。在實作上,圖形引擎118每次解碼或繪製圖形資料後,會指定記憶體的特定位址儲存特定圖形引擎118解碼或繪製的圖形資料,以待顯示引擎112讀取。因此可將記憶體中此特定位址在單位時間內的資料存取總資料量視為該圖形引擎118的工作指數。對於上述記憶體的存取總資料量是將自上述記憶體讀取的資料量和寫入上述記憶體的資料量一併計算。
驅動程式130可根據引擎管理器120所記錄的任意一個圖形引擎118的工作指數提供調整指令144至引擎管理器120,以告知引擎管理器120要將該圖形引擎118的工作能力作什麼樣的調整。引擎管理器120可根據調整指令144調整圖形引擎118其中的一個或多個的工作能力。引擎管理器120可藉由調整一個圖形引擎118的工作電壓和/或工作頻率,以調整該圖形引擎118的工作能力。一般而言,當工作電壓和/或工作頻率調整得越高,該圖形引擎118的工作能力也越高,不過該圖形引擎118的耗電量也會隨著增加。
圖2是依照本發明一實施例的一種圖形處理單元的示意圖。在圖2中,圖形處理單元110包括顯示引擎112、指令引擎114、記憶體介面116以及多個圖形引擎。上述多個圖形引擎可包括視訊引擎(video engine)202、三維引擎204、以及二維引擎206,但本發明不限於上述三種圖形
引擎。如前所述,指令引擎114可分析圖形指令142的種類。若圖形指令142是視訊解碼指令,則指令引擎114將圖形指令142分派至視訊引擎202。視訊引擎202可根據圖形指令142執行上述的視訊解碼功能,例如根據H.264或動態畫面專家群組(MPEG:Moving Picture Experts Group)等標準進行視訊解碼。若圖形指令142是三維圖形指令,則指令引擎114將圖形指令142分派至三維引擎204。三維引擎204可根據圖形指令142執行上述的圖形繪製功能其中的三維圖形繪製功能。若圖形指令142是二維圖形指令,則指令引擎114將圖形指令142分派至二維引擎206。二維引擎206可根據圖形指令142執行上述的圖形繪製功能其中的二維圖形繪製功能。
如圖1所述,一個圖形引擎118的工作指數可以是該圖形引擎118在單位時間內的接收工作量、完成工作量、剩餘工作量、閒置時脈週期數量、以及對記憶體介面116所耦接的記憶體的存取總資料量。其中,對於工作量,不同類型的圖形引擎118的工作量可能有不同定義。例如圖2的視訊引擎202的工作量是圖形指令142所指派的需要解碼的視訊區塊(macroblock)數量,三維引擎204的工作量是圖形指令142所指派的需要繪製的三角形的總面積,二維引擎206的工作量則是圖形指令142所指派的需要繪製的矩形的總面積。
一個圖形引擎118的工作指數也可以由引擎管理器120至少根據該圖形引擎118在上述單位時間內的接收工
作量、完成工作量、剩餘工作量、閒置時脈週期數量、以及對記憶體介面116所耦接的記憶體的存取總資料量其中之一通過特定公式計算產生。
現在返回參照圖1,如圖1所示,引擎管理器120可包括至少一組暫存器124,每一組暫存器124對應圖形引擎118其中之一,以儲存對應的圖形引擎118的工作指數,驅動程式130可根據暫存器124所儲存的上述工作指數提供調整指令144,細節後述。在另一實施例中,每一組暫存器124還儲存一個或多個臨界值,驅動程式130可根據暫存器124所儲存的上述工作指數和上述臨界值提供調整指令144,細節也在後述。
引擎管理器120可根據驅動程式130設定的間隔,週期性地發出通知訊號146至驅動程式130。例如,引擎管理器120可用中斷(interrupt)的方式發出通知訊號146。驅動程式130可在收到通知訊號146時,自暫存器124擷取圖形引擎118的工作指數,以根據擷取的工作指數提供調整指令144。
除了週期性地發出通知訊號146外,引擎管理器120也可以在圖形引擎118其中之一的工作指數跨越該圖形引擎118對應的多個臨界值中的一個時,發出通知訊號146至驅動程式130。驅動程式130可在收到通知訊號146時,根據跨越該臨界值的該工作指數提供調整指令144,細節後述。
圖3是依照本發明一實施例的一種圖形處理單元管理
方法的流程圖。此方法可由驅動程式130對圖形處理單元110執行,或由其他可對圖形處理單元110進行省電管理的硬體或軟體執行。以下說明圖3的方法流程。首先在步驟320接收來自圖形處理單元110的引擎管理器120的通知訊號146。在步驟340根據通知訊號146,取得圖形處理單元110的至少一個圖形引擎118的工作指數。然後在步驟360,根據至少一個圖形引擎118的工作指數,發出調整指令144至圖形處理單元110的引擎管理器120,以指示引擎管理器120以調整工作電壓和/或工作頻率的方式調整圖形引擎118其中的一個或多個的工作能力。
在一實施例中,驅動程式130是根據圖形引擎118的工作指數以及驅動程式130的一個目前管理對策(policy)以發出調整指令144至圖形處理單元110的引擎管理器120。關於上述管理對策,可參照圖4,圖4為本發明一實施例的驅動程式的示意圖。驅動程式130包括多個預設管理對策1311~131n以及一個目前管理對策1300,驅動程式130可在多個預設的管理對策1311~131n當中選擇其中之一,做為目前管理對策1300。每一個管理對策1300及1311~131n均包括每一個圖形引擎118的至少一個臨界值、每個圖形引擎118的不同的工作指數對應的不同工作能力、以及每個圖形引擎118的工作能力的調整規則。每一個圖形引擎118的一個或多個臨界值可將其工作指數的範圍劃分為多個區段,該圖形引擎118的工作指數若位於不同區段,則對其工作能力可套用不同的調整規則。每一
個管理對策1300及1311~131n均可以有不同數量和不同數值的臨界值,也可以有各自不同的調整規則。同一個管理對策中,對於不同圖形引擎,可以有不同數量和不同數值的臨界值,也可以有各自不同的調整規則。如何依據每一個圖形引擎118的工作指數來調整該圖形引擎118的工作電壓和/或工作頻率,是由目前管理對策1300的調整規則所決定,並且由調整指令144告知引擎管理器120。
至於如何選擇目前管理對策1300,驅動程式130可预先依據取自引擎管理器120的圖形引擎118的工作指數,來自動選擇目前該使用哪一個管理對策。舉例而言,預設管理對策1311~1313分別是視訊模式管理對策1311、三維模式管理對策1312和二維模式管理對策1313,這三個管理對策分別對應圖2的視訊引擎202、三維引擎204以及二維引擎206。驅動程式130可分析視訊引擎202、三維引擎204以及二維引擎206的工作指數,並將目前管理對策1300自動切換為工作指數最高的圖形引擎所對應的上述管理對策。在視訊模式管理對策1311中,視訊引擎202被劃分為主要類型,其餘兩個圖形引擎(三維引擎204以及二維引擎206)被劃分為次要類型。在三維模式管理對策1312中,三維引擎204被劃分為主要類型,其餘兩個圖形引擎(視訊引擎202以及二維引擎206)被劃分為次要類型。在二維模式管理對策1313中,二維引擎206被劃分為主要類型,其餘兩個圖形引擎(視訊引擎202以及三維引擎204)被劃分為次要類型。以上三個管理對策會將這
三個圖形引擎中分類為主要類型的圖形引擎的工作能力設定為高於分類為次要類型的圖形引擎的工作能力,讓主要類型的圖形引擎可使用較多電力以發揮作用。
驅動程式130也可根據電子裝置100所執行的應用程式種類來選擇目前管理對策1300。例如,當電子裝置100執行視訊播放軟體時,驅動程式130可選擇上述視訊模式管理對策1311。當電子裝置100執行遊戲軟體時,驅動程式130可選擇上述的三維模式管理對策1312。當電子裝置100執行文書編輯軟體時,驅動程式130可選擇上述的二維模式管理對策1313。
驅動程式130也可根據電子裝置100的應用狀態來選擇目前管理對策1300。例如,當電子裝置100連接電池之類的限時電源時,驅動程式130可將目前管理對策1300切換為預設管理對策其中之限電模式管理對策1314。當電子裝置100連接市電之類的恆久電源時,驅動程式130可將目前管理對策1300切換為預設管理對策其中之不限電模式管理對策1315。在限電模式管理對策1314中,可設定每一個圖形引擎118各具有一第一工作能力。在不限電模式管理對策1315中,可設定每一個圖形引擎118各具有一第二工作能力。在此,每一圖形引擎的第一工作能力低於同一圖形引擎的第二工作能力,以節省限時電源的電力。
此外,驅動程式130也可以讓電子裝置100的使用者來選擇目前管理對策1300。例如上述的預設管理對策1311~131n可以開放,讓使用者透過工具程式或應用程式
介面(API)選擇其中之一,做為目前管理對策1300。
以下討論驅動程式130如何根據圖形引擎118的工作指數以及目前管理對策1300以發出調整指令144。
在一實施例中,驅動程式130可週期性的接收來自圖形處理單元110的通知訊號146。至於如何設定該週期性的通知訊號146的發送間隔,在一實施例中,驅動程式130可預先將目前管理對策1300所對應的一個預設間隔發送至引擎管理器120,讓引擎管理器120依據此預設間隔週期性的送出通知訊號146。這個預設間隔可以是管理對策的一部分,不同的管理對策可以有不同的預設間隔。驅動程式130可在收到這一類通知訊號146時,自圖形處理單元110的引擎管理器120收集至少一個圖形引擎118的工作指數,對圖形引擎118的工作指數進行統計或預測,然後根據上述的統計或預測發出調整指令144至圖形處理單元110的引擎管理器120,以指示引擎管理器120如何調整圖形引擎118的工作能力。在一實施例中,驅動程式130可根據其所收集到至少一個圖形引擎118的工作指數來進行統計,例如可將該工作指數與目前管理對策1300中對應該圖形引擎118的至少一個臨界值進行比較,如果該工作指數跨越一臨界值,則驅動程式130可提供調整指令144至引擎管理器120,以指示引擎管理器120對應調整圖形引擎118的工作能力,詳見後述。在另一實施例中,驅動程式130例如可用線性預測(extrapolation)來預測短期內的工作指數趨勢。例如,驅動程式130第一次讀取到一圖形
引擎118的工作指數為10,第二次讀取到的工作指數30。此時,驅動程式130可透過線性預測的方式來預測下一次讀取到的工作指數為50,而可預先透過調整指令144以提昇該圖形引擎118的工作能力。此外,驅動程式130也可根據對於圖形引擎118的上述統計或預測的工作指數,切換目前管理對策1300。例如,當目前管理對策1300對應到二維模式管理對策1313,且三維引擎204的工作指數持續增加時,驅動程式130則可將目前管理對策1300切換為三維模式管理對策1312。
在引擎管理器120於某一圖形引擎的工作指數超過臨界值時送出通知訊號146的實施例中,驅動程式130預先將目前管理對策1300的至少一個臨界值發送至圖形處理單元110的引擎管理器120。然後,在圖形引擎118其中之一的工作指數跨越該圖形引擎118的臨界值其中之一時,驅動程式130會收到來自圖形處理單元110的引擎管理器120的通知訊號146。每當收到這一類的通知訊號146時,驅動程式130可根據跨越該臨界值的該工作指數提供調整指令144至圖形處理單元110的引擎管理器120,以指示引擎管理器120如何調整圖形引擎118的工作能力。
在引擎管理器120於某一圖形引擎的工作指數超過臨界值時送出通知訊號146的實施例,或者引擎管理器120週期性的發出通知訊號146的實施例中,驅動程式130均可依據接收到的通知訊號146自圖形處理單元110的引擎管理器120收集至少一個圖形引擎118的工作指數。至於
驅動程式130如何根據圖形引擎118之工作指數提供調整指令144,舉例而言,目前管理對策1300可將某個圖形引擎118的工作能力分為多個等級,該圖形引擎118的臨界值可包括一個上臨界值和一個下臨界值,此上臨界值的數值大於下臨界值的數值。若驅動程式130收到通知訊號146時,該圖形引擎118的工作指數的跨越臨界值的方式是上升至大於上臨界值,則調整指令144可指示引擎管理器120將該圖形引擎118的工作能力上調一個等級。如前所述,圖形引擎118之工作指數為該圖形引擎118在一單位時間內的接收工作量、完成工作量、剩餘工作量、閒置時脈週期數量、或對一記憶體的存取總資料量。舉圖形引擎118之工作指數為閒置時脈週期數量為例,上調一個等級之後,該圖形引擎118的工作能力升高,所以可能使工作指數降低。因此適當的升高該圖形引擎118的工作能力後,可使該圖形引擎118的工作指數回到小於上臨界值的區段。反之,若驅動程式130收到通知訊號146時,該圖形引擎118的工作指數的跨越臨界值的方式是下降至小於下臨界值,則調整指令144可指示引擎管理器120將該圖形引擎118的工作能力下調一個等級。如此調整之後,該圖形引擎118的工作能力降低,所以可能使工作指數(如圖形引擎118的閒置時脈週期數量)升高。因此適當的降低該圖形引擎118的工作能力後,可能使該圖形引擎118的工作指數回到大於下臨界值的區段。如果該圖形引擎118的工作指數再度跨越上臨界值或下臨界值,調整指令144
會使該圖形引擎118的工作能力再對應的上調或下調一個等級。如果該圖形引擎118的工作指數不再跨越上臨界值或下臨界值,則其工作能力維持不變,不會再受到調整。
舉另一個例子,目前管理對策1300可為某一個圖形引擎118設定多個臨界值,這些臨界值可將該圖形引擎118的工作能力分為多個等級。當驅動程式130收到該圖形引擎118的工作指數跨越某個臨界值的通知訊號146時,調整指令144可指示引擎管理器120將該圖形引擎118的工作能力設定為跨越該臨界值的該工作指數所在的該等級。圖5為本發明一實施例的臨界值與工作能力的示意圖。如圖所示,目前管理對策1300可為某一個圖形引擎118設定四個臨界值T1、T2、T3和T4,這四個臨界值的數值由大至小依序為T4、T3、T2以及T1。這四個臨界值可將該圖形引擎118的工作能力分為五個等級L1、L2、L3、L4和L5。
當該圖形引擎118的工作指數大於臨界值T4時,則該圖形引擎118的工作能力坐落於等級L5;當該圖形引擎118的工作指數落在於臨界值T4以及T3之間時,則該圖形引擎118的工作能力坐落於等級L4;當該圖形引擎118的工作指數落在於臨界值T3以及T2之間時,則該圖形引擎118的工作能力坐落於等級L3;當該圖形引擎118的工作指數落在於臨界值T2以及T1之間時,則該圖形引擎118的工作能力坐落於等級L2;當該圖形引擎118的工作指數小於臨界值T1時,則該圖形引擎118的工作能力坐落於等級L1。圖形引擎118對應於等級L5的工作能力大於對應於等
級L4的工作能力;圖形引擎118對應於等級L4的工作能力大於對應等級L3的工作能力;圖形引擎118對應於等級L3的工作能力大於對應等級L2的工作能力;圖形引擎118對應於等級L2的工作能力大於對應等級L1的工作能力。
以下舉例說明目前管理對策1300依據圖形引擎118的工作指數與臨界值的關係而調整該圖形引擎118的工作能力。若某一圖形引擎118的工作指數原為大於T2且小於T3,當圖形處理單元110執行視訊解碼或圖形繪製工作時,該圖形引擎118的工作指數提升為大於T3且小於T4。因為此工作指數跨越臨界值T3,引擎管理器120發出通知訊號146。驅動程式130收到通知訊號146之後,可發出對應的調整指令144,指示引擎管理器120將該圖形引擎118的工作能力由原本來等級L3更改設定為等級L4。當該圖形引擎118的工作指數從小於T3增加為大於T4,因為此工作指數跨越臨界值T3和T4,引擎管理器120發出通知訊號146。驅動程式130收到通知訊號146之後,可發出對應的調整指令144,指示引擎管理器120將該圖形引擎118的工作能力直接設定為等級L5。
在本發明其它實施例中,目前管理對策1300所包括的臨界值亦可以調整。驅動程式130可根據目前管理對策1300的調整規則和至少一個圖形引擎118的工作指數,調整目前管理對策1300的至少一個圖形引擎118的臨界值的部分或全部,並且將調整後的臨界值發送至圖形處理單元110,以更新引擎管理器120的暫存器124所儲存的臨界
值。例如當某一個圖形引擎118的工作指數迅速上升時,驅動程式130可以調高該圖形引擎118的一個或多個臨界值。驅動程式130可因應使用者的選擇或操作,將以上述方式調整過臨界值的管理對策儲存為另一個管理對策,以供日後取回使用。
綜上所述,本發明提供一種圖形處理單元與其管理方法,可根據圖形處理單元的每一個圖形引擎工作負荷的輕重程度,對每一個圖形引擎進行獨立的或聯合的省電管理。本發明可分離省電管理的硬體機制和軟體對策(policy),可允許硬體機制和軟體對策雙方的獨立設計。因此,本發明具有極大的彈性。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧電子裝置
110‧‧‧圖形處理單元
112‧‧‧顯示引擎
114‧‧‧指令引擎
116‧‧‧記憶體介面
118‧‧‧圖形引擎
120‧‧‧引擎管理器
124‧‧‧暫存器
130‧‧‧驅動程式
142‧‧‧圖形指令
144‧‧‧調整指令
146‧‧‧通知訊號
202‧‧‧視訊引擎
204‧‧‧三維引擎
206‧‧‧二維引擎
320、340、360‧‧‧圖形處理單元管理方法的流程步驟
1300‧‧‧目前管理對策
1311~131n‧‧‧預設管理對策
L1~L5‧‧‧工作能力等級
T1~T4‧‧‧臨界值
圖1是依照本發明一實施例的一種電子裝置的示意圖。
圖2是依照本發明一實施例的一種圖形處理單元的示意圖。
圖3是依照本發明一實施例的一種圖形處理單元管理方法的流程圖。
圖4為依照本發明一實施例的驅動程式的示意圖。
圖5為依照本發明一實施例的圖形引擎的臨界值與工作能力的示意圖。
100‧‧‧電子裝置
110‧‧‧圖形處理單元
112‧‧‧顯示引擎
114‧‧‧指令引擎
116‧‧‧記憶體介面
118‧‧‧圖形引擎
120‧‧‧引擎管理器
124‧‧‧暫存器
130‧‧‧驅動程式
142‧‧‧圖形指令
144‧‧‧調整指令
146‧‧‧通知訊號
Claims (15)
- 一種圖形處理單元,包括:至少一圖形引擎,根據來自一驅動程式的一圖形指令執行一視訊解碼功能或一圖形繪製功能;以及一引擎管理器,耦接每一上述圖形引擎,其中該引擎管理器包括至少一組暫存器,上述每一組暫存器對應該至少一圖形引擎其中之一,並儲存對應的該圖形引擎的一工作指數,其中該引擎管理器根據該驅動程式設定的間隔,週期性的發出一通知訊號至該驅動程式,使該驅動程式在收到該通知訊號時自上述至少一組暫存器擷取該至少一圖形引擎的該工作指數,其中該引擎管理器根據來自該驅動程式的一調整指令調整該至少一圖形引擎其中的一個或多個的工作能力,其中該驅動程式根據一管理對策和每一上述圖形引擎的該工作指數提供該調整指令,其中該驅動程式對該至少一圖形引擎的該工作指數進行預測,並且根據上述預測發出該調整指令至該引擎管理器,或切換該管理對策,其中該管理對策包括:對應一限時電源,設定每一上述圖形引擎各具有一第一工作能力;對應一恆久電源,設定每一上述圖形引擎各具有一第二工作能力,其中,每一上述圖形引擎的該第一工作能力低於同一圖形引擎的該第二工作能力; 每一上述圖形引擎對應該工作指數的該工作能力;以及每一上述圖形引擎的該工作能力的調整規則。
- 如申請專利範圍第1項所述之圖形處理單元,其中該至少一圖形引擎包括:一視訊引擎,根據該圖形指令執行該視訊解碼功能;一三維引擎,根據該圖形指令執行該圖形繪製功能其中的一三維圖形繪製功能;以及一二維引擎,根據該圖形指令執行該圖形繪製功能其中的一二維圖形繪製功能。
- 如申請專利範圍第1項所述之圖形處理單元,更包括:一指令引擎,耦接該至少一圖形引擎,自該驅動程式接收該圖形指令,分析該圖形指令的種類,並根據該圖形指令的種類,將該圖形指令分派至該至少一圖形引擎其中之一;一記憶體介面,耦接該至少一圖形引擎和一記憶體,該至少一圖形引擎的解碼或繪製所得的圖形資料透過該記憶體介面存入該記憶體;以及一顯示引擎,耦接該記憶體介面,透過該記憶體介面取得該圖形資料,並根據一標準顯示介面輸出該圖形資料。
- 如申請專利範圍第1項所述之圖形處理單元,其中每一上述圖形引擎的該工作指數為該圖形引擎在一單位時間內的接收工作量、完成工作量、剩餘工作量、閒置時脈 週期數量、或對一記憶體的存取總資料量。
- 如申請專利範圍第1項所述之圖形處理單元,其中每一上述圖形引擎的該工作指數為根據該圖形引擎在一單位時間內的接收工作量、完成工作量、剩餘工作量、閒置時脈週期數量、以及對一記憶體的存取總資料量的至少其中之一而計算產生。
- 如申請專利範圍第1項所述之圖形處理單元,其中該引擎管理器之上述每一組暫存器更儲存對應的該圖形引擎的至少一臨界值,在該至少一圖形引擎其中之一的該工作指數跨越該圖形引擎的該至少一臨界值其中之一時,該引擎管理器發出一通知訊號至該驅動程式,使該驅動程式在收到該通知訊號時根據跨越該臨界值的該工作指數提供該調整指令。
- 如申請專利範圍第1項所述之圖形處理單元,其中該引擎管理器透過調整該至少一圖形引擎其中的一個或多個的工作電壓和/或工作頻率,以調整該至少一圖形引擎其中的一個或多個的該工作能力。
- 一種圖形處理單元管理方法,包括:接收來自一圖形處理單元的一通知訊號;根據該通知訊號,取得該圖形處理單元的至少一圖形引擎的一工作指數;根據一管理對策和該至少一圖形引擎的該工作指數發出一調整指令至該圖形處理單元,以指示該圖形處理單元調整該至少一圖形引擎其中的一個或多個的工作能力; 根據該管理對策所對應的一預設間隔,週期性的接收來自該圖形處理單元的該通知訊號;在收到該通知訊號時,自該圖形處理單元收集該至少一圖形引擎的該工作指數;對該至少一圖形引擎的該工作指數進行預測;以及根據上述預測發出該調整指令至該圖形處理單元,或切換該管理對策,其中該管理對策包括:對應一限時電源,設定每一上述圖形引擎各具有一第一工作能力對應一恆久電源,設定每一上述圖形引擎各具有一第二工作能力,其中,每一上述圖形引擎的該第一工作能力低於同一圖形引擎的該第二工作能力;每一上述圖形引擎的至少一臨界值;每一上述圖形引擎對應該工作指數的該工作能力;以及每一上述圖形引擎的該工作能力的調整規則。
- 如申請專利範圍第8項所述之圖形處理單元管理方法,其中該管理對策更包括:將該至少一圖形引擎劃分為一主要類型和一次要類型,且將該至少一圖形引擎中分類為該主要類型者的工作能力設定為高於該至少一圖形引擎中分類為該次要類型者的工作能力。
- 如申請專利範圍第8項所述之圖形處理單元管理 方法,更包括:將每一上述圖形引擎的該至少一臨界值發送至該圖形處理單元;在該至少一圖形引擎其中之一的該工作指數跨越該圖形引擎的該至少一臨界值其中之一時,接收來自該圖形處理單元的該通知訊號;以及在收到該通知訊號時,根據跨越該臨界值的該工作指數提供該調整指令至該圖形處理單元。
- 如申請專利範圍第10項所述之圖形處理單元管理方法,其中跨越該臨界值的該工作指數對應的該圖形引擎的該工作能力分為多個等級,該圖形引擎的該至少一臨界值包括一上臨界值和一下臨界值,該上臨界值大於該下臨界值,而且根據跨越該臨界值的該工作指數提供該調整指令的步驟包括:當該工作指數的跨越方式是上升至大於該上臨界值,則該調整指令包括將該圖形引擎的該工作能力上調一個等級;以及當該工作指數的跨越方式是下降至小於該下臨界值,則該調整指令包括將該圖形引擎的該工作能力下調一個等級。
- 如申請專利範圍第10項所述之圖形處理單元管理方法,其中跨越該臨界值的該工作指數對應的該圖形引擎的該至少一臨界值包括多個臨界值,上述多個臨界值將該圖形引擎的該工作能力分為多個等級,而且該調整指令 包括將該圖形引擎的該工作能力設定為跨越該臨界值的該工作指數所在的該等級。
- 如申請專利範圍第8項所述之圖形處理單元管理方法,更包括:根據該管理對策的調整規則和該至少一圖形引擎的該工作指數,調整該管理對策的該至少一圖形引擎的該至少一臨界值的部分或全部。
- 如申請專利範圍第13項所述之圖形處理單元管理方法,更包括:將調整過後的該至少一臨界值儲存為另一管理對策。
- 如申請專利範圍第8項所述之圖形處理單元管理方法,其中指示該圖形處理單元調整該至少一圖形引擎其中的一個或多個的該工作能力的步驟包括:透過調整該至少一圖形引擎其中的一個或多個的工作電壓和/或工作頻率,以調整該至少一圖形引擎其中的一個或多個的該工作能力。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101120156A TWI597599B (zh) | 2012-06-05 | 2012-06-05 | 圖形處理單元與其管理方法 |
CN201210211900.1A CN102866765B (zh) | 2012-06-05 | 2012-06-21 | 图形处理单元与其管理方法 |
US13/645,466 US9147225B2 (en) | 2012-06-05 | 2012-10-04 | Graphics processing unit and management method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101120156A TWI597599B (zh) | 2012-06-05 | 2012-06-05 | 圖形處理單元與其管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201351122A TW201351122A (zh) | 2013-12-16 |
TWI597599B true TWI597599B (zh) | 2017-09-01 |
Family
ID=47445673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101120156A TWI597599B (zh) | 2012-06-05 | 2012-06-05 | 圖形處理單元與其管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9147225B2 (zh) |
CN (1) | CN102866765B (zh) |
TW (1) | TWI597599B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9196013B2 (en) * | 2011-10-31 | 2015-11-24 | Apple Inc. | GPU workload prediction and management |
US9591358B2 (en) * | 2013-03-15 | 2017-03-07 | Intel Corporation | Media playback workload scheduler |
CN106030453B (zh) * | 2014-03-27 | 2020-02-21 | 英特尔公司 | 支持图形处理单元频率的动态调整的方法和装置 |
US10332230B2 (en) * | 2015-08-31 | 2019-06-25 | Qualcomm Incorporated | Characterizing GPU workloads and power management using command stream hinting |
TWI557553B (zh) * | 2016-03-18 | 2016-11-11 | 國立臺灣大學 | 電子裝置及其節能方法 |
US10861421B2 (en) * | 2018-09-27 | 2020-12-08 | Mediatek Inc. | Adaptive control of GPU rendered frame quality |
CN116579914B (zh) * | 2023-07-14 | 2023-12-12 | 南京砺算科技有限公司 | 一种图形处理器引擎执行方法、装置、电子设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4383641B2 (ja) * | 2000-08-31 | 2009-12-16 | 株式会社東芝 | 表示制御装置およびコンピュータシステム並びにパワーマネージメント方法 |
CN100461117C (zh) * | 2005-12-07 | 2009-02-11 | 微星科技股份有限公司 | 可调整工作频率的硬件元件的效能最佳化方法 |
TWI322346B (en) * | 2006-10-18 | 2010-03-21 | Asustek Comp Inc | Power supply system |
US8325184B2 (en) * | 2007-09-14 | 2012-12-04 | Qualcomm Incorporated | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof |
US8284205B2 (en) * | 2007-10-24 | 2012-10-09 | Apple Inc. | Methods and apparatuses for load balancing between multiple processing units |
US8610727B1 (en) * | 2008-03-14 | 2013-12-17 | Marvell International Ltd. | Dynamic processing core selection for pre- and post-processing of multimedia workloads |
TW200949755A (en) | 2008-05-30 | 2009-12-01 | Asustek Comp Inc | Method of controlling operation mode of graphic processing unit |
US8484498B2 (en) * | 2010-08-26 | 2013-07-09 | Advanced Micro Devices | Method and apparatus for demand-based control of processing node performance |
CN102004543B (zh) * | 2010-11-29 | 2013-08-07 | 华为技术有限公司 | 一种实现cpu节能的方法及装置 |
-
2012
- 2012-06-05 TW TW101120156A patent/TWI597599B/zh active
- 2012-06-21 CN CN201210211900.1A patent/CN102866765B/zh active Active
- 2012-10-04 US US13/645,466 patent/US9147225B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20130321437A1 (en) | 2013-12-05 |
US9147225B2 (en) | 2015-09-29 |
CN102866765B (zh) | 2016-04-13 |
TW201351122A (zh) | 2013-12-16 |
CN102866765A (zh) | 2013-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI597599B (zh) | 圖形處理單元與其管理方法 | |
KR101471303B1 (ko) | 그래픽 처리 장치를 위한 전력 관리 장치 및 방법 | |
JP6005895B1 (ja) | ワット当たりの最適パフォーマンスのためのインテリジェントマルチコア制御 | |
JP4380986B2 (ja) | クロック制御装置及びその記録媒体 | |
CN105190531B (zh) | 空闲显示情况下的存储器功率节省 | |
US9529646B2 (en) | Power-efficient interaction between multiple processors | |
TWI416311B (zh) | 處理器電力管理方法與裝置 | |
KR102490908B1 (ko) | 자원 스케줄링 방법 및 단말 장치 | |
US20130155081A1 (en) | Power management in multiple processor system | |
US10504203B2 (en) | Virtual graphics device driver | |
US20090109230A1 (en) | Methods and apparatuses for load balancing between multiple processing units | |
US10503238B2 (en) | Thread importance based processor core parking and frequency selection | |
US20180129534A1 (en) | Thread Importance Based Processor Core Partitioning | |
US20160077571A1 (en) | Heuristic Processor Power Management in Operating Systems | |
JP2009530709A5 (zh) | ||
JP6186862B2 (ja) | 情報処理装置、省電力化制御方法および省電力化制御プログラム | |
JPWO2009125789A1 (ja) | 計算機システムとその動作方法 | |
US10025372B2 (en) | Techniques for managing system power using deferred graphics rendering | |
Choi et al. | A processor power management scheme for handheld systems considering off-chip contributions | |
US9274827B2 (en) | Data processing apparatus, transmitting apparatus, transmission control method, scheduling method, and computer product | |
CN102411423B (zh) | 一种cpu与无线网卡的协同动态电源管理方法 | |
JP4517006B2 (ja) | クロック制御装置及びその記録媒体 | |
WO2022104500A9 (zh) | 一种负载控制方法、装置、计算机设备及存储介质 | |
Bartolini | Dynamic power management: from portable devices to high performance computing | |
Song et al. | A Dynamic Programming Solution for Energy‐Optimal Video Playback on Mobile Devices |