IBM 305 RAMAC
The IBM 305 RAMAC was the first commercial computer that used a moving-head hard disk drive for secondary storage. The system was publicly announced on September 14, 1956, with test units already installed at the U.S. Navy and at private corporations. RAMAC stood for "Random Access Method of Accounting and Control", as its design was motivated by the need for real-time accounting in business.
History
The first RAMAC to be used in the U.S. auto industry was installed at Chrysler's MOPAR Division in 1957. It replaced a huge tub file which was part of MOPAR's parts inventory control and order processing system.During the 1960 Olympic Winter Games in Squaw Valley, IBM provided the first electronic data processing systems for the Games. The system featured an IBM RAMAC 305 computer, punched card data collection, and a central printing facility.
More than 1,000 systems were built. Production ended in 1961; the RAMAC computer became obsolete in 1962 when the IBM 1405 Disk Storage Unit for the IBM 1401 was introduced, and the 305 was withdrawn in 1969.
Overview
The first hard disk unit was shipped September 13, 1956. The additional components of the computer were a card punch, a central processing unit, a power supply unit, an operator's console/card reader unit, and a printer. There was also a manual inquiry station that allowed direct access to stored records. IBM touted the system as being able to store the equivalent of 64,000 punched cards.The 305 was one of the last vacuum tube computers that IBM built. It weighed over a ton.
The IBM 350 disk system stored 5 million alphanumeric characters recorded as six data bits, one parity bit and one space bit for eight bits recorded per character. It had fifty disks. Two independent access arms moved up and down to select a disk, and in and out to select a recording track, all under servo control. Average time to locate a single record was 600 milliseconds. Several improved models were added in the 1950s. The IBM RAMAC 305 system with 350 disk storage leased for US$3,200 per month.
damage
The original 305 RAMAC computer system could be housed in a room of about 9 m by 15 m ; the 350 disk storage unit measured around. Currie Munce, research vice president for Hitachi Global Storage Technologies, stated in a Wall Street Journal interview that the RAMAC unit weighed over a ton, had to be moved around with forklifts, and was delivered via large cargo airplanes. According to Munce, the storage capacity of the drive could have been increased beyond five megabytes, but IBM's marketing department at that time was against a larger capacity drive, because they did not know how to sell a product with more storage.
Programming the 305 involved not only writing machine language instructions to be stored on the drum memory, but also almost every unit in the system could be programmed by inserting wire jumpers into a plugboard control panel.
Architecture
System architecture was documented in the 305 RAMAC Manual of Operation.The 305 was a character-oriented variable "word" length decimal computer with a drum memory rotating at 6000 RPM that held 3200 alphanumeric characters. A core memory buffer of 100 characters was used for temporary storage during data transfers.
Each character was six bits plus one odd parity bit composed of two zone bits and remaining four binary bits for the value of the digit in the following format:
X O 8 4 2 1 R
Instructions could only be stored on 20 tracks of the drum memory and were fixed length, in the following format:
Field positions | Function |
T1 A1 B1 | Source operand address - Track, low order AB character |
T2 A2 B2 | Destination operand address - Track, low order AB character |
M N | Length of operands |
P | Program exit code; used to select test conditions, perform jumps, and initiate input/output. The 305's control panel programming determines the action performed. |
Q | Control code; modifies the operation, the default operation being a copy from source to destination. Other operations were: "1" Compare, "2" Field compare, "3" Compare & Field compare, "5" Accumulator reset, "6" Blank transfer test, "7" Compress & Expand, "8" Expand, "9" Compress |
Fixed-point data "words" could be any size from one decimal digit up to 100 decimal digits, with the X bit of the least significant digit storing the sign.
Data records could be any size from one character up to 100 characters.
Drum memory
The drum memory was organized into 32 tracks of 100 characters each.The color code of this table is:
- Yellow - Storage
- Blue - Arithmetic
- Green - Input/output
- Red - Special function
L
and M
select the same track, containing ten 10-character "Accumulators". As a destination L specifies addition, M specifies subtraction. J
, R
, and -
do not select tracks on the drum, they specify other sources and destinations.Jumps
The 305's instruction set does not include any jumps, instead these are programmed on the control panel:- Unconditional jump - the program exit code specifies a Program exit hub on the control panel, which has a wire plugged into it and, via distributors, to Program entry hubs specifying the first, second and third address digit of the instruction to jump to.
- Conditional jump - the program exit code specifies a Program exit hub on the control panel, which has a wire plugged into it and the appropriate Condition selector common hub to be tested, the corresponding two Condition selector output hubs have wires plugged into them and the Program entry hubs specifying the instructions to jump to or the Program advance hub to continue in sequence. Complicated conditions involving many Condition selectors could be wired to execute in a single instruction, with one of several Program entry hubs activated.
- Multi-way jump - the destination track is set to
-
and the appropriate Character selector hubs on the control panel have wires plugged into them and the Program entry hubs specifying the instructions to jump to or the Program advance hub to continue in sequence.Timing
Reading or writing a character took 96 μs.
The 305's typical instruction took three revolutions of the drum : one to fetch the instruction, one to read the source operand and copy it to the core buffer, and one to write the destination operand from the core buffer. If the P field was not blank, then two additional revolutions of the drum were added to the execution time to allow relays to be picked. The Improved Processing Speed option could be installed that allowed the three instruction phases to immediately follow each other instead of waiting for the next revolution to start; with this option and well optimized code and operand placement a typical instruction could execute in as little as one revolution of the drum.
Certain instructions though took far longer than the typical 30 ms to 50 ms. For example, multiply took six to nineteen revolutions of the drum and divide took ten to thirty seven revolutions of the drum. Input/Output instructions could interlock the processor for as many revolutions of the drum as needed by the hardware.
Hardware implementation
The logic circuitry of the 305 was built of one- and two-tube pluggable units and relays.Related peripheral units
A basic system was composed of the following units:- IBM 305 – Processing unit, the magnetic process drum, magnetic core register and electronic logical and arithmetic circuits
- IBM 350 – Disk storage unit
- IBM 370 – Printer
- IBM 323 – Card punch
- IBM 380 – Console, the card reader and IBM Electric typewriter model B1
- IBM 340 – Power supply