Each iteration array selective loop data prefetch in multiple data width prefetch system using rotating register and parameterization to avoid redundant prefetch
AssigneeIntel Corporation
InventorsGautam B. Doshi, Kalyan Muthukumar
Life of this patent
Estimating the term…
Abstract
The present invention provides a mechanism for prefetching array data efficiently from within a loop. A prefetch instruction is parameterized by a register from a set of rotating registers. On each loop iteration, a prefetch is implemented according to the parameterized prefetch instruction, and the address targeted by the prefetch instruction is adjusted. The registers are rotated for each loop iteration, and the prefetch instruction parameterized by the rotating register is adjusted accordingly. The number of iterations between prefetches for a given array is determined by the number of elements in the set of rotating register.
Claims35
A method for prefetching data comprising:
- initializing a rotating register to indicate a prefetch operation to a first array;
- initiating the prefetch operation to the first array;
- loading data for one or more arrays, including the first array;
- and
- executing a register rotation to indicate a prefetch operation to a new array.
A method for prefetching elements from a plurality of arrays, the method comprising:
- issuing a prefetch for an element of an array that is specified through a prefetch parameter;
- loading data from each of the plurality of arrays;
- and
- adjusting the prefetch parameter, responsive to a loop branch.
A method for prefetching data comprising:
- issuing a prefetch that is parameterized by a rotating register;
- adjusting an address targeted by the prefetch;
- and
- rotating a new value into the rotating register to indicate a next prefetch.
A machine readable medium on which are stored instruction that may be executed by a processor to implement a method comprising:
- issuing a prefetch operation that is parameterized by a rotating register;
- adjusting an address targeted by the prefetch operation;
- and
- rotating a new value into the rotating register to indicate a next prefetch operation.
A computer system comprising:
- a processor to execute instructions;
- and
- a memory on which are stored instructions that may be executed by the processor to implement a method comprising:
- issuing a prefetch operation that is parameterized by a rotating register;
- adjusting an address targeted by the prefetch operation;
- and
- rotating a new value into the rotating register to indicate a new prefetch operation.
A computer system comprising:
- a processor having a set of rotating registers;
- and
- a memory to store a program including instructions that are executable by the processor to:
- initialize a first of the rotating registers to indicate a prefetch operation to a selected array;
- execute a prefetch to the selected array;
- and
- rotate values among the rotating registers to indicate a prefetch operation to a new selected array.
Dependencies are inferred from the claim text.