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]
Notes:
[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
No comments:
Post a Comment