Dynamic core selection for heterogeneous multi-core systems

US10437318B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10437318-B2
Application numberUS-201614986677-A
CountryUS
Kind codeB2
Filing dateJan 2, 2016
Priority dateMar 11, 2011
Publication dateOct 8, 2019
Grant dateOct 8, 2019

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.

Dynamically switching cores on a heterogeneous multi-core processing system may be performed by executing program code on a first processing core. Power up of a second processing core may be signaled. A first performance metric of the first processing core executing the program code may be collected. When the first performance metric is better than a previously determined core performance metric, power down of the second processing core may be signaled and execution of the program code may be continued on the first processing core. When the first performance metric is not better than the previously determined core performance metric, execution of the program code may be switched from the first processing core to the second processing core.

First claim

Opening claim text (preview).

The invention claimed is: 1. An apparatus for multi-core processing, the apparatus comprising: a memory controller; a first processor core of a first type to execute program code; a second processor core of a second type different from the first type; and a code distribution module to determine a performance metric of execution of the program code by the first processor core, determine a performance metric of the second processor core indicative of a predicted performance of the second processor core in executing the same program code, wherein to determine the performance metric of the second processor core comprises to apply the performance metric of the first processor core as an input to a prediction function, and switch execution of the program code from the first processor core to the second processor core in response to a determination that the performance metric of the second processor core is better than the performance metric of the first processor core or continue execution of the program code with the first processor core in response to a determination that the performance metric of the second processor core is not better than the performance metric of the first processor core. 2. The apparatus of claim 1 , further comprising an integrated circuit that includes the memory controller, the first processor core, the second processor core, and the code distribution module. 3. The apparatus of claim 1 , wherein the code distribution module is further to determine an amount of power consumed during execution of a code region. 4. The apparatus of claim 1 , wherein the code distribution module is further to power down the first processor core in response to a switch in execution of the program code from the first processor core to the second processor core. 5. The apparatus of claim 1 , wherein the first processor core is an in-order processor core and the second processor core is an out-of-order processor core. 6. The apparatus of claim 1 , wherein the second processor core is an in-order processor core and the first processor core is an out-of-order processor core. 7. The apparatus of claim 1 , wherein the memory controller is to manage a memory shared by the first processor core and the second processor core. 8. A method for processing by a multi-core processing system, the method comprising: executing program code on a first processor core of the multi-core processing system; determining a performance metric of execution of the program code by the first processor core; determining a performance metric of a second processor core of the multi-core processing system indicative of a predicted performance of the second processor core in executing the same program code, wherein to determine the performance metric of the second processor core comprises to apply the performance metric of the first processor core as an input to a prediction function and wherein the first processor core is of a first type and the second processor core is of a second type different from the first type; and switching execution of the program code from the first processor core to the second processor core in response to determining that the performance metric of the second processor core is better than the performance metric of the first processor core or continuing execution of the program code with the first processor core in response to a determination that the performance metric of the second processor core is not better than the performance metric of the first processor core. 9. The method of claim 8 , wherein the multi-core processing system is an integrated circuit that includes the first processor core, the second processor core, and a memory controller to manage a memory shared by the first processor core and the second processor core. 10. The method of claim 8 , further comprising determining an amount of power consumed during execution of a code region. 11. The method of claim 8 , further comprising powering down the first processor core in response to switching execution of the program code from the first processor core to the second processor core. 12. The method of claim 8 , wherein the first processor core is an in-order processor core and the second processor core is an out-of-order processor core. 13. The method of claim 8 , wherein the second processor core is an in-order processor core and the first processor core is an out-of-order processor core. 14. One or more non-transitory machine-readable storage media comprising a plurality of instructions embodied thereon that, in response to execution by one or more processors of a multi-core processing system, causes the one or more processors to: execute program code on a first processor core of the multi-core processing system; determine a performance metric of execution of the program code by the first processor core; determine a performance metric of a second processor core of the multi-core processing system indicative of a predicted performance of the second processor core in executing the same program code, wherein to determine the performance metric of the second processor core comprises to apply the performance metric of the first processor core as an input to a prediction function and wherein the first processor core is of a first type and the second processor core is of a second type different from the first type; and switch execution of the program code from the first processor core to the second processor core in response to a determination that the performance metric of the second processor core is better than the performance metric of the first processor core or continue execution of the program code with the first processor core in response to a determination that the performance metric of the second processor is not better than the performance metric of the first processor core. 15. The one or more non-transitory machine-readable storage media of claim 14 , wherein the multi-core processing system is an integrated circuit that includes the first processor core, the second processor core, and a memory controller to manage a memory shared by the first processor core and the second processor core. 16. The one or more non-transitory machine-readable storage media of claim 14 , wherein the plurality of instructions further causes the one or more processors to determine an amount of power consumed during execution of a code region. 17. The one or more non-transitory machine-readable storage media of claim 14 , wherein the plurality of instructions further causes the one or more processors to power down the first processor core in response to a switch in execution of the program code from the first processor core to the second processor core. 18. The one or more non-transitory machine-readable storage media of claim 14 , wherein the first processor core is an in-order processor core and the second processor core is an out-of-order processor core. 19. The one or more non-transitory machine-readable storage media of claim 14 , wherein the second processor core is an in-order processor core and the first processor core is an out-of-order processor core.

Assignees

Inventors

Classifications

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 US10437318B2 cover?
Dynamically switching cores on a heterogeneous multi-core processing system may be performed by executing program code on a first processing core. Power up of a second processing core may be signaled. A first performance metric of the first processing core executing the program code may be collected. When the first performance metric is better than a previously determined core performance metri…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F1/3287. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 08 2019 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).