Patent GB-892433-A (GB)
Title: Improvements in and relating to program controlled electronic data processing machines
IPC: G06F9/48
Filed: 1958-12-09
Abstract: 892,433. Digital electric calculating-apparatus. INTERNATIONAL BUSINESS MACHINES CORPORATION. Dec. 9, 1958 [Dec. 9, 1957], No. 39650/58. Class 106 (1). An electronic data processing machine comprises means for sequencing the machine through a programme of operations, means for detecting the occurrence of a predetermined condition during the programme and producing an indication thereof and means for selectively monitoring said indication to permit an automatic interruption of the programme. During the execution of the programme, certain conditions which may be internal such as an overflow during an arithmetic operation or external such as a read or write for a magnetic tape unit may occur and require a variation in the normal sequential execution of instructions. As described, an indicator register having a plurality of stages corresponding to various conditions is provided, a binary 1 indicating the occurrence of the condition associated with that stage, and this indicator register is used to control the interruption of the programme. (1) General arrangements.-The computer employs binary words of 36 bits including one sign bit which may be split into two 18 bit words each including one sign bit. The memory unit, Fig. 1c, comprises 36 cathode-ray tubes capable of storing 2,048 36-bit words, one bit of each word being stored in each tube. A clock timer, Fig. 1b, comprises a twelve stage electronic trigger ring and produces twelve 1Ás pulses per cycle. The machine can operate in four types of cycle, called instruction (I), execute (E), execute/regenerate (E/R), and regenerate (R) cycles, the type of cycle being controlled by a cycle timer, Fig. 1b. Information is read from the memory to a buffer store termed the memory register MR comprising 36 delay units and may be transferred to register and other units of the computer. The adder, Fig. 1d, comprises 37 orders, two of which, P and Q, are overflow orders. The accumulator register, Fig. 1d, has 38 orders comprising the 35 binary bits of a full word, two overflow orders P and Q, and a sign bit. The contents of the accumulator may be copied into the memory by a STORE instruction. A register MQ, the multiplier quotient register, Fig. 1g, has 36 orders of the delay unit type used in the memory register MR. Words may be read from the memory, via MR into the MQ register, and may be read out from MQ via memory bus switches, Fig. 1e, into the memory. An instruction register, Fig. 1f, receiving information from the memory register MR stores an instruction (half word) during an instruction cycle. The operation part of the instruction is available to an operation decoder, Fig. 1f, and the address part to a deflection register, Fig. 1e. A twelve stage instruction counter, Fig. 1c, is stepped on by one at the end of each operation, an output from the counter being fed to the deflection register so that in the next instruction cycle the succeeding memory address is referred to, although a jumping of instructions may be produced. A regeneration counter, Fig. le, comprises ten electronic trigger stages storing bits 6-15 and its output is fed to the deflection register during execute/regenerate and regenerate cycles and is stepped up by one for each such cycle completed. The deflection register has twelve orders and acts as a buffer for the memory deflection and memory control circuits, Fig. 1g. A diode matrix serves as an operation decoder, Fig. 1f, to decode the operation positions 1-5 of an instruction, producing an output on one of 41 leads. Information read out from the memory during an instruction cycle is channelled to the instruction register and information read out in an execute cycle is handled as numeric data. A gate generator, Fig. 1b, controls the basic timing of the machine. An address sign and address counter mixer circuit provides outputs indicating whether the signs of the MR, the accumulator register and the MQ are alike or not and also passes signals from the instruction register indicating when the address counter reaches a desired count during a multiply or divide operation and whether a full, a first half, or a second half word is addressed. Triggers are provided to indicate overflows in the adder and accumulator during certain operations. A multiply/divide tally counter, Fig. 1b, controls the type of cycle that occurs during multiply and divide operations and execution timers control data processing throughout the machine. An interruption timer, Fig. 1b, causes an extra instruction cycle when an interruption occurs. An indicator register, Fig. 1h, comprising 36 electronic triggers holds indication of condition such as accumulator overflow which can initiate an interruption, a mask register also being provided having 36 triggers each controlling the effectiveness of the corresponding trigger in the indicator register to cause an interruption. The indicator and mask registers are connected by an interruption indicator with 36 orders arranged to provide an output if the corresponding order in the register is on and no other interruption indicator orders to the left have outputs, the outputs of the interruption indicator being decoded in a leftmost one counter, Fig. 1i. A register called the base address register, Fig. 1i, comprising 12 orders of electronic triggers holds a base address which is added by an interrupt adder to the output of the leftmost one counter to form the memory address from which an instruction is taken when an interruption occurs. (2) Instructions.-There are 41 possible operations, the corresponding instruction being five-binary-digit words, recognized by the operation decoder, Fig. 1f. Instructions are normally carried out sequentially, but a transfer instruction +00001 causes the next instruction to be taken from that memory address specified by the address portion of the transfer instruction. An ADD instruction, 01001, causes the number in the memory address specified by the address part of the instruction to be added to the numbers stored in the accumulator register. In a SUBTRACT instruction the sign of the number read from the designated memory address is changed before this number is added to that in the accumulator. Further instructions described relate to storing the contents of the various registers in the memory and loading the various registers with the contents of specified memory locations. A multiply instruction 10000 causes the accumulator to be reset to zero and the number at the memory address specified by the address part of the MULTIPLY instruction to be multiplied by the number in the multiplier quotient register MQ, Fig. 1g, the more significant 35 bits of the product appearing in the accumulator register, and the less significant in the multiplier quotient register MQ. The multiplicand may be either a full or a half word. A DIVIDE operation 10010 divides a 70 bit dividend by a 35 bit divisor to produce a 35 bit quotient and a 35 bit remainder. If the absolute value of the quotient is unity or greater, a DIV CHECK error signal is produced. Other instructions relate to right and left shifts in the accumulator and between the accumulator and the MQ register. (3) Clock. (Fig. 1b and Figs. 3a, 3b, not shown).-The clock unit comprises a 1 megacycle oscillator, the output from which is used to derive positive "sync." pulses having a duration of about 0.3 Ás. and negative " clamp " pulses having a duration of about 0.2 Ás. both at the 1 megacycle oscillator frequency. A chain of twelve trigger circuits is also stepped at the 1 megacycle rate, an output being taken from each stage to produce positive 1 Ás. pulses on lines A0-A11, a pulse on all twelve lines constituting a cycle. (4) Cycle timer. Figs. 1b, and 3c, 3d.-The cycle timer determines whether a cycle is an instruction (I) cycle, an execute (E) cycle, an execute/regenerate (E/R) cycle or a regenerate (R) cycle according to which of the four outputs, Fig. 3d, is operative. Control circuits emit " go to execute," " go to execute/regenerate," or " end of operation " signals. Thus a " go to execute " signal is a 1 Ás. pulse at pulse position 11 of the clock cycle and appears on the GO TO EX line, Fig. 3c, and causes a singleshot multivibrator 333b to produce a 3 positive signal which is supplied to AND circuits 362b, 363b and to an OR circuit 348b so that lines SET and RESET produce 1 Ás. positive and negative pulses respectively synchronously with an input on the line A0. The AND circuit 363b is therefore conditioned and turns on a trigger 393b to supply one input on a line E<SP>1</SP> to an AND circuit 395b, the other input being on unless the machine is in a regenerate cycle, a line EX TIME being driven positive until the trigger 393b is subsequently turned off in response to a RESET signal when a different type of cycle is called for. An " end of operation " input on the END OF OPN line, Fig. 3c, causes an output on the line INST TIME unless the machine is in a regeneration cycle. The machine is set to a regeneration cycle by an output on the line RGN TIME in response to a RGN REQUIRED input or if the machine is stopped. When regeneration is no longer required then assuming the machine is not stopped, a positive signal at clock time 0 turns off the trigger 314c. (5) Gate generator circuits. Figs. 1b and 3e (not shown).-These circuits mix clock pulses and output signals from the cycle timer to produce the gating signals required in the operation of the calculator. (6) Interruption timer. Figs. 1b and 3f.- These circuits are effective when an interruption occurs to cause a special instruction to be taken from the memory register specified by the base address register and leftmost one counter. An interrupt condition, detected by combining the inputs of the indicator and mask registers causes a positive signal on the IRPT SIGNAL line. At clock time 6 of the next following instruction cycle, a gate 301e is opened to turn on a trigger 3