Mechanism for facilitating dynamic and efficient fusion of computing instructions in software programs

US9329848B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9329848-B2
Application numberUS-201314129956-A
CountryUS
Kind codeB2
Filing dateMar 27, 2013
Priority dateMar 27, 2013
Publication dateMay 3, 2016
Grant dateMay 3, 2016

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.

A mechanism is described for facilitating dynamic and efficient fusion of computing instructions according to one embodiment. A method of embodiments, as described herein, includes monitoring a software program for a program region having fusion candidate instructions for a fusion operation at a computing system; evaluating whether the macro operation of the candidate instructions is valuable to the software program; and performing the fusion operation if it is evaluated to be valuable.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus comprising: at least one processor; monitoring logic to monitor a software program for a program region having fusion candidate instructions for a macro fusion operation at the apparatus; evaluation logic to evaluate whether the macro fusion operation of the fusion candidate instructions is valuable to the software program; wherein the evaluation logic is further to evaluate a data dependency graph (DDG) relating to the fusion candidate instructions to determine depth or length of each fusion candidate instruction to further determine whether the macro fusion operation is critical to the software program, wherein criticality associated with each instructions is used as a metric to measure one or more performance values of one or more of the fusion candidate instructions; decision logic to allow the macro fusion operation to be performed, upon reviewing results of the evaluation; and execution logic to perform the macro fusion operation if the macro fusion operation is evaluated to be valuable to the software program. 2. The apparatus of claim 1 , wherein the monitoring logic comprises a detection module to detect the fusion candidate instructions for the macro fusion operation in the program region. 3. The apparatus of claim 1 , wherein the decision logic comprises an evaluation module to reject the macro fusion operation if the macro fusion operation is evaluated to be not valuable to the software program. 4. The apparatus of claim 3 , wherein the evaluation module is further to select a most-suited fusion candidate instruction for the macro fusion operation. 5. The apparatus of claim 1 , wherein the execution logic comprises a modification module to modify the fusion candidate instructions prior to performing the macro fusion operation. 6. The apparatus of claim 1 , wherein the fusion candidate instructions comprise a Combined Multiply-Add (CMULADD) instruction or a Combined Multiply-Subtract (CMULSUB) instruction. 7. The apparatus of claim 1 , wherein the evaluation is performed using a dynamic binary optimizer or a compiler. 8. The apparatus of claim 7 , wherein the evaluation of the DDG relating to the fusion candidate instructions is further to determine if the macro fusion operation reduces or increases either a number of executed instructions or an amount of energy spent in the software program. 9. The apparatus of claim 1 , wherein the apparatus comprises a computing system including one or more of a desktop computer, a server computer, a set-top box, a mobile computer including one or more of a smartphone, a personal digital assistant (PDA), a tablet computer, an e-reader, and a laptop computer. 10. A method comprising: monitoring a software program for a program region having fusion candidate instructions for a macro fusion operation at a computing system; evaluating whether the macro fusion operation of the fusion candidate instructions is valuable to the software program; wherein the evaluation logic is further to evaluate a data dependency graph (DDG) relating to the fusion candidate instructions to determine depth or length of each fusion candidate instruction to further determine whether the macro fusion operation is critical to the software program, wherein criticality associated with each instructions is used as a metric to measure one or more performance values of one or more of the fusion candidate instructions; allowing the macro fusion operation to be performed, upon reviewing results of the evaluation; and performing the macro fusion operation if the macro fusion operation is evaluated to be valuable to the software program. 11. The method of claim 10 , further comprising: detecting fusion candidate instructions for the macro fusion operation in the program region; rejecting the macro fusion operation if the macro fusion operation is evaluated to be not valuable to the software program; and selecting a most-suited fusion candidate instruction for the macro fusion operation given a set of potential candidate instructions to be applied on an individual candidate instruction. 12. The method of claim 10 , further comprising modifying the fusion candidate instructions prior to performing the macro fusion operation, wherein the fusion candidate instructions comprise a Combined Multiply-Add (CMULADD) instruction or a Combined Multiply-Subtract (CMULSUB) instruction. 13. The method of claim 10 , wherein the evaluation is performed using a dynamic binary optimizer or a compiler. 14. The method of claim 10 , wherein the evaluation of the DDG relating to the fusion candidate instructions is further to determine if the macro fusion operation reduces or increases either a number of executed instructions or an amount of energy spent in the software program. 15. The method of claim 10 , wherein the computing device comprises one or more of a desktop computer, a server computer, a set-top box, a mobile computer including one or more of a smartphone, a personal digital assistant (PDA), a tablet computer, an e-reader, and a laptop computer. 16. At least one non-transitory machine-readable medium comprising a plurality of instructions that in response to being executed on a computing device, causes the computing device to carry out one or more operations comprising: monitoring a software program for a program region having fusion candidate instructions for a macro fusion operation at the computing device; evaluating whether the macro fusion operation of the fusion candidate instructions is valuable to the software program; wherein the evaluation logic is further to evaluate a data dependency graph (DDG) relating to the fusion candidate instructions to determine depth or length of each fusion candidate instruction to further determine whether the macro fusion operation is critical to the software program, wherein criticality associated with each instructions is used as a metric to measure one or more performance values of one or more of the fusion candidate instructions; allowing the macro fusion operation to be performed, upon reviewing results of the evaluation; and performing the macro fusion operation if the macro fusion operation is evaluated to be valuable to the software program. 17. The non-transitory machine-readable medium of claim 16 , further comprising: detecting fusion candidate instructions for the macro fusion operation in the program region; rejecting the macro fusion operation if the macro fusion operation is evaluated to be not valuable to the software program; and selecting a most-suited fusion candidate instruction for the macro fusion operation given a set of potential candidate instructions to be applied on an individual candidate instruction. 18. The non-transitory machine-readable medium of claim 16 , further comprising modifying the fusion candidate instructions prior to performing the macro fusion operation, wherein the fusion candidate instructions comprise a Combined Multiply-Add (CMULADD) instruction or a Combined Multiply-Subtract (CMULSUB) instruction. 19. The non-transitory machine-readable medium of claim 16 , wherein the evaluation is performed using a dynamic binary optimizer or a compiler, wherein the evaluation of the DDG relating to the fusion candidate instructions is further to determine if the macro fusion operation reduces or increases either a number of executed instructions or an amount of energy spent in the software program. 20. The non-transitory machine-readable medium of claim 16 , wherein the computing sys

Assignees

Inventors

Classifications

  • Reducing the energy consumption · CPC title

  • Cross-Sectional Technologies · mapped topic

  • Reducing the memory space required by the program code · CPC title

  • Reducing the execution time required by the program code · CPC title

  • G06F8/443Primary

    Optimisation · 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 US9329848B2 cover?
A mechanism is described for facilitating dynamic and efficient fusion of computing instructions according to one embodiment. A method of embodiments, as described herein, includes monitoring a software program for a program region having fusion candidate instructions for a fusion operation at a computing system; evaluating whether the macro operation of the candidate instructions is valuable t…
Who is the assignee on this patent?
Lupon Marc, Martinez Raul, Codina Enric Gibert, and 4 more
What technology area does this patent fall under?
Primary CPC classification G06F8/443. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 03 2016 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).