List-based prefetching
First Claim
1. A computer implemented method for prefetching data for a processor into a first memory, wherein in a recording mode, a prefetching unit of the processor performs the steps of a method comprising:
- receiving one or more first addresses from the processor, wherein the one or more first addresses is a load address;
filtering the one or more first addresses for removing at least some of the first addresses from a list;
providing a recording-list including the filtered one or more first addresses, wherein in a playback mode, the prefetching unit executes;
receiving at least one second address from the processor, wherein the at least one second address is a load address;
receiving a playback-list, wherein the playback-list includes all or a subset of the first addresses in the recording-list;
comparing the at least one second address with each of the first addresses in the playback-list for identifying a matching address within the playback-list;
fetching data, in case a matching address is identified, from a second memory, wherein the fetched data is identified by addresses sequential to the position of the matching address in the playback-list; and
transferring the fetched data to the first memory, wherein the first and the second memory are caches within a multi-level cache of the processor,wherein the prefetchinq unit enters the recording mode upon starting the prefetchinq unit or upon executing a program loop a first time, thereby generating the recording-list and wherein the prefetching unit enters playback-mode in respect to the recording-list executing the program loop.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer implemented method for prefetching data for a processor into a first memory, wherein in a recording mode, a prefetching unit for a processor performs the steps of a method. The method includes: receiving one or more first addresses from the processor; filtering the one or more first addresses; providing a recording-list including the filtered one or more first addresses; receiving at least one second address from the processor; receiving a playback-list including all or a subset of the first addresses of the recording-list; comparing the at least one second address with each of the first addresses in the playback-list for identifying a matching address; if a matching address is identified, fetching data from a second memory; and transferring the fetched data to a first memory.
12 Citations
15 Claims
-
1. A computer implemented method for prefetching data for a processor into a first memory, wherein in a recording mode, a prefetching unit of the processor performs the steps of a method comprising:
-
receiving one or more first addresses from the processor, wherein the one or more first addresses is a load address; filtering the one or more first addresses for removing at least some of the first addresses from a list; providing a recording-list including the filtered one or more first addresses, wherein in a playback mode, the prefetching unit executes; receiving at least one second address from the processor, wherein the at least one second address is a load address; receiving a playback-list, wherein the playback-list includes all or a subset of the first addresses in the recording-list; comparing the at least one second address with each of the first addresses in the playback-list for identifying a matching address within the playback-list; fetching data, in case a matching address is identified, from a second memory, wherein the fetched data is identified by addresses sequential to the position of the matching address in the playback-list; and transferring the fetched data to the first memory, wherein the first and the second memory are caches within a multi-level cache of the processor, wherein the prefetchinq unit enters the recording mode upon starting the prefetchinq unit or upon executing a program loop a first time, thereby generating the recording-list and wherein the prefetching unit enters playback-mode in respect to the recording-list executing the program loop. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer implemented method for prefetching data for a processor into a first memory, wherein in a recording mode, a prefetching unit of the processor performs the steps of a method comprising:
-
receiving one or more first addresses from the processor, wherein the one or more first addresses is a load address; filtering the one or more first addresses for removing at least some of the first addresses from a list; providing a recording-list including the filtered one or more first addresses, wherein in a playback mode, the prefetching unit executes; receiving at least one second address from the processor, wherein the at least one second address is a load address; receiving a playback-list, wherein the playback-list includes all or a subset of the first addresses in the recording-list; comparing the at least one second address with each of the first addresses in the playback-list for identifying a matching address within the playback-list; fetching data, in case a matching address is identified, from a second memory, wherein the fetched data is identified by addresses sequential to the position of the matching address in the playback-list; and transferring the fetched data to the first memory, wherein the first and the second memory are caches within a multi-level cache of the processor, wherein; the processor executes a number (n) of threads in parallel, the prefetching unit of the processor comprises the number (n) of filtering units, the prefetching unit of the processor manages one recording-list and one playback-list for each of the number (n) of threads, and the prefetching unit comprises one prefetch-engine for fetching the data from the second memory and for transferring the data to the first memory for each of the number (n) of threads.
-
-
15. A computer implemented method for prefetching data for a processor into a first memory, wherein in a recording mode, a prefetching unit of the processor performs the steps of a method comprising:
-
receiving one or more first addresses from the processor, wherein the one or more first addresses is a load address; filtering the one or more first addresses for removing at least some of the first addresses from a list; providing a recording-list including the filtered one or more first addresses, wherein in a playback mode, the prefetching unit executes; receiving at least one second address from the processor, wherein the at least one second address is a load address; receiving a playback-list, wherein the playback-list includes all or a subset of the first addresses in the recording-list; comparing the at least one second address with each of the first addresses in the playback-list for identifying a matching address within the playback-list; fetching data, in case a matching address is identified, from a second memory, wherein the fetched data is identified by addresses sequential to the position of the matching address in the playback-list; and transferring the fetched data to the first memory, wherein the first and the second memory are caches within a multi-level cache of the processor, wherein; the allocated memory area is one of at least a first and a second allocated memory area respectively being used for storing a recording-list, the prefetching unit is in recording-mode in respect to a first recording list using the first allocated memory area for storing the first recording-list, and the prefetching unit, simultaneously, is in playback-mode in respect to a second recording list using the second allocated memory for storing the second recording list and for playing-back the second recording list.
-
Specification