Patent GB-1123790-A (GB)
Title: Data transfer apparatus
IPC: G06F13/10
Filed: 1966-07-27
Abstract: 1,123,790. Data transfer. INTERNATIONAL BUSINESS MACHINES CORP. 27 July, 1966 [10 Sept., 1965], No. 33684/66. Heading G4A. In data transfer apparatus, a direct or an indirect path is established between a store and a selected one of a plurality of channel units according to signals from the channel units representing unit rank and function. Channel units, each serving a plurality of input/output devices, can communicate with the main core store MS of a central processor 20 over a direct route 40 or an indirect route 38, the latter involving a local core store LS, having a quarter the access time of the main store MS. The direct route 40 is shorter than the indirect route 38 but longer than the leg 38B of the latter on the channel side of the local store LS. Each channel unit can supply service requests at one or more of a plurality of priority levels 0, 1, 2 ... simultaneously, together with signals specifying whether read (channel to processor) or write (processor to channel) is required, to priority and route controls 21. If the central processor 20 is not currently exchanging data with a channel unit, the channel unit having the highest level request active is selected for data transfer, the processor programme being interrupted. If the highest level request active is supplied by more than one channel unit, one is selected according to a predetermined fixed priority order of the units (Fig. 4, not shown). The local store LS contains a word location respective to each channel unit for buffering data between the channel unit and the main store MS. Each channel unit contains a first oneword buffer register (B, Fig. 3, not shown) for sending/receiving a parallel word to/from the central processor 20, and a second one-word buffer register (C) for sending/receiving a quarter-word parallel byte (at a time) to/from a connected input/output device. A parallel word can be transmitted in either direction between the two registers. A latch indicates the occupancy status of the first register and another indicates that of the corresponding local store word location. Four latches indicate the occupancy status of respective byte positions in the second register, logic responsive to the four latches indicating when the register is completely full, not completely full, completely vacant, not completely vacant, at least half vacant and more than half full (Fig. 22, not shown). The priority level signals used for a service request depend on the occupancy signals (Fig. 21, not shown) and on whether it is a read or write operation, being stored with read/write signals in a request register (450, Fig. 21, not shown) in the channel unit until the service request can be dealt with. The priority levels used and the response to them are such that in a read request, the direct route 40 is used unless another request is active, when the indirect route 38 is used. In the latter case; the word to be transferred is passed to the local store LS, after which the central processor 20 notifies the channel unit that this has been done. The channel unit responds with a request for a transfer along the other leg 38A of the indirect route, but usually with lowest level priority. In a write request, the direct route 40 is used unless another channel is in use (i.e. handling data, irrespective of whether a service request is active or not.) In the latter case and if the channel's internal buffer is full, the word is passed to the local store LS and the channel unit notified. The channel unit sets its local store occupancy latch and thereafter when its internal buffer is vacant it issues a write request (with highest priority level) to cause transfer over the second leg 38B of the indirect route. Only one word is transferred in response to each request. Besides acting as a buffer, the local store LS holds a word count and main store address for the transfer, these being incremented/decremented as appropriate. The incrementing/decrementing occurs during the transfer between the main and local stores, leg 38A in the ease of a transfer over the indirect route 38. A microprogramme readonly store (200, Fig. 9, not shown), supplies control signals for processor operations and input/output transfer operations, a back-up register (241) being provided for storing the last or last-but-one microprogramme address to enable processor operations to continue where they left off, after the end of an input/output interrupt. However, further service requests are tested for after dealing with any one request and before returning to processor operations, to avoid the waste of cycles involved in switching to processor operations and then immediately switching back because of a further transfer request. Two registers (L, R, Fig. 7, not shown) are provided via which data can be written into the local store LS, including data just read out.