Browse Prior Art Database

Flush using issue throttling and next-to-complete issue

IP.com Disclosure Number: IPCOM000012665D
Original Publication Date: 2003-May-19
Included in the Prior Art Database: 2003-May-19
Document File: 2 page(s) / 64K

Publishing Venue

IBM

Abstract

Next-to-complete group flushing is a processor core debug mechanism in which the instruction completion unit flushes all instructions from the completion pointer onward for a given execution thread. Disclosed is a method for performing NTC flushes in the presence of load and store unsafe indicators from the Load-Store unit, while allowing for forward progress while the flush request is outstanding.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 2

Flush using issue throttling and next-to-complete issue

In a speculative, out-of-order processor, a means of flushing all active instructions in the completion table is desirable for debug reasons. This type of debug flush flushes the next-to-complete group of instructions plus any younger, speculative groups. In the past, the mechanism used to perform NTC flushes has relied upon forcing the load-store unit (LSU) to reject newly issued instructions, since there is a subset of load-store instructions that cannot be legally flushed once they have reached the point of being next to complete. If an unsafe instruction were being issued around the time of an NTC flush that was in progress, it would be possible to accidentally flush the unsafe instruction.

The problem with the "force-reject" approach is that the processor core may hang while the flush request is active, since the forcing of LSU rejects may keep some or all of the instructions in the next-to-complete group from issuing and finishing. Thus, cases are introduced when a group can neither be flushed nor completed.

Disclosed is a new approach to NTC flushing in an SMT processor core, involving: - identification of an outstanding NTC flush request - throttling of that thread's instruction issue to the LSU, instead of relying upon the LSU to reject newly issued instructions - periodic issuing of NTC lsu instructions for that thread, to ensure forward progress. - after any periodic LSU instruction issue, a wait state until the LSU determines if the instruction can be flushed or not. - flushing when safe, from...