Utilization of register checkpointing mechanism with pointer swapping to resolve multithreading mis-speculations

US9940138B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9940138-B2
Application numberUS-42076209-A
CountryUS
Kind codeB2
Filing dateApr 8, 2009
Priority dateApr 8, 2009
Publication dateApr 10, 2018
Grant dateApr 10, 2018

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.

Methods and apparatus are disclosed for using a register checkpointing mechanism to resolve multithreading mis-speculations. Valid architectural state is recovered and execution is rolled back. Some embodiments include memory to store checkpoint data. Multiple thread units concurrently execute threads. They execute a checkpoint mask instruction to initialize memory to store active checkpoint data including register contents and a checkpoint mask indicating the validity of stored register contents. As register contents change, threads execute checkpoint write instructions to store register contents and update the checkpoint mask. Threads also execute a recovery function instruction to store a pointer to a checkpoint recovery function, and in response to mis-speculation among the threads, branch to the checkpoint recovery function. Threads then execute one or more checkpoint read instructions to copy data from a valid checkpoint storage area into the registers necessary to recover a valid architectural state, from which execution may resume.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus, comprising: a plurality of thread unit circuits to concurrently execute a plurality of threads, each of the plurality of thread unit circuits being capable of executing a checkpoint write instruction to update data stored in a memory storage area after execution of a checkpoint mask instruction; and the memory storage area comprising an active checkpoint storage area and a most recent valid checkpoint storage area, wherein the active checkpoint storage area is to store, in response to the checkpoint write instruction, first data for the checkpoint write instruction encountered during execution of one of the plurality of threads, the first data corresponding to register content data being written by the checkpoint write instruction; wherein the active checkpoint storage area is also to store second data for the checkpoint write instruction, the second data having a state indicative of a validity status of the register content data for the checkpoint write instruction, wherein an active checkpoint pointer, which points to the active checkpoint storage area, is to become a most recent valid checkpoint pointer, which points to the most recent valid checkpoint storage area, in response to a determination that all register contents corresponding to execution of multiple instances of the checkpoint write instruction by any of the plurality of thread unit circuits have been updated and all register contents corresponding to execution of the multiple instances of the checkpoint write instruction are indicated as completely valid by a checkpoint mask stored in the active checkpoint storage area. 2. The apparatus of claim 1 , wherein each of the plurality of thread unit circuits is further capable of executing the checkpoint mask instruction to initialize the state of said second data. 3. The apparatus of claim 2 , wherein executing the checkpoint mask instruction initializes the state of said second data for an active checkpoint. 4. The apparatus of claim 1 , wherein each of the plurality of thread unit circuits is further capable of executing a checkpoint read instruction to copy the first data from said memory storage area into a register. 5. The apparatus of claim 1 , wherein the memory storage area is also to store third data for a checkpoint recovery function. 6. The apparatus of claim 5 , wherein said third data corresponds to an instruction pointer for said checkpoint recovery function responsive to a recovery function instruction encountered during execution of said one of the plurality of threads. 7. A multi-threaded processor, comprising: a plurality of thread unit circuits to concurrently execute a plurality of threads, each of the plurality of thread unit circuits being capable of executing a checkpoint write instruction to update data stored in a memory storage area after execution of a checkpoint mask instruction and each of the plurality of thread unit circuits being further capable of executing the checkpoint mask instruction; and an execution unit of one of the plurality of thread unit circuits, responsive to the checkpoint mask instruction, to initialize the memory storage area comprising an active checkpoint storage area and a most recent valid checkpoint storage area, wherein the active checkpoint storage area is to store, in response to the checkpoint write instruction, at least first data and second data; wherein said execution unit, responsive to the checkpoint write instruction, is to store the first data corresponding to register content data being written by the checkpoint write instruction, and store the second data having a state indicative of a validity status of the register content data for the checkpoint write instruction, and wherein an active checkpoint pointer, which points to the active checkpoint storage area, is to become a most recent valid checkpoint pointer, which points to the most recent valid checkpoint storage area, in response to a determination that all register contents corresponding to execution of multiple instances of the checkpoint write instruction by any of the plurality of thread unit circuits have been updated and all register contents corresponding to execution of the multiple instances of the checkpoint write instruction are indicated as completely valid by a checkpoint mask stored in the active checkpoint storage area. 8. The processor of claim 7 , wherein each of the plurality of thread unit circuits is further capable of executing a checkpoint read instruction to copy the first data from said memory storage area into a register. 9. The processor of claim 8 , wherein each of the plurality of thread unit circuits is further capable of executing a recovery function instruction to store, in said memory storage area, third data comprising an instruction pointer for a checkpoint recovery function. 10. A machine-implemented method for speculatively executing a plurality of threads, the method comprising: executing a checkpoint mask instruction to initialize a memory storage area comprising an active checkpoint storage area and a most recent valid checkpoint storage area, wherein the active checkpoint storage area is to store at least first data and second data in response to a checkpoint write instruction capable of updating data stored in the memory storage area; and executing the checkpoint write instruction to store the first data corresponding to register content data being written by the checkpoint write instruction and to store the second data having a state indicative of a validity status of the register content data for the checkpoint write instruction, wherein an active checkpoint pointer, which points to the active checkpoint storage area, is to become a most recent valid checkpoint pointer, which points to the most recent valid checkpoint storage area, in response to a determination that all register contents corresponding to execution of multiple instances of the checkpoint write instruction by any of a plurality of thread unit circuits have been updated and all register contents corresponding to execution of the multiple instances of the checkpoint write instruction are indicated as completely valid by a checkpoint mask stored in the active checkpoint storage area. 11. The method of claim 10 , further comprising: executing a recovery function instruction to store, in said memory storage area, third data comprising an instruction pointer for a checkpoint recovery function. 12. The method of claim 11 , further comprising: executing a checkpoint read instruction to copy the first data from said memory storage area into a register. 13. The method of claim 12 , wherein executing said checkpoint read instruction is a result of branching to a location specified by the instruction pointer for said checkpoint recovery function in response to a mis-speculation among the plurality of threads. 14. A machine-implemented method for mis-speculation recovery among a plurality of threads, the method comprising: executing a recovery function instruction to store, in a memory storage area comprising an active checkpoint storage area and a most recent valid checkpoint storage area, prior to a checkpoint write instruction capable of updating data stored in the memory storage area after execution of a checkpoint mask instruction, first data comprising an instruction pointer for a checkpoint recovery function; branching to a location specified by the instruction pointer for said checkpoint recovery function in response to a mis-speculation among the plurality of threads; and executing a checkpoint read instruction to copy second data from said memory storage area into a

Assignees

Inventors

Classifications

  • Speculative instruction execution · CPC title

  • G06F9/3863Primary

    using multiple copies of the architectural state, e.g. shadow registers · CPC title

  • Saving, restoring, recovering or retrying · CPC title

  • from multiple instruction streams, e.g. multistreaming · CPC title

  • LOAD or STORE instructions; Clear instruction · 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 US9940138B2 cover?
Methods and apparatus are disclosed for using a register checkpointing mechanism to resolve multithreading mis-speculations. Valid architectural state is recovered and execution is rolled back. Some embodiments include memory to store checkpoint data. Multiple thread units concurrently execute threads. They execute a checkpoint mask instruction to initialize memory to store active checkpoint da…
Who is the assignee on this patent?
Lopez Pedro, Madriles Carlos, Martinez Alejandro, and 6 more
What technology area does this patent fall under?
Primary CPC classification G06F9/3863. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 10 2018 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).