Browse Prior Art Database

Branch History Table for an Intel 80386

IP.com Disclosure Number: IPCOM000101802D
Original Publication Date: 1990-Sep-01
Included in the Prior Art Database: 2005-Mar-16
Document File: 1 page(s) / 36K

Publishing Venue

IBM

Related People

Kaeli, DR: AUTHOR [+2]

Abstract

Disclosed is a design to enable the prediction of the direction of conditional branch instructions at instruction decode time based on recorded information of previously executed branch instructions.

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

Branch History Table for an Intel 80386

       Disclosed is a design to enable the prediction of the
direction of conditional branch instructions at instruction decode
time based on recorded information of previously executed branch
instructions.

      The effects of a taken branch instruction to the Intel 80386
pipeline severely degrades performance since the pipeline is broken
and many cycles are incurred to refill it.  The design presented
provides a substantial improvement over the current 80386 conditional
branch design by predicting the outcome of the conditional branch at
decode time, based on the instruction address of the branch.  The
prediction is based on recorded history of the previous conditional
branch instruction that hashed into a particular address.  When the
branch is resolved by the execute unit, the branch history table is
updated with the current branch direction.  Using only a single bit
of recorded history, this table substantially improves the
performance of the pipeline.

      The necessary hardware involves adding a 32-bit branch history
table register, a 32-bit adder, and a 32-bit address save register.
Through simulation, the savings achievable with a 5-bit branch
history table running personal computer applications range from .4 to
1 cycle per instruction.

      References
(1)  80386 Programmer's Reference Manual, Intel Corporation, 1986.
(2)  P. G. Emma, E. S. Davidson, "Characterization of Branch and Data
Dependencie...