Hacker News new | past | comments | ask | show | jobs | submit login

I worked on the UIUC PLATO system in the 1970s : CDC-6600, 7600 cpus with 60-bit words. Back then everything used magnetic core memory and that memory was unbelievably expensive! Sewn together by women in southeast Asia, maybe $1 per word!

Having 6-bit bytes on a CDC was a terrific PITA! The byte size was a tradeoffs between saving MONEY (RAM) and the hassle of shift codes (070) used to get uppercase letters and rare symbols! Once semiconductor memory began to be available (2M words of 'ECS' - "extended core storage" - actually semiconductor memory - was added to our 1M byte memory in ~1978) computer architects could afford to burn the extra 2 bits in every word to make programming easier...

At about the same time microprocessors like the 8008 were starting to take off (1975). If the basic instruction could not support a 0-100 value it would be virtually useless! There was only 1 microprocessor that DID NOT use the 8-bit byte and that was the 12-bit intersil 6100 which copied the pdp-8 instruction set!

Also the invention of double precision floating point made 32-bit floating point okay. From the 40s till the 70s the most critical decision in computer architecture was the size of the floating point word: 36, 48, 52, 60 bits ... But 32 is clearly inadequate. But the idea that you could have a second larger floating point fpu that handled 32 AND 64-bit words made 32-bit floating point acceptable..

Also in the early 1970s text processing took off, partly from the invention of ASCII (1963), partly from 8-bit microprocessors, partly from a little known OS whose fundamental idea was that characters should be the only unit of I/O (Unix -father of Linux).

So why do we have 8-bit bytes? Thank you, Gordon Moore!




I worked on the later CDC Cyber 170/180 machines, and yeah there was a C compiler (2, in fact). 60-bit words, 18-bit addresses and index registers, and the choice of 5-bit or 12-bit chars. The highly extended CDC Pascal dialect papered over more of this weirdness and was much less torturous to use. The Algol compiler was interesting as well.

The 180 introduced a somewhat less wild, certainly more C friendly, 64-bit arch revision.

There was only 1 microprocessor that DID NOT use the 8-bit byte

Toshiba had a 12-bit single chip processor at one time I'm pretty sure you could make a similar claim about. More of a microcontroller for automotive that general purpose processor, tho.


yup - we bought 1.5Mb of core for our B6700 for ~US$1.25M (in 1976 dollars) - as a 48(+4) bit machine it either had 6 8-bit bytes or 8 6-bit bytes. In practice ASCII had 7-bit characters and EBCDIC 7-8 bit ones. Teletypes (6-bit) were still around.

From the beginning right up to the birth of microprocessors computer architects were still experimenting around these tradeoffs - around the late 70s it all jelled into 8 bit bytes and power of 2 word sizes

I think that 8 bits is a nice round number is you move to a memory model that is an array of bytes and an array of words - making everything a power of 2 in size makes the hardware simpler (much the same reason why bcd, and decimal arithmetic have largely disapeared)


having said that in the 90s I was once on a design team that built a CPU with 8 9-bit bytes in a word and an 81-bit instruction (9 9-bit bytes).

It was a DSP, memory was still relatively expensive and MPEG needed 9-bit delta frames, however DRAMS with byte parity were available so it was a price point that made sense at the time


The core dump of this systems must have been heavy.


I used a DECSYSTEM-20: it had variable "byte" size.. for ASCII you could (and normally did) pack 5 7-bit bytes into its 36-bit words. There were instructions to read and write bytes of any size you want out of these words.

The C compiler used 9-bit bytes, just to make pointer arithmetic simpler.


One of the most entertaining visual expositions of how magnetic core memory works is this little 14-min overview of the Saturn V memory system, "How did NASA steer the Saturn V":

https://youtu.be/dI-JW2UIAG0




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: