Subject: Re: PC164 memory bus speeed (was: pciide performance on alpha)
To: None <port-alpha@netbsd.org, simonb@netbsd.org>
From: Sean Doran <smd@ebone.net>
List: port-alpha
Date: 11/04/1999 01:06:46
| A: Compiled on NetBSD current, using egcs 1.1.2 with
| 	gcc -O3 -mcpu=21164a -Wa,-m21164a -mmemory-latency=main 
        -fsched-interblock -fsched-spec -fsched-spec-load -fbranch-count-reg

Hehe, these look mostly familiar.

-mmemory-latency=main when you have a reasonably-sized cache
does not look like it would produce a win; it does help on an
AlphaStation 200 4/233 (21064A-0), which has a tiny tiny tiny 
cache and slow slow slow memory, so it is worth doing expensive
things to keep data from moving to and from memory.

The goo to interpret the -mmemory-latency= option is in 
src/gnu/dist/gcc/config/alpha.c below line 252.

This code to figure out whether you are saying some number,
[lL][0123], or main, is really gross. 

Note the difference between the apparent default of lat = 3
versus the 150 assigned to lat if you specify "main", and 
the table for L0, L1 or L2 values for various chipsets.

This is used in a fairly obvious set of macros starting at
line 861 in src/gnu/dist/gcc/config/alpha.h.   

I'd be interested in how your results change for various
-mmemory-latency=  values, and for no -mmemory-latency=
option at all.

	Sean.