# US 7,609,582 B2 · Branch target buffer and method of use

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,609,582 B2
- Document ID: US7609582B2
- Status: Granted
- Kind: B2
- Application number: 12/052,762
- Filed: 2008-03-21
- Published: 2008-07-10
- Granted: 2009-10-27
- Earliest claimed: 2004-07-16
- Assignees: Samsung Electronics Co., Ltd.
- Inventors: Gi Ho Park
- Web page: https://patentgrep.com/patent/US7609582B2

## CPC

- G06F 9/3806: {using address prediction, e.g. return stack, branch history buffer}
- G06F 9/3844: {using dynamic branch prediction, e.g. using branch history tables}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A branch target buffer (BTB) storing a data entry related to a branch instruction is disclosed. The BTB conditionally enables access to the data entry in response to a word line gating circuit associated with a word line in the BTB. The word line gating circuit stores a word line gating value derived from branch history data related to the instruction. Additionally, a branch prediction unit and a processor incorporating the BTB are disclosed, along with methods for operating the BTB.

## Claims

### Claim 1

A processor, comprising:
an instruction fetch unit to receive an instruction and provide a corresponding instruction address;
a branch prediction unit to receive the instruction address and provide a predicted address to the instruction fetch unit; and,
an instruction decoder/execution unit to receive the instruction, provide a decoded instruction, and provide an updated address in response to execution of the decoded instruction;
wherein the branch prediction unit comprises:
a branch history unit to store branch history data;
branch prediction logic to receive the instruction address and the updated address, to provide the predicted address, and to update the branch history data; and,
a branch target buffer to receive the instruction address and output a data entry, the branch target buffer comprising:
a memory array comprising gated word lines, each gated word line connected to a corresponding word line gating circuit comprising a memory circuit storing a word line gating value derived from the branch history data.

### Claim 2 (depends on 1)

The processor of claim 1, wherein the decoder/execution unit comprises a plurality of execution paths, each execution path comprising a decoder and an execution unit.

### Claim 3 (depends on 2)

The processor of claim 2, wherein the processor is a superscalar processor.

### Claim 4 (depends on 3)

The processor of claim 3, wherein the processor is a vector processor or a single-instruction-multiple-data (SIMD) processor.

### Claim 5 (depends on 1)

The processor claim 1, wherein the branch prediction logic provides a WRITE signal to the branch target buffer.

### Claim 6 (depends on 5)

The processor of claim 5, wherein the branch history unit comprises a state machine calculating branch history data for an instruction in accordance with its branching execution history.

### Claim 7 (depends on 6)

The processor of claim 6, wherein the branch history unit comprises a branch history table storing the branch history data.

### Claim 8 (depends on 1)

The processor of claim 1, wherein the memory array comprises an SRAM array, the memory circuit comprises a 1-bit SRAM cell, and the word line gating value comprises a single data bit derived from the branch history data.

### Claim 9 (depends on 8)

The processor of claim 8, wherein the branch target buffer further comprises:
a decoder to receive the instruction address and select a gated word line in response to the instruction address; and,
a sense amplifier to receive the data entry from the selected gated word line, and comprising circuitry to communicate word line gating values to respective word line gating circuits associated with the gated word lines.
