U.S. patents available from 1976 to present.
U.S. patent applications available from 2005 to present.

Conflict free parallel read access to a bank interleaved branch predictor in a processor

Patent 7139903 Issued on November 21, 2006. Estimated Expiration Date: Icon_subject December 19, 2020. Estimated Expiration Date is calculated based on simple USPTO term provisions. It does not account for terminal disclaimers, term adjustments, failure to pay maintenance fees, or other factors which might affect the term of a patent.

Patent References

Extended address generating apparatus and method
Patent #: 4453212
Issued on: 06/05/1984
Inventor: Gaither ,   et al.

Apparatus for alternatively accessing single port random access memories to implement dual port first-in first-out memory
Patent #: 5371877
Issued on: 12/06/1994
Inventor: Drako, et al.

Method and apparatus for executing and dispatching store operations in a computer system
Patent #: 5664137
Issued on: 09/02/1997
Inventor: Abramson, et al.

Instruction cache configured to provide instructions to a microprocessor having a clock cycle time less than a cache access time of said instruction cache
Patent #: 5752259
Issued on: 05/12/1998
Inventor: Tran

Superscalar microprocessor which delays update of branch prediction information in response to branch misprediction until a subsequent idle clock
Patent #: 5875324
Issued on: 02/23/1999
Inventor: Tran, et al.

Paged memory architecture for a single chip multi-processor with physical memory pages that are swapped without latency
Patent #: 5890013
Issued on: 03/30/1999
Inventor: Nair, et al.

Pipelined instruction cache and branch prediction mechanism therefor Patent #: 6101577
Issued on: 08/08/2000
Inventor: Tran

Inventors

Assignee

Application

No. 09740419 filed on 12/19/2000

US Classes:

712/239, Branch prediction712/240, History table711/2, Addressing extended or expanded memory711/109, Shift register memory712/216, DYNAMIC INSTRUCTION DEPENDENCY CHECKING, MONITORING OR CONFLICT RESOLUTION711/125, Instruction data cache712/238, Branch target buffer710/53Alternately filling or emptying buffers

Examiners

Primary: Pan, Daniel H.

International Classes

G06F 9/42
G06F 9/44

Abstract

A computer system has a processor that has a prediction array that avoids conflicts when the prediction array is accessed twice in once clock cycle to retrieve predictions for two separate conditional branch instructions. The prediction array is included as part of a branch prediction logic circuit that includes a bank control logic coupled to the prediction array. The bank control logic assures the conflict noted above is avoided. The prediction array preferably comprises multiple (e.g., 4) single-ported bank memory elements, each bank comprising multiple predictions. The bank control logic uses information associated with a previously fetched and branch predicted conditional branch instruction to generate a bank number for a current branch instruction. The generated bank number corresponds to one of the banks in the prediction array. The processor preferably fetches two (or more) groups (also called “slots”) of instructions each cycle. Each slot may include one or more branch instructions that need to be branch predicted. Thus, the branch prediction logic circuit first generates a bank number for one of the slots and then generates a bank number for the other slot and uses the bank numbers to retrieve predictions from the multi-bank, single ported prediction array. The bank control logic computes the bank numbers in a manner that assures that no two consecutively generated bank numbers are identical.

Other References

  • Multiple-Block Ahead Branch predictors, A. Seznec et al., ASPLOS VII Oct. 1996 MA, USA, 1996 ACM 0-89791-767-7/96/0010, pp. 116-127.
  • Trace Cache: a Low Latency Approach to High Bandwidth Instruction Fetching, E. Rotenberg et al., 1072-4451/96 1996 IEEE, pp. 24-34.
  • Increasing the Instruction Fetch Rate via Multiple Branch Prediction and a Branch Address Cache, T. Yeh et al., 1993 ACM 0-89791-600-X/93/0007/0067, pp. 67-76.
  • Multiple Branch and Block Prediction, S. Wallace et al., 1997 IEEE, Proceedings of the Third international Symposium on High Performance Computer Architecture, Feb. 1-5, 1997, pp. 1-10, plus cover sheet.
  • Dynamic Path-Based Branch Correlation, R. Nair, 1072-4451/95 1995 IEEE, pp. 15-23.
  • Two-Level Adaptive Training Branch Prediction, Tse-Yu Yeh et al., 1991 ACM 0-89791-460-9/91/0011/0051, pp. 51-61.
  • Multiple-Block Ahead Branch Predictors, A. Seznee et al., ASPLOS VIII Oct. 1996; 1996 ACM 0-89791-767-7/96/0010 (12 p.).
PatentsPlus Images
Enhanced PDF formats
loading...
PatentsPlus: add to cart
PatentsPlus: add to cartSearch-enhanced full patent PDF image
$9.95more info
PatentsPlus: add to cart
PatentsPlus: add to cartIntelligent turbocharged patent PDFs with marked up images
$16.95more info
 
Sign InRegister
Username  
Password   
forgot password?