A tag monitoring system for assigning tags to instructions. A source supplies
instructions
to be executed by a functional unit. A register file stores information required
for the execution of each instruction. A queue having a plurality of slots containing
tags which are used for tagging the instructions. The tags are arranged in the
queue in an order specified by the program order of their corresponding instructions.
A control unit monitors the completion of executed instructions and advances the
tags in the queue upon completion of an executed instruction. The register file
stores an instruction's information at a location in the register file defined
by the tag assigned to that instruction. The register file also contains a plurality
of read address enable ports and corresponding read output ports. Each of the slots
from the queue is coupled to a corresponding one of the read address enable ports.
Thus, the information for each instruction can be read out of the register file
in program order.