From: Johnny Billquist: Monday, January 12, 2015 10:21 AM
On 2015-01-12 19:17, Johnny Billquist wrote:
On 2015-01-12 18:19, Vincent Slyngstad wrote:
One answer might be "the skip chain".
Since interrupts weren't
vectored, it was necessary to query each device in priority order to see
if it was currently requesting interrupt service.
Ah. Good point. I forget to include this in the possible interpretations
of interrupt latency.
Actually. This needs some correction. The interrupt skip chain itself is
not the latency. The skip chain is just some extra time required to
actually jump to the correct interrupt handler. The interrupts are
(normally) off until the interrupt handler finishes.
They'd better be off until the last device is in service, or you'll get
re-entry problems in the interrupt service routine. In practice, I've
never seen interrupts on during a PDP-8 service routine.
The skip chain is just a smaller part of that whole
thing.
OK, but it is a significant overhead compared to later (vectored)
interrupt system designs, and means it takes longer to get to
where you're going.
The un-vectored design also means more problems with
re-entry, since all the interrupts call the same routine. And
the JMS instruction design makes it a bear to write re-entrant
code on a PDP-8.
I think it comes back to the "what do we mean by latency"
question.
Vince