Systems, methods and devices for determining work placement on processor cores

US10073718B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10073718-B2
Application numberUS-201614997032-A
CountryUS
Kind codeB2
Filing dateJan 15, 2016
Priority dateJan 15, 2016
Publication dateSep 11, 2018
Grant dateSep 11, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Apparatuses, methods and storage medium for computing including determination of work placement on processor cores are disclosed herein. In embodiments, an apparatus may include one or more processors, devices, and/or circuitry to identify a favored core of the processor cores. The one or more processors, devices, and/or circuitry may be configured to determine whether to migrate a thread to or from the favored core. In some embodiments, the determination may be by a process executed by a driver and/or by an algorithm executed by a power control unit of the processor.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus, comprising: a processor including: a plurality of cores of the same processor and including a first core having a first design and a second core having a second design that is identical to the first design; and a favored core module to be operated by the processor, the favored core module to: generate a ranking of the first and second cores based on differing physical characteristics of the first and second cores; identify one of the first and second cores as favored with respect to the other of the first and second cores based on the ranking; determine whether a demand of a thread is greater than a threshold; and in response to a determination that the demand of the thread is greater than the threshold, affinitize the thread to the favored core if the thread is not already affinitized to the favored core, including: add the thread to a tracker list; sort threads of the tracker list based on at least one of an inclusion list or user request received by a user interface; perform a first affinitization of an initial thread of the sorted tracker list to a core of an initial entry in a favored core list; perform a second affinitization of a next thread of the sorted tracker list to a core of a next entry in the favored core list; repeat the second affinitization until all the threads of the sorted tracker list are affinitized to a respective one of the cores of the favored core list; and wherein the favored core module is further to: determine whether a first number of affinized threads having demand greater than the threshold is greater than a second number of running cores of the processor, and in response to a determination that the first number is greater than the second number, unaffinitize all thread-core affinitizations corresponding to at least the favored core. 2. The apparatus of claim 1 , wherein the favored core has a first operating voltage that is lower than a second operating voltage of the other of the first and second cores. 3. The apparatus of claim 2 , wherein the first and second cores are associated with a same operating frequency. 4. The apparatus of claim 2 , wherein the first and second cores are associated with different operating frequencies. 5. The apparatus of claim 1 , wherein the favored core corresponds to a user-selection input via the user interface. 6. The apparatus of claim 1 , wherein the favored core corresponds to data of a fuse table. 7. A non-transitory computer-readable medium having instructions stored thereon that, in response to execution by a processing device, cause the processing device to perform operations, to: generate a ranking of cores of a processor based on differing physical characteristics of the cores; identify one of the cores as favored with respect to another of the cores based on the ranking; determine whether a demand of a thread corresponding to the processor is greater than a threshold; and in response to a determination that the demand of the thread is greater than the threshold, affinitize the thread to the favored core if the thread is not already affinitized to the favored core, including: add the thread to a tracker list; sort threads of the tracker list based on at least one of an inclusion list or user request received by a user interface; perform a first affinitization of an initial thread of the sorted tracker list to a core of an initial entry in a favored core list; perform a second affinitization of a next thread of the sorted tracker list to a core of a next entry in the favored core list; and repeat the second affinitization until all the threads of the sorted tracker list are affinitized to a respective one of the cores of the favored core list; and wherein the operations are further to: determine whether a first count of affinitized threads having demand greater than the threshold is greater than a second count of running ones of the cores; and in response to a determination that the first count is greater than the second count, unaffinitize all thread-core affinitizations corresponding to at least the favored core. 8. An apparatus, comprising: a plurality of cores; and a power control unit to: determine whether to migrate a candidate thread of threads associated with an operating system to or from a candidate of the plurality of cores; ascertain whether the operating system includes a predetermined mode; select the candidate of the plurality of cores based on a result of the ascertainment; generate a first ranking of a first group of the plurality of cores based on differing physical characteristics of the plurality of cores if the operating system includes the predetermined mode; generate a second ranking of a second group of the plurality of cores based on the differing physical characteristics of the plurality of cores if the operating system does not include the predetermined mode, wherein the second ranking is different than the first ranking; and select the candidate core of the plurality of cores from a top of the first or second ranking. 9. The apparatus of claim 8 , wherein the power control unit is further to: select a first subset of the plurality of cores, wherein each core of the first subset has a corresponding physical characteristic greater than a threshold physical characteristic; and wherein a second subset of the plurality of cores includes the remaining cores; form the first or second group at a first time responsive to identifying ones of the cores of the first subset that are running and associated with work scheduled as of the first time. 10. The apparatus of claim 9 , wherein the power control unit is further to: form a third group at a second time responsive to identifying ones of the cores of the second subset that are running as of the first time. 11. The apparatus of claim 10 , wherein the power control unit is further to: identify the candidate thread and the candidate core during an iteration of an iterative migration checking process that corresponds to the first and second times only if the operating system does not include the predetermined mode and members of the second group are the same as members of the third group; and identify the candidate thread and the candidate core during an iteration of an iterative migration checking process that corresponds to the first and second times only if the operating system does include the predetermined mode and members of the first ranking are the same and in the same order as members of a ranking of the third group. 12. A method, comprising: determining whether to migrate a candidate thread of threads of an operating system to or from a candidate of a plurality of cores of a processor; ascertaining whether the operating system includes a predetermined mode; selecting the candidate of the plurality of cores based on a result of the ascertaining; wherein the predetermined mode is a mode enabling the operating system to request a specific level of performance or power for a particular piece of work; generating a first ranking of a first group of the plurality of cores based on differing physical characteristics of the plurality of cores if the operating system includes the predetermined mode; generating a second ranking of a second group of the plurality of cores based on the differing physical characteristics of the plurality of cores if the operating system does not include the predetermined mode, wherein the second ranking is different than the first ranking; and selecting the candidate core of the plurality of cores from a top of the first or second ranking. 13. The method of claim 12 , further co

Assignees

Inventors

Classifications

  • by task scheduling · CPC title

  • G06F9/5083Primary

    Techniques for rebalancing the load in a distributed system · CPC title

  • G06F9/3885Primary

    using a plurality of independent parallel functional units · CPC title

  • considering data affinity · CPC title

  • G06F9/5094Primary

    where the allocation takes into account power or heat criteria (power management in computers in general G06F1/3203; thermal management in computers in general G06F1/206) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10073718B2 cover?
Apparatuses, methods and storage medium for computing including determination of work placement on processor cores are disclosed herein. In embodiments, an apparatus may include one or more processors, devices, and/or circuitry to identify a favored core of the processor cores. The one or more processors, devices, and/or circuitry may be configured to determine whether to migrate a thread to or…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/5083. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 11 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).