Science fiction is usually couched in fact, and it’s fun to look at an iconic computer like HAL 9000 and trace the origins of this artificial intelligence gone wrong. You might be surprised to find that you can trace HAL’s origins to a computer built for the US Army in 1952.
If you are a fan of the novel and movie 2001: A Space Oddessy, you may recall that the HAL 9000 computer was “born” in Urbana, Illinois. Why pick such an odd location? Urbana is hardly a household name unless you know the Chicago area well. But Urbana has a place in real-life computer history. As the home of the University of Illinois at Urbana–Champaign, Urbana was known for producing a line of computers known as ILLIAC, several of which had historical significance. In particular, the ILLIAC IV was a dream of a supercomputer that — while not entirely successful — pointed the way for later supercomputers. Sometimes you learn more from failure than you do successes and at least one of the ILLIAC series is the poster child for that.
The Urbana story starts in the early 1950s. This was a time when the 1945 book “First Draft of a Report on the EDVAC” was sweeping through the country from its Princeton origins. This book outlined the design and construction of the Army computer that succeeded ENIAC. In it, Von Neumann proposed changes to EDVAC that would make it a stored program computer — that is, a computer that treats data and instructions the same.
Popularity of Von Neumann Designs
Maurice Wilke’s EDSAC and the Manchester Baby were the first to build a computer based on Von Neumann’s new design, but they wouldn’t be the last. In all, there were probably at least 18 machines based on this paper’s architecture including MANIAC, Johnniac, and SILLIAC. The exact number is hard to pin down since many machines reused older machines, but however you count, there were at least a dozen. These machines are often known as “IAS machines” after the Princeton lab that published the EDVAC report.
With this wave of computer research, the Army wanted to have a stored program machine and turned to the University of Illinois to build ORDVAC. The Army took delivery of the new machine in 1952. It used over 2,000 vacuum tubes (mostly 6J6s and 5687s) and had 1K of 40-bit words using Williams tubes. As part of the contract, the Army agreed to fund the construction of an identical machine for the University to keep. That machine was the ILLIAC — later known as ILLIAC I.
Twins, Compute-by-Phone, and other Oddities
ILLIAC I started operation in late 1952. At that point, ILLIAC and ORDVAC were quite possibly the only two identical computers in existence. Programs written on one could be run on the other. That seems like no big deal today, but in 1952 these machines were so large and expensive that only one of each was built. Even though many computers of this era used the same basic design, none had compatible instruction sets except for ILLIAC and ORDVAC. In addition, ORDVAC could be used by telephone from the University at night when the Army wasn’t using it. This made it one of the first, if not the first, computer to be operated remotely.
The computers weighed in between 3,000 and 5,000 pounds and used hexadecimal. However, the numbers above 9 used KSNJFL instead of our more familiar ABCDEF. This made some kind of sense based on the teleprinters used, apparently. The letters don’t appear to line up in Baudot or Murray codes, so perhaps it was a different style of teleprinter than I’m familiar with. As far as I can tell, the use of A-F was made popular by the IBM System/360 years later. Other systems, used other letters, apparently depending on what was handy for their hardware.
One of the most interesting design features of ILLIAC, though, is it was asynchronous. Usually, CPUs have a master clock that each circuit obeys. But the ILLIAC and ORDVAC used units that were in a daisy-chain. So one unit would finish its work and signal the next unit to start. This has certain advantages and disadvantages and there have been similar CPU designs over the years including the recent IBM SyNAPSE.
ILLIAC was the first music composition aided by a computer (Illiac Suite) and the first version of PLATO for computer-based education. This early version of PLATO serviced a single user, although version two could accommodate two simultaneous users.
Errors Were Common
Thinking of HAL as a computer mind that went wrong is a proposition very different today than it would have been at the time. Our modern hardware has unbelievably low error rates. But errors and hardware failures were particularly common in the 1950s and had to be worked around by the computer operators.
The tubes of the ILLIAC were prone to failure and there was no built-in error checking. Periodic tests under stress conditions would identify flaws, hopefully before they affected normal operations. A speaker at a conference from the day noted that the average time between errors on the Williams tube memory was “now up to 30 hours.”
Input/output speed was another problem. The punched tape readers took 40 minutes to fill the machine’s memory. A later project sped the readers up to reduce that number to under 8 minutes. Keep in mind, this was about 40K bits of data, so imagine what it would take to fill up a modern flash drive.
Enhancements and Copies
The ILLIAC spawned its own clones including ORACLE, CYCLONE, and MISTIC from Michigan State which used transistors instead of tubes and had core replacing the Williams tube memory. Just as we tinker with our machines, these computers often grew, and one reference reports that by 1962 when ILLIAC retired, it had 5,000 words of memory along with storage on a magnetic drum, pictured above.
It was a far cry from a copy, but a definite enhancement was ILLIAC’s successor ILLIAC II. The design for this machine started in 1958 and it came online in 1962. This was a transistorized machine with 8K words of core memory. The word size was 52 bits. This machine used asynchronous modules and pipelining to get a form of parallel execution. It also used cache memory for I/O devices.
Thanks to these enhancements, the machine was about 100 times faster than earlier machines of the day. It wasn’t the speed champion, though — that honor belonged to the IBM 7030 Stretch computer which was fast, despite not being as fast as promised — although apparently, the University disputes that. IBM sold the machine as a 4 MIPS machine, but only managed about 1.2 MIPS and it is considered one of the biggest IBM failures up until the PC Jr.
ILLIAC IV: HAL’s Grandfather
ILLIAC IV was an ambitious — perhaps too ambitious — attempt to build a large-scale parallel computer. The machine would have 4 quadrants and each quadrant would have a CPU (a control unit) and 256 processing elements (PEs). When complete, the 4 CPUs would have the ability to each operate on 64 pieces of data at one time. But the project was plagued by problems from the start.
Texas Instruments was set to fabricate the PEs in an IC but backed out which led to a major redesign. The new design had to use off-the-shelf ICs leading to much larger cards with more cooling and power requirements. This led to more additional costs.
Another cost problem occurred when they realized the control unit used positive logic and the processing elements used negative logic. Finally, one quadrant was operational and because there were demonstrations about the possible military use of the computer, the government directed Burroughs — the company manufacturing the machine — to deliver it to NASA’s Ames Research Center instead of the University in 1972.
Despite its problems — and frequent downtime due to power supply problems, the machine was still 13 times faster than other machines in 1972. In 1975, it was connected to the ARPANet — the predecessor of the Internet — and became the first network-accessible supercomputer.
ILIAC IV Design Was the Computer of the Future
ILLIAC IV might have tried too much too fast. The use of large-scale ECL integrated circuits, thin-film memory, and specialized disk drives that held a whopping 80 megabytes on a 36-inch disk, were all risky items for their day. It even had plans for a write-once laser memory system that could store a terabit of data on a drum carrying a piece of polyester.
Keep in mind that — at the time — 20 logic gates in a package was considered large-scale. Conventional ECL ICs had perhaps a half dozen gates in a 16-pin package. TI’s devices would have 64 pins and contain 20 gates, as is shown here. However, TI was unable to get crosstalk under control and asked for about a year’s worth of schedule relief. The ILLIAC team didn’t want to wait and redesigned the device to use conventional ECL ICs. This slowed the clock speed from 25 MHz to 16 MHz, pushed the project over budget and ran the schedule out 2 years. What was going to be a one inch square PCB (perfect for our contest), turned into a 6×10 board. Hindsight, of course, is 20/20. TI successfully produced the chips a year later and sold them commercially, but by that time the team was too far down the redesign path.
The board size increase took up the room slated for the thin film memory. So you make the cabinets bigger, right? That caused problems with signal propagation and distribution. So the team changed to newfangled semiconductor memories.
An Ambitious Project Cut Down to Size
By 1969, running massively over budget and schedule, they decided to only do one quadrant. That cut the potential speed of the machine significantly. By the time Ames got all the hardware in 1972, it was years late and instead of the original 8 million dollar price tag, the bill was up to $31 million. Don’t forget, too, that the 8 million was for a four-quadrant machine, so there was 1/4th of the machine for nearly 4 times the price!
Operationally, the machine was a nightmare to bring up. PCBs were cracked, wirewrap terminals would short, card contacts were prone to oxidation, and the card socket plastic softened over time. The ICs were very sensitive to humidity, and there were many other issues. By 1973 the computer could run programs, but the results were not always correct. In 1975, Ames started a 4-month effort to fix things. They replaced over 100,000 resistors, rewired long propagation delay lines, cleaned up the power supplies, and reduced the clock speed from 16 MHz to 13 MHz, only half the speed of the original 25 MHz design. Now the machine was able to do its work reliably at least some of the time. Ames also replaced the original Burroughs control computer with a PDP-10.
The operating technique reflected the need to avoid hardware errors. One user described the process in place when they billed you for your computer time on the ILLIAC IV. They’d run diagnostics first. If they passed, they would run your job. Once complete, they’d run the diagnostics again. If the diagnostics passed, you got the results of your job and the bill for your time.
The performance was lackluster at first, although a custom version of Fortran helped programmers take better advantage of the hardware. On problems that were amenable to parallel execution, the machine was the fastest in the world until 1981. Keep in mind that even high-speed in those days is nothing we’d look twice at now. From the Burroughs manual on the ILLIAC IV, for example, they talk about doing a 4,096 point discrete Fourier Transform on 64-bit data in only 0.73 milliseconds (730 microseconds). According to the same source, an IBM 7094 would need nearly 3 seconds for the same task.
Other ILLIACs
If you noticed, I didn’t mention ILLIAC III — it had a short life from 1966 to 1968 when it was destroyed in a fire. ILLIACs V and above are more modern multi-node computing clusters. While they are interesting in their own right, they don’t really share much with the ILLIAC IV save the name.
ILLIAC in Retrospect
The ILLIAC IV was, in a way, ahead of its time. Semiconductor memory was the way of the future. So was large-scale IC integration. The larger boards required more grounding and pushed the team to 15-layer boards which would be easy now, but were difficult to produce in those days. Even mass storage using write-once laser media was something that would become important years later.
Considering 75% of the machine was never built and the clock speed was reduced by nearly half, it is impressive that it was still the fastest computer in the world for many problems. If you want more hardcore technical details about ILLIAC IV, a book edited by Gordon Bell from the 1970’s has a pretty good overview. If you’d rather see it from a user view, here’s a NASA paper from 1977 with code listings. Or you can dig into the gory details.
I often tell students that you usually learn more from failing than you do from succeeding, and the ILLIAC IV was a great example of that. It is largely considered a failure but it was useful and it did lead the way in a number of important technologies. Interestingly, the earlier IBM 7030 Stretch — a contemporary of the ILLIAC II — had similar problems. It also overpromised and under delivered. Yet it spawned technology that would later drive one of IBM’s most successful computers, the IBM System/360.
Arthur C Clark released his novel in 1968, sixteen years after the ILLIAC projects were under way. His imagining of the most sophisticated computer of the 1990’s was HAL 9000, built into a space ship, comprised of hardware cards plugged into a bus system, and subject to malfunction. What’s fun to think about is how many engineers were inspired by HAL — that would be life imitating art imitating life, wouldn’t it?
“Urbana is hardly a household name unless you know the Chicago area well.”
Urbana, Illinois is about 2 hours South of Chicago, and is thus not in the “Chicago area”.
By Texas standards that’s next door.
Yah it’s only 139 miles I can do that round trip on one tank of gas in my Corvette with range to spare.
Honestly, what we consider “the Houston area” or the “DFW area” spans quite a distance these days. I think of anything from, say College Station to Galveston and from Beaumont to Sealy part of “the greater Houston area.” New Orleans and Los Angeles are the same. 2 hours away is still the “greater area.” Anyway, I’m not sure that it matters anyway. You either know where it is or it isn’t. Oddly enough, I’ve probably come as close to being killed violently twice in Chicago as I have anywhere else in the world. Once in near miss truck accident and once walking through a very wrong neighboorhood.
Uh huh.
Looking from any of the coasts (East, West, Gulf), it is. (ducking to avoid the flying fruit headed my way in response)
If you know your computer history you know about Urbana and PLATO.
I would have voted for Chippewa Falls, Minnesota, home of Seymour Cray. I would also have accepted Yorktown Heights, NY, (former) home of IBM Research.
Oh, well. RIP, HAL..
Mr. Cray’s Chippewa Falls is actually in Wisconsin.
Science people know about Urbana.
I’ve driven through Chicago. Two hours south could be a half mile from downtown.
I went to school in Urbana. Go Illini. Nothing but corn for 2 hours until you hit Chicago. I can see Chicago from my house?? Not. Definitely not in the Chicago area.
First computer was invented at Iowa State. Go Cyclones.
Atanasoff invented the first electronic digital computer in the 1930s at Iowa State College. Challenges to his claim were resolved in 1973 when the Honeywell v. Sperry Rand lawsuit ruled that Atanasoff was the inventor of the computer. His special-purpose machine has come to be called the Atanasoff–Berry Computer.
Urban Champaign. is a renown place all over the world…. it was the first airport you could find on Flight Simulator 1 after taking of from Meigs field and heading South… FS1 was developped by Bruce Artwick… in the U. of Ill., Urbana, Champaign.
Yet everyone in the Chicago area knew of it.
I had a friend that went there. I recall visiting and playing on that Plato terminal, so impressed with its 512×512 display of neon pixels. I wished I could have one on my Altair 8800 at home. :)
“This made it one of the first, if not the first, computer to be operated remotely.”
Remote calculation was first achieved one decade earlier :-)
Look at Stiblitz at Bell Labs in 1940 : https://thedayintech.wordpress.com/2013/09/11/kitchen-table-computer/
Yea looks like Yann is right.
HAL’s failure was not due to hardware; it was due to conflicting instructions given to him during the mission briefing, commands which conflicted with his preprogrammed mandate to preserve human life. He may have had artificial intelligence, but that didn’t translate into an ability to deal with major conflicts, and it drove him mad.
Good point. So it was software. If his ancestor had been the Apollo Guidance Computer he would have been able to prioritize objectives and drop lower priority conflicts. And maybe that is what he did. He dropped preserving life. So maybe he was operating perfectly. Interesting topic.
Typo “in a 16-bit package” should probably be “in a 16-pin package”
Also, just for fun, many would contend that Conrad Zuse’s Z3 was the first general purpose stored program computer in 1941, though it was unknown in the west until after the war, and wasn’t proven to be a true general purpose computer until 1998 (via a slightly convoluted method, but since the Z4 a few years later unambiguously was a real, general purpose, stored program computer, it’s clear that Zuse understood the concept).
Conrad Zuse came up with the concept of a stored program computer back in the late 1930s but didn’t get to build it until much later.
Urbana checking in here – I’m definitely not in Chicago.
https://imgur.com/3JJR1qk
Have a look at PLATO (Programmed Logic for Automatic Teaching Operations) that was initially run on Illiac starting in 1960 for education delivery and evolved a lot of the things we see online these days (forums, message boards, online testing, e-mail, chat rooms, picture languages, instant messaging, remote screen sharing, and multiplayer games). Also Don Bitzer who developed the touch-sensitive plasma display to interface with it in 1972.
Urbana Champaign was one of the big hot spots for computer research back in the 1950s to 1970s.
We still are, look up:
“National Center for Supercomputing Applications”
..and Wolfram Alpha
Yeah there’s a link to PLATO in the post. At first it was one user at a time but later could do two at a time.
Re: KSNJFL:
“However, the numbers above 9 used KSNJFL instead of our more familiar ABCDEF. This made some kind of sense based on the teleprinters used, apparently. The letters don’t appear to line up in Baudot or Murray codes, so perhaps it was a different style of teleprinter…”
According to the ORDVAC manual, they used a teleprinter to directly code the numbers. The keyboard was modified to generate ONLY hex:
http://bitsavers.informatik.uni-stuttgart.de/pdf/univOfIllinoisUrbana/ordvac/ORDVAC_Manual_Volume_1_1952.pdf
— pg 26 of the PDF
So, yes, it’s Teletype tape, and a Teletype, but not as we know it, Jim. The codes for the numbers aren’t Baudot codes either. They appear to have taken the keyboard apart and recoded it (easy enough to do on a Teletype) to punch straight binary for each number and continued right on with KSNJFL. Sure wish they mentioned why they chose those particular letters, though. Maybe it was the initials of the guys who modded the Teletype
The mnemonic was King Sized Numbers Just for Laughs but I don’t think they started with that. I did a lot of looking through old codes trying to figure that out and never did come up with a reasonable explanation.
I bet it was the initials of their girlfriends. Would be just like us to think that would impress them ;-0
Don’t you guys use Google to search for things? :-)
Once upon a time on Usenet this explanation for hexadecimal using KSNJFL was posted:
https://groups.google.com/d/msg/alt.folklore.computers/yvA80J3kLNM/UFifQreERawJ
@Greg A Woods — they recoded the keyboard so that the letters K S N J F L had the proper binary values.
They took a standard Baudot machine and hacked the mechanical keyboard encoding so that the values came out right. The KSNJFL keys just happened to be the easiest to physically recode.
Read all about it here:
https://ia801703.us.archive.org/17/items/modificationofte56mill/modificationofte56mill.pdf
Baudot K = 01111
ILLIAC K = 01010
Baudot S = 00101
ILLIAC S = 01011
Baudot N = 01100
ILLIAC N = 01100
Baudot J = 01011
ILLIAC J = 01101
Baudot F = 01101
ILLIAC F = 01110
Baudot L = 10010
ILLIAC L = 01111
Oh, and printing from this weird code is easy as well…just rearrange the type in the typebox on a Model 28. You can assign whatever character you want to any printable code.
Doing more digging, I found this:
http://www.popflock.com/learn?s=Talk:ILLIAC_IV
Which refers to this:
https://ia801703.us.archive.org/17/items/modificationofte56mill/modificationofte56mill.pdf
…and on page 13 of the second PDF, we see in Fig 1B the keyboard layout…with KSN down the left side and JFL down the right.
As I suspected, they recoded the keyboard. Teletype keyboards are magnificent examples of mechanical ingenuity. They use code bars (called “combs” in the document) attached to each key to shift (or not) crossbars representing each bit to be transmitted. So modifying a Teletype to punch “0000” for key “0” through “1001” for key “9” is a not insignificant task. The keyboard must be disassembled, the code bars modified to generate the bit pattern desired for the key, and the whole thing reassembled.
Page 17 of the PDF discusses the necessary rearrangement of the type box to print the new code correctly.
There’s probably an entire article in the second PDF, when combined with the Principles of Operation manual for a Model 28 Teletype.
Bonus: spirit duplicated…I can almost smell it
Great find. Yes, I’ve been elbows deep in a KSR28 more times than I want to recall. The box of ball bearings was particularly inspiring.
I’m having trouble finding benchmarks that give all the details, but that time for an FFT seems to be about 20x longer than on a modern i7. Pretty amazing for the time!
This made me scan my shelves until I found my 1982 copy of “The ILLIAC IV: The First Supercomputer” by R. Micheal Hord. I remember reading it back then, pretty sophisticated, but looking at the assembly examples now they look pretty simple.
Let’s not just toot our horn on NCSA and Supercomputing, but what about the upcoming LSST! And how NCSA houses some parts of the XSEDE program, which is like having ALL the Supercomputers available to researchers.
I was a student at U of I in the ’70s and have a distinct memory of seeing the film at a theater on campus. In anticipation of the “born in Urbana” line, the electrical engineering students (computer science was entirely within the realm of the Electrical Engineering department at that time) were already standing on their seats, ready to celebrate. If there was any dialogue in the next 30 seconds of the scene, nobody in the theater would be able to tell you what it was.
I graduated from the U of I at Urbana/Champaign with a B.S. in Computer Science in 1983. I was a grader and teaching assistant for CS 101 (intro to FORTRAN for engineers) during my last three years. I remember a few exam evenings, staying up late at night grading tests and listening to war stories among the professors and grad students. Several of the stories were about the Illiac IV. I don’t remember specifics, but I do remember being so sad and jealous because I was obviously born too late, and I missed all the interesting things in the development of computers. IBM introduced its model 5150 PC, as I was entering my third year of college.
In hindsight, I think that, while I certainly missed some interesting things, I eventually got to see a few interesting things happen in the development of computers, as well. The explosion and mass availability of the Internet, for example. The development of color screens that could do a good job with both text AND graphics simultaneously, for another.
If you advance the letters in the name ‘HAL’ by 1, it was a reference to ‘IBM’ and what they were doing in that decade…
Yeah, except for the fact that that’s apocryphal. As stated by Clarke himself in “The Lost Worlds of 2001”:
“…about once a week some character spots the fact that HAL is one letter ahead of IBM, and promptly assumes that Stanley and I were taking a crack at the estimable institution … As it happened, IBM had given us a good deal of help, so we were quite embarrassed by this, and would have changed the name had we spotted the coincidence.”
Weak trace at best. Thinking machines science fiction like Arthur C. Clarke’s H.A.L. from his book “2001: A Space Odyssey” have been going on long before the first electronic computer. Probably should write electro-mechanical or analog mechanical but then would have to include knotted ropes and Abacus. Automaton in particular indicating a need for intelligent machine ‘life’. Metropolis ‘ Maria Robot or even as to Jewish mythology Golemn. Golem was a creature/machine made from clay that would do its masters bidding on command without question and for the most part unstoppable. First military use Robot? I enjoy click bait titles and Authors writing but this is really weak. Someone should say EBCDIC.
Wow, you’re good, “CPU (a control unit) and 256 processing elements (PEs)” yet lets throw this in ” large-scale ECL integrated circuits” care to explain what things stand for? Yes, we all should know what CPU and IC stands for, but lets throw acronyms that is not taught in 1st grade school (most 5 year olds know what some acronyms mean).
oh whilst I’m at it, wiki says: “ILLIAC (Illinois Automatic Computer),” “JOHNNIAC (John v. Neumann Numerical Integrator and Automatic Computer),” “UNIVAC I (UNIVersal Automatic Computer I),” MANIAC (Mathematical Analyzer, Numerical Integrator, and Computer or Mathematical Analyzer, Numerator, Integrator, and Computer),” SILLIAC (Sydney version of the Illinois Automatic Computer, i.e. the Sydney ILLIAC),” “EDVAC (Electronic Discrete Variable Automatic Computer)” and “ORDVAC (Ordnance Discrete Variable Automatic Computer).”
..Not going to worry about International Business Machines SyNAPSE backronym.
If you’re going to be going on some psychotic rant about writing, perhaps you should try to avoid being a total hypocrite.
You wrote: “but lets throw acronyms that is not taught in 1st grade school”
– It should be “let’s”, not “lets”.
– It should be “that are not taught”, not “that is not taught”.
– Nobody who is a native English speaker would say “1st grade school”, they would say either “1st grade” or “grade school”.
Maybe you should try to work on your own lack of English skill before screeching like a Karen at others about theirs.