摘要 |
A method for forwarding operands directly between instructions operates in a computer central processing unit. Values for registers, condition codes, stack locations and memory storage locations are routed directly from the program instructions or microcode that alter them to the instructions that use those operands. Instructions that have received all needed operands are started and their resulting output operands are forwarded to other instructions. With direct forwarding of operands, normal locations for operands may often be skipped so that simpler designs can be employed in constructing the operand storage for register files and stacks. Operands receiving newer values never appear in program-visible locations if the prior values were forwarded to all instructions that might need them and those receiving instructions are completed. In executing program loops, loop-dependent variables are identified. A method is shown whereby multiple loop-dependent operands are computed substantially simultaneously. In favorable circumstances multiple iterations of one or more loops are executed in parallel. The number of iterations is computed and then governs the number of loop iterations executed. Storage of results in architected, generally available areas is avoided where operands are no longer needed after loop iteration execution. |