Programmgesteuerter Rechner

 

Programmgesteuerter Rechner

Introduction

This relay computer, built by the german company Phywe, was intended to be used as a demonstration unit for teaching the basics of digital computing techniques.

The machine

  • The picture above shows the complete machine (not shown is the external power supply which has to supply 24V at approximately 4A - much of this current is needed for the dozens of light bulbs). All units of the computer are separated and all data, address and control paths are depicted as arrows with associated light bulbs showing which connection is active at a time.

    The machine has a six bit instruction word and accordingly a memory width of six bits, too. These six instruction bits are divided into three bits to code the instruction and three address bits for the instruction operand. So the machine has only eight memory locations of six bits.

  • Left from the middle of the machine the memory system can be seen - it consists of eight memory locations of six bits each. Every bit is stored in an electrolytic condensator, the selection of a single storage location is done by a relay (on the right of the condensator bank lines).

    Below the memory bank is the central buffer register - all accesses from and to memory are done via this register. It is connected with the ALU on the right and the instruction decoder on the left.

    The light bulbs in the upper left of the machine show which instruction has been decoded recently. Also located here are the address register for controlling all memory accesses and the program counter.

    The right half of the computer contains the (already mentioned) serial ALU, the six bit accumulator, a branch counter and the control logic. The switch in the upper right corner is used to select the desired run mode of the machine. It can be operated in single step mode (microsteps or instruction steps), in slow and fast mode.

    In fast mode, the machine is capable of performing approximately one instruction per second.

    Numerical values are represented in 1-complement (like in old CDC machines beginning with the CDC-1604 and ending with the CDC-7600), i.e. the negative form of a number is generated by inverting all bits of the number. Note that there is no correction term of +1 like in two's complement, so there are in fact two nulls in in this machine - +0 (000000) and -0 (111111).

The instruction set

  • The machine features a very simple instruction set of only eight instructions. To simplify the instruction decoder all instructions feature the same format:

    3 bit instruction code 3 bit operand address

  • Since the machine was intended to be used in german high schools, its instruction mnemonics are abbreviations of german command descriptions. The following table shows all instructions with their names and a short translation.

    Mnemonic Code Description Translation
    STO 000 STOp Halt the machine
    ADD 001 ADDiere Add the value of the specified memory location to the accumulator
    SUB 010 SUBtrahiere Subtract
    NBS 011 Negativ Bringen in Sprungzähler Copy value into jump counter, change sign
    RSP 100 RückSPeichern Store content of accumulator in memory
    SPU 101 SPringen Unbedingt Jump unconditional
    SPP 110 SPringe, wenn Positiv Jump if accumulator content > 0
    SPZ 111 SPringe, wenn SprungZähler <> 7 Jump if jump counter content is not equal to 7

The machine in operation

  • A short movie which can be found here shows the machine in operation. The computer calculates the sum of one and two by executing the instructions

    ADD 4
    ADD 5
    STO

 

29-AUG-2003

ulmann@vaxman.de, 30-NOV-2003