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