Browse Prior Art Database

Branch Prefetch Guessing Algorithm with Program Control

IP.com Disclosure Number: IPCOM000110147D
Original Publication Date: 1992-Oct-01
Included in the Prior Art Database: 2005-Mar-25
Document File: 1 page(s) / 41K

Publishing Venue

IBM

Related People

East, RE: AUTHOR [+3]

Abstract

Disclosed is a RISC-based microprocessor system employing a prefetch unit which prefetches down a guessed path. The guessing algorithm is comprised of two functions. The first function is controlled via the placement of the branch target. For instance a path is guessed taken if the branch target is behind the branch instruction (backward branch). The second function is controlled via software with the use of a bit (reverse guess bit) in the branch instruction field.

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

Branch Prefetch Guessing Algorithm with Program Control

      Disclosed is a RISC-based microprocessor system employing a
prefetch unit which prefetches down a guessed path.  The guessing
algorithm is comprised of two functions.  The first function is
controlled via the placement of the branch target.  For instance a
path is guessed taken if the branch target is behind the branch
instruction (backward branch).  The second function is controlled via
software with the use of a bit (reverse guess bit) in the branch
instruction field.

      The reverse guess bit in the instruction field, when inactive,
has no effect on the guessing algorithm as described below in table
1, thus existing software which always has the reverse guess bit set
inactive functions with no performance loss.  For new software
application which activate  the reverse guess bit, a performance
boost is realized.
***************************************************************
 BRANCH PREFETCH GUESS ALGORITHM
   REVERSE     |   BRANCH          |   GUESSED
  GUESS BIT    |   DIRECTION       |   DIRECTION
---------------|-------------------|---------------------------
INACTIVE       |  FORWARD          |  GUESSED NOT TAKEN
INACTIVE       |  BACKWARD         |  GUESSED TAKEN ACTIVE
ACTIVE         |  FORWARD          |  GUESSED TAKEN
ACTIVE         |  BACKWARD         |  GUESSED NOT TAKEN
*********...