US2008155226A1PendingUtilityA1

Prefetch mechanism based on page table attributes

Assignee: IBMPriority: May 18, 2005Filed: Mar 11, 2008Published: Jun 26, 2008
Est. expiryMay 18, 2025(expired)· nominal 20-yr term from priority
G06F 12/0862G06F 2212/6026G06F 12/10G06F 2212/6024G06F 12/1027
52
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A prefetch mechanism using prefetch attributes is disclosed. In one aspect, an explicit request for data stored in a memory is provided, and a prefetch attribute in a page table entry associated with the explicit request is examined to determine whether to provide one or more prefetch requests based on the prefetch attribute. Another aspect includes determining dynamic prefetch attributes for use in prefetching data, in which prefetch attributes are adjusted based on memory access requests that target next sequential blocks of memory relative to the most recent previous access in a page of memory.

Claims

exact text as granted — not AI-modified
1 . A method for prefetching data for use by a processor, the method comprising:
 providing an explicit request for data stored in a page of a memory;   examining a prefetch attribute stored in a page table entry associated with the page of memory for the explicit request, the page table entry used for translating an address used by the explicit request to a physical address of the page of the memory, wherein the prefetch attribute indicates the suitability of prefetching additional data in the page of the memory associated with the page table entry; and   determining whether to provide one or more prefetch requests based on the prefetch attribute, the prefetch requests operative to retrieve and store the additional data from the memory that potentially will be requested by the processor.   
   
   
       2 . The method of  claim 1  wherein the prefetch attribute indicates the number of prefetch requests to be provided, wherein the number of prefetch requests can be greater than one. 
   
   
       3 . The method of  claim 2  wherein the prefetch attribute is a value that can be zero or negative, indicating that no prefetch requests are to be provided, or a positive number that indicates the number of cache lines to prefetch. 
   
   
       4 . The method of  claim 1  wherein the page table entry is stored in a translation look-aside buffer provided in a memory management unit coupled to the processor. 
   
   
       5 . The method of  claim 1  wherein the page table entry is stored in a cache within a core of the processor. 
   
   
       6 . The method of  claim 1  wherein each page table entry includes a parameter value indicating a stride for prefetching the additional data. 
   
   
       7 . The method of  claim 1  wherein the prefetch attribute indicates the suitability of prefetching the additional data in the page of the memory without requiring multiple explicit requests to indicate the suitability of prefetching the additional data. 
   
   
       8 . The method of  claim 2  wherein the prefetch attribute was previously determined before the explicit request based on statistics gathered from previous accesses by the processor to the page of memory referenced by the page table entry in which the prefetch attribute is stored. 
   
   
       9 . The method of  claim 1  wherein the prefetch attribute is a dynamic value adjusted during processor operation based on previous accesses by the processor to a page of memory referenced by the page table entry in which the prefetch attribute is stored. 
   
   
       10 . The method of  claim 9  wherein the prefetch attribute is adjusted based on memory access requests that target next sequential blocks of memory relative to the most recent previous access in a page of memory. 
   
   
       11 . The method of  claim 1  further comprising checking whether the explicit request matches any previously-provided prefetch request. 
   
   
       12 . The method of  claim 11  wherein if the explicit request matches a previously-provided prefetch request, holding the explicit request and merging the explicit request with prefetched data resulting from the matching prefetch request, if the matching prefetch request has already been issued to the memory. 
   
   
       13 . The method of  claim 1  wherein the prefetch attribute determines the value of a count parameter provided with a single prefetch request, wherein the count parameter can have a value greater than one, the count parameter indicating the number of cache lines to prefetch from the memory, wherein each time the prefetch request is issued and a cache line is prefetched, the count parameter is decremented. 
   
   
       14 . The method of  claim 1  wherein the prefetch attribute is read during address translation of the explicit request, the page table entry being accessed for use for the address translation. 
   
   
       15 . A method for determining a dynamic prefetch attribute for use in prefetching data for a processor, the method comprising:
 incrementing a counter value if a memory access request to a page of memory targets a next sequential block of memory relative to the most recent previous access in the page of memory; and   transferring the counter value to a prefetch attribute for the page of memory when a memory access does not target the next sequential block of memory, the prefetch attribute being stored in a page table entry associated with the page of memory, wherein the prefetch attribute indicates the suitability of prefetching additional data in the page of the memory associated with the page table entry and is examined during explicit access requests to the memory to determine the number of prefetch requests to provide.

Join the waitlist — get patent alerts

Track US2008155226A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.