1951: Storage subsystems emerge

Data processing systems integrate multiple forms of input and output

Moving data in and out of the first computers was primitive as the computer stopped work to focus on that task. In 1951 Remington Rand created a storage subsystem that incorporated up to 10 UNISERVO tape drives by overlapping the transfer of data with processing operations in the UNIVAC computer using a technique which came to be known as programmed I/O.

Data transfer improved in 1957 with IBM's 709 that introduced a co-processor called the Data Synchronizer or channel, a programmable unit that transferred data by DMA (Direct Memory Access). A portion of memory would be locked, the channel would transfer data in or out, and unlocked for use by the processor. Programmed I/O was used for low-speed peripherals, and after IBM introduced the 1401 computer with its high-speed printer, the next generation 7090 employed a 1401 CPU for card input/output and printing.

Error handling on early computers was crude. If the result was not as anticipated, the program was run again. Early efforts at fault detection stopped the computer, typically at inopportune times. Introduced in 1961, the IBM 7030 (aka Stretch) incorporated techniques to ensure register and calculator integrity and ECC (Error Checking and Correction). ECC bits added to a word or block used algorithms to detect errors and calculate the correct result. It was first applied to the 7302 core memory and the 7955 Tractor.

The IBM 305 RAMAC with the 350 disk drive and the NCR 315 with the CRAM, established the principles of accessing and reporting data in real time by integrating multiple forms of input and output.

  • Welsh, H. F. and H. Lukoff. “The Uniservo-Tape Reader and Recorder” Proceedings of the Joint AIEE-IEE ACM Computer Conference, New York (1952) pp. 47-53
  • IBM 650 RAMAC Announcement IBM Press Release (September 14, 1956)

Rev 5.18.15