Update on zero UNIBUS interrupt vector problem
Howard Hull
hull at hao.UUCP
Sun Oct 2 09:47:49 AEST 1983
doned bus requests, since an
interface that has been reset (probably by internal microcode)
will thereafter allow bus grants to pass freely. The active
terminator will assert BUS SACK if it sees any request. The
processor/arbitrator *will not* interpret this as a zero
interrupt vector *unless* somebody (anybody) asserts BUS INTR,
places a vector on the bus, and then drops away just after
negation of BUS SACK by the M9303.
2. The "Grant Blocking"/"Grant Stealing"/"Passive Release" action
of controllers is not a common feature of all DMA interfaces.
they have to be deliberately jumpered to obtain it. The event
occurs when the interface in question receives a *priority*
grant (not an NPG) at the level of its status reporting unit
and simultaneously sees NPR on the bus. In order to reduce
the latency in behalf of the DMA interface requesting the bus
(whichever interface that might be) the priority interrupt
controller on the interface in question blocks the priority
grant from interfaces installed further down the bus, and
asserts BUS SACK. When the arbitrator sees the SACK, it then
negates the priority grant. The interface in question then
negates the SACK, and the arbitrator, seeing SACK negated in
absence of an assertion of BUS BBSY, BUS INTR or MSYN, asserts
NPG for the DMA device. Obviously, the behavior of the bus will
depend on how close to the front of the bus (more in terms of the
number of interfaces than in terms of distance) the interface
in question has been installed. Also, double obviously, this
is a supreme moment for another microcoded (and thus confused)
interface to assert (erroneously) BUS BBSY and BUS INTR without
even knowing what vector it wants to put on the data lines
(so *no vector*).
3. A DMA interface can work EVEN IF THE NPG LINK HAS NOT BEEN CUT
provided that it is the last DMA device on the Unibus prior to
the terminator. The only problem that may occur is a due to
possible differences in timing between the interface's SACK
assertion, and the "me too" SACK of the active terminator.
The fun begins when an unsuspecting (thus foolish) installer
adds a new DMA interface to the bus behind the one with the
uncut link. The poor fellow goes crazy trying to figure out
what is wrong with *his* installation that causes both DMA
interfaces (whose data, addresses and vectors are going to be
"wire or'd") to fail all of the diagnostics.
4. The best method I know of to "scope" a Unibus is to first check
all 56 of the Unibus levels with the computer in halt mode (this
will reduce the amount of bus activity to either none or nearly
none, depending on the processor and DMA devices installed).
Look for +3.4 to +3.7 volts for zeros, +0.3 volts for ones.
Anything "resting at 1.5 volts" is suspect. ACLO and DCLO are
usually less than 3 volts, though. Then start the system and
put the scope on BRx, BGx, BBSY, SACK, INTR, MSYN, SSYN one at
a time with the scope set up to see glitches of about 100 ns.
Detect these using AC sync, either + or - slope, and slowly
rotating the Trigger Level control through its range. Turn
the trace brightness up far enough that you can see the faint
stuff near the trigger edge against the brighter regular cycles.
Normal Unibus activity will not have high-low-high or low-high-
low control signal transitions shorter than around 275 ns.
A Tek 475A scope is ideal for this sort of work because of
its fast write.
So.
You're welcome in advance! YT, Howard Hull
{ucbvax!hplabs | allegra!nbires | decvax!brl-bmd | harpo!seismo | menlo70}
!hao!hull
More information about the Comp.unix.wizards
mailing list