Skip to Main Content
This paper is an investigation of the organization of a parallel microcomputer designed to emulate a wide variety of sequential and parallel computers. This microcomputer allows tailoring of its control structure so that it is appropriate for the particular computer to be emulated. The control structure of this microcomputer is dynamically modified by changing the organization of its data structure for control. The microcomputer contains six primitive operators that dynamically manipulate and generate a tree-type data structure for control. This data structure for control is used as a syntactic framework within which particular implementations of control concepts, such as iteration, recursion, co-routines, parallelism, interrupts, etc., can be easily expressed. The major features of the control data structure and the primitive operators are: 1) once the fixed control and data linkages among microprocesses have been defined, they need not be rebuilt on subsequent executions of the control structure; 2) microprograms may be written so that they execute independently of the number of physical processors present and still take advantage of available processors; 3) control structures for I/O processes, data-accessing processes, and computational processes are expressed in a single uniform framework. An emulator programmed on this microcomputer works as an iterative two-step process similar to the process of dynamic compilation or run time macroexpansion. This data structure approach to emulation differs considerably from the conventional approach to emulation and provides a unifying approach to the emulation of a wide variety of sequential and parallel computers.