Memory controller for sequentially prefetching data for a processor of a computer system
First Claim
Patent Images
1. A device for prefetching data for a processor of a computer system, comprising:
- a memory controller for interfacing the processor to system memory via a system memory bus; and
a prefetch cache having a short-term storage portion and a long-term storage portion included in the memory controller, the prefetch cache configured to access said system memory to retrieve and store a plurality of sequential cache lines subsequent to a processor access to said system memory, wherein the memory controller is configured to track memory accesses by a CPU to said system memory and is configured to interrupt a prefetch access to system memory upon detection of a CPU access to said system memory, wherein the short-term storage portion is configured to initially store the sequential cache lines, wherein a plurality of non-hit cache lines are transferred from the short-term storage portion to the long-term storage portion to retain the plurality of non-hit cache lines for a relatively long period in the prefetch cache, and wherein further, upon a cache line that is stored in the long-term storage portion being hit, the cache line is promoted to said CPU from the long-term storage portion.
1 Assignment
0 Petitions
Accused Products
Abstract
A memory controller for prefetching data for a processor, or CPU, of a computer system. The memory controller functions by interfacing the processor to system memory via a system memory bus. A prefetch cache is included in the memory controller. The prefetch cache includes a short-term storage portion and a long-term storage portion. The prefetch cache is configured to access system memory to retrieve and store a plurality of sequential cache lines subsequent to a processor access to system memory.
-
Citations
25 Claims
-
1. A device for prefetching data for a processor of a computer system, comprising:
-
a memory controller for interfacing the processor to system memory via a system memory bus; and a prefetch cache having a short-term storage portion and a long-term storage portion included in the memory controller, the prefetch cache configured to access said system memory to retrieve and store a plurality of sequential cache lines subsequent to a processor access to said system memory, wherein the memory controller is configured to track memory accesses by a CPU to said system memory and is configured to interrupt a prefetch access to system memory upon detection of a CPU access to said system memory, wherein the short-term storage portion is configured to initially store the sequential cache lines, wherein a plurality of non-hit cache lines are transferred from the short-term storage portion to the long-term storage portion to retain the plurality of non-hit cache lines for a relatively long period in the prefetch cache, and wherein further, upon a cache line that is stored in the long-term storage portion being hit, the cache line is promoted to said CPU from the long-term storage portion. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for implementing sequential data prefetch for a processor of a computer system, comprising:
-
a processor; a system memory; a memory controller for coupling to the processor and the system memory and for interfacing the processor to the system memory via a system memory bus; and a prefetch cache having short-term storage and having long-term storage and included in the memory controller, the prefetch cache configured to access the system memory to retrieve and store a plurality of sequential cache lines subsequent to a processor access to the system memory, wherein the memory controller is configured to track processor accesses to system memory and to interrupt a prefetch access to the system memory upon detection of a processor access to the system memory, and wherein the short-term storage portion is configured to initially store the cache lines, wherein a plurality of non-hit cache lines are transferred from the short-term storage portion to the long-term storage portion to retain the plurality of non-hit cache lines for a relatively long period in the prefetch cache, and wherein further, upon a cache line that is stored in the long-term storage portion being hit, the cache line is promoted to said CPU from the long-term storage portion. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for accessing data for a computer system central processor unit, comprising:
-
fetching a first plurality of cache lines from a system memory and providing the cache lines to the processor; detecting an idle time for a system memory bus coupled to the system memory indicating the system memory is not being accessed by the processor; fetching a second plurality of cache lines from the system memory and storing the second plurality of cache lines in a prefetch cache having a short-term storage and having a long-term storage, wherein the second plurality of cache lines are in sequence with respect to the first plurality of cache lines; upon a prefetch cache hit during a subsequent access by the processor, transferring data from the second plurality of cache lines stored in the prefetch cache to the processor; tracking accesses to system memory by the central processor unit; and interrupting the fetching of the second plurality of cache lines when the central processor unit requests an access to the system memory via the system memory bus; wherein the short-term storage is configured to initially store the second plurality of cache lines, wherein a plurality of non-hit cache lines of the second plurality of cache lines are transferred from the short-term storage to the long-term storage to retain the plurality of non-hit cache lines for a relatively long period in the prefetch cache, and wherein further, upon a cache line that is stored in the long-term storage portion being hit, the cache line is promoted to said CPU fro the long-term storage. - View Dependent Claims (16, 17)
-
-
18. A method for prefetching a back sector of a cache line for a central processor unit (CPU) of a computer system, comprising:
-
fetching an upper sector of a cache line from a system memory and providing the cache line to the central processor unit; detecting an idle time for a system memory bus coupled to the system memory indicating the system memory is not being accessed by the central processor unit; fetching a lower sector of the cache line from the system memory and storing the lower sector in a prefetch cache having a short-term storage portion and a long-term storage portion; upon a prefetch cache hit during subsequent access by the central processor unit, transferring data from the lower sector stored in the prefetch cache to an L1 cache of the central processor unit; and tracking accesses to system memory by the central processor unit (CPU); and interrupting the fetching of the lower sector when the central processor unit requests an access to the system memory; wherein the short-term storage portion is configured to initially store the cache lines, wherein a plurality of non-hit cache lines are transferred from the short-term storage portion to the long-term storage portion to retain the plurality of non-hit cache lines for a relatively long period in the prefetch cache, and wherein further, upon a cache line that is stored in the long-term storage portion being hit, the cache line is promoted to said CPU from the long-term storage portion. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
-
Specification