Difference between revisions of "M8264 No-SACK Timeout Module"

From Computer History Wiki
Jump to: navigation, search
(Cover this obscure thing)
(No difference)

Revision as of 22:15, 1 April 2022

M8264 Timeout Module card

The M8264 No-SACK Timeout Module is rare, little-known, poorly-documented optional UNIBUS board for the KD11-D CPU of the PDP-11/04 and the KD11-E CPU of the PDP-11/34.

It provides the grant timeout circuit which is not included in those two CPUs.

It was a quad format card, which plugged into any available SPC slot. The M8264 doesn't tie into the CPU, it just looks at UNIBUS lines, so it can be plugged into any UNIBUS machine (near the start of the bus, since the bus grant lines it monitors are wired sequentially).

EK-KD1EA-MM-001 Section 4.7.2.4, "No-SACK Timeout Circuitry", shows a very similar circuit to that of the M8264 (see link below), and says it "asserts BUS SACK ... [if the device] does not assert SACK within 22 usec after a grant line has been enabled." Presumably the M8264 does the same thing.

(The M8264 also has a synchronous 4-bit up/down counter, but that's apparently just there to count timeout events, and display the count in some LEDs - probably just to make sure it isn't happening too often.)

The M8264 was later dropped when the KD11-EA CPU, with a grant timeout circuit built in, came out.

Functionality discussion

How can a bus grant go unused? If a device requests a grant (i.e. posts an interrupt request), and then drops the request at just the right time (perhaps because the device is reset), a grant will be sent out when there's no device waiting to take it.

EK-11034-OP-PRE2 gives a clue as to how the problem with grant timeouts which the M8264 solved started. In 3.10.2, "End-of-Bus Terminator", it says:

"As a result of this [SACK turnaround] circuitry [on the M9302], the SACK timeout feature found on other processors is not required"

The M9302 does a very similar thing, at a high level - prevents unused bus grants from hanging the machine - albeit with a different mechanism (by turning an 'unused' bus grant into a SACK). However, therein lies a mystery: the M9302 appears in EK-11034-OP-PRE2 (above), and one can deduce that the M8264 was produced after that came out, and post-dates the M9302 - but it fixes the same potential CPU hang issue. The M8264 thus seems to exactly replicate the functionality of the M9302. So why was it produced?

One possibility is that there are circumstances in which the M9302 'solution' doesn't work; for example, if there's a break in the grant line (perhaps a missing grant continuity card) down-stream from the device (so the system usually works), before it gets to the M9302 (which can turn the grant around as a SACK); then, if an 'unused' grant happens, a CPU without a grant timeout circuit will hang!

The M8264 was apparently the first attempt to deal with this. It is timer based, and it doesn't need the intact grant line to the terminator required for turnaround. So the system won't lock even if there is a broken grant chain - or a poorly behaved or hung device eating grants.

(Another possible cause is a device which is malfunctioning: not passing a grant along, but eating it, but without doing the interrupt cycle with the CPU. So either a hard-failed component in the grant-passing circuit, or some design flaw.)

External links