Stride prefetching across memory pages
First Claim
Patent Images
1. A method comprising:
- identifying, at a processor, a first stride value based on a first memory access request to a first memory page;
in response to a sum of the first stride value and a physical memory address of the first memory access exceeding a page boundary of the first memory page, maintaining a first prefetch confidence associated with the first memory access; and
in response to a second memory access to a second memory page subsequent to the first memory access;
identifying an offset portion of the physical memory address of the first memory access;
identifying a sum value equal to a sum of the offset portion of the physical memory address of the first memory access and the first stride value;
in response to the sum value matching an offset portion of a second physical memory address of the second memory access, matching a second stride value for the second memory access to the first stride value; and
prefetching data from a memory based on the maintained first prefetch confidence in response to the second stride value matching the first stride value.
1 Assignment
0 Petitions
Accused Products
Abstract
A prefetcher maintains the state of stored prefetch information, such as a prefetch confidence level, when a prefetch would cross a memory page boundary. The maintained prefetch information can be used both to identify whether the stride pattern for a particular sequence of demand requests persists after the memory page boundary has been crossed, and to continue to issue prefetch requests according to the identified pattern. The prefetcher therefore does not have re-identify a stride pattern each time a page boundary is crossed by a sequence of demand requests, thereby improving the efficiency and accuracy of the prefetcher.
7 Citations
17 Claims
-
1. A method comprising:
-
identifying, at a processor, a first stride value based on a first memory access request to a first memory page; in response to a sum of the first stride value and a physical memory address of the first memory access exceeding a page boundary of the first memory page, maintaining a first prefetch confidence associated with the first memory access; and in response to a second memory access to a second memory page subsequent to the first memory access; identifying an offset portion of the physical memory address of the first memory access; identifying a sum value equal to a sum of the offset portion of the physical memory address of the first memory access and the first stride value; in response to the sum value matching an offset portion of a second physical memory address of the second memory access, matching a second stride value for the second memory access to the first stride value; and prefetching data from a memory based on the maintained first prefetch confidence in response to the second stride value matching the first stride value. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, comprising:
-
in response to a first memory access to a first memory page; identifying a first stride for a first prefetch stream associated with the first memory access; in response to a sum of the stride and a first physical memory address for the first memory access exceeding a page boundary of the first memory page, maintaining a stored prefetch confidence for the first prefetch stream, the stored prefetch confidence indicative of a threshold to identify whether data is to be prefetched from a memory; and in response to a second memory access to a second memory page; identifying an offset portion of the first physical memory address of the first memory access; identifying a sum value equal to a sum of the offset portion of the first physical memory address of the first memory access and the first stride; in response to the sum value matching an offset portion of a second physical memory address of the second memory access, matching a second stride for the second memory access to the first stride; and prefetching data from a memory based on the maintained first prefetch confidence in response to the second stride matching the first stride. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A device, comprising:
-
a processor core to generate a plurality of memory access requests comprising a first memory access request and a second memory access request subsequent to the first memory access request; a prefetch table to store prefetch state information for the plurality of memory access requests including a first prefetch confidence; and a prefetcher to; identify a first stride value based on the first memory access request accessing a first memory page; in response to a sum of the first stride value and a physical memory address of the first memory access exceeding a page boundary of the first memory page, maintaining the first prefetch confidence at the prefetch table; and in response to the second memory access request accessing a second memory page; identify an offset portion of the physical memory address of the first memory access; identify a sum value equal to a sum of the offset portion of the physical memory address of the first memory access and the first stride value; in response to the sum value matching an offset portion of a second physical memory address of the second memory access, match a second stride value for the second memory access to the first stride value; and prefetch data from a memory based on the maintained first prefetch confidence in response to the second stride value matching the first stride value. - View Dependent Claims (14, 15, 16, 17)
-
Specification