previous | contents | next

Chapter 3l System design of a FORTRAN machine 365

Fig. 1. Data format in memory.

teristics of a machine that loads and executes the language specified above, it may be well to indicate two basic design goals.

1 The card deck or tape containing the Hollerith or BCD version of the English language form of a source program should be the only deck or tape required at any time to execute the program.

2 Once this program is loaded into memory and execution started, any look "into the machine" should reveal information in the same form in which it was entered. Thus if the program is executing X = A + B, then one should find "X", "=", "A", "+", "B", at least in their BCD form.

The second goal has been compromised somewhat as far as the internal representation of the program is concerned in the interest of execution speed. However, all such compromises have been kept to a minimum. In addition, the mechanisms by which one can take such looks "into the machine" are such as to conceal these compromises.

Memory organization

The machine is, in effect, a hardware version of on "one-pass-load-and-go" compiler and it operates in two modes. In the load mode FORTRAN statements are read. They are analyzed as required and stored in memory. When the last statement has been stored, the execution mode is entered and program execution begins at the first executable statement that was read. The input/ output device for the machine design is a Flexowriter Model SPD. Programs are assumed to be punched onto a paper tape, one statement per line, followed by a "carriage return" which generates a paper tape symbol to separate statements. When this tape is read into memory, blanks are automatically "squeezed out."

The memory around which the machine is designed is a 4096-word, 8-bit-per-word, random-access core memory.1 It is treated by the control circuits as though it consisted of three distinct regions.

1 Input/output (I/O) buffer: One statement at a time is loaded sequentially into memory locations 0-99. The six-bit paper tape codes are first converted to internal (often different) six-bit memory codes and stored in the six least significant positions of the 8-bit words. The carriage return symbol is encoded into a special "end-of-statement" symbol represented in the paper as "t." When this symbol is read the tape is also automatically stopped.

2 Symbol table area: Memory locations 4095 and sequentially downward in memory hold the programmer's names for variables, statement numbers, etc., as well as "pointers" to machine addresses, plus empty (before execution) locations for data.

3 Program area: Memory locations 100 and sequentially upward hold the FORTRAN program, in a slightly modified form.

Operating modes

The load mode circuits control the input of FORTRAN statements. They place certain information in the Symbol Table Area and the modified form of the FORTRAN statements in the Program Area. It is while in this mode that the necessary searches for variable names take place and machine addresses are assigned. These addresses replace portions of the variable names in the statement as it appears in the Program Area. Similar processing replaces programmer-assigned statement number references in the Program Area with various internal "pointers" for control of GO TO, DO, and IF statements. This modification is done so that statement execution in the execute mode can proceed at high speed. In short, the FORTRAN statement in the Program Area is modified to the extent that variable names are replaced by actual data addresses and statement number references are replaced by actual addresses of statement locations in the Program Area. This translation is done once only, when the statement is analyzed in the load mode. It might be noted here that because of the "one-pass" nature of the translation (a given statement is analyzed only once), certain

15-m s cycle time, EE Co Model 781.

previous | contents | next