Multiprocessor system with multiple concurrent modes of execution
AssigneeInternational Business Machines Corporation
InventorsDaniel Ahn, Luis H. Ceze, Dong Chen, Alan Gara, Philip Heidelberger, Martin Ohmacht
Life of this patent
Estimating the term…
Abstract
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.
Claims25
A computer method comprising carrying out operations in a multiprocessor system, the operations comprising:
- running at least one program thread within at least one processor of the system;
- recognizing a need for speculative execution in the thread;
- allocating a speculation ID to the thread;
- 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
A computer method, wherein the operations comprise carrying out operations in a multiprocessor system, the operations comprising:
- allocating at least one identification number to a thread executing speculatively;
- maintaining directory based speculation control responsive to the identification number;
- counting instances of use of the identification number being active in the multiprocessor system;
- and
- preventing the 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.
A multiprocessor system comprising
- a plurality of processors adapted to run threads of program code in parallel in accordance with speculative execution;
- and
- facilities adapted to enable a first thread to operate in accordance with a first mode of speculative execution and a second thread to operate in accordance with a second mode of speculative execution, the first and second modes of speculative execution being different from one another and concurrent.
Dependencies are inferred from the claim text.