Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Debug Dispatch, NTC, NTCP1 flushes by thread

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

Publishing Venue

IBM

Abstract

For hardware debug in an SMT processor core, a means is needed to flush instructions in a thread specific manner, without flushing the other thread. This debug flushing could be done at various points in the instruction pipeline. Disclosed is a method for debug flushing in a thread specific manner at Dispatch, Completion, or prior to Completion, from various debug sources.

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 3

Debug Dispatch, NTC, NTCP1 flushes by thread

The Disclosed method for debug flushes supports a variety of flush sources. One source is the chip/core RAS (Recoverability and Serviceability logic), which contains debug methods and state machines for the entire chip/core. Another source of flushes is a local WAT block (Work-Around Trigger block). A third source is a TTR (Thread Timeout Register), which detects potential starvation of a thread and flushes the other thread(s) to insure fairness. These sources are shown in the Figure, sourcing thread specific flush requests to both Dispatch logic and the Thread Status blocks.

In the Dispatch logic, flush requests are handled on a per-thread basis, and the flush performed is of the Dispatch pipeline and earlier pipeline stages, including Instruction Fetch and Instruction Decode. Thus, instructions can be flushed and refetched before ever entering the Completion Table, issuing, or beginning execution. This is of particular advantage, because it means that if a flush must happen for debug reasons, it can be done with minimal impact to machine resources. In the Dispatch logic block, the flush requests are held onto until the thread that needs to be flushed has a group of instructions at Dispatch. It is at this point that the Dispatch-flush is performed, since the address to refetch to is now available.

Debug flush requests can also be routed to thread status logic blocks, and these flushes are referred to as Next-To-Comple...