[comp.arch] IBM 704 nostalgia

haynes@ucscc.UCSC.EDU (99700000) (03/31/88)

In article <9545@ism780c.UUCP> marv@ism780.UUCP (Marvin Rubenstein) writes:
>
>An intresting feature of the 704 and its sucessors (709, 7090, 7094, 7044)
>was that the accumulator was 2 bits wider than a word.  Thus one could
>produce 4 overflows before any information was lost.
>
This was a holdover from the 701.  This feature was explained in the
Proceeding of the I.R.E. article circa 1953 by Werner Buchholz, as
I recall.  I suspect by the time of the 704 they regretted it.
Floating point operations were said to give unpredictable results
if these bits were not zero at the start of an operation (this is
from memory, may be wrong).

General Electric in connection with the 635 machine (predecessor to
today's Honeywell 36-bit machines) made a hardware and software
thing called the 9SA which was to help customers transition from
IBM 36-bit machines to G.E. machines.  IBM programs were stored
in 635 main memory.  The 9SA hardware executed part of the 7094
instruction set and trapped to the 635 processor for handling the
instructions it didn't handle, such as floating point.  This took
some software trickery since the 635 was a 2-s complement machine.
G.E. conducted a lot of tests running 7094 programs on real 7094s
and on the 635/9SA to be sure the results were identical.  On
one occasion a certain customer complained that the G.E. system
was not giving correct results.  After a lot of picking through
dumps G.E. found that the customer's program was in fact starting
a floating point operation with the P and Q bits not both zero.

haynes@ucscc.ucsc.edu
haynes@ucscc.bitnet
..ucbvax!ucscc!haynes

news@ism780c.UUCP (News system) (04/05/88)

>>An intresting feature of the 704 and its sucessors (709, 7090, 7094, 7044)
>>was that the accumulator was 2 bits wider than a word.  Thus one could
>>produce 4 overflows before any information was lost.
>>
>This was a holdover from the 701.  This feature was explained in the
>Proceeding of the I.R.E. article circa 1953 by Werner Buchholz, as
>I recall.  I suspect by the time of the 704 they regretted it.
>Floating point operations were said to give unpredictable results
>if these bits were not zero at the start of an operation (this is
>from memory, may be wrong).

Your memory is close but not exact.  Actually the behavior of floating point
operations (with the extra bits not zero) was defined in the principles of
operation manual.  When I was building  an emmulator of the machine I
concluded that floating operations with the extra bits bits initially not
zero was meaningless.  So I ignored the bits.  And guess what, there was a
program that did not run correctly under emulation!  I had to change my
emulation to correspond to the actual hardware (with a performance hit in
the normal case).  One of the things I learned from this:  if your hardware
has a bug like this don't document it as a feature or you will have to live
with it.

BTW.  Accounting for those two extra bits added about 17% to our alu chip
count.

      Marv Rubinstein - Computer Historian