Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!rutgers!sri-unix!ctnews!pyramid!decwrl!decvax!ucbvax!sdcsvax!ucsdhub!jack!man!sdiris1!rgs From: rgs@sdiris1.UUCP Newsgroups: comp.arch Subject: Re: 64 Vs 32 Message-ID: <557@sdiris1.UUCP> Date: Sat, 14-Mar-87 16:20:36 EST Article-I.D.: sdiris1.557 Posted: Sat Mar 14 16:20:36 1987 Date-Received: Sun, 15-Mar-87 23:46:16 EST References: <1308@ucbcad.berkeley.edu> Organization: Control Data Corp.(CIM), San Diego Lines: 52 Control Data's current line of mainframes is 64 bits. While the question was asked for micros, micros tend to follow the lines of the larger machines but with a few year lag. So I think this question may best be answered by looking at the advantages and disadvantages of 64 bits in a mainfraim environment. The biggest advantage is, of course, floating point. Doing everything in what is in effect double precision can be quite nice. The vast majority of code we work with is has at least some double precision floating point. I have never worked with an analysis package that didn't make extensive use of it. In fact our cad/cam package running on 32 bit machines has been exclusively double precision for quite some time now. 32 bit reals just doesn't hack it for serious analysis (or even most ball park analysis) work. The newest entry in the Cyber line seems to run about x times faster then a VAX, but that's a VAX running single precision compared to a Cyber running in effect double precision. Comparing a Cyber running single to a VAX running double is a more accurate benchmark. It turns out be quite an impressive number when you consider the current bottom of the line Cyber costs about the same as the 8600. That, and just try to do reasonably fast 128 bit floating point on a 32 bit machine (a Cyber's double precision is 128 bits). The other neat thing they do is with address space. The Cyber uses a 48 bit virtual address bus. This is divided into 3 (4 for purists) fields. These are: ------------------------------------------------------------------------------ | Ring | Segment | Indirection| Address | ______________________________________________________________________________ 47 44 43 32 31 31 30 0 Each process has 4096 segments of 2 Gigabytes each. Code resides in one segment, stack in another, heap in another, data in another, and each virtually addressed file in yet another. This is kind of like a virtual version of a 8086 achitecture, but on a BIG scale. The other two fields are ring and indirection. The indirection bit is for indirection chains through memory, and the ring field (16 rings) is used to seperate levels of the OS from the application. The whole idea was to make it very difficult to run out of virtual memory even if you segment your data structures into different bases. Other than that, the advantage of 64 bit integers isn't that great. As has been mentioned, most things fit in 32 bit integers. It does seem to lessen the worry about integer overflows tho. The biggest cost for 64 bit integers is, of course, the memory it uses. But let's face it, memory is not quite the cost consideration it used to be. I wish I could give more details on the achitecture used, but I just haven't worked with the machines, so I don't really know other than what I've read. I also wish I could give real numbers about cost and performance comparisons, but little things like "company private" labels dissuade me. -- UUCP: ...!sdcsvax!jack!man!sdiris1!rgs | Rusty Sanders Work : +1 619 450 6518 | Control Data Corporation (CIM) | 4455 Eastgate Mall, Insert standard disclaimers here. | San Diego, CA 92121