Prefetch performance

US10191847B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10191847-B2
Application numberUS-201715811106-A
CountryUS
Kind codeB2
Filing dateNov 13, 2017
Priority dateMay 26, 2017
Publication dateJan 29, 2019
Grant dateJan 29, 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.

Techniques are disclosed for identifying data streams in a processor that are likely to and not likely to benefit from data prefetching. A prefetcher receives at least a first request in a plurality of requests to pre-fetch data from a stream in a plurality of streams. The prefetcher assigns a confidence level to the first request based on an amount of confirmations observed in the stream. The request is in a confident state if the confidence level exceeds a specified value. The first request is in a non-confident state if the confidence level does not exceed the specified value. Requests to prefetch data in the plurality of requests that are associated with respective streams with a low prefetch utilization are deprioritized. Doing so allows a memory controller to determine whether to drop the at least the first request based on the confidence level, prefetch utilization, and memory resource utilization.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a processor to cause the processor to: receive at least a first request in a plurality of requests to pre-fetch data from a stream in a plurality of streams; assign a confidence level to the at least the first request based on an amount of confirmations observed in the stream, wherein the at least the first request is in a confident state if the confidence level exceeds a specified phase threshold and wherein the at least the first request is in a non-confident state if the confidence level does not exceed the specified phase threshold; prioritize requests to prefetch data in the plurality of requests having a higher confidence level than the confidence level of the first request to pre-fetch data; deprioritize requests to prefetch data in the plurality of requests that are associated with respective streams with a low prefetch utilization ratio; and determine whether to drop the at least the first request based on the confidence level, based upon a prefetch utilization ratio of the stream, and based upon a memory resource utilization threshold. 2. The computer program product of claim 1 , wherein the program instructions are further readable by the processor to cause the processor to: maintain a phase counter for each stream in the plurality of streams, wherein the phase counter is incremented for each request in the confident state and wherein the counter is decremented for each request in the non-confident state; and maintain a prefetch utilization counter for each stream in the plurality of streams, wherein the prefetch utilization counter is decremented for each request to pre-fetch data from the stream and wherein the prefetch utilization counter is incremented when a cache line in the stream is utilized. 3. The computer program product of claim 2 , wherein the program instructions are further readable by the processor to cause the processor to: determine whether to increase or decrease a rate at which pre-fetches from the stream occur based on the phase counter for the stream, based upon the prefetch utilization counter for the stream, and a current memory resource utilization. 4. The computer program product of claim 3 , wherein the program instructions are further readable by the processor to cause the processor to: upon determining that the current memory resource utilization is below a specified threshold, increasing the rate at which the pre-fetches occur. 5. The computer program product of claim 1 , wherein the program instructions are further readable by the processor to cause the processor to, prior to determining whether to drop the at least first request, select the memory resource utilization threshold based on memory resource utilization during a specified amount of past cycles. 6. The computer program product of claim 1 , wherein the program instructions are further readable by the processor to cause the processor to: upon determining that the confidence level does not exceed the memory resource utilization threshold, drop the first request. 7. The computer program product of claim 1 , wherein the program instructions are further readable by the processor to cause the processor to, upon determining that the confidence level does not exceed the memory resource utilization threshold and upon determining that the prefetch utilization ratio of the stream does not exceed a prefetch utilization threshold, drop the first request. 8. A processor, comprising: a prefetcher configured to: receive at least a first request in a plurality of requests to pre-fetch data from a stream in a plurality of streams, assign a confidence level to the at least the first request based on an amount of confirmations observed in the stream, wherein the at least the first request is in a confident state if the confidence level exceeds a specified phase threshold and wherein the at least the first request is in a non-confident state if the confidence level does not exceed the specified phase threshold, prioritize requests to prefetch data in the plurality of requests having a higher confidence level than the confidence level of the first request to pre-fetch data, deprioritize requests to prefetch data in the plurality of requests that are associated with respective streams with a low prefetch utilization ratio, and determine whether to drop the at least the first request based on the confidence level, based upon a prefetch utilization ratio of the stream, and based upon a memory resource utilization threshold. 9. The processor of claim 8 , wherein the prefetcher is further configured to: maintain a phase counter for each stream in the plurality of streams, wherein the phase counter is incremented for each request in the confident state and wherein the counter is decremented for each request in the non-confident state, and maintain a prefetch utilization counter for each stream in the plurality of streams, wherein the prefetch utilization counter is decremented for each request to pre-fetch data from the stream and wherein the prefetch utilization counter is incremented when a cache line in the stream is utilized. 10. The processor of claim 9 , wherein the prefetcher is further configured to: determine whether to increase or decrease a rate at which pre-fetches from the stream occur based on the phase counter for the stream, based upon the prefetch utilization counter for the stream, and a current memory resource utilization. 11. The processor of claim 10 , wherein the prefetcher is further configured to: upon a determination that the current memory resource utilization is below a specified threshold, increase the rate at which the pre-fetches occur. 12. The processor of claim 8 , wherein the prefetcher is further configured to, prior to determining whether to drop the at least first request: select the memory resource utilization threshold based on memory resource utilization during a specified amount of past cycles. 13. The processor of claim 8 , wherein the prefetcher is further configured to: upon determining that the confidence level does not exceed the memory resource utilization threshold, drop the first request. 14. The processor of claim 8 , wherein the prefetcher is further configured to: upon determining that the confidence level does not exceed the memory resource utilization threshold and upon determining that the prefetch utilization ratio of the stream does not exceed a prefetch utilization threshold, drop the first request. 15. A system, comprising: a memory; and a processor, comprising: a prefetcher configured to: receive at least a first request in a plurality of requests to pre-fetch data from a stream in a plurality of streams, assign a confidence level to the at least the first request based on an amount of confirmations observed in the stream, wherein the at least the first request is in a confident state if the confidence level exceeds a specified phase threshold and wherein the at least the first request is in a non-confident state if the confidence level does not exceed the specified phase threshold, prioritize requests to prefetch data in the plurality of requests having a higher confidence level than the confidence level of the first request to pre-fetch data, deprioritize requests to prefetch data in the plurality of requests that are associated with respective streams with a low prefetch utilization ratio, and determine whether to drop the at least the

Assignees

Inventors

Classifications

  • History based prefetching · CPC title

  • Performance improvement · CPC title

  • Details relating to cache prefetching · CPC title

  • with two or more cache hierarchy levels (with multilevel cache hierarchies G06F12/0811) · CPC title

  • with 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 US10191847B2 cover?
Techniques are disclosed for identifying data streams in a processor that are likely to and not likely to benefit from data prefetching. A prefetcher receives at least a first request in a plurality of requests to pre-fetch data from a stream in a plurality of streams. The prefetcher assigns a confidence level to the first request based on an amount of confirmations observed in the stream. The …
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 29 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).