On 6/20/18, Greg 'groggy' Lehey <grog(a)lemis.com> wrote:
Looking at something like the IBM 370 series (mid-1970s), I/O was
performed by the channels, effectively separate processors with a very
limited instruction set. Others, like the UNIVAC 1100 series, could
perform I/O directly or via separate processors. This was similar on
the /360, but very different on the 1401.
All of the System/360 series except the model 25 used separate channel
processors to perform I/O. Once the I/O was initiated, the channel
performed data transfer to and from main storage (IBM didn't use the
term "memory") completely independently from the CPU. The S/360 model
25 was the last of the 360 series and was really a 16-bit minicomputer
microprogrammed to execute the S/360 instruction set. It had what
they called "integrated channels", meaning that I/O was handled by CPU
microcode.
IBM used the model 25 I/O design in the S/370 models 135 and 145. The
models 115 and 125 were actually four 16-bit processors on a bus along
with main memory. One of them, the service processor, handled system
power-on, power-off, microcode load, diagnostics, and the system
console (a modified 3277 transaction terminal). One was the CPU and
executed the S/370 instruction set in microcode. The remaining two
processors acted as a byte and block multiplexer channel. This meant
that I/O proceeded independently from the CPU, as with the old 360s.
It also meant that if the system was reading cards, punching cards,
and printing all at the same time (often the case when spooling), a
model 125 outperformed a 145 in compute speed, because the 145 had to
execute a microcode loop for every byte of I/O.
The 158 and 168 appear to have had independent channels, but housed in
the same boxes as the CPU as opposed to stand-alone units as with
S/360.
-Paul W.