Patent GB-926181-A (GB)
Title: Improvements in or relating to data processing systems
IPC: G06F3/06
Filed: 1960-05-09
Abstract: 926,181. Digital electric calculating. INTERNATIONAL BUSINESS MACHINES CORPORATION. May 9, 1960 [June 11, 1959 (3)], No. 16245/60. Class 106 (1). In a stored programme general purpose computor an instruction word may call up at least a part of a further word, named a control word, in order to complete the information necessary that the operation specified by the instruction word be performed. The main store is a magnetic core matrix into which data from peripheral devices such as magnetic tape stores, punched cards or tape may be read in one half-word at a time and from which data being processed including instruction words is read into three registers having interchangeable functions but of which two may be combined to form upper and lower accumulators. The computer is asynchronous, the completion of one operation leading to the read-out of the instruction word for the next operation from an address specified by an instruction counter. In the main store each word comprises ten alpha-numeric, six-bit (plus parity bit) characters, each character comprising four numeric and two zone bits. An instruction or control word comprises sixteen four-bit numeric characters, compressed to fifteen by limitation of variables and stored as ten six-bit characters by utilizing the zone bits of two characters of a storage word to specify one character of an instruction or control word. Thus the zone bits of characters 0 and 1 of a storage word represent the eleventh character of an instruction and are staticized as such in a register. A data word may be of up to ten characters overlapping two adjacent storage words, and if such a condition exists, known as a split-field, an operation is preceded by assembly of the required data word in one of the registers. A data word may be distinguished by its state which is on if a bit is present in the first zone position of the character 8, off otherwise. The machine is controlled by timers to each of which is allotted a fixed number of time intervals not all of which are used for any particular operations. Thus the arithmetic timer has 28 " times " but in the add operation without split-field only times 5, possibly 6, and 24 are used. The timers jump directly to the times used in the operation being performed. Instructions: format and codes.-An instruction word which is one of the specific types listed below, is in the form of an operation code (two characters), modifier (one character), control (four characters), operand (four characters), index (four characters) and index function (one character). An input-output machine control instruction is defined by an operation code 02 (Fig. 2); the modifier specifies certain machine functions, e.g. modifier 0 will cause control simply to determine if the required machine is busy, modifier 6 will cause a tape mark to be written to indicate end of file; control is not used; operand specifies the unit to which the instruction relates; index specifies the storage address of a control word and the index function specifies the use to be made of the control word (see below). A transmit instruction causes the transmission of data between peripheral equipment and storage or within storage the data comprising a character or part of word or words taken in succession or at scattered addresses. An arithmetic instruction (Fig. 4) specifies by its operation portion the four arithmetic operations or a compare operation in which a group of characters at an address specified by the control word is compared with a group of characters set up in the registers to produce a result high, low, or equal; the modifier causes such operations as clearing the register in which the result is to be placed, rounding or treating one operand as a positive number; the operand gives the address of one of the operands, the other is given by the control word; the first two places, counting from the left, control define the amount of left shift to be given to a number word of ten characters when entered into the accumulator, or such functions as floating shift or upper accumulator which states that a word is to be placed in the upper accumulator only. Floating shift means that the amount of shift is to be taken from a significant figure indicator which shows the position of the first significant digit numbering from the left. The effect is to normalize the number. Floating shift, store, means that the amount of shift is stored at a fixed address. An indexed shift causes the amount in this fixed address to be added to the amount of shift specified. The units and tens positions of control specify the field of the word to be operated on, the tens position containing the highest order character position of the field and the units position the highest order character position of the next field. The maximum field is ten characters and if the units figure is lower than the tens figure a split field operation is indicated. A branch or jump instruction (Fig. 5) is used to specify tests and consequent conditional or unconditional jumps. The operand portion gives the address of an instruction to be executed should a jump occur. The tests are given by the control portion and may involve index, the relative magnitude of the working address of a control word to that of the end address, balance, which tests the sign or magnitude of the result of the last arithmetic operation, field, which examines the significant length of an information word in relation to the field specified, compare, an operation similar to the arithmetic compare operation, in-out, to test the result of an input-output instruction word with 0 modifier, state, to test the state (as defined above) of the last control word, and the switch tests check the setting of manual switches. The operation portion of the instruction word specifies if a jump is to be made in accordance with a predetermined state of the control word at the index address, and also includes unconditional jump and halt operations. The modifier codes relate to the state of the word at the index address, codes 4 to 7 for example specifying that the test is performed and if satisfied the word is set to a particular state after which the state is tested and the operation, jump or halt, specified by the operation code performed. The immediate cause of a jump is the state of an interrogated word, although the final cause may be a test. A logic instruction provides that all or part of any storage word may be changed for example by means of and, or, or exclusive-or comparisons between the bits of two words. Control words.-These are of three types, each having a two-character condition code, a fourcharacter reset address, a five-character working address and a five-character and address. A control word may be associated with more than one instruction word. The use of a record word is illustrated in Fig. 10, in association with a transmit instruction word. The operand specifies the tape unit from which data is to be read into store. Control specifies the address of the record word of which the working address gives the location in storage of the first data word, and the end address gives the location of the last data word. As each word is read in the working address is advanced by one and the operation stops when the working address of the record word equals the end address. An index word (Fig. 7) is used in conjunction with the index function code of an instruction word. The function code includes four main operations and combinations of them: reset, which causes the contents of the index address of the instruction word to be replaced by the contents of the reset address of the index word; index operand, which causes the working address of the word at the index address of the instruction word to be added to the operand of the instruction word, the sum being used to address storage; advance causes the working address to be incremented by one after each operation; and modify which causes storage to be addressed by the working address of the index word to obtain an operand for the operation specified by the instruction word, the working address is then added to the operand portion of the instruction and the sum replaces the working address. The condition code of an index word includes the condition end, which terminates an operation when the working and end addresses are equal, and reset, which has the same meaning as in the function code. A routine word is used to call in subroutines as a result of a branch operation. It has only two conditions, off and on, and the working address may either (1) provide the storage address of a branch instruction word by indexing the working address of the routine word with the operand of the instruction word being executed as a result of function code index operand, or (2) provide the address of a control word specifying the return address to the next main programme instruction after performance of the sub-routine; the end address may specify the address of a word in which the return address is stored. If this word is an instruction word the return address is in the operand portion, if a control word, in the working address portion. One use of a routine word in association with branch instructions is shown in Fig. 21. Instruction 1066 is a " branch if on " instruction, on referring to the word 0132 specified by the index address. The modifier (4) specifies that word 0132 is set on if the test, zero balance of a number in the accumulator, specified by control is satisfied. Operand gives the address of the first word in the sub-routine. The end address of the routine word specifies the word itself and the working address will contain the return address entered when a branch is made. If a branch is made at instruction 1066, the working address will be 01067. The sub-routine ends at instruction 2512 with an unconditional branch to the address given by adding the operand (0000) of 2512 to the working address