Subject: Re: PC164 memory bus speeed (was: pciide performance on alpha)
To: None <firstname.lastname@example.org, email@example.com>
From: Sean Doran <firstname.lastname@example.org>
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], 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.