PREFETCHh
Usage: PREFETCHh src Modifies flags: None
Fetches the line of data from memory that contains the byte specified with the 'src' operand to a location in the cache hierarchy specified by a locality hint.
Prefetch Data Into Caches
PREFETCHNTA PREFETCHT0 PREFETCHT1 PREFETCHT2
PREFETCHNTA m8 ; 0F 18 /0 [KATMAI]
PREFETCHT0 m8 ; 0F 18 /1 [KATMAI]
PREFETCHT1 m8 ; 0F 18 /2 [KATMAI]
PREFETCHT2 m8 ; 0F 18 /3 [KATMAI]
The PREFETCHh instructions fetch the line of data from memory that contains the specified byte. It is placed in the cache according to rules specified by locality hints h:
The hints are:
T0 (temporal data) - prefetch data into all levels of the cache hierarchy.
T1 (temporal data with respect to first level cache) - prefetch data into level 2 cache and higher.
T2 (temporal data with respect to second level cache) - prefetch data into level 2 cache and higher.
NTA (non-temporal data with respect to all cache levels) - prefetch data into non-temporal cache structure and into a location close to the processor, minimizing cache pollution.
This instruction is merely a hint and does not affect program behavior. If executed, this instruction moves data closer to the processor in anticipation of future use. The implementation of prefetch locality hints is implementation - dependent, and can be over-loaded or ignored by a processor implementation. The amount of data prefetched is also processor implementation-dependent. It will, however, be a minimum of 32 bytes.
Note that this group of instructions doesn't provide a guarantee that the data will be in the cache when it is needed. For more details, see the Intel IA32 Software Developer Manual, Volume 2.
EXAMPLE:
prefetchnta Label |prefetcht0 Label |prefetcht1 Label |prefetcht2 Label