(Author’s note: This is my longest blog post on Substack so far, and I would very much welcome comments, corrections, improvements, or any kind of feedback at all. I’ll notify subscribers of changes I make following initial publication.)
Photo: [7]
The IBM 701 was introduced in 1952 and was IBM’s first (mass-produced, stored-program) computer.
-
The IBM 701 was mass-produced, with about 20 systems installed across the United States. It followed IBM’s experimental stored-program Selective Sequence Electronic Calculator, or “SSEC.” A single prototype SSEC was built and became operational in 1948, but it never left IBM.
-
Earlier data-processing machines had external plugboards (control panels) to program their operation. They were not stored-program computer like modern computers, with program and data placed alongside each other in the same memory.
(The IBM 701 did have external control panels, but they were used only to configure the card reader, card punch, and printer.) -
The IBM 701 was first called the Defense Calculator, then announced as the IBM 701 Electronic Data Processing Machine. IBM did not call it a “computer,” still holding to the old definition of “computers” as the people doing computations. This historic distinction faded quickly, and a “computer” became just another kind of machine, albeit a very useful one.
The IBM 701’s architecture is like that of modern computers in most ways, but several aspects can seem quite surprising from the modern viewpoint. Today’s readers should remember that the IBM 701 had millions of times less power and capacity than a modern smartphone; it can seem amazing that it worked at all, but it was a significant commercial success.
IBM had been a powerhouse in “semi-automatic” data processing systems since its inception in 1911 as the “Computing-Tabulating-Recording Company,” with a history tracing all the way back to Herman Hollerith’s late nineteenth-century work with the US Census Bureau.
Its data-processing machines until the 1950s were electromechanical, mostly using punched cards for bulk data I/O and relays for logic. The IBM 701 was IBM’s first (mass-produced, stored-program) computer.“I think there is a world market for maybe five computers.”, never
— Thomas J. Watson, Chairman and CEO of IBM
Competitors to IBM, including the well funded upstart Univac, had announced stored-program computers before IBM, and IBM could be viewed as a follower in this field. Some people believed that Thomas J. Watson, IBM’s Chairman and CEO, had earlier dismissed the entire computer market with the short and extraordinarily wrong verdict, “I think there is a world market for maybe five computers,” but this is an urban myth; here’s a real quote instead:
“IBM had developed a paper plan for such a machine and took this paper plan across the country to some 20 concerns that we thought could use such a machine…. As a result of our trip, on which we expected to get orders for five machines, we came home with orders for 18.”
— Thomas J. Watson, Chairman and CEO of IBM, 1953, describing the planning for the IBM 701
In other words, the market was indeed that small in its early days—just 5–18 computers—but of course the market grew exponentially once computers became commercially available.
The large customer interest in the IBM 701 made it a distinct commercial success and helped steer IBM to dominate the computer market for decades to come.
The IBM 701 represented numbers in binary, with conversion from/to decimal left to software. This contrasted with other early computers like the Univac Ⅰ, which held numbers as character strings in memory.[4]
-
The Univac Ⅰ was faster than the IBM 701 at reading and writing data with very little processing.
-
The IBM 701 was much faster at processing, which dominated scientific workloads; any extra cost for conversion to/from binary was swamped by the overall speedup.
The IBM 701’s memory held 2,048 36-bit words, which could also be addressed as 4,096 18-bit half-words. Numbers were stored as signed-magnitude (!) fixed-point values, ranging in value from -2³⁵ to 2³⁵ (for 36-bit words), or from -2¹⁷ to 2¹⁷ (for 18-bit half-words).
Fetching a half-word from memory interpreted the 18-bit value as the high-order (!) half of a 36-bit word, with the low-order bits set to zero. This helped minimize the instruction set relative to the more modern alternative of interpreting it as the low-order bits.
There was exactly one addressing mode (!), with no index registers (!). Computing and using an address at runtime (e.g., when indexing into an array) required self-modifying code (!).
There were only two registers: the 36-bit general-purpose Accumulator (AC),
plus the 36-bit Multiplier-Quotient (MQ). A few instructions treated the AC and the MQ as a single signed number with a 70-bit magnitude, with the MQ holding the lower-precision 35 bits, and ignoring the MQ’s sign.The IBM 701 had no hardware support for floating-point arithmetic.
Note that the IBM 701’s signed-magnitude values could hold both a positive zero and a negative zero (!), providing greater programmer flexibility at the cost of greater programmer complexity.
“It is possible for a zero in this calculator to have either a plus or a minus sign…. This characteristic of the machine is sometimes very convenient….”
—Principles of Operation, Type 701 and Associated Equipment, IBM, 1953 [5]
The IBM 701’s instructions were 18 bits long, with a 5-bit opcode field and a 12-bit address field, and a sign bit (!).
-
The 5-bit opcode field allowed 33 (!) distinct operations.
-
The address field was 12 bits long, plus the instruction’s sign bit (!). It usually represented a location in memory (but sometimes held an immediate value like the bit-count for shifts).
-
A positive address referenced any of 2¹² (4,096) half-words, with the low-order bit of the address specifying which half.
-
A negative address referenced any of the 2¹¹ (2,048) corresponding full 36-bit words, with the address’s lower-order bit ignored.
-
The IBM 701’s logic circuitry used vacuum tubes; it was therefore a first-generation computer. (Transistors has been invented by this time but none were used in the IBM 701.)
Memory was electrostatic, with 72 Williams Tubes of 1,024 bits each.
This provided a high-speed random-access memory (RAM), but without error detection or correction.Each drum held 2,048 words, and there could be up to four drums. Individual words on the drum could be read or written—with the drum addresses structured the same as memory addresses—or a carefully written tight loop could more quickly read or write a sequential range of words.
The IBM 701 executed a single instruction at a time, finishing each instruction before even fetching the next. This made it slower than modern computers that use pipelining and similar techniques, but it greatly simplified the provision of self-modifying code.
The IBM 701’s cycle time was 12µsec. The simplest instructions took 2–4 cycles; arithmetic instructions (which also read memory) took 3–5 cycles; stores took 2–5 cycles; shifts took 4 cycles; multiplies and divides took 38 cycles but could speed up or slow down the instructions following (presumably saving on circuitry). Thus, an add or subtract instruction took about 60µsec, while a multiply or divide instruction took 456µsec; stated differently, the IBM 701 could execute almost 17K add instructions per second, or over 2K multiply instructions.
An IBM 701 system was built from the following components:
-
The IBM 701 Electronic Analytical Control Unit
-
The IBM 706 Electrostatic Storage Unit
-
The IBM 711 Punched Card Reader
-
The IBM 716 Alphabetical Printer
-
The IBM 721 Punched Card Recorder
-
The IBM 726 Magnetic Tape Readers and Recorder
-
The IBM 731 Magnetic Drum Reader and Recorder
Photos: [6]
An IBM 701 installation was relatively small compared to others of the time; it took up about a thousand square feet, including the necessary walkways between the components.
Photo: [3]
The IBM 701 is best remembered today as the first of IBM’s long-lived 700-7000 series of scientific computers, including the IBM 704, the IBM 709, the IBM 7090, the IBM 7094, the IBM 7094 Model Ⅱ, the IBM 7040,
and the IBM 7044. These machines were not strictly binary-compatible, as the architectures expanded and contracted over time. These were IBM's scientific computers from their introduction until the introduction of the IBM System/360 in 1964.-
IBM also made several very different computers with similar model numbers intended for business data processing, not scientific, including the IBM 702, the IBM 705, the IBM 7010, the IBM 7070, the IBM 7072, the IBM 7074, and the IBM 7080; these used decimal arithmetic, not binary.
-
Finally, the IBM 7030 (“Stretch”) was a mostly unrelated IBM supercomputer during the same time period, that suffered from over-reaching goals (e.g., a “speed at least 100 times the IBM 704” [2]). The IBM 7030 had far fewer customers than first expected and was quickly withdrawn from the market.
(All web references were last fetched February, 2023.)
-
Bashe, Charles J.; Lyle R. Johnson; John H. Palmer; Emerson W. Pugh, IBM's Early Computers, MIT Press (1985)
-
Buchholz, Werner, editor. Planning a Computer System, McGraw-Hill Book Company (1962), https://ift.tt/ZIk9tTO
-
Columbia University Computing History, “The IBM 701 Defense Calculator,” https://ift.tt/9fBHC5V
-
Goldfinger, Roy, “Comparison of UNIVAC With IBM 701,” Courant Institute of Mathematical Sciences, New York University (1954). https://ift.tt/MGc4hsz
-
International Business Machines, “Principles of Operation, Type 701 and Associated Equipment,” https://ift.tt/pABkNnm
-
International Business Machines, “701 Photo Album,” https://ift.tt/s8xToA9
-
Selected Technologies, “11 feb 1953 año — IBM 701,” https://ift.tt/G65hy2W
-
Wikipedia, “IBM 701,” https://ift.tt/r4kHtaT
from Hacker News https://ift.tt/reEQDwq
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.