Dynamically adjusting prefetch depth

US11301386B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11301386-B2
Application numberUS-201916528901-A
CountryUS
Kind codeB2
Filing dateAug 1, 2019
Priority dateAug 1, 2019
Publication dateApr 12, 2022
Grant dateApr 12, 2022

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.

Disclosed is a computer implemented method and system to dynamically adjust prefetch depth, the method comprising, identifying a first prefetch stream, wherein the first prefetch stream is identified in a prefetch request queue (PRQ), and wherein the first prefetch stream includes a first prefetch depth. The method also comprises determining a number of inflight prefetches, and comparing, a number of prefetch machines against the number of inflight prefetches, wherein each of the prefetch machines is configured to monitor one prefetch request. The method further includes adjusting, in response to the comparing, the first prefetch depth of the first prefetch stream.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: initiating a prefetch depth adjustment for one of more prefetch streams; identifying a first prefetch stream from the one or more prefetch streams, wherein the first prefetch stream is identified in a prefetch request queue (PRQ), and wherein the first prefetch stream includes a first prefetch depth; determining a number of inflight prefetches; determining a number of buffered prefetches, wherein the number of buffered prefetches includes the number of inflight prefetches added to a buffer factor, and the buffer factor is configured to prevent allocating more prefetches than a number of prefetch machines and to artificially increase the number of inflight prefetches; comparing, the number of prefetch machines against the number of buffered prefetches, wherein each of the prefetch machines is configured to monitor one prefetch request; adjusting, in response to the comparing, the first prefetch depth of the first prefetch stream. 2. The method of claim 1 , wherein: determining the number of inflight prefetches comprises monitoring each of the prefetch machines; and each of the prefetch machines that is monitoring a prefetch request is counted as a prefetch inflight. 3. The computer-implemented method of claim 1 , wherein: determining the number of inflight prefetches comprises counting; a count is incremented by one each time a prefetch request is sent out; the count is decremented by one each time the prefetch request is completed; and the number of inflight prefetches is equal to the count. 4. The computer-implemented method of claim 1 , wherein the determining of the number of inflight prefetches comprises estimating, the estimating further comprising: selecting the first stream; determining the first stream is valid; determining the first stream is active; and counting, in response to determining the first stream is valid and active, the first depth of the first stream as the number of inflight prefetches. 5. The computer-implemented method of claim 4 , further comprising: selecting a subsequent stream; determining the subsequent stream is valid; determining the subsequent stream is active; and adding, in response to determining the subsequent stream is valid and active, the first prefetch depth of the subsequent stream to the depth of the first stream, thereby producing added numbers; and updating the number of inflight prefetches to the added numbers. 6. The computer-implemented method of claim 1 , wherein the PRQ includes an entry for the first stream, and wherein the entry includes, a stream identifier, a stream validity identifier, a stream depth, a number of cycles since last prefetch, and at least one associated data address. 7. The computer-implemented method of claim 1 , wherein each of the prefetch machines is part of a lowest level cache, and wherein there are at least two levels of cache. 8. The computer-implemented method of claim 1 , wherein the adjusting includes increasing the first prefetch depth. 9. The computer-implemented method of claim 1 , wherein the adjusting includes decreasing the first prefetch depth. 10. The computer-implemented method of claim 1 , further comprising: preventing, in response to the comparing, an increase in a second depth of a second prefetch stream. 11. The computer-implemented method of claim 1 , further comprising: adjusting, in response to the comparing, a second prefetch depth, wherein the second prefetch depth is associated with a second prefetch stream. 12. The computer-implemented method of claim 11 , wherein the adjusting of the first prefetch depth includes increasing the first prefetch depth, and wherein the adjusting of the second prefetch depth includes decreasing the second prefetch depth. 13. A system comprising: a processor; and a computer-readable storage medium communicatively coupled to the processor and storing program instructions which, when executed by the processor, are configured to cause the processor to: initiate a prefetch depth adjustment for one of more prefetch streams; identify a first prefetch stream from the one or more prefetch streams, wherein the first prefetch stream is identified in a prefetch request queue (PRQ), and wherein the first prefetch stream includes a first prefetch depth; determine a number of inflight prefetches; determine a number of buffered prefetches, wherein the number of buffered prefetches includes the number of inflight prefetches added to a buffer factor, and the buffer factor is configured to prevent allocating more prefetches than a number of prefetch machines and keep a first prefetch machine available for use by a third stream of the one or more prefetch streams; compare, the number of prefetch machines against the number of buffered prefetches, wherein each of the prefetch machines is configured to monitor one prefetch request; and adjust, in response to the comparing, the first prefetch depth of the first prefetch stream. 14. The system of claim 13 , wherein the program instructions are further configured to cause the processor to perform operations further comprising: selecting the first stream; determining the first stream is valid; determining the first stream is active; and counting, in response to determining the first stream is valid and active, the depth of the first stream as the number of inflight prefetches. 15. The system of claim 13 , wherein the adjusting includes decreasing the first prefetch depth. 16. The system of claim 14 , wherein the program instructions are further configured to cause the processor to perform the method, the method further comprising: preventing, in response to the comparing, an increase in a second depth of a second prefetch stream. 17. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processing unit to cause the processing unit to perform a method comprising: initiating a prefetch depth adjustment for one of more prefetch streams; identifying a first prefetch stream from the one or more prefetch streams, wherein the first prefetch stream is identified in a prefetch request queue (PRQ), and wherein the first prefetch stream includes a first prefetch depth; determining a number of inflight prefetches; determining a number of buffered prefetches, wherein the number of buffered prefetches includes the number of inflight prefetches added to a buffer factor, and keep a first prefetch machine available for use by a third stream of the one or more prefetch streams; comparing, the number of prefetch machines against the number of buffered prefetches, wherein each of the prefetch machines is configured to monitor one prefetch request; adjusting, in response to the comparing, the first prefetch depth of the first prefetch stream. 18. The computer program product of claim of claim 17 , wherein the program instructions are further configured to cause the processing unit to perform a method further comprising: selecting the first stream; determining the first stream is valid; determining the first stream is active; and counting, in response to determining the first stream is valid and active, the depth of the first stream as the number of inflight prefetches. 19. The computer program product of claim of claim 17 , wherein the adjusting includes decreasing the first prefetch depth. 20. The computer pro

Assignees

Inventors

Classifications

  • with multilevel cache hierarchies · CPC title

  • with prefetch · CPC title

  • Latency reduction · CPC title

  • Details relating to cache prefetching · CPC title

  • Prefetching based on access pattern detection, e.g. stride based prefetch · 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 US11301386B2 cover?
Disclosed is a computer implemented method and system to dynamically adjust prefetch depth, the method comprising, identifying a first prefetch stream, wherein the first prefetch stream is identified in a prefetch request queue (PRQ), and wherein the first prefetch stream includes a first prefetch depth. The method also comprises determining a number of inflight prefetches, and comparing, a num…
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 Apr 12 2022 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 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).