Browse Prior Art Database

Multisequencing a Single Instruction Stream using Type-B Branches to Reduce Branch Wrong Guess Penalty

IP.com Disclosure Number: IPCOM000104472D
Original Publication Date: 1993-Apr-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 4 page(s) / 183K

Publishing Venue

IBM

Related People

Ekanadham, K: AUTHOR [+4]

Abstract

MSIS is a uniprocessor organization in which a set of processing elements (PE) working in concert execute Segments of the instruction stream. The Segments are either P-Segments, normal uniprocessor instruction stream portions, that are processed in the E-MODE of MSIS and produce Z-Segments, or the Z-Segments that are processed in Z-MODE by MSIS. The main difference between E-MODE and Z-MODE is that during E-MODE each PE sees all instructions in the Segment and executes the ones that are assigned to it, but during Z-MODE, a PE only sees the instructions assigned to it.

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

Multisequencing a Single Instruction Stream using Type-B Branches to Reduce Branch Wrong Guess Penalty

      MSIS is a uniprocessor organization in which a set of
processing elements (PE) working in concert execute Segments of the
instruction stream.  The Segments are either P-Segments, normal
uniprocessor instruction stream portions, that are processed in the
E-MODE of MSIS and produce Z-Segments, or the Z-Segments that are
processed in Z-MODE by MSIS.  The main difference between E-MODE and
Z-MODE is that during E-MODE each PE sees all instructions in the
Segment and executes the ones that are assigned to it, but during
Z-MODE, a PE only sees the instructions assigned to it.

      As all PEs see all instructions in E-MODE, each PE can create
the Z-CODE it will require to re-execute the Segment as a Z-Segment,
the Z-CODE being stored in the Z-CACHE, and associated with
instructions in the Z-CODE are S-LISTS and D-LISTS as appropriate.
An S-LIST instructs the PE, in the Z-MODE, that one or more of the
source registers in an instruction assigned to it is set by another
instruction that is executed on another PE, an S-LIST is a receiving
obligation.  The D-LIST instructs the PE in the Z-MODE as to the
names of PEs that require the values of the register(s) that are
being set by an instruction that is assigned to it.  A D-LIST entry
is a sending obligation.

      The overall process of handling branches, PARADIGM A, in MSIS
involves three basic steps:

o   Derive the Z-CODE for the execution sequence.

o   Monitor the branch actions that allows the typing of the
    branches.

o   Re-derive the Z-CODE for the execution sequence with the known
    branch typing.

This procedure can involve certain refinements that permit simplified
implementations based on the classification of branches when they are
first encountered.  Branches can be classified into two types:

o   Branches that have a single target - TYPE A

o   Branches with more that one target - TYPE B

          Two important sub-classes of TYPE B branches are:

    -   TYPE B sub 1

              Branches with two targets that can be handled in MSIS
        via a DHT approach.  The alternate computations from the
        predicate must be equally accessible by the Z-SEGMENT and the
        skipping of the Z-CODE is within capabilities of Z-CODE
        constructs.

    -   TYPE B sub 2

              Branches with two targets that can be handled in MSIS
        via unrolling the execution sequence and replicating Z-CODE.
        Here the execution sequence must exhibit repeated code which
        can be used to create the unrolled Z-SEGMENT.

Within this classification scheme the branches may still be
determined to be unconditional or conditional based on the
instruction itself.

      The problem of BWG (Branch Wrong Guess) in the Z-MODE of MSIS
is that a particular...