Patent GB-1347423-A (GB)
Title: Input/output control system
IPC: G06F13/12
Filed: 1972-02-17
Abstract: 1347423 Data processing systems INTERNATIONAL BUSINESS MACHINES CORP 17 Feb 1972 [3 March 1971] 7299/72 Heading G4A A central processing unit 10 defines an operation to be performed by a peripheral device 17 by entering control data relating to the operation in an individual control data block COB, adds the block to a stack in memory and issues a general alert signal to a plurality of control unit 25 which are responsive to the CCB's and status signals from devices 17 so that an idle control unit controls the handling of the CCB independently of the CPU and controls operation of the device 17, the CCB otherwise residing in memory at a location which is accessible by any control unit to which the device 17 identifies itself. A Request Channel instruction causes the CPU to assemble an I/O task by inserting appropriate control information in a CCB extracted from a pool in main storage, and placing the resulting CCB in a work queue. All control units 25 are signalled over alert line 19. A non-busy control unit 25 extracts a CCB from the work queue and starts execution of a channel program specified by the CCB which also identifies a data set, the displacement of a record in the set, the length of the record and a buffer address in memory to be involved in the I/O operation. An Enqueue command causes the control unit 25 to use this information to determine the peripheral device 17, e.g. a rotating store, containing the record and the location of the record on that device using a data set directory available to the channel program and a map of the specified data set. The control unit then places the CCB on a queue associated with the device 17, orders the device to start positioning the access mechanism, if any, and enters the position of the required record in a register of the device. The control unit then disconnects itself from the device, records the status of the channel program and the location of the next command, and becomes available again for executing another channel program if required. When the device 17 is approaching the desired record it sends a request for service over bus 27 and a free control unit 25 establishes a connection with it over a cross-point switch 26, locates the appropriate device queue in main storage, and uses a sector number supplied by the device to extract the related control block CCB so that it may resume the execution of a previously suspended channel program. After the specified read or write operation, the control unit 25 deselects the device and executes subsequent commands of the channel program, e.g. iteration of the above process, CPU interrupt following I/O completion, termination of the channel program. The I/O devices may be designed to accept status codes from a channel to indicate the required set of device conditions for initiation of a particular operation. The device may then be made to respond when these conditions are satisfied. More than one status code may be accepted by a device, each status code having an associated response code which is transmitted by the device when the conditions of the corresponding status code are satisfied. The system may be used in a multiprocessing system in which the channels are replaced by processors capable of executing programs such as those executed by the CPU.