[gclist] reference counting

Jeff Sturm jsturm1@home.com
Fri, 15 Sep 2000 00:30:01 -0400

Manoj Plakal wrote:
>         What you seem to need is an "overwrite-cache-line"
>         kind of store instruction which tells the cache that it
>         does not need to fetch the line in case of a miss
>         since the data is going to be over-written. Seems kind
>         of tricky for the software since it has to guarantee
>         that it will over-write a whole cache line's worth
>         of data, and make sure that there are no parts of
>         the cache line that are "left over" and which need
>         to be fetched (I guess this is where sub-blocking
>         would be useful).

Interestingly, the Compaq C compiler for Alpha appears to generate the
WH64 instruction in some situations, wrapped in a conditional to test
for overlap.  Apparently the cost of possible branch misprediction is
outweighed by savings in memory latency.  But at least its use is
transparent to the source code.

I wonder if allocating memory on exact cache boundaries would be
worthwhile for this sort of optimization.