TWI825538B - 任務排程方法、遷移方法及系統 - Google Patents

任務排程方法、遷移方法及系統 Download PDF

Info

Publication number
TWI825538B
TWI825538B TW110148827A TW110148827A TWI825538B TW I825538 B TWI825538 B TW I825538B TW 110148827 A TW110148827 A TW 110148827A TW 110148827 A TW110148827 A TW 110148827A TW I825538 B TWI825538 B TW I825538B
Authority
TW
Taiwan
Prior art keywords
processor
temperature
processors
thermal
thermal conditions
Prior art date
Application number
TW110148827A
Other languages
English (en)
Other versions
TW202238381A (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 TW202238381A publication Critical patent/TW202238381A/zh
Application granted granted Critical
Publication of TWI825538B publication Critical patent/TWI825538B/zh

Links

Classifications

    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Control Of Temperature (AREA)
  • Feedback Control In General (AREA)

Abstract

一種任務排程方法,包括:獲得複數個處理器的溫度測量值;確定每一個處理器的一個或複數個熱狀況,該一個或複數個熱狀況包括該每一個處理器的當前溫度、歷史溫度、預測溫度和熱餘量;至少部分地基於該每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器;和分配由該目標處理器執行的任務。

Description

任務排程方法、遷移方法及系統
本發明的實施例涉及基於多處理器計算系統中每一個處理器的溫度信息的任務排程(task scheduling)。
在多處理器系統中,任務排程器(task scheduler)將任務分配給諸如處理器的系統資源以提高效率、性能和資源利用率。傳統的任務排程器通常使用負載平衡算法(load-balancing algorithm)來確定處理某一任務的處理器,以便工作負載可以更平均地(evenly)分佈在處理器之間。
然而,負載平衡之外的因素也可能對多處理器系統的性能具有顯著地影響。例如,高功耗(power consumption)會縮短便攜式設備的電池壽命並產生過多熱量。另一種傳統的任務排程器旨在優化用於進行任務排程決策的功耗。這樣的排程器可以將任務分配給系統中的一些處理器,並使系統中的其他處理器保持空閒(idle)以節省功率。將任務佈置聚合在一些處理器上與通過在處理器之間分散工作負載來提高性能的負載平衡技術相反。
最先進的設備利用節流技術(throttling technique)來管理處理器的功率和性能。這些設備實現了動態電壓和頻率縮放(Dynamic Voltage and Frequency Scaling,DVFS),這是一種在運行時(runtime)自動調整處理器的工作頻率和電壓的技術。降低處理器的工作頻率和電壓可以降低處理器的功耗,但會降低處理器的計算性能。換言之,增加處理器的工作頻率和電壓可以提高處理器的計算性能,但會增加處理器的功耗和發熱量。產生過多的熱量會降低處理器的可靠性,並可能導致硬件故障。
因此,需要針對影響多處理器系統的功率、可靠性和性能的許多因素來改進運行時的系統管理。
本發明提供了任務排程方法、遷移方法及系統,可提高系統性能和可靠性。
本發明提供的一種任務排程方法可包括:獲得複數個處理器的溫度測量值;確定每一個處理器的一個或複數個熱狀況,該一個或複數個熱狀況包括該每一個處理器的當前溫度、歷史溫度、預測溫度和熱餘量;至少部分地基於該每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器;和分配由該目標處理器執行的任務。
本發明提供的一種任務遷移的方法可包括:獲得多處理器系統中複數個處理器的溫度測量值;通過將源處理器的一個或複數個熱狀況與相應閾值進行比較來檢測該源處理器滿足任務遷移標準,該一個或複數個熱狀況包括當前溫度、歷史溫度、預測溫度和熱餘量;至少部分地基於該複數個處理器中的每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器;和將任務從該源處理器遷移到該目標處理器進行執行。
本發明提供的一種系統可包括:複數個處理器;複數個溫度傳感器以產生溫度測量值;確定該複數個處理器中的每一個處理器的一個或複數個熱狀況的電路,該一個或複數個熱狀況包括該每一個處理器的當前溫度、歷史溫度、預測溫度和熱餘量;和存儲指令的記憶體,當該指令被該系統執行時,使該系統執行排程器的操作,其中該排程器操作為:至少部分地基於該每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器;和分配由該目標處理器執行的任務。
本發明提供的另一種系統可包括:複數個處理器;複數個溫度傳感器以產生溫度測量值;通過將源處理器的一個或複數個熱狀況與相應閾值進行比較來檢測該源處理器滿足任務遷移標準的電路,該一個或複數個熱狀況包括當前溫度、歷史溫度、預測溫度和熱餘量;和存儲指令的記憶體,當該指令被該系統執行時,使該系統執行排程器的操作,其中該排程器操作為:至少部分地基於該複數個處理器中的每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器;和將任務從該源處理器遷移到該目標處理器進行執行。
綜上所述,本發明實施例提供的方法及系統可平衡複數個處理器的熱狀況,由此可提供系統的性能和可靠性。
在說明書及申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬技術領域具有通常知識者應可理解,硬體製造商可能會用不同的名詞來稱呼同一個元件。本說明書及申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及申請專利範圍當中所提及的“包含”及“包括”為一開放式的用語,故應解釋成“包含但不限定於”。“大體上”或“大約”是指在可接受的誤差範圍內,所屬技術領域具有通常知識者能夠在一定誤差範圍內解決所述技術問題,基本達到所述技術效果。此外,“耦接”或“耦合”一詞在此包含任何直接及間接的電性連接手段。因此,若文中描述一第一裝置耦接在一第二裝置,則代表該第一裝置可直接電性連接於該第二裝置,或通過其它裝置或連接手段間接地電性連接至該第二裝置。以下所述為實施本發明的較佳方式,目的在於說明本發明的精神而非用以限定本發明的保護範圍,本發明的保護範圍當視之後附的申請專利範圍所界定者為准。
接下面的描述為本發明預期的最優實施例。這些描述用於闡述本發明的大致原則而不應用於限制本發明。本發明的保護範圍應在參考本發明的申請專利範圍的基礎上進行認定。
本發明實施例提供了一種用於多處理器系統執行熱感知任務排程(thermal-aware task scheduling)的運行時排程(runtime scheduling)機制。熱感知任務排程旨在平衡複數個處理器的熱狀況(thermal condition),其中熱狀況包括但不限於每一個處理器的當前溫度、歷史溫度、預測溫度和熱餘量(thermal headroom)。熱感知任務排程可以防止熱點(hotspot),從而減少洩漏功率,降低冷卻成本,提高系統性能和可靠性。
本文描述的系統中的複數個處理器可能由於製造工藝的變化而具有不同的熱電阻。因此,即使這些處理器具有相同的負載,它們也可能具有不同的溫度。
本發明描述的多處理器系統包括排程器,其可以是操作系統(Operating System,OS)中的軟件模塊。排程器根據處理器池中每一個處理器的熱狀況,從處理器池中選擇一個目標處理器來執行任務。處理器池可以包括所有激活的(active)處理器;或者,處理器池可以包括所有被上電的(powered on)處理器。被排程的將被執行的任務可能是新創建的任務、從源處理器遷移出的任務、剛剛醒來的任務、由於負載均衡而重新被分配的任務等。被排程器選擇的目標處理器可能有以下一種或複數種熱狀況,包括但不限於:當前溫度低、歷史溫度低、預測溫度低、熱餘量高等。當將目標處理器的熱狀況與處理器池中其他處理器的熱狀況進行比較時,使用相對性的術語“低”和“高”。
在一個實施例中,排程器還執行從源處理器到目標處理器的任務遷移(task migration)。當源處理器的熱狀況滿足以下標準中的至少一個時,排程器可以調用任務遷移,這些標準包括但不限於:處理器的當前運行時溫度(runtime temperature)超過第一閾值,處理器的歷史溫度超過第二閾值,處理器的預測溫度超過第三閾值,並且處理器的熱餘量低於第四閾值。作為任務遷移的替代和/或補充,當源處理器的熱狀況滿足上述標準中的至少一個時,系統中的動態電壓頻率縮放(DVFS)控制器可以降低源處理器的工作頻率和電壓。
在一些系統中,“處理器”可以是中央處理單元(CPU)、數位信號處理器(DSP)、多媒體處理器、圖形處理單元(GPU)、向量處理器或其他通用或專用處理電路。在某些系統中,處理器可能與“核”(core)或“處理器核”相同,而在其他一些系統中,處理器可能包括複數個核。可以理解,這裡描述的運行時排程機制適用於任何類型的處理器。
本文描述的系統可以在電子設備中實現,例如智能手機、平板電腦、可穿戴設備、遊戲設備、多媒體設備、服務器、桌面設備等。即,使用所公開的任務排程方法的任何電子設備均屬於本發明的範圍。
圖1圖示了根據一個實施例的多處理器系統(“系統100”)的示例。系統100包括計算電路131,計算電路131進一步包括複數個處理器130(例如,P1、P2、...、Pn)。系統100也可以包括其他附加的電路,但它們與本發明沒有密切關係。複數個處理器130可以具有相同的處理器類型。當處理器不僅具有相同的指令集架構(Instruction Set Architecture,ISA),並且具有相同的微架構(microarchitecture),即具有相同的硬件實現,例如相同數量的寄存器、相同數量的管線級數(pipeline stage)、相同的分支預測器、相同的緩存電路設計等,則它們具有相同的處理器類型。具有相同微架構的複數個處理器提供相同或基本相同的計算性能(例如,以每秒百萬條指令(Million Instructions Per Second,MIPS)衡量)和功率效率(例如,以功耗衡量)。然而,由於製造工藝的差異,具有相同微架構的處理器可能具有不同的熱電阻。因此,具有相同處理器類型的每一個處理器的相同負載可能使這些處理器之間具有不同的溫度。可選的,處理器130可以具有不同處理器類型,但這些處理器類型具有相同ISA,從而可以將任務分配給任何的處理器130來執行。
在一個實施例中,系統100包括分佈在計算電路131中以及遍及系統100的複數個溫度傳感器180(每一個被表示為S),以測量每一個處理器130的溫度和環境溫度。系統100中的硬件佈局可能導致環境溫度在系統100中分佈不均。此外,第一處理器130的溫度可能對與第一處理器130物理相鄰的第二處理器130的環境溫度有影響。
每一個處理器 130 從電源171(例如,電壓調節器)接收電源和從時鐘電路 172接收時鐘信號。在一個實施例中,複數個處理器 130 可以集成在單個集成電路晶粒(die)上,或分散在多電路封裝的各個獨立的晶粒上。在一個實施例中,系統100可以集成為片上系統(System-On-a-Chip,SOC)。
系統100包括記憶體120,其可以包括片上(on-chip)和片外(off-chip)記憶體設備,例如動態隨機存取記憶體(DRAM)、靜態RAM(SRAM)、閃存和其他易失性或非易失性記憶體設備。在一個實施例中,系統100連接到網絡(例如,個域網(personal area network)、局域網(local area network)、廣域網(wide area network)等)。應當理解,圖1的實施例是為了說明的目的而被簡化的。具體實現中,可能包括額外的硬件組件。
在一個實施例中,系統100包括動態電壓頻率縮放(DVFS)控制器170以控制激活的處理器130的操作點(operating point)(例如,頻率和電壓)。術語“激活的”在此等同於“被上電的”。DVFS控制器170可以控制時鐘電路172單獨增加或降低每一個處理器130的時鐘頻率,並且可以控制電源171單獨增加或降低提供給每一個處理器130的電壓。
在一個實施例中,系統100包括監測模塊110以收集和分析測量值和傳感器資料,例如傳感器180的溫度讀數。監測模塊110還與通過硬件和/或軟件實施的測量器、監測器和/或計數器通信,以監控每一個處理器130的操作(operation)和狀態(status)。例如,監控模塊110可以收集每一個處理器130運行時的當前溫度、環境溫度、功耗、工作負載、在處理器上執行的操作、執行時間、開機或關機狀態、是否是激活的或空閒的、工作頻率和電壓等。監測模塊110分析收集的信息以獲得或估計每一個處理器130的熱狀況。
在一個實施例中,監測模塊110包括複數個熱信息分析器(Thermal Information Analyzer,TIA)150,也稱為分析器150。每一個分析器150(例如,P1 的分析器_P1,P2 的分析器_P2,......,Pn 的分析器_Pn)分析由監測模塊110收集的關於相應處理器130的信息。每一個分析器150的輸出指示相應處理器130的熱狀況,且所述輸出並被提供給排程器125用於任務排程。每一個分析器 150 的輸出也可以被提供給DVFS控制器170,用於調整相應處理器130的操作點(即電壓和頻率)。雖然分析器150被示為是與排程器125分離的模塊,但在一些實施例中,分析器的一部分功能可以內置到排程器125中。
DVFS控制器170、監測模塊110和分析器150中的一個或複數個可以在硬件電路、由硬件電路執行的軟件、或硬件和軟件的組合中實現。硬件電路可以是專用或通用硬件。軟件可以存儲在任何非暫時性計算機可讀介質上以供系統100或由系統100執行的方法使用。在一個實施例中,監測模塊110可以是執行軟件的協同處理電路(co-processing circuit)。或者,該軟件可由一個或複數個計算電路131執行。
在一個實施例中,排程器125基於處理器130的運行時熱狀況向處理器130分派任務和從處理器130移除任務。在該實施例中,排程器125可以是存儲在非暫時性計算機可讀介質上的用於支持多處理器任務排程的OS的一部分。排程器125可以在系統100中的一個或複數個處理器130上運行。在圖1的示例中,記憶體120可以包括用於存儲指令的非暫時性計算機可讀介質,當所述存儲指令由系統100執行時,基於處理器130的運行時熱狀況執行排程器125的操作。雖然排程器125被示為是記憶體120中的一個模塊,但應理解,在運行時,複數個處理器130中的一個或複數個可將排程器125加載到其本地(例如,處理器上)的記憶體中以進行執行。
在一個實施例中,排程器125根據熱感知策略執行任務排程。根據熱感知策略,基於每一個處理器130的熱狀況選擇用於執行任務的目標處理器和從源處理器中遷移任務。當每次有新任務、喚醒任務、或其他需要被排程但尚未被排程的任務時,由排程器125負責這些任務的分配。排程器125基於複數個處理器130的熱狀況確定將任務分配給哪個處理器。排程器125還負責任務遷移。在一些實施例中,當處理器的熱狀況滿足標準時(例如,當超過閾值溫度時)執行任務遷移。當滿足這樣的標準時,排程器125將一個或複數個任務從處理器轉移到目標處理器,其中目標處理器基於處理器130的熱狀況被選擇。
圖2是示出根據一個實施例的用於分析處理器的熱信息的分析器150的框圖。在圖2中,示出分析器_P1的功能單元作為一個示例。可以理解的是,其他分析器150(分析器_P2,...,分析器_Pn)具有與分析器_P1相同的功能單元和相​​同的功能。在一個實施例中,每一個分析器150包括熱歷史模塊210、熱預測模塊220和熱資料收集模塊230。每一個處理器的熱資料收集模塊230的輸出被提供給排程器125和DVFS控制器170。可以理解,以下關於P1的分析器150的描述適用於系統100中的其他處理器130。
圖3是示出根據一個實施例的熱歷史模塊210的框圖。參考圖2和圖3,熱歷史模塊210以規則的時間間隔從傳感器180接收處理器P1的溫度測量值。接收的溫度測量值形成時間序列T(i),其中i是表示時間的運行索引(running index)。熱歷史模塊210接收T(i)作為輸入並輸出歷史溫度的時間序列TempH(i)。歷史溫度可以使用P1的加權的過去溫度測量值(weighted past temperature measurements)來計算。
在一個實施例中,熱歷史模塊210可以計算P1的過去溫度值的移動平均值(moving average)。例如,熱歷史模塊210可以對每一個T(i)和W i-1·TempH(i-1)應用數學運算符(表示為fh),其中W i-1是加權因子。在一個實施例中,對於所有 i,權重W i-1均是恆定值W(例如介於 0 和 1 之間的值)。在一個實施例中,將數學運算符fh應用於T(i)和W∙TempH(i-1)之後可能產生(1-W)∙T(i)+ W∙TempH(i-1),它是P1的過去溫度測量值的指數移動平均值(exponential moving average)。在一個實施例中,熱歷史模塊210可以將滑動窗口應用於P1的過去溫度測量值,因此比預定時間段早的溫度測量值將被丟棄。
圖4是說明根據一個實施例的熱預測模塊220的框圖。參考圖2和圖4,熱預測模塊220將運算符fp應用於輸入以為P1生成預測溫度值的時間序列TempP(i),其中i表示時間的運行索引。在一個實施例中,熱預測模塊220可以基於P1的過去溫度的測量值和當前溫度的測量值計算P1的預測溫度作為溫度趨勢(例如,溫度升高、降低或沒有變化)。P1的溫度趨勢的計算可以進一步基於P1的環境溫度,P1上正在執行的操作,以及熱操作因素(諸如功耗與執行的操作和工作負載之間的關係,功耗與溫度之間的關係)等。可以針對一個或複數個下一時間間隔計算溫度趨勢。當為接下來的N個時間間隔計算溫度趨勢時,熱預測模塊220可以從接下來的N個時間間隔的溫度趨勢中選擇或識別一個溫度值作為P1的預測溫度。
在一個實施例中,熱預測模塊220可以基於P1的負載或由負載引起的功耗來計算P1的預測溫度。
再次參考圖2,熱資料收集模塊230可以接收P1的一個或複數個熱狀況(P1的當前溫度讀數、P1的歷史溫度TempH(i)和預測溫度TempP(i))作為輸入。熱資料收集模塊230還可接收P1的熱餘量作為輸入。熱餘量指示P1的當前溫度或當前功耗與允許的溫度或允許的功耗的接近程度(closeness),其中允許的溫度和允許的功耗是P1能安全運行的上限(upper limit)。
關於P1的功耗的熱餘量,可以通過從P1允許的功耗中減去當前功耗來計算。當前功耗可以通過功率計或P1的負載獲得。關於P1的溫度的熱餘量,可以通過從P1的允許的溫度中減去P1的當前溫度來計算。
熱資料收集模塊230可以收集P1的熱狀況(例如,熱餘量、處理器的當前、歷史和預測溫度等)中的一個或複數個並且將收集的資料輸出到排程器125用於任務分配以及輸出到DVFS控制器170用於電壓和頻率調整。在一個實施例中,系統100(圖1)可以被配置為在運行時僅測量熱狀況之一(例如,每一個處理器的當前溫度),並且每一個處理器的熱資料收集模塊230收集測量的熱狀況並輸出到排程器125和DVFS控制器170。或者,系統100可以被配置為在運行時測量多於一個的或所有的熱狀況,並且每一個處理器的熱資料收集模塊230收集那些測量的熱狀況並輸出到排程器125和DVFS控制器170。
基於從所有處理器接收的熱狀況,排程器125生成優先級指示,該優先級指示指示了進行任務分配的目標處理器。例如,優先級指示可以指示具有最低當前、歷史或預測溫度的處理器。因此,排程器125可以選擇具有最低當前、歷史或預測溫度並且在允許的溫度和功耗內運行的處理器130作為用於任務排程的目標處理器。或者,排程器125可以生成優先級指示,該優先級指示指示具有兩個或更多個個測量的熱狀況的組合的處理器。可以在每一個時間間隔更新優先級指示。
作為另一示例,排程器125可以生成優先級指示,該優先權指示指示具有最大熱餘量的處理器。排程器125根據優先級指示選擇目標處理器來分配任務。目標處理器的選擇可能基於其他因素,例如任務佈置限制等。在某些情況下,可以選擇具有較高溫度和較大熱餘量的處理器而不是具有較低溫度和較小熱餘量的另一處理器作為排程目標處理器,其中這裡所述的溫度可以是處理器的當前溫度、歷史溫度或預測溫度。
在一個實施例中,每一個分析器150還可以包括閾值比較器500。圖5是示出根據一個實施例的閾值比較器500的框圖。P1的閾值比較器500負責識別P1滿足任務遷移標準。例如,當 P1 的當前、歷史或預測溫度分別超過 Th1、Th2 和 Th3 時,或者當 P1 的熱餘量低於 Th4 時,P1 被識別為滿足任務遷移標準。這裡,Th1、Th2、Th3和Th4是閾值。這些閾值中的一些閾值可以彼此相等。
閾值比較器500通過將P1的一個或複數個熱狀況與對應的閾值進行比較來檢測P1是否滿足任務遷移標準,其中熱狀況包括P1的當前溫度、歷史溫度、預測溫度和熱餘量。當複數個熱狀況中任意一個達到(或衝破)相應的閾值時,P1被識別為源處理器並且排程器125被通知需將在P1上運行的一個或複數個任務遷移到目標處理器執行。
在一個實施例中,可以由排程器125基於前面描述的優先級指示來選擇目標處理器。在另一個實施例中,可以通知DVFS控制器170降低P1的工作頻率和電壓。當P1不再滿足任何任務遷移標準時,DVFS控制器170可以提高P1的電壓和頻率。例如,當 P1 的當前、歷史和預測溫度分別低於Th1、Th2 和Th3,並且當P1的熱餘量超過Th4時,P1被識別為不再滿足任何任務遷移標準。
圖6是圖示根據一個實施例的用於多處理器系統中的熱感知任務排程的方法600的流程圖。方法600可由圖1的多處理器系統100執行。
方法600開始於步驟610,也即當系統獲得系統中複數個處理器的溫度測量值時。系統在步驟620確定每一個處理器的一個或複數個熱狀況,其中熱狀況包括處理器的當前溫度、歷史溫度、預測溫度和熱餘量。系統在步驟630至少部分地基於每一個處理器的一個或複數個熱狀況來識別處理器中的目標處理器。排程器在步驟640分配要由目標處理器執行的任務。
圖7是圖示根據一個實施例的用於多處理器系統中的熱感知任務遷移的方法700的流程圖。方法700可由圖1的多處理器系統100執行。
方法700開始於步驟710,也即當系統獲得系統中複數個處理器的溫度測量值時。系統在步驟720通過將源處理器的一個或複數個熱狀況與對應閾值進行比較來檢測源處理器滿足任務遷移標準。熱狀況包括當前溫度、歷史溫度、預測溫度和熱餘量。系統在步驟730至少部分地基於每一個處理器的一個或複數個熱狀況來識別處理器中的目標處理器。系統在步驟740將任務從源處理器遷移到目標處理器進行執行。
已經參考圖1-5的示例性實施例描述了圖6和7的流程圖的操作。然而,應當理解,圖6和圖7的流程圖的操作可以由圖1-5的實施例以外的本發明的實施例來執行,並且圖1-5的實施例可以執行與參考流程圖討論那些操作不同的操作。雖然圖 6 和 7 的流程圖示出了由本發明的某些實施例執行的特定的操作順序,但應當理解,這種順序僅是示例性的(例如,替代實施例可以以不同的順序執行這些操作、組合某些操作、重疊某些操作等)。
本發明已經描述了各種功能組件或塊。如所屬技術領域具有通常知識者將理解的,功能塊將優選地通過電路(在一個或複數個處理器和編碼指令的控制下操作的專用電路或通用電路)來實現,這些電路通常將包括複數個電晶體,這些電晶體被配置為根據本發明描述的功能和操作來控制電路的操作。
本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬技術領域具有通常知識者,在不脫離本發明的精神和範圍內,當可做些許的更動與潤飾,因此本發明的保護範圍當視申請專利範圍所界定者為准。
171:電源 172:時鐘電路 170:動態電壓頻率縮放控制器 110:監測模塊 130,P1,P2,Pn:處理器 180,S:溫度傳感器 131:計算電路 150:分析器 100:系統 120:記憶體 125:排程器 230:熱資料收集模塊 210:熱歷史模塊 220:熱預測模塊 500:閾值比較器 600,700:方法 610,620,630,640,710,720,730,740:步驟
圖1圖示了根據一個實施例的多處理器系統。 圖2是示出根據一個實施例的用於分析處理器的熱信息的分析器的框圖。 圖3是示出根據一個實施例的熱歷史模塊的框圖。 圖4是示出根據一個實施例的熱預測模塊的框圖。 圖5是說明根據一個實施例的閾值比較器的框圖。 圖6是圖示根據一個實施例的用於多處理器系統中的熱感知任務排程的方法的流程圖。 圖7是圖示根據一個實施例的用於多處理器系統中的熱感知任務遷移的方法的流程圖。
600:方法
610,620,630,640:步驟

Claims (24)

  1. 一種任務排程方法,包括:獲得複數個處理器的溫度測量值;確定每一個處理器的一個或複數個熱狀況,該一個或複數個熱狀況包括該每一個處理器的當前溫度、歷史溫度、預測溫度和熱餘量;至少部分地基於該每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器;和分配由該目標處理器執行的任務;其中確定每一個處理器的一個或複數個熱狀況包括:對於該每一個處理器,通過從允許的功耗中減去當前功耗來計算該每一個處理器的該熱餘量,或對於該每一個處理器,通過從允許的溫度中減去當前溫度來計算該每一個處理器的該熱餘量;其中至少部分地基於該每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器包括:至少部分地基於該每一個處理器的該熱餘量在該複數個處理器中識別目標處理器。
  2. 如請求項1所述的任務排程方法,其中確定該每一個處理器的該一個或複數個熱狀況包括:對於該每一個處理器,使用該每一個處理器的加權的過去溫度測量值計算該歷史溫度。
  3. 如請求項1所述的任務排程方法,其中確定該每一個處理器的該一個或複數個熱狀況包括:針對該每一個處理器,基於環境溫度、在該每一個處理器上執行的操作以及熱操作因素中至少之一計算該預測溫度。
  4. 如請求項1所述的任務排程方法,其中確定該每一個處理器 的該一個或複數個熱狀況包括:根據該每一個處理器的過去溫度的測量值和當前溫度的測量值,為該每一個處理器計算作為溫度趨勢的該預測溫度。
  5. 如請求項4所述的任務排程方法,還包括:計算一個或複數個下一時間間隔的該溫度趨勢;和從該溫度趨勢中識別一溫度值作為該預測溫度。
  6. 如請求項1所述的任務排程方法,其中確定該每一個處理器的該一個或複數個熱狀況包括:針對該每一個處理器,根據該每一個處理器的負載或負載引起的功耗計算該預測溫度。
  7. 如請求項1所述的任務排程方法,其中確定該每一個處理器的該一個或複數個熱狀況還包括:根據功率計或該每一個處理器的負載,為該每一個處理器獲取當前功耗。
  8. 如請求項1所述的任務排程方法,其中通過排程器從該每一個處理器中收集該一個或複數個熱狀況;和通過該排程器識別該目標處理器。
  9. 如請求項1所述的任務排程方法,還包括:通過將源處理器的該一個或複數個熱狀況與相應閾值進行比較來檢測該源處理器滿足任務遷移標準;和將任務從該源處理器遷移到該目標處理器進行執行。
  10. 如請求項8所述的任務排程方法,還包括:降低該源處理器的工作頻率。
  11. 一種任務遷移的方法,包括:獲得多處理器系統中複數個處理器的溫度測量值; 通過將源處理器的一個或複數個熱狀況與相應閾值進行比較來檢測該源處理器滿足任務遷移標準,該一個或複數個熱狀況包括當前溫度、歷史溫度、預測溫度和熱餘量;至少部分地基於該複數個處理器中的每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器;和將任務從該源處理器遷移到該目標處理器進行執行;其中對於該每一個處理器,通過從允許的功耗中減去當前功耗來計算該每一個處理器的該熱餘量,或對於該每一個處理器,通過從允許的溫度中減去當前溫度來計算該每一個處理器的該熱餘量;其中至少部分地基於該每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器包括:至少部分地基於該每一個處理器的該熱餘量在該複數個處理器中識別目標處理器。
  12. 如請求項11所述的任務遷移的方法,還包括:降低該源處理器的工作頻率。
  13. 如請求項11所述的任務遷移的方法,還包括:對於該每一個處理器,使用該每一個處理器的加權的過去溫度測量值計算該歷史溫度。
  14. 如請求項11所述的任務遷移的方法,還包括:針對該每一個處理器,基於環境溫度、在該每一個處理器上執行的操作以及熱操作因素中至少之一計算該預測溫度。
  15. 如請求項11所述的任務遷移的方法,還包括:根據該每一個處理器的過去溫度的測量值和當前溫度的測量值,為該每一個處理器計算作為溫度趨勢的該預測溫度。
  16. 一種多處理器系統,包括: 複數個處理器;複數個溫度傳感器以產生溫度測量值;確定該複數個處理器中的每一個處理器的一個或複數個熱狀況的電路,該一個或複數個熱狀況包括該每一個處理器的當前溫度、歷史溫度、預測溫度和熱餘量;和存儲指令的記憶體,當該指令被該系統執行時,使該系統執行排程器的操作,其中該排程器操作為:至少部分地基於該每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器;和分配由該目標處理器執行的任務;其中該確定該複數個處理器中的每一個處理器的一個或複數個熱狀況的電路操作為:對於該每一個處理器,通過從允許的功耗中減去當前功耗來計算該每一個處理器的該熱餘量,或對於該每一個處理器,通過從允許的溫度中減去當前溫度來計算該每一個處理器的該熱餘量;其中該排程器在至少部分地基於該每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器時操作為:至少部分地基於該每一個處理器的該熱餘量在該複數個處理器中識別目標處理器。
  17. 如請求項16所述的系統,其中該每一個處理器的該歷史溫度是通過該確定該複數個處理器中的每一個處理器的一個或複數個熱狀況的電路使用該每一個處理器的加權的過去溫度測量值計算。
  18. 如請求項16所述的系統,其中該每一個處理器的該預測溫度是通過該確定該複數個處理器中的每一個處理器的一個或複數個熱狀況的電路基於環境溫度、在該每一個處理器上執行的操作以及熱操作因素中至少之一計算。
  19. 如請求項16所述的系統,其中該每一個處理器的該預測溫度被該確定該複數個處理器中的每一個處理器的一個或複數個熱狀況的電路計算為一溫度趨勢,該溫度趨勢基於該每一個處理器的過去溫度的測量值和當前溫度的測量值。
  20. 一種多處理器系統,包括:複數個處理器;複數個溫度傳感器以產生溫度測量值;通過將源處理器的一個或複數個熱狀況與相應閾值進行比較來檢測該源處理器滿足任務遷移標準的電路,該一個或複數個熱狀況包括當前溫度、歷史溫度、預測溫度和熱餘量;和存儲指令的記憶體,當該指令被該系統執行時,使該系統執行排程器的操作,其中該排程器操作為:至少部分地基於該複數個處理器中的每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器;和將任務從該源處理器遷移到該目標處理器進行執行;其中該系統還包括確定該複數個處理器中的每一個處理器的一個或複數個熱狀況的電路,其中該確定該複數個處理器中的每一個處理器的一個或複數個熱狀況的電路操作為:對於該每一個處理器,通過從允許的功耗中減去當前功耗來計算該每一個處理器的該熱餘量,或對於該每一個處理器,通過從允許的溫度中減去當前溫度來計算該每一個處理器的該熱餘量;其中該排程器在至少部分地基於該每一個處理器的該一個或複數個熱狀況在該複數個處理器中識別目標處理器時操作為:至少部分地基於該每一個處理器的該熱餘量在該複數個處理器中識別目標處理器。
  21. 如請求項20所述的系統,還包括: 動態電壓頻率縮放控制器,用於降低該源處理器的工作頻率。
  22. 如請求項20所述的系統,其中對於該每一個處理器,通過該確定該複數個處理器中的每一個處理器的一個或複數個熱狀況的電路使用該每一個處理器的加權的過去溫度測量值計算該歷史溫度。
  23. 如請求項20所述的系統,其中針對該每一個處理器,該確定該複數個處理器中的每一個處理器的一個或複數個熱狀況的電路基於環境溫度、在該每一個處理器上執行的操作以及熱操作因素中至少之一計算該預測溫度。
  24. 如請求項20所述的系統,其中該確定該複數個處理器中的每一個處理器的一個或複數個熱狀況的電路根據該每一個處理器的過去溫度的測量值和當前溫度的測量值,為該每一個處理器計算作為溫度趨勢的該預測溫度。
TW110148827A 2021-03-19 2021-12-27 任務排程方法、遷移方法及系統 TWI825538B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163200631P 2021-03-19 2021-03-19
US63/200,631 2021-03-19
US17/524,086 2021-11-11
US17/524,086 US20220300324A1 (en) 2021-03-19 2021-11-11 Thermal-aware task scheduling

Publications (2)

Publication Number Publication Date
TW202238381A TW202238381A (zh) 2022-10-01
TWI825538B true TWI825538B (zh) 2023-12-11

Family

ID=83284818

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110148827A TWI825538B (zh) 2021-03-19 2021-12-27 任務排程方法、遷移方法及系統

Country Status (3)

Country Link
US (1) US20220300324A1 (zh)
CN (1) CN115114016A (zh)
TW (1) TWI825538B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230213996A1 (en) * 2022-01-06 2023-07-06 Nvidia Corporation Techniques for controlling computing performance for power-constrained multi-processor computing systems

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200604789A (en) * 2004-03-29 2006-02-01 Sony Computer Entertainment Inc Processor, multiprocessor system, processor system, information processing apparatus and temperature control method
US20060265609A1 (en) * 2000-09-27 2006-11-23 Fung Henry T System, method, and architecture for dynamic service power management and dynamic workload management for multi-server environment
US20130345893A1 (en) * 2012-06-20 2013-12-26 International Business Machines Corporation Controlled cooling of an electronic system based on projected conditions
CN106681453A (zh) * 2016-11-24 2017-05-17 电子科技大学 一种高性能多核微处理器的动态热管理方法
TW201923317A (zh) * 2017-11-15 2019-06-16 財團法人工業技術研究院 溫度估算裝置及溫度估算方法
CN112395046A (zh) * 2020-07-30 2021-02-23 上海有孚智数云创数字科技有限公司 基于温度预测的虚拟机迁移规划调度方法及其系统与介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060265609A1 (en) * 2000-09-27 2006-11-23 Fung Henry T System, method, and architecture for dynamic service power management and dynamic workload management for multi-server environment
TW200604789A (en) * 2004-03-29 2006-02-01 Sony Computer Entertainment Inc Processor, multiprocessor system, processor system, information processing apparatus and temperature control method
US20130345893A1 (en) * 2012-06-20 2013-12-26 International Business Machines Corporation Controlled cooling of an electronic system based on projected conditions
CN106681453A (zh) * 2016-11-24 2017-05-17 电子科技大学 一种高性能多核微处理器的动态热管理方法
TW201923317A (zh) * 2017-11-15 2019-06-16 財團法人工業技術研究院 溫度估算裝置及溫度估算方法
CN112395046A (zh) * 2020-07-30 2021-02-23 上海有孚智数云创数字科技有限公司 基于温度预测的虚拟机迁移规划调度方法及其系统与介质

Also Published As

Publication number Publication date
TW202238381A (zh) 2022-10-01
CN115114016A (zh) 2022-09-27
US20220300324A1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
Singla et al. Predictive dynamic thermal and power management for heterogeneous mobile platforms
US8555283B2 (en) Temperature-aware and energy-aware scheduling in a computer system
US8443209B2 (en) Throttling computational units according to performance sensitivity
US7886172B2 (en) Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
US7716006B2 (en) Workload scheduling in multi-core processors
JP5564564B2 (ja) 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置
US20040128663A1 (en) Method and apparatus for thermally managed resource allocation
US10162397B2 (en) Energy efficient workload placement management based on observed server efficiency measurements
US20080209243A1 (en) Scheduling processor voltages and frequencies based on performance prediction and power constraints
US20100318827A1 (en) Energy use profiling for workload transfer
JP6668355B2 (ja) 動的時間的電力ステアリングのためのシステム及び方法
US20110022356A1 (en) Determining performance sensitivities of computational units
TWI748135B (zh) 用於多處理器的任務排程的方法及系統
TWI825538B (zh) 任務排程方法、遷移方法及系統
US10942850B2 (en) Performance telemetry aided processing scheme
Nishtala et al. Energy-aware thread co-location in heterogeneous multicore processors
US20190121419A1 (en) Reducing Power by Vacating Subsets of CPUs and Memory
JP2021518936A (ja) 電力および性能の予測および制御のためのハイブリッドシステムオンチップ
Xia et al. Implementing a thermal-aware scheduler in linux kernel on a multi-core processor
US20190250919A1 (en) Method for managing computation tasks on a functionally asymmetric multi-core processor
US10209749B2 (en) Workload allocation based on downstream thermal impacts
Chien et al. A thermal-aware scheduling for multicore architectures
Khan et al. Offline Earliest Deadline first Scheduling based Technique for Optimization of Energy using STORM in Homogeneous Multi-core Systems
US20210012207A1 (en) Run-time neural network re-allocation across heterogeneous processors
Singh et al. Thermal aware power save policy for hot and cold jobs