Browse Prior Art Database

Conditional Control Flow through Storage

IP.com Disclosure Number: IPCOM000113550D
Original Publication Date: 1994-Sep-01
Included in the Prior Art Database: 2005-Mar-27
Document File: 2 page(s) / 75K

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.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

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...