IBM 305 RAMAC
| Company type | Computer system |
|---|---|
| Industry | Computing / Data storage |
| Founded | September 14, 1956 |
| Headquarters | San Jose , United States |
| Products | IBM 305 computer system, IBM 350 disk storage unit, IBM 370 printer, IBM 323 card punch, IBM 380 console, IBM 340 power supply |
The IBM 305 RAMAC marked a groundbreaking milestone as the first commercial computer to incorporate a moving-head hard disk drive for secondary storage purposes. Introduced on September 14, 1956, its primary function was to facilitate real-time accounting tasks within business environments. The acronym RAMAC stands for "Random Access Method of Accounting and Control."
History
Created at IBM’s research center in San Jose, the RAMAC gained worldwide recognition when CEO Thomas J. Watson Jr. showcased it in Moscow in 1959, an event that led Soviet Premier Nikita Khrushchev to visit IBM’s facilities.
Its initial significant deployment occurred in 1957 at Chrysler’s MOPAR Division, where it replaced an extensive manual system for parts inventory and order processing. Additionally, the RAMAC managed data processing during the 1960 Winter Olympics held in Squaw Valley, combining punched card data collection with centralized printing capabilities.
Production exceeded 1,000 units before ceasing in 1961. The system was eventually replaced by the IBM 1405 Disk Storage Unit designed for the IBM 1401, resulting in the RAMAC’s phase-out by 1969.
Overview
The first shipment of the hard disk unit occurred on September 13, 1956. The complete system consisted of a card punch, central processing unit, power supply, operator console/card reader, printer, and a manual inquiry station allowing direct record retrieval. IBM marketed this setup as capable of storing data equivalent to 64,000 punched cards.
The 305 was among IBM’s final vacuum tube-based computers and weighed more than one ton. Its IBM 350 disk storage component held five million alphanumeric characters using six data bits, one parity bit, and one space bit per character. The storage comprised fifty disks measuring 24 inches each, accessed by two servo-controlled arms that selected disks and tracks with an average seek time of 600 milliseconds. Throughout the late 1950s, several enhanced models were introduced. Leasing the IBM RAMAC 305 system with the 350 disk storage unit cost US$3,200 monthly (in 1957 dollars).
The original RAMAC required a room approximately 9 by 15 meters in size; the disk storage unit itself occupied about 1.5 square meters. Currie Munce, then research vice president at Hitachi Global Storage Technologies (which acquired IBM’s hard drive division), highlighted that the RAMAC weighed over a ton and necessitated forklifts for relocation and transport via large cargo aircraft. He also noted that although the drive’s capacity could have exceeded five megabytes, IBM’s marketing team hesitated to promote higher capacities due to uncertainty about market demand.
Programming on the 305 involved machine language instructions stored on drum memory; nearly all system components—including the computer—were programmable through wire jumpers on a plugboard control panel.
Architecture
The system architecture is thoroughly described in the 305 RAMAC Manual of Operation. The 305 functioned as a character-oriented decimal computer with variable word length using Binary-Coded Decimal (BCD). It featured drum memory spinning at 6000 RPM with a capacity of 3,200 alphanumeric characters. A core memory buffer holding 100 characters served as temporary storage during data transfers.
Each character consisted of six bits plus an odd parity bit and was structured with two zone bits and four binary bits that represented digit values:
X O 8 4 2 1 R
Instructions had fixed lengths of ten characters and were stored across twenty drum tracks, formatted as follows:
- T1 A1 B1 T2 A2 B2 M N P Q
| Field positions | Function |
|---|---|
| T1 A1 B1 | Address of source operand – Track number and low-order AB character |
| T2 A2 B2 | Address of destination operand – Track number and low-order AB character |
| M N | Length of operand (each operand must reside entirely on its track) |
| P | Program exit code controlling test conditions, jumps, and I/O actions via control panel settings |
| Q | Control code altering operation; default action copies from source to destination. Other functions include compare operations, accumulator reset, blank transfer tests, and compress/expand routines |
Fixed-point numeric words ranged from one up to one hundred decimal digits; the least significant digit’s X bit indicated sign using signed magnitude notation. Data records varied between one and one hundred characters in length.
Drum memory
The drum featured 32 tracks, each containing 100 characters, with colors assigned to indicate their roles:
- Yellow – Storage
- Blue – Arithmetic operations
- Green – Input/output functions
- Red – Special purposes
| Track identifier | Source role | Destination role |
|---|---|---|
| W X Y Z | General storage functions | |
| 0 1 2 3 4 5 6 7 8 9 & A B C D E F G H I |
Instructions and general storage | |
| L | Read from accumulator | Add to accumulator |
| M | Read and clear accumulator | Subtract from accumulator |
| V | Multiplicand or divisor (1–9 characters) | |
| N | Template:N/A | Multiply (1–11 characters); stores product in accumulators 0 and 1 |
| P | Template:N/A | Divide (optional) |
| K | 380 punched card input | Template:N/A |
| S T | Template:N/A | 323 punched card output; output for 370 and 407 printers |
| Q | 380 inquiry input/output | |
| J | Template:N/A | 350 file address |
| R | 350 file data input/output | |
| - | Core buffer source | Character selector destination |
| $ | 382 paper tape input/output (optional) | |
Tracks labeled L and M access the same track, which holds ten accumulators of ten characters each. When used as a destination, L indicates addition, while M signifies subtraction. These accumulators store numbers in ten's complement format with sign bits managed by relays. The system seamlessly converts between signed magnitude and this representation without requiring specialized programming.
Other source or destination options outside drum tracks include tracks J, R, and -.
Jumps
The instruction set of the 305 does not include intrinsic jump commands; instead, jumps are implemented through wiring on the control panel:
- Unconditional jumps are determined by the program exit code (P field), which identifies a Program exit hub. This hub connects via distributors to Program entry hubs, each representing a target instruction address.
- Conditional jumps utilize the P field to specify a Program exit hub linked to a Condition selector common hub. From there, Condition selector output hubs connect either to Program entry hubs for jump destinations or to a Program advance hub for sequential execution. Complex conditions involving multiple selectors can be configured to execute within a single instruction.
- Multi-way jumps occur when the destination track (T2 field) is set to
-. In this case, designated Character selector hubs connect to various Program entry hubs corresponding to different jump targets or to the Program advance hub.
Timing
Timing signals originate from a clock track recorded at the factory on the drum. This track contains 816 pulses separated by intervals of 12 μs, with a synchronization gap lasting 208 μs.
Each character read or write operation took 96 μs.
A standard instruction required three full drum revolutions (totaling 30 ms): the first revolution (the I phase) fetched the instruction; the second (the R phase) read the source operand into the core buffer; and the third (the W phase) wrote the operand to its destination. If the P field was active, two additional revolutions—called the D phase and P phase—added another 20 ms for relay activation. An optional feature named Improved Processing Speed allowed these phases to execute consecutively within a single revolution, potentially reducing instruction execution time to as low as 10 ms when code and operands were optimally arranged.
Certain operations required longer durations: multiplication took between six and nineteen revolutions (60–190 ms), division (an optional function) ranged from ten to thirty-seven revolutions (100–370 ms), and input/output instructions could delay processing as necessary.
Hardware implementation
The IBM 305's logic system consisted of modular one- and two-tube units along with relays.
Related peripheral units
A standard configuration featured:
- IBM 305 – Central processing unit equipped with a magnetic process drum, magnetic core registers, and electronic logic and arithmetic components
- IBM 350 – Disk storage device
- IBM 370 – Printing device
- IBM 323 – Card punching machine
- IBM 380 – Console incorporating a card reader and an IBM Electric typewriter model B1
- IBM 340 – Power supply unit
In popular culture
RAMAC Park, located in San Jose, California, derives its name from the IBM 305 RAMAC system. The RAMAC was developed at IBM’s San Jose Research Laboratory on 99 Notre Dame Street. Subsequently, IBM moved its San Jose campus to the Cottle Road location, which is now known as RAMAC Park. Although the former employee lounge and cafeteria buildings are still adjacent to the park, they are currently unused.
See also
External links
- IBM 305 RAMAC Data Processing System
- IBM Archives on the 305
- IBM 350 RAMAC website created by the Storage Special Interest Group of the Computer History Museum
- YouTube video