Browse Prior Art Database

Method for dynamic lockout avoidance in a SMT processor Disclosure Number: IPCOM000033913D
Original Publication Date: 2005-Jan-04
Included in the Prior Art Database: 2005-Jan-04
Document File: 2 page(s) / 32K

Publishing Venue



In a simultaneous multi-threaded (SMT) processor, a thread may become "locked out" if it is blocked from making forward progress by the other thread(s). Disclosed is a method to dynamically avoid thread "lockout" by guaranteeing that each thread make forward progress once a trigger event is activated for the thread. The trigger event can be either targeted to a known problem scenario or can be generic and simply engage periodically.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 2

Method for dynamic lockout avoidance in a SMT processor

In a simultaneous multi-threaded (SMT) processor, each thread may compete for shared resources presenting opportunities for one thread to starve out another thread by preventing forward progress through the instruction stream.- this can be called thread "lockout", since the starved thread is blocked from making forward progress. Much effort has been spent in the prior art to avoid such lockout scenarios, but existing solutions generally have limitations since problem scenarios must either be anticipated, or are handled with coarse grain detection of no forward progress.

To avoid thread "lockout", the present proposal allows for a thread forward progress mode be activated based on a customizable trigger. The trigger is configurable based on available processor debug facilities. For processors with internal state based triggering capability, the mechanism can be activated based on identified conditions that indicate a potential lockout, allowing for precision activation with negligible performance impact. For processors with limited debug and internal triggering capability, the mechanism can be enabled based on a simple cycle counter - e.g. engage every 500 processor cycles.

Once a trigger is activated for a particular thread, the processor will enter a mode to guarantee forward progress by the selected thread while halting the other thread(s). This guarantee of forward progress is made by staying in this mode until the locked out thread has passed all windows where it could be flushed or rejected from the pipeline. If the thread is flushed or rejected, it will be retried until it is successfully makes forward progress.

This invention allows the processor architects to focus on desired performance characteristics of shared resource arbitration without needing to conceive of every possible resource lockout scenario. The mechanism can optionally be disabled in simulation and in hardware by default to allow the architects to identify existing lockout scenarios and analyze them for potential impact to desired thread performance. The mechanism can then be enabled if required do to unanticipated lockouts found during laboratory testing or even at a customer location once the...