User:Overjive/RW-300

The RW-300 was the first process control computer, made by TRW using transistors and diodes almost exclusively. It used tubes in the power supply and clock driver since transistors that could handle high enough power were not available at the time.

Background
The Ramo-Wooldridge Corporation was formed in part to target the avionics market, including computers for guidance and control. One of their early products was the RW-30 airborne computer, built in 1957 (this ref is for the RW-300?) under subcontract to Westinghouse for the Lacrosse missile. The RW-30 took advantage of the recent availability of transistors and diodes to improve the size, power and reliability of digital computers. It was one of the first all transistor computers. Looking to expand outside the military market and realizing they could not compete against IBM and UNIVAC, Ramo-Wooldridge targeted niche applications. The RW-30 was modified to serve the industrial process control market, and the resulting RW-300 featured analog I/O, a real-time operating system, and the high up-time that solid-state devices provided.

Ramo-Wooldrige merged with their financial backer, Thompson Products, to form TRW in 1958. The name Ramo-Wooldrige was then used for several years for the subsidiary which produced computers, located in Canoga Park, California. (TRW left the commercial computer marketplace in 1964, when the subsidiary was spun off in a joint venture with Martin-Marietta to form the Bunker Ramo Corporation.)

Instruction and data formats
All 21 possible instructions comprised two words: a 5-bit execution code and 13-bit operand address in the first word, followed by a 5-bit operation and 13-bit next instruction address in the second word. The execution code determined the number of bits in a product or quotient, or the number of places to be shifted, but was unused in most instructions. Some instructions performed differently depending on the operand address. The inclusion of the next address improved execution time, and the instruction format was called "one plus one".

Data was stored in a single word as a 17 bit plus sign fixed point number.

All information was stored in binary on the computer, but programs were generally entered in octal with some alphabetic characters used to identify the octal info. A resident program converted this to binary for use by the machine. An optional resident program allowed decimal and floating point data entry.

Drum memory
A magnetic drum memory performed many operations of the RW-300, generating clocks and holding register contents in addition to storing programs and data. There were 72 tracks plus 15 spares in the baseline configuration. Each track contained 128 18-bit words, with two unused bit spaces separating the words.

The drum memory tracks stored the following info:
 * 1 track stored the 153.6 kHz clock used by the computer
 * 1 track stored word numbers around the drum describing all the other tracks
 * 5 tracks stored the 5 main registers, each repeated continuously around its track. The loops which recopied the words around the track passed through flip flop shift registers so that parallel versions of the register contents were available.
 * 1 track stored the analog-to-digital conversion of the signals being monitored by the computer (expandable up to 8 tracks during installation)
 * 1 track stored numerical outputs of the process control software to be provided to a digital-to-analog converter to drive the system being controlled
 * 1 track contained 32 words repeated four times around the track for 4x faster access of frequently used instructions and data
 * 1 track stored a routine which loaded programs onto the drum
 * 60 tracks were available for storing programs and data (nearly 8k x 18-bit words)

The drum shape allowed access to multiple tracks simultaneously, and the dedicated tracks listed above had continuous read and/or write except the one which loaded programs. Most of the 60 tracks for programs and data shared common read and write amplifiers. The use of multiple heads on some tracks allowed written information to be read back starting within 130 μs.

The drum spun at a constant 3600 rpm, and the average access time for programs and data was 8.3 ms, reduced to 2.08 ms on the track with only 32 words.

The access time could be reduced dramatically by using the next instruction address. Each instruction took two word times to read, plus one or more word times to execute, during which the drum continued to rotate. If the next instruction was located under a read head at the time that the previous instruction completed, the access time would be 260 μs. Alternatively, if the next instruction were located immediately after the first, the computer would have to wait for an entire drum rotation (16.7 ms) before proceeding. This execution-time savings required careful placement of instructions and data on the 60 tracks, a technique called interleaving.

There was an option to roughly double the number of tracks available, providing nearly 16k x 18-bit words.

Electronic hardware design
A 153.6kHz clock signal was stored on the drum and converted to two phases for use throughout the system. The clock buffers used the only tubes in the system outside of the power supply. Logic gates were diode ANDs and ORs, while flip flops included transistors and had transformer-coupled differential outputs. Addition and subtraction used sign-and-magnitude fixed-point arithmetic.

Multiplication and division were accomplished by shifting and adding or subtracting. The amount of precision was determined by the execution code in the instruction, which also determined the time required for the operation. The result was stored in two registers, so there was no overflow.

Five of the registers consisted of flip flop shift registers which continually recirculated their contents through dedicated drum tracks. The register contents were written to every word on their associated tracks and dedicated read heads allowed written contents to be read back starting 130us later. The flip flops made the parallel contents of the registers available once per 130us word time.

The instruction register stored either the operation being processed or its execution code. The track register primary (primarily?) stored the track number of the next instruction or of its operand.

The digit counter generated timing signals to synchronize the operation of the system. It contained nine flip flips sequencing through 14 states which simplified the state detection logic in the circuits being controlled. The count sequence changed the state of only one of the nine flip flops, except at the wrap-around transition after the fourteenth state. The digit counter contents were synchronized to the drum via the word number track.

Analog output
The RW-300 contained a 10 bit digital-to-analog converter (DAC) with 0.5% non-linearity and an auto-calibrated zero. The output range was 0V to +10.23V and the sample rate was 3.84K samples/sec. It had 36 output stages (option to 128), each containing a sample and hold and a buffer. Whenever analog-to-digital conversion was not occurring, the contents of a dedicated track were continuously fed to the DAC, and the results were held for each of the outputs. This allowed up to 128 analog control output voltages to be continuously updated at 60 samples per second without software intervention. This slowed to 30 samples per sec during frequent A/D conversion.

There was an option to have some or all of the analog outputs force a current rather than a voltage. This required use of a current monitoring resistor in the output stages of the associated analog outputs. The output range was 0mA to 5.115mA with 10 bit resolution, and closed loop feedback maintained linearity.

Analog input
The same DAC formed the core of the 10 bit successive approximation ADC that monitored the 32 analog inputs (option to 1024). Use of the ADC decreased the update frequency of the analog outputs.

There were a variety of options that could be configured for the various inputs in any installation:
 * differential and single-ended inputs
 * preamplifiers with gains up to 1000
 * lowpass filtering at 30Hz with 1000x attenuation of 60Hz pickup in industrial environments
 * ADC sample delays as long as 270ms to allow the 30Hz filter to settle to 99.9% after switching to a new input
 * sample rates as high as 3.84K samples/sec, assuming no analog outputs (1 sec for all 1024 inputs assuming no 30Hz filter delays)
 * 0V to +10.23V input range
 * -10.23V to +10.23V input range
 * optional separate housing for temperature-controlled reference junctions for thermocouple monitoring, which also stored the preamplifiers and 30Hz filters for low-level signals.

The configurations of the various analog inputs were determined during installation, but could be manually(?) changed afterwards. During operation, the A/D conversion and drum storage of the result were automatic: no programming was required.

Digital input/output
Some of the process control outputs were relays that could drive a voltage under program control. The relays were bi-stable, magnetically latching their state until altered by a subsequent instruction. The output voltage levels were determined at installation, and 540 output signals could be driven. In addition, up to 540 digital inputs could be monitored.

Peripheral equipment
Human interface to the RW-300 was via a Flexowriter electric typewriter. Paper tape I/O was via the Flexowriter, but a Ferranti punched paper tape reader and a Teletype paper punch writer were also compatible.

Up to eight TRW magnetic tape storage units could be interfaced via a shared bi-directional core memory buffer. This stored up to 128 x 18 bit words (one drum track or tape block), and included parity generation and checking. The tape transports were modified Ampex FR-400 digital tape handlers.

Another peripheral was the housing for the low-level analog signal support circuits: the, preamplifiers, 30Hz filters, and reference junctions.

2 tracks for mag tape input(output?) number of read and write circuits Optimum programming using one-plus-one octal machine code

Track and instruction registers were flip flop only multiply method and time No interrupts Stored in Smithsonian List of applications incl FAA Oscilloscope RSX-11 link registers repairability diode AND/ORs use of transformers in flip flops total numbers of diodes, transistors and tubes no special heating or cooling requirements total power (~half in drum) Safari assembler Computer was simulated on an ERA 1103A computer by UNIVAC (First was IBM 704 on IBM 701)

Datamation, September 1967, p.25, "For Bendix and Ramo-Wooldridge, the G-20 and RW-400 were parallel core machines rather than serial drum machines of the type already in their product lines." Per Drum Memory references section

first installation: closed loop Mar 12, 1959 per Business Week of April 4, 1959 other installations images - RW-30, RW-300, Texaco plant (fair use?) Lead should contain info from bulk of article