Sunday, 10 February 2008

my second computer bendix g 15



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: