- Home
- Rudy Rucker
Seek!: Selected Nonfiction Page 7
Seek!: Selected Nonfiction Read online
Page 7
The first general purpose electronic computer was the ENIAC (for "Electronic Numerical Integrator And Computer"), completed at the Moore School of Engineering of the University of Pennsylvania in November, 1945. The ENIAC was primarily built by J. Presper Eckert and John Mauchly. The funding for the project was obtained
8. Thomas Pynchon, V., J. B. Lippincott, 1961, p. 293
Page 49
through the Ballistics Research Laboratory of the U.S. Army in 1943.
Although Mauchly contends that he thought of vacuum tube memories on his own, he did visit Atanasoff in 1941 to discuss electronic computing, so at the very least Atanasoff influenced Mauchly's thought. In 1972, Atanasoff came out of obscurity to support the Honeywell corporation in a lawsuit to break the Sperry Rand corporation's ownership of Eckert and Mauchly's patents on their UNIVAC computer - a descendent of the ENIAC which Eckert and Mauchly had licensed to Sperry Rand. Although Honeywell and Atanasoff won the trial, this may have been a miscarriage of justice. The feeling among computer historians seems to be that Eckert and Mauchly deserve to be called the inventors of the electronic computer. Firstly, the ENIAC was a much larger machine than Atanasoff's, secondly, the ENIAC was general purpose, and thirdly, the ENIAC was successfully used to solve independently proposed problems.
The original plan for the ENIAC was that it would be used to rapidly calculate the trajectories traveled by shells fired at different elevation angles at different air temperatures. When the project was funded in 1943, these trajectories were being computed either by the brute force method of firing lots of shells, or by the time-consuming methods of having office workers carry out step-by-step calculations of the shell paths according to differential equations.
As it happened, World War II was over by the time ENIAC was up and running, so ENIAC wasn't actually ever used to compute any ballistic trajectories. The first computation ENIAC carried out was a calculation to test the feasibility of building a hydrogen bomb. It is said that the calculation used an initial condition of one million punch cards, with each punch card representing a single "mass point." The cards were run though ENIAC, a million new cards were generated, and the million new cards would served as input for a new cycle of computation. The calculation was a numerical solution of a complicated differential equation having to do with nuclear fusion. You might say that the very first electronic computer program was a simulation of an H-bomb explosion. A long way from the Eccentric Anomaly of Mars.
Page 50
The Von Neumann Architecture
The man who had the idea of running the H-bomb program on the ENIAC was the famous mathematician John von Neumann. As well as working in the weapons laboratory of Los Alamos, New Mexico, von Neumann was also consulting with the ENIAC team, which consisted of Mauchly, Eckert, and a number of others.
Von Neumann helped them draw up the design for a new computer to be called the EDVAC (for Electronic Discrete Variable Automatic Computer). The EDVAC would be distinguished from the ENIAC by having a better memory, and by having the key feature of having an easily changeable stored program. Although the ENIAC read its input data off of punch cards, its program could only be changed by manually moving the wires on a plugboard and by setting scores of dials. The EDVAC would allow the user to feed in the program and the data on punch cards. As von Neumann would later put it:
Conceptually we have discussed . . . two different forms of memory: storage of numbers and storage of orders. If, however, the orders to the machine are reduced to a numerical code and if the machine can in some fashion distinguish a number from an order, the memory organ can be used to store both numbers and orders.9
Von Neumann prepared a document called "First Draft of a Report on the EDVAC," and sent it out to a number of scientists in June, 1945. Since von Neumann's name appeared alone as the author of the report, he is often credited as the sole inventor of the modern stored program concept, which is not strictly true. The stored program was an idea which the others on the ENIAC team had also thought of - not to mention Charles Babbage with his analytical engine! Be that as it may, the name stuck, and the design of all the ordinary computers one sees is known as "the von Neumann architecture."
9. Arthur Burks, Herman Goldstine, and John von Neumann, "Preliminary Discussion of the Logical Design of an Electronic Computing Instrument," reprinted in John von Neumann, Collected Works, Vol. V, p. 35, Macmillan Company, New York 1963.
Page 51
Even if this design did not spring full-blown from von Neumann's brow alone, he was the first to really appreciate how powerful a computer could be if it used a stored program, and he was an eminent enough man to exert influence to help bring this about. Initially the idea of putting both data and instructions into a computer's memory seemed strange and heretical, not to mention too technically difficult.
The technical difficulty with storing a computer's instructions is that the machine needs to be able to access these instructions very rapidly. You might think this could be handled by putting the instructions on, say, a rapidly turning reel of magnetic tape, but it turns out that a program's instructions are not accessed by a single, linear read-through as would be natural for a tape. A program's execution involves branches, loops and jumps; the instructions do not get used in a fixed serial order. What is really needed is a way to store all of the instructions in memory in such a way that any location on the list of instructions can be very rapidly accessed.
The fact that the ENIAC used such a staggering number of vacuum tubes raised the engineering problems of its construction to a Pyramid of Cheops or man-on-the-moon scale of difficulty. That it worked at all was a great inspiration. But it was clear that something was going to have to be done about using all those tubes, especially if anyone wanted to store a lengthy program in a computer's memory.
Mercury Memory
The trick for memory storage that would be used in the next few computers was almost unbelievably strange, and is no longer widely remembered: bits of information were to be stored as sound waves in tanks of liquid mercury. These tanks or tubes were also called "mercury delay lines." A typical mercury tube was about three feet long and an inch in diameter, with a piezoelectric crystal attached to each end. If you apply an oscillating electrical current to a piezoelectric crystal it will vibrate; conversely, if you mechanically vibrate one of these crystals it will emit an oscillating electrical current. The idea was to convert a sequence of zeroes and ones into electrical oscillations, feed this signal to the near end of a mercury delay line, let the vibrations move through the mercury, have the vibrations create an electrical oscillation coming out of the far end of the mercury delay
Page 52
line, amplify this slightly weakened signal, perhaps read off the zeroes and ones, and then, presuming that continued storage was desired, feed the signal back into the near end of the mercury delay line. The far end was made energy-absorbent so as not to echo the vibrations back towards the near end.
How many bits could a mercury tube hold? The speed of sound (or vibrations) in mercury is roughly a thousand meters per second, so it takes about one thousandth of a second to travel the length of a one meter mercury tube. By making the vibration pulses one millionth of a second long, it was possible to send off about a thousand bits from the near end of a mercury tank before they started arriving at the far end (there to be amplified and sent back through a wire to the near end). In other words, this circuitry-wrapped cylinder of mercury could remember 1000 bits, or about 128 bytes. Today, of course, it's common for a memory chip the size of your fingernail to hold many millions of bytes.
A monkey wrench was thrown into the EDVAC plans by the fact that Eckert and Mauchly left the University of Pennsylvania to start their own company. It was the British scientist Maurice Wilkes who first created a stored-program machine along the lines laid down by the von Neumann architecture. Wilkes's machine, the EDSAC (for Electronic Delay Storage Automatic Calculator, where "Delay Storage" refers to the mercury delay
lines used for memory), began running at Cambridge University in May 1949. Thanks to the use of the mercury memory tanks, the EDSAC needed only 3,000 vacuum tubes.
The mathematician John Horton Conway recalls:
As an undergraduate [at Cambridge University] I saw the mercury delay lines in the old EDSAC machine they had there. The mercury was in thick-walled glass tubes between 6 and 8 feet long, and continually leaked into the containing trays below. Nobody then (late '50s) seemed unduly worried about the risks of mercury poisoning.10
10. E-mail communication, July, 1996.
Page 53
Univac
Although Eckert and Mauchly were excellent scientists, they were poor businessmen. After a few years of struggle, they turned the management of their floundering computer company over to Remington-Rand (now Sperry-Rand). In 1952, the Eckert-Mauchly division of Remington-Rand delivered the first commercial computer systems to the National Bureau of Standards. These machines were called UNIVAC (for Universal Automatic Computer). The UNIVAC had a console, some tape readers, a few cabinets filled with vacuum tubes and a bank of mercury delay lines the size of a china closet. This mercury memory held about one kilobyte and it cost about half a million dollars.
The public became widely aware of the UNIVAC during the night of the presidential election of 1952: Dwight Eisenhower vs. Adalai Stevenson. As a publicity stunt, Remington-Rand arranged to have Walter Cronkite of CBS report a UNIVAC's prediction of the election outcome based on preliminary returns - the very first time this now common procedure was done. With only seven percent of the vote in, UNIVAC predicted a landslide victory for Eisenhower. But Remington-Rand's research director Arthur Draper was afraid to tell this to CBS! The pundits had expected a close election with a real chance of Stevenson's victory, and UNIVAC's prediction seemed counterintuitive. So Draper had the Remington-Rand engineers quickly tweak the UNIVAC program to make it predict the expected result, a narrow victory by Eisenhower. When, a few hours later, it became evident that Eisenhower would indeed sweep the electoral college, Draper went on TV to improve UNIVAC's reputation by confessing his subterfuge. One moral here is that a computer's predictions are only as reliable as its operator's assumptions.
UNIVACs began selling to businesses in a small way. Slowly, the giant IBM corporation decided to get into the computer business as well. Though their machines were not as good as the UNIVACs, IBM had a great sales force, and most businesses were in the habit of using IBM calculators and punch card tabulating machines. In 1956, IBM had pulled ahead, with 76 IBM computers installed vs. 46 UNIVACs.
Page 54
Six Generations of Computers
The 1950s and 1960s were the period when computers acquired many of their unpleasant associations. They were enormously expensive machines used only by large businesses and the government. The standard procedure for running a program on one of these machines was to turn your program into lines of code and to use a key punch machine to represent each line of code as a punch card. You would submit your little stack of punch cards, and when a sufficient number of cards had accumulated, your program would be run as part of a batch of programs. Your output would be a computer-printed piece of paper containing your output or, perhaps more typically, a series of cryptic error messages.
The history of computers from the 1950s to the 1970s is usually discussed in terms of four generations of computers.
The first generation of commercial computers ran from 1950 to about 1959. These machines continued to use vacuum tubes for their most rapid memory, and for the switching circuits of their logic and arithmetic units. The funky old mercury delay line memories were replaced by memories in which each bit was stored by a tiny little ring or "core" of a magnetizable compound called ferrite. Each core had three wires running through it, and by sending pulses of electricity through the wires, the bit in the core could be read or changed. Tens of thousands of these washer-like little cores would be woven together into a cubical "core stack" several inches on a side.
The second generation of computers lasted from 1959 to 1963. During this period, computers used transistors instead of vacuum tubes. By now the vast majority of computers were made by IBM, but one of the most famous second generation computers was the first PDP (Programmed Data Processor) model from the Digital Equipment Corporation. The PDP-1 was of key importance because it was the first machine which people could use in real time. That is, instead of waiting a day to get your batch-processed answers back, you could program the PDP-1 and get answers back right away via the electric typewriter. It also had a screen capable of displaying a dozen or so characters at a time.
The third generation of computers began with the IBM 360 series of computers in 1964. The first of these machines used "solid
Page 55
logic technology" in which several distinct electronic components were soldered together on a ceramic substrate. Quite soon, this kludge was replaced by small scale integrated circuits, in which a variety of electronic components were incorporated as etched patterns on a single piece of silicon. (A "kludge" is an ungainly bit of hardware or computer code.) Over the decade leading up to 1975, the integrated circuits got more and more intricate, morphing into what became called VLSI or "very large scale integrated" circuits.
The fourth generation of computers began in 1975, when VLSI circuits got so refined that a computer's complete logical and arithmetic processing circuits could fit onto a single chip known as a microprocessor. A microprocessor is the heart of each personal computer or workstation, and every year a new, improved crop of them appears, not unlike Detroit's annual new lines of cars.
Although computer technology continues to advance as rapidly as ever, people have dropped the talk about generations. The "generation of computer" categorization became devalued and confused. On the one hand, there was a lot of meaningless hype on the part of people saying they were out to "invent the fifth generation computer" - the Japanese computer scientists of the 1980s were particularly fond of the phrase. And on the other hand the formerly dynastic advance of computing split up into a family tree of cousins. Another reason for the demise of the "generation" concept is that rather than radically changing their design, microprocessor chips keep getting smaller and faster via a series of incremental rather than revolutionary redesigns.
One might best view the coming of the decentralized personal computers and desktop workstations as an ongoing fifth generation of computers. The split between the old world of mainframes and the new world of personal computers is crucial. And if you want to push the generation idea even further, it might make sense to speak of the widespread arrival of networking and the Web as a late 1990s development which turned all of the world's computers into one single sixth generation computer - a new planet-wide system, a whole greater than its parts.
Page 56
Moloch and the Hackers
Though it was inspired by Fritz Lang's Metropolis and the silhouette of the Sir Francis Drake Hotel against the 1955 San Francisco night skyline, the "Moloch" section of Allen Ginsberg's supreme beat poem "Howl" also captures the feelings that artists and intellectuals came to have about the huge mainframe computers such as UNIVAC and IBM:
Moloch whose mind is pure machinery! Moloch whose blood is running money! Moloch whose fingers are ten armies! Moloch whose breast is a cannibal dynamo! Moloch the smoking tomb!
Moloch whose eyes are a thousand blind windows! Moloch whose skyscrapers stand in the long streets like endless Jehovahs! Moloch whose factories dream and croak in the fog! Moloch whose smokestacks and antennae crown the cities!
Moloch whose love is endless oil and stone! Moloch whose soul is electricity and hanks! Moloch whose poverty is the specter of genius! Moloch whose fate is a cloud of sexless hydrogen! Moloch whose name is the Mind!11
Despite the negative associations of computers, many of the people associated with these machines were not at all interested in serving the Molochs of big business and repressive government. Even the v
ery first von Neumann architecture mainframe, the 1949 EDSAC, was occasionally used for playful purposes. The EDSAC designer Maurice Wilkes reports:
The EDSAC had a cathode ray tube monitor on which could be displayed . . . a matrix of 35 by 16 dots. It was not long before an ingenious programmer used these dots to make a primitive picture. A vertical line of dots in the center of the screen represented a fence; this fence had a hole in it that could be in either the upper or lower half of the screen, and by placing his hand in the light beam of the photoelectric paper tape reader, an operator could cause the hole to be moved from the lower