# US 2018/0024929 A1 · Managing a prefetch queue based on priority indications of prefetch requests

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

- Number: US 2018/0024929 A1
- Document ID: US20180024929A1
- Status: Published application
- Kind: A1
- Application number: 15/214,549
- Filed: 2016-07-20
- Published: 2018-01-25
- Earliest claimed: 2016-07-20
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Dan F. Greiner; Michael K. Gschwind; Christian Jacobi; Anthony Saporito; Chung-Lung K. Shum; Timothy J. Slegel
- Web page: https://patentgrep.com/patent/US20180024929A1

## CPC

- G06F 12/0862: with prefetch
- G06F 12/0875: with dedicated cache, e.g. instruction or stack
- G06F 2212/1016: Performance improvement
- G06F 2212/602: Details relating to cache prefetching
- G06F 2212/6028: Prefetching based on hints or prefetch instructions
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A prefetch request having a priority assigned thereto is obtained, based on executing a prefetch instruction included within a program. Based on obtaining the prefetch request, a determination is made as to whether the prefetch request may be placed on a prefetch queue. This determination includes determining whether the prefetch queue is full; checking, based on determining the prefetch queue is full, whether the priority of the prefetch request is considered a high priority; determining, based on the checking indicating the priority of the prefetch request is considered a high priority, whether another prefetch request on the prefetch queue may be removed; removing the other prefetch request from the prefetch queue, based on determining the other prefetch request may be removed; and adding the prefetch request to the prefetch queue, based on removing the other prefetch request.

## Claims

### Claim 1

A computer program product for managing prefetch queues, said computer program product comprising:
a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
obtaining a prefetch request based on executing a prefetch instruction included within a program, the prefetch request having a priority assigned thereto;
determining, based on obtaining the prefetch request, whether the prefetch request may be placed on a prefetch queue, the determining comprising:
determining whether the prefetch queue is full;
checking, based on determining the prefetch queue is full, whether the priority of the prefetch request is considered a high priority;
determining, based on the checking indicating the priority of the prefetch request is considered a high priority, whether another prefetch request on the prefetch queue may be removed;
removing the other prefetch request from the prefetch queue, based on determining the other prefetch request may be removed; and
adding the prefetch request to the prefetch queue, based on removing the other prefetch request.

### Claim 2 (depends on 1)

The computer program product of claim 1, wherein the other prefetch request is assigned a priority that is considered a low priority.

### Claim 3 (depends on 1)

The computer program product of claim 1, wherein the one or more other possible priorities include more than two possible priorities.

### Claim 4 (depends on 1)

The computer program product of claim 1, wherein the method further comprises discarding the prefetch request, based on the checking indicating the priority of the prefetch request is not considered a high priority.

### Claim 5 (depends on 1)

The computer program product of claim 1, wherein the method further comprises determining how to process the prefetch request, based on determining another prefetch request may not be removed.

### Claim 6 (depends on 5)

The computer program product of claim 5, wherein the determining how to process the prefetch request includes choosing to defer processing of the prefetch request for a defined time.

### Claim 7 (depends on 1)

The computer program product of claim 1, wherein the method further comprises:
determining, based on the prefetch queue not being full, whether the prefetch queue is nearly full or there is a low cache bandwidth;
checking, based on determining the prefetch queue is nearly full or there is a low cache bandwidth, whether the priority of the prefetch request is considered a high priority; and
adding the prefetch request to the prefetch queue based on determining the prefetch queue is nearly full or there is a low cache bandwidth and the priority of the prefetch request is considered a high priority.

### Claim 8 (depends on 7)

The computer program product of claim 7, wherein the method further comprises discarding the prefetch request, based on determining the prefetch queue is nearly full or there is a low cache bandwidth and the priority of the prefetch request is not considered a high priority.

### Claim 9 (depends on 7)

The computer program product of claim 7, wherein the method further comprises adding the prefetch request to the prefetch queue, based on determining the prefetch queue is not nearly full or there is not a low cache bandwidth.

### Claim 10 (depends on 1)

The computer program product of claim 1, wherein the method further comprises performing the determining whether the prefetch request may be placed on the prefetch queue, based on determining the prefetch request is not located in a selected cache.

### Claim 11 (depends on 10)

The computer program product of claim 10, wherein the selected cache is a level 1 cache.

### Claim 12

A computer system for managing prefetch queues, said computer system comprising:
a memory; and
a processor in communication with the memory, wherein the computer system is configured to perform a method, said method comprising:
obtaining a prefetch request based on executing a prefetch instruction included within a program, the prefetch request having a priority assigned thereto;
determining, based on obtaining the prefetch request, whether the prefetch request may be placed on a prefetch queue, the determining comprising:
determining whether the prefetch queue is full;
checking, based on determining the prefetch queue is full, whether the priority of the prefetch request is considered a high priority;
determining, based on the checking indicating the priority of the prefetch request is considered a high priority, whether another prefetch request on the prefetch queue may be removed;
removing the other prefetch request from the prefetch queue, based on determining the other prefetch request may be removed; and
adding the prefetch request to the prefetch queue, based on removing the other prefetch request.

### Claim 13 (depends on 11)

The computer system of claim 11, wherein the method further comprises:
determining, based on the prefetch queue not being full, whether the prefetch queue is nearly full or there is a low cache bandwidth;
checking, based on determining the prefetch queue is nearly full or there is a low cache bandwidth, whether the priority of the prefetch request is considered a high priority; and
adding the prefetch request to the prefetch queue based on determining the prefetch queue is nearly full or there is a low cache bandwidth and the priority of the prefetch request is considered a high priority.

### Claim 14 (depends on 13)

The computer system of claim 13, wherein the method further comprises discarding the prefetch request, based on determining the prefetch queue is nearly full or there is a low cache bandwidth and the priority of the prefetch request is not considered a high priority.

### Claim 15 (depends on 13)

The computer system of claim 13, wherein the method further comprises adding the prefetch request to the prefetch queue, based on determining the prefetch queue is not nearly full or there is not a low cache bandwidth.

### Claim 16

A computer-implemented method of managing prefetch queues, said computer-implemented method comprising:
obtaining, by a processor, a prefetch request based on executing a prefetch instruction included within a program, the prefetch request having a priority assigned thereto;
determining, based on obtaining the prefetch request, whether the prefetch request may be placed on a prefetch queue, the determining comprising:
determining whether the prefetch queue is full;
checking, based on determining the prefetch queue is full, whether the priority of the prefetch request is considered a high priority;
determining, based on the checking indicating the priority of the prefetch request is considered a high priority, whether another prefetch request on the prefetch queue may be removed;
removing the other prefetch request from the prefetch queue, based on determining the other prefetch request may be removed; and
adding the prefetch request to the prefetch queue, based on removing the other prefetch request.

### Claim 17 (depends on 16)

The computer-implemented method of claim 16, wherein the other prefetch request is assigned a priority that is considered a low priority.

### Claim 18 (depends on 16)

The computer-implemented method of claim 16, further comprising:
determining, based on the prefetch queue not being full, whether the prefetch queue is nearly full or there is a low cache bandwidth;
checking, based on determining the prefetch queue is nearly full or there is a low cache bandwidth, whether the priority of the prefetch request is considered a high priority; and
adding the prefetch request to the prefetch queue based on determining the prefetch queue is nearly full or there is a low cache bandwidth and the priority of the prefetch request is considered a high priority.

### Claim 19 (depends on 18)

The computer-implemented method of claim 18, further comprising discarding the prefetch request, based on determining the prefetch queue is nearly full or there is a low cache bandwidth and the priority of the prefetch request is not considered a high priority.

### Claim 20 (depends on 18)

The computer-implemented method of claim 18, further comprising adding the prefetch request to the prefetch queue, based on determining the prefetch queue is not nearly full or there is not a low cache bandwidth.
