Maximum throughput or "back-to-back" scheduling of dependent instructions
in a pipelined processor is achieved by maximizing the efficiency in which
the processor determines the availability of the source operands of a
dependent instruction and provides those operands to an execution unit
executing the dependent instruction. These two operations are implemented
through number of mechanisms. One mechanism for determining the
availability of source operands, and hence the readiness of a dependent
instruction for dispatch to an available execution unit, relies on the
prospective determination of the availability of a source operand before
the operand itself is actually computed as a result of the execution of
another instruction. Storage addresses of the source operands of an
instruction are stored in a content addressable memory (CAM). Before an
instruction is executed and its result data written back, the storage
location address of the result is provided to the CAM and associatively
compared with the source operand addresses stored therein. A CAM match and
its accompanying match bit indicate that the result of the instruction to
be executed will provide a source operand to the dependent instruction
waiting in the reservation station. Using a bypass mechanism, if the
operand is computed after dispatch of the dependent instruction, then the
source operand is provided directly from the execution unit computing the
source operand to a source operand input of the execution unit executing
the dependent instruction.