Predicated issue for conditional branch instructions
AssigneeInternational Business Machines Corporation
InventorDavid A. Luick
Life of this patent
Estimating the term…
Abstract
A method and apparatus for executing branch instructions is provided. In one embodiment, the method includes receiving a branch instruction, wherein a first path of the branch instruction branches to a target instruction, and wherein a second path of the branch instruction branches to one or more interceding instructions between the branch instruction and the target instruction. The method further includes issuing the one or more interceding instructions and the target instruction and determining if the branch instruction follows the first path or the second path. Upon determining that the branch instruction follows the first path, the one or more interceding instructions between the branch instruction and the target instruction are invalidated.
Claims8
A method of executing instructions, comprising:
- receiving a branch instruction along with one or more additional instructions scheduled to issue before the branch instruction in a cascaded delayed execution pipeline comprising at least a first pipeline and a second pipeline, wherein beginning of execution of instructions in the second pipeline is delayed with respect to beginning of execution instructions in the first pipeline, wherein a first path of the branch instruction branches to a target instruction, and wherein a second path of the branch instruction branches to one or more interceding instructions between the branch instruction and the target instruction;
- determining if the branch instruction is preresolvable, wherein the branch instruction is preresolvable when one or more instructions preceding the branch instruction do not modify an outcome of the branch instruction;
- upon determining that the branch instruction is preresolvable:
- issuing the branch instruction before issuing the one or more additional instructions to preresolve the branch instruction, wherein the branch instruction is issued to any one of the first pipeline and the second pipeline of the cascaded delayed execution pipeline, and
- scheduling execution of subsequent instructions based on an outcome of the preresolved branch instruction;
- upon determining that the branch instruction is not preresolvable:
- issuing the one or more interceding instructions and the target instruction,
- determining if the branch instruction follows the first path or the second path, and
- upon determining that the branch instruction follows the first path, invalidating the one or more interceding instructions between the branch instruction and the target instruction.
Dependencies are inferred from the claim text.