previous | contents | next

492 THE PDP-1O FAMILY

it was unclear what memory speed a processor should support.

The notions of compatibility and family range were not appreciated even though SDS (which eventually became XDS and is now nonexistent) had built a range of 24-bit computers. We adhered to the then-imposed convention of the word length being a multiple of six bits (the number of bits in the standard character code), but designed the machine to handle arbitrary length characters.

OVERALL GOALS, CONSTRAINTS, AND BASIC DESIGN DECISIONS

Table 2 lists the initial goals, constraints, and some basic design decisions. Presenting this list separately from the design is difficult because the goals and constraints were not formally recorded as such and have to be extracted from design descriptions and our unreliable, self-justifying memories. Table 2 will be used in discussing the design.

The initial design theme was to provide a powerful, timeshared machine oriented to scientific use, although it subsequently evolved to commercial use. John McCarthy's definition [McCarthy and Maughly, 1962] of timesharing, to which we subscribed, included providing each user with the illusion of having his own large computer. Thus, our base design provided protection between the users and a mechanism for allocating and controlling the common resources. The machine also had to support a variety of compiled and interpreted languages. The construction was to be modular so that it could evolve and users could build large systems including multiprocessors. It was intended to enhance the top of DEC's existing line of 12- and 18-bit computers. It was designed to be simple, buildable, and supportable by a small organization. Thus it should use as much DEC hardware technology as possible.

THE INSTRUCTION SET PROCESSOR

Our goals for an ISP were: to efficiently encode the various programs using both compiled and interpreted languages; to be understandable and remembered by its users; to be buildable in current technology at a competitive price; and to permit a compiler to provide efficient program production.

Data-Types and Operators

Earlier DEC designs and the then-current six-bit character standard forced a word length that was a multiple of 6, 12, and 18 bits. Thus, a 36- bit word was selected.

The language goals and constraints forced the inclusion of integer and real (floating-point) variables. We chose two's complement integer representation rather than the sign-magnitude representation used on the 7090 or the one's complement representation on PDP-l. The floating-point format was chosen to be the same as the 7090, but with a format that permitted comparison to be made on the number as an integer in order to speed up comparisons and require only a single set of compare instructions.

Special (common) case operators (e.g., V = 0, V = V + 1, V = V - l)were included to support compiled code. Our desire to execute LISP directly resulted in good address arithmetic. As a result, both LISP and FORTRAN on DECsystem-l0 are encoded efficiently.

Since the computer spends a significant portion of its time executing the operating system, the efficient support of operating system data-types is essential. A number of instructions should be provided for manipulating and testing the following data-types:

1. Boolean variables (bits).

2. Boolean vectors.

previous | contents | next