Patent GB-1221819-A (GB)
Title: Data processing apparatus
IPC: G06F13/12
Filed: 1968-05-10
Abstract: 1,221,819. Data processing. INTERNATIONAL BUSINESS MACHINES CORP. 10 May, 1968 [14 July, 1967], No. 22178/68. Heading G4A. In data processing apparatus, comprising a central processor, main and bulk storage and I/O devices, rows and columns of an array of first units are controlled by respective second units which scan them to ascertain which of them require service, the second units comprising means for initiating first unit sequences for I/O device selection, command, data transmission and ending, means for storing and fetching data to/from storage, and means for controlling record search operations. In Fig. 1, an I/O control system 2 comprises (a) an I/O control unit for controlling data transfers between the I/O devices and the storage, (b) a supervisory control unit for scheduling jobs for the processing means, (c) a remote terminal control unit for directing data transfers to or from remote terminals. The main computing unit shown controls its connection to main storage I which is assigned to it. The I/O control unit in I/O system 2 controls the paths shown between main, bulk and auxiliary storage, and communications with I/O devices (not shown), using the matrix of first units each row and column of which is scanned repeatedly by a respective second unit to see if it requires service, the second units containing hardware for relatively infrequent operations required by the first units, e.g. storing and fetching of data in main or bulk storage, updating of addresses and counts, generation and verification of parity and other redundancy checks &c. The first units each include a series of byte buffers which can store data and also commands for I/O devices or the first units themselves. First units are each permanently related to a respective group of I/O devices, and in general each I/O device will belong to more than one group (thus, more than one first unit). When communication with a particular I/O device is required by a given computing unit (the latter being scanned in sequence), and the I/O device is not busy, the first non-busy first unit related to it is selected to receive the address of the first instruction to control the transfer. The scanning of its row or column of first units by a second unit involves leftmost-one checks in the second unit on urgent and non-urgent vectors one bit of each of which is supplied to the second unit by each of its first units, some bits being ignored in these checks according to a preset mask vector. Provision is made for preventing incorrect operation due to the fact that a given first unit is scanned by two second units (viz. those for its row and column of the matrix of first units). Each second unit includes a word register for disassembling a word from storage into its bytes for transmission to the buffers in a first unit and for assembly during the reverse direction of transfer. The subsidiary computing unit is optimised for character handling and for the compilation and interpretation of computer-oriented languages, performs small programmes for users at the remote terminals, and anticipates data requirements of the main computing unit. The three units, (a), (b), (c) above, of the I/O system 2 each contain a register for communication with each of the others, and the I/O control unit and supervisory control unit, (a) and (b), each contain a register for communication with each of the computing units. As a typical use of these registers, if the main computing unit wants to make an I/O request, it loads the register respective to itself in the I/O control unit with an I/O command and marker bit. The I/O control unit responds to the marker bit, begins to execute the command, and resets the marker bit. The main computing unit may respond to the latter to issue another I/O command or reload the register with a command requesting notification of the status of an I/O operation in progress. When an I/O command is completed, the I/O control unit loads the register respective to itself in the main computing unit with status information and a marker bit. The main computing unit acknowledges receipt of information in its register by resetting this marker bit. The supervisory control unit in the I/O system 2 schedules jobs for both computing units, preparing the next before it is needed to prevent waiting, allocates storage space, determines which waiting remote terminal is to be serviced next by the subsidiary computing unit, diagnoses faults, and exercises control over the other two units in the I/O system 2 and the two computing units. For example, if the main computing unit has exceeded its allotted time for a particular job, the supervisory control unit asks it, via the respective registers above, to terminate it at a convenient point, and in the absence of a satisfactory response, interrupts it to stop execution of the job (after execution of any prefetched instructions). The supervisory control unit can also interrupt the subsidiary computing unit and the I/O control unit.