Browse Prior Art Database

GCT allocation mode for more sequential gtag usage Disclosure Number: IPCOM000012666D
Original Publication Date: 2003-May-19
Included in the Prior Art Database: 2003-May-19
Document File: 3 page(s) / 93K

Publishing Venue



In an SMT processor core utilizing a dynamically shared completion table, new Dispatch groups can be assigned to any free entry in the completion table, with no particular order between youngest and oldest group. A method is disclosed for more sequential group tag allocation when possible, in order to facilitate functional debug of the processor.

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

GCT allocation mode for more sequential gtag usage

Due to limited debug visibility of processor core facilities in a lab environment, the history of which groups where allocated and when becomes very difficult when a dynamically shared completion table is utilized. Disclosed is a mechanism to sequentially order allocation groups in a dynamically shared GCT environment. This mechanism for selecting the next to be allocated group number into a free list includes: - a means of retaining the last allocated instruction group - a sequential incrementer of the last allocated group number - a "preferred gtag" mode, wherein the incremented group number is chosen if and only if it is available. Otherwise any available gtag may still be selected. This allows group tag (gtag) ordering to often be sequential. - an "only use preferred gtag" mode, wherein only the next sequential gtag can be chosen. This mode can lead to performance loss, but could be used to aid debug or to work around any lab problems with non-sequential gtag use.

Figure 2 shows the hardware stages needed for this function. A register of valid bits are kept to indicate which, if any, groups are currently in use in the global completion table (GCT). These valids feed a priority selector, which performs a binary search on the invalid groups to pick a new group number to load into the free list for a subsequent allocation. This selection tends to favor low-numbered group tags, and in some instances can cause frequent re-use of group tags, making lab debug efforts more difficult. Also shown in Figure 2 is a free list re...