The '''IBM 700/7000 series''' was a series of incompatible large scale (Mainframe) Computer systems made by IBM through the 1950s and early 1960s. The 700's were all made obsolete by the introduction of the 7000s. The 7000s, in turn, were eventually replaced by System/360, which was announced in 1964. However the 360/65, the first 360 powerful enough to replace 7000s, did not become available until November 1965. Early problems with OS/360 and the high cost of converting software kept many 7000's in service for years afterwards. ==Architectures== The IBM 700/7000 series had five completely different ways of storing data and instructions: *First (36/18-bit words): 701 (Defense Calculator) *Scientific (36-bit words): 704, 709, 7090, 7094, 7040, 7044 *Commercial (variable length character strings): 702, 705, 7080, 7010 *Decimal (10 digit words): 7070, 7074 *Supercomputer (64-bit words): 7030 "Stretch" The 700 class used Vacuum_tubes, the 7000 class was Transistorized. All machines (like most other computers of the time) used Magnetic_core_memory; except for early 701 and 702 models, which used CRT memory. While the architectures differed, the machines in the same class shared electronics technologies and generally used the same peripherals (tape drives, card readers, card punches). Early peripherals were based on IBM accounting machine technology and even had wiring boards. Later peripherals were adopted from the midline IBM_1400_series. Early computers were sold without software. As Operating_systems began to emerge, having four different mainframe architectures plus the 1400 midline architectures became a major problem for IBM since it meant at least four different programming efforts were required. The System/360 combined the best features of the 7000 and 1400 series architectures into a single design, however some 360 models had optional features that allowed them to emulate the 1400 and 7000 instruction sets in microcode. One of the selling points of the System/370 was improved 1400/7000 series emulation (it could be done under operating system control instead of shutting down and restarting in emulation mode as was done on the 360s). ==First Architecture (701)== Known as the '''Defense Calculator''' while in development in the IBM Poughkeepsie Laboratory, this machine was formally unveiled April_7, 1953 as the '''IBM 701 Electronic Data Processing Machine'''. ===Data Formats=== Numbers were either 36 bits or 18 bits long, only fixed point. (''See:'' Why 36 bits?) *Fixed point numbers were stored in binary sign/magnitude format. ===Instruction Format=== Instructions were 18 bits long, single address. *Sign (1 bit) - Whole word (-) or Half word (+) operand address *Opcode (5 bits) - 32 instructions *Address (12 bits) - 4096 Half word addresses To expand the memory from 2048 to 4096 words, a 33rd instruction was added that used the most significant bit of its address field to select the bank. (This instruction was probably created using the "No OP" instruction, which appears to have been the only instruction with unused bits, as it originally ignored its address field. However documentation on this new instruction is not currently available.) ===Registers=== *AC  - 38-bit Accumulator *MQ - 36-bit Multiplier-Quotient ===Memory=== 2,048 or 4,096 – 36-bit binary words with six-bit characters ==Scientific Architecture (704/709/7090/7094)== ===Data Formats=== Numbers were 36 bits long, both fixed point and floating point. (''See:'' Why 36 bits?) *Fixed point numbers were stored in binary sign/magnitude format. *Single precision Floating_point numbers had a magnitude sign, an 8-bit excess-128 exponent and a 29 bit magnitude *Double precision floating point numbers, introduced on the 7094, had a magnitude sign, a 17-bit excess-65536 exponent, and a 54 bit magnitude *Alphanumeric characters were 6-bit BCD, packed six to a word. ===Instruction Format=== The basic instruction format was a 3-bit ''prefix'', 15-bit ''decrement'', 3-bit ''tag'', and 15-bit ''address''. The prefix field specified the class of instruction. The decrement field often contained an immediate operand to modify the results of the operation, or was used to further define the instruction type. The three bits of the tag specified three (seven in the 7094) ''Index_registers'', the contents of which were '''''subtracted''''' from the address to produce an ''effective address''. The address field either contained an address or an immediate operand. ===Registers=== *AC  - 38-bit Accumulator *MQ - 36-bit Multiplier-Quotient *XR  - 15-bit Index Registers (three or seven) *SI    - 36-bit Sense Indicator The Accumulator (and Multiplier-Quotient) registers operated in signed magnitude format. The Index registers operated using Two's_complement format and when used to modify an instruction address were '''''subtracted''''' from the address in the instruction. On machines with three index registers, if the tag had 2 or 3 bits set (i.e. selected multiple registers) then their values were ORed together before being subtracted. The IBM 7094, with seven index registers had a "compatibility" mode to permit programs from earlier machines that used this trick to continue to be used. The Sense Indicators permitted interaction with the operator via panel switches and lights. ===Memory=== 32,768 – 36-bit binary words with six-bit characters ===Input/Output=== The 709/7090 series used '''Data Synchronizer Channels''' for high speed input/output, such as tape and disk. The DSCs executed their own simple programs from the computer memory that controlled the transfer of data between memory and the I/O devices. Punch_card I/O and high speed printing were often performed by transferring magnetic tapes to an off-line IBM_1401. Later, the data channels were used to connect an 7094 and a 7044 to form the '''IBM 7094/7044 Direct Coupled System (DCS)'''. In that configuration, the 7044 primarily handled I/O. ==Commercial Architecture (702/705/7080)== The '''IBM 702''' and '''IBM 705''' were similar and the 705 could run many 702 programs without modification, but they were not completely compatible. The '''IBM 7080''' was a transistorized version of the 705, with various improvements. ===Data format=== Data was represented by a variable length string of characters terminated by a '''Record mark.''' ===Instruction Format=== Five characters: one character opcode & 4 character address - OAAAA ===Registers=== *702 **two Accumulators (A & B) - 512 characters *705 **one Accumulator - 256 characters **14 auxiliary storage units - 16 characters **one auxiliary storage unit - 32 characters *7080 **one Accumulator - 256 characters **30 auxiliary storage units - 512 characters **32 communication storage units - 8 characters ===Memory=== *702 **2,000 to 10,000 characters in Williams_tubes (in increments of 2,000 characters) **Character cycle rate - 23 microseconds *705 (models I, II, or III) **20,000 or 40,000 or 80,000 characters of Core_memory **Character cycle rate - 17 microseconds or 9.8 microseconds *7080 **40,000 or 80,000 or 160,000 characters of Core memory **Character cycle rate - 2.18 microseconds The 700/7000 commercial architecture also spawned the very successful IBM_1400_series of mid-sized business computers. ==Decimal Architecture (7070/7072/7074)== The '''IBM 7070''', '''IBM 7072''', and '''IBM 7074''' were designed to provide a "Transistorized IBM_650" upgrade path. They replaced the Drum_memory with Core_memory, but were not Instruction_set compatible with the 650 (so a simulator was needed to run old programs). ===Data format=== *Word length - 10 decimal digit plus sign *Digit encoding - Two-out-of-five_code *Floating point - optional. Two digit exponent. *Three signs for each word - Plus, Minus and Alpha **Plus and Minus indicated 10 digit numeric values. **Alpha indicated 5 characters of text coded by pairs of digits. 61 = A, 91 = 1. ===Instruction format=== *All instructions one word *2 digit op code (including sign, Plus or Minus only) *2 digit index register *2 digit field control - allows selecting sets of digits, shifting left or right *4 digit address ===Registers=== *All registers one word, could also be addressed as memory *Accumulators - 3 (addresses 9991, 9992, and 9993 - standard; 99991, 99992, and 99993 - extended 7074) *Program register - 1 (address 9995 - standard; 99995 - extended 7074) **Addressable from console only. Stores current instruction. *Instruction counter - 1 (address 9999 - standard; 99999 - extended 7074) **Addressable from console only. *Index registers - 99 (addresses 0001-0099) ===Memory=== *5000 to 9990 words (standard) *15000 to 30000 words (extended 7074) *Access time - 6 microseconds (7070/7072), 4 microseconds (7074) *Add time - 72 microseconds (7070), 12 microseconds (7072), 10 microseconds (7074) ==IBM 700 series, Vacuum_tubes, 1950s== *IBM_701 - IBM's first electronic computer - introduced in 1952 *IBM_702 - commercial - introduced in 1953 *IBM_704 - scientific - introduced in 1954 *IBM_705 - commercial - introduced in 1954 *IBM_709 - scientific - introduced in 1958 ==IBM 7000 series, Transistors, 1960s== *IBM_7010 - high end version of IBM_1410 - introduced in 1962 *IBM_7030 - Stretch supercomputer - introduced in 1960 *IBM_7040 - scientific - introduced in 1963 *IBM_7044 - scientific - introduced in 1963 *IBM_7070 - decimal - introduced in 1960 *IBM_7072 - decimal - introduced in 1962 *IBM_7074 - decimal - introduced in 1961 *IBM_7080 - commercial - introduced in 1960 *IBM_7090 - scientific - introduced in 1959 *IBM_7094 - scientific - introduced in 1962 *IBM 7094 II - scientific - introduced in 1964 ==External links== *IBM Mainframe family tree *The Architecture of IBM’s Early Computers (PDF) *IBM 705 *IBM 7030 Stretch *IBM 7070 *IBM 7094 *IBM 7090/94 Architecture Category:Early_computers Category:IBM_hardware Category:Mainframe_computers