The PDP-16 Register-Transfer Modules
and
The PDP-16/m "Subminicomputer"

The PDP-16 was a collection of register-transfer-level modules used for designing unique (or relatively low production volume) systems. The control mechanism of these systems was created by connecting together modules representing the blocks in a flow chart. The data path of these systems was created by connecting together data, memory, and transducer (I/O) modules. Cross-connections allowed the control mechanism to control the data path and branch in response to information coming back from the data path.

The PDP-16/m was a canonical configuration of PDP-16-series modules that was really a small microprogrammable computer. The control mechanism trivially interpreted a microprogram stored in a braided-wire ROM, in which a wire for each word of memory passed through or around a core for each bit in a word, indicating whether or not that bit in that word was a 0 or a 1. (I believe that this was the same basic technique as used in the PDP-9, although that wasn't modifiable by customers.)

From [DEC 1971]:

Figure 1-1: Factors Suggesting Use of PDP-16:

Factor
Logic module system
PDP-14
PDP-16
Full-scale minicomputer (PDP-16, PDP-8/e, OR PDP-11)
Type of computation Boolean (single-bit) functions Boolean functions Binary arithmetic commands and subroutines-multiply, binary to BCD, etc. Same as PDP-16
Day-to-day program changes No No No Yes
Number of identical systems per year 1-10 1 or more 1 or more 1-10
Memory requirements <20 bits 1K including control steps 1-16 16-bit words typical, up to 256 16-bit words (read, write, and/or 1K 16-bit read-only) for special applications >1K, 12 to 16 bits
Control program steps <20 <1000 20-250 (excluding looping and memory accesses) >150
Cost <$1000 >$3000 $800-$4000 >$3000

Table assembled from information in [DEC 1971] and [Bell et al. 1972]: PDP-16 modules:

English Name PMS Name Generic Name DEC Module Number Description
Evoke units K(evoke) KEV16 M7310
Two-input OR gates K(serial merge; 4 input) KOR16-A M1307 10 2-input NOR gates for merge of control flow or branch input expansion.
Four-input OR gates K(serial merge; 2 input) KOR16-B M1103 6 4-input NOR gates for merge of control flow or branch input expansion.
K(subroutine call) KSR16 M7315

6 subroutine return units.

One start pulse circuit.

K(branch 2-way) KB16-A M7312 6 2-way branch units.
K(branch 8-way) KB16-B M7314 2 8-way branch units.
Bus sense K(bus sense and termination) KBS-16 M7304
Bus terminator KTM-16 M962
K(bus control and termination combined) KBS16-A M7332
T(lights and switches) KBM16X M7334
K(clock) M401
D(NOT) M111
D(NOR)
D(decoder; 4 input) M161
Arithmetic control K(function encoder) KAC-16A M7330
Arithmetic registers DM(arithmetic register unit) KAR16-A M7331
DM(gpa; control) KAC16 M7300
DM(gpa; registers) KAR16 M7301
General-purpose interface T(general purpose interface) DB-16A M7311
Output interface T(output interface) DB16-B M7316
Input interface T(input interface) DB16-C M7317
Serial data interface T(serial interface) DC16-A M7313
Constants generator MR16-A 4 16-bit constants, set via jumpers on the board.
Transfer register M(transfer) MS16-A M7305 16-bit register with the ability to read or write the whole word or either byte.
Byte register M(byte) MS16-B M7320 16-bit register with the ability to read the low 4, 8, 12, or 16 bits and with the ability (via jumpers on the board) to read with bits interchanged
Scratch-pad memory M(scratchpad; 16 words) MS16-C M????18 16 words of 16 bits. There is a separate signal to control reading and writing of each word.
Scratch-pad memory M(array; 256 words) MS16-D M7319 256 words of 16 bits. The address must be loaded from the bus before the data can be read or written.
Scratch-pad memory MS16-E 1024 words of 16 bits. The address must be loaded from the bus before the data can be read or written.
Flags DM(flag) KFL16 M7306 3 1-bit flags (D flip/flops).
No-op unit K(no-op) KNP-16 M7321 Provide a 100-200ns delay in a control signal.

Every PDP-16 system must have a KBS-16 and a KTM-16.

The backplane contains a 32-bit data bus used to transfer data between modules.

The KAC-16 and KAR-16 are used together, in adjacent slots of the backplane, so that an edge connector can join them on the handle-end.

[Editor's notes: The M-series modules (named for their maroon handles) were largely built from 7400-series TTL SSI/MSI ICs. Some of the above modules, such as M111, were standard modules with uses outside of PDP-16 systems, and consist of a relatively small number of ICs on a single-height, single-width module; as such, one may conclude that they were fairly wasteful of a level of packaging, trading off space and cost for ease of assembly of the system. Compare this aspect of the PDP-16 modules to the Universal Control Modules. ]



Back Up Back


Copyright © 1998 Aron K. Insinga. All rights reserved.