Garrett D'Amore - sun microsystems writes:
> Add inlines for i386/amd64 and sparcv9 for the following types of prefetch:
> 
> void prefetch_read_many(void *)
> 
> This requests data be loaded into a cache for repeated reading. (This
> equates to a 't0' prefetch on x86 CPUs).
> 
> void prefetch_read_once(void *)
> 
> This requests data be loaded into a cache for one read only, so it can
> be flushed from the cache immediately after access. (This equates to a
> 'nta' prefetch on x86 CPUs).

Are there SPARC equivalents?  Have you considered other CPUs?

On PPC, there are four related instructions that I know about:

        dcbt    - data cache block touch
        dcbtst  - data cache block touch for store
        dcbz    - data cache block set to zero
        dcbf    - data cache block flush

The first of those sounds like prefetch_read_many().  The others seem
not to match up ... but *perhaps* they're rare enough (buried within
bcopy and bzero) that nobody cares ... ?

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 35 Network Drive        71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to