Multiprocessor Programming Toolkit for Design Reuse
US-2024394048-A1 · Nov 28, 2024 · US
US9329848B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9329848-B2 |
| Application number | US-201314129956-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 27, 2013 |
| Priority date | Mar 27, 2013 |
| Publication date | May 3, 2016 |
| Grant date | May 3, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Optimisation · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.