**Chapter 21**

Design of an arithmetic unit incorporating a nesting store^{1}

R. H. Allmark / J. R. Lucking

* Summary *This paper describes the arithmetic unit of a computer whose order code is based on the

Introduction

The arithmetic unit of a general purpose digital computer contains circuits to perform at least the basic operations of addition, subtraction, multiplication and division. In many machines it is possible to use some of the registers in the arithmetic unit as temporary storage for the partial results arising during a calculation; thus the accumulator of a one-address machine is used to store the result of the last arithmetic operation. The arithmetic unit described in this paper uses a nesting store, operating on the last-in-first-out principle, for the storage of its data and partial results. The nesting store consists of a stack of cells, of which only the most accessible supply data to the arithmetic unit, the results are automatically returned to the most accessible cells and the original operands erased, less accessible information being moved into the cells made vacant by the operation.

The computer and its order code

The arithmetic unit is part of a general purpose synchronous system, working in the parallel mode, with main core storage of (up to) 32, 768 48-bit words, and provision for the time sharing of up to 4 programmes. The order code of the computer is based on the *Reverse Polish *algebraic notation, and contains four groups of operations:

*a *Transfers between the arithmetic unit and the main store.

*b *Arithmetic, logical and manipulative functions on data in the nesting store.

*c *Conditional and unconditional jump instructions used to interrupt the normal sequencing of instructions.

*d *Instructions for controlling the operation of the various peripheral devices which may be attached to the machine.

Main store transfers include instructions for transferring half and full-length words to the most accessible cell of the nesting store, information already in the stack being retained by transfer to the less accessible cells. The contents of the most accessible cell of the stack may be stored in the main store; they are then automatically erased from the stack while information is moved from the less accessible cells to a more accessible position.

Arithmetic operations also feature the transfer of data in the nesting store so that the operands are destroyed, the results are left in the most accessible cell (or cells), and data not involved in the operation are moved to fill any vacated cells.

Thus the programme for evaluating

*f *= *(a *- *b)/(c + de)
*may be written:

fetch a,

fetch *b,*

subtract (forming a - *b *in the most accessible cell and erasing both a and *b *from the stack),

fetch *d,*

fetch *e, *

multiply (forming *de *in the most accessible cell, erasing *d *and *e, *and thus leaving a - *b *in the second most accessible cell),

*1Proc. IFIP Congr. 62, *pp. 694-698, 1962.

262