ILLIAC was HAL 9000’s Granddaddy

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 there were 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 below.

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.

ILLIAC IV photo by Sascha Pohlflepp CC-BY-2.0

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?

39 thoughts on “ILLIAC was HAL 9000’s Granddaddy

        1. 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.

      1. 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..

    1. 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.

    2. 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.

    3. 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. :)

  1. 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.

  2. 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).

  3. Urbana checking in here – I’m definitely not in Chicago.

    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.

  4. 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

    1. 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

        1. @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

  5. 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.

  6. 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

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.