Sunday, May 28, 2006

My second computer: The Bendix G-15

After I wrote my first few programs for Intercom 1000, the other students frequenting the DPL made it very clear that Real Programmers wrote machine code [1, 2]. By this, they meant instructions for the hardware that ran the Intercom interpreters, the Bendix G-15D computer. [3, 4]

The G-15's instruction set architecture was almost the antithesis of Intercom 1000's ISA. It was the reduced instruction set approach taken to an extreme [5]. "2.5 address" instructions. ("The modified type of two-address code is unusual and difficult to classify.") Two-bit operation codes. No index registers. No floating point. I/O in hexadecimal. All the reference material a working programmer needed condensed on two sides of a 3" x 6" Reference Card [6].

There were three basic reasons to write machine code:
1) Speed. Peak instruction rate was 1,800 instructions per second (or up to 3,600 fixed point additions), compared to Intercom's peak of 30 IPS. Of course, these peak rates were only achieved under very special circumstances, but a good programmer could obtain a substantial speedup in machine code.
2) Space. An Intercom interpreter occupied about half the G-15's 63,307 bits (just under 8 KB) of program-addressable memory. Programmers wanted all of it.
3) Difficulty. The difference between the results achieved by good programmers and great programmers was dramatic, and mediocre programmers couldn't hack machine code at all. None of this "learn it in four hours" nonsense. Any program you can write, I can improve.

The G-15's primary designer was Prof. Harry Huskey, who had just returned from a sabbatical in England, where he worked on the Pilot Ace with Alan Turing. The G-15 embodies a lot of Turing's ideas. Brian Randell and I found it has some remarkable similarities to the Deuce computer, another Ace successor.

There were lots of interesting facets to G-15 programming that I will comment on in separate posts. Here I will summarize some of the basic properties of the hardware.

The G-15 was a remarkably physically small computer, perhaps the smallest commercially available electronic digital computer of its time. It was usually described as "refrigerator sized," with a basic system comprising a 3' x 3' x 5' cabinet [7], plus a modified IBM electric typewriter for input/output. It weighed 1,500 pounds and drew 3 KW of power. [8] This small size was a consequence of the simplicity of its logic (implemented with 450 vacuum tubes plus 3,000 germanium diodes [9]) and its use of a small magnetic drum [10] (rather than, e.g., mercury delay lines) for its memory.

In addition to its ISA, a significant contributor to the G-15's hardware simplicity was its use of bit-serial two's-complement arithmetic. Instead of adding numbers a word (28 bits plus sign), or a decimal digit, at a time, it operated on them one bit at a time, combining single bits from two sources with a possible carry bit, immediately writing the result bit to the destination and setting the carry bit for the next "bit time" [11]. Computation speed required a high bit rate, and the G-15 operated with a fast-for-the-time 105 KHz clock. The time units programmers thought in were the word time, 275 microseconds, and the drum cycle time, 29 milliseconds.

An unusual feature was that the buffered input/output system operated concurrently with computation. A program could place up to 108 words in the buffer, start I/O, and resume computation, later testing or waiting for ready if it needed to determine completion or to initiate another I/O operation. In addition to typewriter I/O at up to 10 hexadecimal characters [12] per second, the basic system was equipped with a 500 cps photoelectric paper tape reader and a 17 cps paper tape punch.

What we would today call the memory hierarchy consisted of a single one-word accumulator, three double-precision registers (which naturally required two word times to access, and were also used for multiplication and division), a cache of four four-word lines, a main memory of twenty 108-word lines, and paper tape as the backing store.

Optional peripherals included adaptors for magnetic tape drives [13], card readers and punches, faster paper tape readers, graphical plotters, and, perhaps most unusually, a digital differential analyzer, which provided hardware support for numerical solution of differential equations, with 54 integrators and 54 constant multipliers.

About 400 G-15s were eventually manufactured and sold. Significantly fewer than IBM 650s, but enough to make it one of the most widespread computers of the early 1960s. Due to its broader distribution, some people consider it stronger claiment than the IBM 610 for the title of "the first commercially viable personal computer."

[Other Sources]

[1] The term microcode was not yet widely used.
[2] With exceptions for quick-and-dirty programs, and programs that were floating-point intensive.
[3] We always called it the G-15, but there had been an early version that was labeled G-15A.
[4] See Ed Thelen's site for much historical information, and particularly his scanned-in Ballistic Research Laboraties Report No. 1115 on Domestic Electronic Digital Computers, March 1961, for quite a lot of interesting historical information. The Computer History Museum has an earlier BRL report, no. 971, December 1955, with a section on the G-15. The BRL reports are the source for a lot of the information I give about the G-15, but since the information for the later report was collected from users, rather than manufacturers, it is neither authoritative nor entirely consistent. Where there are discrepancies, I have tended to use the figures that correspond most closely with my memories.
[5] Although the terms RISC and CISC had not yet been coined.
[6] But advanced programmers could and did study the logic diagrams of the hardware to take advantage of unintended features.
[7] Home refrigerators have gotten larger as computers have gotten smaller.
[8] It was air-cooled and did not officially require air conditioning. However, the DPL had an exhaust vent (like those above many kitchen ranges) to suck hot air outside, and also had what was probably the only window air conditioner on the PUC campus.
[9] Compare to the contemporary (and comparably powerful) IBM 650 with 2,000 tubes and 5,000 diodes. And to the 230 million transistors in a recent Pentium D chip.
[10] Possibly reflecting its delay-line heritage, data was read and rewritten on each drum revolution, rather than being stored permanently, as in modern magnetic disks.
[11] Efficient carry propagation required that numbers be stored and read least significant bit first.
[12] The six non-decimal digits were u, v, w, x, y, and z. To this day, I find it easier to recall the underlying bit pattern for, say, x, than for D.
[13] A real improvement over paper tape as backing store. Not dramatically faster to read, but much faster to write, and it could be rewritten, and didn't have to be moved by hand from punch to reader.


Comment by Anonymous Anonymous:

During the early years of PUC's DPL, q.v., there was a friendly competition to see who could write the shortest program to wipe the drum memory completely clean, including the cache short lines. Jim Horning settled it with a program which ran in one of the short (four-word) lines.

3:56 PM  
Comment by Blogger Jim Horning:

This comment has been removed by a blog administrator.

12:04 AM  
Comment by Blogger Jim Horning:

I have just found the following quote about the G-15 in an article by the great computer scientist, Niklaus Wirth:

"Although the Bendix G-15 provided some feeling of success by producing results, the gist of the programming art appeared to be the clever allocation of instructions on the drum. If you ignored the art, your programs could well run slower by a factor of one hundred. But the educational benefit was clear: You could not afford to ignore the least little detail. There was no way to cover up deficiencies in your design by simply buying more memory. In retrospect, the most attractive feature was that every detail of the machine was visible and could be understood. Nothing was hidden in complex circuitry, silicon, or a magic operating system."

3:27 PM  
Comment by Blogger Jim Horning:

Re the comment by anonymous: see this post.

6:52 PM  
Comment by Anonymous Anonymous:

I never used a Bendix machine, but a friend of mine, who was at Carnegie Tech at the time used one, and he mentioned the common joke about it:

Of course the Bendix computers use a drum memory
-- they're actually converted washing machines.

5:42 PM  
Comment by Anonymous Anonymous:

The first computer I used was a G-15 at Michigan Tech. I used the Intercom Language which very similar to what is now called machine language. I learned a very valuable lesson about computing on the G-15. It doesn't mater how long the computer takes, what matters is the turn around time. MTU got an IBM 1401?, which was mucho faster than Benny. Everyone went ga-ga, abandoned Benny to sign up for the IBM. Two week wait for a run. I stayed with Benny, started ny run, put a sign on it "Do Not Turn Off", went home to bed, collected my results in the morning, corrected any errors or a new data set and re-ran it. Usually got at least on run a day, sometimes 2. Was using it for x-Ray crystallography.

By the way, I learned pretty quick to sprinkle the code around the drum to get more speed.

12:07 AM  
Comment by Blogger VIdeoFlyer:

The G-15 was my first computer as well. It was the FIRST computer EVER to be located on a High School campus specifically for student use. San Juan High School, Citrus Heights, CA. Installed in 1964.

I then moved on to the IBM 1620, etc.

By the way... Bendix NEVER made washing machines.

7:20 PM  

Post a Comment

<< The Way It Was home