Power optimized prefetching in set-associative translation lookaside buffer structure

US11556475B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11556475-B2
Application numberUS-202117215287-A
CountryUS
Kind codeB2
Filing dateMar 29, 2021
Priority dateMar 29, 2021
Publication dateJan 17, 2023
Grant dateJan 17, 2023

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 computer system includes a processor and a prefetch engine. The processor is configured to generate a demand access stream. The prefetch engine is configured to initiate a first prefetch request based on the demand access stream and perform a first prefetch that includes performing a translation lookaside buffer (TLB) lookup on a TLB structure in response to the first prefetch request. The processor determines a TLB entry in response to performing the TLB lookup and performs at least one second prefetch based on the TLB entry without performing a subsequent TLB lookup on the TLB structure.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method for performing prefetching in a computer processing system, the method comprising: generating, by a processor, a demand access stream; initiating, via a prefetch engine, a first prefetch request based on the demand access stream and performing a first prefetch that includes performing a translation lookaside buffer (TLB) lookup on an N-way set associative TLB structure in response to the first prefetch request; determining a TLB entry in response to performing the TLB lookup; and performing at least one second prefetch based on the TLB entry without performing a subsequent TLB lookup on the TLB structure, where performing the first prefetch comprises: performing the TLB lookup on a plurality of TLB directories included in the N-way set associative TLB structure; determining an index value (set, way) based on the TLB entry obtained from a given TLB directory among the TLB directories; accessing a given TLB payload among a plurality of TLB payloads included in the N-way set associative TLB structure based on the index value (set, way); and reading from the given TLB payload a physical address corresponding to the index value (set, way). 2. The computer-implemented method of claim 1 , wherein the at least one second prefetch is performed immediately following the first prefetch. 3. The computer-implemented method of claim 1 , wherein the at least one second prefetch includes a plurality of subsequent prefetches performed repeatedly without performing the subsequent TLB lookup on the plurality of TLB directories. 4. The computer-implemented method of claim 1 , wherein performing the at least one second prefetch without performing the subsequent TLB lookup on the TLB structure comprises: storing, in a memory unit, the index value (set, way) data determined in response to performing the TLB lookup; generating, via the prefetch engine, a first TLB lookup bypass signal that halts performing a subsequent TLB lookup after performing the TLB lookup in response to the first prefetch request; and accessing the given TLB payload based on the stored index value (set, way) data. 5. The computer-implemented method of claim 4 , further comprising: detecting, via the prefetch engine, a page boundary cross event; generating, via the prefetch engine, a second TLB lookup bypass signal that invokes performing the subsequent TLB lookup after performing the at least one second prefetch; determining new index value (set, way) data in response to performing the subsequent TLB lookup associated with a subsequent prefetch request; accessing the given TLB payload included in the N-way set associative TLB structure based on the new (set, way) data; and reading from the TLB payload block a physical address corresponding to the new index value (set, way). 6. The computer-implemented method of claim 5 , further comprising: storing each index value (set, way) data corresponding to a respective prefetch request; monitoring the plurality of TLB directories and generating a TLB reload signal indicating a change in the TLB entry corresponding to current index value (set, way) data included in the given TLB directory; comparing the current index value (set, way) data with the stored index value set, way); and performing at least one recovery action in response to determining the current index value (set, way) matches the stored index value (set, way). 7. A computer system comprising: a processor configured to generate a demand access stream; and a prefetch engine configured to initiate a first prefetch request based on the demand access stream and perform a first prefetch that includes performing a translation lookaside buffer (TLB) lookup on an N-way set associative TLB structure in response to the first prefetch request, wherein the processor determines a TLB entry in response to performing the TLB lookup and performs at least one second prefetch based on the TLB entry without performing a subsequent TLB lookup on the TLB structure, wherein the processor is further configured to perform the TLB lookup on a plurality of TLB directories included in the N-way set associative TLB structure, determine an index value (set, way) based on the TLB entry obtained from a given TLB directory among the TLB directories, access a given TLB payload among a plurality of TLB payloads included in the N-way set associative TLB structure based on the index value (set, way), and read from the given TLB payload a physical address corresponding to the index value (set, way). 8. The computer system of claim 7 , wherein the at least one second prefetch is performed immediately following the first prefetch. 9. The computer system of claim 7 , wherein the at least one second prefetch includes a plurality of subsequent prefetches performed repeatedly without performing the subsequent TLB lookup on the plurality of TLB directories. 10. The computer system of claim 7 , further comprising: a memory unit configured to store the index value (set, way) data determined in response to performing the TLB lookup, wherein the prefetch engine generates a first TLB lookup bypass signal that halts performing a subsequent TLB lookup after performing the TLB lookup in response to the first prefetch request, and wherein the processor access the given TLB payload based on the stored index value (set, way) data. 11. The computer system of claim 10 , wherein the prefetch engine is configured to detect a page boundary cross event, to generate a second TLB lookup bypass signal that invokes performing the subsequent TLB lookup after performing the at least one second prefetch, to determine new index value (set, way) data in response to performing the subsequent TLB lookup associated with a subsequent prefetch request, to access the given TLB payload included in the N-way set associative TLB structure based on the new (set, way) data, and to read from the TLB payload block a physical address corresponding to the new index value (set, way). 12. The computer system of claim 11 , further comprising a page table walker configured to wherein the memory unit is configured to store each index value (set, way) data corresponding to a respective prefetch request, wherein the page table walker is configured to monitor the plurality of TLB directories, and to generate a TLB reload signal indicating a change in the TLB entry corresponding to current index value (set, way) data included in the given TLB directory, and wherein the prefetch engine is configured to compare the current index value (set, way) data with the stored index value set, way), and perform at least one recovery action in response to determining the current index value (set, way) matches the stored index value (set, way). 13. A computer program product to control a computer processing system to perform prefetching, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by an electronic computer processor to control the computer processing system to perform operations comprising: generating a demand access stream; initiating a first prefetch request based on the demand access stream and performing a first prefetch that includes performing a translation lookaside buffer (TLB) lookup on an N-way set associative TLB structure in response to the first prefetch request; determining a TLB entry in response to performing the TLB lookup; and performing at least one second prefetch based on the TLB entry without performing a subsequent TLB lookup on the TLB structure, where performing the first prefetc

Assignees

Inventors

Classifications

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 US11556475B2 cover?
A computer system includes a processor and a prefetch engine. The processor is configured to generate a demand access stream. The prefetch engine is configured to initiate a first prefetch request based on the demand access stream and perform a first prefetch that includes performing a translation lookaside buffer (TLB) lookup on a TLB structure in response to the first prefetch request. The pr…
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 17 2023 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).