[SunRescue] help with CPU ID

James Lockwood lockwood at ISI.EDU
Fri Sep 17 16:11:24 CDT 1999


On Fri, 17 Sep 1999, Gregory Leblanc wrote:

> Why on earth would they do something like that?  If the MBUS speed has to be
> slower than the CPU speed, why can SM50's run at the 50MHz bus speed?  It it
> something to do with the cache, or lack thereof.  I don't understand WHY
> they would have engineered it to force the MBUS to communicate with the
> module slower than the CPU communicates with the cache, assuming that my
> logic isn't faulty.

Modules with e-cache (SMx1, all HyperSPARCs) require that the CPU run
faster than mbus speed.

Modules without e-cache (SM20/30/40/50) run the CPU at exactly mbus speed.

The cache controllers on each module must maintain cache concurrency with
each other by snooping the bus.  This takes extra cycles which explains
the requirement that the mbus be slower than the CPU.  What it doesn't
explain is why Sun built the SM51 to run at exactly 50MHz and not 50.3MHz
or something similar (it certainly saved them a few bucks being able to
use identical cores for the SM50 and SM51). 

> Memory Contention?  What's that?  I'd imagine that they did it so that there

There is only so much maximum memory bandwidth available from RAM to the
mbus.  In the SS20 it tops out at about 400MB/sec (this is an aggregate
figure for both CPU's). 

CPU's with cache (SMx1) require less bus bandwidth (otherwise, what's the
point of cache?).  2 SuperSPARC CPU's can easily stress the mbus limits if
they don't have cache, but if they have cache and are running code with a
high degree of locality then the bottleneck moves away from the mbus.
This is noticable even with only one CPU, but two make it worse and four
make it much worse.  If (and all of these numbers are made up) for your
typical application an SM50 requires 250MB/sec memory bandwidth and an
SM51 requires 150MB/sec, then a single-CPU configuration will not
bottleneck at the mbus.  A dual-SM50 configuration, however, will start
suffering due to lack of bandwidth (500MB/sec needed, 400MB/sec
available).  This is shown in the following benchmarks:

System            CPU        ClkMHz  Cache      SPECint SPECfp  Info
Name              (NUMx)Type ext/in  Ext+I/D    rate92  rate92  Date
================= ========== ======= ========== ======= ======= =====
Sun SS20/50       SuprSP     50      20/16        1628    1842  Mar94
Sun SS10/51       SuprSP     40/50   1M+20/16     1546c   1969c Apr93
Sun SS20/502      2xSuprSP   50      20/16        3218    3193  May95
Sun SS10/512      2xSuprSP   40/50   1M+20/16     2950    3744  Apr93

Single-CPU configurations are comparable, the cache of the SM51 makes up
for the slower mbus speed.  On dual CPU configurations the SM51 has a
large edge for specfp, which is very memory intensive compared to specint
(which is much more CPU-bound).  It scales nearly linearly compared with
the SM50, which hits a wall.  Key portions of specint are small enough to
fit inside the SM50's cache, which gives the faster CPU an edge.

> was a nice upgrade path.  You could probably get the SS20 with SM51s for
> only a little more than SS10s with the same CPUs, but you'd be able to
> upgrade the SS20 to be faster in the end IF the mbus speed really makes that
> big of a difference.  

The cost of the CPU's was prohibitive at the time, it made little sense to
buy with the thought of upgrading.  Dual SM50's were cheap ($2k) compared
with dual SM51's ($6k) at their intro (a typical SS20 base was around $12k
before adding CPU's).  The SS20/514 configuration was even crazier, you
paid $18k for just the CPU's.

-James







More information about the rescue mailing list