وو

وحید آنلاین . آرشیو وبلاگ وحیدمی دات آی آر . شرکت بیان. vahidmy.blog.ir

وو

وحید آنلاین . آرشیو وبلاگ وحیدمی دات آی آر . شرکت بیان. vahidmy.blog.ir

PREFETCHh

 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