CN103119580B - 异构多处理器计算平台中的应用调度 - Google Patents
异构多处理器计算平台中的应用调度 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000004886 process control Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims 6
- 238000001514 detection method Methods 0.000 claims 4
- 230000005540 biological transmission Effects 0.000 claims 3
- 230000008034 disappearance Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 206010037660 Pyrexia Diseases 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3404—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3433—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- 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/461—Saving or restoring of program or task context
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (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所述的设备,其中,所述设备包括:
用于预测所述应用在所述多个处理器核心中的至少一些上的执行性能或功率消耗性能的部件。
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) | KR101561496B1 (zh) |
CN (1) | CN103119580B (zh) |
BR (1) | BR112013006483A2 (zh) |
DE (1) | DE112011103216T5 (zh) |
GB (1) | GB2497449B (zh) |
TW (3) | TWI603207B (zh) |
WO (1) | WO2012040684A2 (zh) |
Families Citing this family (49)
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 |
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 |
EP2856315A4 (en) | 2012-05-30 | 2016-02-17 | Intel Corp | TERMINATION REQUEST BETWEEN A HETEROGEN 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 |
WO2014105058A1 (en) * | 2012-12-28 | 2014-07-03 | Intel Corporation | Optimal logical processor count and type selection for a given workload 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 |
EP3053026A4 (en) * | 2013-10-04 | 2017-04-12 | 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 | 乐视致新电子科技(天津)有限公司 | 多核体系中处理器调度策略的生成方法及装置、调度系统 |
WO2015165045A1 (zh) * | 2014-04-29 | 2015-11-05 | 华为技术有限公司 | 一种功率控制方法及装置 |
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 | 苏州中晟宏芯信息科技有限公司 | 基于退出退让机制的共享高速缓存硬件资源访问方法 |
US11003565B2 (en) | 2015-04-21 | 2021-05-11 | 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 |
FI3812900T3 (fi) * | 2016-12-31 | 2024-02-09 | Intel Corp | Järjestelmät, menetelmät ja laitteet heterogeenistä laskentaa varten |
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 |
JP7047114B2 (ja) | 2018-02-08 | 2022-04-04 | アリババ・グループ・ホールディング・リミテッド | 電力および性能の予測および制御のためのハイブリッドシステムオンチップ |
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 | 瑞昱半導體股份有限公司 | 通用分析裝置與方法 |
US20210182194A1 (en) * | 2020-12-26 | 2021-06-17 | Intel Corporation | Processor unit resource exhaustion detection and remediation |
CN113609126B (zh) * | 2021-07-06 | 2022-03-11 | 无锡四维时空信息科技有限公司 | 一种众源时空数据的一体化存储管理方法及系统 |
CN118170503A (zh) * | 2022-12-02 | 2024-06-11 | 华为技术有限公司 | 一种异构处理器及相关调度方法 |
Citations (2)
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)
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 |
WO2006117950A1 (ja) | 2005-04-27 | 2006-11-09 | Matsushita Electric Industrial Co., Ltd. | 情報処理装置における電力制御装置 |
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 |
EP1989623A2 (en) | 2006-02-17 | 2008-11-12 | QUALCOMM Incorporated | System and method for multi-processor application support |
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 |
US7895454B2 (en) | 2007-02-06 | 2011-02-22 | International Business Machines Corporation | Instruction dependent dynamic voltage compensation |
US7714635B2 (en) | 2007-02-06 | 2010-05-11 | International Business Machines Corporation | Digital adaptive voltage supply |
US7936153B2 (en) | 2007-02-06 | 2011-05-03 | International Business Machines Corporation | On-chip adaptive voltage compensation |
US8615767B2 (en) | 2007-02-06 | 2013-12-24 | International Business Machines Corporation | Using IR drop data for instruction thread direction |
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 |
US7560945B2 (en) | 2007-02-06 | 2009-07-14 | International Business Machines Corporation | Integrated circuit failure prediction |
US8161482B1 (en) * | 2007-04-13 | 2012-04-17 | Marvell International Ltd. | Power optimization for multi-core devices |
US20090005582A1 (en) * | 2007-06-22 | 2009-01-01 | Greg Anderson | 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 |
-
2010
- 2010-09-25 US US12/890,653 patent/US9268611B2/en active Active
-
2011
- 2011-09-24 KR KR1020137007312A patent/KR101561496B1/ko active IP Right Grant
- 2011-09-24 WO PCT/US2011/053177 patent/WO2012040684A2/en active Application Filing
- 2011-09-24 BR BR112013006483A patent/BR112013006483A2/pt not_active Application Discontinuation
- 2011-09-24 JP JP2013529449A patent/JP5774707B2/ja not_active Expired - Fee Related
- 2011-09-24 GB GB1303285.9A patent/GB2497449B/en not_active Expired - Fee Related
- 2011-09-24 KR KR1020147024707A patent/KR20140114074A/ko not_active Application Discontinuation
- 2011-09-24 DE DE112011103216T patent/DE112011103216T5/de not_active Withdrawn
- 2011-09-24 CN CN201180046075.8A patent/CN103119580B/zh not_active Expired - Fee Related
- 2011-09-26 TW TW105119960A patent/TWI603207B/zh not_active IP Right Cessation
- 2011-09-26 TW TW103120160A patent/TWI550413B/zh not_active IP Right Cessation
- 2011-09-26 TW TW100134629A patent/TWI450104B/zh not_active IP Right Cessation
-
2016
- 2016-01-13 US US14/995,198 patent/US20160132354A1/en not_active Abandoned
Patent Citations (2)
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 |
---|---|
GB201303285D0 (en) | 2013-04-10 |
TW201229781A (en) | 2012-07-16 |
WO2012040684A2 (en) | 2012-03-29 |
US20160132354A1 (en) | 2016-05-12 |
DE112011103216T5 (de) | 2013-07-04 |
TWI450104B (zh) | 2014-08-21 |
JP2013537346A (ja) | 2013-09-30 |
GB2497449A (en) | 2013-06-12 |
KR20140114074A (ko) | 2014-09-25 |
TW201714103A (en) | 2017-04-16 |
TWI550413B (zh) | 2016-09-21 |
WO2012040684A3 (en) | 2012-06-07 |
TWI603207B (zh) | 2017-10-21 |
BR112013006483A2 (pt) | 2016-07-26 |
US9268611B2 (en) | 2016-02-23 |
KR20130062999A (ko) | 2013-06-13 |
CN103119580A (zh) | 2013-05-22 |
GB2497449B (en) | 2019-02-20 |
KR101561496B1 (ko) | 2015-10-20 |
TW201437828A (zh) | 2014-10-01 |
JP5774707B2 (ja) | 2015-09-09 |
US20120079235A1 (en) | 2012-03-29 |
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) | 異種コンピューティング・システムにおいて実行するためのアプリケーションのスケジューリング | |
JP2008084009A (ja) | マルチプロセッサシステム | |
JP2008090546A (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) | 一种基于任务申请信号和处理器内核执行代价值的任务调度方法 | |
Prabhaker et al. | Real-time task schedulers for a high-performance multi-core system | |
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 | |
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) | 計算機使用料金算出装置及び計算機演算処理分割方法 | |
Zhao et al. | On Revenue Driven Server Management in Cloud. | |
Wang et al. | The dynamic priority based scheduling algorithm for hard real-time heterogeneous CMP application |
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 |