Unibus zero vectors on vax/780

Dave Martindale dmmartindale at watcgl.UUCP
Thu Oct 4 01:06:06 AEST 1984


All of the 780's that I've seen slowly accumulate zero vectors over time.
As far as I can tell, it is a feature of the interrupt controller used
in most DEC hardware.  When a device sees a bus grant going by at the
program interrupt level that it is on (BG4 or BG5 usually) and sees a
request for DMA cycle active (NPR), it will grab the grant, return
SACK to the arbitrator, and then release the bus to allow the NPR to
be serviced.  On PDP11's, this just caused a bit of wasted bus activity
but gave faster service to NPR's.  On the 780, at the point that the
BG is issued, the CPU is already in its interrupt service routine for
the UBA, and when a device doesn't complete an interrupt sequence,
the UBA returns 0 as the vector.

Thus zero vectors are a "feature" of the interrupt controllers
in some devices (DZ's included) which come into play when there is
DMA and programmed I/O activity occuring at the same time on the UNIBUS.
Having DZ's make it worse, since they do so much programmed I/O.
But I believe that this condition is quite normal and there is nothing
you can do about it, short of rearranging your UNIBUS.  Probably,
the kernel should be changed so that it does the UBA reset only if
the zero vector count has been very high over a very short period.
Accumulating the number since boot time without decrementing it
periodically is just silly.



More information about the Comp.unix.wizards mailing list