×

Branch history cache

  • US 6,314,493 B1
  • Filed: 02/03/1998
  • Issued: 11/06/2001
  • Est. Priority Date: 02/03/1998
  • Status: Expired due to Fees
First Claim
Patent Images

1. A cache system for a processor having a multi-stage execution pipeline, the system comprising:

  • a first cache for storing instructions that can be executed in said pipeline;

    a virtual second cache for storing a subset of said instructions in said first cache; and

    a virtual history look-up table for storing a plurality of relations, each one of said relations relating a first instruction in said first cache to a second instruction in said second cache such that if said first instruction is in a stage of said pipeline then said second instruction is predicted to be needed in said stage of said pipeline a predetermined time later;

    wherein said history look-up table is operable to represent said relations a plurality of entries, each one of said entries including an address of said first instruction and a branch-to indicator indicating an address of said instruction;

    a directory for said first cache connected with said history look-up table and connected so as to receive an actual branch-to address from said pipeline, said directory being operable to provide an output equal to said actual branch-to address if a corresponding branch-to instruction is stored in said first cache, and being operable to set said output equal to a third signal indicating that no instruction corresponding to said actual branch-to address is stored in said first cache if said corresponding branch-to instruction is not stored in said first cache;

    a comparator for comparing a guess represented by one of said branch-to address indicators with output from said directory, said comparator indicating a correct guess if said guess matches said output from said directory and an incorrect guess if said guess does not match said output from said directory; and

    a selector, connected between said history look-up table and said comparator and connected to receive said actual branch-to address, for selecting either said guess or said actual branch-to address;

    said comparator also being operable to compare said actual branch-to address with said output from said directory, said comparator being operable to provide an output indicative of a hit if said actual branch-to address matches said output from said directory, and being operable to provide an output indicative of a miss if said actual branch-to address does not match said output from said directory.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×