According to http://www.quadibloc.com/comp/cp0201.htm

The CDC 1604 used 48-bit floating point with 11 bits exponent and 36 bits mantissa. There was also a double precision format (which I believe was added later as an option) that simply adds an extra 48 bits of mantissa.

The CDC 6600 went up to 60 bits, 11 exponent, 48 mantissa. There does not seem to have been a double precision option.

I think it is worth noting that both computers came not only from the same company but the same designer, Seymour Cray. So the designer changed his mind, between those two machines, about the optimal floating-point size. (We are used to word size being mostly about the required size of addresses, but these computers were built primarily for fast floating-point arithmetic; the address sizes were separate and smaller.)

I can think of two reasons why he might've changed his mind:

  1. Experience with the 1604 showed 48 bits was not always enough, so a double precision option had to be added. Cray took that experience into account when designing the 6600.

  2. Maybe 48 bits was enough for the 1604, but was not enough for the 6600, which because of its greater performance would be used to perform longer chains of calculations, creating more opportunities for rounding error.

In other words, was the 48-bit 1604 a mistake, discovered to be such once it had been used in production for a while? Or was 48 bits the right choice for the 1604 but not for the more powerful successor?

Or was there another factor I'm not taking into account?

  • 2
    I think a full answer to this would be a book on the history of the development of numerical methods in scientific computing. But to give one relevant data point, there are important methods used in structural analysis which require about 9 accurate decimal digits, i.e. about a 32-bit mantissa, plus about 50% more to allow for numerical precision issues (e.g. subtraction of almost-equal numbers). So choosing a mantissa length of 48 bits is not entirely "pulled out of thin air". the later IEE754 standard bumped this a bit higher, to a 53 bit mantissa in a 64 bit word. – alephzero Feb 27 at 17:46
  • 1
    I suspect a very big or important customer simply came to them and said they needed more precision. They were making super-computers after all, which meant they were being used for bleeding-edge computation. – Mark Ransom Sep 9 at 18:40

At Ed Thelen's website one can find a pdf copy of "Design of a Computer - The Control Data 6600" by J.E. Thornton (Scott, Foresman and Company, 1970) with a foreword by Seymour Cray. Thornton was "personally responsible for most of the detailed design of the Control Data model 6600 system" according to the foreword by Cray.

On page 13, one finds

The selection of the sixty-bit length was made for efficient instruction packing and for extended floating point precision.

(note that instructions were 15 or 30 bits, so could be packed into 60-bit words).

| improve this answer | |
  • Sounds much like I've been told many years ago. – Raffzahn Feb 27 at 22:08
  • 2
    An interesting note: if a loop fit entirely within a 60-bit word, it would run without extra instruction fetches after the first. I wrote a compiler back in the '70s that took advantage of that property when possible (i.e., very rarely). – Richard Hussong Sep 7 at 21:20
  • I worked for the company Jim Thornton founded after he left CDC, Network Systems Corp. – Mark Ransom Sep 9 at 18:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.