Subject: Cache for VS3100/M30/M38? [Was Re: VS3100/M76 is FAST!]
To: NetBSD/vax Mailing List <port-vax@NetBSD.ORG>
From: Brian D Chase <bdc@world.std.com>
List: port-vax
Date: 05/31/1998 17:49:26
On Sat, 30 May 1998, Brian D Chase wrote:

> I noticed the following during the boot of the NetBSD/vax kernel on 
> the M76:
> 
>  cpu0 at backplane0: VAXstation 3100 model 76
>  clearing tags...
>  primary cache status: 21a<DPERR,HIT,REFRESH,ENABLE>
>  secondary cache status: ffe1<TPE,DPE,MISS,ENABLE>

Of done a bit more looking over this.  From what I can find, the
VS3100/M30 and M38 should have 64K of external cache.  I didn't find any
mention of the KA42's having cache on the CPU, but you never know.

Visually inspecting a VS3100/M38 mainboard, there looks to be what I
believe is the 64K of cache.  With the front of the VAXstation toward you,
and the cover off -- between the CPU and the onboard ethernet controller
(sort of along a diagonal going from the CPU to the back right corner)
there are two groups of four chips each labeled (NEC D41264C212529703)
which I believe are 64Kx1bit chips.  Sandwiched in between those two
groups are four identical 74 series logic chips (74F251APC) which I'm not
entirely sure what their purpose is, but their proximity would suggest
it's cache related :-)

In the case of the M76, it's quite obvious that there is at least some
explicit reporting on the presence of the cache, maybe even some code to
enable it (I haven't checked the source yet, so don't shoot me if I'm
wrong).  I have a feeling that the M30 and M38 might not be making use of
the external 64K of cache they have present.

When comparing the two equally meaningless benchmarks of Dhrystones and
VUPS, I found that in my limited set of data points there was roughly a
2500 (dhry/s)/VUP ratio for the -O2 optimized case of the Dhrystone
benchmark vs the DEC published VUPS figures for the machines I tested. 
This held for the VS2000, MicroVAX II, and VS3100/M76.  With the
VS3100/M30 and VS3100/M38, the ratio worked out to be more like 1000
(dhry/s)/VUP.  That just doesn't quite set right with me.  Sure it's
possible, but in my world I think that 1VUP should equal 2500 dhry/s.

For those curious, I've placed on my web page a copy of the Dhrystone
source I'm using to get my performance numbers:

http://world.std.com/~bdc/projects/vaxen/netboot/dhryston.c

Currently the number of loops is set at 500000, you may want to set it
higher or lower depending on the speed of your system.

-brian.
---
Brian "JARAI" Chase | http://world.std.com/~bdc/ | VAXZilla LIVES!!!