home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.arch:8875 alt.folklore.computers:12473 vmsnet.pdp-11:611
- Path: sparky!uunet!gatech!rutgers!dziuxsolim.rutgers.edu!zodiac.rutgers.edu!leichter
- From: leichter@zodiac.rutgers.edu
- Newsgroups: comp.arch,alt.folklore.computers,vmsnet.pdp-11
- Subject: Re: Unnormalized FP and a PDP-11 bug (Re: Algorithm for bit finding)
- Message-ID: <1992Aug12.075553.1@zodiac.rutgers.edu>
- Date: 12 Aug 92 11:55:53 GMT
- References: <BsFMD4.HAI@watcgl.uwaterloo.ca> <55926@mentor.cc.purdue.edu> <1992Aug5.215915.9787@thinkage.on.ca> <BsKqyz.JLB@watcgl.uwaterloo.ca>
- Sender: news@dziuxsolim.rutgers.edu
- Followup-To: comp.arch
- Organization: Rutgers University Computing Services
- Lines: 32
- Nntp-Posting-Host: cancer.rutgers.edu
-
- In article <BsKqyz.JLB@watcgl.uwaterloo.ca>, awpaeth@watcgl.uwaterloo.ca
- (Alan Wm Paeth) writes: [Describes problme on PDP-11 with using FP operations
- to copy non-FP data, because the FP unit would normalize the values.]
-
- There've been a number of responses to this, including responses from people
- who I KNOW are familiar with PDP-11 (and VAX) format FP numbers, and they all
- neglect to point out a fundamental flaw with the story as told: The format
- uses a hidden bit representation, so the in-memory value is NOT "normalized"
- (in the sense that the most significant STORED bit is 0 about half the time).
- An FP unit that tried to "normalize" a value like this to get rid of the 0
- top bit would not be doing the FP arithmetic of this universe.
-
- What probably was REALLY going on was that some data consisted of "false
- zeros" - a zero sign bit, zero exponent, and non-zero significand. I don't
- have a 11/45 manual handy, but my 1979 PDP11 Processor Handbook does,
- indeed, not explicitly state that a "false zero" will be converted to a
- "true zero" (all zero bits) by a LDF or LDD. (On the other hand, a sign bit
- of 1 with an exponent or 0 - "-0" or "undefined variable" in -11 terminology,
- "Reserved Operand" in VAX terminology - can trap during a load, so a prudent
- ISP abuser might suspect that something might happen to "false zeros".)
-
- -- Jerry
-
- (My favorite story of a simliar problem is on the CDC 6000 series. They
- use 1's complement arithmetic, and when you load a B register, you can't
- really load a constant - you load contant plus some other B register. No
- problem: B0 is always 0, so you add it. Except that in one's complement
- there is also -0 (all 1 bits), and the arithmetic unit tries very hard never
- to generate -0 as an output. In fact, 0+(-0) is 0. So you can't load -0 that
- way! The trick is to realize that the REAL identity for addition on this
- machine is -0, and get that into a register (using bit-wise operations) for
- use in place of 0 when loading data that isn't really numbers.)
-