Patent ID: 8635436

Claim:
A method for tracking stall reasons comprising: receiving, by a completion unit of a processor, a plurality of instructions identified by a group identifier and each separate instruction identified by a separate individual identifier; adding, by the completion unit, the group identifier as an entry to a group identifier table and adding a separate entry for each of the plurality of separate individual identifiers to the entry for the group identifier; tracking, by the completion unit, within the group identifier table, an oldest uncompleted group entry; tracking, by the completion unit, within each group identifier entry, an oldest unfinished instruction entry; receiving, by the completion unit from a plurality of functional units of the processor, at least one finish report from among a plurality of finish reports identifying a particular group identifier and a particular individual identifier; marking, by the completion unit, a particular entry for the particular individual identifier in the particular entry for the particular group identifier as finished; responsive to the particular entry tracked as the oldest unfinished instruction entry, sending, by the completion unit, a next to finish indicator to a completion unit of the processor; responsive to the particular entry tracked as a last unfinished instruction entry of the oldest uncompleted group entry, sending, by the completion unit, a complete indicator to the completion unit; and during a pipeline stall in the processor, repeating the following steps until the complete indicator of completion of the next to complete instruction group is received from the completion unit of the processor: receiving, from the completion unit, the next to finish indicator of the finish of the oldest unfinished instruction from among a plurality of instructions of the next to complete instruction group; receiving, from the plurality of functional units of the processor, the plurality of finish reports indicating completion reasons for a plurality of separate instructions; and determining at least one stall reason from among a plurality of stall reasons for the oldest instruction from a selection of completion reasons from among a selection of finish reports aligned with the next to finish indicator from among the plurality of finish reports.