CN115048194A - 一种任务分配方法及装置 - Google Patents

一种任务分配方法及装置 Download PDF

Info

Publication number
CN115048194A
CN115048194A CN202110408180.7A CN202110408180A CN115048194A CN 115048194 A CN115048194 A CN 115048194A CN 202110408180 A CN202110408180 A CN 202110408180A CN 115048194 A CN115048194 A CN 115048194A
Authority
CN
China
Prior art keywords
core
information
task
processor
cores
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
CN202110408180.7A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to PCT/CN2021/103160 priority Critical patent/WO2022188306A1/zh
Publication of CN115048194A publication Critical patent/CN115048194A/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
    • 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
    • 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]
    • 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

Abstract

本申请公开了一种任务分配方法及装置,涉及计算机技术领域。该方法可应用于具有多个处理器核心的计算机系统,包括:获取处理器的多个核分别的第一信息,第一信息可用于描述核的使用寿命。以及,根据多个核分别的第一信息,从处理器的多个核中确定用于处理第一任务的第一核,其中,该第一任务为待处理任务。通过上述设计,在具有多个处理器核心的计算机系统中,可以根据处理器核的寿命信息对任务进行调度,因此可以尽可能地实现多个处理器核心之间的磨损均衡,有助于保障器件的使用寿命,确保核能够在更长时间工作在较高的频率。

Description

一种任务分配方法及装置
本申请要求在2021年3月9日提交中国专利局、申请号为202110254699.4、申请名称为“一种基于负载动态适配的高性能CPU软硬件设计方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别涉及一种任务分配方法及装置。
背景技术
随着个人计算机(personal computer,PC)、大数据、分布式存储和云计算等计算系统的飞速发展,对于中央处理器(central processing unit,CPU)以及包括图形处理器(graphics processing unit,GPU)和嵌入式神经网络处理器(neural-networkprocessing units,NPU)等的异构计算的xPU来说,越来越需要处理器运行到更高的频率以获取更好的处理性能。例如,目前的多核处理器的任务分配方式会尽可能将保证处理器各个核工作在更高的频率上以确保处理性能。然而,当频率上升到一定阈值时,需要更高的电压来支持处理器的核工作在该频率。高电压会加速处理器核中晶体管电路的老化,降低处理器核的寿命。如果核一直工作在最高频率,寿命会断崖式下跌,缩短到几个月甚至几天。寿命耗尽或不足的核,其工作的频率会大大降低。
因此,目前需要改善任务分配方式以提高处理器核的使用寿命,以确保核能够在更长时间工作在较高的频率。
发明内容
本申请实施例提供一种任务分配方法及装置,以提高处理器核的使用寿命。
第一方面,本申请实施例提供了一种任务分配方法,该方法可以应用于具有多个处理器核心的计算机系统以提高计算机系统中核心的使用寿命。该方法可由任务分配置实施,任务分配装置可以是计算机系统,该计算机系统可以是该方法所应用的具有多个处理器核心的计算机系统,也可以是其他计算机系统。
以执行主体是任务分配装置实施为例,该方法包括:任务分配装置可获取处理器的多个核分别的第一信息,其中,第一信息用于描述核的使用寿命。任务分配装置还可根据多个核分别的第一信息,从多个核中确定用于处理第一任务的第一核,其中,第一任务为待处理任务。
通过上述设计,在具有多个处理器核心的计算机系统中,可以根据处理器核的寿命信息对任务进行调度,因此可以尽可能地实现多个处理器核心之间的磨损均衡,有助于保障器件的使用寿命,确保核能够在更长时间工作在较高的频率。
在一种可能的设计中,任务分配装置可根据多个核分别的第一信息和第一任务的任务量信息,确定第一核。
采用该设计可进一步提高任务分配的合理性。
在一种可能的设计中,如果处理器包括多个物理核组,任一物理核组包括多个核,且第一任务包括多个线程,则任务分配装置还可以根据物理核组中的核的第一信息,确定第一任务对应的第一物理核组,并根据第一物理核组中的核的第一信息,从第一物理核组的核中确定第一任务中每个线程对应的核。
采用该设计,可进一步均衡各个物理核组的核之间的使用寿命,以获得更好的寿命均衡效果。
在一种可能的设计中,任务分配装置还可存储第一核的更新的第一信息,更新的第一信息根据第一核的第一信息和第一任务的任务量信息确定。
采用该设计,可根据第一任务的任务量信息更新第一核的寿命信息,因此可以更加准确地获得核的寿命信息,提高后续任务分配的寿命均衡效果。
在一种可能的设计中,处理器的第k个核的第一信息包括第k个核的剩余寿命信息;和/或,第一信息包括第k个核的已用寿命信息。可选的,第k个核的剩余寿命信息可根据第k个核的总寿命信息和已用寿命信息确定。
在一种可能的设计中,第k个核的寿命信息可根据该第k核的历史运行时间、第k个核的频率和历史运行时间、第k核的电压和历史运行时间、第k个核在处理器上的位置、第k核的访存总时间、第k个核的历史指令数和指令的平均运行时间,或者第k个核的频率和访存总时间中的至少一个信息确定。
采用该设计,可提高核的寿命信息的确定精度,以提高寿命均衡效果。
第二方面,本申请实施例提供了一种任务分配方法,该方法可以应用于具有多个处理器的计算机系统,以提高计算机系统中核的使用寿命。该方法可由任务分配置实施,任务分配装置可以是计算机系统,该计算机系统可以是该方法所应用的具有多个处理器核心的计算机系统,也可以是其他计算机系统。
以执行主体是任务分配装置为例,该方法包括:任务分配装置可获取多个处理器分别的第三信息,第三信息用于描述处理器的使用寿命。任务分配装置还可根据多个处理器分别的第一信息,从多个处理器中确定用于处理第二任务的第一处理器,第二任务为待处理任务。
通过上述设计,在具有多个处理器的计算机系统中,可以根据处理器的寿命信息对任务进行调度,因此可以尽可能地实现多个处理器之间的磨损均衡,有助于保障器件的使用寿命,确保处理器能够在更长时间工作在较高的频率。
在一种可能的设计中,任务分配装置可根据所述多个处理器分别的第三信息和所述第二任务的任务量信息,确定所述第一处理器,以进一步提高任务分配的合理性。
第三方面,本申请实施例提供了一种任务分配装置,可以应用于具有多个处理器核心的计算机系统,该任务分配装置具体可以实现上述第一方面或第二方面中任务分配方法行为的功能。该任务分配装置可以为计算机系统中的硬件或软件单元,可以包括至少一个模块,该至少一个模块用于实现上述第一方面或第二方面及其任一可能的设计所述的任务分配的方法。
第四方面,本申请实施例提供了一种任务分配装置,包括至少一个处理器,所述至少一个处理器与至少一个存储器耦合:所述至少一个处理器,用于执行所述至少一个存储器中存储的计算机程序或指令,以使得所述装置执行上述第一方面或第二方面及其任一可能的设计中的方法。可选地,该装置还包括通信接口,处理器与通信接口耦合。该通信接口可以是收发器或输入/输出接口;当该装置为网络设备中包含的芯片时,该通信接口可以是芯片的输入/输出接口。可选地,收发器可以为收发电路,输入/输出接口可以是输入/输出电路。
第五方面,本申请实施例提供一种计算设备,包括处理器和存储器,所述处理器包括多个处理器核心;所述存储器,用于存储计算机程序或指令;所述处理器,用于执行计算机程序或指令,实现上述第一方面或第二方面及其任一可能的设计所述的任务分配方法。
第六方面,本申请实施例提供一种计算机系统,该计算机系统可以包括记录模块、任务分配模块和多个处理器核心,所述任务分配模块可用于根据从记录模块获取的多个处理器核分别的第一信息,实现上述第一方面及其任一可能的设计所述的方法。记录模块可包括可编辑存储器,用于存储多个处理器核分别的第一信息,或用于从可编辑存储器读取多个处理器核分别的第一信息。
第七方面,本申请实施例提供一种计算机系统,该计算机系统可以包括记录模块、任务分配模块和多个处理器,所述任务分配模块可用于根据从记录模块获取的多个处理器核心的第一信息,实现上述第二方面及其任一可能的设计所述的方法。记录模块可包括可编辑存储器,用于存储多个处理器分别的第三信息,或用于从可编辑存储器读取多个处理器分别的第三信息。
第八方面,本申请实施例提供了一种可读存储介质,用于存储指令,当所述指令被执行时,使上述第一方面或第二方面及其任一可能的设计所述的方法被实现。
第九方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面及其任一可能的设计所述的方法。
第十方面,本申请实施例提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,该芯片系统还可包括接口电路,所述接口电路用于接收程序或指令并传输至处理器;当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述第一方面或第二方面及其任一可能的设计中的方法。
可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器(read-only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
本申请在上述各方面提供的实现的基础上,还可以进行进一步组合以提供更多实现。
以上第三方面至第十方面及其任一可能的设计的有益效果可参见第一方面或第二方面及其任一可能的设计中的有益效果。
附图说明
图1为Linux操作系统下的EAS技术示意图;
图2为本申请实施例提供的一种任务分配方法的流程示意图;
图3为本申请实施例提供的一种线程分配过程的示意图;
图4为本申请实施例提供的一种核在CPU上的位置示意图;
图5为本申请实施例提供的另一种核在CPU上的位置示意图;
图6为本申请实施例提供的一种任务分配方法的实现方式示意图;
图7为本申请实施例提供的另一种任务分配方法的实现方式示意图;
图8为本申请实施例提供的一种CPU和GPU异构系统的架构示意图;
图9为本申请实施例提供的另一种任务分配方法的实现方式示意图;
图10为本申请实施例提供的一种任务分配装置的结构示意图;
图11为本申请实施例提供的另一种任务分配装置的结构示意图。
具体实施方式
为了解决背景技术中提及的问题,本申请实施例提供了一种任务分配方法及装置,有助于提高多核处理器中核的使用寿命。其中,方法和装置是基于同一技术构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
计算机系统,由硬件(子)系统和软件(子)系统组成。其中,硬件(子)系统包括由电、磁、光、机械等原理构成的各种物理部件(如处理器等)的有机组合,是系统赖以工作的实体;软件(子)系统包括各种程序和文件,用于指挥全系统按指定的要求进行工作。随着计算机技术的发展,现代计算机系统小到微型计算机和个人计算机,大到巨型计算机及其网络,形态、特性多种多样,已广泛用于科学计算、事务处理和过程控制,日益深入社会各个领域,对社会的进步产生深刻影响。
在一种实现方式中,本申请实施例中的计算机系统,可以为终端装置内的计算机系统,是一种向用户提供业务服务、具有语音或数据连通等功能的装置。终端装置又可以称为终端设备,还可以称为用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等,终端装置也可以为一种芯片。在本申请后续实施例和描述中,以终端设备为例进行具体描述。
例如,终端设备可以为具有无线连接功能的手持式设备、车载设备等。目前,一些终端设备的举例为:手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、智能销售终端(point of sale,POS)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、各类智能仪表(智能水表、智能电表、智能燃气表)等。
在另一种实现方式中,本申请实施例中的计算机系统,可以是服务器,是提供数据连通服务的设备。由于服务器可以响应终端设备的服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。在本申请中,所述服务器可以为位于数据网络(data network,DN)中的服务器,例如普通服务器,云平台中的服务器;或者为位于核心网内的多接入边缘计算(multi-access edge computing,MEC)服务器等。
本申请实施例中的计算机系统还可以是处理器、芯片或芯片系统。
(2)操作系统(operating system,OS),是运行在计算机系统上的最基本的系统软件,例如windows系统、Android系统、IOS系统、windows server系统、Netware系统、Unix系统、Linux系统。本领域技术人员可以理解,其它操作系统中,也可以采用类似的算法实现,本申请对此不做限定。
(3)内核(kernel),是基于硬件的第一层软件扩充,提供操作系统的最基本的功能。例如,可负责管理系统的进程、内存、驱动程序、文件和网络系统,决定着系统的性能和稳定性。
(4)处理器的核(core),或称核心,即处理器中的核心芯片。处理器的核数是指一个处理器由多少个核组成。核数越多,代表这个处理器的运转速度越快,性能越好。如果处理器的核数大于或等于2,则该处理器可称为多核处理器。
(5)同构处理器,或称同构多核处理器。同构多核处理器的每个处理器核心的结构完全相同,同时地位也是等同的。同构多核处理器中,可以由不同核心共享相同的代码,也可以由不同核心分别执行不同的代码。以CPU同构处理器为例,该处理器中的多个核均为CPU核,或者说该处理器包括的运算模块均为称CPU运算模块。
(6)异构处理器,或称异构多核处理器。异构多核处理器的不同核心可采用功能不同的核。异构多核处理器常用于特殊应用,如信号处理等。异构多核处理器中,一般是某些核用于管理和调度,另外一些核用于特定的性能加速,处理器核之间通过共享总线、交叉开关互联和片上网络。以CPU和xPU异构处理器为例,该处理器中可包括至少一个CPU核和至少一个xPU(如GPU或NPU等)核,或者说该处理器包括的运算模块至少包括CPU运算模块和一个xPU(如GPU或NPU等)运算模块,其中,CPU核可由于实现管理和调度。
(7)进程(process)和线程(tread)。进程是资源分配的最小单位,线程或称逻辑线程,是程序执行的最小单位,一个线程可包括一个或多个指令,因此每个线程的处理运行时间可能不同。也就是说,资源分配给进程,同一进程内的所有线程共享该进程的所有资源。其中,一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。一个线程是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程可并行执行不同的任务。对于多核处理器,不同的核可用于执行不同的线程,因此能够实现任务的并行。本申请中,线程可理解为处理器在进行特定的数据处理中最小的流水线单元。应理解,一个核可对应于一个或多个流水线以便实现多任务并行处理。
(8)任务(task),指由软件完成的一个活动。一个应用程序可能包含一个或多个任务。一个任务既可以是一个进程,也可以是一个线程,或者可以包括多个进程和/或多个线程。本申请中,除特殊说明外,任务分配(或调度)是指将任务包括的进程和/或线程进行分配,线程分配是指将线程分配到处理器流水线,使得线程通过流水线被处理。例如,任务可以是读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。
下面以线程分配为例,说明目前的多核处理器中任务分配的方式。
在系统的软硬件实现上,现有技术主要是通过操作系统(operation system,OS)层的软件调度方法实现线程分配。以CPU同构处理器下的Linux操作系统为例,Linux内核的完全公平调度(complete fair schedule,CFS)调用器和负载均衡主要是为了服务器性能优先而考虑,因此将多个线程平均分配到系统所有可用的CPU核上,最大限度地提高系统的吞吐量,即尽可能地让CPU的核工作在更高频率。
然而,更高的CPU频率会造成CPU核的使用寿命的缩短。原因在于,在CPU中的场效应晶体管(field effect transistor,FET)需要完全放电才能确保信号完整性,当频率变得更高的时候,需要更小的释放时间,因此只有通过提高电压来缩短放电时间。而更高的电压会加速晶体管老化,缩短CPU核的寿命。另外,当CPU持续采用高电压时,芯片的温度会急剧提升,也会导致CPU核的使用寿命的缩短。因此,即便任务分配的过程采用平均分配的方式执行,由于每个线程的处理运行时间可能不同,仍然可能导致不同核的损耗程度不同,即导致核的剩余寿命不同。如果核的寿命耗尽或者寿命较低,该核的工作频率会大大降低,造成处理器性能降低。
如图1所示,Linux内核5.3采用了能耗感知调度(energy aware scheduler,EAS)技术,EAS技术能够充分利用核的功耗、性能和频率差异来达到性能和功耗的最优平衡。例如EAS中的Linux调度器(在图1中表示为调度器)可执行CFS,Linux CPU空闲(idle)机制(在图1中表示为空闲机制)能够决定CPU合适进入空闲模式以降低功耗,Linux CPU变频机制(在图1中表示为变频机制)能决定何时增加或降低CPU频率,能量模型可用于平衡Linux调度器、Linux CPU空闲机制和Linux CPU变频机制之间的能量消耗。然而该方案对于寿命的延长效果有限,并且,该方案主要适用于核数少且核间差异大的情况,比如适宜应用于移动终端中,而在对称多处理器结构(symmetric multi-processor,SMP)等场景的应用中收益甚微,因此适用场景有限。
因此,有必要研究能够有效提高处理器的使用寿命的方案。
本申请实施例提供一种任务分配方法及装置,可根据处理器多个核的寿命信息将待处理的任务分配到处理器的第一核上,由第一核处理该任务。由于任务是根据核的寿命信息分配的,因此可对处理器的多个核的使用寿命进行均衡,使得各个核能够工作在较高的频率。
应理解,该任务分配方法可由任务分配装置执行,任务分配装置可以是计算机系统。该装置可通过软件与硬件结合的方式实现或通过硬件方式实现。例如,该任务分配方法可通过操作系统执行软件的方式实现,或者可通过芯片执行固化在芯片中的软件等方式实现。具体来说,该任务分配置可由固件(BIOS)和/或操作系统的任务分配层(如调度器)实现,或者,可通过CPU等处理器(或处理器芯片)实现,本申请不进行具体限定。
下面结合附图介绍本申请实施例技术实现的具体实施例。应理解,本申请提供的任务分配方法可应用于同构处理器或异构处理器。其中,同构处理器例如CPU同构处理器,异构处理器例如CPU和xPU的异构处理器。
如图2所示,该方法可包括以下步骤:
S101:任务分配装置获取处理器的多个核分别的寿命信息,寿命信息可用于描述核的使用寿命。应理解,寿命信息在本申请的文字描述和附图中可称为第一信息。
在本申请中,寿命信息或称使用寿命信息。本申请中,寿命信息可用于确定核的剩余使用寿命和/或已用使用寿命,也就是说,寿命信息可包括剩余寿命信息和/或已用寿命信息。其中,总寿命信息可用于描述核最大可支持进行的工作时长。已用寿命信息可根据核历史任务运行时间或历史任务工作量等信息有关,可用于描述核已消耗的时长。剩余寿命信息可根据总寿命信息和已用寿命信息确定,描述核剩余的可用时长。应理解,后续本申请中除特殊说明,寿命信息可以是剩余寿命信息或者或已用寿命信息中的任意一项或多项。
本申请中,寿命信息可以是用于指示使用寿命的时间信息,或者,为了方便计算,寿命信息可以是根据时间信息通过归一化等方式量化的数值。
这里举例一种寿命信息的归一化方式。以总使用寿命为5年为例,即总使用寿命对应的时间信息为5年,可将5年归一化为100,即总寿命信息量化的数值为100,则寿命信息可以是5年,也可以是100。其中,由于设计和工艺的偏差,不同的核的总寿命信息对应的时长可能不同,一般在5年(或其他时间信息)的上下,可能有5%左右的偏差量,可认为核的总寿命信息的大小成高斯分布,归一化后的数值可能在100上下有一定浮动。按照相似的归一化方式,还可将该核的剩余使用寿命和/或已使用寿命归一化为数值,分别获得剩余寿命信息和/或已用寿命信息。
S102:任务分配装置根据多个核分别的寿命信息,从多个核中确定用于处理第一任务的第一核,该第一核是处理器的多个核中的一个。
例如,寿命信息包括剩余寿命信息,任务分配装置可选择剩余寿命信息最大的核作为第一核,和/或,寿命信息包括已用寿命信息,任务分配装置可选择已用寿命信息最小的核作为第一核。或者,可以在剩余寿命信息大于或等于第一阈值和/或已用寿命信息小于或等于第二阈值的核中,选择第一核,此时的选择方式可以是包括随机选择等方式。或者,可以按照各个核的寿命信息对核进行排序,如,根据寿命信息确定各个核的权重,在任务分配时根据各个核的权重进行分配。其中,核的权重可表示核被选为第一核的可能性,权重越高则对应的核更可能被确定为第一核。核的权重可与核的剩余寿命信息成正相关,和/或,与核的已用寿命信息成负相关。
采用图2所示流程,可根据处理器多个核的寿命信息将待处理的任务分配到处理器的第一核上,使得各个核的使用寿命得到均衡,以尽可能地延长处理器核的寿命,使得核能够更长时间地工作在较高频率。
示例性的,S102中确定第一核的过程即任务分配的过程,其可视为确定任务所包括的线程与第一核之间映射关系的过程。其中,如果处理器包括多个物理核组(physicalcore cluster),任意一个物理核组中包括一个或多个核,则任务分配装置可根据物理核组分别的第二信息,从多个物理核组中确定第一任务对应的第一物理核组,第一物理核组的核包括第一核。应理解,物理核组的核之间可能共享缓存。
其中,第二信息可以是物理核组的寿命信息,比如,第二信息包括物理核组的剩余寿命信息和/或已用寿命信息,第二信息也可以是物理核组中核的平均寿命信息和/或物理核组中剩余寿命最少的核的寿命信息等。其中,物理核组的剩余寿命信息可以是物理核组包括的核的剩余寿命信息的总和,也可以是用于衡量物理核组的剩余寿命的其他的参数或指标。物理核组的已用寿命信息可以是物理核组包括的核的已用寿命信息的总和,也可以是用于衡量物理核组的已用寿命的其他的参数或指标。物理核组中核的平均寿命信息可根据物理核组中每个核的剩余寿命信息或已用寿命信息确定的,物理核组中剩余寿命最少的核的寿命信息可以是该剩余寿命信息最少的核的剩余寿命信息和/或已用寿命信息。
可选的,进一步的,可根据第一物理核组中的核的寿命信息,确定第一任务的每个线程所分别对应的核。应理解,根据第二信息确定任务对应的物理核组时,例如可将剩余寿命信息较大、已用寿命信息较小或组中剩余寿命最少的核的寿命信息较大的物理核组作为第一物理核组,以进一步均衡核的寿命信息,从而进一步提高核的使用寿命。
下面以图3为例进行说明,任务1和任务N分别包括3个线程,记为线程1至线程3。
可选的,在任务1和任务N的分配过程中,任务分配装置可确定任务与CPU的物理核组之间的映射关系。其中,物理核组中可包括一个或多个核,图3中以每个物理核组中的核的数量是3为例进行说明。比如图3所示,任务分配装置可确定任务1对应于物理核组1,因此将任务1的线程1至线程3分配给物理核组1中的核(该分配关系在图3中通过没有剪头的连接线表示),同理,任务分配装置可确定任务N对应于物理核组N,并将任务N的线程1至线程3分配给物理核组N中的核。
可选的,第一物理核组包括至少一个第二核。例如,在任务分配的过程中,任务分配装置可根据物理核组的第二信息从包括至少一个第二核的物理核组中,选择与任务对应的物理核组。其中,第二核可以是剩余寿命信息大于或等于第三阈值和/或已用寿命信息小于或等于第四阈值的核,比如,某个物理核组中的核的剩余寿命信息均小于第三阈值,比如5,表示该物理核组中的全部核的寿命即将耗尽,可将任务分配给其他物理核组中的核。以图3为例,物理核组1中的第二核可包括核2和核3,物理核组N中的第二核可包括核2和核3。
本申请中,任务分配装置可根据物理核组的权重选择任务对应的物理核组。其中,物理核组的权重与物理核组中的核(或第二核)的剩余寿命信息成正相关,和/或,与物理核组中的核(或第二核)的已用寿命信息成反相关。也就是说,物理核组中的核(或第二核)的剩余寿命信息越大,物理核组的权重越大,则物理核组越可能被确定为任务对应的物理核组,和/或,物理核组中的核(或第二核)的已用寿命信息越小,物理核组的权重越大,则物理核组越可能被确定为任务对应的物理核组,以尽可能选择剩余寿命长的物理核组进行任务分配,提高处理器性能,延长处理器寿命。
或者,也可以在每次确定任务对应的物理核组时,将核(或第二核)的剩余寿命信息最大的物理核组作为任务对应的物理核组,或者,将核(或第二核)的已用寿命信息最小的物理核组作为任务对应的物理核组,或者,将核(或第二核)的剩余寿命信息大于或等于第五阈值的一个物理核组作为第一任务对应的物理核组,或者,将核(或第二核)的已用寿命信息小于或等于第六阈值的一个物理核组作为任务对应的物理核组。
进一步,任务分配装置可根据物理核组中核的寿命信息,将任务包括的线程分配给任务对应的物理核组中的核,形成核与线程之间的映射关系。
可选的,如图3所示,任务1和任务N包括的待分配的线程总数可以与参与分配的物理核组1和物理核组N包括的核的总数相同。
在一种可能的实现方式中,在任务分配装置将线程分配给物理核组中的核时,可根据核的权重进行分配。以图3所示的任务1中的线程分配的过程为例进行说明,物理核组1中的核1的剩余寿命信息为1,核2和剩余寿命信息为10,核3的剩余寿命信息为15,则物理核组1中的核3的权重高于核2的权重且核2的权重高于核1的权重,在分配任务1的线程1至线程3时,可优先将线程分配至核3,次优先分配给核2,而尽可能不分配给核1。比如图3所示,可将线程2和线程3分配给核3,以及将线程1分配给核2,即核1不需要分配任务1的线程。
下面通过举例的方式对本申请实施例提供的核的寿命信息的确定方式进行说明。
在一种可能的实现方式中,如果处理器包括K个核,则第k个核的寿命信息可根据该第k核的历史运行时间、第k个核的频率和历史运行时间、第k核的电压和历史运行时间、第k个核在处理器上的位置、第k核的访存总时间、第k个核的历史指令数和指令的平均运行时间,或者第k个核的频率(或电压或核在处理器上的位置)和访存总时间中的至少一个信息确定。其中,1≤k≤K,k和K均为正整数。以下进行具体说明:
(1)第k核的历史运行时间
核的历史运行时间可指示核的历史工作时长,比如,可以是核自第一次运行以来的总工作时长。应理解,核的历史运行时间越大则核的已用寿命信息越大和/或剩余寿命信息越小。
本申请中,运行时长可以是指核执行指令消耗的时钟周期,比如,可在核开始执行第一个任务的同时启动计数器对核执行指令消耗的时钟周期进行计数,通过该计数器的计数和时钟周期的长度确定历史运行时间。
(2)第k个核的历史指令数和指令的平均运行时间
第k个核的历史指令数和指令的平均运行时间可用于确定第k个核的历史运行时间,因此,可根据第k个核的历史指令数和指令的平均运行时间确定第k个核的寿命信息。其中,历史指令数是指核的已经处理的全部历史任务所包括的指令总数。比如,第k个核的历史指令数可以是在分配该第一任务之前,第k个核执行的全部历史任务包含的指令总数。指令的平均运行时间是指执行一个指令的平均运行时间,可根据多个指令的运行时间和多个指令的指令数量确定。
(3)第k核的频率和历史运行时间
其中,第k核的频率可以是该核在一段时间(如历史运行时间)或完成一定任务(如全部历史任务)的过程中运行的平均功率。可以理解的是,在历史运行时间相同的情况下,核的频率越大则该核的损耗越大,即已用寿命信息越小和/或剩余寿命信息越大,因此,可通过核的频率和历史运行时间确定核的寿命信息。
(4)第k核的电压和历史运行时间
第k核的电压可以是该核在一段时间(如历史运行时间)或完成一定任务(如全部历史任务)的过程中运行的平均电压。可以理解的是,在历史运行时间相同的情况下,核的电压越大则该核的损耗越大,即已用寿命信息越小和/或剩余寿命信息越大,因此,可通过核的电压和历史运行时间确定核的寿命信息。
(5)第k核在处理器上的位置
核在处理器上的位置同样可能影响核的寿命信息,这里的位置是指核在芯片上的物理位置,和/或核之间的相对位置。其中,处于不同的位置的处理器核在运行过程中,由于芯片电路布局和电源网络设计的因素,热密度不同,热密度与核在处理器上的位置相关。一般情况下,越靠近芯片中心位置的热密度越高,或者,越靠近物理核组密集的区域中心位置的热密度最高,在相同的频率和/或历史运行时长的条件下,热密度越高的核的结温(junction temperature)越高即核的已用寿命信息越小和/或剩余寿命信息越大。其中,结温是指半导体晶体管的温度,在相同运行时长下,核在节温越高的地方寿命下降越快。
如图4所示,在采用核阵列布局时,Tj1、Tj2和Tj3分别表示图4所示的位置1、位置2和位置3分别的结温,其中,Tj1、Tj2和Tj3分别距离芯片的中心位置的距离依序递增,也就是说,Tj1距离芯片的中心位置的距离小于Tj2距离核阵列中心位置的距离,且Tj2距离芯片的中心位置的距离小于Tj3距离芯片的中心位置的距离,则Tj1、Tj2和Tj3之间满足有如下关系:Tj1>Tj2>Tj3。又如图5所示,在采用多个物理核组的布局时,Tj、Tj2和Tj3分别表示图5所示的位置1、位置2和位置3分别的结温,其中,Tj1、Tj2和Tj3分别距离物理核组的中心位置的距离依序递增,也就是说,Tj1距离最近的物理核组的中心位置的距离小于Tj2距离最近的物理核组的中心位置的距离,且Tj2距离最近的物理核组的中心位置的距离小于Tj3距离最近的物理核组的中心位置的距离,则Tj1、Tj2和Tj3之间满足有如下关系:Tj1>Tj2>Tj3。
可选的,可根据核的结温确定核的剩余寿命信息和/或已用寿命信息,例如,历史运行时长相同的情况下,节温越大则已用寿命信息越大,和/或,剩余寿命信息越小。
应理解,从空间维度,可以通过芯片节温将芯片空间分为多个区域,在不同的区域放置有限个节温探测器(temperature sensor),在处理器运行过程中,不同节温探测器获得的结温可以实时反馈至任务分配装置,可供确定各个节温探测器所在区域的结温。
(6)第k个核的访存总时间
核的访存时间即该核的存储访问时间,也可以称之为存取时间,是指核从启动一次存储器操作,到完成该操作所经历的时间,存储器操作包括访问存储器,例如读取存储器中的数据。访存时间与处理器的硬件参数相关,可以理解为对于同一个核来说访存时间不变。
核的访存总时间是指核处理至少一个历史任务中的访存时间的总和。可以理解,核的访存总时间越长则说明核处理的任务需要的访存次数越多。可选的,可根据核的访存总时间确定核的剩余寿命信息和/或已用寿命信息,核的访存总时间越大则核的已用寿命信息越大和/或剩余寿命信息越小。
可选的,核的访存总时间也可替换为核的被隐藏的访存总时间或核的未被隐藏的访存总时间。
核的被隐藏的访存总时间是核处理至少一个任务中的被隐藏的访存时间的总和。被隐藏的访存时间是指核在执行存储器操作的期间,执行了存储器操作以外的其他操作,使得核在执行该存储器操作期间(该期间即访存时间,或访存时间内的部分时间段内)内没有空转,则这个存储器操作对应的访存时间中的执行了其他操作的时间被称为被隐藏的访存时间。任务分配装置可倾向于将任务分配给被隐藏的访存总时间较小的核。
未被隐藏的访存总时间是核处理至少一个任务中的未被隐藏的访存时间的总和。未被隐藏的访存时间则是指在访存时间内,未执行存储器操作以外的其他操作的时间。任务分配装置可倾向于将任务分配给未被隐藏的访存总时间较小的核。
应理解,任务分配装置可根据以上第k个核的频率、第k个核的电压、第k个核在CPU上的位置、第k个核的历史运行时间,或者第k个核的访存总时间中的任意一个信息确定第k个核的已用寿命信息,还可根据第k个核的频率、第k个核的电压、第k个核在CPU上的位置、第k个核的历史运行时间,或者第k个核的访存总时间中的多个信息确定第k个核的已用寿命信息。比如,对第k个核的频率、第k个核的电压、第k个核在CPU上的位置、第k个核的历史运行时间,或者第k个核的访存总时间中的多个信息分别设定权重,根据多个信息和多个信息对应的权重确定第k个核的已用寿命信息。
(7)第k个核的频率(或电压或核在处理器上的位置)和访存总时间
如前述,核的访存总时间越长则说明核处理的任务需要的访存次数越多,也就是核的已用寿命信息越大和/或剩余寿命信息越小。如果访存总时间相同,可进一步结合核的频率、电压或核在处理器上的位置确定核的寿命信息,具体方式可参照根据历史运行时间和核的频率、电压或核在处理器上的位置中的一个确定寿命信息的方式。举例来说,在两个核的历史运行时间相同的情况下,频率或电压更大的核,或者越靠近处理器芯片的中心位置或物理核组密集的区域中心位置的核的已用寿命信息越大和/或剩余寿命信息越小。
应理解,以上所示确定寿命信息的方式仅仅是举例说明,在实际使用中还可在以上举例的方式的基础上进行排列组合等扩展方式确定第k个核的寿命信息。比如,实际使用时还可根据核的历史运行时间、频率、电压和核在处理器上的位置确定寿命信息。
在另一种可能的实现方式中,第k个核的已用寿命信息可根据第k个核的历史指令数、指令的平均运行时间、第k个核的频率、第k个核的访存时间,和第k个核的至少一个历史任务(如全部历史任务)中未被隐藏的访存时间与该至少一个历史任务的总运行时间之间的比例确定。
其中,第k个核的历史指令数、指令的平均运行时间、第k个核的频率、第k个核的访存时间可参见前述说明。第k个核的至少一个历史任务中未被隐藏的访存时间可以是第k个核执行至少一个历史任务过程中的访存时间,该至少一个历史任务的总运行时间可以是第k个核执行该至少一个历史任务消耗的时钟周期。
示例性的,在根据第k个核的历史指令数、指令的平均运行时间、第k个核的频率、第k个核的访存时间,和第k个核的至少一个历史任务中未被隐藏的访存时间与该至少一个历史任务的总运行时间之间的比例确定第k个核的已用寿命信息时,第k个核的已用寿命信息可符合以下公式1:
Figure BDA0003023115670000111
其中,Tcomp表示第k个核的已用寿命信息,F表示第k个核的频率,#instk表示第k个核在执行第m个历史任务中执行的指令数,其中,m=1、2……M,M为第k个核执行的全部历史任务的数量。CPIk表示第k个核执行指令的平均运行时间。可选的,对于同一个核来说,CPIk可以不变。
Figure BDA0003023115670000112
表示第k个核的访存时间。
Figure BDA0003023115670000113
表示执行第m个任务中,第k个核未被隐藏的访存时间占第k个核执行该第m个任务的运行时间的比例,或者,
Figure BDA0003023115670000114
表示执行第1至m个任务的过程中,第k个核未被隐藏的访存时间占第k个核执行该第1至m个任务的运行时间的比例。
在另一种可能的实现方式中,核的剩余寿命信息可根据总寿命信息和已用寿命信息确定。
例如,可将第k个核的总寿命信息表示为Tcore_total,以及将第k个核的剩余寿命信息表示为Tcore,则Tcore符合以下公式2:
Tcore=Tcore_total-Tcomp。 (公式2)
可选的,在根据第k个核的频率、第k个核的电压、第k个核的历史运行时间,或者第k个核的访存总时间中的至少一个,或根据第k个核的历史指令数、指令的平均运行时间、第k个核的频率、第k个核的访存时间,和第k个核的至少一个历史任务中未被隐藏的访存时间与历史任务的总运行时间之间的比例,确定第k个核的已用寿命信息后,还可根据第k个核在CPU上的位置对第k个核的已用寿命信息进行修正。
可选的,可根据第k个核在处理器上的位置确定第k个核的结温Tj,则修正前后第k个核的已用寿命信息与Tj之间可以符合公式3:
Tcomp’=Tcomp+a*Tj。 (公式3)
其中,Tcomp’表示第k个核的修正后的已用寿命信息,Tcomp表示第k个核的修正前的已用寿命信息。a为校正系数,可以是设定值。
或者,可在根据公式2确定第k个核的剩余寿命信息后,根据第k个核在CPU上的位置对第k个核的剩余寿命信息进行修正,修正前后第k个核的剩余寿命信息与Tj之间可以符合公式4:
Tcore’=Tcore-a*Tj。 (公式4)
其中,Tcore’表示第k个核的修正后的剩余寿命信息,Tcore表示第k个核的修正前的剩余寿命信息。a为校正系数,可以是设定值。
可选的,在S102中,可根据多个核分别的寿命信息和第一任务的任务量信息,确定第一核。可选的,第一任务的任务量信息可指示第一任务包含的指令数,该指令数可用于确定执行第一任务的运行时间。比如,可根据任一核执行一个指令的平均运行时间和第一任务包含的指令数,确定该核执行第一任务的运行时间。另外,第一任务的任务量信息也可指示第一任务的运行时间。
这里以第一任务是一个线程为例进行说明。在S102中,还可根据该线程的任务量信息和处理器多个核分别的寿命信息,确定第一核。其中,该线程的任务量信息可用于确定执行该线程的运行时间。以寿命信息为剩余寿命的时间信息或已用寿命的时间信息为例,可根据线程的任务量信息确定该线程的运行时间,并从剩余寿命对应的时间信息与执行该线程的运行时间的差大于或等于第七阈值的核,和/或已用寿命信息与该线程的任务量信息的和小于或等于第八阈值的核中,选择第一核。此时选择第一核的选择方式可以是随机选择或根据剩余寿命信息和/或已使用寿命信息选择等。另外,可选的,可限定选择的第一核的剩余寿命信息不小于该线程的任务量信息,以避免该核在执行该线程后寿命耗尽。
应理解,本申请中涉及的第一阈值、第二阈值、第三阈值、第四阈值、第五阈值、第六阈值、第七阈值或第八阈值中的至少一个,可根据处理器除第一核以外的其他核的平均寿命信息确定,或根据处理器的全部核的平均寿命信息确定。比如,可根据其他核或全部核的平均寿命信息向上或向下浮动一定比例,确定第一阈值、第二阈值、第三阈值、第四阈值、第五阈值、第六阈值、第七阈值或第八阈值中的至少一个。
可选的,在第一核执行该线程后,可根据该线程的任务量信息更新并存储第一核的剩余寿命信息和/或已用寿命信息,用于后续的任务分配中作为该核的寿命信息。其中,可以根据设定时长执行核的寿命信息的更新,或者,在核每执行完一个或多个任务后更新核的寿命信息。
其中,更新核的已用寿命信息的方式可参照前述确定核的已用寿命信息的方式说明。举例来说,处理器根据公式1确定在执行第一任务之前的时刻1,K个核分别的已用寿命信息,并从K个核中确定第一核。处理器可根据第一核已经执行的任务(例如包括第一任务)信息,更新时刻2之前该第一核的已用寿命信息。
这里以时刻1之前,第一核完成的任务数量为M,且在时刻2之前,第一核完成的任务数量为M+1(即在时刻1和时刻2之间,)为例进行说明,此时第一核更新的已用寿命信息Tcomp′可符合公式5:
Figure BDA0003023115670000131
其中,F表示处理器的频率,#instk′表示第k个核在执行第m个任务中执行的指令数,其中,m=1、2……M+1。CPIk表示第k个核执行一个指令的平均运行时间。
Figure BDA0003023115670000132
表示第k个核的访存时间。
Figure BDA0003023115670000133
表示执行第m个任务中,第k个核未被隐藏的访存时间占第k个核执行该第m个任务的运行时间的比例。
另外,也可根据公式1以外的其他方式更新核的已用寿命信息,本申请中不进行具体限定。比如在上例中,还可通过计数器对核执行第一任务的时长进行统计,根据该时长和时刻1之前第一核的已用寿命信息,获得时刻2之前第一核的已用寿命信息。
此外,第k个核的更新的剩余寿命信息可根据第k个核的总寿命信息和第k个核更新的已用寿命信息确定。例如可参照公式2。
本申请实施例中,核的寿命信息可存储在BIOS中,例如,可在BIOS中新增寿命记录(core lifetime recorder)单元或简称为记录单元,用于存储核的寿命信息。在进行任务分配时,执行任务分配的模块或单元可从记录单元中获取核的寿命信息。还可将核的更新的寿命信息存储至记录单元。
下面结合软硬件逻辑结构图,介绍本申请实施例提供的任务分配方法的实现方式。
方式一、通过处理器的操作系统执行软件实现本申请实施例提供的任务分配方法。
以处理器的操作系统是Linux操作系统为例,可由Linux调度器执行软件(如执行计算机程序指令),使得Linux调度器根据核的寿命信息进行任务分配,也就是根据核的寿命信息确定核与任务/线程之间的映射关系。其中,Linux调度器可存储计算机程序指令,或从存储器中获取进行将程序指令,以实现该任务分配方法。
如图6所示,由Linux调度器(图6中表示为调度器)执行软件时,任务分配过程可包括:在应用程序运行后,应用程序的任务通过Linux操作系统(图6中表示为操作系统)的应用程序接口(application programming interface,API)进行资源分配,Linux操作系统的驱动将任务发送到Linux调度器,Linux调度器执行软件,实现以下步骤:从BIOS的记录单元获取核的寿命信息(或称,将记录单元中存储的核的寿命信息透传到Linux调度器),根据核的寿命信息确定任务包括的线程与核之间的映射关系,即实现任务分配。之后,由线程对应的核执行各个线程,之后在线程结束后更新线程对应的核的寿命信息,并将更新的寿命信息存储到BIOS的记录单元中,以便后续根据核的更新的寿命信息进行下一次的任务分配。
方式二、通过处理器实现本申请实施例提供的任务分配方法。
以处理器是CPU为例,可由CPU执行固化在CPU中的软件(如执行计算机程序指令),使得CPU根据核的寿命信息进行任务分配,也就是根据核的寿命信息确定核与任务包括的线程之间的映射关系。另外,也可由CPU从存储系统或CPU以外的存储器获取计算机程序指令,以实现该任务分配方法。
如图7所示,由CPU执行软件时,任务分配过程可包括:在应用程序运行后,应用程序的任务通过Linux操作系统(图7中表示为操作系统)的API进行资源分配,Linux操作系统的驱动将任务发送到Linux调度器(图7中表示为调度器),Linux调度器将任务发送到CPU,由CPU执行软件,实现以下步骤:通过CPU的硬件接口从BIOS的记录单元获取核的寿命信息(或称,将记录单元中存储的核的寿命信息透传到CPU),根据核的寿命信息确定线程与核之间的映射关系。由线程对应的核执行各个线程,在线程结束后,由CPU更新线程对应的核的寿命信息,并通过硬件接口将更新的寿命信息存储到BIOS的记录单元中,以便后续根据核的更新的寿命信息进行下一次的任务分配。
方式三、本申请实施例提供的任务分配方法在异构处理器中的应用。
如图8所示,以CPU和GPU组成的异构处理器为例,CPU可用于对GPU的任务进行调度。其中,CPU与GPU之间可通过快速外围组件互连(peripheral component interconnectexpres,PCIe)总线(bus)或其他方式连接,此时可由CPU的操作系统根据GPU的核的寿命信息对GPU的任务进行分配。可选的,PCIe总线可用于连接CPU的动态随机存取存储器(dynamic random access memory,DRAM)和GPU的DRAM。其中,CPU还可包括控制单元、运算逻辑单元(arithmetic and logic unit,ALU)和高速缓冲存储器(Cache)。
CPU的Linux操作系统可通过PCIe bus获取GPU核的寿命信息,并存储在CPU的BIOS的记录单元中。或者,CPU的Linux操作系统可通过PCIe bus获取GPU核的用于确定寿命信息的参数,比如,GPU的第k个核的总寿命信息、处理器的频率、第k个核的历史指令数、指令的平均任务量信息、第k个核的访存时间,或第k个核在执行至少一个任务中的未被隐藏的访存时间与至少一个任务的运行时间之间的比例中的至少一个信息,根据获取的参数确定GPU核的寿命信息,并存储在CPU BIOS的记录单元中。可选的,GPU核的寿命信息和/或用于确定GPU核的寿命信息的参数可存储在GPU的DRAM中。
当需要对GPU的任务进行分配时,仍以操作系统是Linux系统为例,可由CPU的Linux操作系统的Linux调度器或CPU根据BIOS的记录单元中存储的GPU核的寿命信息对GPU的任务进行分配,即确定GPU的任务包括的线程与GPU的核之间的映射关系。其中,由Linux调度器执行GPU任务分配的方式可参见前述方式一中的说明,由CPU执行GPU任务分配的方式可参见前述方式二中的说明,这里不再展开赘述。可选的,如果由CPU确定线程与GPU的核之间的映射关系,可由CPU通过总线将该映射关系通知给GPU。
此外,在GPU的线程对应的核执行线程后,可由Linux调度器或CPU更新GPU核的寿命信息,并将更新后的GPU核的寿命信息存储在记录单元中。
综上所述,本申请实施例提出了在同构处理器和异构处理器等场景下的多核管理软硬件系统设计,使得任务分配过程根据核的寿命信息进行,解决CPU核的负载均衡问题,以延长核的使用寿命。由于核的寿命延长,核能够工作在较高的频率,因此可以提高处理器的性能。
如图9所示,本申请实施例提供另一种任务分配方法,以任务分配装置执行该方法为例,该方法可包括以下步骤:
S201:任务分配装置获取多个处理器分别的第三信息,第三信息用于描述处理器的使用寿命。
其中,第三信息可以是处理器的寿命信息,比如,第三信息包括处理器的剩余寿命信息和/或已用寿命信息,第三信息也可以是处理器中核的平均寿命信息和/或处理器中剩余寿命最少的核的寿命信息等。其中,处理器的剩余寿命信息可以是处理器包括的核的剩余寿命信息的总和,也可以是用于衡量处理器的剩余寿命的其他的参数或指标。处理器的已用寿命信息可以是处理器包括的核的已用寿命信息的总和,也可以是用于衡量处理器的已用寿命的其他的参数或指标。处理器中核的平均寿命信息可根据处理器中每个核的剩余寿命信息或已用寿命信息确定的。处理器中剩余寿命最少的核的寿命信息可以是该剩余寿命信息最少的核的剩余寿命信息和/或已用寿命信息。
应理解,在图9所示的任务分配方法中,任务分配装置可以是多个处理器中的一个,也可以是多个处理器以外的计算机系统。
S202:任务分配装置根据多个处理器分别的第三信息,从多个处理器中确定用于处理第二任务的第一处理器,第二任务为待处理任务。
例如,任务分配装置可从第三信息指示的剩余寿命信息较大和/或已用寿命信息较小的处理器中选择第一处理器。
采用以上方法,可由任务分配装置根据多个处理器分别的第三消息进行任务分配,因此对多个处理器的寿命进行均衡,以延长多个处理器组成的处理器系统的使用寿命。
可选的,在S202中,任务分配装置可根据多个处理器分别的第三信息和第二任务的任务量信息,确定第一处理器。根据多个处理器分别的第三信息和第二任务的任务量信息确定第一处理器的方式,可参照S102中根据多个核分别的寿命信息和第一任务的任务量信息,确定第一核的方式,以避免由于执行第一任务而导致处理器的寿命耗尽。例如,可确定第三信息指示的剩余寿命信息或不低于第二任务的任务量信息的处理器作为第一处理器。
基于相同的发明构思,本申请实施例还提供一种任务分配装置,用于实现以上方法实施例所示的步骤。该装置可包括图10和/或图11所示结构。该任务分配装置可以应用于具有多个处理器核的计算机系统,可用于实现图2和/或图9所示的任务分配方法。如图10所示,该任务分配装置可以包括记录模块1010和任务分配模块1020。
在实现图2所示任务分配方法时,记录模块1010可用于获取处理器的多个核分别的第一信息,第一信息用于描述核的使用寿命。任务分配模块1020可用于根据多个核分别的第一信息,从多个核中确定用于处理第一任务的第一核,第一任务为待处理任务。
应理解的是,本申请实施例中的任务分配装置可以由软件实现,例如,具有上述记录模块1010和/或任务分配模块1020的功能的计算机程序或指令来实现,相应计算机程序或指令可以存储在终端内部的存储器中,通过处理器读取该存储器内部的相应计算机程序或指令来实现记录模块1010和/或任务分配模块1020的上述功能。或者,本申请实施例中的任务分配装置还可以由硬件来实现。其中,任务分配模块1020可以包括处理器(如CPU或系统芯片中的处理器)。记录模块1010可包括存储器,或包括支持与存储器进行通信的通信接口,例如收发器或输入/输出接口,用于任务分配模块1020从存储器获取核的第一信息。
一种可选的实现方式中,任务分配模块1020可根据多个核分别的第一信息和第一任务的任务量信息,确定所述第一核。
一种可选的实现方式中,如果计算机系统中的处理器包括多个物理核组,任一物理核组包括多个核,第一任务包括多个线程,任务分配模块1020可根据物理核组中的核的第一信息,确定第一任务对应的第一物理核组,并根据第一物理核组中的核的第一信息,从第一物理核组的核中确定第一任务中每个线程对应的核。
一种可选的实现方式中,记录模块1010还可用于存储第一核的更新的第一信息,更新的第一信息根据第一核的第一信息和第一任务的任务量信息确定。可选的,更新的第一信息可由任务分配模块1020确定。
一种可选的实现方式中,处理器的第k个核的第一信息包括第k个核的剩余寿命信息;和/或,第一信息包括第k个核的已用寿命信息。可选的,第k个核的剩余寿命信息根据第k个核的总寿命信息和已用寿命信息确定。
一种可选的实现方式中,第k个核的寿命信息可根据该第k核的历史运行时间、第k个核的频率和历史运行时间、第k核的电压和历史运行时间、第k个核在处理器上的位置、第k核的访存总时间、第k个核的历史指令数和指令的平均运行时间,或者第k个核的频率和访存总时间中的至少一个信息确定。
一种可选的实现方式中,记录模块1010属于固件,或者,记录模块1010可从固件获取处理器的多个核分别的第一信息。
具体来说,记录模块包括固件中的可编辑存储器,该可编辑存储器可用于存储本申请设计的第一信息、第二信息或第三信息中的至少一个。例如,该可编辑存储器是可擦可编程只读存储器(erasable programmable read-only memory,EPROM)或电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)。
或者,记录模块包括处理器的性能监视单元(performance monitor unit,PMU),用于处理器从固件获取第一信息、第二信息或第三信息中的至少一个。
一种可选的实现方式中,任务分配模块1020包括任务调度器。比如,任务分配模块1020是Linux操作系统中的Linux调度器。
在实现图9所示任务分配方法时,记录模块1010可获取多个处理器分别的第三信息,第三信息用于描述处理器的使用寿命。任务分配模块1020可根据多个处理器分别的第一信息,从多个处理器中确定用于处理第二任务的第一处理器,第二任务为待处理任务。
在一种可能的设计中,任务分配模块1020可具体根据所述多个处理器分别的第三信息和所述第二任务的任务量信息,确定所述第一处理器。
可以理解的是,该装置用于上述任务分配方法时的具体实现过程以及相应的有益效果,可以参考前述方法实施例中的相关描述,这里不再赘述。
基于相同的技术构思,本申请实施例还提供了另一种任务分配装置可包括图11所示的结构,用于执行图2、图9和/或本申请实施例提供的任务分配方法的动作。参阅图11所示,该任务分配装置可以包括处理器1110和存储器1120。其中,处理器1110中可包括多个核。存储器1120,可用于存储多个核的寿命信息。处理器1110,可用于执行上述实施例述及的任务分配方法。应理解,图11中仅以1个处理器1110和存储器1120为例进行介绍,本申请提供的任务分配装置中可包括其他数量的存储器1120和处理器1110。
可选的,所述处理器1110、所述存储器1120之间通过总线相互连接。总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述至少一个处理器1110中可以包含以下至少一项:CPU,微处理器,专用集成电路(application specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。其中,所述CPU中可以包括功耗控制器和至少一个处理器核心,所述功耗控制器能够获取所述至少一个处理器核心的失效信息,并将所述至少一个处理器核心的失效信息存储至所述存储器1120中。
存储器1120可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器1120用于存储执行本申请方案的计算机执行指令,并由处理器1110来控制执行。处理器1110用于执行存储器1120中存储的计算机执行指令,从而实现本申请上述实施例提供的任务调度方法。可选的,可由处理器1110实现图10所示的任务分配模块1020的功能。另外,可由存储器1120实现图10所示的记录模块1010的功能,即获取核的第一信息,和/或,存储更新的核的第一信息。
可选的,图11所示的任务分配置在还可包括通信接口,如收发器或输入/输出接口等。例如,在存储器1120中未存储核的寿命信息时,可由接口从其他存储器(或其他存储介质)获取核的第一信息,和/或,将更新的核的第一信息发送至其他存储器。
可选的,本申请实施例中的计算机程序指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储计算机程序,该计算机程序被计算机执行时,计算机可以实现上述方法实施例相关的流程。
本申请实施例还提供一种计算机程序产品,计算机程序产品用于存储计算机程序,该计算机程序被计算机执行时,计算机可以实现上述方法实施例相关的流程。
本申请实施例还提供一种芯片或芯片系统(或电路),该芯片可包括处理器,该处理器可用于调用存储器中的程序或指令,执行上述方法实施例提供的与网络设备和/或终端相关的流程。该芯片系统可包括该芯片、存储器或收发器等组件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的保护范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。另外在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。

Claims (28)

1.一种任务分配方法,其特征在于,包括:
获取处理器的多个核分别的第一信息,所述第一信息用于描述核的使用寿命;
根据所述多个核分别的第一信息,从所述多个核中确定用于处理第一任务的第一核,所述第一任务为待处理任务。
2.如权利要求1所述的方法,其特征在于,所述根据所述多个核分别的第一信息,从所述多个核中确定用于处理第一任务的第一核,包括:
根据所述多个核分别的第一信息和所述第一任务的任务量信息,确定所述第一核。
3.如权利要求1或2所述的方法,其特征在于,所述处理器包括多个物理核组,任一物理核组包括多个所述核,所述方法还包括:
根据所述多个物理核组分别的第二信息,从所述多个物理核组中确定所述第一任务对应的第一物理核组,所述第二信息包括物理核组中核的平均寿命信息和/或物理核组中剩余寿命最少的核的寿命信息,所述第一物理核组中的核包括所述第一核。
4.如权利要求3所述的方法,其特征在于,所述第一任务包括多个线程,所述根据所述多个核分别的第一信息,从所述多个核中确定用于处理第一任务的第一核,包括:
根据所述第一物理核组中的核的所述第一信息,从所述第一物理核组的核中确定所述第一任务中每个线程对应的核。
5.如权利要求1-4中任一所述的方法,其特征在于,还包括:
存储所述第一核的更新的第一信息,所述更新的第一信息根据所述第一核的第一信息和所述第一任务的任务量信息确定。
6.如权利要求1-5中任一所述的方法,其特征在于,所述处理器的第k个核的所述第一信息包括所述第k个核的剩余寿命信息;和/或,
所述第一信息包括所述第k个核的已用寿命信息。
7.如权利要求1-6中任一所述的方法,其特征在于,所述第k个核的第一信息根据以下信息确定:
所述第k核的频率和历史运行时间;或者,
所述第k核的电压和历史运行时间;或者,
所述第k核的历史运行时间;或者,
所述第k个核在所述处理器上的位置;或者,
所述第k核的访存总时间;或者,
所述第k个核的历史指令数和指令的平均运行时间;或者,
所述第k个核的频率和访存总时间。
8.一种任务分配装置,其特征在于,包括:
记录模块,用于获取处理器的多个核分别的第一信息,所述第一信息用于描述核的使用寿命;
任务分配模块,用于根据所述多个核分别的第一信息,从所述多个核中确定用于处理第一任务的第一核,所述第一任务为待处理任务。
9.如权利要求8所述的装置,其特征在于,所述任务分配模块具体用于:
根据所述多个核分别的第一信息和所述第一任务的任务量信息,确定所述第一核。
10.如权利要求8或9所述的装置,其特征在于,所述处理器包括多个物理核组,任一物理核组包括多个所述核,所述任务分配模块还用于:
根据所述多个物理核组分别的第二信息,从所述多个物理核组中确定所述第一任务对应的第一物理核组,所述第二信息包括物理核组中核的平均寿命信息和/或物理核组中剩余寿命最少的核的寿命信息,所述第一物理核组中的核包括所述第一核。
11.如权利要求10所述的装置,其特征在于,所述第一任务包括多个线程,所述任务分配模块具体用于:
根据所述第一物理核组中的核的所述第一信息,从所述第一物理核组的核中确定所述第一任务中每个线程对应的核。
12.如权利要求8-11中任一所述的装置,其特征在于,所述记录模块还用于:
存储所述第一核的更新的第一信息,所述更新的第一信息根据所述第一核的第一信息和所述第一任务的任务量信息确定。
13.如权利要求8-12中任一所述的装置,其特征在于,所述处理器的第k个核的所述第一信息包括所述第k个核的剩余寿命信息;和/或,
所述第一信息包括所述第k个核的已用寿命信息。
14.如权利要求8-13中任一所述的装置,其特征在于,所述第k个核的第一信息根据以下信息确定:
所述第k核的频率和历史运行时间;或者,
所述第k核的电压和历史运行时间;或者,
所述第k核的历史运行时间;或者,
所述第k个核的所述第k个核在所述处理器上的位置;或者,
所述第k个核的访存总时间;或者,
所述第k个核的历史指令数和指令的平均运行时间;或者,
所述第k个核的频率和访存总时间。
15.如权利要求8-14中任一所述的装置,其特征在于,所述记录模块属于固件;或者,
所述记录模块具体用于:
从固件获取所述处理器的多个核分别的第一信息。
16.如权利要求15所述的装置,其特征在于,所述记录模块包括所述固件中的可编辑存储器。
17.如权利要求15所述的装置,其特征在于,所述记录模块包括所述处理器的性能监视单元,所述性能监视单元具体用于:
从固件获取所述处理器的多个核分别的第一信息。
18.如权利要求8-17中任一所述的装置,其特征在于,所述任务分配模块包括任务调度器。
19.一种任务分配方法,其特征在于,包括:
获取多个处理器分别的第三信息,所述第三信息用于描述处理器的使用寿命;
根据所述多个处理器分别的第一信息,从所述多个处理器中确定用于处理第二任务的第一处理器,所述第二任务为待处理任务。
20.如权利要求19所述的方法,其特征在于,所述根据所述多个处理器分别的第一信息,从所述多个处理器中确定用于处理第二任务的第一处理器,包括:
根据所述多个处理器分别的第三信息和所述第二任务的任务量信息,确定所述第一处理器。
21.一种任务分配装置,其特征在于,包括:
记录单元,用于获取处理器的多个处理器分别的第三信息,所述第三信息用于描述处理器的使用寿命;
任务分配模块,用于根据所述多个处理器分别的第一信息,从所述多个处理器中确定用于处理第二任务的第一处理器,所述第二任务为待处理任务。
22.如权利要求21所述的装置,其特征在于,所述任务分配模块具体用于:
根据所述多个处理器分别的第三信息和所述第一任务的任务量信息,确定所述第一处理器。
23.如权利要求21或22所述的装置,其特征在于,所述记录模块属于第一处理器的固件;或者,
所述记录模块还用于:
从所述处理器分别的固件获取所述处理器分别的第三信息。
24.如权利要求23所述的装置,其特征在于,所述记录模块包括所述第一处理器的固件中的可编辑存储器。
25.如权利要求23所述的装置,其特征在于,所述记录模块包括所述处理器的性能监视单元,所述性能监视单元具体用于:
从所述处理器分别的固件获取所述处理器分别的第三信息。
26.一种任务处理装置,其特征在于,包括存储器和处理器:
所述存储器用于存储计算机程序指令;
所述处理器用于调用计算机程序指令并执行,以实现如权利要求1-7或19-20中任一所述的方法。
27.一种芯片,其特征在于,与存储器连接,用于允许所述存储器中存储的程序指令,使得所述计算机执行如权利要求1-7或19-20中任一所述的方法。
28.一种计算机可读存储介质,其特征在于,存储有计算机程序指令,当所述计算机程序指令在计算机上运行时,使得所述计算机执行如权利要求1-7或19-20中任一所述的方法。
CN202110408180.7A 2021-03-09 2021-04-15 一种任务分配方法及装置 Pending CN115048194A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/103160 WO2022188306A1 (zh) 2021-03-09 2021-06-29 一种任务分配方法及装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2021102546994 2021-03-09
CN202110254699 2021-03-09

Publications (1)

Publication Number Publication Date
CN115048194A true CN115048194A (zh) 2022-09-13

Family

ID=83156407

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110408180.7A Pending CN115048194A (zh) 2021-03-09 2021-04-15 一种任务分配方法及装置

Country Status (2)

Country Link
CN (1) CN115048194A (zh)
WO (1) WO2022188306A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9606843B2 (en) * 2013-12-18 2017-03-28 Qualcomm Incorporated Runtime optimization of multi-core system designs for increased operating life and maximized performance
US9710041B2 (en) * 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
KR20180098904A (ko) * 2017-02-27 2018-09-05 삼성전자주식회사 컴퓨팅 장치 및 컴퓨팅 장치에 포함된 복수의 코어들에 전력을 할당하는 방법
KR102639095B1 (ko) * 2018-10-29 2024-02-23 삼성전자주식회사 열화도를 관리하기 위한 전자 장치

Also Published As

Publication number Publication date
WO2022188306A1 (zh) 2022-09-15

Similar Documents

Publication Publication Date Title
US10748237B2 (en) Adaptive scheduling for task assignment among heterogeneous processor cores
CN106557367B (zh) 用于为计算资源提供粒度化服务质量的装置、方法和设备
EP3155521B1 (en) Systems and methods of managing processor device power consumption
US8489904B2 (en) Allocating computing system power levels responsive to service level agreements
TWI537821B (zh) 對每一核心提供電壓及頻率控制之技術
US20150046679A1 (en) Energy-Efficient Run-Time Offloading of Dynamically Generated Code in Heterogenuous Multiprocessor Systems
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
CN102855216B (zh) 改进多处理器计算机系统的性能
JP2018533122A (ja) マルチバージョンタスクの効率的なスケジューリング
JP2009151774A (ja) マルチコア・プロセッサ上での自律型ワークロード分配のための方法、装置、およびシステム
US20180032376A1 (en) Apparatus and method for group-based scheduling in multi-core processor system
US20200218567A1 (en) Master device for managing distributed processing of task, task processing device for processing task, and method therefor
US10768684B2 (en) Reducing power by vacating subsets of CPUs and memory
US9547576B2 (en) Multi-core processor system and control method
CN111190735A (zh) 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统
US20140259022A1 (en) Apparatus and method for managing heterogeneous multi-core processor system
US8464258B2 (en) Virtual computer and CPU allocation method
CN116136783A (zh) 多加速器框架中的高效加速器卸载
CN104598304A (zh) 用于作业执行中的调度的方法和装置
CN112925616A (zh) 任务分配方法、装置、存储介质及电子设备
CN109840151A (zh) 一种用于多核处理器的负载均衡方法和装置
CN115048194A (zh) 一种任务分配方法及装置
WO2022062937A1 (zh) 任务调度方法、装置以及计算机系统
KR20120069364A (ko) 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치 및 방법
CN111984392A (zh) 任务调度方法、装置、电子设备及存储介质

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