Managing a prefetch queue based on priority indications of prefetch requests

US10169239B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10169239-B2
Application numberUS-201615214549-A
CountryUS
Kind codeB2
Filing dateJul 20, 2016
Priority dateJul 20, 2016
Publication dateJan 1, 2019
Grant dateJan 1, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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 and determining that data at a memory location designated by the prefetch instruction is not located in a selected cache, the prefetch request having a priority assigned thereto, the priority indicating confidence by the program in whether the prefetch request will be used; 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. 2. The computer program product of claim 1 , wherein the other prefetch request is assigned a priority that is considered a low priority. 3. The computer program product of claim 1 , wherein the priority is selected from more than two possible priorities. 4. 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. 5. 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. 6. 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. 7. 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 in that it can accept a predefined number of additional requests or there is a low cache bandwidth in that an arrival rate of cache requests has a predefined relationship with respect to a number of bytes per a select number of cycles; 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. 8. 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. 9. 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. 10. The computer program product of claim 1 , wherein the method further comprises: determining, based on the prefetch queue not being full, whether there is a low cache bandwidth in that an arrival rate of cache requests has a predefined relationship with respect to a number of bytes per a select number of cycles; checking, based on determining 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 there is a low cache bandwidth and the priority of the prefetch request is considered a high priority. 11. The computer program product of claim 1 , wherein the selected cache is a level 1 cache. 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 and determining that data at a memory location designated by the prefetch instruction is not located in a selected cache, the prefetch request having a priority assigned thereto, the priority indicating confidence by the program in whether the prefetch request will be used; 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. 13. 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 in that it can accept a predefined number of additional requests or there is a low cache bandwidth in that an arrival rate of cache requests has a predefined relationship with respect to a number of bytes per a select number of cycles; 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. 14. 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. 15. 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. 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 and determining that data at a memory location designated by the prefetch instruction is not located in a selected cache, the prefetch request having a priority assigned thereto, the priority indicating confidence by the program in whether the prefetch request will be used; determining, based on obtaining the prefetch request, whether the prefetch request may be placed on a prefetch queue, the determining comprising: determining w

Assignees

Inventors

Classifications

  • Details relating to cache prefetching · CPC title

  • with dedicated cache, e.g. instruction or stack · CPC title

  • Prefetching based on hints or prefetch instructions · CPC title

  • with prefetch · CPC title

  • Performance improvement · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10169239B2 cover?
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 …
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F12/0862. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 01 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).