EP1441284A2

Apparatus and method for efficiently updating branch target address cache

Abstract

A microprocessor with a write queue for a branch target address cache (BTAC) is disclosed. The BTAC is read in parallel with an instruction cache in order to predict a target address of a branch instruction in the accessed cache line. In one embodiment, the BTAC is single-ported; hence, the single port must be shared for reading and writing. When the BTAC needs updating, such as when a branch target address is resolved, the microprocessor stores the branch target address and related information in the write queue. Thus, the write queue potentially enables updating of the BTAC to be delayed until the BTAC is not being read, such as when the instruction cache is idle, a misprediction by the BTAC is being corrected, or a prediction by the BTAC is being overridden. If the write queue becomes full, then it updates the BTAC anyway.

EP1441284A2, drawing sheet 1
Sheet 1 of 12

Term

Term ended

Projected expiry passed 23 October 2023, 2.9 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

14 claims: 2 independent, 12 dependent

  1. 1
    A write queue for improving the efficiency of a branch target address cache (BTAC) in a microprocessor, the write queue comprising:a request input, for receiving a request to update the BTAC, said request including a branch instruction target address;a plurality of storage elements, for storing said requests received on said request input;and control logic, coupled to said plurality of storage elements, for writing one of said requests stored in said plurality of storage elements to the BTAC in response to one or more predetermined conditions.
  2. 8
    A method for updating a branch target address cache (BTAC) in a microprocessor, the method comprising:generating a request to update the BTAC;storing the request in a queue;and updating the BTAC, subsequent to said storing, based on the request.