# US 11,907,126 B2 · Processor with multiple op cache pipelines

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

- Number: US 11,907,126 B2
- Document ID: US11907126B2
- Status: Granted
- Kind: B2
- Application number: 17/116,950
- Filed: 2020-12-09
- Published: 2022-03-31
- Granted: 2024-02-20
- Earliest claimed: 2020-09-25
- Assignees: Advanced Micro Devices, Inc.
- Applicants: Advanced Micro Devices, Inc.
- Inventors: Robert B. Cohen; Tzu-Wei Lin; Anthony J. Bybell; Sudherssen Kalaiselvan; James Mossman
- Web page: https://patentgrep.com/patent/US11907126B2

## CPC

- G06F 9/3844: {using dynamic branch prediction, e.g. using branch history tables}
- G06F 12/0855: Overlapped cache accessing, e.g. pipeline (G06F12/0846 takes precedence)
- G06F 9/3806: {using address prediction, e.g. return stack, branch history buffer}
- G06F 9/3808: {for instruction reuse, e.g. trace cache, branch target cache}
- G06F 9/3814: {Implementation provisions of instruction buffers, e.g. prefetch buffer; banks}
- G06F 9/3851: {from multiple instruction streams, e.g. multistreaming}
- G06F 2212/60: Details of cache memory
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A processor employs a plurality of op cache pipelines to concurrently provide previously decoded operations to a dispatch stage of an instruction pipeline. In response to receiving a first branch prediction at a processor, the processor selects a first op cache pipeline of the plurality of op cache pipelines of the processor based on the first branch prediction, and provides a first set of operations associated with the first branch prediction to the dispatch queue via the selected first op cache pipeline.

## Claims

### Claim 1

A method comprising:
in response to a first branch prediction at a processor:
selecting a first op cache pipeline of a plurality of op cache pipelines of the processor, wherein the op cache pipelines provide decoded instructions to op cache entries, wherein selecting the first op cache pipeline further comprises selecting the first op cache pipeline based on operation flow criteria associated with the plurality of op cache pipelines, wherein the operation flow criteria specify selecting the first op cache pipeline based on at least two quality of service levels, including at least one quality of service level of a thread being processed by at least one of the plurality of op cache pipelines; and
providing a first set of operations associated with the first branch prediction to a dispatch stage of the processor via the selected first op cache pipeline.

### Claim 2 (depends on 1)

The method of claim 1, wherein the operation flow criteria includes a quality of service associated with at least one thread executing at the processor.

### Claim 3 (depends on 1)

The method of claim 1, wherein the operation flow criteria indicates which thread of a plurality of executing threads is to be assigned to the plurality of op cache pipelines for each of a plurality of time slices.

### Claim 4 (depends on 1)

The method of claim 1, wherein the operation flow criteria include a number of prediction windows provided to the first op cache pipeline prior to the selecting.

### Claim 5 (depends on 4)

The method of claim 4, wherein the operation flow criteria include a minimum number of prediction windows expected to be provided to each of the plurality of op cache pipelines.

### Claim 6 (depends on 4)

The method of claim 4, wherein the operation flow criteria include a maximum number of prediction windows expected to be provided to each of the plurality of op cache pipelines.

### Claim 7 (depends on 1)

The method of claim 1, wherein each of the plurality of op cache pipelines includes a different read port of an op cache of the processor.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
determining the first set of operations based upon a first operation and a last operation indicated by the first branch prediction; and
reordering the first set of operations after the first set of operations are generated, the reordering based on a program sequence identified at the processor.

### Claim 9 (depends on 1)

The method of claim 1, wherein selecting the first op cache pipeline further comprises selecting the first op cache pipeline based on the first branch prediction.

### Claim 10 (depends on 1)

The method of claim 1, wherein the operation flow criteria specify selecting the first op cache pipeline based on a first quality of service level and selecting a second op cache pipeline based on a second quality of service level lower than the first quality of service level.

### Claim 11 (depends on 10)

The method of claim 10, wherein the operation flow criteria specify selecting the first op cache pipeline for prediction windows of a first thread having a first quality of service level and selecting a second op cache pipeline for prediction windows of a second thread having a second quality of service level lower than the first quality of service level.

### Claim 12

A method comprising:
in response to a identifying a branch prediction at a processor:
selecting one of a plurality of op cache pipelines of the processor based on the branch prediction and at least two quality of service levels, including at least one quality of service level of a thread being processed by at least one of the plurality of op cache pipelines, each of the plurality of op cache pipelines associated with a different read port of an op cache of the processor, wherein the op cache pipelines provide decoded instructions to op cache entries; and
providing a set of operations associated with the branch prediction to a dispatch stage of the processor via the selected op cache pipeline.

### Claim 13

A processor comprising:
a branch predictor to generate a first branch prediction;
a dispatch queue;
a plurality of op cache pipelines, wherein the op cache pipelines provide decoded instructions to op cache entries;
a control module to select a first op cache pipeline of the plurality of op cache pipelines of the processor, wherein the control module is to select the first op cache pipeline based on operation flow criteria associated with the plurality of op cache pipelines, and wherein the operation flow criteria specify selecting the first op cache pipeline based on at least two quality of service levels, including at least one quality of service level of a thread being processed by at least one of the plurality of op cache pipelines; and
wherein the selected op cache pipeline is to provide operations associated with the first branch prediction to the dispatch queue.

### Claim 14 (depends on 13)

The processor of claim 13, wherein the operation flow criteria includes a first amount of operations assigned to the first op cache pipeline.

### Claim 15 (depends on 14)

The processor of claim 14, wherein the operation flow criteria includes a second amount of operations assigned to a second op cache pipeline of the plurality of op cache pipelines.

### Claim 16 (depends on 15)

The processor of claim 15, wherein the operation flow criteria include a number of prediction windows provided to the first op cache pipeline prior to the selecting.

### Claim 17 (depends on 16)

The processor of claim 16, wherein the operation flow criteria include a minimum number of prediction windows expected to be provided to each of the plurality of op cache pipelines.

### Claim 18 (depends on 16)

The processor of claim 16, wherein the operation flow criteria include a maximum number of prediction windows expected to be provided to each of the plurality of op cache pipelines.

### Claim 19 (depends on 13)

The processor of claim 13, further comprising:
a reorder module to reorder the operations provided via the first op cache pipeline, the reordering based on a program sequence identified at the processor.
