|First data transfer overlapped with CPU processing|
Why it's important Early computer designs stalled the processing of instructions during I/O operations. With the typical multi-millesecond mechanical access delays of storage devices and storage transfer rates usually a small fraction of memory bandwidth, a significant portion of the computing resource was lost. Separate I/O buffer memory and storage device control of the UNIVAC-I significantly improved the system throughput..
Discussion: The UNIVAC I is the earliest commercial example of buffered/overlapped I/O for storage devices. Ten UNISERVO-I tapes drives (first commercial tape drive, metal tape) were the standard storage complement for this system. Main memory was a mercury acoustic delay line device, which stored data serially, with ten words per recirculate "channel". Total random access memory capacity was 1000 words.
Words were 12 "digits" of 6 bits each, encoding decimal numbers, upper case letters and 15 special characters. Numbers were encoded in an "excess three" format as this facilitated the serial decimal arithmetic calculations, which included floating point operations. Instructions were 6 characters, two per word. Registers and arithmetic paths were fully redundant and continuously cross checked for errors.
The tape format was 60 word fixed block size records. Data could be read forward or backward and only written forward at 100 inches per second. Character densities could be set to 20, 50, 100, or 128 characters per inch. An offline "UNITYPER" could record from an IBM typewriter directly to tape at 20 cpi. A read backward placed words in the correct order. A separate "tank" of mercury "channels" was used to buffer tape data input and output. Separate buffer memories were provided for input and output data, and were addressed as special multi-word registers, the "I" and "O" registers respectively. One or two tapes could be rewound independently from processing operations. McIntosh Labs, Inc.audio amplifiers drove the single capstan motor of the tape drive at one frequency for read or write and at a much higher frequency for rewind, but had enough power output for only two simultaneous rewinds. John Presper Eckart had used plastic tape for the BINAC but found it unreliable and switched to a phosphor-bronze metal tape with a magnetic plating for the U-I.
Once data was in the I register or was to be written to the O register, a single instruction caused the move of all 60 words from or to main memory. One restriction was that the starting memory location had to be a multiple of 10. This transfer (instruction execution time) occurred in 3.5 msec, or at 2.25 megabits per second, the serial bit rate of the main memory. Thus, the CPU time lost to I/O operations was as little as theoretically possible, one memory cycle per word transferred and zero processing time lost to mechanical operation of the storage device.
The UNIVAC-I was considerably ahead of its time with this technology, as multiple future generations of both UNIVAC and IBM computers would be shipped before "reinventing" overlapped I/O capability. For example, IBM's response to the U-I, the IBM-701 (and its successor the 702) which was introduced after the U-I, required that all I/O transfers pass through a single register in the central processor, thus making the computer unavailable for calculations when a tape read or write was pending.
As a "bonus" storage subsystem innovation, special logic provided a "boot from tape" operation with a single switch on the console that loaded one record of 120 instructions into memory locations 00 - 59. Again, many computers were shipped after the U-I without storage bootstrap ability
PROGRAMMING FOR THE UNIVAC FAC-TRONIC SYSTEM, Univac Corp., January 1953. This UNIVAC-I programming manual is highly recommended to any student of computing history. In 269 pages it covers logic design, basic programming, numerical methods, and the details of the UNIVAC-I, a prodigious accomplishment in 1953..
From ENIAC to UNIVAC, An Appraisal of the Eckert-Mauchly Computers, Nancy Stern, Digital Press, 1981
A History of Modern Computing, Paul Ceruzzi, MIT Press, 1998
Provenance note: This article was authored by Grant Saviers and in Version 7 approved by a unit of the Computer History Museum's Storage SIG on July 30, 2009.