Browse Prior Art Database

Multisequencing a Single Instruction Stream High-End Machine - Handling Branches with Multiple Threads per Decoder

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

Publishing Venue

IBM

Related People

Ekanadham, K: AUTHOR [+3]

Abstract

Branching is a centralized function that needs to be distributed in Multisequencing a Single Instruction Stream (MSIS). Within MSIS High-End Machine (HEM) advantages can be taken of the centralized single PE environment. The handling of Branch Prediction within MSIS HEM details the steps required within each DECODER to handle the predictions made by the BPM (Branch Prediction Mechanism) when they differ from the putative branch actions that were made during the Z-SEGMENT generation. MSIS is a uniprocessor organization in which a set of processing elements (PEs) working in concert execute Segments of the instruction stream.

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

Multisequencing a Single Instruction Stream High-End Machine - Handling Branches with Multiple Threads per Decoder

      Branching  is  a  centralized  function  that  needs  to  be
distributed in Multisequencing a Single Instruction Stream (MSIS).
Within MSIS High-End Machine (HEM) advantages can be taken of  the
centralized single PE environment.  The handling of Branch Prediction
within MSIS HEM details the steps required within each DECODER to
handle the predictions  made  by  the BPM  (Branch Prediction
Mechanism) when they differ from the putative branch actions that
were made during the  Z-SEGMENT generation.   MSIS is a uniprocessor
organization in which a set of processing elements (PEs) 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 set of instructions assigned to  a  single  PE  can  be
further  delineated  as  THREADS.  A THREAD is a sequence of
instructions in the original conceptual order and  a  Thread is
associated  with a register file which is either real or virtual.
There  are  no  sending  or  receiving  obligations between
instructions  within a THREAD and the THREAD is the smallest unit of
aggregation of instructions from a SEGMENT.

      The sequence of instructions that comprise a THREAD  are  in
conceptual  sequence  but  THREADS  can be interdigitated to form
DECODER STREAMS - the sequence of instructions that are issued by a
single  DECODER.    Such  a  Z-CODE  is  called Out-Of-Sequence (OOS)
Z-CODE.

      The  LC or Level of Conditionality is essentially the number
branches, entry points,  and  serializers,  that  precede  a given
instruction.  A  recovery to a LC is attempted when a branch has been
guessed inc...