CN105210038A - 核亲和性位掩码变换 - Google Patents
核亲和性位掩码变换 Download PDFInfo
- Publication number
- CN105210038A CN105210038A CN201380076580.6A CN201380076580A CN105210038A CN 105210038 A CN105210038 A CN 105210038A CN 201380076580 A CN201380076580 A CN 201380076580A CN 105210038 A CN105210038 A CN 105210038A
- Authority
- CN
- China
- Prior art keywords
- core
- compatibility
- bitmask
- polycaryon processor
- scheduler
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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/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
- G06F9/5044—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 considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
- Executing Machine-Instructions (AREA)
Abstract
一般描述了用于与核亲和性位掩码变换有关的系统、方法和设备的技术。示例的系统可以包括第一核、第二核、第三核和第四核以及调度器。该调度器可以配置为接收第一请求,其中第一请求包括核亲和性位掩码和指令。核亲和性位掩码能够标识至少第一核和第二核。该调度器可配置为确定第一核与第二核之间的第一亲和性。调度器随后可以将第三核和第四核标识为具有实现基本相似性能的基本相似亲和性。调度器还可以配置为生成包括变换后核亲和性位掩码的第二请求。该变换后核亲和性位掩码可用于将第三核和第四核标识为执行指令的恰当核。
Description
背景技术
除非在此处进行说明,否则此处所描述的材料不是本申请权利要求的现有技术并且不因包含在该部分中而承认是现有技术。
在多核体系结构中,在单个集成电路晶粒中可以包括多个处理器核,或者在布置于单芯片封装中的多个集成电路晶粒上可以包含多个处理器核。可以通过芯片中的一个或多个核来接收并执行指令。芯片中的两个或更多个处理器核可以共享存储器。
概述
在一些示例中,一般描述了生成用于多核处理器的变换后核亲和性(affinity)位掩码的方法。该方法可以包括:由调度器,接收第一请求。该第一请求可以包括标识所述多核处理器的至少第一核和第二核的核亲和性位掩码。该方法可以包括确定第一核与第二核之间的第一亲和性。该方法可以包括:至少部分地基于第一亲和性,标识多核处理器的第三核和第四核。该方法可以包括生成包括变换后核亲和性位掩码的第二请求。变换后核亲和性位掩码可以标识第三核和第四核。
在一些示例中,一般描述了用于生成多核处理器的变换后核亲和性位掩码的设备。该设备可以包括存储器以及配置为与存储器通信的设备处理器。该设备处理器可用于接收第一请求。该第一请求可以包括核亲和性位掩码。该核亲和性位掩码可以标识多核处理器的至少第一核和第二核。设备处理器可以用于确定第一核与第二核之间的第一亲和性。该设备处理器可用于,至少部分地基于第一亲和性,标识多核处理器的第三核和第四核。该设备处理器可用于生成包括变换后核亲和性位掩码的第二请求。变换后核亲和性位掩码可以标识第三核和第四核。
在一些示例中,一般描述了多核处理器。多核处理器可以包括第一核、第二核、第三核、第四核、存储器和调度器。存储器可配置为与第一核、第二核、第三核和第四核通信。调度器可配置为与第一核、第二核、第三核、第四核和存储器通信。该调度器可用于接收第一请求。该第一请求可以包括核亲和性位掩码。核亲和性位掩码可以标识多核处理器的至少第一核和第二核。该调度器可用于确定第一核至少部分地不能工作。该调度器可用于确定第一核与第二核之间的第一亲和性。该调度器可用于,至少部分地基于第一亲和性,标识多核处理器的第三核和第四核。该调度器可用于生成包括变换后核亲和性位掩码的第二请求。变换后核亲和性位掩码可以标识第三核和第四核。
在一些示例中,一般描述了用于生成用于多核处理器的变换后核亲和性位掩码的方法。该方法可以包括:通过调度器,接收在第一核上执行第一任务且在第二核上执行第二任务的第一请求。该第一请求可以包括标识多核处理器的至少第一核和第二核的核亲和性位掩码。该方法可以包括确定第一核的第一属性。该方法可以包括确定第一核至少部分地不能工作。该方法可以包括,基于第一核至少部分地不能工作的判定,标识多核处理器的第三核,其中第三核具有第一属性。该方法可以包括生成包括变换后核亲和性位掩码的第二请求。变换后核亲和性位掩码可以标识第二核和第三核,使得在第三核上执行第一任务且在第二核上执行第二任务。
前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细说明,除了上文所描述的示例性的方面、实施例和特征之外,另外的方面、实施例和特征将变得清晰可见。
附图说明
通过下面结合附图给出的详细说明和随附的权利要求,本公开的前述特征以及其它特征将变得更加清晰。应理解的是,这些附图仅描绘了依照本公开的多个实施例,因此,不应视为对本发明范围的限制,将通过利用附图结合附加的具体描述和细节对本公开进行说明,在附图中:
图1示出了能够用来实现核亲和性位掩码变换的示例的系统;
图2示出了能够用来实现图1的核亲和性位掩码变换的示例的系统,额外的细节与核亲和性分类表有关;
图3示出了能够用来实现图1的核亲和性位掩码变换的示例的系统,额外的细节与核亲和性分类表有关;
图4示出了能够用来实现图1的核亲和性位掩码变换的示例的系统,额外的细节与核属性表有关;
图5示出了能够用来实现图1的核亲和性位掩码变换的示例的系统,额外的细节与核属性表有关;
图6A示出了用于实现核亲和性位掩码变换的示例的过程的流程图;
图6B示出了用于实现核亲和性位掩码变换的示例的过程的流程图;
图7示出了能够用来实现核亲和性位掩码变换的计算机程序产品;以及
图8是示出布置成实现核亲和性位掩码变换的示例的计算设备的框图;
所有这些图都是依照本文中描述的至少一些实施例来布置的。
具体实施方式
在下面的详细说明中,将参考附图,附图构成了详细说明的一部分。在附图中,除非上下文指出,否则相似的符号通常表示相似的部件。在详细说明、附图和权利要求中所描述的示例性实施例不意在限制。可以使用其它实施例,并且可以做出其它改变,而不偏离本文呈现的主题的精神或范围。将易于理解的是,如本文大致描述且如图中所图示的,本公开的方案能够以各种不同配置来布置、替代、组合、分离和设计,所有这些都在本文中明确地构思出。
本公开大体尤其涉及与核亲和性位掩码变换有关的方法、装置、系统、设备和计算机程序产品。
简言之,一般描述了用于与核亲和性位掩码变换有关的系统、方法和设备的技术。示例的系统可以包括第一核、第二核、第三核和第四核以及调度器。调度器可配置为接收第一请求,其中该第一请求包括核亲和性位掩码和指令。核亲和性位掩码能够标识至少第一核和第二核。调度器可配置为确定第一核与第二核之间的第一亲和性。然后,调度器可以将第三核和第四核标识为具有实现基本相似性能的相似亲和性。调度器还可以配置为生成第二请求,该第二请求包括变换后核亲和性位掩码。变换后核亲和性位掩码可用于将第三核和第四核标识为执行指令的恰当核。
图1示出了根据本文所描述的至少一些实施例的用来实现核亲和性位掩码变换的示例的系统100。示例的系统100可以包括多核处理器102的两个或更多个处理器核104、106、108、110、112、114、116和/或118。核104、106、108、110、112、114、116和/或118可能够以相同或不同的工作频率工作。核104、106、108、110、112、114、116和/或118可能够执行来自相同指令集或者来自不同指令集的指令。一些核可以配置为与存储器120或存储器122通信。在一些示例中,存储器120、122可以是高速缓冲存储器或随机存取存储器,如DDR(双数据率)存储器。核104、106、108、110、112、114、116和/或118中的至少一个可以变得至少部分地不能工作,如图1中的核108中的“X”所示。例如,核108可能已经停止工作或者在请求规范内停止工作,诸如以比所规定的低的频率或者以降低的通信速度工作。例如,核108可能由于过热(可能由于过热点而发生)、硬件出错、制作出错、不能在目标电压下工作、锁定或其他原因而变得不能工作。如下文更详细说明的,调度器128可以配置为接收来自初始请求源151的初始请求134。调度器128可以包括设备并且可以包括设备处理器,并且可以包括含有指令的存储器和/或与含有指令的存储器通信。初始请求134可以包括一个或多个指令130和核亲和性位掩码132。指令130可以是将由多核处理器102处理的指令。核亲和性位掩码132可以标识多核处理器102上执行指令130的某些核。在一个示例中,生成指令130的软件程序还可以生成核亲和性位掩码132,其中软件程序请求在由核亲和性位掩码132所标识的某些核上执行指令130。示例的软件程序可以包括多核感知高性能软件,诸如数据库软件、计算分析软件、流软件以及其他软件。核亲和性位掩码132可以标识一个或多个核。标识的核可以具有可如下文更详细描述被确定的特定亲和性。示例的亲和性可以为例如具有共享操作特性的核或者在存储器的一定接近度内的核。示例的核亲和性位掩码132可以例如实现为一组位。一组位可以是一组二进制位、一组压缩位、一组编码位或一些其他多种位,取决于期望的实现。在一个示例中,位中的第一位值可以表明,指令130请求特定的核,位中的第二位值可表明,指令130未请求该特定的核。
调度器128可以实现为多核处理器102的部分或者与多核处理器102分离。调度器128可以利用硬件、软件或硬件和软件的组合来实现。调度器128可以配置为接收初始请求134且生成变换后请求136。变换后请求136可以包括指令130并且可进一步包括变换后核亲和性位掩码126。指令130可以在变换后核亲和性位掩码126中标识的核上执行。
变换后核亲和性位掩码126可以标识多核处理器102上的一组核。变换后核亲和性位掩码126中的该组核可以与核亲和性位掩码132中的一组核相同或不同。可以由调度器128来生成消息150。消息150可以标识变换后核亲和性位掩码126中的核。当变换后核亲和性位掩码126包括不同于在核亲和性位掩码132中标识的一组核的一组核时,消息150可被发送到初始请求源151。当变换后核亲和性位掩码126中的核不足以提供用于指令130的请求性能水平时,消息150可用来标识示例中的额外核。
图2和图3示出了依照本文所描述的至少一些实施例布置的能够用来实现图1的核亲和性位掩码变换的示例的系统,额外的细节与核亲和性分类表有关。为清楚的目的,不再对图2和图3中的标记与图1的组件相同的那些组件进行说明。图2示出了在多核处理器102内或者作为多核处理器102的部分的调度器128。图3示出了在多核处理器102之外的调度器128。除了调度器128的布置之外,图2和图3相同,除了表明调度器128位置之处之外,下面的论述将指的是任一图。
在一些示例中,调度器128可以以硬件实现在多核处理器102中。在其他示例中,调度器128可以实现在多核处理器102上的另一处理器核237上,如图2的示例中所示。在其他示例中,调度器128可以软件实现,诸如通过操作系统(“OS”)338来实现,如图3中的示例所示。调度器128可以实现为多核处理器102之外的硬件(“HW”)142,诸如在超管理器中,如图3中的示例所示。参考图2,冗余核248可以布置在多核处理器102上。当诸如核108的核变得至少部分不能工作时,可以在示例中使用冗余核248,如下文更详细说明的。
核亲和性分类表244可以存储在配置为与调度器128通信的存储器或硬件中。核亲和性分类表244可以位于多核处理器102内或者多核处理器102之外。核亲和性分类表244可以存储在存储器中,存储为诸如逻辑硬件的部分的硬件、存储在超管理器中,或者存储在操作系统338(图3)中。核亲和性分类表244可以为例如有限状态机。
核亲和性分类表244可以标识核的组以及在相应组中的核之间或之中的一个或多个亲和性。例如,表244可以表明核的特定组具有这样的亲和性:其中这些核共享共同的DDR3存储器接口。在另一示例中,表244可以表明核的特定组具有这样的亲和性:其中这些核共享高速缓冲器和网络端口。在核亲和性位掩码132标识该特定组的示例中,核亲和性分类表244可以表明,该特定组中的核之间或之中的对应亲和性是具有共同DDR3存储器接口的亲和性。在另一示例中,如果在核亲和性位掩码132中请求两个物理上相邻的核,则标识出的核之间的亲和性可以是这些核共享与共同共享高速缓冲器的亲和性。在另一示例中,如果核亲和性位掩码132标识出与共享网络端口相关联的一组核,则这些核共享与共同共享网络端口的亲和性。在各个示例中,亲和性可以表明共享存储器总线或共同级的高速缓冲器、共享加速器等。在一些额外的示例中,可以标识出一组核当中的多个亲和性。
多核处理器102的核可以由物理核标识号标识出。此外,多核处理器102的核还可以由逻辑核标识号标识出。在一些示例中,多核处理器102可以将逻辑标识号提供给在系统100上执行的超管理器或操作系统。逻辑核标识号与物理核(如物理核标识号标识出)之间的对应关系可以存储在位掩码映射246中。位掩码映射246可以存储在调度器128中或者在多核处理器102上的其他地方,诸如在芯片测试期间在工厂中设定,在加电测试期间设定,或者在激活功能期间的其他时候设定。逻辑核标识号可以对应于物理核的逻辑表示。每个物理核标识号可以对应于多核处理器102的核。当物理核变得至少部分不能工作时,位掩码映射246可以将对应的逻辑核标识号映射到与多核处理器102的另一物理核对应的不同的物理核标识号。例如,如果核108不能工作,则逻辑标识号108可以映射到与多核处理器102的核110对应的物理核标识号110。如下文更详细说明的,位掩码映射246可以用来表明核何时变得至少部分不能工作。位掩码映射246可以位于多核处理器102中或多核处理器102之外。例如,在多核处理器102之外的硬件可以存储用于一组处理器的位掩码映射246。
在示例中,调度器128可以接收初始请求134。初始请求134可以包括核亲和性位掩码132。核亲和性位掩码132可以表明,多核处理器102应当在特定的一组核上执行指令130。核亲和性位掩码132可以包括用于该特定组核的逻辑标识号。调度器128可以通过分析位掩码映射246以及标识与核亲和性位掩码132中的逻辑核标识号对应的物理核来处理初始请求134。
在示例中,核亲和性位掩码132可以包括对应于核110的逻辑标识号。调度器128可以分析位掩码映射246以确定逻辑核标识号110映射到物理核标识号110。在另一示例中,位掩码映射246可以表明,逻辑核标识号110映射到不同的物理核标识号。
当多核处理器102中的所有核能够工作时,缺省位掩码映射246可以包括将与逻辑核相关联的标识号和与物理核相关联的同一标识号相关的映射(例如,逻辑核108可以映射到物理核108)。在核108至少部分地不能工作的示例中,位掩码映射246可以提供不同于缺省位掩码映射的不包括不能工作的核的映射。例如,逻辑核108可以映射到物理核110,如图2和图3中的示例所示。
在图2和图3所示的示例的位掩码映射中,核108被指示为至少部分不能工作,如“X”所示。位掩码映射246可以包括将逻辑核的标识关联(映射)到物理核的标识的映射从而防止使用部分不能工作的核。在一个示例中,位掩码映射246可以提供与多核处理器102中的核亲和性无关的逻辑核到物理核的映射。例如,位掩码映射246可以将冗余核248的标识映射到另一逻辑核的标识且将部分不能工作的核108的标识映射到未使用逻辑核的标识。
在示例中,调度器128可以接收包括核亲和性位掩码132的初始请求134。调度器128可以分析位掩码映射246来确定位掩码映射236是否不同于缺省位掩码映射。如果位掩码映射不同于缺省位掩码映射,则该差别可以表明多核处理器102中的一个核部分地不能工作。
在位掩码映射不同于缺省位掩码映射的示例中,调度器128可以确定核至少部分地不能工作。调度器128可以分析位掩码映射246来标识至少部分不能工作的核。调度器128可以确定是否在核亲和性位掩码132中请求该部分不能工作的核。在示例中,如果在核亲和性位掩码132中未请求该至少部分不能工作的核,则变换后核亲和性位掩码126可以将相同的物理核标识为核亲和性位掩码132,因为周围没有要映射的有缺陷核。在该示例中,在核亲和性位掩码映射132中没有请求至少部分不能工作的核的情况下,即使多核处理器102中的一个核至少部分地不能工作,但是仍可在变换后核亲和性位掩码126中标识出在核亲和性位掩码132中标识的核。
在示例中,如果物理核108不能工作,则位掩码映射246可以转变逻辑核标识号到物理核标识号的映射。在图2和图3所示的示例中,作为转变的结果,逻辑核标识号108映射到物理核标识号110,并且逻辑核标识号110映射到物理核标识号112。在核亲和性位掩码132中没有请求物理核108的示例中,逻辑核标识号到不同物理核标识号的映射(例如,逻辑核108映射到物理核110)会导致通过不具有所请求的亲和性的物理核来处理指令。响应于确定出在核亲和性位掩码132中没有请求物理核108,调度器128可以修改核亲和性位掩码132或修改位掩码映射246的分析结果,使得变换后核亲和性位掩码126标识与核亲和性位掩码132相同的物理核。
在核亲和性位掩码132中标识出至少部分不能工作的核的示例中,调度器128可以分析核亲和性分类表244。调度器128可以基于核亲和性位掩码132来分析核亲和性分类表244以确定在核亲和性位掩码132中标识出的核的第一亲和性。在确定了第一亲和性的示例中,调度器128可以分析核亲和性变换表244以标识出与第一亲和性具有基本相同亲和性的另一组可用核。在一些示例中,如果标识出核亲和性位掩码132中的核的多于一个的亲和性,则调度器128可以分析核亲和性变换表244来标识出尽可能多的具有相同亲和性的另一组可用核。在一些示例中,如果标识出核亲和性位掩码132中的核的多于一个的亲和性,则调度器128可以分析核亲和性变换表244来标识出按亲和性优先级次序具有相同亲和性的另一组可用核。在一个示例中,如果标识出的亲和性是高速缓存亲和性和存储器亲和性,则调度器128可以标识出具有高速缓存亲和性和存储器亲和性的另一组可用核。如果没有这样一组核,则调度器128可以选择具有高速缓存亲和性的一组可用核。在核亲和性位掩码132中的核的亲和性未被确定或者没有具有确定亲和性的一组核可用的示例中,调度器128可以使用位掩码映射246来生成变换后核亲和性位掩码126,使得变换后的核亲和性位掩码126不标识出不能工作的核。
在示例中,核亲和性位掩码132可以标识出核104和106。调度器128可以分析位掩码映射246且确定物理核104和106都是可运作的。调度器128随后可以生成可标识出核104和106的变换后核亲和性位掩码126。
在示例中,核亲和性位掩码132可以标识出核108和110。调度器128可以分析位掩码映射246且确定物理核108至少部分地不能工作。调度器128可以分析核亲和性分类表244来确定核108和110的亲和性。在示例中,核亲和性分类表244可以表明一组核108和110具有核共享相同高速缓冲器的亲和性。调度器128可以分析核亲和性分类表244来标识出具有共享相同高速缓冲器的相同亲和性的另一组核。在示例中,调度器128可以将一组核104和106标识为具有相同的亲和性。调度器128随后可以生成可以标识物理核104和106的变换后核亲和性位掩码126。调度器128可以生成多个不同的变换后核亲和性位掩码且基于核的可用性来选择所生成的变换后核亲和性位掩码中的一个。
图4和图5图示出依照本文所描述的至少一些实施例布置的能够用来实现图1的核亲和性位掩码变换的示例的系统,额外的细节与核亲和性属性表有关。为清楚的目的,不再对图4和图5中的标记与图1、图2或图3中的组件相同的那些组件进行说明。图4示出了在多核处理器102内或者作为多核处理器102的部分的调度器128。图5示出了在多核处理器102之外的调度器128。除了调度器128的布置之外,图4和图5相同,除了表明调度器128位置之处之外,下面的论述将指的是任一图。
核属性表450可以存储在配置为与调度器128通信的存储器或者硬件中。核属性表450可以位于多核处理器102内或者多核处理器102之外。核属性表450可以存储在存储器中,作为逻辑硬件的部分的硬件、存储在超管理器中,或者存储在操作系统338(图5)中。核属性表450可以是例如有限状态机。
核属性表250可以标识出核以及相应的核的一个或多个属性。例如,核属性表450可以表明,特定的核具有这样的属性:其中核具有特定量的RAM或者特定的处理器速度。在另一示例中,核属性表450可以标识出具有等同属性的核。例如,表450可以表明,核104和106是等同的,因为核104和106具有相同或基本相同的属性。在核亲和性位掩码132标识出特定核的示例中,核属性表450可以表明核的对应属性。在各个示例中,属性可以表明对存储器总线的访问、高速缓冲器的大小、RAM、其他存储器、处理器速度、对加速器的访问等。
在示例中,调度器128可以接收初始请求134。例如,初始请求134可以表明,第一任务应当在第一核上执行,第二任务应当在第二核上执行。初始请求134可以包括核亲和性位掩码132。核亲和性位掩码132可以表明,多核处理器102应当在特定的一组核上执行指令130。核亲和性位掩码132可以包括用于特定的一组核的逻辑标识号。调度器128可以通过分析位掩码映射246以及标识出与核亲和性位掩码132中的逻辑核标识号对应的物理核来处理初始请求134。
在示例中,调度器128可以接收包括核亲和性位掩码132的初始请求134。调度器128可以分析位掩码映射246来确定位掩码映射246是否不同于缺省位掩码映射。如果位掩码映射不同于缺省位掩码映射,则该差别可以表明多核处理器102中的一个核部分地不能工作。
在位掩码映射不同于缺省位掩码映射的示例中,调度器128可以确定核至少部分地不能工作。调度器128可以分析位掩码映射246来标识出至少部分不能工作的核。调度器128可以确定在核亲和性位掩码132中是否请求了部分不能工作的核。在示例中,如果在核亲和性位掩码132中未请求至少部分不能工作的核,则变换后核亲和性位掩码126可以标识出与核亲和性位掩码132相同的物理核,因为周围没有要映射的有缺陷核。在该示例中,在核亲和性位掩码映射132中没有请求至少部分不能工作的核的情况下,即使多核处理器102中的一个核至少部分地不能工作,但是仍可在变换后核亲和性位掩码126中标识出在核亲和性位掩码132中标识的核。
在示例中,如果物理核108不能工作,则位掩码映射246可以转变逻辑核标识号到物理核标识号的映射。在图4和图5所示的示例中,作为转变的结果,逻辑核标识号108映射到物理核标识号110,并且逻辑核标识号110映射到物理核标识号112。在核亲和性位掩码132中没有请求物理核108的示例中,逻辑核标识号到不同物理核标识号的映射(例如,逻辑核108映射到物理核110)会导致通过不具有所请求的亲和性的物理核来处理指令。响应于确定出在核亲和性位掩码132中没有请求物理核108,调度器128可以修改核亲和性位掩码132或修改位掩码映射246的分析结果,使得变换后核亲和性位掩码126标识与核亲和性位掩码132相同的物理核。
在核亲和性位掩码132中标识出至少部分不能工作的核的示例中,调度器128可以分析核属性表250。调度器128可以基于核亲和性位掩码132来分析核亲和性分类表250来确定在核亲和性位掩码132中标识出的核的相应的属性。在确定了属性的示例中,调度器128可以分析核属性表250来标识出具有基本相同属性的其他核。在一个示例中,如果标识出的属性与高速缓冲器尺寸有关,则调度器128可以标识出与核亲和性位掩码132中的请求的核具有基本相同高速缓冲器尺寸的另一核。如果没有可用的此类核,则调度器128可以选择具有最接近所请求核的属性的核。
在示例中,请求134可以标识出用于分别执行第一任务和第二任务的核108和110。调度器128可以分析位掩码映射246且确定物理核108至少部分地不能工作。调度器128可以分析核属性表250来确定核108的属性。在示例中,核属性表250可以表明,核108具有与RAM尺寸有关的属性。调度器128可以分析核属性表250来标识出具有相同或基本相同属性的另一核,该属性即为RAM尺寸。在示例中,调度器128可以将核108和106标识为具有相同的或基本相同的属性。调度器128随后可以生成变换后核亲和性位掩码126,使得第二任务被分配给核110,第一任务被分配给核106。
在其他可能的有益之处当中,依照本公开布置的系统可以允许,即使一个或多个核至少部分地不能工作,也能通过具有规定亲和性或者规定亲和性的近似值的核来执行指令。可以确定标识出的核的亲和性,可以将指令发送到具有相同亲和性的一组核。可以实现多核感知软件的更加可预测的性能,部分是因为,甚至在核部分不能工作或者不可用的示例中,也可以通过请求的亲和性来执行请求具有特定亲和性核的位掩码的指令。不能工作的核可能是由于永久故障或者暂时故障(例如,过热点)而不能工作。不可用的核可能正在忙着处理其他任务。
图6A示出了依照本文所描述的至少一些实施例布置的用于实现核亲和性位掩码变换的示例的过程的流程图。在一些示例中,图6A中的过程可以利用上述系统100来实现从而实施用于由调度器生成用于多核处理器的变换后核亲和性位掩码的方法。
示例的过程可以包括如框S2、S4、S6、和/或S8中的一个或多个所图示的一个或多个操作、动作或功能。虽然图示为分离的框,根据期望的实现方式,各个框可以划分成额外的框、组合成较少的框,或者去除。
处理可以开始于框S2,“接收第一请求,其中第一请求可以包括标识出多核处理器的至少第一核和第二核的核亲和性位掩码”。在一些示例中,在框S2中,调度器可以接收包括核亲和性位掩码的请求。核亲和性位掩码可以标识出多核处理器的第一核和第二核。
处理可以从框S2继续到框S4,“确定第一核与第二核之间的第一亲和性”。在框S4中,调度器可以确定第一核与第二核之间的亲和性。调度器可以通过确定出第一核和第二核是核亲和性变换表中的一组核的部分来确定第一亲和性,其中该表包括具有对应亲和性的核组。
处理可以从框S4继续到框S6,“至少部分地基于第一亲和性,标识出多核处理器的第三核和第四核”。在框S6中,调度器基于第一亲和性,可以标识出多核处理器的第三核和第四核。标识第三核和第四核可以包括确定第三核和第四核之间与第一亲和性基本相同的第二亲和性。在一些示例中,标识第三核和第四核可以包括确定第三核和第四核之间不与第一亲和性基本相同的第二亲和性。调度器响应于通过确定处理器的当前位掩码映射不同于处理器的缺省位掩码映射而做出的第一核至少部分地不能工作的确定来标识第三核和第四核。
处理可以从框S6继续到框S8,“生成包括变换后核亲和性位掩码的第二请求,其中变换后核亲和性位掩码标识第三核和第四核”。在框S8中,调度器可以生成包括变换后核亲和性位掩码的第二请求。变换后核亲和性位掩码可以标识第三核和第四核。
图6B示出了依照本文所描述的至少一些实施例布置的用于实现核亲和性位掩码变换的示例的过程的流程图。在一些示例中,图6B中的过程可以利用上述系统100来实现,从而实施由调度器生成用于多核处理器的变换后核亲和性位掩码的方法。
示例的过程可以包括如框S20、S22、S24、S26和/或S28中的一个或多个所图示的一个或多个操作、功能或动作。虽然图示为分离的框,根据期望的实现方式,各个框可以划分成额外的框、组合成较少的框,或者去除。
处理可以开始于框S20,“接收在第一核上执行第一任务以及在第二核上执行第二任务的第一请求,该第一请求可以包括标识多核处理器的至少第一核和第二核的核亲和性位掩码”。在框S20中,调度器可以接收第一请求。该第一请求可以是在第一核上执行第一任务以及在第二核上执行第二任务的请求。该请求可以包括标识多核处理器的至少第一核和第二核的核亲和性位掩码。
处理可以从框S20继续到框S22,“确定第一核的第一属性”。在框S22中,调度器可以确定第一核的第一属性。调度器可以通过分析核属性表来确定第一属性。
处理可以从框S22继续到框S24,“确定第一核至少部分地不能工作”。调度器可以通过确定处理器的当前位掩码映射不同于处理器的缺省位掩码映射来确定第一核至少部分地不能工作。
处理可以从框S24继续到框S26,“基于第一核至少部分地不能工作的确定,标识多核处理器的第三核,其中第三核具有第一属性”。在框S26中,调度器可以标识出具有第一属性的第三核。
处理可以从框S26继续到框S28,“生成包括变换后核亲和性位掩码的第二请求,变换后核亲和性位掩码可以标识第二核和第三核,使得第一任务在第三核上执行且第二任务在第二核上执行”。在框S28中,调度器可以生成包括变换后核亲和性位掩码的第二请求。该变换后核亲和性位掩码可以标识出第二核和第三核。变换后核亲和性位掩码和第二请求可以用来使得在第三核上执行第一任务且在第二核上执行第二任务。
图7示出了依照本文所描述的至少一些实施例布置的能够用来实现核亲和性位掩码变换的示例的计算机程序产品700。程序产品700可以包括信号承载介质702。信号承载介质702可以包括一条或多条指令704,当由例如处理器执行时,这些指令可以提供如上文结合图1-6B所描述的功能。因此,例如,参考系统100,调度器128可以响应于由介质702传送到系统100的指令704而承担图7所示的一个或多个框。
在一些实现中,信号承载介质702可以包含计算机可读介质706,诸如但不限于硬盘驱动器、压缩盘(CD)、数字视频盘(DVD)、数字带、存储器等。在一些实施方式中,信号承载介质702可以包含可记录介质708,诸如但不限于存储器、读/写(R/W)CD、R/WDVD,等等。在一些实施方式中,信号承载介质702可以包含通信介质710,诸如但不限于数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。因此,例如,程序产品700可以通过RF信号承载介质702传送到系统100的一个或多个模块,其中信号承载介质702由无线通信介质710(例如,符合IEEE802.11标准的无线通信介质)来传送。
图8是依照本所描述的至少一些实施例布置的布置成实现核亲和性位掩码变换的示例的计算设备800的框图。在最基本的配置802中,计算设备800通常包括一个或多个处理器804以及系统存储器806。存储器总线806可用于处理器804与系统存储器806之间的通信。
根据所需的配置,处理器804可以是任意类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理器804可以包括调度器128、核亲和性变换表244和/或位掩码映射246。处理器804可以包括诸如级别1高速缓冲器810和级别2高速缓冲器812的一级或多级高速缓冲器、两个或更多个处理器核814A、814B等和寄存器816。处理器核814A、814B可以各自包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSPCore)或其任意组合。在同质构造中,核814A、814B能够实施基本相似的功能(例如,具有相同的指令集)。在异质构造中,核814A、814B能够实施不同的功能(例如,具有不同的指令集)。示例的存储器控制器818还能够与处理器804一起使用,或者在一些实现中,存储器控制器818可以是处理器804的内部部件。
根据所需的配置,系统存储器806可以是任意类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或其任意组合。系统存储器806可以包括操作系统820、一个或多个应用822以及程序数据824。应用822可以包括核亲和性位掩码变换算法826,该核亲和性位掩码变换算法826可布置成执行如本文所描述的功能,包括参考如图1-5所示的系统100所描述的功能。程序数据824可以包括核亲和性位掩码变换数据828,其可用来实现如本文所描述的核亲和性位掩码变换。在一些实施例中,核亲和性位掩码变换数据828可以包括位掩码映射和/或核亲和性分类表。在一些实施例中,应用822可以布置成在操作系统820上操作程序数据824,使得可以提供核亲和性位掩码变换算法。该所描述的基本配置802通过内虚线框内的那些组件图示于图8中。
计算设备800可具有附加的特征或功能以及附加的接口以便于基本配置802与任何所需的设备和接口之间的通信。例如,总线/接口控制器830可用于利于基本配置802与一个或多个数据存储设备832之间经由存储接口总线834的通信。数据存储设备832可以是可移除存储设备836、非可移除存储设备838或者其组合。可移除存储设备和非可移除存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘设备、诸如压缩盘(CD)驱动器或数字多功能盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和磁带驱动器,仅列举了几个。示例的计算机存储介质可以包括以用于诸如计算机可读指令、数据结构、程序模块或其它数据的信息的存储的任何方法或技术实现的易失性和非易失性的介质以及可移除和非可移除的介质。
系统存储器806、可移除存储设备836和非可移除存储设备838是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存(flashmemory)或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储设备、磁盒、磁带、磁盘存储设备或其它磁存储设备、或者可用于存储所需信息并且可由计算设备800访问的任何其它介质。任意这样的计算机存储介质可以是计算设备800的部件。
计算设备800还可以包括接口总线840,该接口总线用于方便从各接口设备(例如,输出设备842、外围设备接口844和通信设备846)经由总线/接口控制器830到基本配置802的通信。示例的输出设备842包括图形处理单元848和音频处理单元850,其可配置为经由一个或多个A/V端口852与诸如显示器或扬声器的各外部设备通信。示例的外围设备接口844包括串行接口控制器854或并行接口控制器856,其可配置为经由一个或多个I/O端口858与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其它外围设备(例如,打印机、扫描仪等)的外部设备通信。示例的通信设备846包括网络控制器860,其可布置成便于经由一个或多个通信端口864通过网络通信链路与一个或多个其他计算设备862的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可通过计算机可读指令、数据结构、程序模块或诸如载波或其它传输机制的调制数据信号中的其它数据来具体化,并且可以包括任何信息输送介质。“调制数据信号”可以是使得其特性中的一个或多个以将信号中的信息编码的方式设定或改变的信号。通过举例而不是限制的方式,通信介质可以包括诸如有线网络或直接线连接的有线介质,以及诸如声波、射频(RF)、微波、红外(IR)和其它无线介质的无线介质。如本文所使用的术语计算机可读介质可以包括存储介质和通信介质两者。
计算设备800可实现为诸如蜂窝电话、个人数据助理(PDA)、个人媒体播放器设备、无线网页监视设备(wirelessweb-watchdevice)、个人头戴送受话器设备、专用设备或包括上述功能中的任一种的混合设备的小形状因数的便携式(或移动)电子设备的一部分。计算设备800还可实现为包括膝上型计算机和非膝上型计算机配置两者的个人计算机。
本公开不限于本文所描述的特定实施例,这些实施例意在各方案的示例。能够在不偏离其精神和范围的情况下做出多种改进和变型,这对于本领域技术人员而言是显而易见的。通过前面的说明,除了本文所列举的那些之外,在本公开的范围内的功能上等同的方法和装置对于本领域技术人员而言将是显而易见的。旨在使这些改进和变型落在所附权利要求书的范围内。本公开仅受所附权利要求书以及这些权利要是所给予权利的等同方案的整个范围所限制。应当理解的是,本公开不限于特定的方法、试剂、化合物组成或生物系统,当然这些会变化。还应理解的是,本文所使用的术语是仅仅是为了描述特定实施例的目的,而不意在限制。
关于本文中基本上任何复数和/或单数术语的使用,本领域技术人员能够根据上下文和/或应用适当地从复数变换成单数和/或从单数变换成复数。为了清晰的目的,本文中明确地阐明了各单数/复数的置换。
本领域技术人员将理解,一般地,本文所使用的术语,尤其是随附权利要求(例如,随附权利要求的主体)中所使用的术语,通常意在为“开放式”术语(例如,术语“包括”应当解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包括”应解释为“包括但不限于”,等等)。本领域技术人员还理解,如果意图表达引导性权利要求记述项的具体数量,该意图将明确地记述在权利要求中,并且在不存在这种记述的情况下,不存在这样的意图。例如,为辅助理解,下面的随附权利要求可能包含了引导性短语“至少一个”和“一个或多个”的使用以引导权利要求记述项。然而,这种短语的使用不应解释为暗指不定冠词“一”或“一个”引导权利要求记述项将包含该所引导的权利要求记述项的任何特定权利要求局限于仅包含一个该记述项的实施例,即使当同一权利要求包括了引导性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”的不定冠词(例如,“一”和/或“一个”应当解释为表示“至少一个”或“一个或多个”);这同样适用于对于用于引导权利要求记述项的定冠词的使用。另外,即使明确地记述了被引导的权利要求记述项的具体数量,本领域技术人员将理解到这些记述项应当解释为至少表示所记述的数量(例如,没有其它修饰语的裸记述“两个记述项”表示至少两个记述项或两个以上的记述项)。此外,在使用类似于“A、B和C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。在使用类似于“A、B或C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B或C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。本领域技术人员将进一步理解,呈现两个以上可选项的几乎任何分离词和/或短语,无论是在说明书、权利要求或附图中,都应理解为设想包括一项、任一项或两项的可能性。例如,术语“A或B”将理解为包括“A”或“B”或“A和B”的可能性。
另外,在根据马库什组(Markushgroup)描述本公开的特征或方案的情况下,本领域技术人员将理解的是本公开也因此以马库什组的任何独立成员或成员的子组来描述。
本领域技术人员将理解的是,为了任何以及全部的目的,诸如在提供所撰写的说明书方面,本文所公开的全部范围也涵盖了任何和全部的可能的子范围及其子范围的组合。能够容易地认识到任何所列范围都充分地描述了同一范围并且使同一范围分解成至少均等的一半、三分之一、四分之一、五分之一、十分之一等等。作为非限制示例,本文所论述的每个范围能够容易地分解成下三分之一、中三分之一和上三分之一,等等。本领域技术人员还将理解的是,诸如“多达”、“至少”、“大于”、“小于”等所有的语言包括所记述的数量并且是指如上文所论述的随后能够分解成子范围的范围。最后,本领域技术人员将理解的是,范围包括每个独立的成员。因此,例如,具有1-3个单元的组是指具有1个、2个或3个单元的组。类似地,具有1-5个单元的组是指具有1个、2个、3个、4个、或5个单元的组,等等。
虽然本文公开了各个方案和实施例,但是其它的方案和实施例对于本领域技术人员而言将是显而易见的。因此,本文所公开的各个方案和实施例是为了示例的目的而不意在限制,真正的范围和精神是通过随附的权利要求表示的。
Claims (22)
1.一种生成用于多核处理器的变换后核亲和性位掩码的方法,所述方法包括,由调度器:
接收第一请求,其中所述第一请求包括标识所述多核处理器的至少第一核和第二核的核亲和性位掩码;
确定所述第一核与所述第二核之间的第一亲和性;
至少部分地基于所述第一亲和性,标识所述多核处理器的第三核和第四核;以及
生成包括所述变换后核亲和性位掩码的第二请求,其中所述变换后核亲和性位掩码标识所述第三核和所述第四核。
2.如权利要求1所述的方法,其中标识所述多核处理器的第三核和第四核包括确定所述第三核与所述第四核之间的第二亲和性。
3.如权利要求2所述的方法,其中确定所述第三核与所述第四核之间的第二亲和性包括确定所述第二亲和性与所述第一亲和性相同。
4.如权利要求1所述的方法,进一步包括确定所述第一核至少部分地不能工作。
5.如权利要求4所述的方法,其中确定所述第一核至少部分地不能工作包括:
确定所述多核处理器的当前位掩码映射不同于所述多核处理器的缺省位掩码映射。
6.如权利要求1所述的方法,其中确定所述第一核与所述第二核之间的所述第一亲和性包括:
确定所述第一核和所述第二核均是表中第一组核的部分,其中所述表包括两个或更多个核的组以及每组中核之间或之中的对应亲和性;以及
将对应于所述第一组核的亲和性标识为所述第一亲和性。
7.如权利要求1所述的方法,其中标识所述多核处理器的第三核和第四核包括:标识不同于所述第二核的所述第四核。
8.如权利要求1所述的方法,进一步包括发送消息,其中所述消息标识所述第三核和所述第四核。
9.一种用来生成多核处理器的变换后核亲和性位掩码的设备,所述设备包括:
存储器;
设备处理器,其配置为与所述存储器通信,所述设备处理器用于:
接收第一请求,其中所述第一请求包括核亲和性位掩码,并且所述核亲和性位掩码标识所述多核处理器的至少第一核和第二核;
确定所述第一核与所述第二核之间的第一亲和性;
至少部分地基于所述第一亲和性,标识出所述多核处理器的第三核和第四核;以及
生成包括所述变换后核亲和性位掩码的第二请求,其中所述变换后核亲和性位掩码标识出所述第三核和所述第四核。
10.如权利要求9所述的设备,其中所述设备处理器用来确定所述第一核至少部分地不能工作。
11.如权利要求9所述的设备,其中所述设备处理器包括调度器。
12.如权利要求9所述的设备,其中:
所述设备处理器用来分析存储在所述存储器中的当前位映射掩码以便当所述当前位掩码映射不同于所述多核处理器的缺省位掩码映射时确定所述第一核至少部分地不能工作。
13.如权利要求9所述的设备,其中所述设备处理器用于:
确定所述第一核和所述第二核均是表中第一组核的部分,其中所述表存储在所述存储器中且所述表包括两个或更多个核的组以及每组中核之间或之中的对应亲和性;以及
将对应于所述第一组核的亲和性标识为所述第一亲和性。
14.如权利要求9所述的设备,其中:
所述设备处理器用于分析表来确定所述第一核与第二核之间的所述第一亲和性,其中所述表包括两个或更多个核的组以及每组中核之间或之中的对应亲和性;以及
所述设备处理器用于分析所述表来确定所述第三核与第四核之间的第二亲和性。
15.如权利要求9所述的设备,其中所述第四核不同于所述第二核。
16.一种多核处理器,包括:
第一核;
第二核;
第三核;
第四核;
存储器,其配置为与所述第一核、所述第二核、所述第三核和所述第四核通信;
调度器,其配置为与所述第一核、所述第二核、所述第三核、所述第四核和所述存储器通信;
所述调度器用于:
接收第一请求,其中所述第一请求包括核亲和性位掩码,并且所述核亲和性位掩码标识所述多核处理器的至少所述第一核和所述第二核;
确定所述第一核至少部分地不能工作;
确定所述第一核与所述第二核之间的第一亲和性;
至少部分地基于所述第一亲和性,标识所述多核处理器的第三核与第四核;以及
生成包括所述变换后核亲和性位掩码的第二请求,其中所述变换后核亲和性位掩码标识所述第三核和所述第四核。
17.如权利要求16所述的多核处理器,其中所述第一请求和所述第二请求包括待由所述多核处理器执行的指令。
18.如权利要求16所述的多核处理器,其中所述调度器用于分析所述存储器中的当前位掩码映射以便当所述当前位掩码映射不同于所述多核处理器的缺省位掩码映射时确定所述第一核至少部分地不能工作。
19.如权利要求16所述的多核处理器,其中:
所述调度器用于分析表以确定所述第一核与所述第二核之间的第一亲和性,其中所述表包括两个或更多个核的组以及每组中核之间或之中的对应亲和性;以及
所述调度器用于分析所述表以确定所述第三核与第四核之间的第二亲和性。
20.如权利要求16所述的多核处理器,其中所述第四核不同于所述第二核。
21.一种生成用于多核处理器的变换后核亲和性位掩码的方法,所述方法包括,由调度器:
接收第一请求以在第一核上执行第一任务且在第二核上执行第二任务,其中所述第一请求包括标识所述多核处理器的至少所述第一核和所述第二核的核亲和性位掩码;
确定所述第一核的第一属性;
确定所述第一核至少部分地不能工作;
基于所述第一核至少部分地不能工作的确定,标识所述多核处理器的第三核,其中所述第三核具有所述第一属性;以及
生成包括所述变换后核亲和性位掩码的第二请求,其中所述变换后核亲和性位掩码标识所述第二核和所述第三核,使得在所述第三核上执行所述第一任务且在所述第二核上执行所述第二任务。
22.如权利要求21所述的方法,其中确定所述第一核至少部分地不能工作包括:
确定所述多核处理器的当前位掩码映射不同于所述多核处理器的缺省位掩码映射。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/041196 WO2014185906A1 (en) | 2013-05-15 | 2013-05-15 | Core affinity bitmask translation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105210038A true CN105210038A (zh) | 2015-12-30 |
CN105210038B CN105210038B (zh) | 2018-10-30 |
Family
ID=51896768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380076580.6A Expired - Fee Related CN105210038B (zh) | 2013-05-15 | 2013-05-15 | 核亲和性位掩码变换 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9311153B2 (zh) |
CN (1) | CN105210038B (zh) |
WO (1) | WO2014185906A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766180A (zh) * | 2017-11-09 | 2019-05-17 | 阿里巴巴集团控股有限公司 | 负载均衡方法和装置、存储介质、计算设备及计算系统 |
WO2021139726A1 (zh) * | 2020-01-07 | 2021-07-15 | 中科寒武纪科技股份有限公司 | 任务迁移的方法、装置、计算机设备及可读存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10299066B2 (en) * | 2013-07-08 | 2019-05-21 | Capital One Services, Llc | Systems and methods for testing mobile application functions |
US9652270B2 (en) * | 2014-03-21 | 2017-05-16 | Intel Corporation | Apparatus and method for virtualized computing |
JP6518087B2 (ja) * | 2015-03-09 | 2019-05-22 | キヤノン株式会社 | プログラム処理装置 |
US10073718B2 (en) | 2016-01-15 | 2018-09-11 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
KR102509986B1 (ko) | 2016-03-28 | 2023-03-14 | 삼성전자주식회사 | 다중 코어 프로세서 및 다중 코어 프로세서를 제어하는 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7093258B1 (en) * | 2002-07-30 | 2006-08-15 | Unisys Corporation | Method and system for managing distribution of computer-executable program threads between central processing units in a multi-central processing unit computer system |
US20090320031A1 (en) * | 2008-06-19 | 2009-12-24 | Song Justin J | Power state-aware thread scheduling mechanism |
US20110088038A1 (en) * | 2009-10-13 | 2011-04-14 | Ezekiel John Joseph Kruglick | Multicore Runtime Management Using Process Affinity Graphs |
US20120266179A1 (en) * | 2011-04-14 | 2012-10-18 | Osborn Michael J | Dynamic mapping of logical cores |
Family Cites Families (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4210962A (en) | 1978-06-30 | 1980-07-01 | Systems Control, Inc. | Processor for dynamic programming |
NL8700530A (nl) | 1987-03-05 | 1988-10-03 | Philips Nv | Pijplijnsysteem met parallelle data-beschrijving. |
JPH04195577A (ja) | 1990-11-28 | 1992-07-15 | Hitachi Ltd | マルチプロセッサにおけるタスクスケジューリング方式 |
JP3266351B2 (ja) | 1993-01-20 | 2002-03-18 | 株式会社日立製作所 | データベース管理システムおよび問合せの処理方法 |
US5745778A (en) | 1994-01-26 | 1998-04-28 | Data General Corporation | Apparatus and method for improved CPU affinity in a multiprocessor system |
JPH08315598A (ja) | 1995-05-12 | 1996-11-29 | Mitsubishi Electric Corp | テスト機能内蔵メモリ集積回路 |
US5826079A (en) | 1996-07-05 | 1998-10-20 | Ncr Corporation | Method for improving the execution efficiency of frequently communicating processes utilizing affinity process scheduling by identifying and assigning the frequently communicating processes to the same processor |
US6289369B1 (en) | 1998-08-25 | 2001-09-11 | International Business Machines Corporation | Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system |
US6745336B1 (en) | 1999-05-20 | 2004-06-01 | Princeton University | System and method of operand value based processor optimization by detecting a condition of pre-determined number of bits and selectively disabling pre-determined bit-fields by clock gating |
US6658448B1 (en) | 1999-10-21 | 2003-12-02 | Unisys Corporation | System and method for assigning processes to specific CPU's to increase scalability and performance of operating systems |
US20030236919A1 (en) | 2000-03-03 | 2003-12-25 | Johnson Scott C. | Network connected computing system |
US6769017B1 (en) | 2000-03-13 | 2004-07-27 | Hewlett-Packard Development Company, L.P. | Apparatus for and method of memory-affinity process scheduling in CC-NUMA systems |
US6782410B1 (en) | 2000-08-28 | 2004-08-24 | Ncr Corporation | Method for managing user and server applications in a multiprocessor computer system |
US7178145B2 (en) * | 2001-06-29 | 2007-02-13 | Emc Corporation | Queues for soft affinity code threads and hard affinity code threads for allocation of processors to execute the threads in a multi-processor system |
US7159216B2 (en) * | 2001-11-07 | 2007-01-02 | International Business Machines Corporation | Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system |
US20030171907A1 (en) | 2002-03-06 | 2003-09-11 | Shay Gal-On | Methods and Apparatus for Optimizing Applications on Configurable Processors |
US7143412B2 (en) | 2002-07-25 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | Method and apparatus for optimizing performance in a multi-processing system |
US7275249B1 (en) * | 2002-07-30 | 2007-09-25 | Unisys Corporation | Dynamically generating masks for thread scheduling in a multiprocessor system |
US7389506B1 (en) * | 2002-07-30 | 2008-06-17 | Unisys Corporation | Selecting processor configuration based on thread usage in a multiprocessor system |
US8108843B2 (en) | 2002-09-17 | 2012-01-31 | International Business Machines Corporation | Hybrid mechanism for more efficient emulation and method therefor |
US7146607B2 (en) | 2002-09-17 | 2006-12-05 | International Business Machines Corporation | Method and system for transparent dynamic optimization in a multiprocessing environment |
US7047471B2 (en) | 2003-03-03 | 2006-05-16 | Hewlett-Packard Development Company, L.P. | Voltage margin testing of bladed servers |
JP2005085164A (ja) | 2003-09-10 | 2005-03-31 | Sharp Corp | マルチプロセッサシステムの制御方法およびマルチプロセッサシステム |
US7448037B2 (en) | 2004-01-13 | 2008-11-04 | International Business Machines Corporation | Method and data processing system having dynamic profile-directed feedback at runtime |
US20050210472A1 (en) | 2004-03-18 | 2005-09-22 | International Business Machines Corporation | Method and data processing system for per-chip thread queuing in a multi-processor system |
US20050246461A1 (en) | 2004-04-29 | 2005-11-03 | International Business Machines Corporation | Scheduling threads in a multi-processor computer |
US7363523B2 (en) | 2004-08-31 | 2008-04-22 | Intel Corporation | Method and apparatus for controlling power management state transitions |
US7437581B2 (en) | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
JP2006127302A (ja) | 2004-10-29 | 2006-05-18 | Internatl Business Mach Corp <Ibm> | 情報処理装置、コンパイラ、及びコンパイラプログラム |
US20060212677A1 (en) * | 2005-03-15 | 2006-09-21 | Intel Corporation | Multicore processor having active and inactive execution cores |
US8051418B1 (en) | 2005-03-21 | 2011-11-01 | Oracle America, Inc. | Techniques for providing improved affinity scheduling in a multiprocessor computer system |
US8645959B2 (en) | 2005-03-30 | 2014-02-04 | Intel Corporaiton | Method and apparatus for communication between two or more processing elements |
US7734895B1 (en) | 2005-04-28 | 2010-06-08 | Massachusetts Institute Of Technology | Configuring sets of processor cores for processing instructions |
US7383396B2 (en) | 2005-05-12 | 2008-06-03 | International Business Machines Corporation | Method and apparatus for monitoring processes in a non-uniform memory access (NUMA) computer system |
JP2006318380A (ja) | 2005-05-16 | 2006-11-24 | Handotai Rikougaku Kenkyu Center:Kk | 回路システム |
US20060265555A1 (en) * | 2005-05-19 | 2006-11-23 | International Business Machines Corporation | Methods and apparatus for sharing processor resources |
KR101108397B1 (ko) | 2005-06-10 | 2012-01-30 | 엘지전자 주식회사 | 멀티-코어 프로세서의 전원 제어 장치 및 방법 |
CA2612079A1 (en) | 2005-06-22 | 2006-12-28 | F. Hoffmann-La Roche Ag | (6-flu0r0-benz0[1,3] dioxolyl)-morpholin-4-yl-methanones and their use as cb1 ligands |
US7539723B2 (en) | 2005-07-28 | 2009-05-26 | International Business Machines Corporation | System for configuring a cellular telephone to operate according to policy guidelines of a group of users |
US7693690B2 (en) | 2005-08-09 | 2010-04-06 | Nec Laboratories America, Inc. | Disjunctive image computation for sequential systems |
US8104033B2 (en) | 2005-09-30 | 2012-01-24 | Computer Associates Think, Inc. | Managing virtual machines based on business priorty |
US8489700B2 (en) | 2005-11-30 | 2013-07-16 | International Business Machines Corporation | Analysis of nodal affinity behavior |
US7676811B2 (en) | 2006-03-23 | 2010-03-09 | Microsoft Corporation | Ensuring thread affinity for interprocess communication in a managed code environment |
US7802073B1 (en) * | 2006-03-29 | 2010-09-21 | Oracle America, Inc. | Virtual core management |
US7941805B2 (en) | 2006-08-15 | 2011-05-10 | International Business Machines Corporation | Affinity dispatching load balancer with precise CPU consumption data |
US7746965B2 (en) | 2006-10-20 | 2010-06-29 | Texas Instruments Incorporated | Automatic gain control for a wideband signal |
US8443341B2 (en) | 2006-11-09 | 2013-05-14 | Rogue Wave Software, Inc. | System for and method of capturing application characteristics data from a computer system and modeling target system |
US20080126751A1 (en) | 2006-11-27 | 2008-05-29 | Shay Mizrachi | Scheduler hint method and system to improve network interface controller (nic) receive (rx) processing cache performance |
US7925901B2 (en) | 2007-03-15 | 2011-04-12 | International Business Machines Corporation | Method and system for estimating processor utilization from power measurements |
JP2008306522A (ja) | 2007-06-08 | 2008-12-18 | Nagasaki Institute Of Applied Science | 無線通信システムおよび無線通信媒体 |
US8327363B2 (en) | 2007-07-24 | 2012-12-04 | Microsoft Corporation | Application compatibility in multi-core systems |
US8544014B2 (en) | 2007-07-24 | 2013-09-24 | Microsoft Corporation | Scheduling threads in multi-core systems |
US8122229B2 (en) | 2007-09-12 | 2012-02-21 | Convey Computer | Dispatch mechanism for dispatching instructions from a host processor to a co-processor |
US8176495B2 (en) | 2007-09-16 | 2012-05-08 | Microsoft Corporation | Client affinity in distributed load balancing systems |
US8214817B2 (en) | 2007-10-09 | 2012-07-03 | International Business Machines Corporation | Detecting change in program behavior for adaptive code optimization |
US8136153B2 (en) | 2007-11-08 | 2012-03-13 | Samsung Electronics Co., Ltd. | Securing CPU affinity in multiprocessor architectures |
US20090125894A1 (en) | 2007-11-14 | 2009-05-14 | Nair Sreekumar R | Highly scalable parallel static single assignment for dynamic optimization on many core architectures |
US8156495B2 (en) | 2008-01-17 | 2012-04-10 | Oracle America, Inc. | Scheduling threads on processors |
US8010822B2 (en) * | 2008-03-28 | 2011-08-30 | Microsoft Corporation | Power-aware thread scheduling and dynamic use of processors |
US8332852B2 (en) | 2008-07-21 | 2012-12-11 | International Business Machines Corporation | Thread-to-processor assignment based on affinity identifiers |
US8201176B2 (en) | 2008-08-06 | 2012-06-12 | International Business Machines Corporation | Detecting the starting and ending of a task when thread pooling is employed |
US8195962B2 (en) | 2008-11-11 | 2012-06-05 | Globalfoundries Inc. | Method and apparatus for regulating power consumption |
US8046468B2 (en) | 2009-01-26 | 2011-10-25 | Vmware, Inc. | Process demand prediction for distributed power and resource management |
JP2010191583A (ja) * | 2009-02-17 | 2010-09-02 | Fujitsu Ltd | ストレージシステム,ストレージ制御装置,受信制御装置および制御方法 |
US8324861B2 (en) | 2009-03-05 | 2012-12-04 | O2Micro Inc. | Multi-channel converter with self-diagnosis functionality |
US20110004692A1 (en) | 2009-07-01 | 2011-01-06 | Tom Occhino | Gathering Information about Connections in a Social Networking Service |
US8276142B2 (en) | 2009-10-09 | 2012-09-25 | Intel Corporation | Hardware support for thread scheduling on multi-core processors |
US8635606B2 (en) | 2009-10-13 | 2014-01-21 | Empire Technology Development Llc | Dynamic optimization using a resource cost registry |
US8627300B2 (en) | 2009-10-13 | 2014-01-07 | Empire Technology Development Llc | Parallel dynamic optimization |
US8892931B2 (en) | 2009-10-20 | 2014-11-18 | Empire Technology Development Llc | Power channel monitor for a multicore processor |
US8949529B2 (en) * | 2009-12-30 | 2015-02-03 | International Business Machines Corporation | Customizing function behavior based on cache and scheduling parameters of a memory argument |
US9357482B2 (en) * | 2011-07-13 | 2016-05-31 | Alcatel Lucent | Method and system for dynamic power control for base stations |
US8826092B2 (en) * | 2011-10-25 | 2014-09-02 | International Business Machines Corporation | Characterization and validation of processor links |
-
2013
- 2013-05-15 CN CN201380076580.6A patent/CN105210038B/zh not_active Expired - Fee Related
- 2013-05-15 WO PCT/US2013/041196 patent/WO2014185906A1/en active Application Filing
- 2013-05-15 US US14/124,569 patent/US9311153B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7093258B1 (en) * | 2002-07-30 | 2006-08-15 | Unisys Corporation | Method and system for managing distribution of computer-executable program threads between central processing units in a multi-central processing unit computer system |
US20090320031A1 (en) * | 2008-06-19 | 2009-12-24 | Song Justin J | Power state-aware thread scheduling mechanism |
US20110088038A1 (en) * | 2009-10-13 | 2011-04-14 | Ezekiel John Joseph Kruglick | Multicore Runtime Management Using Process Affinity Graphs |
US20120266179A1 (en) * | 2011-04-14 | 2012-10-18 | Osborn Michael J | Dynamic mapping of logical cores |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766180A (zh) * | 2017-11-09 | 2019-05-17 | 阿里巴巴集团控股有限公司 | 负载均衡方法和装置、存储介质、计算设备及计算系统 |
CN109766180B (zh) * | 2017-11-09 | 2023-01-17 | 阿里巴巴集团控股有限公司 | 负载均衡方法和装置、存储介质、计算设备及计算系统 |
WO2021139726A1 (zh) * | 2020-01-07 | 2021-07-15 | 中科寒武纪科技股份有限公司 | 任务迁移的方法、装置、计算机设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105210038B (zh) | 2018-10-30 |
US9311153B2 (en) | 2016-04-12 |
WO2014185906A1 (en) | 2014-11-20 |
US20140344550A1 (en) | 2014-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105210038A (zh) | 核亲和性位掩码变换 | |
US10902352B2 (en) | Labeling of data for machine learning | |
KR20200129843A (ko) | 연산 회로를 포함하는 메모리 장치, 이를 제어하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
CN109144696A (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
CN106201481A (zh) | 应用程序开发系统中的组件管理方法和装置 | |
CN102402458A (zh) | 具有非对称处理器核的系统上的虚拟机和/或多级调度支持 | |
CN104380258A (zh) | 对图形硬件实施调度操作 | |
WO2021238996A1 (zh) | 一种资源处理方法、装置及设备 | |
US20110202918A1 (en) | Virtualization apparatus for providing a transactional input/output interface | |
US11347563B2 (en) | Computing system and method for operating computing system | |
CN105393218A (zh) | 通过虚拟机切换的重构 | |
US9852107B2 (en) | Techniques for scalable endpoint addressing for parallel applications | |
CN113627775A (zh) | 机器人的调度方法、装置、设备和存储介质 | |
US20230026369A1 (en) | Hardware acceleration for interface type conversions | |
CN104424135A (zh) | 外围设备控制装置和信息处理装置 | |
CN101939733A (zh) | 外部设备存取装置、其控制方法及系统大规模集成电路 | |
US11281666B2 (en) | Interception of database queries for delegation to an in memory data grid | |
CN104737130A (zh) | 多核架构中的资源分配 | |
CN104462175A (zh) | 创建使用关联数据的集成用户接口的方法和系统 | |
CN105278872A (zh) | 固态存储器设备的使用 | |
CN115964984A (zh) | 用于数字芯片版图平衡绕线的方法和装置 | |
JP2018106709A (ja) | OpenCLカーネルを処理する方法、及びそれを遂行するコンピューティング装置 | |
CN117940934A (zh) | 数据处理装置及方法 | |
KR101233664B1 (ko) | 멀티 코어 시스템에서 메모리 셔플링을 이용한 메모리 해킹 방지 방법 및 장치 | |
CN114281558A (zh) | 多核处理器、用于多核处理器的方法及相应产品 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181030 Termination date: 20200515 |
|
CF01 | Termination of patent right due to non-payment of annual fee |