[net.unix-wizards] Putting two memory controllers on a 780?

v.wales%ucla-locus@sri-unix.UUCP (11/01/83)

From:            Rich Wales <v.wales@ucla-locus>

We have a VAX 11/780 running 4.1BSD, with 2.5 megabytes on a single
memory controller.  We are seriously considering getting a second con-
troller and 4 megabytes more memory, so that we would end up with 6.5
meg on two controllers.

Can anyone out there describe in any detail what performance improve-
ments we can reasonably expect to see as a result of adding a second
memory controller to a 780?

-- Rich <wales@UCLA-LOCUS>

hartwell%shasta@sri-unix.UUCP (11/02/83)

From:  Steve Hartwell <hartwell@shasta>

One advantage to having 2 memory controllers is that you can interleave
memory, such that the 1st quadword comes from memory off of the 1st
controller, the 2nd quadword comes from memory off of the 2nd controller,
etc.  This balances the controller load, though it is difficult [for me,
anyway] to estimate the performance improvement in a paged environment,
though I suspect that it is worth it in most cases.

In order to interleave, you MUST have equal amounts of memory on both
controllers; in your case, 3.25Mb off each controller.  You must also
diddle the controller registers just before loading unix off of the
floppy, or autoconfig() will not "see" the 2nd bank of memory.  This
is done very easily by adding 2 DEPOSIT commands in the DEFBOO.CMD
file on the boot floppy.  I can send the magic numbers to anyone who
would like to have them.

Steve Hartwell, Stanford University

dmmartindale@watcgl.UUCP (Dave Martindale) (11/09/83)

There are two types of memory controllers for 780's.  The MS780-C (the older
one) does not do interleaving internally, and should capable of considerable
speedup by having a second MS780C installed and run interleaved with the
first.  Not only do you get twice the available memory bandwidth for
accesses to consecutive words, but the memory controller contains a 4-deep
buffer for requests which is enabled only when interleaving is turned on.
Thus it can handle short bursts of even higher rates without appearing
busy to a device trying to access it.  Interleaving must be turned on
before you load any of unix into memory; if you don't, the memory
in the second controller won't even be found unless the first controller
has a full 4Mb on it.

The newer controller, the MS780-E, has been installed on VAXES shipped since
June or July or so, and does interleaving internally.  It seems an all-around
better controller.  It stores data internally as 32-bit words, so it can accept
a 32-bit longword write without doing the read-alter-rewrite cycle that the
older controller must do (the old controller can do only quadword writes
without a read).  It fits in the same space as an old controller but takes
up to 16Mb of memory.  It seems uniformly faster than the old controller;
for many operations the memory operates as fast as the SBI can handle the
data.  And you don't need to buy a CPU expansion cabinet to put the second
controller in.  But you have to figure out what to do with the old
controller that is replaced.

At Waterloo, we bought one new controller, put it in one 780 replacing the
old controller, and then installed the old controller as an addition to
another 780, giving it two old controllers interleaved.  Thus both end
up with more memory bandwidth.  (you can't interleave old and new controllers).

FRANK@UTAH-20.ARPA (11/12/83)

From:  Randy Frank <FRANK@UTAH-20.ARPA>

One point to be aware about the new MS780-E memory controller.  You MUST add
memory in 2 megabyte (two board) increments so that there is always an even
number of memgabytes of memory.

(For purists: you can run with an odd number of megabytes, but then you can
only put 8 MB of memory on the controller instead of 16, and you must run
non-interleaved.  It turns out the MS780E is really two internal memory
controllers which look like one to the outside world, and that if you want
to use both internal controllers, they MUST have the same amount of memory
on both of them).
-------

dmmartindale@watcgl.UUCP (Dave Martindale) (11/17/83)

Well, the MS780-E isn't really two memory controllers, and it isn't really
one.  It's two control boards which share a common SBI interface board.
So there are two copies of some registers, and only one of another.
They are sufficiently different that the 4.1/4.2 memory controller code
as distributed will not handle reporting of errors from the new controller
correctly, even though the autoconfig stuff has been changed to recognize
the new controller in 4.2BSD.