Optimization of instructions to reduce memory access violations

US9342284B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9342284-B2
Application numberUS-201314040077-A
CountryUS
Kind codeB2
Filing dateSep 27, 2013
Priority dateSep 27, 2013
Publication dateMay 17, 2016
Grant dateMay 17, 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.

Mechanisms for reducing memory access violations are disclosed. Sets of instructions may be identified and the identified sets of instructions may be re-translated or optimized to generate other sets of instructions. Execution of the other sets of instructions is analyzed to determine whether additional memory access violations occur. When additional memory access violations occur, further sets of instructions may be generated or re-translation/optimization of instructions may be disabled.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus comprising: a memory module to store a plurality of instructions of an application; a processor communicatively coupled to the memory, the processor to: identify a first set of instructions from the plurality of instructions, wherein execution of the first set of instructions is to cause a first out-of-order execution fault; generate a second set of instructions comprising a first instruction and a second instruction from the first set of instructions, wherein the first instruction and the second instruction have a different order in the second set of instruction than in the first set of instructions; replace the first set of instructions with the second set of instructions at a same location in the plurality of instructions as the first set of instructions; determine that the order of the first instruction in the second set of instructions is to cause a second out-of-order execution fault; generate a third set of instruction comprising the second set of instructions, wherein the first instruction in the second set of instructions is reordered to be in the same order as the first instruction was in the first instruction set; and replace the second set of instructions with the third set of instructions. 2. The apparatus of claim 1 , wherein the processor identifies the first set of instructions to cause the first out-of-order execution fault by determining that a first instruction from the first set of instructions and a second instruction from the first set of instructions both access a same memory location and access mutually exclusive portions of the same memory location. 3. The apparatus of claim 1 , wherein the second set of instructions comprises at least one vector instruction. 4. The apparatus of claim 1 , wherein the processor identifies the first set of instructions to cause the first out-of-order execution fault by determining that a first instruction from the first set of instructions and a second instruction from the first set of instructions both access a same memory location and both access a same portion of the same memory location. 5. The apparatus of claim 1 , wherein the processor is to: determine a first memory address for a first memory location of a first instruction of the second set of instructions and a second memory address for a second memory location of a second instruction of the second set of instructions; and determine whether the first address matches the second address. 6. The apparatus of claim 1 , wherein the processor is further configured to: determine whether execution of the third set of instructions causes a third out-of-order execution fault; and when the execution of the third set of instructions causes the third out-of-order execution fault, replace the third set of instructions with the first set of instructions. 7. The apparatus of claim 1 , wherein the processor generates the third set of instructions when a total number of out-of-order execution faults is less than or equal to a threshold. 8. The apparatus of claim 1 , wherein: the first set of instructions is atomic, the second set of instructions is atomic, and the third set of instructions is atomic. 9. A method comprising: identifying a first set of instructions from a plurality of instructions, wherein execution of the first set of instructions causes a first out-of-order execution fault; generating a second set of instructions comprising a first instruction and a second instruction from the first set of instructions, wherein the first instruction and the second instruction have a different order in the second set of instruction than in the first set of instructions; replacing the first set of instructions with the second set of instructions at a same location in the plurality of instructions as the first set of instructions; determining that the order of the first instruction in the second set of instructions causes a second out-of-order execution fault; generate a third set of instructions comprising the second set of instructions, wherein the first instruction in the second set of instructions is reordered to be in the same order as the first instruction was in the first instruction set; and replacing the second set of instructions with the third set of instructions. 10. The method of claim 9 , wherein identifying the first set of instructions causing the first out-of-order execution fault comprises determining that a first instruction from the first set of instructions and a second instruction from the first set of instructions both access a same memory location and access mutually exclusive portions of the same memory location. 11. The method of claim 9 , wherein the second set of instructions comprises at least one vector instruction. 12. The method of claim 9 , wherein identifying the first set of instructions causing the first out-of-order execution fault comprises determining that a first instruction from the first set of instructions and a second instruction from the first set of instructions both access a same memory location and both access a same portion of the same memory location. 13. The method of claim 9 , further comprising: determining a first memory address for a first memory location of a first instruction of the second set of instructions and a second memory address for a second memory location of a second instruction of the second set of instructions; and determining whether the first address matches the second address. 14. The method of claim 9 , further comprising: determining whether execution of the third set of instructions causes a third out-of-order execution fault; and when the execution of the third set of instructions causes the third out-of-order execution fault, replacing the third set of instructions with the first set of instructions. 15. The method of claim 9 , wherein the third set of instructions is generated when a total number of out-of-order execution faults is less than or equal to a threshold. 16. The method of claim 9 , wherein: the first set of instructions is atomic, the second set of instructions is atomic, and the third set of instructions is atomic. 17. A system comprising: a processor communicatively coupled to a memory, the processor to: identify a first set of instructions from a plurality of instructions in the memory, wherein execution of the first set of instructions is to cause a first out-of-order execution fault; generate a second set of instructions comprising a first instruction and a second instruction from the first set of instructions, wherein the first instruction and the second instruction have a different order in the second set of instruction than in the first set of instructions; replace the first set of instructions with the second set of instructions at a same location in the plurality of instructions as the first set of instructions; determine that the order of the first instruction in the second set of instructions is to cause a second out-of-order execution fault; generate a third set of instructions comprising the second set of instructions, wherein the first instruction in the second set of instructions is reordered to be in the same order as the first instruction was in the first instruction set; and replace the second set of instructions with the third set of instructions. 18. The system of claim 17 , wherein the processor identifies the first set of instructions to cause the first out-of-order execution fault by determining that a first instruction from the first set of instructions and a seco

Assignees

Inventors

Classifications

  • Analysis of software for verifying properties of programs (testing of software G06F11/3668) · CPC title

  • Instruction operation extension or modification · CPC title

  • G06F8/4442Primary

    Reducing the number of cache misses; Data prefetching (cache prefetching G06F12/0862) · CPC title

  • G06F9/3834Primary

    Maintaining memory consistency · CPC title

  • Runtime code conversion or 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 US9342284B2 cover?
Mechanisms for reducing memory access violations are disclosed. Sets of instructions may be identified and the identified sets of instructions may be re-translated or optimized to generate other sets of instructions. Execution of the other sets of instructions is analyzed to determine whether additional memory access violations occur. When additional memory access violations occur, further sets…
Who is the assignee on this patent?
Hassanein Wessam M, Kanhere Abhay S, Caprioli Paul, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F8/4442. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 17 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).