Conditional Control Flow through Storage
Original Publication Date: 1994-Sep-01
Included in the Prior Art Database: 2005-Mar-27
Publishing Venue
IBM
Related People
Agarwal, RC: AUTHOR [+5]
Abstract
Adding a new port for processing condition codes in the branch unit of a processor can be complex and expensive. This invention exploits an alternative mechanism for communicating a condition code to the branch unit, namely through storage. Using storage exploits the existing mechanism for transporting condition codes in the processor's fixed-point unit, providing a vital function at virtually no cost.
Conditional Control Flow through Storage
Adding a new
port for processing condition codes in the branch
unit of a processor can be complex and expensive. This invention
exploits an alternative mechanism for communicating a condition code
to the branch unit, namely through storage.
Using storage exploits
the existing mechanism for transporting condition codes in the
processor's fixed-point unit, providing a vital function at virtually
no cost.
Conditional
execution in a program, which results from
statements such as IF-THEN-ELSE, requires a processor to use the
result of an operation to influence the choice between multiple
sequences of instructions. A condition
code is a common method of
communicating the result of an operation to the branch unit of the
processor, which then can select the next instruction sequence to
execute. The functional units of
superscalar processors, such as
integer and floating-point units, generate a condition code during an
operation. The condition code is then passed
to the branch unit,
which uses the condition code to determine the outcome of the
conditional branching operation.
As additional
functional units are added, allowing every
functional unit to modify directly a single condition register in the
branch unit becomes complicated and expensive.
Additional ports must
be added to the branch unit, and logic must added to the branch unit
to keep track of which instructions dispatched to the new functional
units may modify the condition register so that the proper interlocks
may be provided. Furthermore, expensive
paths (that would not
otherwise be needed) must be provided to carry the condition codes
from the new functional units back to the branch unit. For these
re...