Method and apparatus for continued retirement during commit of a speculative region of code

US9535744B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9535744-B2
Application numberUS-201313931860-A
CountryUS
Kind codeB2
Filing dateJun 29, 2013
Priority dateJun 29, 2013
Publication dateJan 3, 2017
Grant dateJan 3, 2017

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 processor, system, and method are described for continued retirement of operations during a commit of a speculative region of program code. For example, one embodiment of a method comprises the operations of identifying a plurality of transactional memory regions in program code, including a first transactional memory region; and retiring one or more of a plurality of operations which follow the first transactional memory region even when a commit operation associated with the first transactional memory region is waiting to complete.

First claim

Opening claim text (preview).

What is claimed is: 1. A method implemented in a processor comprising: identifying a plurality of transactional memory regions in program code, including a first transactional memory region; and retiring one or more of plurality of operations which follow the first transactional memory region even when a commit operation associated with the first transactional memory region is waiting to complete, wherein the commit operation associated with the first transactional memory region includes at least one speculative execution, wherein the one or more of plurality of operations that follow the first transactional memory region are treated as part of the first transactional memory region so that states of architectural registers of the processor from execution of the first transactional memory region and the one or more of the plurality of operations are preserved. 2. The method as in claim 1 wherein the operations are microoperations (uops). 3. The method as in claim 1 further comprising: stalling a retirement operation of a current transactional memory region until a previous transactional memory region is ready to commit. 4. The method as in claim 1 further comprising: detecting an abort operation to abort execution of the plurality of operations following the first transactional memory region; and restoring the architectural registers to a state existing at a start of the first transactional memory region; and discarding results from the first transactional memory region and/or the plurality of operations following the first transactional memory region. 5. The method as in claim 4 wherein restoring the architectural registers comprises reading data associated with the state from a copy-on-write (COW) buffer. 6. The method as in claim 1 further comprising: detecting that retirement of an operation of the plurality of operations following the first transactional memory region would result in the inability to restore the architectural registers to a state existing at a start of the first transactional memory region; and responsively stalling retirement of the operation. 7. The method as in claim 6 wherein detecting comprises detecting that retirement cannot be undone by restoring the architectural registers from a copy-on-write (COW) buffer. 8. A processor comprising: first logic to identify a plurality of transactional memory regions in program code, including a first transactional memory region; and second logic to retire one or more of a plurality of operations which follow the first transactional memory region even when a commit operation associated with the first transactional memory region is waiting to complete, wherein the commit operation associated with the first transactional memory region includes at least one speculative execution, and wherein the first logic and second logic treat the plurality of operations that follow the first transactional memory region as part of the first transactional memory region for the purposes of retiring operations so that states of architectural registers of the processor from execution of the first transactional memory region and the one or more of the plurality of operations are preserved. 9. The processor as in claim 8 wherein the operations are microoperations (uops). 10. The processor as in claim 8 wherein the second logic stalls a retirement operation of a current transactional memory region until a previous transactional memory region is ready to commit. 11. The processor as in claim 8 comprising additional logic to: detect an abort operation to abort execution of the plurality of operations following the first transactional memory region; and restore the architectural registers to a state existing at a start of the first transactional memory region; and discard results from the first transactional memory region and/or the plurality of operations following the first transactional memory region. 12. The processor as in claim 11 further comprising: a copy-on-write (COW) buffer, wherein restoring the architectural registers comprises reading data associated with the state from the COW buffer. 13. The processor as in claim 8 comprising additional logic to: detect that a retire operation of the plurality of operations following the first transactional memory region would result in the inability to restore the architectural registers to a state existing at a start of the first transactional memory region; and responsively stall retirement of the operation. 14. The processor as in claim 13 wherein detecting comprises detecting that retirement cannot be undone by restoring the architectural registers from a copy-on-write (COW) buffer. 15. A system comprising: a memory for storing program code and data; a input/output communication interface for communicating with one or more peripheral devices; a network communication interface for communicatively coupling the system to a network; and a processor comprising: first logic to identify a plurality of transactional memory regions in program code, including a first transactional memory region; and second logic to retire one or more of a plurality of operations which follow the first transactional memory region even when a commit operation associated with the first transactional memory region is waiting to complete, wherein the commit operation associated with the first transactional memory region includes at least one speculative execution, and wherein the first logic and second logic treat the plurality of operations that follow the first transactional memory region as part of the first transactional memory region for the purposes of retiring operations so that states of architectural registers of the processor from execution of the first transactional memory region and the one or more of the plurality of operations are preserved. 16. The system as in claim 15 wherein the operations are microoperations (uops). 17. The system as in claim 15 wherein the second logic stalls a retirement operation of a current transactional memory region until a previous transactional memory region is ready to commit. 18. The system as in claim 15 wherein the processor comprises additional logic to: detect an abort operation to abort execution of the plurality of operations following the first transactional memory region; and restore the architectural registers to a state existing at a start of the first transactional memory region; and discard results from the first transactional memory region and/or the plurality of operations following the first transactional memory region. 19. The system as in claim 18 wherein the processor further comprises: a copy-on-write (COW) buffer, wherein restoring the architectural registers comprises reading data associated with the state from the COW buffer. 20. The system as in claim 15 wherein the processor comprises additional logic to: detect that a retire operation of the plurality of operations following the first transactional memory region would result in the inability to restore the architectural registers to a state existing at a start of the first transactional memory region; and responsively stall retirement of the operation. 21. The system as in claim 20 wherein detecting comprises detecting that retirement cannot be undone by restoring the architectural registers from a copy-on-write (COW) buffer.

Assignees

Inventors

Classifications

  • Physics · mapped topic

  • by using speculative mechanisms · CPC title

  • G06F9/467Primary

    Transactional memory (G06F9/528 takes precedence) · CPC title

  • Transaction processing · CPC title

  • using multiple copies of the architectural state, e.g. shadow registers · 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 US9535744B2 cover?
A processor, system, and method are described for continued retirement of operations during a commit of a speculative region of program code. For example, one embodiment of a method comprises the operations of identifying a plurality of transactional memory regions in program code, including a first transactional memory region; and retiring one or more of a plurality of operations which follow …
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/467. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 03 2017 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).