Browse Prior Art Database

Method for increasing target density in a BTB

IP.com Disclosure Number: IPCOM000128938D
Publication Date: 2005-Sep-21
Document File: 3 page(s) / 45K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for increasing target density in a branch-target buffer (BTB). Benefits include improved functionality and improved performance.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 54% of the total text.

Method for increasing target density in a BTB

Disclosed is a method for increasing target density in a branch-target buffer (BTB). Benefits include improved functionality and improved performance.

Background

              Conventionally, microprocessors include a branch-prediction mechanism as a performance optimization. A structure commonly used in a branch-prediction unit (BPU) is a BTB. It stores target addresses that are subsequently used to steer the instruction fetch unit (IFU). A BTB is accessed using the instruction-pointer (IP) address, producing a branch-target address that is routed to the IFU.

General description

              The disclosed method describes an optimization which enables the IFU to more accurately speculate on the direction and target of branches, thereby eliminating the branch-resolution latency that would otherwise be incurred.

Advantages

              The disclosed method provides advantages, including:
•             Improved functionality due to providing an optimized BTB format that provides significant improvement in branch-target density

•             Improved functionality due to providing flexibility by using three variants of the IP
•             Improved performance due to increased branch-target density without the use of a large, slow adder

Detailed description

              The method is a branch-target design that significantly increases the effective target density within the BTB. The method has the effect of supporting either higher branch-prediction accuracy using the same size BTB or similar performance from a significantly smaller BTB.

              The branch-targets stored in a BTB are typically full virtual or physical addresses which are copied to the IP, changing the instruction flow-control. However, a large percentage of branches are to an address a small distance from the current IP. This fact can be exploited in that instead of storing a complete address, a branch-target can instead consist of an offset from the current IP. This offset is then combined with the current IP to produce a complete branch-target. This branch-offset is significantly smaller than a full address and increases the branch-target density in the BTB.

              Additionally, a single BTB-entry can be overloaded, enabling it to store either a large absolute target-address or multiple...