Subject: Re: multi CPU uvaxII
To: None <port-vax@NetBSD.ORG>
From: Michael Sokolov <sokolov@alpha.CES.CWRU.Edu>
List: port-vax
Date: 03/22/1998 17:50:52
   Dear Ladies and Gentlemen,
   
   Just to make it clear to everyone: the CD part of the backplane connects
the left side of slot 1 to the right side of slot 2, the left side of slot
2 to the right side of slot 3, and so on. That's all there is to it.
(PLEASE don't say that this is not authoritative. I have been told this by
a DEC engineer, and a visual examination of a few backplanes, KA6xx
modules, and MS6xx modules confirms this.) The purpose of the CD
interconnect is to allow adjacent modules to talk privately without
affecting anything else in the backplane in any way. The way it has been
designed is ideal for this purpose. I have heard that the first user of
this design was RLV11, which consists of two modules but doesn't require an
over-the-top cable between them. The two modules must be inserted in
adjacent Q18/CD slots.
   
   When the microsystem world was revolutionized by the introduction of
MicroVAX II, which accesses memory over PMI instead of Q-bus and has the
mapping mechanism just like the big VAXen, the MicroVAX PMI has become the
primary user of the CD interconnect. The fact that CD doesn't connect all
slots through is used by MicroVAXen in a very interesting way. Have you
ever wondered why there are no address jumpers on MS6xx modules? Suppose a
KA6xx puts out a request: "give me the longword at address 400000 hex (4
MB)". There are two 8 MB boards in the system. How do they know which
should rush to read out the longword and put it out for the CPU and which
should sit back and relax? If they were connected in parallel like devices
on ordinary buses, there would be no way except by setting some jumpers
differently. However, because of the way the CD slots are connected, when
the CPU puts the address out on the left side of its slot, only the first
MS6xx module will see it directly (on the right side of its slot). It will
then compare this address with the highest address it can service. If the
address requested is lower than the threshold, it services the request and
doesn't bother the next module. If the address requested is higher than the
threshold, it subtract the threshold (its own size) from the original
address and puts out a request on the left side of its slot just as a CPU
would, except that the address has been reduced. Then the next MS6xx module
sees it, and the cycle repeats until the address is low enough for the ith
module to handle it. The over-the-top 50-conductor cable carries the data
back to the CPU. This also explains very nicely why you can easily mix
memory modules of different sizes in any order, and how is the "extra" 1 MB
"automatically disabled" when you put two 8 MB boards in a MicroVAX II (the
last 1 MB of the last board will never be accessed because this board will
never be asked for an address high enough).
   
   This is true for KA630, KA650, KA650's siblings like KA640 and KA655,
and non-650 CPUs that use 650 memory like KA660 and whatever is used in
DECsystem 5400. I don't know what's the story with VAX 4000 M400+. I have
never seen one, and according to DEC each has two Q-buses, so I have no
idea how its backplane(s) is/are arranged.
   
   Essentially, you have "clusters" of modules talking to each other via
the CD interconnect. The modules of each "cluster" must be adjacent. Since
a KA630 with one or two MS630 modules is a "cluster", if you want more than
one KA630, you must put them in the following order: the arbiter KA630, the
arbiter KA630's memory, the 1st auxiliary KA630, the 1st auxiliary KA630's
memory, the 2nd auxiliary KA630, the 2nd auxiliary KA630's memory, and so
on. With a BA23 or a BA123, you'll run out of slots very quickly. Micronote
26 recommends BA11-S. A BA213 will do fine too.
   
   Since each "cluster" can use the CD interconnect as it pleases, you must
make sure that no two adjacent "clusters" interfere with each other. This
means that if a module is the first one in a cluster, it must not connect
anything to the fingers on the right side of its slot (on the component
side of the module). This is true for any KA6xx module, but some modules
designed or configured for Q/Q slots will give you trouble. Since Q-bus
requires grant continuity and no slot can be left completely empty in the
middle of the Q-bus backplane, Q/Q cards must have two grant continuity
etches on the bottom half of the slot connector. As it happens, these
etches are on the component side and short some fingers on the right side
of the CD slot. Since the last card in a "cluster" may put out some signals
on the left side of its slot (this will certainly be the case with
KA6xx/MS6xx "clusters"), putting a Q/Q card in a Q/CD slot immediately
following a KA6xx/MS6xx "cluster" will cause you grief.
   
   This leads to the following question for Tim and others. Since
apparently the original Q18 backplanes were Q/CD, the original quad-width
Q18 cards didn't have grant continuity etches on the CD half, did they? If
they didn't, this creates another Q22 compatibility problem for them, since
Q22/Q22 backplanes like BA23 and BA123 require these etches, right? Then at
some point they started putting these etches on all cards, which created a
problem when BA213s came about and people had a quad-width Q-bus card
immediately following an MS650. This makes me wonder if DEC's original
intention was to allow the first card to have connections on the right side
but not to allow the last card to have connections on the left side, and if
only MicroVAX II reversed this. Does anyone have an idea?
   
   Sincerely,
   Michael Sokolov
   Phone: 440-449-0299
   ARPA Internet SMTP mail: sokolov@alpha.ces.cwru.edu