CN102567117A - 调度处理器中的线程的方法和系统 - Google Patents
调度处理器中的线程的方法和系统 Download PDFInfo
- Publication number
- CN102567117A CN102567117A CN2011102946175A CN201110294617A CN102567117A CN 102567117 A CN102567117 A CN 102567117A CN 2011102946175 A CN2011102946175 A CN 2011102946175A CN 201110294617 A CN201110294617 A CN 201110294617A CN 102567117 A CN102567117 A CN 102567117A
- Authority
- CN
- China
- Prior art keywords
- thread
- instruction type
- power consumption
- instruction
- power
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本发明提供一种用于引导多核心和/或多线程微处理器中的OS线程调度的方法。所述方法包括:对于活动线程中的每个线程,确定在上次环境切换间隔期间与线程执行的指令相关联的每个指令类型消耗的功率。所述方法还包括:b-对于活动线程中的每个线程,确定在下一环境切换间隔期间预期用于与所述线程调度的指令相关联的每个指令类型的功耗,c-生成活动线程(M)中的N个线程的至少一个组合,并且对于每个生成的组合,确定N个线程的组合是否满足主要条件,该主要条件涉及在下一环境切换间隔期间预期用于所述线程组合的每个线程的每指令类型的功耗,以及涉及在所述给定环境切换间隔期间对于所述线程组合的每个线程确定的每指令类型的功耗,d-在满足主要条件的组合中选择要调度的N个线程的组合。
Description
技术领域
本发明通常涉及处理器技术,更具体地,涉及调度多线程或多核心处理器中的线程的方法和系统。
背景技术
在过去几年,计算机的能耗在集成芯片(IC)并且特别是微处理器的设计中已经成为主要任务。温度直接涉及耗散的能量,这转而与时间间隔内的功耗直接成比例。温度水平决定冷却速率和封装技术选择。例如,近年来,各公司正考虑流体冷却子系统用于它们的高功率耗散机器。涉及功率耗散和温度水平的其它方面是IC的可靠性和封装的成本。
IC的可靠性取决于IC加热的程度和频率。在IC生产线中,测试阶段的IC经历一定的压力以识别不可靠的IC,并且排除它们,因为它们低于预定的质量标准。通常,温度压力用于加速测试故障。许多故障机制可以通过以下方法之一加速:
-温度加速
-电压和电流加速
-湿度加速
温度加速以及电压和电流加速方法在功率耗散观察方面最有影响。具体地,可靠性与温度的关系展现Arrhenius行为,并且电压和电流加速对于最大功耗是重要的。这是因为功率识别即时的电压电流乘积,并且高电流强度是引起IC中的金属线中的电子迁移的主要原因,这导致IC故障。这些故障机制在正常操作中也持续。
温度和功率耗散之间的关系基于封装技术和对于该封装使用的冷却系统。如果选择的封装不能以可接受的速率耗散IC内生成的热量,则通常观察到温度上升。一旦该速率超过极限,在IC中就出现热失控,并且该IC永久故障。如果可以避免到达该速率值,则这将提高器件的可靠性并且也降低封装成本。这对于嵌入式微处理器应用特别重要,其中存在不能违反的空间和功率限制。
功耗具有泄漏的、静态的和动态的成份。CMOS技术中最普通的一种是动态功耗。在传统CMOS电路中不存在静态功耗,但是随着CMOS工艺技术的进一步缩小,泄漏变得越来越重要。
功率消耗和/或耗散的特征在于两个度量:峰值和平均功率。平均功率是影响能量消耗的度量,并且对机器正在执行的工作量有很大程度的依赖,而峰值功率对功率传递网络设计和可靠性有非常重要的影响。如果峰值功率超过集成芯片(IC)中的一定限度,则功率传递网络将出现故障,并且将永久地损坏,导致IC功能故障。
具有最重要的功耗的计算机中的电路或IC是微处理器。微处理器设计和制造主要依赖于CMOS技术。因为所有应用转换为数字,所以微处理器总是在运行和操纵它们。这是微处理器的高功耗的主要原因。这也导致微处理器成为整个机器中的主要易损(crunching)电路。
为了减少功率消耗和耗散,已知两种方式:基于硬件的方式和基于软件的方式。用来解决功率消耗和耗散问题的某些基于软件的方式依赖于用于减少在软件堆栈的若干级别的功耗的热管理方法。
在US20060107262中提供了对于功耗问题的热管理解决方案。US20060107262A1描述了一种用于多核心处理器的线程调度技术,依赖于编译器将线程分类为复杂/高功率或简单/低功率,然后基于定义为减少功率/热强度的标准,调度和分布线程以在不同核心上运行。该解决方案提供来减少独特的多核心处理器中的功耗,并且不适于其中在每个核心上运行超过一个线程的多线程处理器。
对于功耗问题的另一方式是US20030126476中采用的方式。US20030126476提供一种用于超标量体系结构(superscalar)处理器的解决方案。然而,该解决方案不适于多线程或多核心处理器。
US20050278520提供基于放置在分布式处理系统中的每个处理器上的温度传感器的另一解决方案。来自温度传感器的信息用于调度高特性值的任务到最低温度处理器。这样的解决方案只适于处理器的集群,并且不适于线程。
US20056948082中描述的另一解决方案提供这样的方法,其允许程序基于通知事件进行参数改变,以适应温度概况。然而,这些参数改变可能影响硬件配置(频率或电压),导致更差的性能。此外,该解决方案不提供用于经由调度保持性能的能力,并且不适于多线程或多核心系统。
对于功耗的另一解决方案是US20097596430中描述的解决方案。根据该解决方案,对于多核心系统中的每个核心请求一组温度指标。这些指标用于将工作量调度到替代另一个处理器核心的处理器核心。该解决方案使用不同工作量的混合和匹配来管理温度,并且不适于多线程系统。
因此,需要一种热管理多线程多核心机器的任务调度系统和方法。
发明内容
根据本发明,提供了一种根据独立权利要求1的调度工作的方法、以及分别根据权利要求14和15的计算机程序和系统。从属权利要求中定义了优选实施例。
利用本发明,一个环境切换(Context Switch,CS)间隔中生成的热量可以在保持性能的同时在将来的环境切换中耗散,并且增加了集成电路的可靠性。这在实时嵌入式系统中特别有利,其中存在对每个工作的期限,并且性能和封装成本最重要。
根据本发明实施例的解决方案适于处理器中的任何数量的线程或核心。还适于要执行的指令中涉及的任何数量的指令类型。
根据本发明实施例的工作调度方法的一个优点是保证每个线程的向前进展,因此避免线程不足(starvation)。
本发明使得可以容易地使用内核软件能力和可用的硬件资源实现。
本发明还允许使用具有较低峰值功率和较低温度水平的系统硬件。相应地,由于峰值功率的减少的器件的可靠性在器件内提高,并且由于较低的冷却要求需要较低的封装成本。
附图说明
现在将参考附图通过示例的方式描述本发明的实施例,附图中,相同参考标号表示相似元件,其中:
图1示意性图示根据本发明特定实施例的用于调度N向处理器中的工作/线程的工作调度系统;
图2示意性图示根据特定实施例的功率预测单元;
图3示出根据特定实施例的用于确定在上次环境切换间隔期间每指令类型的实际功耗的流程图;
图4示出根据特定实施例的用于确定预期用于每个线程的不同指令类型的功耗的流程图;以及
图5示出根据本发明特定实施例的用于选择一组N个要调度的线程的流程图。
具体实施方式
根据本发明的优选实施例,提供了一种用于引导多核心和多线程微处理器中的OS线程调度的方法。该方法包括基于相对于上次环境切换(CS)的它们的预测功耗,选择运行的应用/工作的不同活动线程的子组,以在将来的环境切换时间段中运行。如本领域熟知的,“环境切换时间段”或“环境切换间隔”表示这样的时间段,在其期间,例如通过操纵系统调度一组应用或线程在计算机处理器上运行。
为了描述容易,在此将使用时间相关术语(如“下一”、“将来的”、“上次”、“之前的”)来描述环境切换间隔与另一环境切换间隔的关系。将理解的是,这些时间相关术语意图包括根据时间线基准的连续的时间切换间隔。此外,除非另外定义,在此关于时间切换间隔使用的一方面的“下一”和“将来的”或另一方面的“上次”和“之前的”具有相同含义。
符合之前的环境切换的反数(inverse)或补数(complement)的功率消耗的一组线程被选择作为要调度和使用的线程,以便填充用于下一环境切换的调度列表/表格。这确保在上次环境切换使用的功能单元将具有较低活性,因此将能够在将来的环境切换期间冷却。
检查选择的线程以确定它们是否具有低于预定阈值的预测功耗值,否则出现替换。然后根据预定功耗调度选择的线程。每个运行的线程消耗的实际功率然后使用微处理器中可用的任何适当的硬件进行测量或估计。然后,基于实际消耗的功耗更新上次的环境切换的功耗历史表格,以对将来的环境切换进行判定。相同处理在每个CS时段重复。
为了便利本发明的特定实施例的理解,下面是详细描述中使用的表达式、参数或符号的定义:
M:指定处理器中的活动工作/线程的总数量;只有M个工作/线程中的子组N个可以在处理器上同时运行。
P:指定监视的指令类型的数量。
环境切换(CS):表示用于环境切换间隔的时钟周期/时间量子的数量。
N:指定可以在N向多核心/多线程处理器中,在N个硬件环境或逻辑处理器上同时运行的工作/线程的数量;相应地,OS可以对于给定环境切换间隔/时间量子调度N个工作/线程在这样的处理器上。在环境切换间隔期间,OS选择M个活动工作/线程中的N个活动工作/线程以调度它们在处理器上运行。如果活动工作/线程的数量M少于N,则OS将调度所有运行的工作/线程在处理器上运行。如果活动工作/线程的数量M高于N,则OS将选择子组N个工作/线程以调度它们用于在处理器上运行。
线程痕迹(trace):线程痕迹表示这样的痕迹,其对于系统上运行的每个线程/工作收集以识别对于每个指令窗口执行的指令的序列和这些指令的每个的类型。
Instruction_Power_Estimate_Table:指定保持为每个指令类型估计的功耗的表格。
MAX_Power:表示功率水平不应当超过的阈值功率值,其可以定义为用于在环境切换间隔中所有运行的工作/线程的所有指令类型或每指令类型的总数。该最大值可以通过计算在任何特定环境切换间隔中每个工作/线程可能消耗的最大功率水平,在痕迹收集处理期间预先定义。
K:是表示活动的工作/线程的指数,范围从0到P-1。
J:是表示运行的工作/线程之一的指数。J具有从0到N-1范围内的指数。
Power_Type_Thk:累积每指令类型对于线程/工作k在该线程的整个痕迹期间估计的功耗的参数。
CS_Power_Type:指定每指令类型的寄存器(P),其记录每指令类型对于每个环境切换间隔的实际功耗。这包括所有线程消耗的所有功耗。
Instruction_Count_Type:表示跟踪指令类型并且用于计算每个线程的痕迹的平均功率的计数器。
ThreadID:表示每个和每一个线程的标识号。
ε:是可接受的误差值,其表示可接受的与精确功率值补数的偏离。该值可对于每个指令类型或对于所有类型设置。该值可以初始化为0,然后在需要时增加步长。该步长本身可以是常数或每一次使用时增加。
图1示出根据本发明实施例的用于调度处理器10中的任务的工作调度系统100的硬件配置。系统100适于在系统中运行总数M个活动的工作/线程。
处理器10是N向多线程或多核心处理器,包括每一个环境切换选择运行的M个活动线程中的N个线程。N相应地表示M个活动线程中可以同时在处理器10中在N个硬件环境或逻辑处理器上运行的工作/线程的数量。操作系统可以对于给定的环境切换间隔/时间量子在这样的处理器上调度N个工作/线程。
系统100包括为每一个环境切换CS提供的如寄存器的每类型环境切换功率数据结构101(以下称为“CS_Power_Type”)。CS_Power_Type数据结构101对于所有线程提供每指令类型的用于每个环境切换间隔的实际功耗。环境切换(CS)表示环境切换间隔/时间量子的时钟周期的数量。环境切换时间持续时间选择使得其确保正在使用的功能单元在该时段期间能够冷却,这取决于封装技术选择和冷却处理。更具体地,CS_Power_Type数据结构101(以下称为“CS_Power_Type register”)保持在之前环境切换中已经运行的N个线程的每个指令类型102的测量的或估计的功耗。监视数量P的指令类型。指令类型可以是集成电路上的功能单元(IC的实际设计块)的代表,例如,整数指令可以发出到整数执行单元,浮点指令可以发出到浮点执行单元,并且矢量指令可以发出到矢量执行单元。每个指令类型(功能单元)消耗的功率可以使用硬件传感器或功率计数器103测量。
工作调度系统100还包括功率预测单元104,用于预测每个线程1到N(由参考标号105指定)将消耗的功率。功率预测单元104为M个活动线程中的每个线程k提供P个累积的功耗估计,每个估计对于P个指令类型之一确定。M*P个估计保持在线程功率预测表106中。
图2示出代表根据本发明特定实施例的功率预测单元104的详细视图的方块图。功率预测单元104包括将线程痕迹与每个线程1到N关联的线程痕迹20。线程痕迹20跟踪线程要运行的预期指令。更具体地,线程痕迹20是保持为系统上运行的每个线程/工作收集的痕迹以便识别对于每个指令窗口执行的指令的序列和这些指令的每个的类型的数据结构。每个线程痕迹表示贯穿其生命周期由线程使用的汇编语言指令的序列。该序列是在微处理器上执行编译器的输出的结果。例如,运行数据库应用的工作量实际上将是运行表示该工作量的一组预定的工作/线程,包含执行软件的功能所需的汇编指令。汇编语言指令是微处理器在其指令集架构(ISA)中支持的指令。ISA划分为根据指令类型和/或其它标准的不同部分;如同寻址模式。线程痕迹由根据本发明特定实施例的工作调度系统使用,以识别在每个线程k的生命周期内预期执行的指令及其类型。每个线程与线程标识符ThreadID相关联。
对于每个线程k,从线程痕迹20识别的指令传递到处理器中提供的指令解码器21。指令解码器21解码为线程k识别的每个指令,并且基于该微处理器的ISA中设计的操作码“opcode”识别其类型。功率预测单元104包括指令信息数据结构22(如查找表),其保持对于每种类型的指令的功耗Pi的估计。每个指令的功耗的值可以通过适当的设置中描绘指令自身而独立地获得。该表可以是查找表,其中指数表示指令opcode(以及更多可能的指数,取决于要求的复杂度/精确度),并且读取对应的功耗值。仅为了说明的目的,下面将参考由表格表示的指令信息数据结构22进行描述。一旦解码了指令类型,就通过基于指令类型信息搜索指令信息表22(还用Instruction_Power_Estimate_Table指定),对于每个解码的指令确定功率估计。
对于线程k的痕迹中识别的所有指令确定的功耗估计然后在功率类型累积器23(也称为Power_Type_Thk累积器)中累积。用于给定线程/工作k的每个Power_Type_Thk累积器23从而保持对线程k的痕迹中识别的每个指令类型i估计的P个指令类型功耗Power_Type_Thki(P个指令类型):
Power_Type_Thk={Power_Type_Thki},i=1到P
在本发明的特定实施例中,通过下面的等式定义Power_Type_Thki:
Power_Type_Thki=ni*Pi,其中Pi指定对于如从指令信息表22获得的指令类型i的功耗估计,并且ni指定为线程k识别的指令中的指令i的出现次数。
在本发明的其他实施例中,一个指令类型可以包括具有不同的功耗值的不同的指令,并且将所有一起平均,使得Power_Type_Thki定义如下:
Power_Type_Thki=∑ni*Pi/∑ni
对于线程k确定的每个功率类型累积器Power_Type_Thki相应地与各个指令类型i相关联。当已经处理了当前线程痕迹的所有指令时,Power_Type_Thki累积器(i=1到P)的P个值添加到线程功率预测表106(“Thread_Power_Prediction_Table”)中的对应的条目,并且处理由其标识符ThreadID识别的下一线程。线程功率预测表106包括每活动线程k的条目。与给定线程k有关的每个条目存储对每个指令类型i获得的P个累积功耗估计Power_Type_Tki。
线程功率预测表106用于比较不同的N个线程组合的功耗与之前环境切换的指令类型功耗(如由环境切换功率寄存器101提供的),并且基于这些比较确定N个线程的最佳组合,用于在下一环境切换期间选择和调度。线程功率预测表106可以使用对于所有活动线程获得的表示机器的工作量的痕迹,在任何工作开始时构造一次,并且贯穿工作的生命周期使用。
在环境切换间隔期间,操作系统选择M个活动工作/线程中的N个活动工作/线程,以便调度它们在处理器10上运行。如果活动工作/线程的数目M少于N,则OS调度所有运行的工作/线程以在处理器10上运行。如果活动工作/线程的数目M高于N,则OS选择子组N个工作/进程,以便根据本发明实施例调度它们在处理器上运行。M个线程中的N个的可能的组合动态地生成,并且当它们生成时,优选地选择符合选择标准的第一个组合。替代找出所有MCN个组合中最符合的,选择第一个符合的一个优点是节省时间。
回到图1,系统100还包括线程选择器108,用于基于选择标准执行N个线程的选择。定义线程选择标准,使得N个线程选择允许微处理器的每一个功能单元在高活动环境切换后冷却。线程选择标准包括与相对于之前的环境切换测量的功耗的N个线程的总的预期功耗有关的第一条件,以及与相对于对每个指令类型定义的最大功率阈值107(也称为MAX_Power)的预期用于N个线程的每指令类型的功耗有关的第二条件。
具体地,第一条件包括:确定N个线程的总的预期功耗(从功率预测表106确定)是否基本上等于对之前环境切换测量的功耗(从CS_Power_Type寄存器101确定)的反数或补数。应当理解的是,在本说明书中使用的术语“补数”指包括在给定环境切换中将之前环境切换中发生的反转的操作。更具体地,对之前环境切换测量的功耗的补数确定为等于最大功耗MAX_Power减去对之前环境切换测量的功耗。相应地,如果在之前环境切换中密集使用给定的功能单元,则它在下一环境切换中轻度使用或根本不使用,并且将替代地使用其他功能单元,从而尝试使用其他类型的指令。
第二选择条件包括:确定预期用于N个线程的每指令类型的预测功耗是否少于对应的每指令类型i的功率阈值MAX_Power(i),如果是,则生成和评估另一组合。通过计算在任何特定环境切换间隔中每个工作/线程可能消耗的最大功率水平,MAX_Power(i)阈值可以在痕迹收集处理期间预先定义。在收集痕迹的处理的同时,这基本上识别为消耗的最大功率。
线程选择器108选择的线程然后传递到调度器109,用于在执行单元110执行之前调度。相同处理在每一个环境切换重复。
图3示出用于保持环境切换功率寄存器101(CS_Power_Type)的流程图,该环境切换功率寄存器101提供在之前环境切换期间每个指令类型消耗的实际功率。该处理在每个环境切换间隔开始时启动(开始步骤S300),并且在步骤302中初始化CS_Power_Type寄存器的条目。可替代地,CS_Power_Type寄存器101的更新可以在每R个环境切换间隔的开始时启动,其中R是预定数目。在本发明一个实施例中,条目可以设为0。步骤302还包括初始化P个功率计数器103(也称为CS_Power_Thi),以便测量对于每个类型i,对于每个时钟周期和对于所有N个线程执行的指令消耗的功率。
在初始化步骤302以后,对于每个时钟周期(步骤304),处理所有运行的线程。更具体地,对于每个运行的线程j(步骤S306中选择),使用功率计数器(或寄存器)103在步骤308中测量执行的指令/指令类型的功耗,该功率加速器(或寄存器)103提供在指令的生命周期内由指令消耗的功率。
在步骤310,测量的值然后与对应的线程j相关联地写到CS_Power_Type寄存器101。CS_Power_Type寄存器101中保持的每指令类型的实际功耗将用于与将来的环境切换比较,用于线程选择。步骤306到310对于所有运行的线程重复。当已经处理了所有运行的线程时(步骤312),在步骤314中确定当前环境切换是否终止,如果否,则对于下一时钟周期重复步骤304到312。否则,处理在步骤316结束。
图4示出图示功率预测单元104执行的、用于估计预期用于每个线程k的每指令类型的功耗的步骤的流程图。
根据本发明特定实施例,这些功耗估计将用于预测每个线程k将消耗多少功率。功率预测单元104通过使用线程痕迹识别对于每个线程预期运行的指令,估计每指令类型的线程功率,并且基于从线程痕迹检索的信息估计每线程的功耗。
处理在要调度的每个工作开始时在步骤400启动。在步骤402,初始化功率类型累积器Power_Type_Thki的条目和线程功率预测表105的条目(例如设为0)。线程功率预测表105包括用于存储P个估计的功耗的每活动线程k的条目,P个估计的功耗每个与涉及预期用于线程的指令的指令类型相关联。所有M个活动线程然后进行如下处理:对于M个活动线程中的每个活动线程k(在步骤404选择),在步骤406初始化指令类型计数器Intruction_Count_Type的条目。指令类型计数器用于跟踪每个指令类型,并且用于计算每个线程的轨迹的平均功耗。
在步骤408,生成要运行的工作的痕迹(也称为线程痕迹),并且该痕迹然后用于识别预期在线程k的生命周期内执行的指令及其类型。可替代地,对于嵌入式设备,痕迹可以在其他时间生成。进一步对于每个指令的类型估计每类型的功率阈值MAX_Power(i)。在步骤410,解码步骤408中识别的指令,并且递增指令类型计数器Instruction_Count_Type。
对于具有给定指令类型的每个识别的指令,在步骤412,搜索包含每个指令类型的功率估计的指令信息表22(Instruction_Power_Estimate),以检索对应于该指令类型的指令功率。在步骤414,对于识别的指令的指令类型获得的估计功耗添加到对应的Power_Type_Thki累积器的当前值。
步骤416检查对于当前线程k识别的所有指令是否已经处理。如果没有,则对于下一识别的指令重复步骤410到416。当所有指令已经处理时(条件416满足),则在步骤418,指令类型计数器Intruction_Count_Type的当前值然后用于计算与指令类型相关联的每个Power_Type_Thki累积器的平均值。该平均值可以通过将指令类型的功率累积器除以指令类型计数器来计算。对于与预期用于线程k的指令相关联的每个指令类型计算的平均功耗估计然后存储在线程功率预测表105的与线程k对应的条目中。执行步骤420以确定所有M个活动线程是否已经处理,并且如果没有,则对于下一活动线程k重复步骤406到420。当所有活动线程已经处理时,处理在步骤422终止。获得的线程功率预测表105将用于确定是否N个线程的不同组合适于在将来的环境切换间隔中执行。
图5示出根据本发明特定实施例的、在将来的环境切换间隔中运行的线程的选择的流程图。线程选择从(线程功率预测表105中保持的)每指令类型的预测功耗以及从(环境切换功率寄存器101中保持的)与之前的环境切换有关的每指令类型的实际功耗确定。
为了选择M个活动线程中的一组N个,在每个环境切换开始时(或可替代地,在每R个环境切换间隔的开始时,其中R是预定数目)连续生成线程的MCN个组合,并且对其测试用于可能的选择,并且基于预定的选择标准调度。
选择处理在每个环境切换开始时在步骤500启动。
在步骤502,初始化误差参数ε。例如将其设为0。误差参数ε指定表示与精确的功率值补数的可接受的偏离的可接受误差值。该值可以对于每个指令类型或对于所有类型设置。相应地,误差参数可以依赖于指令类型水平或与对所有类型共同的唯一值相关联。
在步骤504,通过提供M个活动线程中的候选的一组N个线程,生成MCN个组合,并且计算在候选组的N个线程上预期用于每个指令类型i的总功耗。这通过在步骤506对于候选组线程的N个线程,对于每个指令类型i(i=1到P)计算在线程功率预测表105中保持的N个值Pik(k=1到N)的和Si来执行。
Si=候选的一组N个线程的每类型i的总的预期功耗=(Pil+...+Pik...+PiN),其中i=1到P。每个得到的值Si然后与环境切换功率类型寄存器101中的对应值比较,环境切换功率类型寄存器101表示与在上次环境切换间隔期间之前选择的一组N个线程有关的指令类型i的实际功耗。更具体地,检查第一条件以确定(从MCN个组合生成的)考虑的候选的一组线程的每个得到的值Si是否等于在上次环境切换期间之前选择的一组N个线程的指令类型i消耗的实际功率(CS_Power_Thi)补数(MAX_Power(i)-CS_Power_Thi)多或少epsilon值ε(表示可以为指令类型i定义的或对于所有指令类型独特的误差参数值)。如果Si=MAX_Power(i)-CS_Power_Thi+/-ε,其中MAX_Power(i)表示最大功率阈值,则如此将满足第一条件。
如果第一条件不满足(步骤506),并且如果M个活动线程中的N个线程的所有组合MCN没有测试(步骤508),则生成线程的下一组合,并且对于新的候选的一组N个线程重复步骤504和506。
如果N个线程的所有组合已经测试,并且如果N个线程的候选的各组没有一个匹配与上次的环境切换相关联的每类型的环境切换功率的补数(CS_Power_Type)多或少ε值,则在步骤510将误差参数ε增加步长,并且通过重新生成组合重复步骤504和510。步长本身可以是常数或每次使用时增加。
如果满足与用于上次的环境切换的每指令的环境切换功耗有关的第一条件(步骤506),则在步骤511,可以进一步确定预期用于每个指令类型i的总功率Si是否进一步满足与为每个类型i预先确定的功率阈值MAX_Power(i)有关的第二条件。第二条件具体包括:检查每个类型i的和Si(表示在候选组的N个线程上预期用于每个类型i的功耗的和)是否不超过为指令类型i定义的功率阈值MAX_Power(i)。如果第二条件也满足,则在步骤512调度用于执行的候选的一组线程。如果第二条件不满足,则在步骤513确定是否已经测试所有组合MCN,如果没有,则对于与下一组合对应的候选的一组线程重复步骤504和513。然而,如果所有组合MCN已经测试,同时没有提供满足第一和第二条件的一组线程,则在步骤514减少每候选组的线程的数量N。在步骤515,然后检查是否N=0。如果确定N已经到达0值(步骤515),则在步骤516生成标志以记录与每类型的最大功率MAX_Power有关的第二条件的违背和/或随机选择任何线程以单独运行。如果N没有达到0,则利用N的新值重复步骤502到511,以便在重新初始化误差参数ε(epsilon)后再次生成MCN组合。选择处理在步骤520终止。
相应地,在本发明的优选实施例中,调度满足以下条件的候选的第一组线程:
-候选的一组线程表示环境切换功率寄存器101中的对应值的补数或者在与这些值偏离ε的范围内,以及
-满足与MAX_Power(i)阈值有关的第二条件。
如果检查了所有组合并没有一个满足关于环境切换功率类型的第一条件,则误差参数ε增加,以便允许选择匹配的线程组时的更多差异。如果检查了所有组合但是没有一个满足关于MAX_Power阈值的条件,则在再次生成新的MCN组合之前减少候选组中的线程的数目N。
接着是本发明实施例的示例性应用的描述,仅仅为了说明的目的。为了便利本发明实施例的详细描述的理解,该示例已经高度简化;然而,本领域技术人员将容易理解本发明可应用于更复杂的应用。根据该示例,假设在上次的环境切换中,功耗X与指令类型type1相关联,功耗Y与指令类型type2相关联,功耗Z与指令类型type3相关联,并且功耗L与指令类型type4相关联。在每一个环境切换间隔测量功耗X、Y、Z和L,并且测量结果保持在环境切换功率寄存器101中。根据该示例,指令类型P的数量等于4(type1、type2、type3和type4),N初始设为2,并且假设活动线程M的数目等于6。对于每个线程k以及对于每个指令类型i,从痕迹信息填写线程功率预测表105中的条目。下表图示环境类型功率寄存器101,其包括对于N个运行的线程(之前的选择),在上次的环境切换期间为每个指令类型测量的实际功耗。
Type 1 | Type 2 | Type 3 | Type 4 |
X | Y | Z | L |
下表图示对于M个活动线程(这里为6个活动线程)保持的功率预测表105(Thread_Power_Prediction_Table),在工作开始时更新,其中Pki表示对于与预期在每个线程k的生命周期内执行的指令有关的每个指令类型Typei累积的功耗。
ThreadID | Type 1 | Type 2 | Type 3 | Type 4 |
1 | P11 | P12 | P13 | P14 |
2 | P21 | P22 | P23 | P24 |
3 | P31 | P32 | P33 | P34 |
4 | P41 | P42 | P43 | P44 |
5 | P51 | P52 | P53 | P54 |
6 | P61 | P62 | P63 | P64 |
为了调度工作,生成6(M)个活动线程中的任何一组2(N)个组合(6C2组合)作为线程的候选组,并且对于每个候选组,检查与在该组的2个线程上预期的每类型i的功耗有关的第一条件和与每类型的功率阈值Max_Power(i)有关的第二条件。一旦两个线程的给定组满足两个条件,就选择该两个线程用于调度工作。
考虑提供由标识符m标识的第一线程和由标识符n标识的第二线程的组合6C2具有以下的用于每类型Type i的总功率Si的值:S1=Pm1+Pn1≈Max_Power(1)-X±ε1 S2=Pm2+Pn2≈Max_Power(2)-Y±ε2S3=Pm3+Pn3≈Max_Power(3)-Z±ε3 S4=Pm4+Pn4≈Max_Power(4)-L±ε4
在上次环境切换期间用于每个指令类型i的功耗值的和Si相应地是(环境切换功率类型表101中提供的)对应的值X、Y、Z、L的补数,在与这些值偏离ε的范围内,因此第一组(线程i,线程j)满足第一条件-如果上次环境切换中一个指令类型(X、Y、Z或L)的功耗Si高;在将来的环境切换中,将基于上述等式选择使得Si低的线程。
如果类型i的功耗Si不超过类型的i的功率阈值Max_Power(i),则将满足第二条件,这表示上述每个和每一个等式的上限在可接受的误差值ε内。如果Max_Power限制和ε是全局的,则将检查S1+S2+S3+S4是否在偏离Max_Power值的ε内。
本发明从而提供一种有效的工作调度方法,其基于指令类型热管理多线程/多核心处理器。本发明改进了IC可靠性,并且增加了处理器的开始故障平均时间(MTTF)。根据本发明实施例的线程水平热意识(thread level thermalaware)调度方法适于任何数量的线程或核心或指令类型。
本发明允许使用具有较低峰值功率和较低温度水平的系统硬件,同时保证每个线程的向前进行并避免线程不足。由于峰值功率的减少,相应地增加了处理器的可靠性。
尽管在此为了说明目的已经描述了本发明的具体实施例,但是许多修改和变化对于本领域技术人员将变得明显。本发明可以采取全部硬件实施例、全部软件实施例或包含硬件和软件元件两者的实施例的形式。具体地,将意识到,尽管图1和2中的元件以硬件形式呈现,但是可以以软件实现完全相同的效果。在优选实施例中,本发明以软件实现,其包括但不限于固件、驻留软件、微代码等。
此外,本发明可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,该计算机可用或计算机可读介质提供用于由或结合计算机或任何指令执行系统使用的程序代码。为了该描述的目的,计算机可用或计算机可读介质可以是任何装置,其可以包含、存储、通信、传播或传送用于由或结合计算机或任何指令执行系统、装置或设备使用的程序代码。
介质可以是电、磁、光、电磁、红外或半导体系统(或装置或设备)或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移除计算机盘、随机读取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前示例包括致密盘-只读存储器(CD-ROM)、致密盘-读/写(CD-R/W)和DVD。
适于存储和/或执行程序代码的数据处理系统将包括至少一个处理器,其通过系统总线直接或间接耦合到存储器元件。存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储和高速缓存存储器,其提供至少一些程序代码的暂时存储,以便减少在执行期间必须从大容量存储检索代码的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、指向设备等)可以直接或通过中间的I/O控制器耦合到系统。
网络适配器也可以耦合到系统,以允许数据处理器通过中间的私有或公共网络变为耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅仅是一些当前可用类型的网络适配器。
Claims (14)
1.一种调度多线程/多核心处理器中的线程的方法,其中在每个环境切换间隔中能够调度一组M个活动线程中的预定数量N个线程,其中所述方法包括:
a-对于所述一组活动线程中的每个线程,确定用于给定环境切换间隔的指令类型功耗,所述指令类型功耗表示在所述给定环境切换间隔期间与所述线程执行的指令相关联的每个指令类型消耗的功率,
所述方法还包括:
b-对于所述一组活动线程中的每个线程,确定在下一环境切换间隔期间预期用于与所述线程调度的指令相关联的每个指令类型的功耗,
c-生成M个活动线程中的N个线程的至少一个组合,并且对于每个生成的组合,确定N个线程的组合是否满足主要条件,该主要条件涉及在下一环境切换间隔期间预期用于所述线程组合的每个线程的每指令类型的功耗,以及涉及在所述给定环境切换间隔期间对于所述线程组合的每个线程确定的每指令类型的功耗,
d-在满足所述主要条件的组合中选择要调度的N个线程的组合。
2.如权利要求1所述的方法,其中所述主要条件包括:对于每个生成的N个线程的组合,对于每个指令类型,比较在下一环境切换间隔期间预期用于所述组合的总指令类型功耗与对于所述给定环境切换间隔确定的指令类型功耗的补数,在下一环境切换间隔期间预期用于所述组合的所述总指令类型功耗从在下一环境切换间隔期间、对于所述指令类型预期用于所述线程组合的各线程的功耗的和确定。
3.如权利要求2所述的方法,其中步骤d包括:如果对于每个指令类型,在下一环境切换间隔期间预期用于所述组合的总指令类型功耗实质上等于对于所述给定环境切换间隔确定的指令类型功耗的补数,多或少误差参数值,则预先选择所述组合作为候选的一组要调度的线程。
4.如权利要求3所述的方法,其中对于每个指令类型定义误差参数值。
5.如权利要求2到4的任一所述的方法,其中所述步骤d包括:如果对于每个指令类型,在下一环境切换间隔期间预期用于所述组合的总指令类型功耗比预定最大阈值还差,则在满足主要条件的组合中选择要调度的N个线程的组合。
6.如权利要求5所述的方法,其中对于每个指令类型定义所述最大阈值。
7.如之前权利要求任一所述的方法,其中对于每个线程确定预期的每指令类型的功耗的所述步骤b包括:识别预期用于所述线程的指令,并且对于每个识别的指令;
-解码所述指令以确定与所述指令相关联的指令类型,
-从保持关于指令类型功耗的信息的预定数据结构检索为所述指令类型定义的功耗,以及
-在为所述指令类型提供的功耗累积器中累积为所述指令类型检索的功耗。
8.如之前权利要求任一所述的方法,其中对于每个线程确定预期用于每个指令类型的功耗的所述步骤b包括:从线程痕迹识别为所述线程调度的指令。
9.如权利要求8所述的方法,其中基于工作到达或终止事件更新所述线程痕迹。
10.如之前权利要求任一所述的方法,其中在步骤a中基于功率计数器提供的测量结果确定用于所述给定环境切换间隔的指令类型功耗。
11.如之前权利要求任一所述的方法,其中确定在下一环境切换间隔期间预期用于每个线程的每指令类型的功耗的所述步骤b进一步包括:将所述值保持在包括用于每个线程和每个指令类型的条目的数据结构中。
12.如权利要求10所述的方法,其中在每个工作开始时更新所述数据结果。
13.如之前权利要求任一所述的方法,其中所述步骤c和d在每个环境切换间隔开始时或在每R个环境切换间隔开始时触发,其中R是预定数目。
14.一种系统,包括适于执行根据权利要求1到13的任一所述的方法的各步骤的部件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP10183345.7 | 2010-09-30 | ||
EP10183345 | 2010-09-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102567117A true CN102567117A (zh) | 2012-07-11 |
CN102567117B CN102567117B (zh) | 2015-04-15 |
Family
ID=45890948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110294617.5A Active CN102567117B (zh) | 2010-09-30 | 2011-09-30 | 调度处理器中的线程的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8656408B2 (zh) |
CN (1) | CN102567117B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104820618A (zh) * | 2015-04-24 | 2015-08-05 | 华为技术有限公司 | 一种任务调度方法、任务调度装置及多核系统 |
WO2016101664A1 (zh) * | 2014-12-26 | 2016-06-30 | 深圳市中兴微电子技术有限公司 | 一种指令调度方法及装置 |
CN106201725A (zh) * | 2016-07-21 | 2016-12-07 | 张升泽 | 多核芯片的功率实现方法及系统 |
WO2018018371A1 (zh) * | 2016-07-25 | 2018-02-01 | 张升泽 | 多核芯片电压计算方法及系统 |
CN110753433A (zh) * | 2014-06-30 | 2020-02-04 | 昕诺飞控股有限公司 | 设备管理 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8631411B1 (en) | 2009-07-21 | 2014-01-14 | The Research Foundation For The State University Of New York | Energy aware processing load distribution system and method |
US9436969B2 (en) * | 2009-10-05 | 2016-09-06 | Nvidia Corporation | Time slice processing of tessellation and geometry shaders |
US8677361B2 (en) | 2010-09-30 | 2014-03-18 | International Business Machines Corporation | Scheduling threads based on an actual power consumption and a predicted new power consumption |
US9753516B2 (en) * | 2011-12-22 | 2017-09-05 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation by mitigating performance variations between integrated circuit devices |
KR101867960B1 (ko) * | 2012-01-05 | 2018-06-18 | 삼성전자주식회사 | 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법 |
US9229507B1 (en) * | 2012-03-20 | 2016-01-05 | Google Inc. | Managing data center power usage |
US9417876B2 (en) | 2014-03-27 | 2016-08-16 | International Business Machines Corporation | Thread context restoration in a multithreading computer system |
US10102004B2 (en) | 2014-03-27 | 2018-10-16 | International Business Machines Corporation | Hardware counters to track utilization in a multithreading computer system |
US9354883B2 (en) | 2014-03-27 | 2016-05-31 | International Business Machines Corporation | Dynamic enablement of multithreading |
US9594660B2 (en) | 2014-03-27 | 2017-03-14 | International Business Machines Corporation | Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores |
US9804846B2 (en) | 2014-03-27 | 2017-10-31 | International Business Machines Corporation | Thread context preservation in a multithreading computer system |
US9921848B2 (en) | 2014-03-27 | 2018-03-20 | International Business Machines Corporation | Address expansion and contraction in a multithreading computer system |
US9218185B2 (en) | 2014-03-27 | 2015-12-22 | International Business Machines Corporation | Multithreading capability information retrieval |
US10635446B2 (en) * | 2015-09-24 | 2020-04-28 | Qualcomm Incorporated | Reconfiguring execution pipelines of out-of-order (OOO) computer processors based on phase training and prediction |
US9747139B1 (en) | 2016-10-19 | 2017-08-29 | International Business Machines Corporation | Performance-based multi-mode task dispatching in a multi-processor core system for high temperature avoidance |
US9753773B1 (en) | 2016-10-19 | 2017-09-05 | International Business Machines Corporation | Performance-based multi-mode task dispatching in a multi-processor core system for extreme temperature avoidance |
US11379708B2 (en) * | 2018-08-09 | 2022-07-05 | Nvidia Corporation | Techniques for efficiently operating a processing system based on energy characteristics of instructions and machine learning |
CN109709806B (zh) * | 2018-12-27 | 2022-07-19 | 杭州铭展网络科技有限公司 | 一种自适应数据采集系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030115239A1 (en) * | 2000-09-22 | 2003-06-19 | Atsushi Togawa | Arithmetic processing system and arithmetic processing control method, task managemnt system and task management method, and storage medium |
US20090070607A1 (en) * | 2007-09-11 | 2009-03-12 | Kevin Safford | Methods and apparatuses for reducing step loads of processors |
CN101681262A (zh) * | 2007-05-30 | 2010-03-24 | Xmos有限公司 | 在处理器中调度多个线程 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658447B2 (en) | 1997-07-08 | 2003-12-02 | Intel Corporation | Priority based simultaneous multi-threading |
US7620832B2 (en) * | 2000-09-20 | 2009-11-17 | Mips Technologies, Inc. | Method and apparatus for masking a microprocessor execution signature |
US7516334B2 (en) * | 2001-03-22 | 2009-04-07 | Sony Computer Entertainment Inc. | Power management for processing modules |
US6775787B2 (en) | 2002-01-02 | 2004-08-10 | Intel Corporation | Instruction scheduling based on power estimation |
US7114086B2 (en) * | 2002-01-04 | 2006-09-26 | Ati Technologies, Inc. | System for reduced power consumption by monitoring instruction buffer and method thereof |
JPWO2003083693A1 (ja) | 2002-04-03 | 2005-08-04 | 富士通株式会社 | 分散処理システムにおけるタスクスケジューリング装置 |
US6948082B2 (en) | 2002-05-17 | 2005-09-20 | International Business Machines Corporation | Method and apparatus for software-assisted thermal management for electronic systems |
US7653906B2 (en) | 2002-10-23 | 2010-01-26 | Intel Corporation | Apparatus and method for reducing power consumption on simultaneous multi-threading systems |
US20040128663A1 (en) * | 2002-12-31 | 2004-07-01 | Efraim Rotem | Method and apparatus for thermally managed resource allocation |
US7441240B2 (en) | 2003-01-07 | 2008-10-21 | Matsushita Electric Industrial Co., Ltd. | Process scheduling apparatus, process scheduling method, program for process scheduling, and storage medium recording a program for process scheduling |
US7418585B2 (en) | 2003-08-28 | 2008-08-26 | Mips Technologies, Inc. | Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts |
US8566828B2 (en) * | 2003-12-19 | 2013-10-22 | Stmicroelectronics, Inc. | Accelerator for multi-processing system and method |
US7197652B2 (en) | 2003-12-22 | 2007-03-27 | International Business Machines Corporation | Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring |
US7437581B2 (en) | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
US20060107262A1 (en) | 2004-11-03 | 2006-05-18 | Intel Corporation | Power consumption-based thread scheduling |
US7627770B2 (en) | 2005-04-14 | 2009-12-01 | Mips Technologies, Inc. | Apparatus and method for automatic low power mode invocation in a multi-threaded processor |
US8001549B2 (en) | 2006-04-27 | 2011-08-16 | Panasonic Corporation | Multithreaded computer system and multithread execution control method |
US7596430B2 (en) | 2006-05-03 | 2009-09-29 | International Business Machines Corporation | Selection of processor cores for optimal thermal performance |
WO2007128168A1 (en) | 2006-05-10 | 2007-11-15 | Intel Corporation | Thread scheduling on multiprocessor systems |
JP4370336B2 (ja) | 2007-03-09 | 2009-11-25 | 株式会社日立製作所 | 低消費電力ジョブ管理方法及び計算機システム |
US7886172B2 (en) | 2007-08-27 | 2011-02-08 | International Business Machines Corporation | Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management |
KR101358371B1 (ko) * | 2007-09-14 | 2014-02-04 | 삼성전자주식회사 | 전력 시뮬레이션 방법 및 전력 시뮬레이터 |
US8219993B2 (en) * | 2008-02-27 | 2012-07-10 | Oracle America, Inc. | Frequency scaling of processing unit based on aggregate thread CPI metric |
US8010822B2 (en) | 2008-03-28 | 2011-08-30 | Microsoft Corporation | Power-aware thread scheduling and dynamic use of processors |
US8458722B2 (en) | 2008-06-09 | 2013-06-04 | International Business Machines Corporation | Thread selection according to predefined power characteristics during context switching on compute nodes |
US8296773B2 (en) | 2008-06-30 | 2012-10-23 | International Business Machines Corporation | Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance |
US8347301B2 (en) | 2008-06-30 | 2013-01-01 | Intel Corporation | Device, system, and method of scheduling tasks of a multithreaded application |
US8195962B2 (en) | 2008-11-11 | 2012-06-05 | Globalfoundries Inc. | Method and apparatus for regulating power consumption |
US20100281483A1 (en) | 2009-04-30 | 2010-11-04 | Novafora, Inc. | Programmable scheduling co-processor |
US8255723B2 (en) * | 2009-07-24 | 2012-08-28 | Freescale Semiconductor, Inc. | Device having multiple instruction execution modules and a management method |
-
2011
- 2011-09-28 US US13/247,887 patent/US8656408B2/en active Active
- 2011-09-30 CN CN201110294617.5A patent/CN102567117B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030115239A1 (en) * | 2000-09-22 | 2003-06-19 | Atsushi Togawa | Arithmetic processing system and arithmetic processing control method, task managemnt system and task management method, and storage medium |
CN101681262A (zh) * | 2007-05-30 | 2010-03-24 | Xmos有限公司 | 在处理器中调度多个线程 |
US20090070607A1 (en) * | 2007-09-11 | 2009-03-12 | Kevin Safford | Methods and apparatuses for reducing step loads of processors |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110753433A (zh) * | 2014-06-30 | 2020-02-04 | 昕诺飞控股有限公司 | 设备管理 |
WO2016101664A1 (zh) * | 2014-12-26 | 2016-06-30 | 深圳市中兴微电子技术有限公司 | 一种指令调度方法及装置 |
CN105786448A (zh) * | 2014-12-26 | 2016-07-20 | 深圳市中兴微电子技术有限公司 | 一种指令调度方法及装置 |
CN105786448B (zh) * | 2014-12-26 | 2019-02-05 | 深圳市中兴微电子技术有限公司 | 一种指令调度方法及装置 |
CN104820618A (zh) * | 2015-04-24 | 2015-08-05 | 华为技术有限公司 | 一种任务调度方法、任务调度装置及多核系统 |
CN104820618B (zh) * | 2015-04-24 | 2018-09-07 | 华为技术有限公司 | 一种任务调度方法、任务调度装置及多核系统 |
CN106201725A (zh) * | 2016-07-21 | 2016-12-07 | 张升泽 | 多核芯片的功率实现方法及系统 |
WO2018018371A1 (zh) * | 2016-07-25 | 2018-02-01 | 张升泽 | 多核芯片电压计算方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20120084790A1 (en) | 2012-04-05 |
CN102567117B (zh) | 2015-04-15 |
US8656408B2 (en) | 2014-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567117B (zh) | 调度处理器中的线程的方法和系统 | |
CN103443769B (zh) | 用于异构多核心系统的动态核心选择 | |
US9459918B2 (en) | Scheduling threads | |
Chetto | Optimal scheduling for real-time jobs in energy harvesting computing systems | |
CN103119580B (zh) | 异构多处理器计算平台中的应用调度 | |
Kipp et al. | Layered green performance indicators | |
US8423799B2 (en) | Managing accelerators of a computing environment | |
US7730340B2 (en) | Method and apparatus for dynamic voltage and frequency scaling | |
US8046605B2 (en) | Computer system management and throughput maximization in the presence of power constraints | |
Reda et al. | Adaptive power capping for servers with multithreaded workloads | |
Chantem et al. | Online work maximization under a peak temperature constraint | |
CN101981529A (zh) | 功率知晓线程调度和处理器的动态使用 | |
Abdeddaïm et al. | The optimality of PFPasap algorithm for fixed-priority energy-harvesting real-time systems | |
CN104969190B (zh) | 多核心二进制转换任务处理 | |
CN101561778B (zh) | 一种检测多任务操作系统任务死循环的方法 | |
Huang et al. | Customizing the branch predictor to reduce complexity and energy consumption | |
CN102043676B (zh) | 虚拟化数据中心调度方法及系统 | |
Netto et al. | Deciding when and how to move HPC jobs to the cloud | |
CN115145709B (zh) | 低碳大数据人工智能方法和医康养生态系统 | |
US8812674B2 (en) | Controlling state transitions in a system | |
Pineau et al. | Energy‐aware scheduling of bag‐of‐tasks applications on master–worker platforms | |
Quan et al. | Power aware scheduling for real-time systems with (m, k)-guarantee | |
Chafi et al. | Energy Harvesting Deadline Monotonic Approach for Real-time Energy Autonomous Systems | |
Shin et al. | Towards Sustainable Post-Exascale Leadership Computing | |
Duong et al. | An Empirical Design and Implementation of Job Scheduling Enhancement for Kubernetes Clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |