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.
Claims17
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, wherein the mode of speculative execution comprises one or more of transactional memory (TM), thread level speculation (TLS), and rollback, said operations comprise implementing two distinct modes of speculation to be used concurrently wherein at least two domains are allocated to said respective distinct modes of speculative execution.
A multiprocessor system comprising
- a plurality of processors running threads of program code in parallel in accordance with speculative execution;
- and
- facilities for enabling 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, wherein the first and second modes of speculative execution are selected from amongst:
- transactional memory (TM), thread level speculation (TLS), and rollback;
- and
- a central control unit configured to assign identification numbers to software threads undergoing speculative execution, said central control unit managing speculation identification numbers with respect to a pool of possible speculation identification numbers by dividing the pool into domains, each domain corresponding to a respective mode of speculative execution.
Dependencies are inferred from the claim text.