TWI553551B - 使用選擇性任務調變之熱減輕 - Google Patents

使用選擇性任務調變之熱減輕 Download PDF

Info

Publication number
TWI553551B
TWI553551B TW104116710A TW104116710A TWI553551B TW I553551 B TWI553551 B TW I553551B TW 104116710 A TW104116710 A TW 104116710A TW 104116710 A TW104116710 A TW 104116710A TW I553551 B TWI553551 B TW I553551B
Authority
TW
Taiwan
Prior art keywords
cpu
tasks
task
qos
idle
Prior art date
Application number
TW104116710A
Other languages
English (en)
Other versions
TW201602908A (zh
Inventor
德瑞克R 庫馬
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 TW201602908A publication Critical patent/TW201602908A/zh
Application granted granted Critical
Publication of TWI553551B publication Critical patent/TWI553551B/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/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/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)

Description

使用選擇性任務調變之熱減輕 相關申請案
申請者主張2014年5月30日申請的先前同在申請中臨時申請案第62/006,004號之優先權益,該案之全部內容以引用的方式併入。
本發明大體上係關於裝置熱管理,且更特定言之係關於藉由裝置中央處理單元之選擇性節流而管理裝置熱管理。
裝置通常可包括用以處理裝置之多種指令的一或多個中央處理單元(CPU)。CPU中之每一者為藉由執行裝置之基本算術、邏輯及輸入/輸出操作而進行程式指令之硬體。舉例而言,CPU可用以處理在裝置上執行的不同任務。
此等CPU操作中之每一者將引起裝置消耗導致由裝置產生之熱的電力。此產生之熱可增加一施加至裝置之熱負荷。過多熱負荷可影響裝置效能,且在極端情況下可導致裝置關機。現有裝置可藉由總體地減少用於全部程序之CPU操作(不管CPU操作係用於一批次程序還是一支援使用者介面操作之程序)而減輕熱負荷。
描述藉由選擇性地使裝置之中央處理單元操作節流而管理裝置之熱分佈的方法及裝置之設備。在一例示性實施例中,裝置監視裝置 之熱分佈,其中裝置執行利用裝置之中央處理單元的複數個程序。另外,該複數個任務包括高QoS任務及低QoS任務。若裝置之熱分佈超過熱臨限值,則裝置增加用於低QoS任務之第一CPU節流並維持用於高QoS任務之第二CPU節流。裝置進一步藉由在執行窗期間選擇性地強迫低QoS任務之閒置而利用CPU之第一處理核心使用第一CPU利用率執行低QoS任務。另外,裝置利用CPU之第二處理核心使用第二CPU節流執行高QoS任務。
在另一實施例中,裝置藉由重疊低QoS任務之強迫閒置時間而管理裝置之熱分佈。在此實施例中,裝置監視裝置之熱分佈之熱等級,其中裝置正執行利用裝置之複數個處理核心的複數個任務。另外,該複數個任務包括多個低QoS任務。裝置在執行窗內排程該複數個處理核心上之該複數個任務,其中多個低QoS任務中之每一者在執行窗期間經選擇性地強迫閒置且多個低QoS任務之強迫閒置時間重疊。裝置進一步執行複數個任務。
在另一實施例中,裝置藉由調整歷史上高能量消耗任務之中央處理單元執行的節流來管理裝置之熱分佈。在此實施例中,裝置監視裝置之熱分佈之熱等級,其中裝置正執行利用裝置之複數個處理核心的複數個任務。若裝置之熱等級超過熱臨限值,則裝置將複數個任務中之一者識別為歷史上高能量消耗任務,且藉由針對歷史上高能量消耗任務而設定強迫閒置執行時間來使此歷史上高能量消耗任務節流。裝置進一步執行複數個任務。
在另一實施例中,裝置藉由基於裝置之熱負荷而調整處理核心執行頻率來管理裝置之熱分佈。在此實施例中,裝置監視裝置之熱分佈之熱等級,其中裝置正執行利用裝置之複數個處理核心的複數個任務。裝置進一步在執行窗期間排程待在複數個處理核心上執行之複數個任務。另外,裝置針對該複數個處理核心中之每一者基於該複數個 任務中之待在該處理核心上執行的一者及該裝置之該熱等級而設定一處理頻率。裝置另外使用具有對應處理頻率之複數個處理核心執行複數個任務中之每一者。
亦描述其他方法及設備。
100‧‧‧裝置
102‧‧‧熱精靈協助程式(thermald)
104‧‧‧系統管理控制器(SMC)
106‧‧‧感測器
108‧‧‧中央處理單元(CPU)
110‧‧‧核心程式
112‧‧‧作業系統
114‧‧‧中央處理單元(CPU)管理模組
116‧‧‧中央處理單元(CPU)排程器
118‧‧‧選擇性強迫閒置(SFI)模組
200‧‧‧中央處理單元(CPU)
202A‧‧‧中央處理單元(CPU)處理核心
202B‧‧‧中央處理單元(CPU)處理核心
202C‧‧‧中央處理單元(CPU)處理核心
202D‧‧‧中央處理單元(CPU)處理核心
204‧‧‧中央處理單元(CPU)支援硬體
300A‧‧‧中央處理單元(CPU)核心執行時間軸/中央處理單元(CPU)核心
300B‧‧‧中央處理單元(CPU)核心執行時間軸/中央處理單元(CPU)核心
300C‧‧‧中央處理單元(CPU)核心執行時間軸/中央處理單元(CPU)核心
300D‧‧‧中央處理單元(CPU)核心執行時間軸/中央處理單元(CPU)核心
302A‧‧‧視訊任務
302B‧‧‧備份任務
302C‧‧‧搜尋索引任務
304A‧‧‧時間段
304B‧‧‧時間段
306‧‧‧時間
308‧‧‧正常閒置
400A‧‧‧中央處理單元(CPU)核心執行時間軸/中央處理單元(CPU)核心
400B‧‧‧中央處理單元(CPU)核心執行時間軸/中央處理單元(CPU)核心
400C‧‧‧中央處理單元(CPU)核心執行時間軸/中央處理單元(CPU)核心
400D‧‧‧中央處理單元(CPU)核心執行時間軸/中央處理單元(CPU)核心
402A‧‧‧視訊任務
402B‧‧‧備份任務/低服務品質(QoS)任務
402C‧‧‧搜尋索引任務/低服務品質(QoS)任務
404A‧‧‧重疊選擇性強迫閒置時間/時間段
404B‧‧‧重疊選擇性強迫閒置時間
408‧‧‧時間段/正常閒置
500‧‧‧表
502‧‧‧行
504‧‧‧行
504A‧‧‧行/無中央處理單元(CPU)節流條件
504B‧‧‧行
504C‧‧‧行
602A‧‧‧時間段
604A‧‧‧時間段
604B‧‧‧時間段
604C‧‧‧時間段
606A‧‧‧時間段
608A‧‧‧時間段
608B‧‧‧時間段
608C‧‧‧時間段
610‧‧‧背景程序/背景任務
612‧‧‧app打盹/app打盹任務/應用程式打盹
614A‧‧‧執行窗
614B‧‧‧執行窗
614C‧‧‧執行窗
616‧‧‧時間
700‧‧‧程序
800‧‧‧程序
900‧‧‧程序
1000‧‧‧程序
1100‧‧‧程序
1200‧‧‧表
1202‧‧‧行
1204‧‧‧行
1204A‧‧‧行
1204B‧‧‧行
1204C‧‧‧行
1300‧‧‧程序
1402‧‧‧中央處理單元(CPU)節流模組
1404‧‧‧中央處理單元(CPU)高能量節流模組
1406‧‧‧接收熱等級模組
1408‧‧‧比較較高熱臨限值模組
1410‧‧‧比較較低熱臨限值模組
1412‧‧‧增加中央處理單元(CPU)節流模組
1414‧‧‧減小中央處理單元(CPU)節流模組
1416‧‧‧接收熱等級模組
1418‧‧‧比較能量熱臨限值模組
1420‧‧‧取消標記任務模組
1422‧‧‧判定任務模組
1424‧‧‧標記任務模組
1502‧‧‧接收經排程任務模組
1504‧‧‧判定閒置時間模組
1506‧‧‧相位對準模組
1600‧‧‧中央處理單元(CPU)頻率上限管理模組
1602‧‧‧接收熱等級模組
1604‧‧‧比較較高頻率臨限值模組
1606‧‧‧比較較低頻率臨限值模組
1608‧‧‧減小中央處理單元(CPU)頻率上限模組
1610‧‧‧增加中央處理單元(CPU)頻率上限模組
1700‧‧‧頻率上限模組
1702‧‧‧選擇任務模組
1704‧‧‧判定任務上限模組
1706‧‧‧設定中央處理單元(CPU)核心上限模組
1708‧‧‧執行任務模組
1800‧‧‧資料處理系統/電腦系統
1803‧‧‧匯流排
1804‧‧‧快取記憶體
1805‧‧‧微處理器
1807‧‧‧唯讀記憶體(ROM)
1809‧‧‧揮發性隨機存取記憶體(RAM)
1811‧‧‧非揮發性記憶體/大容量儲存器
1813‧‧‧輸入/輸出控制器
1815‧‧‧輸入/輸出裝置
1819‧‧‧輸入/輸出(I/O)控制器
1900‧‧‧另一資料處理系統
1901‧‧‧記憶體
1903‧‧‧無線收發器
1905‧‧‧音訊輸入/輸出子系統
1909‧‧‧顯示控制器及顯示裝置
1911‧‧‧處理系統
1913‧‧‧輸入裝置
1915‧‧‧選用之輸入/輸出裝置
1917‧‧‧通信埠
在隨附圖式之圖中藉由實例且無限制地說明本發明,在該等圖中,類似參考標號指示類似元件。
圖1為藉由選擇性地節流裝置之中央處理單元(CPU)操作而減輕裝置之熱分佈的裝置之一項實施例之方塊圖。
圖2為具有多個CPU處理核心及支援硬體之CPU的方塊圖。
圖3為包括低QoS任務之選擇性強迫閒置的CPU核心執行時間軸之一項實施例之說明。
圖4為與低QoS任務之重疊選擇性強迫閒置相位對準的CPU核心執行時間軸之一項實施例之說明。
圖5為針對CPU節流之不同等級的選擇性強迫閒置百分比之表之說明。
圖6為針對具有應用於兩個不同任務之選擇性強迫閒置的此等任務的執行窗之說明。
圖7為用以基於裝置之熱等級管理CPU節流的程序的一項實施例之流程圖。
圖8為用以基於裝置之熱等級管理用於高能量消耗任務之CPU節流的程序的一項實施例之流程圖。
圖9為用以使用CPU節流排程並執行任務的程序之一項實施例之流程圖。
圖10為用以相位對準在不同CPU核心上之選擇性強迫為閒置之任務的程序之一項實施例之流程圖。
圖11為用以基於裝置之熱等級而管理CPU頻率上限的程序之一項實施例之流程圖。
圖12為針對CPU節流之不同等級的頻率上限百分比的表之說明。
圖13為用以設定用於在CPU核心上的任務之一CPU頻率上限的程序之一項實施例之流程圖。
圖14為用以基於裝置之熱等級管理CPU節流的CPU管理模組之一項實施例之方塊圖。
圖15為用以使用CPU節流排程並執行任務的CPU排程器之一項實施例之方塊圖。
圖16為用以基於裝置之熱等級管理CPU頻率上限的頻率上限管理模組之一項實施例之方塊圖。
圖17為用以設定用於CPU核心上之任務的CPU頻率上限的頻率上限模組之一項實施例之方塊圖。
圖18說明典型電腦系統之一個實例,其可結合本文中所描述的實施例而使用。
圖19展示資料處理系統之實例,其可與本發明之一項實施例一起使用。
描述藉由選擇性地使裝置之中央處理單元操作節流而管理裝置之熱分佈的方法及裝置之設備。在以下說明中,闡述眾多特定細節以提供對本發明之實施例之透徹解釋。然而,熟習此項技術者應清楚,本發明之實施例可在沒有此等特定細節的情況下加以實踐。在其他情況下,未詳細展示描述熟知組件、結構及技術,以便不混淆本說明書之理解。
本說明書對「一項實施例」或「一實施例」的參考意謂結合實施例描述之特定特徵、結構或特性可包括於本發明的至少一項實施例 中。本說明書中之各種地方處出現的片語「在一項實施例中」未必皆係指同一實施例。
在以下描述及申請專利範圍中,可使用術語「耦接」及「連接」連同其衍生詞。應理解,此等術語並不意欲作為相互之同義詞。 「耦接」用以指示兩個或兩個以上元件(其可或可不彼此直接實體或電接觸)共操作或彼此互動。「連接」用以指示彼此耦接的兩個或兩個以上元件之間的通信之建立。
以下諸圖中描繪的程序係藉由包含硬體(例如,電路、專用邏輯等)、軟體(諸如,在一般用途電腦系統或專用機器上執行)或兩者之組合的處理邏輯執行。儘管下文根據一些順序操作描述程序,但應瞭解所描述操作中之一些可以不同次序執行。此外,一些操作可並行而非順序地執行。
術語「伺服器」、「用戶端」及「裝置」意欲通常指代資料處理系統而非特定地指代用於伺服器、用戶端及/或裝置之特定外觀尺寸。
描述藉由選擇性地使裝置之中央處理單元(CPU)操作節流而管理裝置之熱分佈的方法及裝置之設備。在一項實施例中,裝置藉由選擇性地使執行任務中之一者、一些或全部強迫閒置而選擇性地使CPU操作節流,使得總CPU利用率及熱等級減少,但較高服務品質(QoS)任務之CPU操作不受影響或影響小於較低QoS程序之CPU操作。在一項實施例中,裝置監視裝置之熱等級。若熱等級達到或超過一或多個熱臨限值,則裝置使用用於不同任務之選擇性強迫閒置而選擇性地使CPU操作節流。選擇性地使一任務強迫閒置意謂藉由執行任務的CPU之一處理核心使該任務在該任務之執行窗的部分或全部中閒置。當一任務經排程以待藉由一CPU處理核心執行時,此處理核心在一由執行窗界定之時間中執行該任務。在沒有選擇性強迫閒置的情況下,通常 將在此窗期間(除任務基於任務指令閒置之時間以外)執行任務。藉由強迫閒置,作業系統指定一在執行窗期間的使任務閒置之時間。此任務閒置節省電力並減少裝置上之熱負荷。在此實施例中,每一任務操作具有QoS。每一QoS表示任務是一不應被節流(或在較多熱負荷下節流)的重要程序或任務可是一可在較小熱負荷下節流的不太重要程序。舉例而言,且在一項實施例中,與使用者介面操作相關聯之任務(例如,用於UI或圖形視覺化之圖形再現、用於視訊通話之編碼/解碼、窗操作、捲動、自耦接之捕獲裝置的即時視訊編碼、即時音訊信號處理、視訊播放)將具有一較高QoS,而與批次程序相關聯之任務(例如,視訊轉碼、批次解碼/編碼、搜尋索引、備份、檔案系統索引、軟體更新下載、檔案系統加密、雲端同步、下載電子郵件訊息)將具有較低QoS。裝置可包括多個不同任務服務品質(QoS)。QoS中之每一者具有相關聯選擇性強迫閒置百分比。裝置基於裝置上之當前熱負荷針對不同QoS在任務之執行窗期間強迫一閒置而選擇性地使總裝置CPU利用率節流。舉例而言,且在一項實施例中,若裝置熱負荷增加,則裝置可增加最低或較低QoS任務之選擇性強迫閒置。此將減小此等較低QoS之CPU利用率,但保持較高QoS之CPU利用率不變。當裝置上之熱負荷進一步增加時,裝置可增加較低QoS任務之選擇性強迫閒置及/或開始使較高QoS任務節流。在另一實施例中,當裝置上之熱負荷減少時,裝置可選擇性地放寬對於不同QoS任務之CPU節流。
在一項實施例中,任務為一為正被執行的電腦程式之個例的程序。在此實施例中,任務可為一由於使用者輸入而執行的使用者應用程式。任務之另一實例為一提供一或多個服務至使用者應用程式的系統程序、另一系統程序、其他程序等。舉例而言,在一項實施例中,系統程序給予無線熱點服務之狀態,列出所安裝應用程式,促進搜尋,監視並調整裝置電力設定,等等。在另一實施例中,任務為一為 可藉由作業系統排程器獨立地管理的程式化指令之最小序列的執行緒。在一項實施例中,在程序內部含有一執行緒。多個執行緒可存在於相同程序內並共用諸如記憶體之資源,而不同程序不共用此等資源。
如上文所描述,且在一項實施例中,在執行窗期間選擇性地使一任務強迫閒置可減少裝置之電力消耗及熱負荷,因為執行該任務之CPU處理核心可置於低電力狀態。若CPU之所有CPU處理核心閒置,則因為額外CPU支援硬體亦可置於低電力狀態所以可實現進一步熱減輕。在此實施例中,重疊執行任務之選擇性強迫閒置時間可增加所有CPU處理核心在相同時間期間閒置的機率。舉例而言,且在一項實施例中,對於四個核心CPU,考慮其中一個核心執行高QoS任務、兩個核心執行具有選擇性強迫閒置時間之低QoS任務且第四核心不執行任務的情形。在此實例中,選擇性強迫閒置時間重疊,使得若高QoS任務閒置,則所有處理核心將同時閒置。藉由使CPU之所有處理核心同時閒置,支援CPU硬體(例如,記憶體控制器、末階快取記憶體、CPU互連件及其他CPU支援硬體)亦可被置於低電力狀態中並經電力閘控,進一步節省電力,消除洩漏電流,且進一步減少裝置上之熱負荷。在一項實施例中,若高QoS任務為視訊播放任務,則任務將在圖框完成後變成閒置。
在一項實施例中,裝置判定用於為歷史上高能量消耗任務的任務之一選擇性強迫閒置設定。在此實施例中,若裝置上之熱負荷達到一能量消耗臨限值,則裝置判定是否存在為歷史上高能量消耗任務的任何執行任務。若存在,則裝置選擇性地使此等任務閒置。舉例而言,且在一項實施例中,視訊編碼、解碼或轉碼任務可歷史上消耗一足夠高能量,裝置決定藉由選擇性地使該任務強迫閒置來使該足夠高能量之此任務節流。
在一項實施例中,裝置可藉由基於與每一執行任務相關聯的QoS設定針對不同CPU處理核心之一CPU頻率上限而減輕裝置上之熱負荷。在此實施例中,裝置基於當前裝置熱負荷設定針對任務QoS之一頻率上限百分比。在一項實施例中,頻率上限百分比為此CPU處理核心可在執行窗中執行的CPU處理核心頻率之最大百分比。舉例而言,且在一項實施例中,若一CPU處理核心具有2.3Ghz之最大頻率,則任務之50%之頻率上限百分比將使該處理核心限於在1.15GHz下操作。可基於裝置之其他電力管理功能進一步減少實際處理核心頻率。
在另一實施例中,裝置之作業系統將服務品質(QoS)類別指派給每一執行緒或任務。類別可藉由執行緒或任務廣告,或藉由作業系統隱含地推斷。基於所討論之應用程序的聚焦性(前景狀態)(不論應用程序已「app打盹」,整個CPU、GPU及輸入輸出(IO)裝置中的能量消耗歷史以及其他準則)來執行推斷。明確廣告之類別可包括背景、諸如檔案系統索引或加密之長執行批次工作、備份等,其中QoS之全部範圍達使用者互動及即時執行(諸如,捲動及視訊/音訊處理)。作業系統在明確廣告與隱含推斷之類別之間仲裁。
在另一實施例中,作業系統在判定待應用於給定執行緒的處理器執行頻率上限及排程工作循環時使用執行緒之服務品質及裝置之熱等級作為輸入,其中目標為提供增加之效能給重要任務而同時將溫度控制至可接受極限。在CPU節流及選擇性負荷循環/強迫閒置的情況下,所利用的主熱等級為CPU之熱等級,如藉由CPU上熱二極體所量測之CPU之接面溫度。
圖1為藉由選擇性地使裝置之中央處理單元(CPU)操作節流而減輕裝置之熱分佈的裝置100之一項實施例之方塊圖。在一項實施例中,裝置100可為個人電腦、膝上型電腦、伺服器、行動裝置(例如,智慧型電話、膝上型電腦、個人數位助理、音樂播放裝置、遊戲裝置 等)、網路元件(例如,路由器、交換器、閘道器等)及/或能夠執行多個應用程式之任何裝置。在一項實施例中,裝置100可為實體或虛擬裝置。在圖1中,裝置100包括一或多個中央處理單元(CPU)108、作業系統112、系統管理控制器(SMC)104及感測器106。在一項實施例中,CPU 108為諸如微處理器或另一類型處理器之一般用途處理裝置且耦接至作業系統112。更明確而言,CPU 108可為複雜指令集計算(CISC)微處理器、精簡指令集計算(RISC)微處理器、超長指令字(VLIW)微處理器、實施其他指令集之處理器,或實施指令集之組合的處理器。中央處理單元(CPU)108亦可為一或多個專用處理裝置,諸如特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、數位信號處理器(DSP)、網路處理器或其類似者。在一項實施例中,CPU 108可包括一或多個CPU且CPU中之每一者可包括一或多個處理核心。
在一項實施例中,作業系統112為用以管理裝置硬體資源之軟體集合且提供共同服務用於其他執行電腦程式(諸如,應用程式)。在一項實施例中,系統管理控制器104為控制裝置電力流及風扇速度的子系統。在此實施例中,系統管理控制器104耦接至感測器106。在一項實施例中,感測器106包括監視並記錄關於裝置100之熱分佈之資料的感測器。在此實施例中,熱分佈為關於裝置100之熱特性的資料。舉例而言,且在一項實施例中,熱分佈可包括隨時間而變的裝置100溫度,隨時間而變的裝置100模組溫度(例如,儲存器溫度、CPU接面溫度、裝置外殼之底部殼體溫度、風扇速度,及/或與裝置100之熱特性相關的其他資料)。在一項實施例中,感測器106為量測裝置100之熱特性的一或多個感測器。舉例而言,且在一項實施例中,感測器106可包括用於裝置溫度之感測器、用於I/O子系統之感測器、離散GPU、風扇速度感測器及DRAM。
在一項實施例中,作業系統112調整CPU 108之操作以減輕裝置100之熱分佈。在此實施例中,作業系統112包括熱精靈協助程式(thermald)102及核心程式110。在此實施例中,熱精靈協助程式102為選擇性地使一或多個執行任務之CPU操作節流以便減輕裝置100之熱環境的精靈協助程式。在一項實施例中,熱精靈協助程式102接收熱分佈之熱等級並判定熱等級是否越過一或多個熱臨限值中的一者。在一項實施例中,可針對若干不同熱臨限值而組態裝置,其中每一熱臨限值具有不同CPU節流等級。在此實施例中,越過熱臨限值可意謂熱精靈協助程式102調整一組選擇性強迫閒置時間值用於不同QoS任務。在此實施例中,選擇性強迫閒置時間值係藉由CPU使用以根據該操作之QoS在任務之時間片斷中排程CPU執行。每一任務具有一相關聯QoS,其指示與由一CPU執行的任務相比待使用的該CPU之執行窗中之多少的相對重要性。具有較高QoS之任務比較低QoS任務更可能接收更多CPU執行時間。在一項實施例中,可存在複數個不同QoS(例如,兩個或兩個以上不同QoS)。在一項實施例中,在裝置100之低熱負荷條件下,該等QoS中的每一者將具有低選擇性強迫閒置時間。當裝置100上之熱負荷增加時,熱精靈協助程式102調整不同任務QoS中之一或多者的QoS選擇性強迫閒置值。在一項實施例中,因為裝置或裝置之一或多個組件(例如,CPU 108、圖形處理單元、I/O子系統等)的電力消耗增加,所以裝置上之熱負荷可增加。
在一項實施例中,熱精靈協助程式102在減少較高QoS任務之前選擇性地增加較低QoS任務之選擇性強迫閒置,使得較低QoS任務之CPU執行在較高QoS任務之前被節流。藉由選擇性地使較低QoS任務CPU執行節流,不使較高QoS任務之CPU執行節流,但總CPU利用率減少,因此減少裝置100之儲存系統的電力消耗,且減少由裝置產生的熱,並減少裝置100上之熱負荷。若裝置100上之熱負荷繼續增加, 則熱精靈協助程式102可進一步使較低QoS任務節流及/或開始使較高QoS任務節流。在一項實施例中,熱精靈協助程式102使較低QoS任務及較高QoS任務兩者節流。在另一實施例中,當裝置之熱負荷減少時,熱精靈協助程式102藉由放寬對於不同QoS任務之約束而減少或移除較低及/或較高等級之節流。在此實施例中,若裝置之熱負荷減少,則熱精靈協助程式102將一個、一些或全部任務之選擇性強迫閒置放寬至正常狀態(例如,沒有對於該任務之選擇性強迫閒置)。CPU節流可藉由使CPU 106中之一個、一些或全部節流而發生。在一項實施例中,用於不同QoS之選擇性強迫閒置之設定係藉由CPU管理模組114執行。下文在圖7中進一步描述管理不同QoS任務之CPU執行。在一項實施例中,核心程式110為作業系統112之基本組件並提供裝置資源(例如,任務、輸入/輸出系統、網路資源等)之抽象等級。在一項實施例中,核心程式110排程任務以由CPU 108執行。在一項實施例中,核心程式包括使用該等任務中之每一者的選擇性強迫閒置值排程用於執行之任務的CPU排程器116。在一項實施例中,CPU 108包括使用用於任務中之每一者的選擇性強迫閒置值執行任務的SFI模組118。
圖2為具有多個CPU處理核心202A至202D及支援硬體204之CPU 200的方塊圖。雖然在一項實施例中,CPU 200包括四個不同CPU處理核心202A至202D,但在替代實施例中,CPU 200可包括更多或更少CPU處理核心。在一項實施例中,每一CPU處理核心202A至202D為可按特定執行頻率讀取並執行程式指令的獨立計算單元。在一項實施例中,CPU處理核心202A至202D中之每一者可按相同執行頻率操作(在任務經排程以在該核心上執行的情況下),或可置於一較低電力狀態中(例如,在無任務經排程或任務閒置的情況下)。在此實施例中,低電力狀態使CPU核心202A至202D休眠,此減少由裝置所使用之電力及所產生之熱的量。因此,在一項實施例中,CPU 200可使CPU核 心202A至202D中之一些運行並執行任務且使其他CPU核心202A至202D在低電力狀態中休眠。另外,CPU 200包括CPU支援硬體204。在一項實施例中,CPU支援硬體204包括一記憶體控制器、末階快取記憶體、CPU互連件等。在一項實施例中,若所有CPU 202A至202D閒置,則CPU支援硬體204可置於一低電力狀態中且經電力閘控以消除洩漏電流,從而進一步節省電力並減少裝置上之熱負荷。
在一項實施例中,CPU核心202A至202D可在執行任務時在執行窗之一部分中置於低電力狀態中。在此實施例中,一任務可經排程於CPU核心202A至202D中之一或多者上以待在執行窗期間執行。在此執行窗期間,CPU核心202A至202D中之一或多者可使該執行任務閒置,以便將CPU核心202A至202D置於低電力狀態中。CPU核心之此部分閒置被稱為如上文所描述的選擇性強迫閒置。在一項實施例中,可基於裝置之熱負荷及執行任務之QoS而執行選擇性強迫閒置。
圖3為包括用於低QoS任務之選擇性強迫閒置的CPU核心執行時間軸300A至300D之一項實施例之說明。在一項實施例中,CPU核心300A正執行一視訊任務,其為一高QoS任務。在此實施例中,CPU核心300A在全部執行窗(除正常閒置308外)中執行該視訊任務。在一項實施例中,正常閒置308係在正常執行過程期間。舉例而言,且在一項實施例中,若高QoS任務為視訊播放任務,則該任務將在圖框完成後變成閒置。對比而言,CPU核心300B至300C中之每一者正執行低QoS任務。舉例而言,且在一項實施例中,CPU核心300B正執行一備份任務302B,其為一低QoS任務。類似地,CPU核心300C正執行另一低QoS任務(一搜尋索引任務302C)。在此等實施例中,選擇性強迫閒置的低QoS任務中之每一者經排程以減少裝置上之熱負荷。舉例而言,且在一項實施例中,備份任務302B在時間段304A期間經選擇性地強迫為閒置且搜尋索引任務在時間段304B期間經選擇性地強迫為 閒置。在此等強迫閒置時間段中之每一者中,對應CPU核心可置於低電力狀態中,從而節省電力並減少裝置上之熱負荷。在一項實施例中,CPU核心300D未經排程以具有一在此執行窗期間執行的任務且在低電力狀態中。
如圖3中所描述,低QoS任務可在執行窗之一部分(或可能全部)中被選擇性地強迫為閒置以便減輕裝置上之熱負荷。替代地,若熱負荷足夠高,則高QoS任務亦可經選擇性地強迫為閒置。用於一任務之選擇性強迫閒置在任務之執行窗期間的一時間段中使CPU處理核心閒置。藉由使處理核心閒置,較少電力由裝置消耗且較少熱被產生。然而,在圖3中,選擇性強迫閒置時間段不重疊以使得所有CPU處理核心同時閒置。若所有CPU核心可在相同時間內閒置,則全部CPU(包括CPU支援硬體)可置於低電力狀態中。為如此進行,選擇性強迫閒置時間可經相位對準,以使得選擇性強迫閒置時間重疊以增加高QoS任務(例如,圖3之視訊任務302A)在其他任務之重疊選擇性強迫閒置時間期間閒置的可能性。
圖4為相位對準低QoS任務之重疊選擇性強迫閒置的CPU核心執行時間軸400A至400D之一項實施例之說明。在圖4中及在一項實施例中,CPU核心400A正執行一視訊任務,其為一高QoS任務。在此實施例中,CPU核心400A在全部執行窗(除正常閒置408外)中執行該視訊任務。另外,CPU核心400B至400C中之每一者正分別執行低QoS任務、備份任務402B及搜尋索引任務402C。此等兩個低QoS任務402B至402C分別具有重疊選擇性強迫閒置時間404A至404B。藉由重疊強迫閒置時間,增加所有CPU核心同時閒置的可能性。重疊選擇性強迫閒置時間使此等任務402B至402C之強迫閒置時間相位對準。低QoS任務之選擇性強迫閒置時間可相同或不同。舉例而言,且在一項實施例中,備份任務402B在時間段404A期間經選擇性地強迫為閒置,時間 段404A與搜尋索引任務402C之選擇性強迫閒置時間404B重疊。在一項實施例中,在任務402B至402C之重疊選擇性強迫閒置時間期間,視訊任務402A在時間段408期間閒置。因為所有CPU 400A至400D在此時間段408期間閒置,所以CPU(包括任何支援CPU硬體(例如,如上文在圖2中描述的CPU 200及CPU支援硬體204)可置於低電力狀態中。
圖5為針對CPU節流之不同等級的選擇性強迫閒置百分比之表500之說明。在圖5中,表500包括QoS類別之行502、包括程序類別之行504,及針對不同CPU節流條件之不同選擇性強迫閒置百分比之行504A至504C。在一項實施例中,可基於所討論之應用程序的聚焦性(前景狀態)(不論app已「app打盹」,整個CPU、GPU及輸入輸出(IO)裝置中的能量消耗歷史以及其他準則)來執行推斷。明確廣告之類別可包括背景、諸如檔案系統索引或加密之長執行批次工作、備份等,其中QoS之全部範圍達使用者互動及即時執行(諸如,捲動及視訊/音訊處理)。在一項實施例中,QoS 0為最高QoS且QoS N為最低QoS。在此實施例中,此等QoS類別中之每一者可對應於不同任務類別。舉例而言,且在一項實施例中,QoS 0可為與前景應用程式相關的任務之類別。QoS 1可為與app打盹狀態中之應用程式相關的任務。QoS N可為與與背景應用程式相關之任務相關的任務。
圖5中說明三個不同CPU節流條件。在一項實施例中,對於無CPU節流條件504A,沒有此等QoS經選擇性地強迫為閒置。在此實施例中,此意謂通常在執行窗期間執行該等任務中之每一者。此條件表示一具有極少或無熱負荷之裝置。在此實施例中,該等任務中之每一者將經排程用於CPU執行並通常在沒有選擇性強迫閒置情況下被處理。當裝置之熱負荷增加時,裝置開始使較低QoS任務節流。在一項實施例中,此在行504B中說明,在該行中存在對於較低QoS任務之某一CPU節流。舉例而言,在一項實施例中,QoS 0通常在無強迫閒置 情況下執行。QoS 1具有10%之選擇性強迫閒置。此意謂在執行窗中,具有為1之QoS的任務將在10%執行窗中經選擇性地強迫為閒置。另外,QoS 2及QoS N分別將在25%及50%執行窗中經選擇性地強迫為閒置。此說明較低QoS任務可能獲得10%至50%的節流。當熱負荷進一步增加時,QoS中之每一者可使CPU被進一步節流。舉例而言,在一項實施例中,在行504C中,QoS 0具有10%之選擇性強迫閒置百分比,QoS 1、QoS 2及QoS N分別具有25%、50%及75%之選擇性強迫閒置百分比。在此等級處,較低QoS經更多選擇性地限制,但仍將得到某一CPU執行時間。
圖6為針對具有應用於兩個不同任務的選擇性強迫閒置之此等任務的執行窗614A至614C之說明。在圖6中,用於背景程序610及app打盹612中之應用程式的任務係在執行窗614A至614C期間被選擇性地強迫為閒置。在一項實施例中,在每一執行窗期間,該等任務中之每一者係在執行窗期間部分地執行。舉例而言,且在一項實施例中,對於背景任務610,任務係在時間段608A至608C期間執行且在時間段606A至606C期間閒置。在此實例中,背景任務610在執行窗614A至614C之約75%中為閒置且在執行窗614A至614C之約25%中被執行。作為另一實例及實施例,對於應用程式打盹612中之任務,該任務係在時間段602A至602C期間執行且在時間段604A至604C期間閒置。在此實例中,app打盹任務612在執行窗614A至614C之約50%中閒置且在執行窗614A至614C之約50%中被執行。
圖7為用以基於裝置之熱等級而管理CPU節流的程序700的一項實施例之流程圖。在一項實施例中,程序700係藉由用以管理CPU節流之一熱精靈協助程式(諸如,如上文在圖1中所描述之熱精靈協助程式112)執行。在圖7中,程序700藉由在區塊702處接收熱等級而開始。在一項實施例中,熱等級為與裝置之熱分佈或其他熱特性相關的資 料。舉例而言,在一項實施例中,熱等級可為關於裝置溫度之時間相依熱等級、裝置之特定模組之溫度、關於風扇使用之資料及/或與裝置之熱特性相關的其他資料。在區塊704處,程序700判定熱等級是否大於較高臨限值。在一項實施例中,較高臨限值為一指示裝置可具有較大CPU節流以便減輕裝置上之熱負荷的臨限值。舉例而言,且在一項實施例中,熱臨限值可與裝置之溫度、裝置之模組、風扇速度或某一其他熱特性相關。作為另一實例及實施例,較高熱臨限值之集合可為裝置溫度是否超過40℃、45℃、50℃等。在另一實施例中,熱臨限值可基於日時間或使用者活動。舉例而言,且在一項實施例中,若使用者與裝置有效地互動,則程序700可選擇更積極地控制熱。若程序700可預測裝置並未有效地在使用中(比方說在上午2點處)且將具有充分冷卻時間,則可在白天期間延遲的活動(諸如,備份)可在較高效能等級處執行。若熱等級大於較高臨限值,則程序700在區塊708處調整不同任務QoS的選擇性強迫閒置以針對其熱臨限值已超過的每一QoS類別增加CPU節流。在此實施例中,程序700可開始使QoS節流或進一步使已節流之QoS節流。在一項實施例中,程序700藉由增加具有一QoS的任務之選擇性強迫閒置百分比而使該QoS節流。舉例而言,在一項實施例中,程序700可藉由如上文在圖5中所描述將選擇性強迫閒置自0%增加至25%而使QoS節流。替代地,程序700可將已節流之QoS自25%節流直至50%。藉由選擇性地增加不同QoS之強迫閒置,程序700選擇性地使不同QoS節流,因此允許用於較高QoS之較大CPU執行及用於較低QoS之較低CPU執行。此允許裝置之CPU的較少電力消耗,同時以較低QoS程序之CPU通量為代價,較高QoS程序具有較好CPU通量。儲存系統之較低電力消耗可有助於減輕裝置上之熱負荷。
若熱等級不大於較高臨限值,則程序700在區塊706處判定熱等級是否小於較低臨限值。在一項實施例中,若熱等級小於較低臨限 值,則程序700可因為裝置上之熱負荷可減少而想要放寬CPU節流。舉例而言,且在一項實施例中,若當前節流係針對一具有40℃至45℃之溫度的裝置且溫度下降至40℃以下(其為裝置之低熱負荷),則程序700可放寬當前CPU節流(例如,藉由減少選擇性強迫閒置百分比)。若熱等級小於較低臨限值,則在區塊710處程序700調整選擇性強迫閒置百分比以減小CPU節流。在一項實施例中,程序700放寬對於用於不同QoS中之一或多者的CPU通量的限制。舉例而言,且在一項實施例中,程序700可將一具有25%選擇性強迫閒置之QoS往回放寬至如上文在圖5中所描述的無限制0%選擇性強迫閒置。替代地,程序700可將在50%選擇性強迫閒置處的限制之QoS放寬至較少限制25%選擇性強迫閒置。若熱等級不小於較低臨限值,則程序700在區塊712處維持當前CPU節流。執行進行上述區塊712。
除基於任務之QoS設定選擇性強迫閒置值以外,裝置(例如,裝置100)可基於該任務在歷史上之能量消耗設定一選擇性強迫閒置值。舉例而言,且在一項實施例中,若裝置具有高熱負荷,則裝置可藉由設定彼等任務之選擇性強迫閒置值而使歷史上高能量消耗任務節流。在此實施例中,裝置可使用於歷史上高能量消耗任務之CPU節流,實際上使熱負荷影響重要系統或使用者任務(例如,窗伺服器、選單操作、虛擬記憶體子系統及其他系統組件)。圖8為用以基於裝置之熱等級管理高能量消耗任務之CPU節流的程序800的一項實施例之流程圖。在一項實施例中,程序800係藉由用以管理高能量消耗任務之CPU節流的一熱精靈協助程式(諸如,如上文在圖1中所描述的熱精靈協助程式112)而執行。在圖8中,程序800藉由在區塊802處接收熱等級而開始。在一項實施例中,熱等級為與裝置之熱分佈或其他熱特性相關的資料。舉例而言,在一項實施例中,熱等級可為關於裝置溫度之時間相依熱等級、裝置之特定模組之溫度、關於風扇使用之資料及 /或與裝置之熱特性相關的其他資料。在區塊804處,程序800判定熱等級是否大於高能量消耗臨限值。在一項實施例中,高能量消耗臨限值為用於裝置使歷史上高能量消耗任務節流之條件的臨限值。藉由使歷史上高能量消耗任務節流,即使歷史上高能量消耗任務為前景應用程式,裝置仍減輕裝置上之熱負荷。舉例而言,且在一項實施例中,熱臨限值可與裝置之溫度、裝置之模組、風扇速度或某一其他熱特性相關。作為另一實例及實施例,較高熱臨限值之集合可為裝置溫度是否超過50℃或更大。
在區塊806處,程序800判定是否存在為歷史上高能量消耗任務之執行任務。舉例而言,且在一項實施例中,視訊編碼器/解碼器/轉碼器任務可為一歷史上高能量消耗任務。在一項實施例中,程序800自一追蹤先前執行任務之能量消耗的資料庫擷取關於歷史上能量消耗資訊的資訊。在一項實施例中,用於一任務之能量消耗資料為裝置在執行該任務時使用的能量之數量。在此實施例中,裝置追蹤不同執行應用程式之能量消耗。若存在一為歷史上高能量消耗任務之當前執行任務,則在區塊810處程序800將此任務標記為用於使用選擇性強迫閒置進行的CPU節流之候選者。在一項實施例中,程序800藉由設定一大於0%之選擇性強迫閒置值標記用於CPU節流之一歷史上高能量消耗任務。舉例而言,且在一項實施例中,程序800將設定50%之選擇性強迫閒置值以用於為歷史上高能量消耗任務之視訊編碼/解碼/轉碼任務。在此實施例中,CPU排程器將使用此設定來選擇性地使該任務強迫閒置。若不存在以歷史上高能量消耗執行之任務,則程序800在區塊812處不採取動作。
若在區塊804處,熱等級不大於一能量消耗臨限值,則程序800在區塊808處基於歷史上能量消耗而取消標記先前已被標記用於選擇性強迫閒置的任何任務。舉例而言,且在一項實施例中,若裝置之熱 等級已下降至低於能量消耗臨限值且視訊轉碼任務因為此任務為歷史上高能量消耗者而已被選擇性地強迫為閒置到期,則裝置取消標記該任務且移除該任務之強迫閒置。雖然在一項實施例中,存在一個能量臨限值,但在替代實施例中可存在具有不同程度選擇性強迫閒置值的多個能量臨限值。
如上文所描述,裝置可回應於裝置之熱等級而選擇性地限制並放寬不同選擇性強迫閒置值。裝置使用不同選擇性強迫閒置值來處理裝置CPU操作。圖9為用以使用CPU節流排程並執行任務的程序900之一項實施例之流程圖。在一項實施例中,CPU排程器(諸如,如上文在圖1中所描述的CPU排程器116)執行程序900以使用CPU節流排程並執行任務。在圖9中,程序900藉由選擇一待在每一可用CPU核心上執行的任務而開始。在一項實施例中,程序900藉由選擇具有最高QoS之可用任務而選擇任務。舉例而言,且在一項實施例中,若存在用於四個處理核心之三個可用任務(一高QoS視訊任務、一低QoS備份任務及一低QoS搜尋索引任務),則程序900將選擇在四個處理核心中之三個上的此等三個任務。在區塊904處,程序900排程並相位對準不同CPU核心上之選定任務。在一項實施例中,選定任務中之每一者可具有選擇性強迫閒置時間。在此實施例中,程序900將排程用於每一適用任務之選擇性強迫閒置時間以使得強迫閒置時間將重疊。在一項實施例中,該等任務之強迫閒置時間最大限度地重疊,以使得強迫閒置時間儘可能地重疊。在此實施例中,藉由最大限度地重疊強迫閒置時間,增加所有處理核心將在執行窗之一部分中為閒置的機率。在一項實施例中,下文在圖10中進一步描述任務之相位對準。
程序900在區塊906處基於經排程任務之QoS、QoS類別之熱等級臨限值及裝置之熱等級而設定CPU核心執行頻率上限。在一項實施例中,CPU核心中的每一者以CPU頻率執行。CPU核心頻率上限對於 CPU之所有處理核心可相同或可不同。下文在圖13中進一步描述設定CPU核心頻率上限。在區塊908處,程序900執行該等任務。在一項實施例中,程序900藉由使CPU處理核心在用於該任務之執行窗之非閒置時間期間執行任務而執行該等任務。舉例而言,且在一項實施例中,程序900在如上文在圖6中所描述的執行窗之「開啟」部分期間執行每一任務。
如上文所描述,若選擇性強迫閒置任務之閒置時間重疊,則CPU之所有CPU處理核心將同時閒置的機率增加。在一項實施例中,此可藉由相位對準選擇性強迫閒置任務之強迫閒置時間而實現。圖10為用以相位對準在不同CPU核心上選擇性強迫閒置之任務的程序1000之一項實施例之流程圖。在一項實施例中,相位對準係藉由諸如如上文在圖1中所描述的CPU排程器116之CPU排程器而執行。在圖10中,程序1000在區塊1002處藉由接收用於彼等選定任務之任務選擇性強迫閒置值中的經排程任務而開始。在一項實施例中,選擇性強迫閒置時間值源自任務QoS值或該值被指派(例如,如上文在圖8中所描述的歷史上高能量消耗者)。在區塊1004處,且對於每一經排程任務,程序1000判定每一任務被強迫閒置的時間量(若存在)。在一項實施例中,若一任務待選擇性地強迫為閒置,則此意謂用於該任務之執行窗的一部分將為閒置。在此實施例中,程序1000判定用於該任務之執行窗之時間段,其中任務被強迫為閒置。舉例而言,在一項實施例中,若任務待在執行窗之50%中被選擇性地強迫為閒置,則程序1000判定用於該任務的執行窗之一半將為閒置的。使用經排程任務之強迫閒置時間,程序1000相位對準閒置時間使得此等任務之閒置時間重疊。在一項實施例中,程序1000相位對準強迫閒置時間,以使得強迫閒置時間中的每一者重疊且較小強迫閒置時間與較大強迫閒置時間完全重疊。在此實施例中,強迫閒置時間最大限度地重疊並得到CPU中之所有CPU處理 核心將同時閒置的最大機率。藉由使所有CPU處理核心同時閒置,CPU處理核心中之每一者可置於低電力狀態,且CPU之支援硬體亦可置於低電力狀態。
圖11為用以基於裝置之熱等級管理CPU頻率上限的程序1100之一項實施例之流程圖。在一項實施例中,攜帶型多核心系統提供跨越該系統之所有核心的單一CPU頻率平面。換言之,並行執行之核心以同一頻率執行。在此等系統上,選擇性任務調變機制在具有異質QoS之任務並行在作用中的情形中改良能效。在無本發明之系統上,較低服務品質任務必須必要地在適於高服務品質任務之效能需求的高頻下執行。在一項實施例中,藉由解排程同相較低QoS任務,系統具有一在一其中高QoS不在作用中之時間段期間執行較低QoS任務的機會,因此選擇用於低QoS任務之一較低、較多能效處理器頻率。此亦可藉由將較多共用處理資源(包括共用處理器快取記憶體)專用於較高QoS任務而潛在地改良較高服務品質任務之效能。在一項實施例中,程序1100係藉由用以管理CPU節流之一熱精靈協助程式(諸如,如上文在圖1中所描述之熱精靈協助程式112)執行。在圖11中,程序1100藉由在區塊1102處接收熱等級而開始。在一項實施例中,熱等級為與裝置之熱分佈或其他熱特性相關的資料。舉例而言,在一項實施例中,熱等級可為關於裝置溫度之時間相依熱等級、裝置之特定模組之溫度、關於風扇使用之資料及/或與裝置之熱特性相關的其他資料。在區塊1104處,程序1100判定熱等級是否大於較高臨限值。在一項實施例中,較高臨限值為一指示裝置可藉由減少CPU核心頻率以便減輕裝置上之熱負荷而具有較大CPU節流的臨限值。舉例而言,且在一項實施例中,熱臨限值可與裝置之溫度、裝置之模組、風扇速度或某一其他熱特性相關。作為另一實例及實施例,較高熱臨限值之集合可為裝置溫度是否超過40℃、45℃、50℃等。在另一實施例中,熱臨限值可基 於日時間或使用者活動。若熱等級大於較高臨限值,則程序1100調整用於不同任務QoS的選擇性強迫閒置以藉由在區塊1108處減少一CPU核心頻率上限而增加CPU節流。在此實施例中,減少CPU核心頻率上限將使CPU處理核心以較低頻率執行,因此減少藉由CPU處理核心使用的電力以及減少裝置上之熱負荷。在此實施例中,程序1100可開始使無限制QoS節流或進一步使已節流之QoS節流。在一項實施例中,程序1100藉由減少該QoS之CPU處理頻率上限而使QoS節流。舉例而言,在一項實施例中,程序1100可如下文在圖12中所描述藉由將一CPU處理頻率上限自100%減少至90%而使一QoS節流。替代地,程序1100可將一已節流之QoS自50%節流降至25%CPU處理頻率上限。藉由選擇性地減少不同QoS之CPU處理頻率上限,程序1100選擇性地使不同QoS節流,因此允許用於較高QoS之較大CPU執行及用於較低QoS之較低CPU執行。此允許裝置之CPU的較少電力消耗,同時以較低QoS程序之CPU通量為代價,較高QoS程序具有較好CPU通量。儲存系統之較低電力消耗可有助於減輕裝置上之熱負荷。
若熱等級不大於較高臨限值,則程序1100在區塊1106處判定熱等級是否小於較低臨限值。若熱等級小於較低臨限值,則在區塊1110處,程序1100調整CPU處理頻率上限以減小CPU節流。在一項實施例中,程序1100放寬對於不同QoS中之一或多者的CPU通量的限制。舉例而言,且在一項實施例中,程序1100可將一具有75%CPU處理頻率上限之QoS放寬回至如下文在圖12中所描述的一無限制100%CPU處理頻率上限。替代地,程序1100可將在25%CPU處理頻率上限處的限制之QoS放寬至較少限制50%選擇性強迫閒置。若熱等級不小於較低臨限值,則程序1100在區塊1112處維持當前CPU節流。執行進行至上述區塊1112。
圖12為針對CPU節流之不同等級的頻率上限百分比的表之說明。 在圖12中,表1200包括QoS類別之行1202、包括任務類別之行1204,及針對不同CPU節流條件之不同選擇性強迫閒置百分比之行1204A至1204C。在一項實施例中,QoS 0為最高QoS且同類QoS N為最低QoS。在此實施例中,此等QoS類別中之每一者可對應於不同任務類別。舉例而言,且在一項實施例中,QoS 0可為與前景應用程式相關的任務之類別。QoS 1可為與app打盹狀態中之應用程式相關的任務。QoS N可為與與背景應用程式相關之任務相關的任務。
圖12中說明三個不同CPU節流條件。在一項實施例中,對於無CPU節流條件1204A,不存在百分比CPU百分比頻率上限的減少。在此實施例中,此意謂通常在執行窗期間執行該等任務中之每一者。此條件表示一具有極少或無熱負荷之裝置。在此實施例中,該等任務中之每一者將經排程用於CPU執行並通常在沒有CPU節流情況下在CPU處理核心頻率上被處理。當裝置之熱負荷增加時,裝置開始使較低QoS任務節流。在一項實施例中,此在行1204B中說明,在該行中存在對於較低QoS任務之某一CPU節流。舉例而言,在一項實施例中,QoS 0及QoS 1通常在沒有CPU處理核心頻率減少情況下執行。QoS 2及QoS N將分別具有減少至90%及75%之CPU處理核心頻率上限。此說明較低QoS程序可能得到10%至25%的節流。當熱負荷進一步增加時,QoS中之每一者將使CPU進一步被節流。舉例而言,在一項實施例中,在行1204C中,QoS 0具有90%之CPU處理核心頻率上限,且QoS 1、QoS 2及QoS N分別具有75%、50%及25%之CPU處理核心頻率上限。在此等級處,較低QoS經更多選擇性地限制,但仍將得到某一CPU執行時間。在另一實施例中,較高QoS任務(例如,QoS 0)亦可選擇性地閒置。
圖13為用以設定用於在CPU核心上的任務之一CPU頻率上限的程序之一項實施例之流程圖。在一項實施例中,CPU排程器(諸如,如 上文在圖1中所描述之CPU排程器116)執行程序900以設定用於CPU核心上之任務的CPU頻率上限。在圖13中,程序1300藉由選擇一待在每一可用CPU核心上執行的任務而開始。在一項實施例中,程序1300藉由觀察排佇等待之可用任務及選擇具有最高QoS之任務而選擇該等任務。在區塊1304處,程序1300針對每一任務判定CPU頻率上限。在一項實施例中,程序1300基於任務之QoS及當前裝置熱負荷判定CPU頻率上限。在一項實施例中,CPU頻率上限可為一等於或低於100%之百分比。在一項實施例中,程序1300使用一基於任務QoS查詢之表判定任務之CPU頻率上限。程序1300在區塊1306處設定用於CPU處理核心之CPU頻率上限。在一項實施例中,CPU處理核心中的每一者具有相同頻率。在此實施例中,程序1300設定CPU之每一處理核心以具有待在該CPU之CPU處理核心中的一者上執行的任務中之一者之最高頻率。替代地,CPU頻率上限可為待在該CPU之CPU處理核心中之一者上執行的任務中的一者之最低者。在區塊1308處,程序1300使用CPU處理核心執行任務。
圖14為用以基於裝置之熱等級管理CPU節流的CPU管理模組114之一項實施例之方塊圖。在一項實施例中,CPU管理模組114包括一CPU節流模組1402及一CPU高能量節流模組1404。在一項實施例中,CPU節流模組1402如上文在圖7中所描述基於裝置之熱等級管理CPU節流。在一項實施例中,CPU節流模組1402包括一接收熱等級模組1406、比較較高熱臨限值模組1408、比較較低熱臨限值模組1410、增加CPU節流模組1412及減小CPU節流模組1414。在一項實施例中,接收熱等級模組1406如上文在圖7區塊702中所描述接收熱等級。比較較高頻率臨限值模組1408如上文在圖7區塊704中所描述比較熱等級與較高熱臨限值。比較較低熱臨限值模組1410如上文在圖7區塊706中所描述比較熱等級與較低熱臨限值。增加CPU節流模組1412如上文在圖7 區塊708中所描述增加用於一或多個任務之CPU節流。減小CPU節流模組1414如上文在圖7區塊710中所描述減小用於一或多個程序之CPU節流。
在一項實施例中,CPU高能量節流模組1404如上文在圖8中所描述基於裝置之熱等級管理用於一高能量消耗任務之CPU節流。在一項實施例中,CPU高能量節流模組1404包括一接收熱等級模組1416、比較能量熱臨限值模組1418、取消標記任務模組1420、判定任務模組1422及標記任務模組1424。在一項實施例中,接收熱等級模組1416如上文在圖8區塊802中所描述接收熱等級。比較能量熱臨限值模組1418如上文在圖8區塊804中所描述比較熱等級與能量臨限值。取消標記任務模組1420如上文在圖8區塊808中所描述取消標記用於選擇性強迫閒置之任務。判定任務模組1422如上文在圖8區塊806中所描述判定是否存在以歷史上高能量消耗執行的任務。標記任務模組1424如上文在圖8區塊810中所描述將任務標記為用於使用選擇性強迫閒置進行的CPU節流之候選者。
圖15為用以使用CPU節流排程並執行任務的CPU排程器116之一項實施例之方塊圖。在一項實施例中,CPU排程器116包括一接收經排程任務模組1502、判定閒置時間模組1504及相位對準模組1506。在一項實施例中,接收經排程任務模組1502如上文在圖10區塊1002中所描述接收經排程任務。判定閒置時間模組1504如上文在圖10區塊1004中所描述判定強迫閒置時間。相位對準模組1506如上文在圖10區塊1006中所描述對準強迫閒置時間。
圖16為用以基於裝置之熱等級管理CPU頻率上限的CPU頻率上限管理模組1600之一項實施例之方塊圖。在一項實施例中,CPU頻率管理模組1600包括一接收熱等級模組1602、比較較高頻率臨限值模組1604、比較較低頻率臨限值模組1606、減小CPU頻率上限模組1608及 增加CPU頻率上限模組1610。在一項實施例中,接收熱等級模組1602如上文在圖11區塊1102中所描述接收熱等級。比較較高頻率臨限值模組1604如上文在圖11區塊1104中所描述比較熱等級與較高CPU頻率臨限值。比較較低頻率臨限值模組1606如上文在圖11區塊1106中所描述比較熱等級與較低CPU頻率臨限值。減小CPU頻率上限模組1608如上文在圖11區塊1108中所描述減小用於一或多個任務之CPU頻率上限。增加CPU頻率上限模組1610如上文在圖11區塊1110中所描述增加用於一或多個程序之CPU頻率上限。
圖17為用以設定CPU核心上之任務的CPU頻率上限的頻率上限模組1700之一項實施例之方塊圖。在一項實施例中,頻率上限模組1700包括選擇任務模組1702、判定任務上限模組1704、設定CPU核心上限模組1706及執行任務模組1708。在一項實施例中,選擇任務模組1702如上文在圖13區塊1302中所描述選擇一待在每一可用CPU核心上執行的任務。判定任務上限模組1704如上文在圖13區塊1304中所描述判定用於每一任務之頻率上限百分比。設定CPU核心上限模組1706如上文在圖13區塊1306中所描述設定頻率上限百分比。執行任務模組1708如上文在圖13區塊1308中所描述執行任務。
圖18展示可與本發明之一項實施例一起使用的資料處理系統1800之一個實例。舉例而言,可實施包括如圖1中所示之裝置100的系統1800。應注意,雖然圖18說明電腦系統之各種組件,但其不意欲表示互連該等組件的任何特定架構或方式,此係因為此等細節與本發明無關。亦將瞭解,網路電腦及其他資料處理系統或其他消費型電子裝置(其具有較少組件或可能較多組件)亦可與本發明一起使用。
如圖18中所示,電腦系統1800(其為一種形式之資料處理系統)包括耦接至微處理器1805及唯讀記憶體(ROM)1807及揮發性RAM 1809以及非揮發性記憶體1811的匯流排1803。微處理器1805可自記憶體 1807、1809、1811擷取指令並執行該等指令以執行上文所描述的操作。匯流排1803將此等各種組件互連在一起且亦將此等組件1805、1807、1809及1811互連至顯示控制器及顯示裝置1818並互連至諸如輸入/輸出(I/O)裝置之周邊裝置,該等I/O裝置可為滑鼠、鍵盤、數據機、網路介面、印表機及此項技術中所熟知的其他裝置。通常,輸入/輸出裝置1815經由輸入/輸出控制器1813耦接至系統。揮發性隨機存取記憶體(RAM)1809通常實施為動態RAM(DRAM),其持續需要電力以便再新或維持記憶體中之資料。
大容量儲存器1811通常為磁性硬碟機或磁性光碟機或光碟機或DVD ROM或快閃記憶體或其他類型之記憶體系統,其甚至在自系統移除電力之後仍維持資料(例如,大量資料)。通常,大容量儲存器1811亦將為隨機存取記憶體,但此並非必需的。雖然圖18展示大容量儲存器1811為直接耦接至資料處理系統中之剩餘組件的本端裝置,但應瞭解,本發明可利用系統遠端之非揮發性記憶體,諸如經由網路介面(諸如,數據機、乙太網路介面或無線網路)耦接至資料處理系統的網路儲存裝置。如此項技術中所熟知,匯流排1803可包括經由各種橋接器、控制器及/或配接器相互連接之一或多個匯流排。
圖19展示可與本發明之一項實施例一起使用的另一資料處理系統1900之實例。舉例而言,系統1900可實施為如圖1中所示之裝置100。圖19中所展示之資料處理系統1900包括處理系統1911,其可為一或多個微處理器,或其可為系統單晶片積體電路,且系統亦包括用於儲存資料及程式以供處理系統執行的記憶體1901。系統1900亦包括音訊輸入/輸出子系統1905,其可包括麥克風及揚聲器以用於(例如)播放音樂或經由揚聲器及麥克風提供電話功能性。
顯示控制器及顯示裝置1909為使用者提供視覺使用者介面;此數位介面可包括圖形使用者介面,該圖形使用者介面類似於 Macintosh電腦(在執行OS X作業系統軟體時)或Apple iPhone(在執行iOS作業系統時)等上展示之圖形使用者介面。系統1900亦包括用以與另一資料處理系統(諸如,圖19之系統1900)通信的一或多個無線收發器1903。無線收發器可為WLAN收發器、紅外線收發器、藍芽收發器及/或無線蜂巢式電話收發器。應瞭解,在某些實施例中,額外組件(未圖示)亦可為系統1900之一部分,且在某些實施例中,比圖19中所展示之組件少的組件亦可用於資料處理系統中。系統1900進一步包括用以與另一資料處理系統(諸如,圖8之系統800)通信的一或多個通信埠1917。通信埠可為USB埠、Firewire埠、藍芽介面等。
資料處理系統1900亦包括一或多個輸入裝置1913,其經提供以允許使用者提供輸入至系統。此等輸入裝置可為小鍵盤或鍵盤或觸控面板或多點觸控面板。資料處理系統1900亦包括可為用於銜接站之連接器的選用之輸入/輸出裝置1915。應瞭解,一或多個匯流排(未圖示)如此項技術中所熟知可用於互連各種組件。圖19中所展示之資料處理系統可為手持型電腦或個人數位助理(PDA),或具有類似PDA功能性之蜂巢式電話,或包括蜂巢式電話之手持型電腦,或媒體播放器(諸如,iPod),或組合此等裝置之態樣或功能的裝置(諸如,與一個裝置中之PDA及蜂巢式電話組合的媒體播放器),或嵌入式裝置或其他消費型電子裝置。在其他實施例中,資料處理系統1900可為網路電腦或在另一裝置內之嵌入式處理裝置,或其他類型之資料處理系統,其他類型之資料處理系統具有比圖19中所展示之資料處理系統更少或更多的組件。
本發明之至少某些實施例可為諸如攜帶型音樂及/或視訊媒體播放器的數位媒體播放器之一部分,其可包括用以呈現媒體之一媒體處理系統、用以儲存媒體之一儲存裝置並可進一步包括與天線系統及該媒體處理系統耦接的一射頻(RF)收發器(例如,用於蜂巢式電話之RF 收發器)。在某些實施例中,儲存於遠端儲存裝置上之媒體可經由RF收發器而傳輸至媒體播放器。媒體可為(例如)音樂或其他音訊、靜態圖片或運動圖片中之一或多者。
攜帶型媒體播放器可包括一媒體選擇裝置,諸如來自加利福尼亞州Cupertino蘋果公司之iPod®或iPod Nano®媒體播放器上的棘輪輸入裝置、觸控螢幕輸入裝置、按鈕裝置、可移動指標輸入裝置或其他輸入裝置。媒體選擇裝置可用於選擇儲存於儲存裝置及/或遠端儲存裝置上之媒體。在至少某些實施例中,攜帶型媒體播放器可包括一耦接至媒體處理系統以顯示經由輸入裝置選擇並經由揚聲器或耳機或在顯示裝置上或在顯示裝置及揚聲器或耳機兩者上呈現的媒體之標題或其他指示符的顯示裝置。攜帶型媒體播放器之實例係在美國公開專利第7,345,671號及美國公開專利第2004/0224638號中描述,該等專利之兩者以引用的方式併入本文中。
上文描述的內容之部分可以諸如專用邏輯電路之邏輯電路或以微控制器或執行程式碼指令之其他形式處理核心來實施。因此,由上文論述教示之程序可藉由諸如機器可執行指令之程式碼執行,該等機器可執行指令使一執行此等指令之機器執行某些功能。在此上下文中,「機器」可為一將中間形式(或「抽象」)指令轉換成處理器特定指令(例如,抽象執行環境,諸如「虛擬機」(例如Java虛擬機)、解譯器、共同語言運行時間、高級語言虛擬機,等)的機器,及/或安置於經設計以執行指令之半導體晶片(例如,以電晶體實施之「邏輯電路」)上的電子電路,諸如一般用途處理器及/或專用處理器。由上文論述所教示的程序亦可藉由(替代機器或結合機器)經設計以在不執行程式碼的情況下執行該等程序(或其之一部分)的電子電路執行。
本發明亦係關於用於執行本文描述之操作的設備。此設備可經特別建構以用於所需要目的,或其可包含由儲存於電腦中之電腦程式 選擇性地激活或重組態之一般用途電腦。此電腦程式可儲存於電腦可讀儲存媒體中,例如(但不限於)任一類型之碟片,包括軟性磁碟、光碟、CD-ROM及磁光碟、唯讀記憶體(ROM)、RAM、EPROM、EEPROM、磁卡或光卡或任一類型之適用於儲存電子指令之媒體,且每一者耦接至一電腦系統匯流排。
一機器可讀媒體包括用於儲存或傳輸呈可由一機器(例如,電腦)讀取之形式之資訊的任何機制。舉例而言,機器可讀媒體包括唯讀記憶體(「ROM」);隨機存取記憶體(「RAM」);磁碟儲存媒體;光學儲存媒體;快閃記憶體裝置;等。
製品可用於儲存程式碼。儲存程式碼之製品可體現為(但不限於)一或多個記憶體(例如,一或多個快閃記憶體、隨機存取記憶體(靜態、動態或其他))、光碟、CD-ROM、DVD ROM、EPROM、EEPROM、磁性或光學卡或適合於儲存電子指令之其他類型機器可讀媒體。程式碼亦可藉助於體現在傳播媒體(例如,經由通信鏈路(例如,網路連接))中的資料信號而自遠端電腦(例如,伺服器)下載至一請求電腦(例如,用戶端)。
先前詳細描述係在對電腦記憶體內之資料位元之操作的演算法及符號表示方面呈現。此等演算法描述及表示為熟習此項技術者在資料處理技術中使用以向其他熟習此項技術者最有效地傳達其工作之要點的手段。在此且大體而言設想演算法為導致一所要結果之操作之自相一致序列。該等操作為需要物理量之實體操縱的操作。通常(雖然未必),此等量採取能夠儲存、傳送、組合、比較及以其他方式操縱的電信號或磁信號之形式。已證明將此等信號稱為位元、值、元素、符號、字元、項、數字或其類似者時常(主要為了普通用途)為便利的。
然而,應記住,所有此等及類似術語應與適當物理量相關聯且 僅為應用於此等量之便利標記。除非另有特定說明,否則如自上文論述顯而易見,應瞭解貫穿描述,利用術語諸如「監視」、「減小」、「增加」、「維持」、「執行」、「處理」、「排程」、「節流」、「恢復」或其類似者之論述係指電腦系統或類似電子計算裝置的動作或程序,將表示為電腦系統之暫存器及記憶體內的物理(電子)量的資料操縱及變換成類似地表示為電腦系統記憶體或暫存器或其他此等資訊儲存、傳輸或顯示裝置內之物理量的其他資料。
本文所呈現之演算法及顯示器並不固有地與任何特定電腦或其他設備相關聯。根據本文教示多種一般用途系統可與程式一起使用,或其可證明便於建構一較專用設備來執行所描述操作。用於多種此等系統之所需要結構將自下文描述顯而易見。另外,並未參考任何特定程式化語言而描述本發明。將瞭解,多種程式設計語言可用於實施如本文中所描述的本發明之教示。
前述論述僅描述本發明之一些例示性實施例。熟習此項技術者將自此論述、附圖及申請專利範圍容易地認識到,可在不背離本發明之精神及範疇的情況下進行各種修改。
400A‧‧‧中央處理單元(CPU)核心執行時間軸/中央處理單元(CPU)核心
400B‧‧‧中央處理單元(CPU)核心執行時間軸/中央處理單元(CPU)核心
400C‧‧‧中央處理單元(CPU)核心執行時間軸/中央處理單元(CPU)核心
400D‧‧‧中央處理單元(CPU)核心執行時間軸/中央處理單元(CPU)核心
402A‧‧‧視訊任務
402B‧‧‧備份任務/低服務品質(QoS)任務
402C‧‧‧搜尋索引任務/低服務品質(QoS)任務
404A‧‧‧重疊選擇性強迫閒置時間/時間段
404B‧‧‧重疊選擇性強迫閒置時間
408‧‧‧時間段/正常閒置

Claims (19)

  1. 一種具有可執行指令之非暫時性機器可讀媒體,該等可執行指令使一或多個處理單元執行用以管理一裝置之一熱分佈的一方法,該方法包含:至少基於該裝置之溫度而監視該裝置之該熱分佈之熱等級,其中該裝置正執行利用該裝置之一中央處理單元(CPU)的複數個任務且該複數個任務包括一高QoS任務及一低QoS任務;若該裝置之該熱等級超過一第一熱臨限值,則進行以下操作:增加用於該低QoS任務之一第一CPU節流,及維持用於該高QoS任務之一第二CPU節流;藉由在一執行窗期間選擇性地強迫該低QoS任務之一閒置而利用該CPU之一第一處理核心使用該第一CPU節流執行該低QoS任務,且在選擇性強迫閒置期間將該第一處理核心置於一低電力狀態中;及利用該CPU之一第二處理核心使用該第二CPU節流執行該高QoS任務。
  2. 如請求項1之非暫時性機器可讀媒體,其中一CPU節流設定在一任務由該CPU執行時用於該任務之選擇性強迫閒置的量。
  3. 如請求項2之非暫時性機器可讀媒體,其中一選擇性強迫閒置為在該執行窗期間之一任務不被執行所持續的一時間量。
  4. 如請求項1之非暫時性機器可讀媒體,其中該第一CPU節流小於100%,且該第二CPU節流為0%。
  5. 如請求項1之非暫時性機器可讀媒體,若該裝置之該熱等級超過一第二熱臨限值,則進行以下操作: 進一步增加該第一CPU節流;及增加該第二CPU節流,其中該第二CPU節流小於該第一CPU節流。
  6. 如請求項5之非暫時性機器可讀媒體,若該熱等級下降至低於該第二熱臨限值,則進行以下操作:將該第一CPU節流及該第二CPU節流還原至先前值。
  7. 如請求項1之非暫時性機器可讀媒體,其中該熱等級係進一步基於一可聽式風扇雜訊。
  8. 如請求項1之非暫時性機器可讀媒體,其中該高QoS任務為前景任務且該低QoS為一批次任務。
  9. 如請求項1之非暫時性機器可讀媒體,其中該熱等級之該監視包含:記錄該裝置溫度。
  10. 如請求項5之非暫時性機器可讀媒體,其中該方法進一步包含:若該裝置之該熱等級超過該第一熱臨限值,增加用於另一QoS任務之一第三CPU節流,且該第三CPU節流係不同於該第一CPU節流;及藉由在該執行窗期間選擇性地強迫另一低QoS任務之一閒置以及在該選擇性地強迫閒置期間將該第一處理核心置於一低電力狀態;而利用該CPU之該第一處理核心來使用該第三CPU節流,俾執行該另一低QoS任務。
  11. 一種具有可執行指令之非暫時性機器可讀媒體,該等可執行指令使一或多個處理單元執行用以管理一裝置之一熱分佈的一方法,該方法包含:監視該裝置之該熱分佈之熱等級,其中該裝置正執行利用該裝置之複數個處理核心的複數個任務且該複數個任務包括多個 低QoS任務;在一執行窗內排程該複數個處理核心上之該複數個任務,其中該多個低QoS任務中之每一者在該執行窗期間經選擇性地強迫閒置且該多個低QoS任務之強迫閒置時間重疊;及執行該複數個任務。
  12. 如請求項11之非暫時性機器可讀媒體,其中該執行窗為該複數個任務經排程用於在該複數個處理核心上執行所在的一時間段。
  13. 如請求項11之非暫時性機器可讀媒體,其中用於該複數個任務中之一者的一選擇性強迫閒置為在該執行窗期間之一時間量,在該時間量時該任務不被執行。
  14. 如請求項11之非暫時性機器可讀媒體,其中該排程進一步包含:重疊用於該多個低QoS任務中之一者的該選擇性強迫閒置與該多個低QoS任務中之另一者。
  15. 如請求項14之非暫時性機器可讀媒體,其中該多個低QoS任務中之每一者在該執行窗中之一相同點處經選擇性地強迫閒置。
  16. 一種用以管理一裝置之一熱分佈的方法,該方法包含:至少基於該裝置之溫度而監視該裝置之該熱分佈之熱等級,其中該裝置正執行利用該裝置之一中央處理單元(CPU)的複數個任務且該複數個任務包括一高QoS任務及一低QoS任務;若該裝置之該熱等級超過一第一熱臨限值,則進行以下操作:增加用於該低QoS任務之一第一CPU節流,及維持用於該高QoS任務之一第二CPU節流;藉由在一執行窗期間選擇性地強迫該低QoS任務之一閒置而利用該CPU之一第一處理核心使用該第一CPU節流執行該低QoS任務且在選擇性強迫閒置期間將該第一處理核心置於一低電力狀 態中;及利用該CPU之一第二處理核心使用該第二CPU節流執行該高QoS任務。
  17. 如請求項16之方法,其中一CPU節流設定在一任務由該CPU執行時用於該任務之選擇性強迫閒置的量。
  18. 如請求項17之方法,其中一選擇性強迫閒置為在該執行窗期間之一任務不被執行所持續的一時間量。
  19. 一種用以管理一裝置之一熱分佈的方法,該方法包含:監視該裝置之該熱分佈之熱等級,其中該裝置正執行利用該裝置之複數個處理核心的複數個任務且該複數個任務包括多個低QoS任務;在一執行窗內排程該複數個處理核心上之該複數個任務,其中該多個低QoS任務中之每一者在該執行窗期間經選擇性地強迫閒置且該多個低QoS任務之強迫閒置時間重疊;及執行該複數個任務。
TW104116710A 2014-05-30 2015-05-25 使用選擇性任務調變之熱減輕 TWI553551B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462006004P 2014-05-30 2014-05-30
US14/503,318 US10203746B2 (en) 2014-05-30 2014-09-30 Thermal mitigation using selective task modulation

Publications (2)

Publication Number Publication Date
TW201602908A TW201602908A (zh) 2016-01-16
TWI553551B true TWI553551B (zh) 2016-10-11

Family

ID=53267626

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104116710A TWI553551B (zh) 2014-05-30 2015-05-25 使用選擇性任務調變之熱減輕

Country Status (3)

Country Link
US (1) US10203746B2 (zh)
TW (1) TWI553551B (zh)
WO (1) WO2015183528A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095286B2 (en) 2014-05-30 2018-10-09 Apple Inc. Thermally adaptive quality-of-service
US10203746B2 (en) 2014-05-30 2019-02-12 Apple Inc. Thermal mitigation using selective task modulation
KR102375925B1 (ko) * 2015-08-31 2022-03-17 삼성전자주식회사 Cpu의 작동 방법과 상기 cpu를 포함하는 시스템의 작동 방법
US10579125B2 (en) * 2016-02-27 2020-03-03 Intel Corporation Processors, methods, and systems to adjust maximum clock frequencies based on instruction type
US10133610B2 (en) * 2016-08-16 2018-11-20 International Business Machines Corporation System, method and recording medium for temperature-aware task scheduling
US9753773B1 (en) 2016-10-19 2017-09-05 International Business Machines Corporation Performance-based multi-mode task dispatching in a multi-processor core system for extreme temperature avoidance
US9747139B1 (en) 2016-10-19 2017-08-29 International Business Machines Corporation Performance-based multi-mode task dispatching in a multi-processor core system for high temperature avoidance
US10591965B2 (en) * 2017-01-20 2020-03-17 Qualcomm Incorporated System and method for context-aware thermal management and workload scheduling in a portable computing device
CN108510675B (zh) * 2018-03-29 2021-01-22 京东方科技集团股份有限公司 商品存放方法、购物车、计算机可读存储介质
US11314558B2 (en) 2019-07-23 2022-04-26 Netapp, Inc. Methods for dynamic throttling to satisfy minimum throughput service level objectives and devices thereof
EP4191380A4 (en) * 2021-01-13 2024-03-06 Samsung Electronics Co., Ltd. ELECTRONIC DEVICE AND USER ACTIVITY BASED HEATING CONTROL METHOD IN AN ELECTRONIC DEVICE
WO2022271606A1 (en) * 2021-06-22 2022-12-29 Microsoft Technology Licensing, Llc Power budget management using quality of service (qos)
US11940860B2 (en) 2021-06-22 2024-03-26 Microsoft Technology Licensing, Llc. Power budget management using quality of service (QoS)
US20230367377A1 (en) * 2022-05-10 2023-11-16 Western Digital Technologies, Inc. Solid-state device with multi-tier extreme thermal throttling

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128100A1 (en) * 2002-12-31 2004-07-01 Efraim Rotem Method and apparatus for thermal relief for critical tasks in multiple resources environment
TW201009380A (en) * 2008-06-13 2010-03-01 Qualcomm Inc Optimizing battery life and network resources during position location tracking scenario
US20100169227A1 (en) * 2008-12-31 2010-07-01 International Business Machines Corporation ENERGY MANAGEMENT AND QUALITY OF SERVICE (QoS)
US20130037535A1 (en) * 2010-06-10 2013-02-14 Panasonic Corporation Induction cooker

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623647A (en) 1995-03-07 1997-04-22 Intel Corporation Application specific clock throttling
US7345671B2 (en) 2001-10-22 2008-03-18 Apple Inc. Method and apparatus for use of rotational user inputs
JP3902967B2 (ja) 2002-03-15 2007-04-11 キヤノン株式会社 画像処理装置、画像処理方法、プログラムおよび記憶媒体
JPWO2003083693A1 (ja) 2002-04-03 2005-08-04 富士通株式会社 分散処理システムにおけるタスクスケジューリング装置
US7734439B2 (en) 2002-06-24 2010-06-08 Mattson Technology, Inc. System and process for calibrating pyrometers in thermal processing chambers
US7627343B2 (en) 2003-04-25 2009-12-01 Apple Inc. Media player system
US7281145B2 (en) * 2004-06-24 2007-10-09 International Business Machiness Corporation Method for managing resources in a CPU by allocating a specified percentage of CPU resources to high priority applications
US9063785B2 (en) 2004-11-03 2015-06-23 Intel Corporation Temperature-based thread scheduling
US7454631B1 (en) 2005-03-11 2008-11-18 Sun Microsystems, Inc. Method and apparatus for controlling power consumption in multiprocessor chip
US7805706B1 (en) * 2005-06-21 2010-09-28 Unisys Corporation Process for optimizing software components for an enterprise resource planning (ERP) application SAP on multiprocessor servers
US7562234B2 (en) 2005-08-25 2009-07-14 Apple Inc. Methods and apparatuses for dynamic power control
US7386414B2 (en) 2005-11-29 2008-06-10 International Business Machines Corporation Generation of hardware thermal profiles for a set of processors
US8032889B2 (en) 2006-04-05 2011-10-04 Maxwell Technologies, Inc. Methods and apparatus for managing and controlling power consumption and heat generation in computer systems
WO2008126187A1 (ja) * 2007-03-16 2008-10-23 Fujitsu Limited Webサービス制御プログラム、Webサービス制御装置、Webサービス制御方法、中継プログラム
US8799902B2 (en) 2007-04-09 2014-08-05 Intel Corporation Priority based throttling for power/performance quality of service
US7886172B2 (en) 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
US7992017B2 (en) 2007-09-11 2011-08-02 Intel Corporation Methods and apparatuses for reducing step loads of processors
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US7949889B2 (en) 2008-01-07 2011-05-24 Apple Inc. Forced idle of a data processing system
US8819686B2 (en) 2009-07-23 2014-08-26 Empire Technology Development Llc Scheduling threads on different processor cores based on memory temperature
US8677361B2 (en) 2010-09-30 2014-03-18 International Business Machines Corporation Scheduling threads based on an actual power consumption and a predicted new power consumption
US8942857B2 (en) * 2011-04-22 2015-01-27 Qualcomm Incorporated Method and system for thermal load management in a portable computing device
US8694719B2 (en) * 2011-06-24 2014-04-08 Sandisk Technologies Inc. Controller, storage device, and method for power throttling memory operations
US8930724B2 (en) 2011-08-17 2015-01-06 Broadcom Corporation Semiconductor device predictive dynamic thermal management
US8621178B1 (en) * 2011-09-22 2013-12-31 Emc Corporation Techniques for data storage array virtualization
US9442773B2 (en) 2011-11-21 2016-09-13 Qualcomm Incorporated Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip
US20130155081A1 (en) * 2011-12-15 2013-06-20 Ati Technologies Ulc Power management in multiple processor system
US8732291B2 (en) * 2012-01-13 2014-05-20 Accenture Global Services Limited Performance interference model for managing consolidated workloads in QOS-aware clouds
US8856567B2 (en) 2012-05-10 2014-10-07 International Business Machines Corporation Management of thermal condition in a data processing system by dynamic management of thermal loads
US9235665B2 (en) 2012-10-10 2016-01-12 Sandisk Technologies Inc. System, method and apparatus for handling power limit restrictions in flash memory devices
US8824751B2 (en) * 2013-01-07 2014-09-02 MTN Satellite Communications Digital photograph group editing and access
US9494998B2 (en) 2013-12-17 2016-11-15 Intel Corporation Rescheduling workloads to enforce and maintain a duty cycle
US9530174B2 (en) 2014-05-30 2016-12-27 Apple Inc. Selective GPU throttling
US9436628B2 (en) 2014-05-30 2016-09-06 Apple Inc. Thermal mitigation using selective I/O throttling
US10203746B2 (en) 2014-05-30 2019-02-12 Apple Inc. Thermal mitigation using selective task modulation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128100A1 (en) * 2002-12-31 2004-07-01 Efraim Rotem Method and apparatus for thermal relief for critical tasks in multiple resources environment
TW201009380A (en) * 2008-06-13 2010-03-01 Qualcomm Inc Optimizing battery life and network resources during position location tracking scenario
US20100169227A1 (en) * 2008-12-31 2010-07-01 International Business Machines Corporation ENERGY MANAGEMENT AND QUALITY OF SERVICE (QoS)
US20130037535A1 (en) * 2010-06-10 2013-02-14 Panasonic Corporation Induction cooker

Also Published As

Publication number Publication date
TW201602908A (zh) 2016-01-16
US10203746B2 (en) 2019-02-12
US20150346809A1 (en) 2015-12-03
WO2015183528A1 (en) 2015-12-03

Similar Documents

Publication Publication Date Title
TWI592802B (zh) 熱調適服務品質等級
TWI553551B (zh) 使用選擇性任務調變之熱減輕
TWI547811B (zh) 選擇性圖形處理單元(gpu)節流
JP6005895B1 (ja) ワット当たりの最適パフォーマンスのためのインテリジェントマルチコア制御
US9690685B2 (en) Performance management based on resource consumption
EP3535641B1 (en) Thread importance based processor core partitioning
US8943340B2 (en) Controlling a turbo mode frequency of a processor
EP2664214B1 (en) Method for multipath scheduling based on a lookup table
US9904575B2 (en) System and method for selective timer rate limiting
KR20170062493A (ko) 이종 스레드 스케줄링
TWI566181B (zh) 用以聯合複數個計時器之一執行的非暫時性機器可讀媒體、電腦實施方法及器件
US20120254822A1 (en) Processing optimization load adjustment
JP2020513603A (ja) 動的な外部電力資源選択
TW201447544A (zh) 用於可攜式計算設備中的電壓模式的溫度激勵式選擇的系統和方法
CN110928587A (zh) 控制方法和控制装置