Chapter 5
The DEC PDP-8
Introduction1
The PDP-8 is a single-address, 12-bit-word computer of the second generation. It is designed for task environments with minimum arithmetic computing and small Mp requirements. For example, it can be used to control laboratory devices, such as gas chromotographs or sampling oscilloscopes. Together with special T's, it is programmed to be a laboratory instrument, such as a pulse height analyzer or a spectrum analyzer. These applications are typical of the laboratory and process control requirements for which the machine was designed. As another example, it can serve as a message concentrator by controlling telephone lines to which typewriters and Teletypes are attached. The computer occasionally stands alone as a small-scale general-purpose computer. Most recently it was introduced as a small-scale general-purpose time sharing system, based on work at Carnegie-Mellon University and DEC. It is used as a KT(display) when it has a P(display; '338); this C is discussed in Chap. 25. The PDP-8 has achieved a production status formerly reserved for JBM computers; about 5,000 have been constructed.
PDP-8 differs from the character-oriented 8-bit computer in Chap. 10; it is not unlike the 16-bit computers, such as the IBM 1800 in Chap. 33. The PDP-8 is typical of several 12-bit computers: the early CDC-160 series (1960), CDC-6600 Peripheral and Control Processor (Chap. 39), the SDS-92, M.I.T. Lincoln Laboratory's Laboratory Instrument Computer LINC (1963), Washington University's Programmed Console (1967), and the SCC 650 (1966).
The PDP-5 (transistor, 1963), PDP-8 (1965), PDP-8/S (serial, 1966) and PDP-8/I (integrated circuit, 1968), PDP-8/L (integrated circuit, 1968) constitute a series of computers based on evolving technology. All of these have identical ISP's. Their PMS structures are nearly identical, and all components other than Pc and Mp are compatible throughout the series. The LINC-8-338 PMS structure is presented in Fig. 1. A cost performance tradeoff took place in the PDP-8 (parallel-by-word arithmetic) and PDP-8/S (serial by-bit arithmetic) implementations. A PDP-8/S is one-fifteenth of a PDP-8 at one-half the cost. The performance factors can be attributed to 8/1.5 or 5.3 for Mp speed and a factor of about 3 for logical organization, even though the same 2-megahertz logic clock is used in both cases. The PDP-8 is about 6.7 times a PDP-5.
The ISP of the PDP-8 Pc is about the most trivial in the book. It has only a few data operators. namely, ¬ , +, - (negate), Ø , L , / 2, ´ 2, (optional) X, /, and normalize. It operates on words, integers, and boolean vectors. However, there are microcoded instructions, which allow compound instructions to be formed in a single instruction.
The computer is straightforward and illustrates the levels discussed in Chap. 1. We can easily look at it from the "top down." The C in PMS notation is
C('PDP-8; technology:transistors; 12 b/w;
descendants:'PDP-8/S, 'PDP-8/I 'PDP-8/L;
antecedents: 'PDP-5;
Mp(core; #0:7; 4096 w; tc:1.5 m s/w);
Pc(Mps(2 ~ 4 w);
instruction length: 1 ô 2 w
address/instruction: 1;
operations on data/od:(¬ , +, Ø , L , -(negate), ´ 2, /2, +1)
optional operations:( ´ , /, normalize);
data-types:word, integer, boolean vector;
operations for data access:4);
P(display; '338);
P(c; 'LINC);
S('I/O Bus; 1 Pc; 64 K);
Ms(disk, 'DECtape, magnetic tape);
T(paper tape, card, analog, cathode-ray tube))
ISP
The ISP is presented in Appendix 1 of this chapter (including the optional Extended Arithmetic Element/EAE). The 212-word Mp is divided into 32 fixed-length pages of 128 words each. Address calculation is based on references to the first page, Page_ 0, or to the current page of the Program Counter/PC. The effective-address calculation procedure provides for both direct and indirect reference to either the current page or the first page. This scheme allows a 7-bit address to specify local page addresses.
A 215-word Mp is available on the PDP-8, but addressing greater than 212 words is comparatively inefficient. In the extended range, two 3-bit registers, the Program Field and Data Field Registers, select which of the eight 212-word blocks are being actively addressed as program and data.
There is an array of eight registers, called the Auto_ index registers, which resides in Page_ 0. This array (Auto_ index[0:11]á 0:7ñ : = M[108:178]á 0:11ñ ) possesses the useful property that whenever an indirect reference is made to it, a 1 is first added
1
The initials in the title stand for Digital Equipment Corporation Programmed Data Processor.120