專利名稱:性能分配方法和裝置的制作方法
技術領域:
本發明總體上涉及計算,具體地涉及在核心處理和圖形處理之間分配 處理資源。
背景技術:
對于現今和未來的計算系統,例如臺式計算機、移動計算機、諸如電 話和音頻/視頻播放器的便攜設備等,不管設備是否是移動的還是非移動的, 都希望消耗更少的功率。因此,對于許多包括多于一個處理單元的設備, 例如具有核心處理單元(例如,在具有一個或多個處理核心的處理器內的 核心)和圖形處理器,可以在處理器(或處理單元)上施加性能預算以降 低總體功耗。然而,這樣的方法可能是低效的,因而,期望改進的解決方 案。
以示例而非限制的方式來說明本發明的實施例,在附圖中,相同的附 圖標記指示相同的元件。
圖1是根據一些實施例的計算系統的系統框圖。
圖2是根據一些實施例的具有性能分配引擎的計算系統的一部分的框圖。
圖3是根據一些實施例的實現性能分配引擎的例程的流程圖。 圖4A-4D以圖形的方式漸進地示出了當向CPU提供相對增加的性能資 源時,由CPU和GPU性能決定的幀渲染性能。
具體實施例方式
根據一些實施例,為了向圖形進程分配性能資源以及在一些情形下在 圖形進程和中央處理單元之間分配性能資源,可以監控圖形進程幀生成幀速率以及圖形進程的利用度或工作負荷度量。
圖1示出了示例性的計算系統的一部分。該系統包括處理器102 (或中 央處理單元"CPU")、圖形/存儲控制器(GMC) 104、輸入/輸出控制器(IOC) 106、存儲器108、外圍設備/端口 110以及顯示設備112,以上部件如圖所 示耦合到一起。處理器102可以包括一個或多個封裝中的一個或多個核心 以及功能,以便于執行中央處理任務,包括執行一個或多個應用程序。
GMC 104控制來自處理器102和IOC 106的對存儲器108的訪問。它 還包括圖形處理單元105,用于為在處理器102中運行的應用程序生成要在 顯示設備112上顯示的視頻幀。
IOC 106控制在外圍設備/端口 110和系統中其它模塊之間的訪問。外 圍設備可以包括例如外設芯片互連(PCI)和/或PCI Express端口、通用 串行總線(USB)端口、網絡(例如,無線網絡)設備、諸如鍵盤、鼠標 這樣的用戶接口設備以及任何可以與計算系統連接的其它設備。
在一些實施例中,在圖形處理單元105內包括性能分配引擎(PAE)107, 以在圖形處理單元和處理器102之間分配性能資源。下面還會討論,PAE 監控GPU生成幀的速率以及性能利用度度量(例如,它多么忙碌?),以 控制為GPU或在GPU和處理器之間的性能資源分配,以便當需要更少的 性能(例如,頻率)時減少GPU的性能資源消耗。(應該意識到,雖然在 描述的實施例中性能分配引擎107被包括在GPU中,但是其可以替代地被 包括在任何其它計算系統模塊或GPU與其它計算系統模塊的組合中。類似 地,應該意識到,在描述的實施例中,雖然在與處理器芯片分離的芯片中 實現圖形、存儲器和I/0控制器功能,但是也可以在共同的芯片或具有不同 的彼此組合的共同的集成電路(IC)封裝中實現它們,因而,本發明不局 限于任何特定的芯片或芯片組合。)
圖2示出了計算系統(例如圖1的計算系統)的一部分,其中,GPU 105 的一部分具有性能分配引擎107。在GPU中示出了與PAE 107分離的幀渲 染引擎205、存儲器207和顯示引擎209。 GPU 105接收幀數據,例如,完 全或部分地由運行在處理器102中的應用程序生成的幀數據。幀渲染引擎 處理幀數據以生成可以提供給顯示設備112的渲染幀(例如,對應于全部 或部分視頻幀的數字像素信息的文件)。渲染幀被裝入存儲器207,該存儲器207作為緩沖器(例如,先進先出幀緩沖器)來存儲幀,以便可以由顯 示引擎209將這些幀送入顯示設備112。
(應該意識到,幀渲染引擎205、存儲器207和顯示引擎209代表功能 塊,該功能塊可以包括或可以不包括GPU 105以內或以外的全部或部分其 它功能單元。例如存儲器207可以在或可以不在GPU內。)
PAE 107包括用于在GPU 105和處理器102之間分配性能資源(例如, 頻率)的硬件和/或軟件。例如,它可以實現為可執行的軟件例程,例如, 在GPU驅動器中,或者可以用專用或共享的算術或其它邏輯電路來整體地 或部分地實現它。它可以包括在GPU內和/或在GPU以外實現的任何合適 的硬件和/或軟件的組合,以監控渲染幀速率(例如,即時的和/或移動平均 幀速率)以及GPU處理器利用度(例如,幀渲染引擎205工作的忙碌程度 的度量或指示),以便控制或者指示對GPU和/或處理器的性能資源分配。
圖3示出了用于實現性能分配引擎例程107的示例性的流程圖。然而, 在討論它之前,將描述圖4A到4D中的圖表以便于大致理解圖3的例程的 目的。這些圖表示出了當逐漸地向處理器提供相對增加的性能資源時,由 CPU和GPU性能決定的幀渲染性能。每一個圖表包括GPU和處理器的示 例性的幀持續時間的平均分布,即,處理器和GPU分別花費的用于生成幀 數據和渲染幀的相對時間。因而,隨著曲線向左移動,因此可歸于GPU和 /或處理器的幀持續時間在減少,平均渲染幀速率在增加。
圖4A表示當幀速率完全受處理器限制時的情形。從圖4A移動到4D, 向處理器提供相對更高的性能資源(在這個例子中是頻率),因此向左邊移 動處理器分布曲線,并且因次使得總體的幀生成速率更少地受處理器的限 制。因而,能夠看出,如果總體的渲染幀速率是受處理器限制的,那么增 加GPU性能不會有實質性的幫助,并且相反地,如果渲染幀速率是受GPU 限制的,那么通過增加處理器性能不會實質上提高幀速率。
因而,當渲染幀生成是受GPU限制時,如果幀速率不是足夠的,則應 該增加GPU性能(并非必需是處理器性能)。然而,如果幀速率是足夠的, 那么可以對處理器降低性能資源,并且因此可以降低例如功耗。類似地, 如果確定幀速率是受處理器限制的,那么如果幀速率不是足夠的,則可以 推斷出應該向處理器提供額外的性能資源。然而,如果認為幀速率足夠,那么可以從GPU減少性能資源。考慮到這一點,討論圖3的流程圖。
圖3示出了根據一些實施例的性能分配引擎例程302。在304,評估圖 形渲染利用度。例如,這可以通過評估在幀渲染引擎中的利用度(例如在 GPU 105中的幀渲染利用度205)來完成。利用度是渲染引擎工作的忙碌程 度的度量。它可以如指示相關的處理單元是活動的還是空閑的一樣簡單, 或者它可以是相關的GPU單元正在執行的程度的更量化的度量。
在306,評估(或監控)渲染幀速率。其包括確定正在生成渲染幀的速 率,例如由幀渲染引擎生成的。例如,在GPU內(或者甚至在它之外), 可以監控指示是否正在向存儲器(例如,存儲器207)提供新的幀的一個或 多個信號,以測量或估計在生成的幀之間的時間。
在例程中使用的幀速率可以是即時估計、平均值、具有期望窗口大小 (幀的數目)的移動平均值、或這些速率的組合。在一些實施例中,可以 使用加權平均值來濾除異常。例如,可以為不同的相鄰幀持續時間應用合 計為1的權重值,來計算運行平均值。合計為1的權重值的數目將對應于 在移動窗口中的幀的數目。依賴于用于測量幀持續時間的采樣率,可以調 整這些值來獲得可接受的結果。
作為一個例子,假定采樣率為每秒200次采樣并且期望的移動平均窗 口寬度為5秒,在窗口中有兩個幀,可以使用值為1/30000的第一加權常數 ^和值為2999/30000的第二加權常數a2。那么移動平均幀速率將被如下計 算
FR=l/(ai*Fd[n-l] + a2* Fd) 其中Fd[n-l]是在窗口中的第一幀的持續時間,Fd是在窗口中的下一幀的持 續時間。當然,可以使用任何合適的或期望的加權方案或每個窗口中的幀 數目。
在308,確定GPU利用度是否是高的。如果不高(例如,正常或低), 那么在310,例程確定渲染幀速率是否足夠。如果該幀速率不是足夠的(意 味著GPU性能是足夠的但處理器性能不足),那么在314,可以增加處理器 性能。(注意,在此處以及圖中的其它地方使用了虛線框,以表明對于PAE 來說處理器性能的控制可能不是可用的,所以它可以控制或者指示應該增 加處理器性能)。另一方面,如果在310的幀速率是足夠的,那么在312,減少GPU性能并向處理器分配額外的性能。從312或314,例程如圖所示 返回到304和306。
返回308,如果GPU利用度高,那么例程進入到316并確定渲染幀速 率是否足夠(例如,以與在310相同的方式)。如果幀速率是足夠的,那么 例程返回到304和306并按照所討論的方式繼續進行。另一方面,如果幀 速率不是足夠的(意味著幀速率是受GPU限制的),那么在318,增加GPU 性能(例如,增加頻率),例程返回到304和306并按照所討論的方式繼續 進行。
在之前的描述中,已經闡明了許多具體細節。然而,應該理解,可以 在沒有這些具體細節的情況下實施本發明的實施例。在其它情形中,為了 不影響對說明的理解,未詳細示出公知的電路、結構和技術。考慮到這一 點,所提及的"一個實施例"、"實施例"、"示例性的實施例"、"各種實施 例"等表示所描述的本發明的實施例可以包括特定的特征、結構或特性, 但是并非每一個實施例必需包括這些特定的特征、結構或特性。另外,一 些實施例可以具有為其它實施例描述的特征中的一些、全部或沒有這些特 征。
在前述的描述和下列權利要求中,下面的術語應被如下解釋可以使 用術語"耦合"和"連接"以及它們的派生詞。應該理解,這些術語并非 旨在作為互相的同義詞。而是在特定的實施例中,"連接"用于表明兩個或 更多元件相互之間是直接物理或電連接的。"耦合"用于表明兩個或更多元 件相互協作或交互,但是它們可以是或可以不是直接物理或電連接的。
本發明并不局限于所描述的實施例,而是可以在所附權利要求的精神 和范圍內使用更改或變形來實施本發明。例如,應該意識到,本發明適合 于使用所有類型的半導體集成電路("IC")芯片。這些IC芯片的例子包括 但不限于處理器、控制器、芯片組部件、可編程邏輯陣列(PLA)、存儲器 芯片、網絡芯片等。
還應意識到,在一些圖中,用線來表示信號導線。 一些可能是較粗的, 表示更多的成分信號路徑; 一些具有數字標記,表示許多的成分信號路徑; 和/或一些在一個或多個端具有箭頭,表示主要的信息流向。然而,不應以 限制性的方式對此進行解釋。而是,可以結合一個或多個示例性實施例來使用這些增加的細節,以幫助更容易地理解電路。任何所表示的信號線, 無論是否具有額外的信息,都可以實際上包括可以在多個方向上傳輸的一 個或多個信號,并可以用任何合適類型的信號方案來實現,例如,用差分 對、光纖線和/或單端線實現的數字或模擬線路。
應該意識到,示例的尺寸/模型/值/范圍可以是給定的,雖然本發明并不 限制于此。隨著制造技術(例如,光刻)越來越成熟,預計可以制造出更 小尺寸的設備。另外,為了簡化說明和討論,在圖中可以示出或可以不示
出到IC芯片和其它部件的公知的電源她連接,以便不模糊本發明。另外,
為了避免模糊本發明,并且還考慮到關于這種框圖布置的實現的細節高度 依賴于實現本發明的平臺,即,這樣的細節在本領域技術人員所知的范圍 內,因此可以用框圖形式來示出布置。盡管為了描述本發明的示例性實施 例而闡明了具體細節(例如,電路),但是對于本領域技術人員來說應該顯 而易見的是,可以在沒有這些具體細節的情況下來實施本發明或使用這些 具體細節的變形來實施本發明。因此,描述應被認為是說明性的而非限制 性的。
權利要求
1、一種芯片,包括性能分配引擎(PAE),用于監控正在對幀進行渲染的圖形進程的利用度并用于監控渲染幀的幀速率,以便為所述圖形進程分配性能資源。
2、 根據權利要求l所述的芯片,其中,所述性能分配引擎向中央處理器分配性能資源,并且向所述圖形進程 分配性能資源。
3、 根據權利要求2所述的芯片,其中,所述性能分配引擎被實現為圖形處理器驅動器中的可執行指令,所述 圖形進程在所述圖形處理器中執行。
4、 根據權利要求3所述的芯片,其中,所述圖形處理器從所述中央處理器接收幀數據。
5、 根據權利要求4所述的芯片,其中,所述中央處理器包括多個核心,所述多個核心中的一個或多個用于生 成所述幀數據。
6、 根據權利要求4所述的芯片,其中,所述PAE用于響應于確定所述幀速率不是足夠的并且所述圖形進程利 用度不高,從所述圖形進程減少性能資源。
7、 根據權利要求6所述的芯片,其中,所述PAE用于將從所述圖形進程減少的所述性能資源提供給所述中央 處理器。
8、 根據權利要求l所述的芯片,其中,所述性能資源包括操作頻率。
9、 一種方法,包括 監控圖形處理器工作負荷; 監控所述圖形處理器生成幀的速率;以及基于所述監控的工作負荷和監控的幀速率來向所述圖形處理器分配性 能資源。
10、 根據權利要求9所述的方法,其中,監控工作負荷包括確定所述圖形處理器中的幀渲染單元是否活動了 充分長的時間。
11、 根據權利要求10所述的方法,還包括確定是否足夠數目的幀渲染單元是充分活動的。
12、 根據權利要求9所述的方法,其中, 監控工作負荷包括監控所述圖形處理器是否是空閑的。
13、 根據權利要求12所述的方法,還包括確定所述圖形處理器的空閑工作周期。
14、 根據權利要求9所述的方法,包括如果所述幀速率是足夠的并且所述工作負荷足夠低,那么為所述圖形 處理器分配更少的性能資源。
15、 根據權利要求14所述的方法,其中,如果所述幀速率是足夠的并且所述工作負荷足夠低,那么向中央處理 器提供額外的性能資源。
16、 一種系統,包括第一處理器,用于執行應用程序并根據所述執行的應用程序生成幀數據;圖形處理器,用于接收所述幀數據并且利用所述幀數據生成渲染幀;以及性能分配引擎,用于監控所述圖形處理器的利用度度量并監控所述渲 染幀的生成速率,并且基于所述監控的利用度度量和幀速率來向所述圖形 處理器分配性能資源。
17、 根據權利要求16所述的系統,其中, 所述第一處理器是中央處理器。
18、 根據權利要求16所述的系統,其中, 所述第一處理器和圖形處理器是共同封裝的一部分。
19、 根據權利要求18所述的系統,其中, 所述第一處理器和圖形處理器在共同的裸片上。
20、 根據權利要求16所述的系統,包括 顯示設備,用于接收合適形式的所述渲染幀。
全文摘要
公開了一種性能分配方法和裝置。根據一些實施例,為了向圖形進程分配性能資源以及為了在一些情形下,在所述圖形進程和中央處理單元之間分配性能資源,可以監控圖形進程幀生成幀速率以及圖形進程的利用度或工作負荷度量。
文檔編號G06T1/20GK101609545SQ200910145948
公開日2009年12月23日 申請日期2009年6月11日 優先權日2008年6月11日
發明者E·薩姆森, M·拉瑪多斯 申請人:英特爾公司