Patent GB-1062225-A (GB)
Title: Channel apparatus for a data processing system
IPC: G06F12/04
Filed: 1965-04-05
Abstract: 1,062,225. Electric digital calculators. INTERNATIONAL BUSINESS MACHINES CORPORATION. April 5, 1965 [April 6, 1964], No. 14261/65. Heading G4A. Multi-byte words of data are transferred between a computer store and a selected input/ output device via a word-sized first assembly register, each byte being entered as it arrives into a portion of the assembly register selected by a byte counter which is incremented by one after each such entry. A data address (DA) register specifies the memory word involved in the transfer and also has three bits to specify a byte within the word. Describing transfer to (core) memory, the three " byte " bits from the DA register are set into the byte counter to enter the first byte arriving into the appropriate section of the first assembly register. The byte counter is then incremented as successive bytes arrive until the last byte position of the first assembly register is filled, entry of each byte being accompanied by entry of a mark bit (1) into a corresponding position of a first mark register. The contents of the first assembly register and first mark register are passed to a second assembly register and a second mark register respectively to allow the first registers to continue operations while the second registers enter the data into store as follows. The memory word addressed by the DA register is read out and the bytes in the positions not having a 1 in the second mark register are read back, together with the bytes from the second assembly register having a 1 in the second mark register (Figs. 15A, 15B, not shown). The contents of a count (CT) register, initially specifying the number of bytes to be transferred, are added to the " byte " bits of the DA register and the result placed back in the CT register. As each word is transferred into memory, the CT register is decremented by 8 (the number of bytes per word), and the DA register incremented by one word position, in the same adder as used before. When the last word is being assembled, the transfer process is terminated when the CT register contents equal the byte counter contents plus one as determined by a comparator, the byte counter having a section continually storing the true count plus one for this purpose. A number of input/output channel units can time-share lines to the computer and each channel unit can scan a number of associated input/output control units in turn by means of a signal on a " select out " line. Each control unit may have a number of associated input/output devices (Fig. 1, not shown). Channel command words (Fig. 4, not shown) are used to control input/output operations (e.g. they set the DA and CT registers), being accessed from addresses placed in a command address (CA) register from a channel address word (Fig. 3, not shown) or from the adder after incrementation of the previous command address. The adder incorporates parity checking circuitry. Since a byte may arrive slightly before the channel command word specifying its allotment is accessed, each byte is placed in both halves of the assembly register (Fig. 16, not shown) until the required location is indicated when one of the occurrences of the byte(s) is deleted. Input/output devices mentioned are magnetic tape/drum/disc units, printers, card readers and punches, core memories, telegraph units, and typewriters. Byte counter.-Referring to Figs. 14A, 14B (not shown), this has three counting stages (975, 976, 977) and a parity check stage (981), the former being presettable over lines (978, 979, 980). Each stage (975, 976, 977, 981) has a corresponding look-ahead stage (975<SP>1</SP>, 976<SP>1</SP>, 977<SP>1</SP>, 9811) which store the count plus one (and parity bit). Setting stages (975<SP>11</SP>, 97611, 977<SP>11</SP>, 981<SP>11</SP>) are associated with the look-ahead stages, store the same number thereas, and are used to advance the counting stages (975, 976, 977) on receipt of an advance pulse on a change line.