# IBM 3705 Communications Controller

The IBM 3705 Communications Controller is a simple computer which attaches to an IBM System/360 or System/370. Its purpose is to connect communication lines to the mainframe channel. It was a first communications controller of the popular IBM 37xx series. It was announced in March 1972. Designed for semiconductor memory which was not ready at the time of announcement, the 3705-I had to use 1.2 microsecond core storage; the later 3705-II uses 1.0 microsecond SRAM. Solid Logic Technology components, similar to those in S/370, were used.
The 3705 normally occupies a single frame two feet wide and three feet deep. Up to three expansion frames can be attached for a theoretical capacity of 352 half-duplex lines and two independent channel adapters.
The 3704 is an entry-level version of the 3705 with limited features.

## Purpose

IBM intended it to be used in three ways:
* Emulation of the older IBM 2703 Communications Controller and its predecessors. The relevant software is the Emulation Program or EP.
* Connection of Systems Network Architecture (SNA) devices to a mainframe. The relevant software is Network Control Program (NCP). When used in this fashion, the 3705 is considered an SNA PU4.
* Combining the two methods above in a configuration is called a Partitioned Emulation Program or PEP.

## Architecture

The storage word length is 16 bits. The registers have the same width as the address bus. Their length varies between 16, 18 and 20 bits depending on the amount of storage installed. A particular interrupt level has eight registers. Register zero is the program counter which gave the address of the next instruction to be executed; the other seven are accumulators. The four odd-numbered accumulators can be addressed as eight single-byte accumulators.
Instructions are fairly simple. Most are register-to-register or register-immediate instructions which execute in a single memory cycle. There are eight storage reference instructions which require two or three storage cycles to complete. The only shift capability is to shift right one or to add a register to itself.
Special hardware assists in the calculation of a cyclic redundancy check for detection of transmission errors. Both CRC-16 CCITT and CRC-16 IBM are supported. Assuming the running value is maintained in storage, the execution time to accumulate one more byte is five storage cycles (three instructions).
Rapid context switching was a design objective. The register file is divided into four sections. The three commonly used interrupt levels and the background level have distinct sets of registers. Therefore, entry into most interrupt levels does not require saving the registers of the interrupted program. The infrequently used level which processed program and hardware errors shares registers with the next highest level and thus has to save and restore registers.
The five program levels are:
* Error processing
* Communication line events
* Channel adapter events
* Service requests from other levels
* Background level
The 3705 has a flashing light style control panel which is superior to most other IBM panels of that style. The two unusual (for IBM) features are:
* Storage (and some external registers) can be displayed while the program is executing.
* The hex input switches and the two register-sized displays can be used by the program while the machine is running. This capability derived from the objective of emulating the IBM 2703 which has a fairly rich control panel.
The 3705 has a maximum memory capacity of 512 KB, but this requires four physical frames (the base frame and three expansion frames).
An Amdahl 4705 has a maximum memory capacity of 1024 KB, all of which is contained within the base frame.

## Peripherals

Three types of peripherals were available: communications scanners, channel adapters and 8" floppy disk (only available in models without a channel adapter). The first Communication Scanner and the first Channel Adapter occupied the same frame as the CCU. Extra peripherals required extra frames.
All Amdahl 4705s were provided with an 8" floppy drive, which was used for diagnostics as well as for remote program loading. This floppy drive and all Channel Adapters were contained in the Base Frame, although additional S/370 channel I/O interfaces could require an Expansion Frame. That is, more than four I/O interfaces required an Expansion Frame, which accommodated four additional I/O interfaces.

## Communication scanners

Three different communication scanners were offered:
The Type I Communication Scanner was an entry-level device which presented an interrupt on every received bit. Transmission also required an interrupt for every bit. In theory this would have allowed for rather imaginative uses such as Morse Code and connection to devices with unusual framing methods. A maximum of 64 half-duplex lines could be attached. The aggregate bandwidth was restricted due to the heavy processing requirements.
The Type II Communication Scanner performed functions similar to a USART. There was an interrupt for every transmitted or received character. Six different asynchronous character formats, two forms of Bisync and HDLC/SDLC were supported. A single scanner could attach up to 96 (64 for the first scanner) half-duplex lines. This is the basis of the theoretical maximum capacity of 352 lines. In practice the limit was lower as a scanner with more than 48 half duplex lines could not support any 9.6 kbit/s lines.
The Type III Communication Scanner was a high performance device for attachment of Bisync and HDLC/SDLC lines. It operated on entire frames. DMA was used to fetch and store the bytes of a frame. In theory the line attachment capacity was the same as for Type II Communication Scanner (352 line limit). The need to restrict scanner size to 48 lines to support 9.6 kbit/s was still present. Restricting scanner size to 16 lines allowed line speeds of up to 30 kbit/s. A scanner size of 8 lines allowed speed of about 60 kbit/s.

## Maximum communication line connection estimates

With modem supplied clocking, a single line was limited to 56 kbit/s; with internal clocking the limit was 2.4 kbit/s.
Aggregate line connection ability was limited by processing speed.
For a Type II Communications Scanner, processing of a received or transmitted character might take fifty storage cycles (forty instructions). In a 3705-II this gives an aggregate capacity of 20 kB/s. This would allow about 160 half-duplex lines running at a mean speed of 120 cycles per second (cps). Alternatively sixteen half-duplex lines running at 1200 cps (9.6 kbit/s) would be the theoretical limit. IPSANET experience was that six full-duplex 9.6 kbit/s lines carrying a heavy load was the limit. IBM software may have had superior performance.
For a Type III Communications Scanner cycle steal processing of a single character was fairly inexpensive—a single storage cycle was required. This would give a theoretical limit of a million cps (eighty 9.6 kbit/s half-duplex lines). In practice the limit was probably lower as some processing would be required for end of frame. Also if the frame contents were moved about in storage this would require 3.5 storage cycles per byte.
IBM communications scanners were limited to 48 lines on the first communications scanner and 96 lines on communications scanners two through four.
Amdahl communications scanners were theoretically capable of 128 lines per scanner, but this was artificially limited to 48 and 96 for marketing reasons.

## Channel adapters

Two types of channel adapter were offered:
Type 1 and Type 4 Channel Adapters were designed for 270x emulation. They recognized up to 256 channel addresses and transferred data in small bursts (four bytes for the Type 1; 32 bytes maximum for the Type 4). The hardware could accept almost all of the 240 possible channel command codes. Software had to analyse the command from the channel and either reject the command or process it according to specific rules. Interrupt processing required about fifty storage cycles to process a four byte transfer. The 3705 could only have a single Type 1 Adapter but two Type 4 Adapters were permitted.
An Amdahl 4705 could have four Type 4 channel adapters (Type 1 channel adapters were not offered).
Type 2 and Type 3 Channel Adapters were designed for NCP use only. Only one device address was recognized. Data transfer was via cycle steal which made the overhead low if large buffers were used. The hardware accepted seven channel commands of which four were completely processed by the adapter. This left a read and two write commands for the software to process. These adapters could be connected to any of the three System/370 channel types but a block multiplexor channel was preferred. The Type 3 Adapter could be simultaneously operational (but not in mid-command) on two different channels which might be connected to different hosts.
An Amdahl 4705 could have Type 2 channel adapters as well as Type 4 channel adapters (up to a total of four channel adapters). Amdahl's 4705 Type 2 channel adapter also simulated a Type 3 channel adapter.

## Related machines

The Amdahl 4705 was compatible with and ran about 2.5 times as fast as a comparable 3705-II. The IBM 3704 was an entry-level version of the 3705. It was restricted to 26 half duplex lines (assuming Type 2 Scanner). DMA devices were not supported on the 3704. Performance was about the same as a 3705-I. A 4704 (a 3704-compatible device) was planned, but was never introduced.
The Amdahl 4745 was completely and in every respect a logical superset, or a physical subset of the IBM 3745. Whereas the IBM 3745 offered one or two physical processors, and one or two physical buses, both apparently for redundancy, the Amdahl offered one very highly reliable physical processor and one very highly reliable physical bus (but two logical buses), with no apparent need for redundancy. Whereas the IBM 3745 offered two buses, the Amdahl 4745 offered a single bus which throughput capacity exceeded the aggregate throughput capacity of the two buses of the IBM 3745.
The design of the Amdahl 4745 was such that the control program (NCP) could not tell whether it was operating in an IBM 3745 or in an Amdahl 4745 (or, for that matter, in an IBM 3725 or in an Amdahl 4725). Amdahl's logical and physical simulation of the IBM 3745 (IBM 3725) was that complete.
Later, a very high-speed scanner was offered with the Amdahl 4745 (and also with the Amdahl 4725, for which IBM had no such corresponding 3725 offering) which offered increased redundancy over the IBM 3745 very high-speed scanner (1.544 Mbit/s, T1, or 2.048 Mbit/s, E1) by having the line switchable to a backup 4725/4745 under operator console control.

## Demise

The 3705 was eventually replaced by the 3720 and 3725. The 3745 was similar but not entirely compatible. The 3705 was withdrawn from marketing in December 1985. Hardware maintenance service was withdrawn in January 1999.