CN115114016A - 任务调度方法、迁移方法及系统 - Google Patents

任务调度方法、迁移方法及系统 Download PDF

Info

Publication number
CN115114016A
CN115114016A CN202111589199.2A CN202111589199A CN115114016A CN 115114016 A CN115114016 A CN 115114016A CN 202111589199 A CN202111589199 A CN 202111589199A CN 115114016 A CN115114016 A CN 115114016A
Authority
CN
China
Prior art keywords
processor
temperature
processors
thermal
thermal conditions
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202111589199.2A
Other languages
English (en)
Inventor
张雅婷
蔡志福
陈泰宇
陈家明
黄舜雍
廖达昌
吴昇铨
张祐嘉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MediaTek Inc
Original Assignee
MediaTek Inc
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 MediaTek Inc filed Critical MediaTek Inc
Publication of CN115114016A publication Critical patent/CN115114016A/zh
Pending legal-status Critical Current

Links

Images

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)自动调整处理器的工作频率和电压的技术。降低处理器的工作频率和电压可以降低处理器的功耗,但会降低处理器的计算性能。换言之,增加处理器的工作频率和电压可以提高处理器的计算性能,但会增加处理器的功耗和发热量。产生过多的热量会降低处理器的可靠性,并可能导致硬件故障。因此,需要针对影响多处理器系统的功率、可靠性和性能的许多因素来改进运行时的系统管理。
发明内容
本发明提供了任务调度方法、迁移方法及系统,可提高系统性能和可靠性。
本发明提供的一种任务调度方法可包括:获得多个处理器的温度测量值;确定每一个处理器的一个或多个热状况,该一个或多个热状况包括该每一个处理器的当前温度、历史温度、预测温度和热余量;至少部分地基于该每一个处理器的该一个或多个热状况在该多个处理器中识别目标处理器;和分配由该目标处理器执行的任务。
本发明提供的一种任务迁移的方法可包括:获得多处理器系统中多个处理器的温度测量值;通过将源处理器的一个或多个热状况与相应阈值进行比较来检测该源处理器满足任务迁移标准,该一个或多个热状况包括当前温度、历史温度、预测温度和热余量;至少部分地基于该多个处理器中的每一个处理器的该一个或多个热状况在该多个处理器中识别目标处理器;和将任务从该源处理器迁移到该目标处理器进行执行。
本发明提供的一种系统可包括:多个处理器;多个温度传感器以产生温度测量值;确定该多个处理器中的每一个处理器的一个或多个热状况的电路,该一个或多个热状况包括该每一个处理器的当前温度、历史温度、预测温度和热余量;和存储指令的存储器,当该指令被该系统执行时,使该系统执行调度器的操作,其中该调度器操作为:至少部分地基于该每一个处理器的该一个或多个热状况在该多个处理器中识别目标处理器;和分配由该目标处理器执行的任务。
本发明提供的另一种系统可包括:多个处理器;多个温度传感器以产生温度测量值;通过将源处理器的一个或多个热状况与相应阈值进行比较来检测该源处理器满足任务迁移标准的电路,该一个或多个热状况包括当前温度、历史温度、预测温度和热余量;和存储指令的存储器,当该指令被该系统执行时,使该系统执行调度器的操作,其中该调度器操作为:至少部分地基于该多个处理器中的每一个处理器的该一个或多个热状况在该多个处理器中识别目标处理器;和将任务从该源处理器迁移到该目标处理器进行执行。
综上所述,本发明实施例提供的方法及系统可平衡多个处理器的热状况,由此可提供系统的性能和可靠性。
附图说明
图1图示了根据一个实施例的多处理器系统。
图2是示出根据一个实施例的用于分析处理器的热信息的分析器的框图。
图3是示出根据一个实施例的热历史模块的框图。
图4是示出根据一个实施例的热预测模块的框图。
图5是说明根据一个实施例的阈值比较器的框图。
图6是图示根据一个实施例的用于多处理器系统中的热感知任务调度的方法的流程图。
图7是图示根据一个实施例的用于多处理器系统中的热感知任务迁移的方法的流程图。
具体实施方式
在说明书及权利要求书当中使用了某些词汇来指称特定的组件。本领域技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在通篇说明书及权利要求当中所提及的“包含”及“包括”为一开放式的用语,故应解释成“包含但不限定于”。“大体上”或“大约”是指在可接受的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”或“耦合”一词在此包含任何直接及间接的电性连接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表该第一装置可直接电性连接于该第二装置,或通过其它装置或连接手段间接地电性连接至该第二装置。以下所述为实施本发明的较佳方式,目的在于说明本发明的精神而非用以限定本发明的保护范围,本发明的保护范围当视权利要求书所界定者为准。
接下面的描述为本发明预期的最优实施例。这些描述用于阐述本发明的大致原则而不应用于限制本发明。本发明的保护范围应在参考本发明的权利要求书的基础上进行认定。
本发明实施例提供了一种用于多处理器系统执行热感知任务调度(thermal-aware task scheduling)的运行时调度(runtime scheduling)机制。热感知任务调度旨在平衡多个处理器的热状况(thermal condition),其中热状况包括但不限于每一个处理器的当前温度、历史温度、预测温度和热余量(thermal headroom)。热感知任务调度可以防止热点(hotspot),从而减少泄漏功率,降低冷却成本,提高系统性能和可靠性。
本文描述的系统中的多个处理器可能由于制造工艺的变化而具有不同的热电阻。因此,即使这些处理器具有相同的负载,它们也可能具有不同的温度。
本发明描述的多处理器系统包括调度器,其可以是操作系统(Operating System,OS)中的软件模块。调度器根据处理器池中每一个处理器的热状况,从处理器池中选择一个目标处理器来执行任务。处理器池可以包括所有激活的(active)处理器;或者,处理器池可以包括所有被上电的(powered on)处理器。被调度的将被执行的任务可能是新创建的任务、从源处理器迁移出的任务、刚刚醒来的任务、由于负载均衡而重新被分配的任务等。被调度器选择的目标处理器可能有以下一种或多种热状况,包括但不限于:当前温度低、历史温度低、预测温度低、热余量高等。当将目标处理器的热状况与处理器池中其他处理器的热状况进行比较时,使用相对性的术语“低”和“高”。
在一个实施例中,调度器还执行从源处理器到目标处理器的任务迁移(taskmigration)。当源处理器的热状况满足以下标准中的至少一个时,调度器可以调用任务迁移,这些标准包括但不限于:处理器的当前运行时温度(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 InformationAnalyzer,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的过去温度值的移动平均值(movingaverage)。例如,热历史模块210可以对每一个T(i)和Wi-1·TempH(i-1)应用数学运算符(表示为fh),其中Wi-1是加权因子。在一个实施例中,对于所有i,权重Wi-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能安全运行的上限(upperlimit)。
关于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的流程图示出了由本发明的某些实施例执行的特定的操作顺序,但应当理解,这种顺序仅是示例性的(例如,替代实施例可以以不同的顺序执行这些操作、组合某些操作、重迭某些操作等)。
本发明已经描述了各种功能组件或块。如本领域技术人员将理解的,功能块将优选地通过电路(在一个或多个处理器和编码指令的控制下操作的专用电路或通用电路)来实现,这些电路通常将包括多个晶体管,这些晶体管被配置为根据本发明描述的功能和操作来控制电路的操作。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视权利要求所界定者为准。

Claims (25)

1.一种任务调度方法,其特征在于,包括:
获得多个处理器的温度测量值;
确定每一个处理器的一个或多个热状况,该一个或多个热状况包括该每一个处理器的当前温度、历史温度、预测温度和热余量;
至少部分地基于该每一个处理器的该一个或多个热状况在该多个处理器中识别目标处理器;和
分配由该目标处理器执行的任务。
2.如权利要求1所述的任务调度方法,其特征在于,确定该每一个处理器的该一个或多个热状况包括:
对于该每一个处理器,使用该每一个处理器的加权的过去温度测量值计算该历史温度。
3.如权利要求1所述的任务调度方法,其特征在于,确定该每一个处理器的该一个或多个热状况包括:
针对该每一个处理器,基于环境温度、在该每一个处理器上执行的操作以及热操作因素中至少之一计算该预测温度。
4.如权利要求1所述的任务调度方法,其特征在于,确定该每一个处理器的该一个或多个热状况包括:
根据该每一个处理器的过去温度的测量值和当前温度的测量值,为该每一个处理器计算作为温度趋势的该预测温度。
5.如权利要求4所述的任务调度方法,其特征在于,还包括:
计算一个或多个下一时间间隔的该温度趋势;和
从该温度趋势中识别一温度值作为该预测温度。
6.如权利要求1所述的任务调度方法,其特征在于,确定该每一个处理器的该一个或多个热状况包括:
针对该每一个处理器,根据该每一个处理器的负载或负载引起的功耗计算该预测温度。
7.如权利要求1所述的任务调度方法,其特征在于,确定该每一个处理器的该一个或多个热状况包括:
根据功率计或该每一个处理器的负载,为该每一个处理器获取当前功耗;和
对于该每一个处理器,通过从允许的功耗中减去该当前功耗来计算该每一个处理器的该热余量。
8.如权利要求1所述的任务调度方法,其特征在于,确定该每一个处理器的该一个或多个热状况包括:
对于该每一个处理器,通过从允许的温度中减去该当前温度来计算该每一个处理器的该热余量。
9.如权利要求1所述的任务调度方法,其特征在于,识别该目标处理器包括:
通过调度器从该每一个处理器中收集该一个或多个热状况;和
通过该调度器识别该目标处理器。
10.如权利要求1所述的任务调度方法,其特征在于,还包括:
通过将源处理器的该一个或多个热状况与相应阈值进行比较来检测该源处理器满足任务迁移标准;和
将任务从该源处理器迁移到该目标处理器进行执行。
11.如权利要求9所述的任务调度方法,其特征在于,还包括:
降低该源处理器的工作频率。
12.一种任务迁移的方法,其特征在于,包括:
获得多处理器系统中多个处理器的温度测量值;
通过将源处理器的一个或多个热状况与相应阈值进行比较来检测该源处理器满足任务迁移标准,该一个或多个热状况包括当前温度、历史温度、预测温度和热余量;
至少部分地基于该多个处理器中的每一个处理器的该一个或多个热状况在该多个处理器中识别目标处理器;和
将任务从该源处理器迁移到该目标处理器进行执行。
13.如权利要求12所述的任务迁移的方法,其特征在于,还包括:
降低该源处理器的工作频率。
14.如权利要求12所述的任务迁移的方法,其特征在于,还包括:
对于该每一个处理器,使用该每一个处理器的加权的过去温度测量值计算该历史温度。
15.如权利要求12所述的任务迁移的方法,其特征在于,还包括:
针对该每一个处理器,基于环境温度、在该每一个处理器上执行的操作以及热操作因素中至少之一计算该预测温度。
16.如权利要求12所述的任务迁移的方法,其特征在于,还包括:
根据该每一个处理器的过去温度的测量值和当前温度的测量值,为该每一个处理器计算作为温度趋势的该预测温度。
17.一种系统,其特征在于,包括:
多个处理器;
多个温度传感器以产生温度测量值;
确定该多个处理器中的每一个处理器的一个或多个热状况的电路,该一个或多个热状况包括该每一个处理器的当前温度、历史温度、预测温度和热余量;和
存储指令的存储器,当该指令被该系统执行时,使该系统执行调度器的操作,其中该调度器操作为:
至少部分地基于该每一个处理器的该一个或多个热状况在该多个处理器中识别目标处理器;和
分配由该目标处理器执行的任务。
18.如权利要求17所述的系统,其特征在于,还包括监测模块,其中该每一个处理器的该历史温度是通过该监测模块使用该每一个处理器的加权的过去温度测量值计算。
19.如权利要求17所述的系统,其特征在于,还包括监测模块,其中该每一个处理器的该预测温度是通过该监测模块基于环境温度、在该每一个处理器上执行的操作以及热操作因素中至少之一计算。
20.如权利要求17所述的系统,其特征在于,还包括监测模块,其中该每一个处理器的该预测温度被该监测模块计算为一温度趋势,该温度趋势基于该每一个处理器的过去温度的测量值和当前温度的测量值。
21.一种系统,其特征在于,包括:
多个处理器;
多个温度传感器以产生温度测量值;
通过将源处理器的一个或多个热状况与相应阈值进行比较来检测该源处理器满足任务迁移标准的电路,该一个或多个热状况包括当前温度、历史温度、预测温度和热余量;和
存储指令的存储器,当该指令被该系统执行时,使该系统执行调度器的操作,其中该调度器操作为:
至少部分地基于该多个处理器中的每一个处理器的该一个或多个热状况在该多个处理器中识别目标处理器;和
将任务从该源处理器迁移到该目标处理器进行执行。
22.如权利要求21所述的系统,其特征在于,还包括:
动态电压频率缩放控制器,用于降低该源处理器的工作频率。
23.如权利要求21所述的系统,其特征在于,还包括监测模块,其中对于该每一个处理器,通过该监测模块使用该每一个处理器的加权的过去温度测量值计算该历史温度。
24.如权利要求21所述的系统,其特征在于,还包括监测模块,其中针对该每一个处理器,该监测模块基于环境温度、在该每一个处理器上执行的操作以及热操作因素中至少之一计算该预测温度。
25.如权利要求21所述的系统,其特征在于,还包括监测模块,其中该监测模块根据该每一个处理器的过去温度的测量值和当前温度的测量值,为该每一个处理器计算作为温度趋势的该预测温度。
CN202111589199.2A 2021-03-19 2021-12-23 任务调度方法、迁移方法及系统 Pending CN115114016A (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 US20220300324A1 (en) 2021-03-19 2021-11-11 Thermal-aware task scheduling
US17/524,086 2021-11-11

Publications (1)

Publication Number Publication Date
CN115114016A true CN115114016A (zh) 2022-09-27

Family

ID=83284818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111589199.2A Pending CN115114016A (zh) 2021-03-19 2021-12-23 任务调度方法、迁移方法及系统

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
US20230214000A1 (en) * 2022-01-06 2023-07-06 Nvidia Corporation Techniques for controlling computing performance for power-constrained multi-processor computing systems

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032119B2 (en) * 2000-09-27 2006-04-18 Amphus, Inc. Dynamic power and workload management for multi-server system
JP3830491B2 (ja) * 2004-03-29 2006-10-04 株式会社ソニー・コンピュータエンタテインメント プロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置および温度制御方法
US9110476B2 (en) * 2012-06-20 2015-08-18 International Business Machines Corporation Controlled cooling of an electronic system based on projected conditions
CN106681453A (zh) * 2016-11-24 2017-05-17 电子科技大学 一种高性能多核微处理器的动态热管理方法
TWI646315B (zh) * 2017-11-15 2019-01-01 財團法人工業技術研究院 溫度估算裝置及溫度估算方法
CN112395046B (zh) * 2020-07-30 2021-06-04 上海有孚智数云创数字科技有限公司 虚拟机迁移规划调度方法及其系统与介质

Also Published As

Publication number Publication date
TW202238381A (zh) 2022-10-01
TWI825538B (zh) 2023-12-11
US20220300324A1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
US8443209B2 (en) Throttling computational units according to performance sensitivity
Singla et al. Predictive dynamic thermal and power management for heterogeneous mobile platforms
US20040128663A1 (en) Method and apparatus for thermally managed resource allocation
US8555283B2 (en) Temperature-aware and energy-aware scheduling in a computer system
KR101520359B1 (ko) 휴대용 컴퓨팅 디바이스에서 배터리 로드 관리를 위한 시스템 및 방법
US7716006B2 (en) Workload scheduling in multi-core processors
US8447994B2 (en) Altering performance of computational units heterogeneously according to performance sensitivity
US8046468B2 (en) Process demand prediction for distributed power and resource management
JP5564564B2 (ja) 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置
CN107515663B (zh) 调整中央处理器内核运行频率的方法和装置
Coskun et al. Proactive temperature balancing for low cost thermal management in MPSoCs
US20100318827A1 (en) Energy use profiling for workload transfer
US10162397B2 (en) Energy efficient workload placement management based on observed server efficiency measurements
JP6668355B2 (ja) 動的時間的電力ステアリングのためのシステム及び方法
US20110022356A1 (en) Determining performance sensitivities of computational units
US8015427B2 (en) System and method for prioritization of clock rates in a multi-core processor
US10942850B2 (en) Performance telemetry aided processing scheme
Nishtala et al. Energy-aware thread co-location in heterogeneous multicore processors
TWI825538B (zh) 任務排程方法、遷移方法及系統
US9715268B2 (en) Reducing power by vacating subsets of CPUs and memory
Xia et al. Implementing a thermal-aware scheduler in linux kernel on a multi-core processor
Kundan et al. Online frequency-based performance and power estimation for clustered multi-processor systems
Khan et al. Offline Earliest Deadline first Scheduling based Technique for Optimization of Energy using STORM in Homogeneous Multi-core Systems
Jiang et al. EASE: Energy efficiency and proportionality aware virtual machine scheduling
US20210012207A1 (en) Run-time neural network re-allocation across heterogeneous processors

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Zhang Yating

Inventor after: Cai Zhifu

Inventor after: Chen Taiyu

Inventor after: Chen Jiaming

Inventor after: Yang Shunyao

Inventor after: Liao Dachang

Inventor after: Wu Shengquan

Inventor after: Zhang Daijia

Inventor before: Zhang Yating

Inventor before: Cai Zhifu

Inventor before: Chen Taiyu

Inventor before: Chen Jiaming

Inventor before: Huang Shunyong

Inventor before: Liao Dachang

Inventor before: Wu Shengquan

Inventor before: Zhang Daijia

CB03 Change of inventor or designer information