使用功率的動態cpu gpu 負載平衡的制作方法
【專利摘要】基于功率描述了動態CPU?GPU負載平衡。在一個例子中,指令被接收,且中央處理核心(CPU)和圖形處理核心(GPU)的功率值被接收。基于所接收到的功率值來選擇CPU或GPU,且指令被發送到選定的核心用于處理。
【專利說明】使用功率的動態CPU GPU負載平衡
【背景技術】
[0001] 發展了通用圖形處理單元(GPGPU)以允許圖形處理單元(GPU)執行在傳統上由中 央處理單元(CPU)執行的一些任務。一般GPU的多個并行處理線程非常適合一些處理任務 但不適合其它處理任務。最近,發展了操作系統以允許一些任務被指派給GPU。此外,發展 了允許使用不同類型的處理資源來執行指令的框架,例如OpenCL(開放式計算語言)。
[0002] 同時,一般由GPU執行的一些任務可由CPU執行,且存在能夠將一些圖形任務指派 給CPU的可用的硬件和軟件系統。包括在同一封裝中或甚至在同一管芯上的CPU和GPU的 集成異構系統使任務分配更有效。然而,很難在不同類型的處理資源之間找到任務的共享 和平衡的最佳平衡。
[0003] 各種不同的代理可用于估計在GPU和CPU上的負載。軟件指令或數據隊列可用于 確定哪個核心更忙碌,并接著將任務指派給其它核心。類似地,可比較輸出以確定在當前工 作負載上的進展。也可監控在命令或執行流中的計數器。這些度量使用核心的工作負載提 供核心的進展或結果的直接測量。然而,這樣的度量的集合需要資源,且不指示核心的潛在 能力,只有它如何對付它被給予的東西。
【專利附圖】
【附圖說明】
[0004] 本發明的實施例作為例子而不是作為限制在附圖的圖中示出,其中相似的參考數 字表示相似的元件。
[0005] 圖1是根據本發明的實施例的用于執行動態負載平衡以用于運行軟件應用的系 統的圖。
[0006] 圖2是根據本發明的實施例的用于執行動態負載平衡以用于運行游戲的系統的 圖。
[0007] 圖3A是根據本發明的實施例的執行動態負載平衡的過程流程圖。
[0008] 圖3B是根據本發明的另一實施例的執行動態負載平衡的過程流程圖。
[0009] 圖4是根據本發明的實施例的確定用于執行動態負載平衡的功率預算的過程流 程圖。
[0010] 圖5是適合于實現本發明的實施例的計算系統的方框圖。
[0011] 圖6示出在其中可提現圖5的系統的小形狀因子設備的實施例。
【具體實施方式】
[0012] 本發明的實施例可應用于各種不同的CPU和CPU組合中的任一個,包括可編程的 那些組合和支持處理任務的動態平衡的那些組合。技術可應用于包括CPU和GPU或CPU和 GPU核心的單個管芯,以及應用于包括用于CPU和GPU功能的單獨管芯的封裝。它也可應用 于在單獨管芯中的分立圖形、或單獨封裝、或甚至單獨電路板例如外圍設備適配器卡。本發 明的實施例允許基于CPU和GPU功率計在CPU和GPU處理資源之間動態地平衡處理任務的 負載。本發明在應用于系統(其中CPU和GPU共享同一功率預算)時可能是特別有用的。 在這樣的系統中,可能考慮功率消耗和功率趨勢。
[0013] 動態負載平衡可能對3D (三維)處理是特別有用的。CPU的計算和功率余量允許 CPU幫助3D處理,且以這種方式,更多的系統總計算資源被使用。例如OpenCL的CPU/GPU API (應用編程接口)也可受益于在CPU和GPU之間的動態負載平衡內核。存在用于動態負 載平衡的很多其它應用,其通過允許另一處理資源做得更多來提供較高的性能。使工作在 CPU和GPU之間平衡允許平臺的計算和功率資源被更有效和充分地利用。
[0014] 在一些系統中,功率控制單元(P⑶)還提供功率計功能。來自功率計的值可被查 詢和收集。這用于允許基于對每個可分離的動力單元的工作負載要求而分配功率。在本公 開中,功率計值用于調節工作負載要求。
[0015] 功率計可用作對功率消耗的代理。功率消耗也可用作對負載的代理。高功率消耗 暗示核心是忙碌的。低功率消耗暗示核心不那么忙碌。然而,存在對低功率的明顯的例外。 一個這樣的例外是GPU可以是"忙碌的",因為采樣器都被充分利用,但GPU仍然不充分利用 功率預算。
[0016] 功率計和來自功率管理硬件(例如PCU)的其它指示可用于幫助從功率方面評估 CPU和GPU有多忙碌。中央處理核心或圖形核心的評估也允許其它核心的相應余量被確定。 該數據可用于驅動使用處理平臺的更多資源的有效的工作負載平衡引擎。
[0017] 普遍使用的性能度量(例如忙碌和空閑狀態)不提供核心的功率余量的任何指 示。使用功率度量,負載平衡引擎可允許對特定的任務更有效的核心以全頻率運行以及較 不有效的核心以剩余功率運行。當任務或過程改變時,其它核心可替代地以全功率運行。
[0018] 目前,一些Inter?處理器使用Turbo Boost?模式,其中處理器被允許以高得多的 時鐘速度運行一段短的時間。這使處理器消耗更多的功率并產生更多的熱,但如果處理器 足夠快地返回到較低速度、較低功率模式,則它將被保護免受過熱。使用功率計或其它功率 指示幫助確定CPU功率余量,而不減少Turbo Boost模式的使用。在Turbo Boost模式中 的GPU的情況下,GPU可被允許在期望時以其最大頻率工作,且CPU可消耗剩余功率。
[0019] 在CPU和GPU共享相同的功率預算的系統中,例如功率計讀數的功率指示可用于 確定任務是否可卸載到CPU或GPU。對于圖形處理,GPU可被允許使用大部分功率,且然后 (PU可被允許在可能時(即,當存在足夠的功率余量時)進行幫助。GPU通常對圖形處理任 務更有效。另一方面,CPU通常對大部分其它任務和一般任務(例如遍歷樹)更有效。在 這樣的情況下,CPU可被允許使用大部分功率,且然后GTO可被允許在可能時進行幫助。
[0020] 在圖1中示出用于通用處理的示例性體系結構。計算機系統封裝101包含CPU 103、GPU 104和功率邏輯105。這些可都在相同或不同的管芯上。可選地,它們可以在不同 的封裝中,并直接地或通過插座單獨地附接到母板。計算機系統支持運行時間108,例如操 作系統或內核等。具有并行數據或圖形的應用109在運行時間之上運行,并對運行時間產 生調用或可執行命令。運行時間將這些調用或可執行命令交付給計算系統的驅動器106。 驅動器將這些作為命令或指令呈送到計算系統101。為了控制操作如何被處理,驅動器106 包括如上所述在CPU和GPU之間分配負載的負載平衡引擎107。
[0021] 描述了單個CPU和GPU,以便不模糊本發明,然而可以有多個實例,每個實例可以 在單獨的封裝中或在一個封裝中。計算環境可具有在圖1中示出的簡單結構,或公共工作 站可具有兩個CPU和2或3個分立的GPU,每個CPU具有4或6個核心,每個GPU具有其自 己的功率控制單元。本文描述的技術可應用于任何這樣的系統。
[0022] 圖2示出在運行3D游戲129的背景中的示例性計算系統121。3D游戲129在 DirectX或類似的運行時間128上操作,并發出通過用戶模式驅動器126發送到計算系統 121的圖形調用。計算系統可本質上與圖1的計算系統相同并包括CPU 123、GPU 124和功 率邏輯125。
[0023] 在圖1的例子中,計算系統運行將主要由CPU處理的應用。然而,在應用包括并行 數據操作和圖形元件的程度上,這些可由GPU處理。負載平衡引擎可用于將適當的指令或 命令發送到負載平衡引擎,以便將一些工作負載從CPU移動到GPU。相反,在圖2的例子中, 3D游戲將主要由GPU處理。然而,負載平衡引擎可將一些工作負載從GPU移動到CPU。
[0024] 通過考慮圖3A的過程流程圖可更好地理解本文描述的負載平衡技術。在1處,系 統接收指令。這一般由驅動器接收,且然后對負載平衡引擎是可用的。在圖3A的例子中, 負載平衡引擎偏向于CPU,如可能對圖1的計算機配置的情況。取決于應用和運行時間,指 令可作為命令、API或以各種其它形式中的任一種被接收。驅動器或負載平衡引擎可將命 令解析成可由CPU和GPU獨立地處理的更簡單或更基本的指令。
[0025] 在2處,系統檢查指令以確定指令是否可被分配。所解析的指令或指令在它們被 接收到時可接著被分類為三種類別。一些指令必須由CPU處理。將文件保存到大容量存儲 設備或發送和接收電子郵件的操作是幾乎所有指令一般必須由CPU執行的操作的例子。其 它指令必須由GPU處理。光柵化或轉換像素以用于顯示的指令一般必須在GPU處被執行。 第三類指令可由CPU或GPU處理,例如物理計算或遮蔽和幾何指令。對于第三組指令,負載 平衡引擎可決定將指令發送到哪里以進行處理。
[0026] 如果指令不能被分配,則在3處,它被發送到CPU或GPU,這取決于指令在2處如何 被存儲。
[0027] 如果指令可被分配,則負載平衡引擎決定將指令分配到哪里,到CPU或GPU。負載 平衡引擎可使用各種度量來做出明智的決定。度量可包括GPU利用率、CPU利用率、功率方 案等。
[0028] 在本發明的一些實施例中,負載平衡引擎可確定核心之一是否被充分利用。決策 塊4是可根據特定的實施例來使用的可選分支。在4處,引擎考慮CPU是否被充分加載。如 果沒有被充分加載,則在7處將指令傳遞到CPU。這在5處使指令的分配偏向于CPU并繞過 決策塊。
[0029] 如果CPU被充分加載,則在5處功率預算被比較以確定指令是否可傳遞到GPU。在 沒有這個可選分支4的情況下,如果指令是可被分配的則指令在5處被直接傳遞用于決定。 可選地,如圖3B所示,引擎可考慮GPU是否被充分加載,如果是,且如果在CPU功率預算中 有空間則將指令傳遞到CPU。在任一情況下,在4處的操作可被移除。
[0030] 可以用各種不同的方式中的任一種來確定處理器核心的條件是被充分加載或充 分利用。在一個例子中,可監控指令或軟件隊列。如果它是滿的或忙碌的,則核心可被認為 是充分加載的。為了更準確的確定,保持命令的軟件隊列的條件可在時間間隔內被監控,且 在該間隔期間將忙碌時間的量與空閑時間的量進行比較以確定相對量的利用率。可對該時 間間隔確定忙碌時間的百分比。這個或另一量的利用率可接著與閾值比較以在4處做出決 定。
[0031] 也可通過檢查硬件計數器來確定處理器核心的條件。CPU和GPU核心具有可被監 控的幾個不同的計數器。如果這些計數器是忙碌或活動的,則核心是忙碌的。如同隊列監 控一樣,可在時間間隔內測量活動量。多個計數器可被監控,且結果通過相加、平均或某個 其它方法被組合。作為例子,執行單元(例如處理核心或著色器核心、紋理采樣器、算術單 元和在處理器內的其它類型的執行單元)的計數器可被監控。
[0032] 在本發明的一些實施例中,功率計可用作負載平衡引擎決定的部分。負載平衡引 擎可使用來自CPU和GPU的當前功率讀數以及在后臺中收集的歷史功率數據。使用當前 和歷史數據,例如,如圖4所示,負載平衡引擎計算對將工作卸載到GPU或CPU可用的功率 預算。例如,如果CPU在8W(具有15W的TDP (總管芯功率))下且GPU在9W(具有11W的 TDP)下,則兩個管芯都在最大功率之下操作。CPU在這種情況下具有7W的功率預算,且GPU 具有2W的功率預算。基于這些預算,任務可由負載平衡引擎從GPU卸載到CPU,反之亦然。
[0033] 為了更好的決定,GPU和CPU的功率計讀數可以用某個其它方式在一段時間(例 如最后10ms內)被積分、平均或組合。產生的積分值可與可在工廠配置或隨著時間的過 去而設置的某個"安全"閾值進行比較。如果CPU -直安全地運行,則GPU任務可被卸載到 CPU。功率計值或積分值可與功率預算比較。如果當前工作估計可適合預算,則它可被卸載 到GPU。對于其它功率預算情況,工作可替代地被卸載到CPU。
[0034] 在5處,負載平衡引擎比較GPU預算與閾值T,以確定向哪里發送指令。如果GPU 預算大于T,或換句話說,如果在GPU預算中有空間,則在6處指令被發送到GPU。另一方面, 如果GPU預算小于T,這意味著在GPU預算中有不足的空間,則指令在7處被發送到CPU。閾 值T代表最小數量的功率預算,其將允許指令由CPU成功地處理。可通過運行一組工作負 載以調節最佳T來離線地確定閾值。它也可基于隨著時間而學習核心的活動工作負載而動 態地改變。
[0035] 在5處的決定可偏向于支持在系統上運行的特定類型的軟件。對于游戲,負載平 衡引擎可配置成通過將GPU預算閾值T設置得較低來有利于GPU。這可提供更好的性能,因 為GPU能夠更平穩地處理重圖形要求。這也可使用在4處的操作或以另一方式來完成。
[0036] 使用與在4的決策塊類似的另一可選的決策塊,GPU也可被測試以確定它是否被 完全加載或它是否具有可用的額外功率余量。這可用于允許可被發送到GPU的所有指令被 發送到GPU。相反,如果GPU沒有額外功率余量,則可選擇CPU。可選地,負載平衡引擎可配 置成有利于CPU,也許因為GPU與CPU相比是弱的,且如果GPU被幫助則游戲可玩性被提高。 在這樣的情況下,負載平衡引擎將以相反的方式運轉。如果CPU具有可用的額外功率余量, 則將選擇CPU。相反,只有當CPU沒有額外功率余量時才選擇GPU。這在游戲環境(其中大 部分指令必須由GPU處理)中最大化了被發送到CPU的指令。
[0037] 這種偏向可基于硬件配置或基于正運行的應用的類型或基于由負載平衡引擎看 到的調用的類型而嵌入系統內。也可通過將比例或因子應用于決定而減少偏向。
[0038] 在這個過程流程中提到的預算是基于來自功率控制單元的功率計值的功率預算。 在一個例子中,預算是可在下一時間間隔內消耗的瓦數,而不打破CPU系統的熱限制。所 以,例如,如果存在可在下一時間間隔(例如lms)消耗的1W的預算,則那將是足夠的預算 以將指令從GPU卸載到CPU。在確定預算時的一個考慮是對GPU加速模式(例如Turbo Boost)的影響。為了維持GPU加速模式可以確定并使用預算。
[0039] 可從功率控制單元(P⑶)得到預算。功率控制單元的配置和位置將取決于計算系 統的體系結構。在圖1和2的所示例子中,功率控制單元是在具有非核心和多個處理核心 的集成同構管芯中的非核心的部分。然而,功率控制單元可以是從系統板上的各種不同的 位置收集功率信息的單獨管芯。在圖1和2的例子中,驅動器106、126具有在PCU內的鉤 以收集關于功率消耗、開銷和預算的信息。
[0040] 各種不同的方法可用于確定功率預算。在一個例子中,功率值周期性地從PCU被 接收,并接著被存儲以每當可分配的指令被接收到時被使用。可通過使用周期性功率值隨 著時間跟蹤功率值的歷史來以更復雜的計算為代價執行改善的決定過程。歷史可被推測以 提供每個核心的未來功率預測值。接著基于預測的未來功率值來選擇核心一CPU或GPU。
[0041] 預算值可以是功率消耗值(不管是瞬時、當前或預測的)的比較,并可通過比較功 率消耗值與核心的最大可能的功率消耗來確定。例如,如果核心消耗12W并具有19W的最 大功率消耗,則它具有7W的剩余預算或開銷。預算也可考慮其它核心。總的可用功率可小 于所有核心可消耗的總的最大功率。例如,如果CPU具有19W的最大功率且GPU具有22W 的最大功率,但P⑶可供應不大于27W,則這兩個核心不能同時在最大功率下操作。這樣的 配置可能被期望允許核心以較高的速率短暫地操作。負載平衡引擎不能以使兩個核心到達 它們的各自最大功率水平時的速率供應指令。可用功率預算可相應地減小以解釋PCU的能 力。
[0042] 圖3B是有利于GPU的過程的過程流程圖,如可在圖2的背景中使用的。在21處, 系統例如驅動器126接收指令。這可對偏向于GPU的負載平衡引擎變得可用。驅動器或負 載平衡引擎根據實現來分析或解析命令以將它精簡到可獨立地由CPU和GPU處理的指令。
[0043] 在22處,系統檢查指令以確定指令是否可被分配。必須由CPU或GPU處理的指令 在23處被發送到其各自的目的地。
[0044] 如果指令可被分配,則負載平衡引擎做出將指令分配到哪里的決定,到CPU或 GPU。如在圖3A中的,可選的操作可用于確定GPU是否在決策塊4處被完全加載。如果它 沒有被完全加載,則指令在27處被傳遞到GPU,決策塊在25處被繞過。如果GPU被完全加 載,則功率預算在25處被分析以確定指令是否可被傳遞到CPU。
[0045] 在25處,負載平衡引擎比較CPU預算與閾值T,以確定向哪里發送指令。如果CPU 預算大于τ,則在26處指令被發送到CPU。另一方面,如果CPU預算小于T,則指令在27處 被發送到GPU。閾值T代表CPU的最小數量的功率預算,并可以用與圖3A的閾值類似的方 式被確定。
[0046] 圖4示出用于確定將在圖3A或3B的過程流程中使用的預算的并行過程流程。在 圖4中,在11處,接收每個核心或每組核心的當前功率消耗。在具有多個CPU核心和多個 GPU核心的計算系統中,指令被單獨地分配給每個核心或可在中央處理和圖形處理之間劃 分。CPU核心的單獨過程可接著用于在核心和線程之間分配指令(如果有的話)。類似地, 這個或單獨的過程或這兩者可用于在中央處理核心當中或在圖形處理核心當中分配指令。
[0047] 在12處,所接收的當前功率消耗與最大功率消耗比較以確定每個核心的當前預 算。在13處,這個值被存儲。當前功率消耗值被周期性地接收,且因此在11、12和13處的 操作可被重復。可使用FIFO(先進先出)緩沖器,以便只存儲某個數量的預算值。可在圖 3的操作中使用大部分最近值,或可在14處對值執行某個操作。
[0048] 在14處,當前的和以前的預算值被比較以確定預估的預算。對于圖3的操作,預 估的預算接著用作預算值。可根據特定的實現以各種不同的方式執行該比較。在一個例子 中,可采用平均值。在另一例子中,可執行外推或積分。外推可基于功率控制系統的其它已 知方面被限制到最大和最小值。可根據特定的實現可選地使用更復雜的分析和統計方法。
[0049] 在圖3A和3B中描述的方法的可選方法中,當前處理核心功率負載可簡單地與總 的可用負載比較。TDP=正常操作功率包絡。如上面提到的,TDP(總的管芯功率)將由rcu 或由管芯的熱設計約束確定。可簡單地通過從TDP減去CPU和GPU核心的當前功率負載來 確定預算。預算可接著與預算的閾值量比較。如果預算大于閾值,則指令可被分配到另一 核心。
[0050] 作為另一操作,另一核心也可被檢查以確定在指令被卸載之前它是否在其所分配 的功率范圍內操作。這個簡化的方法可應用于各種不同的系統,并可用于將指令卸載到CPU 或GPU或特定的核心。
[0051] 圖5示出系統500的實施例。在實施例中,系統500可以是介質系統,但是系統500 不限于這個背景。例如,系統500可合并到個人計算機(PC)、膝上型計算機、超級膝上型計 算機、平板計算機、觸控板、便攜式計算機、手持計算機、掌上計算機、個人數字助理(PDA)、 蜂窩電話、蜂窩電話/PDA組合、電視機、智能設備(例如智能電話、智能平板計算機或智能 電視)、移動互聯網設備(MID)、消息發送設備、數據通信設備等中。
[0052] 在實施例中,系統500包括耦合到顯示器520的平臺502。平臺502可從內容設 備(例如內容服務設備530或內容交付設備540)或其它類似的內容源接收內容。包括一 個或多個導航特征的導航控制器550可用于與例如平臺502和/或顯示器520交互作用。 下面更詳細描述這些部件中的每個。
[0053] 在實施例中,平臺502可包括芯片組505、處理器510、存儲器512、存儲設備514、 圖形子系統515、應用516和/或無線電設備518的任何組合。芯片組505可提供在處理器 510、存儲器512、存儲設備514、圖形子系統515、應用516和/或無線電設備518當中的相 互通信。例如,芯片組505可包括能夠提供與存儲設備514的相互通信的存儲適配器(未 描繪)。
[0054] 處理器510可被實現為復雜指令集計算機(CISC)或精簡指令集計算機(RISC)處 理器、x86指令集兼容處理器、多核心或任何其它微處理器或中央處理單元(CPU)。在實施 例中,處理器510可包括雙核處理器、雙核移動處理器等。
[0055] 存儲器512可被實現為易失性存儲器設備,例如但不限于隨機存取存儲器(RAM)、 動態隨機存取存儲器(DRAM)或靜態RAM (SRAM)。
[0056] 存儲設備514可被實現為非易失性存儲設備,例如但不限于磁盤驅動器、光盤驅 動器、磁帶驅動器、內部存儲設備、附加存儲設備、閃存、電池備份SDRAM(同步DRAM)、和/或 網絡可訪問的存儲設備。在實施例中,存儲設備514可包括例如當包括多個硬盤驅動器時 增加有價值的數字媒體的存儲性能增強保護的技術。
[0057] 圖形子系統515可執行圖像(例如靜止圖像或視頻)的處理用于顯示。圖形子系 統515可以是例如圖形處理單元(GPU)或視覺處理單元(VPU)。模擬或數字接口可用于通 信地耦合圖形子系統515和顯示器520。例如,接口可以是高清多媒體接口、顯示器端口、無 線HDMI、和/或符合無線HD的技術中的任一個。圖形子系統515可集成到處理器510或芯 片組505中。圖形子系統515可以是通信地耦合到芯片組505的獨立卡。
[0058] 本文描述的圖形和/或視頻處理技術可在各種硬件體系結構中實現。例如,圖形 和/或視頻功能可集成在芯片組內。可選地,可使用分立的圖形和/或視頻處理器。作為 又一實施例,圖形和/或視頻功能可由通用處理器(包括多核處理器)實現。在另一實施 例中,功能可在消費電子設備中實現。
[0059] 無線電設備518可包括能夠使用各種適當的無線通信技術來發送并接收信號的 一個或多個無線電設備。這樣的技術可涉及跨越一個或多個無線網絡的通信。示例性無線 網絡包括(但不限于)無線局域網(WLAN)、無線個域網(WPAN)、無線城域網(WMAN)、蜂窩網 絡和衛星網絡。在跨越這樣的網絡的通信中,無線電設備518可根據以任何版本的一個或 多個可應用標準來操作。
[0060] 在實施例中,顯示器520可包括任何電視機型監視器或顯示器。顯示器520可包括 例如計算機顯示屏、觸摸屏顯示器、視頻監視器、電視機式設備、和/或電視機。顯示器520 可以是數字和/或模擬的。在實施例中,顯示器520可以是全息顯示器。此外,顯示器520 可以是可接收視覺投影的透明表面。這樣的投影可傳送各種形式的信息、圖像和/或對象。 例如,這樣的投影可以是移動增強顯示(MAR)應用的視覺覆蓋。在一個或多個軟件應用516 的控制下,平臺502可在顯示器520上顯示用戶界面522。
[0061] 在實施例中,內容服務設備530可由任何國家、國際和/或獨立服務托管,且因此 是平臺502例如經由互聯網可訪問的。內容服務設備530可耦合到平臺502和/或顯示器 520。平臺502和/或內容服務設備530可耦合到網絡560,以將媒體信息來回傳遞(例如 發送和/或接收)到網絡560。內容交付設備540也可耦合到平臺502和/或顯示器520。
[0062] 在實施例中,內容服務設備530可包括有線電視盒、個人計算機、網絡、電話、啟用 互聯網的設備或能夠交付數字信息和/或內容的電器、以及能夠經由網絡560或直接地在 內容提供者和平臺502和/或顯示器520之間單向或雙向地傳遞內容的任何其它類似的設 備。將認識到,內容可經由網絡560單向和/或雙向地被來回傳遞到系統500中的部件中 的任一個和內容提供者。內容的例子可包括任何媒體信息,包括例如視頻、音樂、醫療和游 戲信息等。
[0063] 內容服務設備530接收內容,例如有線電視節目,包括媒體信息、數字信息和/或 其它內容。內容提供者的例子可包括任何有線或衛星電視或無線電臺或互聯網內容提供 者。所提供的例子并不意味著限制本發明的實施例。
[0064] 在實施例中,平臺502可從具有一個或多個導航特征的導航控制器550接收控制 信號。控制器550的導航特征可用于與例如用戶界面522交互。在實施例中,導航控制器 550可以是指向設備,其可以是允許用戶將空間(例如連續和多維的)數據輸入到計算機中 的計算機硬件部件(具體地,人機接口設備)。很多系統,例如圖形用戶界面(GUI)和電視 機和監視器,允許用戶使用物理手勢來控制并提供數據到計算機或電視機。
[0065] 可通過指針、光標、聚焦環或顯示在顯示器上的其它視覺指示器的運動來在顯示 器(例如顯示器520)上模仿控制器550的導航特征的運動。例如,在軟件應用516的控制 下,位于導航控制器550上的導航特征可被映射到顯示在例如用戶界面522上的虛擬導航 特征。在實施例中,控制器550可以不是單獨的部件,而是集成到平臺502和/或顯示器 520中。然而,實施例不限于在本文所示或所述的元件或背景中。
[0066] 在實施例中,驅動器(未示出)可包括使用戶能夠像電視機一樣例如在初始引導 之后當被啟動時使用按鈕的觸摸即時地開啟和關閉平臺502的技術。當平臺被"關閉"時, 程序邏輯可允許平臺502將內容流式傳送到媒體適配器或其它內容服務設備530或內容交 付設備540。此外,芯片組505可包括例如對5. 1環繞聲音頻和/或高清7. 1環繞聲音頻的 硬件和/或軟件支持。驅動器可包括集成圖形平臺的圖形驅動器。在實施例中,圖形驅動 器可包括外圍部件互連(PCI)快速圖形卡。
[0067] 在各種實施例中,在系統500中所示的部件中的任一個或多個可被集成。例如,平 臺502和內容服務設備530可被集成,或平臺502和內容交付設備540可被集成,或例如平 臺502、內容服務設備530和內容交付設備540可被集成。在各種實施例中,平臺502和顯 示器520可以是集成單元。例如,顯示器520和內容服務設備530可被集成,或顯示器520 和內容交付設備540可被集成。這些例子并不意味著限制本發明。
[0068] 在各種實施例中,系統500可被實現為無線系統、有線系統或這兩者的組合。當被 實現為無線系統時,系統500可包括適合于通過無線共享介質例如一個或多個天線、發射 機、接收機、收發機、放大器、濾波器、控制邏輯等進行通信的部件和接口。無線共享介質的 例子可包括無線頻譜例如FR頻譜等的部分。當被實現為有線系統時,系統500可包括適合 于通過有線通信介質進行通信的部件和接口,例如輸入/輸出(I/O)適配器、使I/O適配器 與相應的有線通信介質連接的物理連接器、網絡接口卡(NIC)、磁盤控制器、視頻控制器、音 頻控制器等。有線通信介質的例子可包括電線、電纜、金屬引線、印刷電路板(PCB)、底板、交 換結構、半導體材料、雙絞線、同軸電纜、光纖等。
[0069] 平臺502可建立一個或多個邏輯或物理通道以傳遞信息。信息可包括媒體信息和 控制信息。媒體信息可以指代表打算給用戶的內容的任何數據。內容的例子可包括例如來 自語音通話的數據、視頻會議、流式視頻、電子郵件("email")消息、語音郵件消息、字母數 字符號、圖形、圖像、視頻、文本等。來自語音通話的數據可以是例如言語信息、靜默時間、背 景噪聲、舒適噪聲、音調等。控制信息可以指代表打算給自動化系統的命令、指令或控制字 的任何數據。例如,控制信息可用于通過系統路由媒體信息或指示節點以預定的方式處理 媒體信息。然而實施例不限于在圖5中所示或所述的元件或背景中。
[0070] 如上所述,系統500可體現在變化的物理風格或形狀因子中。圖6示出在其中可 提現系統500的小形狀因子設備600的實施例。在實施例中,例如設備600可被實現為具 有無線能力的移動計算設備。例如,移動計算設備可以指具有處理系統和移動功率源或電 源(例如一個或多個電池)的任何設備。
[0071] 如上所述,移動計算設備的例子可包括個人計算機(PC)、膝上型計算機、超級膝 上型計算機、平板計算機、觸控板、便攜式計算機、手持計算機、掌上計算機、個人數字助理 (PDA)、蜂窩電話、蜂窩電話/PDA組合、電視機、智能設備(例如智能電話、智能平板計算機 或智能電視)、移動互聯網設備(MID)、消息發送設備、數據通信設備等。
[0072] 移動計算設備的例子還可包括布置成由人佩戴的計算機,例如手腕計算機、手指 計算機、戒指計算機、眼鏡計算機、腰帶夾計算機、臂帶計算機、鞋計算機、衣服計算機和其 它可佩戴的計算機。在實施例中,例如,移動計算設備可被實現為能夠執行計算機應用以及 語音通信和/或數據通信的智能電話。雖然可以通過例子用實現為智能電話的移動計算設 備來描述一些實施例,但可認識到,其它實施例也可使用其它無線移動計算設備來實現。實 施例并不被限制在這個背景中。
[0073] 如圖6所示,設備600可包括殼體602、顯示器604、輸入/輸出(I/O)設備606和 天線608。設備600還可包括導航特征612。顯示器604可包括用于顯示適合于移動計算 設備的信息的任何適當的顯示單元。I/O設備606可包括用于將信息輸入到移動計算設備 中的任何適當的I/O設備。I/O設備606的例子可包括字母數字鍵盤、數字小鍵盤、觸控板、 輸入鍵、按鈕、開關、搖臂開關、麥克風、揚聲器、語音識別設備和軟件等。信息也可通過麥克 風輸入到設備600中。這樣的信息可由語音識別設備進行數字化。實施例并不限制在這個 背景中。
[0074] 可使用硬件元件、軟件元件或這兩者的組合來實現各種實施例。硬件元件的例子 可包括處理器、微處理器、電路、電路元件(例如晶體管、電阻器、電容器、電感器等)、集成 電路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數字信號處理器(DSP)、現場可編程門 陣列(FPGA)、邏輯門、寄存器、半導體器件、芯片、微芯片、芯片組等。軟件的例子可包括軟 件部件、程序、應用、計算機程序、應用程序、系統程序、機器程序、操作系統軟件、中間件、固 件、軟件模塊、例程、子例程、功能、方法、過程、軟件接口、應用程序接口(API)、指令集、計算 代碼、計算機代碼、代碼段、計算機代碼段、字、值、符號或其任何組合。確定實施例是否使用 硬件元件和/或軟件元件實現可根據任何數量的因素而變化,所述因素例如期望的計算速 率、功率級、耐熱性、處理周期預算、輸入數據速率、輸出數據速率、存儲器資源、數據總線速 度和其它設計或性能約束。
[0075] 至少一個實施例的一個或多個方面可由存儲在代表處理器內的各種邏輯的機器 可讀介質上的代表性指令實現,指令在由機器讀取時使機器制造邏輯以執行本文描述的技 術。被稱為"IP核心"的這樣的表示可存儲在有形機器可讀介質上,并被提供到各種消費或 制造設施以裝入實際上制造邏輯或處理器的制造機器中。
[0076] 對"一個實施例"、"實施例"、"示例性實施例"、"各種實施例"等的提及指示這樣描 述的本發明的實施例可包括特定的特征、結構或特性,但不是每個實施例都必須包括特定 的特征、結構或特性。此外,一些實施例可具有一些、所有、或沒有一個對其它實施例描述的 特征。
[0077] 在下面的描述和權利要求中,可使用術語"耦合"連同其派生詞。"耦合"用于指示 兩個或多個元件彼此協作或交互作用,但它們可以有或可以沒有在它們之間的中間物理或 電部件。
[0078] 如在權利要求中使用的,除非另有規定,描述普通元件的順序形容詞"第一"、"第 二"、"第三"等的使用僅僅指示相似的元件的不同實例被提到且并不用來暗示這樣描述的 元件在時間上、在空間上、在等級上或以任何其它方式必須以給定順序。
[0079] 附圖和前述描述給出實施例的例子。本領域中的技術人員將認識到,一個或多個 所述元件可很好地組合成單個功能元件。可選地,某些元件可分成多個功能元件。來自一 個實施例的元件可被添加到另一實施例。例如,本文描述的過程的順序可改變且不限于本 文描述的方式。而且,任何流程圖的行動不需要以所示順序實現;所有行動也不一定需要被 執行。此外,不依賴于其它行動的那些行動可與其它行動并行地執行。實施例的范圍決不 由這些特定的例子顯示。很多變化一不管是否在說明書中給出一例如在結構、尺寸和材料 使用上的差異是可能的。實施例的范圍至少與下面的權利要求所給出的一樣寬。
【權利要求】
1. 一種方法,包括: 接收指令; 接收中央處理核心(CPU)和圖形處理核心(GPU)的功率值; 基于所接收到的功率值從所述CPU和所述GPU當中選擇核心;以及 將所述指令發送到選定的核心用于處理。
2. 如權利要求1所述的方法,其中接收功率值包括:接收當前功率消耗值。
3. 如權利要求1所述的方法,其中接收功率值包括:周期性地接收功率值,并存儲所接 收到的功率值以在接收指令時使用。
4. 如權利要求3所述的方法,還包括使用周期性功率值隨著時間而跟蹤功率值的歷 史,基于所跟蹤的歷史來預測每個核心的未來功率值,且其中選擇核心包括基于所預測的 未來功率值來選擇核心。
5. 如權利要求4所述的方法,其中跟蹤歷史包括:跟蹤與所述核心的最大可能的功率 消耗比較的功率消耗的歷史。
6. 如權利要求1所述的方法,還包括使用所接收到的功率值來確定所述CPU和所述 的功率預算,且其中選擇核心包括通過選擇具有最大功率預算的核心來選擇核心。
7. 如權利要求6所述的方法,其中確定功率預算包括:確定與所述最大可能的功率消 耗比較的預估的未來功率消耗。
8. 如權利要求1所述的方法,其中選擇核心包括:如果所述GPU具有可用的額外功率 余量則選擇所述GPU,以及如果所述GPU沒有額外功率余量則選擇所述CPU。
9. 如權利要求1所述的方法,其中接收指令包括:接收命令并將所述命令解析成能被 獨立地處理的指令。
10. 如權利要求9所述的方法,還包括:將所述指令分類成必須由所述CPU處理的指 令、必須由所述GPU處理的指令、以及能夠由所述CPU或所述GPU處理的指令,且其中發送 所述指令包括將能夠由所述CPU或所述GPU處理的指令發送到所述選定的核心用于處理。
11. 一種其上存儲有指令的計算機可讀介質,當被計算機操作時所述指令使所述計算 機執行包括以下步驟的操作: 接收指令; 接收中央處理核心(CPU)和圖形處理核心(GPU)的功率值; 基于所接收到的功率值從所述CPU和所述GPU當中選擇核心;以及 將所述指令發送到選定的核心用于處理。
12. 如權利要求11所述的介質,其中接收功率值包括:周期性地接收功率值并存儲所 接收到的功率值以在接收指令時使用,所述操作還包括使用周期性功率值隨著時間而跟蹤 功率值的歷史,基于所跟蹤的歷史來預測每個核心的未來功率值,且其中選擇核心包括基 于所預測的未來功率值來選擇核心。
13. 如權利要求11所述的介質,其中接收指令包括接收命令并將所述命令解析成能被 獨立地處理的指令。
14. 一種裝置,包括: 處理驅動器,用于接收指令; 功率控制單元,用于將中央處理核心(CPU)和圖形處理核心(GPU)的功率值發送到負 載平衡引擎;以及 所述負載平衡引擎,用于基于所接收到的功率值從所述CPU和所述GPU當中選擇核心 并將所述指令發送到選定的核心用于處理。
15. 如權利要求14所述的裝置,其中所述功率控制單元發送當前功率消耗值。
16. 如權利要求14所述的裝置,其中所述負載平衡引擎使用所接收到的功率值來確定 所述CPU和所述GPU的功率預算,并通過選擇具有最大功率預算的核心來選擇核心。
17. -種系統,包括: 中央處理核心(CPU); 圖形處理核心(GPU); 存儲器,用于存儲軟件指令和數據; 功率控制單元(PCU),用于將所述CPU和所述GPU的功率值發送到負載平衡引擎; 所述負載平衡引擎,用于將所接收到的功率值存儲在所述存儲器中,基于所接收到的 功率值從所述CPU和所述GPU當中選擇核心,并將所述指令發送到選定的核心用于處理。
18. 如權利要求17所述的系統,所述負載平衡引擎通過以下操作來選擇核心:如果所 述GPU具有可用的額外功率余量則選擇所述GPU,以及如果所述GPU沒有額外功率余量則選 擇所述CPU。
19. 如權利要求17所述的系統,其中所述負載平衡引擎還將所述指令分類成:必須由 所述CPU處理的指令、必須由所述GPU處理的指令、以及能夠由所述CPU或所述GPU處理的 指令,并僅將能夠由所述CPU或所述GPU處理的指令發送到所述選定的核心用于處理。
【文檔編號】G06F9/50GK104106053SQ201280069225
【公開日】2014年10月15日 申請日期:2012年2月8日 優先權日:2012年2月8日
【發明者】U·薩雷 申請人:英特爾公司