Compilation of application into multiple instruction sets for a heterogeneous processor

US2017123775A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017123775-A1
Application numberUS-201415128427-A
CountryUS
Kind codeA1
Filing dateMar 26, 2014
Priority dateMar 26, 2014
Publication dateMay 4, 2017
Grant date

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.

Techniques generally described are related to a method to compile code for a heterogeneous multi-core processor that includes a first core and a second core. The method may include receiving, by a multi-core compilation system, a set of source code that includes a plurality of code segments, wherein the multi-core compilation system is configured to compile the set of source code and generate an executable program that is executable by the heterogeneous multi-core processor. The method may include generating, by the multi-core compilation system, a first instruction set based on a specific code segment selected from the plurality of code segments, wherein the first instruction set is executable by the first core of the heterogeneous multi-core processor. The method may further include, in response to a determination that a performance indicator associated with the first core executing the first instruction set is above a particular threshold, generating, by the multi-core compilation system, a second instruction set based on the specific code segment, wherein the second instruction set is executable by the second core of the heterogeneous multi-core processor, and the first instruction set and the second instruction set are implemented in the executable program.

First claim

Opening claim text (preview).

1 . A method to compile code for a heterogeneous multi-core processor that includes a first core and a second core, the method comprising: receiving, by a multi-core compilation system, a set of source code that includes a plurality of code segments, wherein the multi-core compilation system is configured to compile the set of source code and generate an executable program that is executable by the heterogeneous multi-core processor; generating, by the multi-core compilation system, a first instruction set based on a specific code segment selected from the plurality of code segments, wherein the first instruction set is executable by the first core of the heterogeneous multi-core processor; and in response to a determination that a performance indicator associated with the first core executing the first instruction set is above a particular threshold, generating, by the multi-core compilation system, a second instruction set based on the specific code segment, wherein the second instruction set is executable by the second core of the heterogeneous multi-core processor, and the first instruction set and the second instruction set are implemented in the executable program. 2 . The method of claim 1 , further comprising: generating, by the multi-core compilation system, a condition instruction set for the executable program, wherein the condition instruction set is configured to determine the performance indicator associated with the first core executing the first instruction set during execution of the executable program. 3 . The method of claim 2 , further comprising: during execution of the executable program, executing, by the multi-core compilation system, the condition instruction set to determine the performance indicator for the first core executing the first instruction set; and in response to a determination that the performance indicator associated with the first core is below the particular threshold, executing, by the multi-core compilation system, the first instruction set using the first core. 4 . The method of claim 3 , further comprising: in response to the determination that the performance indicator associated with the first core is above the particular threshold, executing, by the multi-core compilation system, the second instruction set using the second core. 5 . The method of claim 1 , further comprising: generating a scheduling chart for the plurality of code segments; and identifying the specific code segment in the plurality of code segments as having an occurrence count in the scheduling chat that is above a particular occurrence threshold. 6 . The method of claim 1 , wherein the determination of the performance indicator comprises: collecting a power consumption value of the first core as the performance indicator associated with the first core during execution of the first instruction set. 7 . The method of claim 1 , wherein the determination of the performance indicator comprises: collecting a temperature value of the first core as the performance indicator associated with the first core during execution of the first instruction set. 8 . A method to compile code for a heterogeneous multi-core processor that includes a first core and a second core, the method comprising: receiving, by a multi-core compilation system, a set of source code that includes a plurality of code segments, wherein the multi-core compilation system is configured to compile the set of source code into an executable program that is executable by the heterogeneous multi-core processor; generating, by the multi-core compilation system based on the plurality of code segments, a first plurality of instruction sets that are executable by the first core of the heterogeneous multi-core processor; generating, by the multi-core compilation system based on the plurality of code segments, a second plurality of instruction sets that are executable by the second core of the heterogeneous multi-core processor; for a first code segment selected from the plurality of code segments and associated with a first instruction set of the first plurality of instruction sets and a second instruct set of the second plurality of instruction sets, determining, by the multi-core compilation system, a first performance indicator associated with the first core executing the first instruction set and a second performance indicator associated with the second core executing the second instruction set; and in response to a determination that the first performance indicator is above the second performance indicator, selecting, by the multi-core compilation system, the second instruction set to implement the first code segment in the executable program. 9 . The method of claim 8 , wherein the determining the first performance indicator and the second performance indicator comprises: constructing a regression model by simulating the first core executing the first instruction set; and estimating the first performance indicator associated with the first core based on the regression model and the first instruction set. 10 . The method of claim 8 , further comprising: determining an execution path having a set of code segments selected from the plurality of code segments, wherein the execution path has an execution frequency in the set of source code that is above a particular frequency threshold; and selecting the first code segment from the set of code segments. 11 . The method of claim 8 , further comprising: for a second code segment selected from the plurality of code segments and associated with a third instruction set of the first plurality of instruction sets and a fourth instruction set of the second plurality of instruction sets, determining a third performance indicator associated with the first core executing the first instruction set and the third instruction set and a fourth performance indicator associated with the second core executing the second instruction set and the fourth instruction set; and in response to a determination that the third performance indicator is below the fourth performance indicator, selecting the first instruction set and the third instruction set to implement the first code segment and the second code segment in the executable program. 12 . A multi-core compilation system to compile code for a heterogeneous multi-core processor that includes a first core and a second core, the system comprising: a compiler module configured to: receive a set of source code that includes a plurality of code segments, generate a first instruction set for a first code segment selected from the plurality of code segments, wherein the first instruction set is executable by the first core, and generate a second instruction set for the first code segment, wherein the second instruction set is executable by the second core; and a code optimization module coupled with the compiler module, wherein the code optimization module is configured to: link the first instruction set and the second instruction set into an executable program that is executable by the heterogeneous multi-core processor. 13 . The system as recited in claim 12 , further comprising: an execution module coupled with the code optimization module to execute the executable program, wherein the execution module is configured to: determine a performance indicator associated with the first core executing the first instruction set, and in response to the determination that the performance indicator is above a particular threshold, execute the second instruction set using the second core. 14 . The system as recited in claim 13 , wherein the execution m

Assignees

Inventors

Classifications

  • G06F8/451Primary

    Code distribution (considering CPU load at run-time G06F9/505; load rebalancing G06F9/5083) · 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 US2017123775A1 cover?
Techniques generally described are related to a method to compile code for a heterogeneous multi-core processor that includes a first core and a second core. The method may include receiving, by a multi-core compilation system, a set of source code that includes a plurality of code segments, wherein the multi-core compilation system is configured to compile the set of source code and generate a…
Who is the assignee on this patent?
Empire Technology Dev Llc
What technology area does this patent fall under?
Primary CPC classification G06F8/451. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu May 04 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). 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).