CN115867893A - 基于使用策略和核心约束的核心选择 - Google Patents

基于使用策略和核心约束的核心选择 Download PDF

Info

Publication number
CN115867893A
CN115867893A CN202180045556.0A CN202180045556A CN115867893A CN 115867893 A CN115867893 A CN 115867893A CN 202180045556 A CN202180045556 A CN 202180045556A CN 115867893 A CN115867893 A CN 115867893A
Authority
CN
China
Prior art keywords
processor core
workload
cost
core
processing unit
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
CN202180045556.0A
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN115867893A publication Critical patent/CN115867893A/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/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/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
    • 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/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
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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
    • 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]
    • 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
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/5033Allocation 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 data affinity
    • 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/5044Allocation 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 hardware capabilities
    • 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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • 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

Abstract

处理系统的处理单元基于在每个处理器核心上运行工作负载的成本来编译多个处理器核心的优先级队列列表以运行工作负载。该成本基于系统使用策略、工作负载的特性以及每个处理器核心的一个或多个物理约束中的至少一者。处理单元基于运行工作负载的成本来选择处理器核心,并将选定处理器核心的标识符传送到处理系统的操作系统。

Description

基于使用策略和核心约束的核心选择
背景技术
现代处理器包括用于并行执行指令的多个处理器核心。随着处理器或片上系统(SoC)的处理器核心的数量增加,处理器核心倾向于具有对诸如电压和温度之类的基础设施约束的更宽范围的频率响应。例如,每个处理器核心具有不同的最小电压,在该最小电压下,每个处理器核心在给定温度下达到最大频率。此外,由于处理器核心的微体系结构或结构尺寸的差异,可能出现处理器核心之间的频率响应的变化。驻留在SoC上的处理器核心的异构性意味着每个处理器核心具有不同的能量效率和最大操作频率特性,在一些情况下大约为几百兆赫。
附图说明
通过参考附图,本公开可以被更好地理解,并且其许多特征和优点对于本领域技术人员是显而易见的。在不同附图中使用相同的附图标记表示类似或相同的项目。
图1是根据一些实施方案的处理系统的框图,该处理系统包括被配置为向操作系统提供选定核心标识符的处理单元。
图2是根据一些实施方案的图1的处理单元的核心选择引擎的框图。
图3是根据一些实施方案的编译处理器核心的优先级队列列表以运行工作负载的方法的流程图。
图4是根据一些实施方案的向操作系统提供选定核心标识的核心选择引擎的框图。
图5是示出根据一些实施方案的从处理单元向操作系统提供选定核心标识的方法的流程图。
具体实施方式
图1至图5示出了用于基于系统使用策略的范围和处理器核心的约束(诸如例如,电压对频率的响应)从处理设备的多个处理器核心中选择处理器核心(或处理器核心集合)以运行工作负载并将所选择的处理器核心传送到操作系统(OS)的系统和技术。响应于从OS接收到针对处理器核心运行第一工作负载的请求,处理器的处理单元(诸如中央处理单元(CPU)或加速处理单元(APU))基于在每个处理器核心上运行第一工作负载的成本来编译运行第一工作负载的处理器核心的优先级队列列表,其中该成本基于例如系统使用策略、第一工作负载的特性以及每个处理器核心的一个或多个物理约束。处理单元基于运行第一工作负载的成本来选择处理器核心,并且将所选择的处理器核心的标识符传送到OS。在一些实施方案中,处理单元将选定处理器核心的标识符写入OS从其进行读取的寄存器。
一旦处理单元将选定处理器核心的标识符传送给OS,则处理单元就从优先级队列的顶部移除或弹出所选处理器核心,同时OS利用所选处理器核心来运行第一工作负载。在OS完成在所选择的处理器核心上运行第一工作负载之后,OS将所选择的处理器核心返回到处理单元。处理单元然后计算选定处理器核心的更新成本,并将选定处理器核心在基于更新成本的位置处重新插入到优先级队列中。
处理单元具有对处理器核心的低级物理约束参数值的访问权限,并且通过维持处理器核心的动态更新的优先级队列并且向OS传送所选择的核心的标识符以运行每个工作负载来减少OS处确定选择哪个处理器核心以运行工作负载的计算负担。处理单元响应于中断事件(诸如处理系统的功率模式从交流(AC)到直流(DC)的改变或反之亦然)更新优先级队列,并且周期性地更新。通过基于运行工作负载的当前成本来选择处理器核心并且向OS提供所选择的处理器标识符,与向OS提供处理器核心的静态顺序相反,处理单元提高了处理系统的性能和能量效率并且减少了OS处的计算负载。
在一些实施方案中,如果OS请求另一处理器核心运行第二工作负载,同时所选择的处理器正在运行第一工作负载,则处理单元基于在每个处理器核心上运行第二工作负载的成本来更新用于运行第二工作负载的处理器核心的优先级队列列表(此时其不包括被选择运行第一工作负载的处理器核心)。该成本基于当前系统使用策略、第二工作负载的特性以及每个处理器核心的一个或多个物理约束。
在一些实施方案中,处理单元周期性地或基于中断事件(诸如更新的系统使用策略)来更新优先级队列。系统使用策略基于例如处理器的电源是处于AC模式(即,断开到电网的连接)还是DC模式(断开电池电源),或者当前应用是否涉及高图形强度而动态地改变。每个处理器核心的物理约束包括诸如温度、功率、达到给定频率所需的电压、可靠性、所需性能水平、微体系结构特征、每秒指令、存储器带宽、存储器控制器中的存储器流量以及年龄之类的因素。
周期性地,或响应于诸如更新的系统使用策略或准备好待调度的新工作负载之类的中断,处理单元基于系统使用策略和每个处理器核心的物理约束来计算在每个处理器核心上运行工作负载的成本。处理单元以计算出的成本的降序对处理器核心进行排序以编译优先级队列。按照基于当前成本的更新的优先级队列,处理单元为每个工作负载选择适合当前使用策略的核心。
图1是根据一些实施方案的处理系统100的框图。处理系统100包括处理单元102和处理单元108。在各种实施方案中,处理单元108包括一个或多个单核心或多核心处理器核心110。处理单元102包括核心选择引擎104,其生成处理单元108的处理核心110的优先级队列106。处理系统100通常被配置为执行指令集(例如,计算机程序)诸如应用116,以执行电子设备的指定任务。此类任务的示例包括控制电子设备的操作的各方面、向用户显示信息以提供指定的用户体验、与其他电子设备通信,等等。因此,在不同的实施方案中,处理系统100用于多种类型的电子设备中的一种,诸如台式计算机、膝上型计算机、服务器、游戏控制台、平板电脑、智能电话,等等。应当理解,处理系统100可包括比图1所示更多或更少的部件。例如,处理系统100可以另外包括一个或多个输入接口、非易失性存储装置、一个或多个输出接口、网络接口,以及一个或多个显示器或显示接口。
如图1所示,处理系统100也包括系统存储器120、操作系统118、通信基础设施114和一个或多个应用116。对系统存储器120的访问由耦接到存储器120的存储器控制器(未示出)来管理。例如,来自处理单元102或其他设备的用于对系统存储器120进行读取或写入的请求由存储器控制器来管理。在一些实施方案中,一个或多个应用116包括各种程序或命令,用以执行也在处理单元102处所执行的计算。下文将更详细地论述操作系统118和通信基础设施114。处理系统100还包括存储器管理单元,诸如输入/输出存储器管理单元(IOMMU)(未示出)。处理系统100的部件可以实施为硬件、固件、软件或其任何组合。在一些实施方案中,处理系统100包括除了图1中示出的那些部件之外的或与图1中示出的那些部件不同的一个或多个软件、硬件和固件部件。
在处理系统100内,系统存储器120包括非持久性存储器,诸如DRAM(未示出)。在各种实施方案中,系统存储器120存储处理逻辑指令、常数值、在执行各部分应用或其他处理逻辑期间的变量值、或其他所需信息。例如,在各种实施方案中,用于在处理单元102或处理单元108上执行一个或多个操作的控制逻辑的部分在处理单元102或处理单元108执行操作的相应部分期间驻留在系统存储器120内。在执行期间,相应应用、操作系统功能、处理逻辑命令和系统软件驻留在系统存储器120中。为操作系统118基础的控制逻辑命令通常在执行期间驻留在系统存储器120中。在一些实施方案中,在处理系统100的执行期间,其他软件命令也驻留在系统存储器120中。
在各种实施方案中,通信基础设施114与处理系统100的部件互连。通信基础设施114包括(未示出)以下一项或多项:一个或多个外围部件互连(PCI)总线、扩展PCI(PCI-E)总线、高级微控制器总线架构(AMBA)总线、高级图形端口(AGP)、或其他此类通信基础设施和互连件。在一些实施方案中,通信基础设施114也包括以太网网络或任何其他合适的满足了应用的数据传输速率要求的物理通信基础设施。通信基础设施114也包括用以将部件互连的功能,包括处理系统100的部件。
处理单元102包括(未示出)以下一项或多项:控制处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或数字信号处理器(DSP)。处理单元102执行至少一部分控制着处理系统100的操作的控制逻辑。例如,在各种实施方案中,处理单元102执行操作系统118和一个或多个应用116。在一些实施方案中,通过跨处理单元102分配与一个或多个应用116相关联的处理,处理单元102发起并控制一个或多个应用116的执行。
处理单元108执行针对所选功能的命令和程序,诸如图形操作以及其他特别适合于并行处理的操作。一般来说,处理单元108常用于执行图形管线操作,诸如像素操作、几何计算以及将图像再现到显示器。在一些实施方案中,处理单元108也基于从处理单元102接收到的命令或指令,执行计算处理操作(例如,与图形无关的操作,诸如视频操作、物理模拟、计算流体动力学等)。例如,此类命令包括通常未定义于处理单元108的指令集架构(ISA)中的特殊指令。在一些实施方案中,处理单元108接收表示图形图像的图像几何形状,以及用于渲染和显示图像的一个或多个命令或指令。在各种实施方案中,图像几何形状对应于二维(2D)或三维(3D)计算机化图形图像的表示。
在各种实施方案中,处理单元108包括一个或多个计算单元,诸如包括一个或多个SIMD单元(未示出)的一个或多个处理器核心110,该一个或多个SIMD单元被配置为例如根据单指令多数据(SIMD)执行模型与波前中的其他线程的执行同时地执行线程。SIMD执行模型是这样一种模型,其中多个处理元件共享单个程序控制流单元和程序计数器,并且因此执行相同的程序,但是能够用不同数据来执行该程序。处理单元108的一些实施方案用于实现GPU,并且在该情况下,处理核心110称为着色器核心或流式多处理器(SMX)。在处理单元108中实现的处理核心110的数量是设计选择的问题。每个处理核心110包括一个或多个处理元件,诸如标量和/或向量浮点单元、算术和逻辑单元(ALU)等。在各种实施方案中,处理核心110也包括专用处理单元(未示出),诸如反平方根单元和正弦/余弦单元。
处理器核心110中的每一个执行特定工作项的相应实例化以处理传入数据,其中一个或多个处理核心110中的基本执行单位是工作项(例如,线程)。每个工作项表示例如内核的并行执行集合的单个实例化,该内核由待并行执行的命令在设备上所调用。工作项作为在处理器核心110处正执行的工作组的一部分在一个或多个处理元件处执行。
处理单元108包括发出并执行工作项的GPU,工作项包括在单个SIMD单元上作为“波前”或“工作负载”同时执行的线程组。波前也可互换地称为线程束、向量或线程。在一些实施方案中,波前包括着色器程序的并行执行实例,其中每一波前包括依据SIMD范式而在单个SIMD单元上同时执行的多个工作项(例如,一个用多项数据来执行相同指令流的指令控制单元)。调度器(未示出)被配置为执行与调度不同处理器核心110上的各种波前有关的操作,以及执行用于协调处理单元108上的各种任务的其他操作。
处理器核心110具有一定范围的物理约束,诸如对基础设施约束(诸如电压和温度)的频率响应。处理器核心物理约束会基于系统使用情况以及工作负载的不同而改变。例如,如果处理器核心110的温度超过阈值,则可以降低处理器核心110的最大频率,并且可以负面地影响处理器核心110的可靠性。相反,更大的深度C状态驻留趋向于提高处理器核心110的可靠性。
为了改进性能,处理单元102包括核心选择引擎104,其基于成本来动态地选择核心或核心集合以运行每个工作负载并且将选定核心传送到OS118。核心选择引擎104可以访问处理器核心110的低级物理约束参数值,诸如功率、温度、达到给定频率所需的电压以及可靠性,并且通过维持处理器核心110的动态更新的优先级队列106并且将选定核心110的标识符112传送到OS 118以运行每个工作负载来减少OS 118处确定选择哪个处理器核心110运行工作负载的计算负担。
为了说明,在操作中,处理单元102从OS 118接收对处理器核心运行工作负载的请求。核心选择引擎104基于考虑当前系统使用策略、每个处理器核心110的物理约束和工作负载的特性中的一者或多者的成本函数来确定在每个处理器核心110处运行工作负载的成本。核心选择引擎104基于计算出的在每个处理器核心110处运行工作负载的成本来编译按顺序列出处理器核心110的优先级队列106。核心选择引擎104从优先级队列106中选择处理器核心以运行工作负载,并且将选定核心的标识符112传送到OS 118。例如,在一些实施方案中,成本函数在给定当前系统使用策略的情况下将较高成本与运行工作负载的较高适合性相关联,并且核心选择引擎104选择具有最高成本的处理器核心。
在一些实施方案中,来自OS 118的使处理器核心运行工作负载的请求包括该工作负载具有低优先级的指示,诸如例如当OS 118正在运行低优先级后台任务时。因为优先级队列106已经将处理器核心从最高性能到最低性能进行排序,所以核心选择引擎104响应于接收到工作负载具有低优先级的指示而选择具有最低成本的处理器核心。
图2是根据一些实施方案的图1的处理单元102的核心选择引擎104的框图。核心选择引擎104包括电源监视器204、系统使用策略206、处理器核心物理约束因素210和核心成本计算器212。核心选择引擎104确定在每个处理器核心110(未示出)上运行工作负载202的成本并且编译以降序成本次序列出处理器核心110的优先级队列106。核心选择引擎104在硬件中或在运行功率管理固件代码的微控制器中实施。在一些实施方案中,核心选择引擎104被实现为硬编码或可编程逻辑、执行软件/固件指令的一个或多个处理器、或它们的任何组合。
电源监视器204监测处理系统100是处于AC功率模式还是DC功率模式。在一些实施方案中,当处理系统100处于DC功率模式时,电源监视器204还监测电池充电水平。电源监视器204被实现为硬编码或可编程逻辑、执行软件/固件指令的一个或多个处理器、或它们的任何组合。
在一些实施方案中,系统使用策略206被实现为具有固定范围[Zmin,Zmax]的折衷参数Z 208,其中较低值与较高电池模式/能量效率相关联,而较高值与高性能相关联。因此,例如,在一些实施方案中,Z 208的范围是从针对电池模式/能量效率的0到针对高性能的1。Z 208的值在一些实施方案中是连续的,而在其他实施方案中是离散的。在一些实施方案中,折衷参数Z 208可由终端用户或由OS 118调整。系统使用策略206从电源监视器204接收何时处理系统100的功率模式从AC变为DC或从DC变为AC,或者何时电池充电水平低于阈值的指示。
在一些实施方案中,折衷值Z 208可以根据与在处理系统100处执行特定类型的程序或应用相关联的特定操作模式来设置。例如,在一些实施方案中,折衷值Z 208可以被设置为指示“游戏模式”的值。当终端用户或OS 118选择游戏模式值时,核心选择引擎104选择共享L3高速缓存和具有针对工作负载202的最佳成本的其他资源的两个或更多个核心的组(核心复合体)。
物理约束因素210是针对每个工作负载且针对每个处理器核心110的参数(诸如功率、温度、所需性能水平、达到特定频率所需电压、可靠性和年龄)以及系统范围微体系结构事件(诸如每秒指令、存储器带宽和存储器控制器处的存储器流量)的储存库。在一些实施方案中,物理约束因素210包括在给定温度下达到每个核心的最大频率的检测到的最小电压。对于其中折衷值Z 208可被设置为游戏模式值的实施方案,物理约束因素210包括用于共享L3高速缓存和其他资源的核心复合体的性能参数。
核心成本计算器212针对给定折衷值Z 208确定用于在每个处理器核心110处运行工作负载202的成本。例如,在一些实施方案中,核心成本计算器212为每个核心确定以下成本:
Cost(Core0)=fCore0(X1,X2,...,XM,Z)
其中X1和X2是诸如温度、功率等参数,并且M是所使用的参数的总数。更具体地,在一些实施方案中,核心成本计算器212使用以下公式确定每个核心的成本:
Figure BDA0004017988450000081
其中z∈[0,1]和功率Core0是Core0的功率消耗,并且PerfCore0是Core0的最大可实现性能。PowerMAX是所有处理器核心的最大功率消耗值
Powermax=max(PowerCore0,PowerCore1,...,PowCoreN-1)
并且PerfMAX是所有处理器核心的最大性能值
Perfmax=max(PerfCore0,PerfCore1,...,PerfCoreN-1)
并且两者都是核心成本计算器212已知的。
在一些实施方案中,核心成本计算器212采用成本函数,当电源监视器204指示处理系统100在电池模式下操作时,该成本函数针对空闲优先考虑低泄漏。在一些实施方案中,核心成本计算器212采用考虑处理器核心温度并确定芯片上的热点的成本函数,因为高温会降低处理器核心110的最大频率并影响处理器核心110的可靠性。类似地,较高的操作电压会降低处理器核心110的可靠性,而较大的深度C状态驻留会提高可靠性。通过采用考虑诸如温度、电压和深度C状态驻留的因素的成本函数,核心成本计算器212计算反映这些条件的每个处理器核心110的成本。在一些实施方案中,核心成本计算器212采用成本函数,该成本函数考虑在给定温度下每个处理器核心110达到最大频率的最小电压,或者基于老化计数器的处理器核心年龄。核心成本计算器212以类似方式计算每个核心的成本,并且基于在每个处理器核心110处运行工作负载202的成本来编译处理器核心110的优先级队列106。
图3是根据一些实施方案的编译处理器核心110的优先级队列106以运行工作负载的方法300的流程图。在框302处,核心选择引擎104确定用于运行工作负载的每个处理器核心的参数。在框304处,核心成本计算器212基于存储在物理约束因素210处的参数、当前有效的系统使用策略206和工作负载的特性来计算每个处理器核心110运行工作负载的成本。在框306处,核心选择引擎104基于处理器核心的计算出的成本来编译列出处理器核心110的优先级队列106。在一些实施方案中,较高成本与更适于运行工作负载的处理器核心相关,并且核心选择引擎104以成本的降序次序列出处理器核心110。
核心选择引擎104重新计算每个处理器核心110的成本,并且周期性地重新编译优先级队列106的处理器核心110的列表。在一些实施方案中,核心选择引擎104还响应于中断事件而重新计算每个处理器核心110的成本并且重新编译优先级队列106的处理器核心110的列表,该中断事件诸如为从OS 118接收到使处理器核心110运行新的工作负载的请求、系统使用策略206的改变或者来自电源监视器204的电力模式改变的指示。
图4是根据一些实施方案的向操作系统118提供选定核心标识的核心选择引擎104的框图。核心选择引擎104已编译优先级队列106,其基于来自电源监视器204的电力模式的指示、基于折衷参数Z 208设定当前有效的系统使用策略206、用于每个处理器核心110的物理约束因素210以及工作负载的特性以运行工作负载的成本的降序次序列出四个处理器核心。在例示的示例中,核心选择引擎104已将处理器核心C3 406列为用以运行工作负载的最高成本处理器核心,将处理器核心C1 402列为用以运行工作负载的第二高成本处理器核心,将处理器核心C4 408列为用以运行工作负载的第三高成本处理器核心,并且将处理器核心C2 404列为用以运行工作负载的第四高成本处理器核心。
响应于从OS 118接收到针对处理器核心运行工作负载的请求,核心选择引擎104将处理器核心C3 406的标识符传送到OS 118并且从优先级队列106弹出(即,移除)处理器核心C3 406。在一些实施方案中,核心选择引擎104通过将标识符写入由OS 118读取的寄存器来传送标识符。在OS正在利用处理器核心C3 406来运行工作负载的时间期间,优先级队列106仅包括作为最高成本处理器核心的处理器核心C1 402、作为第二高成本处理器核心的处理器核心C4 408、以及作为第三高成本处理器核心的处理器核心C2 404。如果OS 118请求第二处理器核心,则核心选择引擎104将处理器核心C1 402的标识符传送到OS 118并且从优先级队列106弹出处理器核心C1 402,该优先级队列现在仅包括处理器核心C4 408和处理器核心C2404。
当OS 118完成在处理器核心C3 406上运行工作负载时,OS 118向核心选择引擎104指示工作负载已经完成在处理器核心C3 406上运行。响应于接收到该指示,核心选择引擎104计算在处理器核心C3 406处运行下一工作负载的新成本,并且将处理器核心C3 406重新插入到优先级队列106中。在一些实施方案中,核心选择引擎104响应于诸如更新的系统使用策略206之类的中断事件或周期性地确定每个处理器核心的成本。
在一些实施方案中,来自OS 118的使处理器核心运行工作负载的请求包括该工作负载具有低优先级的指示,诸如例如当OS 118正在运行低优先级后台任务时。响应于接收到对处理器核心运行低优先级工作负载的请求,核心选择引擎104传送最低成本处理器核心C2 404的标识符以运行该工作负载,并且从优先级队列106中移除处理器核心C2 404。
图5是示出根据一些实施方案的从处理单元向操作系统提供选定核心标识的方法500的流程图。在图1所示的处理单元102和图2中所示的核心选择引擎104的一些实施方案中实现方法500。
在框502处,处理单元102从OS 118接收对针对工作负载的处理器核心的请求。在框504处,核心选择引擎104基于折衷参数Z 208的当前值来确定系统使用策略206。在框506处,核心成本计算器212应用成本函数以基于来自电源监视器204的电力模式的指示、基于折衷参数Z 208设定当前有效的系统使用策略206、用于每个处理器核心110的物理约束因素210以及工作负载的特性来计算每个处理器核心110运行工作负载的成本。
在框508处,核心选择引擎104编译处理器核心110的优先级队列106,其基于计算出的在每个处理器核心110处运行工作负载的成本来对处理器核心进行排序。在一些实施方案中,较高成本与用于工作负载的更合适的处理器核心相关,并且核心选择引擎104根据成本以降序次序对处理器核心进行排序,使得最高成本处理器核心是优先级队列106中的第一处理器核心。在一些实施方案中,如果电源监视器204指示处理系统100正在运行DC模式(电池),则核心选择引擎104选择具有最低空闲泄漏的处理器核心110作为选定处理器核心。
在框510处,核心选择引擎104将用于运行工作负载的选定处理器核心的标识符传送到OS 118。在一些实施方案中,核心选择引擎104将选定处理器核心的标识符写入由OS118读取的寄存器。根据核心成本计算器212所应用的成本函数,改变参数或条件(诸如从AC到DC功率模式的切换)触发在每个处理器核心处运行工作负载的成本的重新计算,从而导致传送到OS 118的选定处理器核心标识符的改变。在一些实施方案中,将更新的选定处理器核心标识符传送到OS 118会导致OS 118调度新进程或将当前任务迁移到其它核心。
在框512处,响应于将选定处理器核心的标识符传送到OS 118,核心选择引擎104从优先级队列106中移除所标识的选定处理器核心,同时OS118在选定处理器核心处运行工作负载。当工作负载完成在选定处理器核心处运行时,OS 118向核心选择引擎104指示工作负载已完成。在框514处,核心选择引擎104从OS 118接收工作负载已完成运行的指示。在框516处,核心成本计算器212计算选定处理器核心的新成本,并且核心选择引擎104在基于新成本的位置处将选定处理器核心返回到优先级队列106。然后方法流程继续回到框502以用于下一工作负载。
计算机可读存储介质可以包括在使用期间可由计算机系统访问以向计算机系统提供指令和/或数据的任何非暂态存储介质或非暂态存储介质的组合。此类存储介质可以包括但不限于光学介质(例如,光盘(CD)、数字通用光盘(DVD)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或闪存存储器)、或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以嵌入计算系统(例如,系统RAM或ROM)中,固定地附接到计算系统(例如,磁性硬盘驱动器),可移除地附接到计算系统(例如,光盘或基于通用串行总线(USB)的闪存存储器),或者经由有线或无线网络(例如,网络可访问存储装置(NAS))耦接到计算机系统。
在一些实施方案中,上述技术的某些方面可以由执行软件的处理系统的一个或多个处理器实现。软件包括可执行指令的一个或多个集合,该可执行指令存储在或以其他方式有形地体现在非暂态计算机可读存储介质上。软件可包括指令和某些数据,这些指令和数据在由一个或多个处理器执行时操纵一个或多个处理器以执行上述技术的一个或多个方面。非暂态计算机可读存储介质可包括例如磁盘或光盘存储设备、固态存储设备诸如闪存存储器、高速缓冲存储器、随机存取存储器(RAM)或其他一个或多个非易失性存储器设备等。存储在非暂态计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码、或者被一个或多个处理器解释或以其他方式执行的其他指令格式。
应当注意,并非以上在一般描述中描述的所有活动或元件都是必需的,特定活动或设备的一部分可能不是必需的,并且可以执行一个或多个另外的活动,或者除了所描述的那些之外还包括元件。更进一步地,列出活动的顺序不一定是执行它们的顺序。另外,已经参考具体实施方案描述了这些概念。然而,本领域普通技术人员理解,在不脱离如以下权利要求中阐述的本公开的范围的情况下,可以进行各种修改和改变。因此,说明书和附图被认为是说明性的而非限制性的,并且所有此类修改旨在被包括在本公开的范围内。
上文已经关于具体实施方案描述了益处、其他优点和问题的解决方案。然而,益处、优点、问题的解决方案以及可以导致任何益处、优点或解决方案出现或变得更显著的任何特征不应被解释为任何或所有权利要求的关键的、必需的或基本的特征。此外,上文公开的特定实施方案仅是说明性的,因为所公开的主题可以以受益于本文中的教导内容的本领域的技术人员显而易见的不同但等效的方式来修改和实践。除了以下权利要求书中所描述的之外,不旨在对本文所示的构造或设计的细节进行限制。因此,显而易见的是,可以改变或修改上文公开的特定实施方案,并且所有此类变化被认为是在所公开的主题的范围内。因此,本文寻求的保护如以下权利要求中所阐述。

Claims (20)

1.一种方法,包括:
确定在处理系统的多个处理器核心中的每个处理器核心处运行第一工作负载的第一成本;
在所述处理系统的处理单元处,基于所述第一成本来选择第一处理器核心以运行所述第一工作负载;以及
将所述第一处理器核心的标识符传送到所述处理系统的操作系统。
2.根据权利要求1所述的方法,其中所述第一成本基于系统使用策略、所述第一工作负载的特性以及每个处理器核心的一个或多个物理约束中的至少一者。
3.根据权利要求2所述的方法,其中所述系统使用策略基于能量效率和性能之间的折衷。
4.根据权利要求2所述的方法,还包括:
响应于检测到所述系统使用策略的改变而更新所述第一成本。
5.根据权利要求1所述的方法,还包括:
基于在每个处理器核心处运行所述第一工作负载的所述第一成本来为所述多个处理器核心编译第一优先级队列;并且
其中选择包括选择具有最高第一成本的所述处理器核心。
6.根据权利要求1所述的方法,还包括:
从所述操作系统接收所述第一工作负载具有低优先级的指示;
基于在每个处理器核心处运行所述第一工作负载的所述第一成本来为所述多个处理器核心编译第一优先级队列;并且
其中选择包括选择具有最低第一成本的所述处理器核心。
7.根据权利要求5所述的方法,还包括:
从所述操作系统接收对第一处理器核心运行所述第一工作负载的请求;以及
响应于将所选处理器核心的所述标识符传送到所述操作系统,从所述第一优先级队列中移除所述选定处理器核心。
8.根据权利要求7所述的方法,还包括:
在所述处理单元处从所述操作系统接收所述第一工作负载已在所述选定处理器核心处完成运行的指示;
将所述选定处理器核心返回到所述第一优先级队列;
在所述处理单元处确定在所述多个处理器核心中的每个处理器核心处运行第二工作负载的第二成本;以及
在所述处理单元处基于在每个处理器核心处运行所述第二工作负载的所述第二成本来为所述多个处理器核心编译第二优先级队列。
9.一种方法,包括:
在处理系统的处理单元处基于在每个处理器核心处运行第一工作负载的第一成本来为多个处理器核心编译第一优先级队列;以及
基于所述第一优先级队列来向所述处理系统的操作系统传送用于运行所述第一工作负载的第一选定处理器核心的标识符。
10.根据权利要求9所述的方法,其中所述第一成本基于系统使用策略、所述第一工作负载的特性以及每个处理器核心的一个或多个物理约束中的至少一者。
11.根据权利要求10所述的方法,其中所述系统使用策略基于能量效率和性能之间的折衷。
12.根据权利要求10所述的方法,还包括:
响应于检测到所述系统使用策略的改变而更新所述第一成本。
13.根据权利要求9所述的方法,还包括:
从所述操作系统接收对第一处理器核心运行所述第一工作负载的请求;以及
响应于将所述第一选定处理器核心的所述标识符传送到所述操作系统,从所述第一优先级队列中移除所述第一选定处理器核心。
14.根据权利要求13所述的方法,还包括:
在所述处理单元处从所述操作系统接收所述第一工作负载已在所述第一选定处理器核心处完成运行的指示;
将所述第一选定处理器核心返回到所述第一优先级队列;
在所述处理单元处确定在所述多个处理器核心中的每个处理器核心处运行第二工作负载的第二成本;以及
在所述处理单元处基于在每个处理器核心处运行所述第二工作负载的所述第二成本来为所述多个处理器核心编译第二优先级队列。
15.一种设备,包括:
多个处理器核心;以及
处理单元,所述处理单元被配置为:
基于在每个处理器核心处运行第一工作负载的第一成本来为所述多个处理器核心确定第一优先级队列;以及
基于所述第一优先级队列来向操作系统传送用于运行所述第一工作负载的第一选定处理器核心的标识符。
16.根据权利要求15所述的设备,其中所述处理单元被进一步配置为将所述第一选定处理器核心的所述标识符写入到被配置为由所述操作系统读取的寄存器。
17.根据权利要求15所述的设备,其中所述第一成本基于系统使用策略、所述第一工作负载的特性以及每个处理器核心的一个或多个物理约束。
18.根据权利要求17所述的设备,其中所述处理单元被进一步配置为响应于检测到所述系统使用策略的改变而更新所述第一成本。
19.根据权利要求15所述的设备,其中所述处理单元被进一步配置为:
从所述操作系统接收对第一处理器核心运行所述第一工作负载的请求;以及
响应于将所述第一选定处理器核心的所述标识符传送到所述操作系统,从所述第一优先级队列中移除所述第一选定处理器核心。
20.根据权利要求19所述的设备,其中所述处理单元被进一步配置为:
从所述操作系统接收所述第一工作负载已在所述第一选定处理器核心处完成运行的指示;
将所述第一选定处理器核心返回到所述第一优先级队列;
确定在所述多个处理器核心中的每个处理器核心处运行第二工作负载的第二成本;以及
基于在每个处理器核心处运行所述第二工作负载的所述第二成本来为所述多个处理器核心确定第二优先级队列。
CN202180045556.0A 2020-06-26 2021-06-24 基于使用策略和核心约束的核心选择 Pending CN115867893A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063044533P 2020-06-26 2020-06-26
US63/044,533 2020-06-26
US16/945,519 US11886224B2 (en) 2020-06-26 2020-07-31 Core selection based on usage policy and core constraints
US16/945,519 2020-07-31
PCT/US2021/038879 WO2021262968A1 (en) 2020-06-26 2021-06-24 Core selection based on usage policy and core constraints

Publications (1)

Publication Number Publication Date
CN115867893A true CN115867893A (zh) 2023-03-28

Family

ID=79032040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180045556.0A Pending CN115867893A (zh) 2020-06-26 2021-06-24 基于使用策略和核心约束的核心选择

Country Status (6)

Country Link
US (1) US11886224B2 (zh)
EP (1) EP4172770A4 (zh)
JP (1) JP2023531893A (zh)
KR (1) KR20230025464A (zh)
CN (1) CN115867893A (zh)
WO (1) WO2021262968A1 (zh)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996839B2 (en) 2003-07-16 2011-08-09 Hewlett-Packard Development Company, L.P. Heterogeneous processor core systems for improved throughput
US8924975B2 (en) 2009-07-23 2014-12-30 Empire Technology Development Llc Core selection for applications running on multiprocessor systems based on core and application characteristics
US8321615B2 (en) 2009-12-18 2012-11-27 Intel Corporation Source core interrupt steering
US8949207B2 (en) * 2010-12-09 2015-02-03 Canon Kabushiki Kaisha Method and apparatus for decoding encoded structured data from a bit-stream
WO2013115829A2 (en) * 2012-02-04 2013-08-08 Empire Technology Development Llc Core-level dynamic voltage and frequency scaling in a chip multiprocessor
US9311209B2 (en) * 2012-11-27 2016-04-12 International Business Machines Corporation Associating energy consumption with a virtual machine
US9348560B2 (en) * 2013-06-04 2016-05-24 Qualcomm Incorporated Efficient execution of graph-based programs
US9703613B2 (en) 2013-12-20 2017-07-11 Qualcomm Incorporated Multi-core dynamic workload management using native and dynamic parameters
US9323574B2 (en) * 2014-02-21 2016-04-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Processor power optimization with response time assurance
US9632832B2 (en) 2014-02-27 2017-04-25 Empire Technology Development Llc Thread and data assignment in multi-core processors based on cache miss data
CN106155807A (zh) * 2015-04-15 2016-11-23 阿里巴巴集团控股有限公司 一种实现资源调度的方法与设备
US10841236B1 (en) * 2018-03-30 2020-11-17 Electronic Arts Inc. Distributed computer task management of interrelated network computing tasks
US20210109795A1 (en) * 2019-10-11 2021-04-15 Microsoft Technology Licensing, Llc Latency-Aware Thread Scheduling

Also Published As

Publication number Publication date
KR20230025464A (ko) 2023-02-21
EP4172770A1 (en) 2023-05-03
US20210406092A1 (en) 2021-12-30
JP2023531893A (ja) 2023-07-26
US11886224B2 (en) 2024-01-30
WO2021262968A1 (en) 2021-12-30
EP4172770A4 (en) 2024-03-20

Similar Documents

Publication Publication Date Title
JP6359069B2 (ja) オペレーティングシステムと切り離される異種計算
KR101992827B1 (ko) 마이크로프로세서 내의 열 설계 전력을 구성하기 위한 방법 및 장치
US8914515B2 (en) Cloud optimization using workload analysis
US8489904B2 (en) Allocating computing system power levels responsive to service level agreements
US8484495B2 (en) Power management in a multi-processor computer system
US20120204186A1 (en) Processor resource capacity management in an information handling system
EP2666085A2 (en) Load balancing in heterogeneous computing environments
KR20130061747A (ko) 코어 마다의 전압 및 주파수 제어 제공
Castro et al. A joint CPU-RAM energy efficient and SLA-compliant approach for cloud data centers
CN103631655A (zh) 大核和小核中的任务调度
EP3542245A1 (en) Application profiling for power-performance management
US20200183485A1 (en) Hint-based fine-grained dynamic voltage and frequency scaling in gpus
TW201023046A (en) Delegated virtualization across physical partitions of a multi-core processor (MCP)
CN115867893A (zh) 基于使用策略和核心约束的核心选择
US20230108234A1 (en) Synchronous labeling of operational state for workloads
TWI627520B (zh) 用以配置處理器或處理裝置中之熱設計功率的系統
WO2024000443A1 (en) Enforcement of maximum memory access latency for virtual machine instances
WO2023225991A1 (en) Dynamic establishment of polling periods for virtual machine switching operations
CN115617470A (zh) 用于向软件进程提供线程调度提示的设备、方法和系统
Kelly Complementing Green Hardware with Green Software

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