Browse Prior Art Database

Efficient Handling of Case-Block-Table Misses Disclosure Number: IPCOM000104786D
Original Publication Date: 1993-May-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 1 page(s) / 38K

Publishing Venue


Related People

Emma, PG: AUTHOR [+1]


Disclosed is a methodology of how to efficiently handle Case Block Table misses.

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

Efficient Handling of Case-Block-Table Misses

      Disclosed is a methodology of how to efficiently handle Case
Block Table misses.

      A Case Block is a high-level language branching construct
commonly used to implement a multi-way branch, based on the value of
an operand, i.e., a Case Block Variable (CBV).  Each Case Block
contains a sequence of conditional branches that test the value of
this operand.  Based on the value of the operand, a particular
address in the Case Block is branched to (this is referred to as the
beginning of the subcase).

      A Case Block Table is a hardware mechanism that provides for
efficient handling of this sequence of conditional branches, by
providing the beginning address of the appropriate subcase as
determined by the value of the CBV.  The Case Block Table effectively
"folds"  the execution of the Case Block resolution into a single
unconditional branch instruction.

      This folding is only performed when past history has been
recorded for the particular invocation of this Case Block and CBV
(i.e., no folding is performed in the event of a CBT miss).  The
probability that a branch that misses in the CBT will be taken is
quite high since previous execution did not encounter this particular
instance of the CBV (on an unsuccessful compare of the CBV, a
conditional branch is taken to a test for the next subcase).

      All conditional branches within a Case Block, that miss in the
CBT, should be predicted as...