Prefetch mechanism based on page table attributes
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-modified1 . 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.