CN103119580B - 异构多处理器计算平台中的应用调度 - Google Patents

异构多处理器计算平台中的应用调度 Download PDF

Info

Publication number
CN103119580B
CN103119580B CN201180046075.8A CN201180046075A CN103119580B CN 103119580 B CN103119580 B CN 103119580B CN 201180046075 A CN201180046075 A CN 201180046075A CN 103119580 B CN103119580 B CN 103119580B
Authority
CN
China
Prior art keywords
performance
processor core
processor
core
application
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.)
Expired - Fee Related
Application number
CN201180046075.8A
Other languages
English (en)
Other versions
CN103119580A (zh
Inventor
R.艾尔
S.斯里尼瓦桑
L.赵
R.G.伊利卡尔
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN103119580A publication Critical patent/CN103119580A/zh
Application granted granted Critical
Publication of CN103119580B publication Critical patent/CN103119580B/zh
Expired - Fee Related 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
    • 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • 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
    • 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/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • 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)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Power Sources (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

调度在异构多处理器计算平台中的应用的方法和设备被描述。在一个实施例中,将与处理器的多个处理器核心的性能(例如执行性能和/或功率消耗性能)有关的信息存储在计数器和/或表中(并对该信息进行跟踪)。处理器中的逻辑基于所存储的信息来确定哪个处理器核心应当执行应用。还要求保护并公开了其他实施例。

Description

异构多处理器计算平台中的应用调度
技术领域
本公开总体上涉及电子学领域。更特别地,本发明的一个实施例涉及用于调度异构多处理器计算平台中的应用的技术。
背景技术
为了改进性能,一些计算系统包括多个处理器。然而,多处理器计算系统的缩放受到功率约束限制。即,随着更多处理器被添加至系统,功率消耗增加。此外,附加功率消耗生成更多热。因此,热和功率要求可能限制多处理器计算系统的缩放。
附图说明
参照附图来提供详细描述。在附图中,附图标记的最左侧的(一个或多个)数字标识该附图标记首次出现的图。在不同图中使用相同附图标记指示相似或相同的项目。
图1、5和6示出可以被利用以实施本文讨论的各种实施例的计算系统的实施例的框图。
图2示出根据一个实施例的计算系统的处理器核心和其他部件的部分的框图。
图3-4示出根据一些实施例的流程图。
具体实施方式
在下列描述中,阐述了许多特定细节以便提供对各种实施例的透彻理解。然而,可以在没有这些特定细节的情况下实践本发明的各种实施例。在其他实例中,公知的方法、过程、部件和电路未被详细地描述以免模糊本发明的特定实施例。此外,可以使用各种手段(例如集成半导体电路(“硬件”)、被组织成一个或多个程序的计算机可读指令(“软件”)、或者硬件和软件的某种组合)来执行本发明的实施例的各种方面。为了本公开的目的,对“逻辑”的引用应当是指硬件、软件、或其某种组合。此外,如本文所讨论的,对“指令”和“微操作”(uop)的使用是可互换的。
随着芯片多处理器(CMP)系统变得普遍(例如对于服务器和客户端平台来说),异构CMP开始赢得势头。例如,较小处理器核心可以提供更好的性能/功率优势。因此,将较小处理器核心与较大处理器核心一起添加可以是有吸引力的。如本文所讨论的,异构CMP包含在性能、面积和/或功率耗散方面不同的核心的集合。这种平台提供下述机会:即允许计算资源与各种应用的更好映射,使得在一些实施例中可以同时实现性能和功率效率。
然而,在异构CMP平台设计中的关键挑战之一是对性能和/或功率效率进行优化的应用调度(即,将应用映射至多个处理器核心)。为此,一个实施例涉及动态地调度异构核心当中的应用(例如在单个集成电路(IC)芯片/管芯上)。在一个实施例中,可以使用两个部件来调度应用。第一,可以提供处理器核心建模预测启发式法。第二,可以使用调度逻辑以基于所述核心建模预测启发式法来调度用于异构处理器核心的应用。
可以在具有性能状态设置的任一类型的处理器(例如参照图1和5-6讨论的处理器)中使用本文讨论的技术。更特别地,图1示出根据本发明的一个实施例的计算系统100的框图。系统100可以包括一个或多个处理器102-1至102-N(本文总体上称为“多个处理器102”或“处理器102”)。多个处理器102可以经由互连网络或总线104进行通信。每个处理器可以包括各种部件,为了清楚,仅参照处理器102-1讨论这些部件中的一些。因此,剩余处理器102-2至102-N中的每一个可以包括参照处理器102-1讨论的相同或相似部件。
在一个实施例中,处理器102-1可以包括一个或多个处理器核心106-1至106-M(本文称为“多个核心106”或者更一般地称为“核心106”)、共享高速缓存108、和/或路由器110。可以在单个集成电路(IC)芯片上实施多个处理器核心106。此外,该芯片可以包括一个或多个共享和/或专用高速缓存(例如高速缓存108)、总线或互连(例如总线或互连网络112)、存储控制器(例如参照图5和6讨论的那些存储控制器)、或者其他部件。此外,多个核心106可以是异构的(例如具有不同的大小、性能特性、功率消耗特性等等,如本文所讨论的)。
在一个实施例中,路由器110可以被用来在处理器102-1和/或系统100的各种部件之间通信。此外,处理器102-1可以包括多于一个路由器110。此外,大量路由器(110)可以进行通信以实现在处理器102-1内部或外部的各种部件之间的数据路由。
共享高速缓存108可以存储由处理器102-1的一个或多个部件(例如多个核心106)利用的数据(例如包括指令)。例如,共享高速缓存108可以在逻辑上对在存储器114中存储的数据进行高速缓存,以供处理器102的部件更快速访问。在一个实施例中,高速缓存108可以包括中级高速缓存(例如2级(L2)、3级(L3)、4级(L4)、或高速缓存的其他级)、最后一级高速缓存(LLC)、和/或其组合。此外,处理器102-1的各种部件可以直接地、通过总线(例如总线112)和/或存储控制器或集线器来与共享高速缓存108通信。如图1中所示,在一些实施例中,多个核心106中的一个或多个可以包括1级(L1)和/或2级(L2)高速缓存(116-1)(本文总体上称为“L1/L2高速缓存116”)。L1和/或L2高速缓存116在各种实施例中可以是专用的或共享的。
在一个实施例中,如下面将参照图2-4进一步讨论的,多个核心中的每一个可以包括帮助将应用分配给系统中的各种处理器核心的逻辑120。例如,可以基于在(一个或多个)计数器122(例如指示系统中的一个或多个其他核心的性能的(一个或多个)性能计数器)中存储的信息来(例如由操作系统(OS))分配应用。还可以基于可以被用来编索引至表(例如性能历史表(PHT)124-1)中的进程标识符(ID)来(例如由OS)分配应用。该表可以被存储在共享存储器(例如存储器114和/或共享高速缓存108)中或者被存储在处理器102或核心106中的专用存储设备(例如专用高速缓存(例如L1/L2高速缓存116))中(例如PHT 124-1)。该表可以在调度应用时将信息/提示提供给操作系统(OS),例如如下面将参照图2-4进一步讨论的。在一些实施例中,OS和应用可以被存储在存储器114(或者图5的存储器512和图6的610/612)中。
图2示出根据本发明的一个实施例的计算系统的处理器核心106和其他部件的部分的框图。在一个实施例中,图2中所示的箭头示出在整个核心106中指令的流向。可以在单个集成电路芯片(或管芯)上实施一个或多个处理器核心(例如处理器核心106),例如参照图1所讨论的。此外,芯片可以包括一个或多个共享和/或专用高速缓存(例如图1的高速缓存106和108)、互连(例如图1的互连104和/或112)、逻辑120、(一个或多个)计数器122、存储控制器、或其他部件。
如图2中所示,处理器核心106可以包括取指令(包括具有条件分支的指令)以用于由核心106执行的取单元202。可以从任何存储设备(例如存储器114和/或参照图4和5讨论的存储器设备)中取指令。核心106还可以包括对所取的指令进行解码的解码单元204。例如,解码单元204可以将所取的指令解码成多个uop(微操作)。另外,核心106可以包括调度单元206。调度单元206可以执行与存储经解码的指令(例如从解码单元204接收的)相关联的各种操作,直到指令为分派做好准备,例如直到经解码的指令的所有源值变得可用。在一个实施例中,调度单元206可以将经解码的指令调度和/或发出(issue)(或分派)至执行单元208以供执行。在指令被解码(例如由解码单元204)和分派(例如由调度单元206)之后,执行单元208可以执行所分派的指令。在一个实施例中,执行单元208可以包括多于一个执行单元。执行单元208还可以执行各种算术运算(例如加法、减法、乘法、和/或除法),并且可以包括一个或多个算术逻辑单元(ALU)。在一个实施例中,协处理器(未示出)可以结合执行单元208来执行各种算术运算。
此外,执行单元208可以乱序执行指令。因此,在一个实施例中处理器核心106可以是乱序处理器核心。核心106还可以包括引退(retirement)单元210。在所执行的指令被提交之后,引退单元210可以引退所执行的指令。在一个实施例中,所执行的指令的引退可以导致从指令的执行中提交处理器状态、解除分配由指令所使用的物理寄存器等等。
核心106还可以包括经由一个或多个总线(例如总线104和/或112)实现处理器核心106的部件与其他部件(例如参照图1讨论的部件)之间的通信的总线单元214。核心106还可以包括存储由核心106的各种部件(包括逻辑120,如参照图1和3-4所讨论的)访问的数据的一个或多个计数器122。
此外,在一些实施例中,逻辑120不仅跟踪应用的性能,而且预测在应用要是在系统中的另一核心上执行的情况下应用的执行和/或功率消耗性能(例如基于计数器122中存储的值)。可以将该信息提供给OS,该OS可以基于各种阈值(例如功率、性能、能量、其组合等等)来执行调度。例如,OS和/或逻辑120可以将所考虑的多个处理器核心的各种执行或功率消耗性能数据进行比较,并且关于哪个核心将提供更好的执行或功率消耗性能进行确定(基于本文讨论的各种阈值)。
根据一个实施例,可以使用基于签名的方法。例如,可以在系统中的一个或多个核心上执行每个应用,并且可以将应用性能统计存储在性能历史表(PHT)中。性能统计可以包括CPI(每指令周期)、MPI(每指令缺失(miss))等等。例如,如样本表1中所示,每个表条目可以具有三个或更多个字段。第一个字段指示进程ID,第二个字段用于存储应用在大的核心上执行时的CPI,以及最后一个字段存储应用在小的核心上执行时的性能。每当应用被上下文切换至其他核心时,逻辑120都可以获得新信息并更新PHT 124。
进程ID 大的核心CPI 小的核心CPI
1011 0.98 1.35
1012 0.73 1.44
2013 1.19 1.31
表1 – 样本性能历史表(PHT)。
PHT 124的大小可以相当小。例如,如果仅使用CPI,则每条目12字节是存储历史信息所需的存储器。每当应用被调度以运行时,还可以将PHT 124存储在应用的进程控制块(PCB)中和/或可以将PHT 124加载至另一存储器(例如PHT 124、高速缓存106、存储器114、高速缓存108等等)中。该方法可以被扩展至进程之外,并且可以被用于进程内的各种热点。
一旦设置了PHT,每当应用被调度以运行时,逻辑120都从PHT中读取信息,并基于预定义度量(例如功率/性能等等)、针对最优调度策略将提示提供给OS,如图3中所示。
参照图3,根据一个实施例,示出基于签名的核心建模预测启发式方法的流程图。在一些实施例中,可以利用参照图1-2和5-6讨论的各种部件来执行参照图3讨论的操作中的一个或多个。
参照图1-3,在操作302处,在上下文切换时,加载应用(例如从进程控制块或另一位置,如本文所讨论的)。在操作304处,逻辑120从PHT中读取信息。在操作306处,基于PHT信息来确定进程对大的或小的处理器核心来说是否最优(例如出于性能或功率消耗目的)。然后,在操作308处,将该信息发送至OS(例如,在一个实施例中基于如由逻辑120确定的功率消耗和/或性能考虑)。在操作310处,逻辑120收集另外的历史信息(例如基于在操作306处的最近确定)并更新PHT信息。
参照图4,根据一个实施例,示出基于性能的核心建模预测启发式方法的流程图。在一些实施例中,可以利用参照图1-2和5-6讨论的各种部件来执行参照图4讨论的操作中的一个或多个。
参照图1-2和4,在操作402处,在上下文切换时,加载应用(例如从进程控制块或另一位置,如本文所讨论的)。在操作404处,逻辑120读取在性能计数器(例如计数器122)中存储的值。在操作406处,基于性能计数器信息来确定进程对大的或小的处理器核心来说是否最优(例如出于性能或功率消耗目的)。然后,在操作408处,将该信息发送至OS(例如,在一个实施例中基于如由逻辑120确定的功率消耗和/或性能考虑)。在操作410处,逻辑120收集另外的历史信息(例如基于在操作406处的最近确定)并更新性能计数器(例如计数器122)。
在基于性能计数器的方法中,根据一些实施例,可以使用动态模型,该动态模型可以有效地预测小的核心上的应用在大的核心上执行时的性能,以及反之亦然。该方法使用性能计数器(例如计数器122),并基于下列等式来预测性能:
小的核心中的周期 = ((大的核心中的周期 – 大的核心上的暂停(stall)周期) * 小的核心的发出宽度/大的核心的发出宽度 * 倍增因子) + (大的核心中的L1缺失 * 小的核心的L1缺失损失) + (大的核心中的L2缺失 * 小的核心的L2缺失损失)。
在一个实施例中,可以基于L2缺失和加载/存储指令的数目来凭经验导出倍增因子。在一些实施例中,大的核心可以具有与小的核心相比两倍的加载/存储单元数目。此外,在一些实施中,由于缺少在一些工作负荷中观察到的存储级并行性,显著L2缺失应用可能不通过大的核心的乱序特性而受益。
大的核心中的周期 = ((小的核心中的周期 – 小的核心上的暂停周期) * 大的核心的发出宽度/小的核心的发出宽度)/(1 – 暂停因子)。
可以通过在大的核心上运行应用一次并收集暂停周期和总周期性能数据来导出暂停因子。此外,一些平台可以包括标识由于长延迟操作而引起的暂停(例如高速缓存缺失、浮点暂停等等)的各种性能计数器。当在逻辑120中使用时与其他计数器(例如引退的加载/存储指令、L2缺失等等)组合的这些暂停可以有助于预测应用在要是在另一核心上运行的情况下的性能。即使在平台中不具有特定存储暂停计数器,也可以使用平台中的其他暂停计数器来估计暂停。
关于调度,一些实施例可以如下基于由逻辑120提供的性能信息将各种应用映射至大的和小的核心:(1)对于单个应用,如果大的与小的核心的性能比大于可编程值,那么在大的核心上调度应用;否则在小的核心上调度应用。该可编程值可以驻留在核心中,并且可以是基于各种功率/性能度量、使用MSR(机器状态寄存器)来写入的;(2)对于多个应用(例如需要调度的N个应用),基于其大的与小的核心的性能比来对应用进行排序。将顶部N/2个应用(例如具有最大增益的应用)调度至大的核心上,并且在小的核心上调度底部N/2个应用。
在一些实施例中,可以使用下列计数器中的一个或多个(例如对于计数器122):
(1)核心时钟周期:该计数器对核心主动执行指令的周期的数目进行计数;
(2)引退的指令:该计数器对核心在给定时间样本期间引退的指令的数目进行计数;
(3)L2缺失:该计数器对缺失了L2的存储器引用的数目进行计数;
(4)调度器暂停:该计数器对小的核心不能调度指令的周期的数目进行计数(该计数还可以基于小的核心中的L2缺失和L2缺失延迟的乘积而导出);
(5)资源暂停:该计数器对大的核心由于资源的不可用性而暂停(例如保留站、长延迟缺失等等)的周期的数目进行计数;和/或
(6)分支暂停:该计数器对由于分支误预测而丢失的周期的总数进行计数。
图5示出根据本发明的一个实施例的计算系统500的框图。计算系统500可以包括经由互连网络(或总线)504进行通信的一个或多个中央处理单元(CPU)502或处理器。多个处理器502可以包括通用处理器、网络处理器(其处理通过计算机网络503传送的数据)、或者其他类型的处理器(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。此外,多个处理器502可以具有单或多核心设计。具有多核心设计的多个处理器502可以将不同类型的处理器核心集成在相同集成电路(IC)管芯上。此外,具有多核心设计的多个处理器502可以被实施为对称或非对称多处理器。在一个实施例中,多个处理器502中的一个或多个可以与图1的多个处理器102相同或相似。例如,多个处理器502中的一个或多个可以包括参照图1-4讨论的多个核心106。此外,参照图1-4讨论的操作可以由系统500的一个或多个部件执行。
芯片组506还可以与互连网络504进行通信。芯片组506可以包括存储控制集线器(MCH)508。MCH 508可以包括与存储器512(其可以与图1的存储器114相同或相似)进行通信的存储控制器510。存储器512可以存储数据,包括可以由CPU 502或者在计算系统500中包括的任何其他设备执行的指令的序列。在本发明的一个实施例中,存储器512可以包括一个或多个易失性存储(或存储器)设备,例如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、或其他类型的存储设备。还可以利用非易失性存储器,例如硬盘。附加设备可以经由互连网络504进行通信,例如多个CPU和/或多个系统存储器。
MCH 508还可以包括与显示设备516进行通信的图形接口514。在本发明的一个实施例中,图形接口514可以经由加速图形端口(AGP)来与显示设备516进行通信。在本发明的一个实施例中,显示器516(例如平板显示器)可以通过例如信号转换器来与图形接口514进行通信,所述信号转换器将存储设备(例如视频存储器或系统存储器)中存储的图像的数字表示转换成由显示器516解释并显示的显示信号。由显示设备产生的显示信号可以在被显示器516解释以及随后在显示器516上显示之前经过各种控制设备。
集线器接口518可以允许MCH 508和输入/输出控制集线器(ICH)520进行通信。ICH 520可以提供到与计算系统500进行通信的(一个或多个)I/O设备的接口。ICH 520可以通过外围桥(或控制器)524(例如外围部件互连(PCI)桥、通用串行总线(USB)控制器、或者其他类型的外围桥或控制器)来与总线522进行通信。桥524可以提供CPU 502与外围设备之间的数据路径。可以利用其他类型的拓扑。此外,多个总线可以与ICH 520进行通信,例如通过多个桥或控制器。此外,在本发明的各种实施例中,与ICH 520进行通信的其他外围设备可以包括集成驱动电子器件(IDE)或(一个或多个)小型计算机系统接口(SCSI)硬盘驱动器、(一个或多个)USB端口、键盘、鼠标、(一个或多个)并行端口、(一个或多个)串行端口、(一个或多个)软盘驱动器、数字输出支持(例如数字视频接口(DVI))、或者其他设备。
总线522可以与音频设备526、一个或多个盘驱动器528、以及网络接口设备530(其与计算机网络503进行通信)进行通信。其他设备可以经由总线522进行通信。此外,在本发明的一些实施例中,各种部件(例如网络接口设备530)可以与MCH 508进行通信。另外,可以将处理器502和MCH 508进行组合以形成单个芯片。此外,在本发明的其他实施例中可以将图形加速器516包括在MCH 508内。
此外,计算系统500可以包括易失性和/或非易失性存储器(或存储装置)。例如,非易失性存储器可以包括下列中的一个或多个:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、盘驱动器(例如528)、软盘、光盘ROM(CD-ROM)、数字通用盘(DVD)、闪速存储器、磁光盘、或者能够存储电子数据(例如包括指令)的其他类型的非易失性机器可读介质。
图6示出根据本发明的一个实施例的以点对点(PtP)配置来布置的计算系统600。特别地,图6示出下述系统,即在所述系统中处理器、存储器和输入/输出设备由多个点对点接口互连。参照图1-5讨论的操作可以由系统600的一个或多个部件执行。
如图6中所示,系统600可以包括几个处理器,为了清楚,仅示出其中两个处理器602和604。处理器602和604中的每一个可以包括实现与存储器610和612的通信的本地存储控制器集线器(MCH)606和608。存储器610和/或612可以存储各种数据,例如参照图5的存储器512讨论的那些数据。
在一个实施例中,处理器602和604可以是参照图5讨论的多个处理器502之一。处理器602和604可以分别使用PtP接口电路616和618、经由点对点(PtP)接口614来交换数据。此外,处理器602和604中的每一个可以使用点对点接口电路626、628、630和632、经由各个PtP接口622和624来与芯片组620交换数据。芯片组620还可以例如使用PtP接口电路637、经由图形接口636来与图形电路634交换数据。
可以在处理器602和604内提供本发明的至少一个实施例。例如,图1-5的核心106可以位于处理器602和604内。然而,本发明的其他实施例可以存在于图6的系统600内的其他电路、逻辑单元或设备中。此外,本发明的其他实施例可以分布在图6中所示的整个几个电路、逻辑单元或设备中。
芯片组620可以使用PtP接口电路641来与总线640进行通信。总线640可以与一个或多个设备(例如总线桥642和I/O设备643)进行通信。经由总线644,总线桥642可以与诸如键盘/鼠标645、通信设备646(例如调制解调器、网络接口设备、或者可以与计算机网络503进行通信的其他通信设备)、音频I/O设备647、和/或数据存储设备648之类的其他设备进行通信。数据存储设备648可以存储可以由处理器602和/或604执行的代码649。
在本发明的各种实施例中,本文讨论的操作(例如参照图1-6)可以被实施为硬件(例如逻辑电路)、软件、固件、或其组合,其可以作为计算机程序产品而被提供,所述计算机程序产品例如包括其上存储有用来对计算机进行编程以执行本文讨论的进程的指令(或软件过程)的(例如非瞬时)机器可读或计算机可读介质。机器可读介质可以包括存储设备,例如参照图1-6讨论的那些存储设备。
另外,这种计算机可读介质可以作为计算机程序产品而被下载,其中可以经由通信链路(例如总线、调制解调器或网络连接)、通过包含在载波或其他传播介质中的数据信号来将程序从远程计算机(例如服务器)传送至请求计算机(例如客户端)。
在说明书中对“一个实施例”、“一个实施例”或“一些实施例”的引用意味着:结合所述(一个或多个)实施例描述的特定的特征、结构或特性可以被包括在至少一个实施中。说明书中各处出现的短语“在一个实施例中”可以都指代或者可以不都指代相同实施例。
此外,在说明书和权利要求书中,可以使用术语“耦合”和“连接”及其派生词。在本发明的一些实施例中,“连接”可以被用来指示,两个或更多个元件彼此直接物理或电接触。“耦合”可能意味着,两个或更多个元件直接物理或电接触。然而,“耦合”还可能意味着,两个或更多个元件可以不彼此直接接触,但是仍然可以彼此协作或交互。
因此,尽管已经以特定于结构特征和/或方法动作的语言描述了本发明的实施例,但是应当理解,所要求保护的主题可以不限于所描述的特定特征或动作。更确切地说,特定特征和动作被公开为实施所要求保护的主题的样本形式。

Claims (30)

1.一种处理器,包括:
存储单元,所述存储单元存储对应于所述处理器的多个处理器核心的性能的信息;以及
逻辑,所述逻辑至少部分基于应用在所述多个处理器核心的第一处理器核心上执行与在另一处理器核心上执行的预测的性能之比来确定所述多个处理器核心中的第一处理器核心以执行应用,将要预测的性能来自所存储的信息,以及每当在所述第一处理器核心与另一处理器核心上的所述预测的性能之比表明将调度到所述第一处理器核心上的所有应用的或者较大的性能增益之一或者较小的性能损失之一,使得在所述第一处理器核心上针对执行而调度所述应用;
其中所述逻辑将数据传送至操作系统以使得在所述第一处理器核心上调度所述应用。
2.根据权利要求1所述的处理器,其中,响应于对上下文切换的检测,所述逻辑将数据传送至所述操作系统以使得在所述第一处理器核心上调度所述应用。
3.根据权利要求1所述的处理器,其中,所存储的对应于所述处理器的所述多个处理器核心的性能的信息包括执行性能数据或功率消耗性能数据。
4.根据权利要求1所述的处理器,其中,所述逻辑基于所收集的信息来更新所存储的信息。
5.根据权利要求1所述的处理器,其中,所述逻辑预测所述应用在所述多个处理器核心中的至少一些上的执行或功率消耗性能。
6.根据权利要求1所述的处理器,其中,所述多个处理器核心是异构的。
7.根据权利要求1所述的处理器,其中,所述存储单元包括:共享存储器、专用高速缓存、共享高速缓存、或专用存储器。
8.根据权利要求1所述的处理器,其中,所存储的信息被存储在所述应用的进程控制块中。
9.根据权利要求1所述的处理器,其中,所述存储单元存储性能历史表PHT。
10.根据权利要求9所述的处理器,其中,所述PHT中的每个条目至少存储进程标识符以及对应于所述多个处理器核心的每指令多个周期。
11.根据权利要求1所述的处理器,其中,所述存储单元存储一个或多个性能计数器。
12.根据权利要求11所述的处理器,其中,所述一个或多个性能计数器包括:核心时钟周期、引退的指令、2级高速缓存缺失、调度器暂停、资源暂停、或分支暂停。
13.一种用于调度处理器的方法,所述方法包括:
存储对应于处理器的多个异构处理器核心的性能的信息;
至少部分基于应用在所述多个处理器核心的第一处理器核心上执行与在另一处理器核心上执行的预测的性能之比来确定所述多个处理器核心中的第一处理器核心以执行应用,将要预测的性能来自所存储的信息;以及
每当在所述第一处理器核心与另一处理器核心上的所述预测的性能之比表明将调度到所述第一处理器核心上的所有应用的或者较大的性能增益之一或者较小的性能损失之一,响应于对应于所述第一处理器核心的数据向操作系统的传输,在所述第一处理器核心上针对执行而调度所述应用。
14.根据权利要求13所述的方法,其中,数据的所述传输响应于对上下文切换的检测。
15.根据权利要求13所述的方法,其中,所存储的对应于所述处理器的所述多个处理器核心的性能的信息包括执行性能数据或功率消耗性能数据。
16.根据权利要求13所述的方法,还包括:基于所收集的信息来更新所存储的信息。
17.根据权利要求13所述的方法,还包括:预测所述应用在所述多个处理器核心中的至少一些上的执行或功率消耗性能。
18.根据权利要求13所述的方法,其中,存储所述信息是在所述应用的进程控制块中。
19.根据权利要求13所述的方法,其中,所存储的信息被存储在下述中:
性能历史表PHT,其中所述PHT中的每个条目至少存储进程标识符以及对应于所述多个处理器核心的每指令多个周期;或者
一个或多个性能计数器,其中所述一个或多个性能计数器包括:核心时钟周期、引退的指令、2级高速缓存缺失、调度器暂停、资源暂停、或分支暂停。
20.一种计算系统,包括:
处理器,所述处理器包括多个处理器核心;以及
存储单元,所述存储单元存储对应于所述处理器的所述多个处理器核心的性能的信息,其中所述多个处理器核心中的至少一个包括逻辑,所述逻辑至少部分基于应用在所述多个处理器核心的第一处理器核心上执行与在另一处理器核心上执行的预测的性能之比来确定所述多个处理器核心中的第一处理器核心以执行应用,将要预测的性能来自所存储的信息,以及每当在所述第一处理器核心与另一处理器核心上的所述预测的性能之比表明将调度到所述第一处理器核心上的所有应用的或者较大的性能增益之一或者较小的性能损失之一,使得在所述第一处理器核心上针对执行而调度所述应用,
其中响应于对上下文切换的检测,所述逻辑将数据传送至操作系统以使得在所述第一处理器核心上调度所述应用。
21.根据权利要求20所述的系统,其中,所存储的对应于所述处理器的所述多个处理器核心的性能的信息包括执行性能数据或功率消耗性能数据。
22.根据权利要求20所述的系统,其中,所述逻辑预测所述应用在所述多个处理器核心中的至少一些上的执行或功率消耗性能。
23.根据权利要求20所述的系统,其中,所述多个处理器核心是异构的。
24.根据权利要求20所述的系统,其中,所述存储单元存储性能历史表PHT,其中所述PHT中的每个条目至少存储进程标识符以及对应于所述多个处理器核心的每指令多个周期。
25.根据权利要求20所述的系统,其中,所述存储单元存储一个或多个性能计数器,其中所述一个或多个性能计数器包括:核心时钟周期、引退的指令、2级高速缓存缺失、调度器暂停、资源暂停、或分支暂停。
26.根据权利要求20所述的系统,还包括与处理器核心耦合的音频设备。
27.一种用于调度处理器的设备,所述设备包括:
用于存储对应于处理器的多个异构处理器核心的性能的信息的部件;
用于至少部分基于应用在所述多个异构处理器核心的第一处理器核心上执行与在另一处理器核心上执行的预测的性能之比来确定所述多个异构处理器核心中的第一处理器核心以执行应用的部件,将要预测的性能来自所存储的信息;以及
用于每当在所述第一处理器核心与另一异构处理器核心上的所述预测的性能之比表明将调度到所述第一处理器核心上的所有应用的或者较大的性能增益之一或者较小的性能损失之一,响应于对应于所述第一处理器核心的数据向操作系统的传输,在所述第一处理器核心上针对执行而调度所述应用的部件。
28.根据权利要求27所述的设备,其中,所述设备包括:
用于响应于对上下文切换的检测而使得数据传输的部件。
29.根据权利要求27所述的设备,其中,所存储的对应于所述处理器的所述多个处理器核心的性能的信息包括执行性能数据或功率消耗性能数据。
30.根据权利要求27所述的设备,其中,所述设备包括:
用于预测所述应用在所述多个处理器核心中的至少一些上的执行性能或功率消耗性能的部件。
CN201180046075.8A 2010-09-25 2011-09-24 异构多处理器计算平台中的应用调度 Expired - Fee Related CN103119580B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/890653 2010-09-25
US12/890,653 US9268611B2 (en) 2010-09-25 2010-09-25 Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
PCT/US2011/053177 WO2012040684A2 (en) 2010-09-25 2011-09-24 Application scheduling in heterogeneous multiprocessor computing platforms

Publications (2)

Publication Number Publication Date
CN103119580A CN103119580A (zh) 2013-05-22
CN103119580B true CN103119580B (zh) 2016-08-17

Family

ID=45871864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180046075.8A Expired - Fee Related CN103119580B (zh) 2010-09-25 2011-09-24 异构多处理器计算平台中的应用调度

Country Status (9)

Country Link
US (2) US9268611B2 (zh)
JP (1) JP5774707B2 (zh)
KR (2) KR20140114074A (zh)
CN (1) CN103119580B (zh)
BR (1) BR112013006483A2 (zh)
DE (1) DE112011103216T5 (zh)
GB (1) GB2497449B (zh)
TW (3) TWI450104B (zh)
WO (1) WO2012040684A2 (zh)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8397088B1 (en) 2009-07-21 2013-03-12 The Research Foundation Of State University Of New York Apparatus and method for efficient estimation of the energy dissipation of processor based systems
WO2013162589A1 (en) * 2012-04-27 2013-10-31 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
WO2013178864A1 (en) * 2012-05-29 2013-12-05 Nokia Corporation A method and apparatus for deferring processor selection
WO2013177765A1 (en) 2012-05-30 2013-12-05 Intel Corporation Runtime dispatching among heterogeneous group of processors
KR102001414B1 (ko) 2012-09-27 2019-07-18 삼성전자주식회사 데이터 트랜잭션에 따라 전력공급을 제어하는 시스템-온-칩 및 그 동작방법
US9037889B2 (en) 2012-09-28 2015-05-19 Intel Corporation Apparatus and method for determining the number of execution cores to keep active in a processor
US9619284B2 (en) * 2012-10-04 2017-04-11 Intel Corporation Dynamically switching a workload between heterogeneous cores of a processor
US8949659B2 (en) 2012-10-18 2015-02-03 International Business Machines Corporation Scheduling workloads based on detected hardware errors
US20140189302A1 (en) * 2012-12-28 2014-07-03 Intel Corporation Optimal logical processor count and type selection for a given workload based on platform thermals and power budgeting constraints
US9442559B2 (en) 2013-03-14 2016-09-13 Intel Corporation Exploiting process variation in a multicore processor
US9727345B2 (en) 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
KR101553649B1 (ko) 2013-05-13 2015-09-16 삼성전자 주식회사 멀티 코어 장치 및 멀티 코어 장치의 작업 스케줄링 방법
KR102110812B1 (ko) * 2013-05-30 2020-05-14 삼성전자 주식회사 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법
US9842040B2 (en) 2013-06-18 2017-12-12 Empire Technology Development Llc Tracking core-level instruction set capabilities in a chip multiprocessor
WO2015050557A1 (en) * 2013-10-04 2015-04-09 Intel Corporation Techniques for heterogeneous core assignment
CN103645954B (zh) * 2013-11-21 2018-12-14 华为技术有限公司 一种基于异构多核体系的cpu调度方法、装置和系统
CN103646006B (zh) * 2013-11-26 2016-08-31 乐视致新电子科技(天津)有限公司 一种处理器的调度方法、装置和系统
JP6260303B2 (ja) * 2014-01-29 2018-01-17 富士通株式会社 演算処理装置及び演算処理装置の制御方法
CN103942103A (zh) * 2014-04-16 2014-07-23 乐视致新电子科技(天津)有限公司 多核体系中处理器调度策略的生成方法及装置、调度系统
CN105378670B (zh) * 2014-04-29 2019-02-26 华为技术有限公司 一种功率控制方法及装置
KR102197874B1 (ko) 2014-09-01 2021-01-05 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 쓰레드 스케줄링 방법
KR102354848B1 (ko) 2014-11-28 2022-01-21 삼성전자주식회사 캐시 메모리 장치 및 이를 포함하는 전자 시스템
US10101786B2 (en) * 2014-12-22 2018-10-16 Intel Corporation Holistic global performance and power management
US10133602B2 (en) * 2015-02-19 2018-11-20 Oracle International Corporation Adaptive contention-aware thread placement for parallel runtime systems
CN104809078B (zh) * 2015-04-14 2019-05-14 苏州中晟宏芯信息科技有限公司 基于退出退让机制的共享高速缓存硬件资源访问方法
WO2016171671A1 (en) 2015-04-21 2016-10-27 Hewlett-Packard Development Company, L.P. Performance change predictions
US10073718B2 (en) 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
US10303488B2 (en) * 2016-03-30 2019-05-28 Sony Interactive Entertainment Inc. Real-time adjustment of application-specific operating parameters for backwards compatibility
US10296074B2 (en) * 2016-08-12 2019-05-21 Qualcomm Incorporated Fine-grained power optimization for heterogeneous parallel constructs
US11513805B2 (en) * 2016-08-19 2022-11-29 Wisconsin Alumni Research Foundation Computer architecture with synergistic heterogeneous processors
FR3056786B1 (fr) * 2016-09-29 2019-11-22 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede de gestion des taches de calcul sur un processeur multi-cœurs fonctionnellement asymetrique
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
EP4120070B1 (en) 2016-12-31 2024-05-01 INTEL Corporation Systems, methods, and apparatuses for heterogeneous computing
US11281586B2 (en) * 2017-05-09 2022-03-22 Andes Technology Corporation Processor and way prediction method thereof
US10628223B2 (en) * 2017-08-22 2020-04-21 Amrita Vishwa Vidyapeetham Optimized allocation of tasks in heterogeneous computing systems
CN109937410B (zh) * 2017-10-25 2021-02-23 华为技术有限公司 核心调度方法和终端
US11138037B2 (en) 2017-11-02 2021-10-05 Mediatek Inc. Switch policy for hybrid scheduling in multi-processor systems
US10812416B2 (en) * 2017-12-27 2020-10-20 International Business Machines Corporation Reduced number of counters for reliable messaging
WO2019153187A1 (en) 2018-02-08 2019-08-15 Alibaba Group Holding Limited Hybrid system-on-chip for power and performance prediction and control
CN108664285A (zh) * 2018-05-10 2018-10-16 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
TWI698798B (zh) * 2018-10-22 2020-07-11 致茂電子股份有限公司 一種多核心運算裝置及其運作方法
US10649688B1 (en) * 2018-11-01 2020-05-12 Intel Corporation Precise longitudinal monitoring of memory operations
KR102552954B1 (ko) * 2018-11-07 2023-07-06 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법
GB2583103B (en) 2019-04-16 2022-11-16 Siemens Ind Software Inc Tracing instruction execution
US11544105B2 (en) 2019-09-11 2023-01-03 Google Llc Recommendations for scheduling jobs on distributed computing devices
TWI791929B (zh) 2019-11-28 2023-02-11 瑞昱半導體股份有限公司 通用分析裝置與方法
CN113609126B (zh) * 2021-07-06 2022-03-11 无锡四维时空信息科技有限公司 一种众源时空数据的一体化存储管理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1955931A (zh) * 2005-09-30 2007-05-02 科威尔公司 在多核架构中进行调度
US7254812B1 (en) * 2002-05-31 2007-08-07 Advanced Micro Devices, Inc. Multi-processor task scheduling

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2683344B1 (fr) * 1991-10-30 1996-09-20 Bull Sa Systeme multiprocesseur avec moyens microprogrammes pour la repartition des processus aux processeurs.
GB2272085A (en) 1992-10-30 1994-05-04 Tao Systems Ltd Data processing system and operating system.
JPH09167141A (ja) 1995-12-18 1997-06-24 Hitachi Ltd 負荷分散制御方法
US6298370B1 (en) 1997-04-04 2001-10-02 Texas Instruments Incorporated Computer operating process allocating tasks between first and second processors at run time based upon current processor load
US6134675A (en) 1998-01-14 2000-10-17 Motorola Inc. Method of testing multi-core processors and multi-core processor testing device
US6021076A (en) 1998-07-16 2000-02-01 Rambus Inc Apparatus and method for thermal regulation in memory subsystems
US6161188A (en) 1998-11-17 2000-12-12 Ip-First, L.L.C. Microprocessor having fuse control and selection of clock multiplier
US6728892B1 (en) 1999-09-15 2004-04-27 Koninklijke Philips Electronics N.V. Method for conserving power in a can microcontroller and a can microcontroller that implements this method
JP2001175627A (ja) * 1999-12-21 2001-06-29 Toshiba Corp 分散処理計算機システム
US7165257B2 (en) 2000-02-08 2007-01-16 Mips Technologies, Inc. Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts
US7032119B2 (en) 2000-09-27 2006-04-18 Amphus, Inc. Dynamic power and workload management for multi-server system
US20030070013A1 (en) 2000-10-27 2003-04-10 Daniel Hansson Method and apparatus for reducing power consumption in a digital processor
US7140016B2 (en) 2000-11-29 2006-11-21 Texas Instruments Incorporated Media accelerator quality of service
JP3817449B2 (ja) 2001-07-30 2006-09-06 株式会社ルネサステクノロジ データ処理装置
EP1306632A1 (en) * 2001-10-25 2003-05-02 Shell Internationale Researchmaatschappij B.V. Process for liquefying natural gas and producing liquid hydrocarbons
US6804632B2 (en) 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US6907548B2 (en) 2002-01-02 2005-06-14 Intel Corporation Automatic testing for multi-core architecture
US20040006729A1 (en) 2002-07-03 2004-01-08 Pendurkar Rajesh Y. Hierarchical test methodology for multi-core chips
KR100498487B1 (ko) 2003-02-08 2005-07-01 삼성전자주식회사 고속제어회로 및 저속·저전력 제어회로를 구비하는프로세서
JP4090908B2 (ja) 2003-02-21 2008-05-28 シャープ株式会社 画像処理装置および画像形成装置
DE10313605B4 (de) 2003-03-26 2009-03-19 Qimonda Ag Vorrichtung und Verfahren zum Steuern mehrerer Speicherbausteine
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
WO2005105363A2 (en) * 2003-12-09 2005-11-10 Swagelok Company High production welding fixture
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
EP1555595A3 (en) 2004-01-13 2011-11-23 LG Electronics, Inc. Apparatus for controlling power of processor having a plurality of cores and control method of the same
US7984442B2 (en) 2004-01-29 2011-07-19 Klingman Edwin E Intelligent memory device multilevel ASCII interpreter
US20050204346A1 (en) * 2004-03-09 2005-09-15 Intel Corporation Using sampling data for program phase detection
JP3862715B2 (ja) 2004-06-01 2006-12-27 株式会社ソニー・コンピュータエンタテインメント タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム
JP4197672B2 (ja) 2004-09-30 2008-12-17 株式会社東芝 マルチプロセッサ計算機及びプログラム
US7788670B2 (en) * 2004-10-26 2010-08-31 Intel Corporation Performance-based workload scheduling in multi-core architectures
US20060168571A1 (en) * 2005-01-27 2006-07-27 International Business Machines Corporation System and method for optimized task scheduling in a heterogeneous data processing system
US20060212677A1 (en) 2005-03-15 2006-09-21 Intel Corporation Multicore processor having active and inactive execution cores
TW200638267A (en) 2005-04-22 2006-11-01 Chi Mei Comm Systems Inc Method for adjusting CPU speed of an electronic appliance
JP4838240B2 (ja) 2005-04-27 2011-12-14 パナソニック株式会社 情報処理装置における電力制御装置
TWI300903B (en) 2005-07-01 2008-09-11 Hon Hai Prec Ind Co Ltd Method for estimating cpu power
JP4367856B2 (ja) 2005-07-07 2009-11-18 レノボ シンガポール プライヴェート リミテッド プロセス制御システム及びその制御方法
US7694107B2 (en) * 2005-08-18 2010-04-06 Hewlett-Packard Development Company, L.P. Dynamic performance ratio proportionate distribution of threads with evenly divided workload by homogeneous algorithm to heterogeneous computing units
US7412353B2 (en) 2005-09-28 2008-08-12 Intel Corporation Reliable computing with a many-core processor
TW200805047A (en) 2005-12-23 2008-01-16 Koninkl Philips Electronics Nv Performance analysis based system level power management
JP2009527828A (ja) 2006-02-17 2009-07-30 クゥアルコム・インコーポレイテッド マルチプロセッサのアプリケーションサポートのためのシステムおよび方法
US7596430B2 (en) 2006-05-03 2009-09-29 International Business Machines Corporation Selection of processor cores for optimal thermal performance
US7406407B2 (en) 2006-06-01 2008-07-29 Microsoft Corporation Virtual machine for operating N-core application on M-core processor
US20070294693A1 (en) 2006-06-16 2007-12-20 Microsoft Corporation Scheduling thread execution among a plurality of processors based on evaluation of memory access data
US7493477B2 (en) 2006-06-30 2009-02-17 Intel Corporation Method and apparatus for disabling a processor core based on a number of executions of an application exceeding a threshold
US7463992B2 (en) 2006-09-29 2008-12-09 Intel Corporation Method and system to self-test single and multi-core CPU systems
JP2008090546A (ja) 2006-09-29 2008-04-17 Toshiba Corp マルチプロセッサシステム
US7596714B2 (en) 2006-11-20 2009-09-29 Intel Corporation Methods and apparatus to manage throttling in computing environments
US8819699B2 (en) * 2006-12-29 2014-08-26 Intel Corporation Controlling virtual machines based on performance counters
US7779235B2 (en) * 2007-02-06 2010-08-17 International Business Machines Corporation Using performance data for instruction thread direction
US8615767B2 (en) 2007-02-06 2013-12-24 International Business Machines Corporation Using IR drop data for instruction thread direction
US7714635B2 (en) 2007-02-06 2010-05-11 International Business Machines Corporation Digital adaptive voltage supply
US7560945B2 (en) 2007-02-06 2009-07-14 International Business Machines Corporation Integrated circuit failure prediction
US8022685B2 (en) 2007-02-06 2011-09-20 International Business Machines Corporation Temperature dependent voltage source compensation
US7971035B2 (en) 2007-02-06 2011-06-28 International Business Machines Corporation Using temperature data for instruction thread direction
US7865750B2 (en) 2007-02-06 2011-01-04 International Business Machines Corporation Fan speed control from adaptive voltage supply
US7936153B2 (en) 2007-02-06 2011-05-03 International Business Machines Corporation On-chip adaptive voltage compensation
US7895454B2 (en) 2007-02-06 2011-02-22 International Business Machines Corporation Instruction dependent dynamic voltage compensation
US8161482B1 (en) * 2007-04-13 2012-04-17 Marvell International Ltd. Power optimization for multi-core devices
WO2009002880A1 (en) * 2007-06-22 2008-12-31 Biofuelbox Corporation Vessels and methods for synthesis of biofuel
US7561770B2 (en) * 2007-07-30 2009-07-14 Hewlett-Packard Development Company, L.P. Microresonator systems and methods of fabricating the same
US8001338B2 (en) 2007-08-21 2011-08-16 Microsoft Corporation Multi-level DRAM controller to manage access to DRAM
US8055822B2 (en) * 2007-08-21 2011-11-08 International Business Machines Corporation Multicore processor having storage for core-specific operational data
US8005880B2 (en) 2007-08-24 2011-08-23 International Business Machines Corporation Half width counting leading zero circuit
US7797131B2 (en) * 2007-08-24 2010-09-14 International Business Machines Corporation On-chip frequency response measurement
US8185572B2 (en) 2007-08-24 2012-05-22 International Business Machines Corporation Data correction circuit
US20090210740A1 (en) * 2008-02-14 2009-08-20 Song Huang Off-chip access workload characterization methodology for optimizing computing efficiency
US8332865B2 (en) 2008-02-21 2012-12-11 International Business Machines Corporation Adjunct processor load balancing
US20090288092A1 (en) * 2008-05-15 2009-11-19 Hiroaki Yamaoka Systems and Methods for Improving the Reliability of a Multi-Core Processor
US8276145B2 (en) * 2008-06-27 2012-09-25 Microsoft Corporation Protected mode scheduling of operations
JP2010039923A (ja) * 2008-08-07 2010-02-18 Hitachi Ltd 情報処理装置
US8661129B2 (en) * 2008-11-05 2014-02-25 Xerox Corporation System and method for decentralized job scheduling and distributed execution in a network of multifunction devices
US8161304B2 (en) 2009-01-20 2012-04-17 Microsoft Corporation Power management for large memory subsystems
US8572581B2 (en) * 2009-03-26 2013-10-29 Microsoft Corporation Measurement and reporting of performance event rates
US8055805B2 (en) 2009-03-31 2011-11-08 Intel Corporation Opportunistic improvement of MMIO request handling based on target reporting of space requirements
JP5091912B2 (ja) * 2009-05-21 2012-12-05 株式会社東芝 マルチコアプロセッサシステム
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254812B1 (en) * 2002-05-31 2007-08-07 Advanced Micro Devices, Inc. Multi-processor task scheduling
CN1955931A (zh) * 2005-09-30 2007-05-02 科威尔公司 在多核架构中进行调度

Also Published As

Publication number Publication date
GB2497449B (en) 2019-02-20
GB201303285D0 (en) 2013-04-10
TWI450104B (zh) 2014-08-21
CN103119580A (zh) 2013-05-22
WO2012040684A2 (en) 2012-03-29
TWI550413B (zh) 2016-09-21
TW201229781A (en) 2012-07-16
WO2012040684A3 (en) 2012-06-07
KR20140114074A (ko) 2014-09-25
JP2013537346A (ja) 2013-09-30
US20160132354A1 (en) 2016-05-12
KR101561496B1 (ko) 2015-10-20
DE112011103216T5 (de) 2013-07-04
TW201437828A (zh) 2014-10-01
TWI603207B (zh) 2017-10-21
TW201714103A (en) 2017-04-16
GB2497449A (en) 2013-06-12
JP5774707B2 (ja) 2015-09-09
BR112013006483A2 (pt) 2016-07-26
KR20130062999A (ko) 2013-06-13
US20120079235A1 (en) 2012-03-29
US9268611B2 (en) 2016-02-23

Similar Documents

Publication Publication Date Title
CN103119580B (zh) 异构多处理器计算平台中的应用调度
Li et al. Energy-efficient stochastic task scheduling on heterogeneous computing systems
CN102822801B (zh) 响应于服务水平协议而分配计算系统功率水平
JP5460565B2 (ja) 非効率なコアホッピングを回避し、ハードウェア(補助)による低電力状態選択を提供するメカニズム
CN101313284B (zh) 用于提供对处理器状态转换进行检测的方法和装置
CN102812439B (zh) 用于在多处理器计算机系统中分派任务的方法和系统
JP2012504800A (ja) 異種コンピューティング・システムにおいて実行するためのアプリケーションのスケジューリング
US20110131430A1 (en) Managing accelerators of a computing environment
JP2008084009A (ja) マルチプロセッサシステム
Stavrinides et al. Energy-aware scheduling of real-time workflow applications in clouds utilizing DVFS and approximate computations
Kim et al. A method to construct task scheduling algorithms for heterogeneous multi-core systems
Hao et al. An adaptive algorithm for scheduling parallel jobs in meteorological Cloud
Liu et al. Intelligent energy-efficient scheduling with ant colony techniques for heterogeneous edge computing
Singh et al. Value and energy optimizing dynamic resource allocation in many-core HPC systems
CN105117281B (zh) 一种基于任务申请信号和处理器内核执行代价值的任务调度方法
Wang et al. Cooperative job scheduling and data allocation in data-intensive parallel computing clusters
Elhossini et al. An efficient scheduling methodology for heterogeneous multi-core processor systems
Mehalaine et al. Energy consumption reduction in real time multiprocessor embedded systems with uncertain data
Antolak et al. Validation of task scheduling techniques in multithread time predictable systems
Hingamire et al. Energy Consumption Estimation Framework at Source Level for Data Centers
Jain et al. Energy efficient algorithms in cloud computing: a green computing approach
Micheal et al. Survey of Hard Real Time Task Scheduling Algorithm on Multicore Processor
JP2005266845A (ja) 計算機使用料金算出装置及び計算機演算処理分割方法
Thormann Modeling of dynamic resource allocation in a network on chip
Zhao et al. On Revenue Driven Server Management in Cloud.

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160817

Termination date: 20190924

CF01 Termination of patent right due to non-payment of annual fee