CN104216774B - 多核设备及其作业调度方法 - Google Patents

多核设备及其作业调度方法 Download PDF

Info

Publication number
CN104216774B
CN104216774B CN201410232954.5A CN201410232954A CN104216774B CN 104216774 B CN104216774 B CN 104216774B CN 201410232954 A CN201410232954 A CN 201410232954A CN 104216774 B CN104216774 B CN 104216774B
Authority
CN
China
Prior art keywords
core
state
activation
active
response
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.)
Active
Application number
CN201410232954.5A
Other languages
English (en)
Other versions
CN104216774A (zh
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.)
Samsung Electronics Co Ltd
Korea Advanced Institute of Science and Technology KAIST
Original Assignee
Samsung Electronics Co Ltd
Korea Advanced Institute of Science and Technology KAIST
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 Samsung Electronics Co Ltd, Korea Advanced Institute of Science and Technology KAIST filed Critical Samsung Electronics Co Ltd
Publication of CN104216774A publication Critical patent/CN104216774A/zh
Application granted granted Critical
Publication of CN104216774B publication Critical patent/CN104216774B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

提供了一种多核设备及其作业调度方法。所述多核设备包括:多个核心,均包括被配置为存储激活周期计数的激活周期计数单元以及被配置为存储停顿周期计数的停顿周期计数单元。所述多核设备还包括:作业调度器,被配置为基于从所述多个核心中的每一个核心接收到的状态信息确定处于激活状态的核心的最优数量,并调整供电以保持处于激活状态的核心的最优数量。

Description

多核设备及其作业调度方法
本申请要求于2013年5月30日提交到韩国知识产权局的第10-2013-0062011号韩国专利申请的权益,该申请的公开通过引用全部合并于此以用于所有目的。
技术领域
以下描述涉及多核设备及其作业调度方法。
背景技术
由于待处理的数据之间没有依赖性,因此多核***的应用(具体地,基于图形处理单元的通用计算(GPGPU)的应用)实现了大量数据的简单的并行处理。可通过充分利用资源来提高这样的大量数据的并行处理的性能。
在一般的多核***(诸如常规的GPU)中,作业调度器通过循环赛方法将最多数量的作业分配给每个核心,并在每当由核心处理的作业逐个完成时再次分配新作业,以确保始终处理最多数量的作业。在主要使用独立资源(例如,寄存器文件、共享内存和计算单元)的计算密集型工作量的情况下,随着作业的数量增加,隐藏内存访问延迟或流水线延迟的效果得到增强,从而提高整体性能。
然而,在主要使用由所有核心共享的内存的内存密集型工作量的情况下,即使作业的数量增加,也由于网络和内存的最大带宽限制,而不能期望提高整体性能。另外,由于由过多流量导致的网络拥塞以及2级(L2)高速缓存容量不足,在一些情况下性能反而会降低。
发明内容
提供本发明内容来以简化形式介绍以下在具体实施方式中进一步描述的构思的选择。本发明内容不意在对要求保护的主题的关键特征或必要特征进行标识,也不意在用于帮助确定要求保护的主题的范围。
在一总体方面,提供了一种多核设备,包括:多个核心,均包括被配置为存储激活周期计数的激活周期计数单元以及被配置为存储停顿周期计数的停顿周期计数单元。所述多核设备还包括:作业调度器,被配置为基于从所述多个核心中的每一个核心接收到的状态信息确定处于激活状态的核心的最优数量,并调整供电以保持处于激活状态的核心的最优数量。
所述多个核心中的每一个核心还可包括:前端单元,被配置为将指令发送到执行单元,响应于指令被发送到用于对指令进行处理的执行单元,计算激活周期计数并将激活周期计数存储在激活周期计数单元中,响应于指令被发送到执行单元,计算停顿周期计数并将停顿周期计数存储在停顿周期计数单元中。
所述多个核心中的每一个核心还可包括:状态监控单元,被配置为存储状态信息。前端单元还可被配置为:基于激活周期计数和停顿周期计数产生状态信息,并将状态信息存储在状态监控单元中。
前端单元可被配置为:响应于停顿周期计数大于激活周期计数和预定阈值,产生指示将所述多个核心中的相应的核心改变为压制状态的状态信息。
作业调度器可被配置为:基于状态信息将所述多个核心中的一个或更多个核心改变为压制状态,并基于改变结果确定处于激活状态的核心的最优数量。
作业调度器可被配置为:响应于当前周期大于预定周期,将在所述改变之后仍然处于激活状态的核心的数量确定为处于激活状态的核心的最优数量。
作业调度器可被配置为:响应于当前周期小于或等于预定周期并且处于激活状态的核心的数量等于内存通道的数量,将处于激活状态的核心的数量确定为处于激活状态的核心的最优数量。
作业调度器可被配置为:响应于在所述多个核心之中存在处于压制状态的核心,将所述多个核心之中的处于激活状态并处理完作业的核心改变为关闭状态,并对处于关闭状态的核心进行电源门控。
作业调度器可被配置为:响应于将处于激活状态的核心改变为关闭状态,将处于压制状态的核心改变为激活状态,以保持处于激活状态的核心的最优数量不变。
作业调度器可被配置为:响应于在所述多个核心之中没有处于压制状态的核心,将所述多个核心之中的处理完作业的核心保持在激活状态,并将新作业分配给处于激活状态的核心。
在另一总体方面,提供了一种多核设备的作业调度方法,包括:基于从多个核心中的每一个核心接收到的状态信息将所述多个核心中的一个或更多个核心改变为压制状态,基于改变的结果确定处于激活状态的核心的最优数量,并基于处于激活状态的核心的作业处理的结果来调整供电,以保持处于激活状态的核心的最优数量。
改变所述多个核心中的一个或更多个核心的步骤可包括:确定状态信息是否指示将所述多个核心中的相应的核心改变为压制状态,并响应于状态信息被确定为指示将所述多个核心中的相应的核心改变为压制状态,将所述多个核心中的相应的核心改变为压制状态。
可基于所述多个核心中的相应的核心的激活周期计数和停顿周期计数来产生状态信息。
确定处于激活状态的核心的最优数量的步骤可包括:确定当前周期是否大于预定周期,并响应于当前周期被确定为大于预定周期,将处于激活状态的核心的数量确定为处于激活状态的核心的最优数量。
确定处于激活状态的核心的最优数量的步骤可包括:响应于当前周期被确定为不大于预定周期,确定处于激活状态的核心的数量是否等于内存通道的数量,并响应于处于激活状态的核心的数量被确定为等于内存通道的数量,将处于激活状态的核心的数量确定为处于激活状态的核心的最优数量。
调整供电的步骤可包括:响应于所述多个核心中的一个或更多个核心处于压制状态,将所述多个核心之中处于激活状态并处理完作业的核心改变为关闭状态,并对处于关闭状态的核心进行电源门控。
调整供电的步骤可包括:响应于将处于激活状态的核心改变为关闭状态,将所述多个核心之中处于压制状态的核心改变为激活状态,以保持处于激活状态的核心的最优数量。
调整供电的步骤可包括:响应于在所述多个核心之中没有处于压制状态的一个或更多个核心,将所述多个核心之中的处于处理完作业的核心保持在激活状态,并将新作业分配给处于激活状态的核心。
在又一总体方面,提供了一种设备,包括:处理器,被配置为基于从多个核心中的每一个核心接收到的状态信息将所述多个核心中的一个或更多个核心改变为压制状态直到基于改变结果确定处于激活状态的核心的最优数量为止,响应于改变关闭所述多个核心之中处于激活状态并处理完作业的核心。处理器还被配置为响应于关闭将所述多个核心之中处于压制状态的核心改变为激活状态。
压制状态可以是所述多个核心中的相应的核心被分配了作业但无法处理作业的状态,激活状态可以是所述多个核心中的相应的核心被分配了作业并且能够处理作业的状态。
响应于所述多个核心中的相应的核心的停顿周期计数大于激活状态计数和预定阈值,指示将所述多个核心中的相应的核心改变为压制状态的状态信息可被产生。
通过以下详细描述、附图和权利要求,其它特征和方面将变得清楚。
附图说明
图1是示出多核设备的示例的框图。
图2是示出多核设备中的核心的详细示例的框图。
图3是示出改变多核设备中的核心的状态的示例的示图。
图4是示出多核设备的作业调度的方法的示例的流程图。
图5是示出作业调度的方法的示例中的改变每个核心的状态并确定激活状态核心的最优数量的方法的示例的流程图。
图6是示出作业调度的方法的示例中的调整供电的方法的示例的流程图。
图7是示出在多核设备中改变每个核心的状态并进行电源门控(power-gating)的示例的示图。
图8是示出根据作业调度的方法的示例的性能比较结果的示例的示图。
贯穿附图和详细描述,除非另有描述或提供,否则相同的附图标号将被理解为指示相同的元件、特征和结构。附图可不按比例绘制,并且为了清楚、示出和方便,附图中的元件的相对大小、比例和描绘可被夸大。
具体实施方式
提供下面的详细描述以帮助读者全面理解在此描述的方法、设备和/或***。然而,在此描述的***、设备和/或方法的各种改变、修改和等同物对于本领域普通技术人员而言将是显然的。描述的处理步骤和/或操作的进行是示例;然而,除了步骤和/或操作必须按照特定顺序发生以外,步骤和/或操作的顺序不限于在此描述的顺序,并且可如本领域中已知的那样进行改变。另外,为了更加清楚和简洁,可省略对本领域普通技术人员所公知的功能和构造的描述。
在此描述的特征可以以不同的方式实现,并且不应被解释为限于在此描述的示例。相反地,在此描述的示例已被提供以使得本公开将是彻底和完整的,并将本公开的全部范围传达给本领域普通技术人员。
图1是示出多核设备1的示例的框图。参照图1,多核设备1包括作业调度器10、两个或更多个核心11、一个或更多个内存12以及连接作业调度器10、两个或更多个核心11和一个或更多个内存12的网络13。
作业调度器10根据构成多核的核心11中的每一个核心的资源状态将一个或更多个作业分配给核心11中的每一个核心。每个作业指示在核心11中的相应的核心中批量处理的多个数据的包。作业调度器10在考虑核心11中的每一个核心中的资源状态(例如,寄存器文件的状态和共享内存的状态)的情况下,分配最多数量的作业以供核心11中的每一个核心处理。作业调度器10通过对已经完成了分配到的全部作业的核心11进行电源门控来实现多核设备1的尽可能低的能耗。
核心11对分配到的一个或更多个作业进行处理。核心11中的每一个核心包括寄存器文件和小型高速缓存(私有高速缓存)或者内存(高速暂存存储器),以便通过将作业划分为单元来管理作业,这使得作业在一个周期内同时被处理。
内存12存储核心11和作业调度器10之间所需的输入数据和输出数据,并由所有核心11共享。
网络13连接作业调度器10、核心11和内存12,并且网络13是数据和控制信号的传输路径。
图2是示出多核设备中的核心30的详细示例的框图。参照图2,核心30包括前端单元31、执行单元32、内存访问单元33和记录单元34。另外,核心30包括激活周期计数单元35、停顿周期计数单元36和状态监控单元37。
前端单元31从内存(未示出)或高速缓存(未示出)提取由作业调度器20分配的作业的指令,并将指令发送到执行单元32。在发送指令之前,前端单元31检查指令之间的依赖性,并且当在周期内依赖性未被解决时,在该周期内不将指令发送到执行单元32。另外,如果***资源不足,则前端单元31可推迟指令的发送。
停顿状况是前端单元31不将有效指令发送到执行单元32的状况,并且发生停顿状况的周期是停顿周期。与此相反,激活状况是前端单元31将有效指令发送到执行单元32的状况,并且发生激活状况的周期是激活周期。
执行单元32根据指令的类型来处理从前端单元31输入的数据或指令。
内存访问单元33从内存读取数据,或者将数据记录在内存中。
记录单元34将在执行单元32中进行处理的数据或者由内存访问单元33从内存读取的数据记录在核心30的寄存器文件(未示出)中。
当将指令发送到执行单元32时,前端单元31计算或增加激活周期计数,并响应于激活状况的发生将激活周期计数存储在激活周期计数单元35中。当将指令发送到执行单元32时,前端单元31计算或增加停顿周期计数,并响应于因例如由内存访问指令造成的延迟而产生的停顿状况的发生,将停顿周期计数存储在停顿周期计数单元36中。
另外,前端单元31基于激活周期计数和停顿周期计数产生指示是否将核心30的状态从激活状态改变为压制状态的状态信息,并将状态信息存储在向作业调度器20通知状态信息的状态监控单元37中。例如,在将停顿周期计数与激活周期计数和预定阈值进行比较之后,当停顿周期计数大于激活周期计数和预定阈值两者时,前端单元31产生指示将核心30的状态改变为压制状态的状态信息。
核心30可具有激活状态、压制状态或关闭状态,所述状态由作业调度器确定。激活状态指示由作业调度器20将作业分配给核心30并且指令可被发送到执行单元32的状态。压制状态指示存在被分配给核心30的作业但是指令不会被发送到执行单元32的状态。另外,关闭状态指示分配给核心30的全部作业被完成、没有新分配的另外的作业并且电源门控被执行的状态。在程序序列的最后,前端单元31产生指示将核心30的状态改变为关闭状态的状态信息,并将状态信息存储在向作业调度器20通知状态信息的状态监控单元37中。
图3是示出改变多核设备中的核心的状态的示例的示图。将参照图2和图3来描述由作业调度器20进行的核心30的状态改变。
在没有作业被分配到构成多核设备的所有核心的空闲状态IDL中,作业调度器20将一个或更多个作业分配给核心30,并将核心30的状态改变为激活状态ACT(TR_1)。另外,当由前端单元31产生指示将核心30的状态改变为压制状态THR的状态信息时,将核心30的状态改变为压制状态THR(TR_2)。当核心30的状态没有被改变为压制状态THR并且分配到的全部作业被完成时,将核心30的状态改变为关闭状态(TR_4),并执行电源门控。当核心30的状态被改变为压制状态THR(TR_2)并且随后处于激活状态的另一核心的状态被改变为关闭状态时,重新将核心30的状态改变为激活状态ACT(TR_3)以处理分配到的作业。当构成多核设备的核心中的每一个核心被改变为关闭状态时,重新将核心中的每一个核心改变为空闲状态IDL(TR_5)。
再次参照图1,如上所述,作业调度器10在每个周期逐步将具有指示改变为压制状态的状态信息的核心11中的每一个核心的状态改变为压制状态,从而可确定处于激活状态的核心的最优数量,以使得多核设备1具有尽可能低的能耗。具体地,在将当前周期与预定监控周期进行比较之后,响应于当前周期大于预定监控周期,作业调度器10将保持在当前周期内并保持激活状态而没有被改变为压制状态的核心11中的激活状态核心的数量确定为激活状态核心的最优数量。在当进行比较时当前周期内的激活核心的数量与内存(例如,动态随机访问存储器(DRAM))的通道的数量相同的示例中,响应于当前周期不大于预定监控周期,作业调度器10将激活状态核心的数量确定为激活状态核心的最优数量。
随后,作为在每个周期确定的最优数量个激活状态核心的多个激活状态核心被保持在激活状态,使得激活状态核心能够处理作业。另外,其余的核心11在压制状态下进行等待,或者是已经完成作业的处理的核心并且通过对所述核心进行电源门控而被改变为关闭状态。
其结果是,多核设备1的能耗可被最小化。也就是说,作为为了最优性能而确定的最优数量个激活状态核心的多个激活状态核心被保持在消耗动态功耗和静态功耗的激活状态,处于压制状态的核心只消耗静态功耗,并且已经完成了全部作业并处于关闭状态的核心通过对核心进行电源门控既不消耗静态功耗也不消耗动态功耗,由此使能耗最小化。
响应于在当前周期内存在压制状态核心,作业调度器10等待当前处于激活状态的核心完成作业。当当前处于激活状态的核心之中的核心已经完成作业时,将该核心的状态改变为关闭状态,关闭对该核心的供电,并且执行电源门控,因此该核心不消耗动态功耗和静态功耗。另外,将压制状态核心改变为用于处理作业的激活状态,从而继续保持激活状态核心的最优数量。响应于当前周期内不存在压制状态核心,即使当前处于激活状态的核心完成作业,作业调度器10也不关闭对任何激活状态核心的供电,保持激活状态核心处于激活状态以保持激活状态核心的最优数量,并且可将剩余的待处理的作业再次分配给激活状态核心。
图4是示出多核设备的作业调度的方法的示例的流程图。图4是可由根据图1的示例的多核设备1中的作业调度器10执行的作业调度方法的示例。
参照图4,在操作410,作业调度器基于从构成多核设备的一个或更多个核心中的每一个核心的接收到的状态信息将所述核心中的每一个核心的状态改变为压制状态。作业调度器可在每个周期逐步将所述核心中的每一个核心的状态改变为压制状态,直到处于激活状态的核心的最优数量被确定为止。
在操作420,作业调度器基于使多核设备的能耗最小化的状态改变的结果来确定激活状态核心的最优数量。
在操作430,作业调度器基于激活状态核心的作业处理结果来调整对当前处于激活状态的一个或更多个核心的供电,并保持激活状态核心的最优数量。如上所述,作业调度器将已经完成了作业的激活状态核心中的每一个核心的状态改变为关闭状态,对关闭状态核心执行电源门控,并将一个或更多个压制状态核心的状态改变为用于处理作业的激活状态,从而继续保持确定的激活状态核心的最优数量。
图5是示出作业调度的方法的示例中的改变每个核心的状态并确定激活状态核心的最优数量的方法的示例的流程图。由作业调度器(例如,图1的作业调度器10)执行改变每个核心的方法和确定激活状态核心的最优数量的方法。
在操作510,作业调度器确定从多个核心之中的核心接收到的状态信息是否指示将核心的状态改变为压制状态。如果状态信息被确定为指示将核心的状态改变为压制状态,则作业调度器在操作520继续。否则,作业调度器在操作560继续。
在操作520,作业调度器将核心的状态改变为压制状态。
在操作530,作业调度器确定当期周期是否大于预定监控周期。如果当期周期被确定为大于预定监控周期,则作业调度器在操作540继续。否则,作业调度器在操作550继续。
在操作540,作业调度器将当前处于激活状态并且没有被改变为压制状态的核心的数量确定为激活状态核心的最优数量。
在操作550,作业调度器确定当前处于激活状态的核心的数量是否与内存(例如,DRAM)的通道的数量相同。如果当前处于激活状态的核心的数量被确定为与内存的通道的数量相同,则作业调度器在操作540继续。否则,作业调度器在操作560继续。
在操作560,作业调度器将当前周期增加1,并且下一周期进行。当激活状态核心的最优数量被确定时,作业调度器进行至下一周期,以通过被确定为激活状态核心的最优数量的当前处于激活状态的核心的数量处理作业。
图6是示出作业调度的方法的示例中的调整供电的方法的示例的流程图。由作业调度器(例如,图1中的作业调度器)执行对一个或更多个核心的供电的调整的方法。
在操作610,作业调度器确定在当前周期中是否存在一个或更多个压制状态核心。当确定为在当前周期中存在压制状态核心时,作业调度器在操作620继续。否则,作业调度器在操作650继续。
在操作620,作业调度器进行等待直到当前处于激活状态的核心中的任何一个核心完成分配到的全部作业为止,将已经完成了分配到的全部各个作业的激活状态核心中的每一个核心的状态改变为关闭状态。
在操作630,作业调度器对改变为关闭状态的核心执行电源门控。
在操作640,作业调度器将多个压制状态核心的状态改变为用于处理作业的激活状态,从而保持激活状态核心的最优数量。
在操作650,作业调度器确定是否存在待处理的作业。当确定为没有待处理的作业时,方法终止。否则,作业调度器在操作660继续。
在操作660,即使激活状态核心已经完成了分配到的全部各个作业,作业调度器也保持激活状态核心,并且将待处理的新作业分配给激活状态核心。作业调度器返回操作650。
图7是示出在多核设备中改变每个核心的状态并进行电源门控的示例的示图。多核设备包括六个核心C0-C5,并且在(a)部分,作业被分配给核心C0-C5中的所有核心,因此处于激活状态ACT。随后,在(b)部分,核心C5的状态被改变为压制状态THR,其后,核心的状态被逐步改变,直到激活状态核心的最优数量被确定为止。在(c)部分,核心C2、核心C3和核心C4中的每一个核心的状态被改变为压制状态,而核心C0和核心C1中的每一个核心的状态保持在激活状态,其结果是,确定激活状态核心的最优数量是2。随后,在(d)部分,核心C1的全部作业被完成,使得核心C1的状态被改变为核心C1的供电被关闭的关闭状态,并且核心C2的状态从压制状态被改变为用于处理作业的激活状态。随后,在(e)部分,核心C0和核心C2的全部作业被完成,使得核心C0和核心C2中的每一个核心的状态被改变为关闭对核心C0和核心C2的供电的关闭状态,并且核心C3和核心C4中的每一个核心的状态从压制状态被改变为用于处理作业的激活状态。
图8是示出根据作业调度的方法的示例的性能比较结果的示例的示图。图8中的(a)部分示出根据通用GPU方法的每个周期的指令(IPC)和性能,(b)部分示出根据作业调度的方法的示例的IPC和性能,(c)部分示出根据通用电源门控方法的IPC和性能。
如图8中所示,在(a)部分的通用GPU方法中,在所有周期中,全体核心持续操作,因此持续消耗动态功耗和静态功耗。另外,在(c)部分的通用电源门控方法中,由于全体核心基本上继续操作,因此所有核心持续消耗功耗直到对已经首先完成全部作业的核心0-20执行电源门控为止。与之相比,在根据如(b)部分中的作业调度的方法的示例的多核设备中,作为为了每个周期的尽可能少的能耗的激活状态核心的最优数量的核心的数量被持续保持在用于处理作业的激活状态,并且其余核心被保持在压制状态或电源门控状态,从而在每个周期尽可能少地消耗能量。
可在台式GPU和/或移动应用处理器中实现所述多核设备的示例。
可使用一个或更多个硬件组件、一个或更多个软件组件或一个或更多个硬件组件和一个或更多个软件组件的组合来实现以上描述的各种单元、元件和方法。
硬件组件可以是例如物理地执行一个或更多个操作的物理装置,但不限于此。硬件组件的示例包括麦克风、放大器、低通滤波器、高通滤波器、带通滤波器、模数转换器、数模转换器和处理装置。
可通过例如由用于执行一个或更多个操作的软件或指令控制的处理装置实现软件组件,但不限于此。计算机、控制器或其它控制装置可使处理装置运行软件或执行指令。可通过一个处理装置实现一个软件组件,或者可通过一个处理装置实现两个或更多个软件组件,或者可通过两个或更多个处理装置实现一个软件组件,或者可通过两个或更多个处理装置实现两个或更多个软件组件。
可使用一个或更多个通用计算机或专用计算机(例如,诸如处理器、控制器和算术逻辑单元、数字信号处理器、微计算机、现场可编程阵列、可编程逻辑单元、微处理器)或者能够运行软件或执行指令的任何其它装置来实现处理装置。处理装置可运行操作***(OS),并且可运行在OS下进行操作的一个或更多个软件应用。当处理装置运行软件或执行指令时,处理装置可访问、存储、操纵、处理并创建数据。为简单起见,可在描述中使用单数术语“处理装置”,但是本领域普通技术人员将理解的是,处理装置可包括多个处理元件和多种处理元件。例如,处理装置可包括一个或更多个处理器,或者可包括一个或更多个处理器和一个或更多个控制器。另外,不同的处理配置是可行的,诸如并行处理器或多核处理器。
被配置为实现用于执行操作A的软件组件的处理装置可包括被编程为运行软件或执行指令以控制处理器执行操作A的处理器。另外,被配置为实现用于执行操作A、操作B和操作C的软件组件的处理装置可包括各种配置,诸如:例如,被配置为实现用于执行操作A、操作B和操作C的软件组件的处理器;被配置为实现用于执行操作A的软件组件的第一处理器、以及被配置为实现用于执行操作B和操作C的软件组件的第二处理器;被配置为实现用于执行操作A和操作B的软件组件的第一处理器、以及被配置为实现用于执行操作C的软件组件的第二处理器;被配置为实现用于执行操作A的软件组件的第一处理器、被配置为实现用于执行操作B的软件组件的第二处理器、以及被配置为实现用于执行操作C的软件组件的第三处理器;被配置为实现用于执行操作A、操作B和操作C的软件组件的第一处理器、被配置为实现用于执行操作A、操作B和操作C的软件组件的第二处理器、或均实现操作A、操作B和操作C中的一个或更多个操作的软件组件的一个或更多个处理器的任何其它配置。尽管这些示例指示三个操作A、B和C,但是可实现的操作的数量不限于三个,而是可以是实现期望的结果或执行期望的任务所需的任何数量的操作。
用于控制处理装置实现软件组件的软件或指令可包括用于单独或共同地指示或配置处理装置执行一个或更多个期望的操作的计算机程序、代码段、指令或者上述项的一些组合。软件或指令可包括可由处理装置直接执行的机器代码(诸如由编译器产生的机器代码)和/或可由处理装置使用解译器执行的较高级代码。可在能够将指令或数据提供给处理装置或者能够由处理装置解译的任何类型的机器、组件、物理设备或虚拟设备、计算机存储介质或装置或者传播的信号波中,永久地或暂时地实现软件或指令以及任何相关联的数据、数据文件和数据结构。软件或指令以及任何相关联的数据、数据文件和数据结构还可被分布在联网的计算机***上,使得软件或指令以及任何相关的数据、数据文件和数据结构以分布式方式被存储和执行。
例如,软件或指令以及任何相关的数据、数据文件和数据结构可被记录、存储或固定在一个或更多个非暂时性计算机可读存储介质中。非暂时性计算机可读存储介质可以是能够存储软件或指令以及任何相关联的数据、数据文件或数据结构以使它们可被计算机***或处理装置读取的的任何数据存储装置。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁带、软盘、磁光数据存储装置、光数据存储装置、硬盘、固态盘或者本领域普通计数人员已知的任何其它非暂时性计算机可读存储介质。
用于实现在此公开的示例的功能程序、代码和代码段可被所述示例所属领域的程序员基于在此提供的附图及其相应描述容易地创建。
虽然本公开包括特定示例,但是对于本领域普通技术人员而言显然的是,在不脱离权利要求及其等同物的精神和范围的情况下,可对这些示例做出形式和细节上的各种改变。在此描述的示例仅被认为是描述性意义,而不是为了限制的目的。每个示例中的特征或方面的描述被认为适用于其它示例中的相似的特征或方面。如果所描述的技术按照不同顺序被执行,和/或如果所描述的***、架构、装置或电路中的组件按照不同方式被组合和/或被其它组件或其等同物替代或补充,则可实现适当的结果。因此,本公开的范围不由详细描述限定而是由权利要求及其等同物限定,并且在权利要求及其等同物的范围内的全部变化将被理解为包括在本公开中。

Claims (26)

1.一种多核设备,包括:
多个核心,均包括被配置为存储激活周期计数的激活周期计数单元以及被配置为存储停顿周期计数的停顿周期计数单元;
作业调度器,被配置为:
基于从所述多个核心中的每一个核心接收到的状态信息确定处于激活状态的核心的最优数量,
调整供电以保持处于激活状态的核心的最优数量,
其中,状态信息是基于激活周期计数和停顿周期计数而被产生的,并且指示将所述多个核心中的相应的核心改变为压制状态的状态信息是响应于停顿周期计数大于激活周期计数和预定阈值而被产生的。
2.如权利要求1所述的多核设备,其中,激活状态是所述多个核心中的相应的核心被分配了作业并且能够处理作业的状态。
3.如权利要求1所述的多核设备,其中,所述多个核心中的每一个核心还包括:
前端单元,被配置为:
将指令发送到执行单元,
响应于指令被发送到用于对指令进行处理的执行单元,计算激活周期计数,并将激活周期计数存储在激活周期计数单元中,
响应于指令被发送到执行单元,计算停顿周期计数,并将停顿周期计数存储在停顿周期计数单元中。
4.如权利要求3所述的多核设备,其中:
所述多个核心中的每一个核心还包括:状态监控单元,被配置为存储状态信息;
前端单元还被配置为:
基于激活周期计数和停顿周期计数产生状态信息,
将状态信息存储在状态监控单元中。
5.如权利要求4所述的多核设备,其中,前端单元被配置为:
响应于停顿周期计数大于激活周期计数和预定阈值,产生指示将所述多个核心中的相应的核心改变为压制状态的状态信息。
6.如权利要求1所述的多核设备,其中,作业调度器被配置为:
基于状态信息将所述多个核心中的一个或更多个核心改变为压制状态;
基于改变结果确定处于激活状态的核心的最优数量。
7.如权利要求5或6所述的多核设备,其中,压制状态是所述多个核心中的相应的核心被分配了作业但无法处理作业的状态。
8.如权利要求6所述的多核设备,其中,作业调度器被配置为:
响应于当前周期大于预定周期,将在改变之后仍然处于激活状态的核心的数量确定为处于激活状态的核心的最优数量。
9.如权利要求6所述的多核设备,其中,作业调度器被配置为:
响应于当前周期小于或等于预定周期并且处于激活状态的核心的数量等于内存通道的数量,将处于激活状态的核心的数量确定为处于激活状态的核心的最优数量。
10.如权利要求1所述的多核设备,其中,作业调度器被配置为:
响应于在所述多个核心之中存在处于压制状态的核心,将所述多个核心之中的处于激活状态并处理完作业的核心改变为关闭状态;
对处于关闭状态的核心进行电源门控。
11.如权利要求10所述的多核设备,其中,关闭状态是所述多个核心中的相应的核心处理完作业并没有新分配的作业,并且电源门控被执行的状态。
12.如权利要求10所述的多核设备,其中,作业调度器被配置为:
响应于将处于激活状态的核心改变为关闭状态,将处于压制状态的核心改变为激活状态,以保持处于激活状态的核心的最优数量。
13.如权利要求1所述的多核设备,其中,作业调度器被配置为:
响应于在所述多个核心之中没有处于压制状态的核心,将所述多个核心之中的处理完作业的核心保持在激活状态,并将新作业分配给处于激活状态的核心。
14.一种多核设备的作业调度方法,包括:
基于从多个核心中的每一个核心接收到的状态信息将所述多个核心中的一个或更多个核心改变为压制状态;
基于改变结果确定处于激活状态的核心的最优数量;
基于处于激活状态的核心的作业处理结果调整供电,以保持处于激活状态的核心的最优数量,
其中,状态信息是基于激活周期计数和停顿周期计数而被产生的,并且指示将所述多个核心中的相应的核心改变为压制状态的状态信息是响应于停顿周期计数大于激活周期计数和预定阈值而被产生的。
15.如权利要求14所述的作业调度方法,其中,激活状态是所述多个核心中的相应的核心被分配了作业并且能够处理作业的状态;压制状态是所述多个核心中的相应的核心被分配了作业但无法处理作业的状态。
16.如权利要求14所述的作业调度方法,其中,改变所述多个核心中的一个或更多个核心的步骤包括:
确定状态信息是否指示将所述多个核心中的相应的核心改变为压制状态;
响应于状态信息被确定为指示将所述多个核心中的相应的核心改变为压制状态,将所述多个核心中的相应的核心改变为压制状态。
17.如权利要求14所述的作业调度方法,其中,基于所述多个核心中的相应的核心的激活周期计数和停顿周期计数来产生状态信息。
18.如权利要求14所述的作业调度方法,其中,确定处于激活状态的核心的最优数量的步骤包括:
确定当前周期是否大于预定周期;
响应于当前周期被确定为大于预定周期,将处于激活状态的核心的数量确定为处于激活状态的核心的最优数量。
19.如权利要求18所述的作业调度方法,其中,确定处于激活状态的核心的最优数量的步骤包括:
响应于当前周期被确定为不大于预定周期,确定处于激活状态的核心的数量是否等于内存通道的数量;
响应于处于激活状态的核心的数量被确定为等于内存通道的数量,将处于激活状态的核心的数量确定为处于激活状态的核心的最优数量。
20.如权利要求14所述的作业调度方法,其中,调整供电的步骤包括:
响应于所述多个核心中的一个或更多个核心处于压制状态,将所述多个核心之中处于激活状态并处理完作业的核心改变为关闭状态;
对处于关闭状态的核心进行电源门控。
21.如权利要求20所述的作业调度方法,其中,关闭状态是所述多个核心中的相应的核心处理完作业并没有新分配的作业,并且电源门控被执行的状态。
22.如权利要求20所述的作业调度方法,其中,调整供电的步骤包括:
响应于将处于激活状态的核心改变为关闭状态,将所述多个核心之中处于压制状态的核心改变为激活状态,以保持处于激活状态的核心的最优数量。
23.如权利要求14所述的作业调度方法,其中,调整供电的步骤包括:
响应于不存在所述多个核心中的一个或更多个处于压制状态的核心,将所述多个核心之中的处理完作业的核心保持在激活状态,并将新作业分配给处于激活状态的核心。
24.一种多核设备,包括:
处理器,被配置为:
基于从多个核心中的每一个核心接收到的状态信息将所述多个核心中的一个或更多个核心改变为压制状态,直到基于改变结果确定处于激活状态的核心的最优数量为止,
响应于改变,关闭所述多个核心之中处于激活状态并处理完作业的核心,
响应于关闭,将所述多个核心之中处于压制状态的核心改变为激活状态,
其中,状态信息是基于激活周期计数和停顿周期计数而被产生的,并且指示将所述多个核心中的相应的核心改变为压制状态的状态信息是响应于停顿周期计数大于激活周期计数和预定阈值而被产生的。
25.如权利要求24所述的多核设备,其中:
压制状态是所述多个核心中的相应的核心被分配了作业但无法处理作业的状态;
激活状态是所述多个核心中的相应的核心被分配了作业并且能够处理作业的状态;
关闭状态是所述多个核心中的相应的核心处理完作业并没有新分配的作业,并且电源门控被执行的状态。
26.如权利要求24所述的多核设备,其中,响应于所述多个核心中的相应的核心的停顿周期计数大于激活周期计数和预定阈值,指示将所述多个核心中的相应的核心改变为压制状态的状态信息被产生。
CN201410232954.5A 2013-05-30 2014-05-29 多核设备及其作业调度方法 Active CN104216774B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0062011 2013-05-30
KR1020130062011A KR102110812B1 (ko) 2013-05-30 2013-05-30 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법

Publications (2)

Publication Number Publication Date
CN104216774A CN104216774A (zh) 2014-12-17
CN104216774B true CN104216774B (zh) 2019-11-15

Family

ID=50841581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410232954.5A Active CN104216774B (zh) 2013-05-30 2014-05-29 多核设备及其作业调度方法

Country Status (5)

Country Link
US (1) US9405349B2 (zh)
EP (1) EP2808789B1 (zh)
JP (1) JP6580307B2 (zh)
KR (1) KR102110812B1 (zh)
CN (1) CN104216774B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101553649B1 (ko) * 2013-05-13 2015-09-16 삼성전자 주식회사 멀티 코어 장치 및 멀티 코어 장치의 작업 스케줄링 방법
US10291391B2 (en) * 2014-06-04 2019-05-14 Giesecke+Devrient Mobile Security Gmbh Method for enhanced security of computational device with multiple cores
US10025367B2 (en) * 2014-08-19 2018-07-17 Intel Corporation Dynamic scaling of graphics processor execution resources
CN105700664B (zh) * 2016-01-17 2019-03-26 创启科技(广州)有限公司 一种移动终端省电的方法及移动终端
JP6836065B2 (ja) * 2017-02-27 2021-02-24 富士通株式会社 情報処理装置、pld管理プログラム及びpld管理方法
US10528118B2 (en) * 2017-04-21 2020-01-07 Intel Corporation Dynamically power on/off register files during execution
CN108121433B (zh) * 2017-12-06 2021-10-15 中国航空工业集团公司西安航空计算技术研究所 一种gpu多处理器***的任务调度方法
KR20210017054A (ko) 2019-08-06 2021-02-17 삼성전자주식회사 멀티-코어 시스템 및 그 동작 제어 방법
CN111897648B (zh) * 2020-06-04 2022-06-14 华南理工大学 一种温度约束下的暗核感知众核***处理器资源分配方法
US20210182194A1 (en) * 2020-12-26 2021-06-17 Intel Corporation Processor unit resource exhaustion detection and remediation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1666180A (zh) * 2002-07-03 2005-09-07 皇家飞利浦电子股份有限公司 多处理器计算机***
CN101010655A (zh) * 2004-09-03 2007-08-01 英特尔公司 协调多核处理器中的空闲状态转换
JP2011515776A (ja) * 2008-03-28 2011-05-19 マイクロソフト コーポレーション 電力認識スレッドスケジューリングおよびプロセッサーの動的使用

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050310A1 (en) * 2003-07-15 2005-03-03 Bailey Daniel W. Method, system, and apparatus for improving multi-core processor performance
US8108863B2 (en) 2005-12-30 2012-01-31 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
US20080263324A1 (en) * 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
JP5182792B2 (ja) * 2007-10-07 2013-04-17 アルパイン株式会社 マルチコアプロセッサ制御方法及び装置
US20090210740A1 (en) * 2008-02-14 2009-08-20 Song Huang Off-chip access workload characterization methodology for optimizing computing efficiency
WO2009125789A1 (ja) * 2008-04-09 2009-10-15 日本電気株式会社 計算機システムとその動作方法
US20110213998A1 (en) 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
CN101403982B (zh) * 2008-11-03 2011-07-20 华为技术有限公司 一种多核处理器的任务分配方法和***
JP5091912B2 (ja) 2009-05-21 2012-12-05 株式会社東芝 マルチコアプロセッサシステム
US8443209B2 (en) 2009-07-24 2013-05-14 Advanced Micro Devices, Inc. Throttling computational units according to performance sensitivity
US8364997B2 (en) * 2009-12-22 2013-01-29 Intel Corporation Virtual-CPU based frequency and voltage scaling
KR101088563B1 (ko) 2009-12-24 2011-12-05 포항공과대학교 산학협력단 멀티코어프로세서 제어방법, 멀티코어프로세서 제어장치, 멀티코어프로세서 및 멀티코어프로세서 제어방법이 기록된 기록매체
US8356194B2 (en) * 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US8429441B2 (en) * 2010-04-19 2013-04-23 International Business Machines Corporation Operating processor below maximum turbo mode frequency by sending higher than actual current amount signal to monitor
US9268611B2 (en) * 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US9063730B2 (en) * 2010-12-20 2015-06-23 Intel Corporation Performing variation-aware profiling and dynamic core allocation for a many-core processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1666180A (zh) * 2002-07-03 2005-09-07 皇家飞利浦电子股份有限公司 多处理器计算机***
CN101010655A (zh) * 2004-09-03 2007-08-01 英特尔公司 协调多核处理器中的空闲状态转换
JP2011515776A (ja) * 2008-03-28 2011-05-19 マイクロソフト コーポレーション 電力認識スレッドスケジューリングおよびプロセッサーの動的使用

Also Published As

Publication number Publication date
US9405349B2 (en) 2016-08-02
KR102110812B1 (ko) 2020-05-14
JP2014235746A (ja) 2014-12-15
EP2808789A3 (en) 2016-06-01
EP2808789A2 (en) 2014-12-03
JP6580307B2 (ja) 2019-09-25
US20140359335A1 (en) 2014-12-04
KR20140140943A (ko) 2014-12-10
CN104216774A (zh) 2014-12-17
EP2808789B1 (en) 2019-04-24

Similar Documents

Publication Publication Date Title
CN104216774B (zh) 多核设备及其作业调度方法
KR102624607B1 (ko) 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링
US9733987B2 (en) Techniques to dynamically allocate resources of configurable computing resources
CN104778074B (zh) 一种计算任务处理方法及装置
KR101286700B1 (ko) 멀티 코어 프로세서 시스템에서 로드 밸런싱을 위한 장치및 방법
CN104850209B (zh) 用于提高事件处理的涡轮加速性能的方法和装置
CN108694069A (zh) 动态可组成的计算***、数据中心和用于动态组成计算***的方法
JP2018533122A (ja) マルチバージョンタスクの効率的なスケジューリング
CN107003905A (zh) 针对可配置计算资源的本地服务链而动态分配资源的技术
CN106980546A (zh) 一种任务异步执行方法、装置及***
CN108139931A (zh) 通过重映射同步来加速任务子图
CN109039929A (zh) 业务调度方法及装置
US11979336B1 (en) Quota-based resource scheduling
JP2023503024A (ja) マルチコア・プロセッサ複合体の中の1コア当たりのスレッドの最適数の決定
KR20110075296A (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
KR101276340B1 (ko) 병렬 처리 시스템 및 그 방법
CN109992366A (zh) 任务调度方法及调度装置
CN106133709B (zh) 用于防止存储器中的存储体冲突的方法和装置
CN107544845A (zh) Gpu资源调度方法及装置
CN116414541B (zh) 兼容多种任务工作模式的任务执行方法和装置
CN104133789B (zh) 用于调整带宽的设备和方法
US20160224502A1 (en) Synchronization in a Computing System with Multi-Core Processing Devices
EP4024214A1 (en) Computing device and method
CN109491785A (zh) 内存访问调度方法、装置及设备
KR20090014601A (ko) 버퍼를 이용한 연산 분산 방법 및 이를 이용한 연산 분산시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant