Detecting deadlocks involving inter-processor interrupts
US-2015378791-A1 · Dec 31, 2015 · US
US9501333B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9501333-B2 |
| Application number | US-201314143783-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 30, 2013 |
| Priority date | Jan 8, 2010 |
| Publication date | Nov 22, 2016 |
| Grant date | Nov 22, 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 multiprocessor system supports multiple concurrent modes of speculative execution. Speculation identification numbers (IDs) are allocated to speculative threads from a pool of available numbers. The pool is divided into domains, with each domain being assigned to a mode of speculation. Modes of speculation include TM, TLS, and rollback. Allocation of the IDs is carried out with respect to a central state table and using hardware pointers. The IDs are used for writing different versions of speculative results in different ways of a set in a cache memory.
Opening claim text (preview).
The invention claimed is: 1. A computer-implemented method for carrying out operations in a multiprocessor system, the method comprising: recognizing by a processor of the multiprocessor system a need for speculative execution of a program thread running within the processor; allocating at least one speculation identification (ID) number to the program thread running speculatively; maintaining by the at least one processor, a directory based speculation control responsive to the speculation identification number; counting by the at least one processor instances of use of the speculation identification number associated with the thread being active in the multiprocessor system; and preventing by the at least one processor, the speculation identification number from being allocated to a new thread until the counting indicates no instances of use of that ID being active in the system, said operations further comprising: counting instances of a group of the speculation IDs together; allowing IDs of the group to become available for allocation responsive to the counting; managing a pool of speculation IDs in accordance with a plurality of domains, such that IDs are allocated independently for each domain; and allocating a mode of speculative execution to each domain. 2. The method of claim 1 , wherein the operations comprise: maintaining a central state table indicating a state of the speculation ID. 3. The method of claim 2 , wherein the state table indicates one of the following states for the speculation ID: available, committed, speculative, invalid. 4. The method of claim 1 , wherein the mode of speculative execution comprises one or more of transactional memory (TM), thread level speculation (TLS), and rollback. 5. The method of claim 1 , wherein the operations comprise implementing two distinct modes of speculation to be used concurrently. 6. The method of claim 5 , wherein at least two domains are allocated to respective different modes of speculative execution. 7. The method of claim 1 , wherein the managing and allocating are conducted within a cache memory of the system. 8. A multiprocessor system comprising a plurality of processors, the processors running threads of program code in parallel in accordance with speculative execution; and each processor of said plurality having a cache, each processor configured to: recognize a need for speculative execution of a program thread running within the processor; allocate at least one speculation identification number to the program thread executing speculatively; maintain in the cache, a directory based speculation control responsive to the speculation identification number; count instances of use of the speculation identification number being active in the multiprocessor system; and prevent the speculation identification number from being allocated to a new thread until the counting indicates no instances of use of that ID being active in the system, said processor further configured to perform operations comprising: count instances of a group of the speculation IDs together; and allow IDs of the group to become available for allocation responsive to the counting; manage a pool of speculation IDs in accordance with a plurality of domains, such that IDs are allocated independently for each domain; and allocate a mode of speculative execution to each domain. 9. The system of claim 8 , wherein the operations comprise: maintaining a central state table indicating a state of the speculation ID. 10. The system of claim 9 , wherein the state table indicates one of the following states for the speculation ID: available, committed, speculative, invalid. 11. The system of claim 8 , wherein the mode of speculative execution comprises one or more of transactional memory (TM), thread level speculation (TLS), and rollback. 12. The system of claim 8 , wherein the operations comprise implementing two distinct modes of speculation to be used concurrently. 13. The system of claim 12 , wherein at least two domains are allocated to respective different modes of speculative execution. 14. The system of claim 8 , wherein the managing and allocating are conducted within a cache memory of the system.
in hierarchically structured memory systems, e.g. virtual memory systems · CPC title
Deadlock detection or avoidance · CPC title
for multiprocessing or multitasking · CPC title
with a shared cache · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.