442 EVOLUTION OF COMPUTER BUILDING BLOCKS
3. The Register Transfer Modules make extensive use of MSI circuitry and can use LSI circuitry to provide even lower cost modules.
MODULE DESIGN CONSIDERATIONS
The three problem classes for which the modules were designed are: special purpose, computer-related, and educational digital systems. Although the initial motivation for the modules was for education, they were not designed solely for this purpose. The goals for educational use place too many constraints on the design. The main influence of the educational market has been to clarify the pedagogical nature; hence, the description of systems is made easy. The special purpose digital systems are larger than 20 MSI circuits, but smaller than a stored program computer (a typical RTM system would have 4 ~ 100 control states, 1 ~ 4 arithmetic units, and a small memory of l6 ~ 1000 words). Computer-related applications range from computer peripherals to the emulation of computers.
We make no attempt to show that the modules are an optimum set, according to an objective function. Because of the elementary nature of the control and data operations, the set is sufficient to construct digital systems. Table 1 shows the important design variables for RTMs, together with many of the constraints. Their design is described in Bell and Grason, .
THE RTM SYSTEM
The RTM system consists of about 20 different modules and a method of interconnecting modules via a common bus that carries data and timing interlock signals for the register transfers. Some of the modules (DM, T, and M types) connect to the bus in order to transfer data, and the remaining modules (K type) "control" when data are to be transferred. The module name types are based on the structure primitive types of Bell and Newell [1966; 1971].
A register transfer language, ISP (instruction set processor) [Bell, Newell, 1966; Bell, Newell, 1971], is used to define the register transfer operations of the RTMs. Here we use only the parts of ISP that are commonly known by the digital systems engineer and are similar to a programming language (e.g., FORTRAN). The four main module types are as follows.
DM-Type (Data Operation Combined with Memory)
These modules are what we commonly think of as being a digital system (or at least the arithmetic unit). They are the register transfer gating paths and combinational circuits for the simple arithmetic and logical functions - hence the D part (for data operations). The D part carries out the evaluation of the right-hand side of an arithmetic expression as in a programming language in which an integer value is computed prior to storing, e.g., ¬ A+B, ¬ A-B, ¬ AÅ B, ¬ A+1. Thus, an expression "left-hand-side ¬ right-hand side" (e.g., H¬ C+D) is used to indicate the integer value of the right-hand side being read and placed in the register on the left-hand side.
The memory (M) part is just the registers (e.g., A, B) that hold data between statements; these essentially correspond to the variables that are declared in a program. The operations on memory are usually reading (¬ M) and writing (M¬ ). Types of DM and M modules are the general purpose arithmetic unit, a single-transfer register, Boolean flags (1-bit registers), read-write memories, and read-only memories. The memories hold two's complement 8-, 12-, or 16- bit integers.
The K modules are responsible for con trolling the transfer of data among the various registers by appropriately evoking operations