Patent GB-1202452-A (GB)
Title: Multi-program data processor
Inventor: MACON CHARLES EDWARD
IPC: G06F9/32
Filed: 1968-06-18
Abstract: 1,202,452. Data processing systems. BURROUGHS CORP. 18 June, 1968 [19 June, 1967], No. 28883/68. Headings G4A and G4C. In a multiprogramme data processing system comprising an addressable memory having a plurality of queues of instructions stored therein and waiting to be executed, each of said instructions being stored in a separate memory location together with a link address which serially links the instruction to another in the respective queue, means are provided and separately claimed for respectively adding a new instruction to a queue utilizing a tail address of a queue stored with a current instruction and for accessing the first instruction of a queue to form a new current instruction utilizing a head address of a queue stored with a current instruction. As shown (Figs. 1 and 3) a data processing system comprises a data processor 100 including a magnetic core working memory 102 in which said queues are formed. Instructions are stored in memory 102 in random order but each instruction includes a link address pointing to the next instruction in the queue. A common list control 520 maintains a list of spare memory locations. The data processing system also includes a magnetic disc storage unit 200, associated control unit 300 and a distributer memory system 400 comprising a magnetic core memory 404 for storing disc access instructions in locations corresponding to the sectors to be accessed. If more than one instruction exists for any one sector a queue is formed in the memory 102 under control of a queue control 600 (shown in detail in Fig. 3). A queue is formed for each of the multiple programmes being processed by the processor 100 and for each disc sector for which multiple access instructions exist. A programme analyser 500 receives instructions from the disc unit and converts them either into data processing instructions which are passed to the processor 100 (register 108) or into disc file instructions which are passed to the distributer memory system (register 402). Each current instruction in the distributer memory 404 and the processor instruction register 104 includes the address of the head and the tail of the corresponding queue. Obtaining a new current instruction from a queue.-Whenever an instruction is selected for execution by the disc control unit as the corresponding sector becomes available for reading or writing, a control signal RQd is produced by a signal generator 414 as a result of which the old current instruction is gated from distributer information register 402 (Fig. 1) into an X-register 602 (Fig. 3) from where the head address in portion 602b is gated into the processor memory address register 102b to read the head instruction of the queue into information register 102a. This head instruction is gated into register 602 with its link address forming the new head address, the tail address in portion 602c remaining unchanged. The resulting new current instruction is then gated from register 602 into the distributer memory register 402 from where it is stored into memory 404. Whenever an instruction is executed in processor 100, detector 106 generates a signal RQp, as a result of which the old current instruction is gated from register 104 into the X-register 602, the head address is used to obtain the head instruction of the corresponding queue from memory 102 (as before), the new current instruction is assembled in register 602 (as before) and is then transferred to the processor current instruction register 104. Adding a new instruction to a queue.-A new instruction for the distributer memory is placed by the programme analyser 500 in register 516 together with its sector number in register 514. The latter number is gated into a random access address register 408 and the corresponding location of memory 404 read into register 402 where it is inspected for the presence of a current instruction. If register 402 contains all zeroes, the new instruction is merely gated into the accessed location. If a current instruction is already stored, generator 414 produces a signal SQd indicating that the new instruction must be stored in the corresponding queue. For this, the current instruction is gated from register 402 into register 602 and the tail address thereof further gated from portion 602c into address register 102b. The next available spare address from list 520 is gated into portion 602c to form a new tail address. The old tail instruction is accessed from memory 102 and has the new tail address added as its link address before being rewritten. The new instruction in register 516 is then gated into the memory 102 at the new tail address and the current instruction with its new tail address gated back from register 602 to 402. If the new instruction is for processor 100 it is stored initially in register 108 and a signal SQp generated. The current instruction is gated from register 104 into register 602 whereupon the tail address is renewed and memory 102 accessed in a manner analogous to that described above. Special provision is made for initiating a queue.