everyone keeps asking me why x86 uses an 8-bit byte, but I'm struggling to find an explanation that makes sense to me. Can any of you help?
what I've found so far
- it looks like x86 evolved from the intel 8008 (from 1972), which was an 8-bit CPU
- the 8008 came after the 4004, which was 4-bit
some questions I have:
- was the reason to build an 8-bit CPU to increase the size of the instruction set? or something else?
- did x86 really directly evolve from the intel 8008?
would love any links!
@b0rk Many early computers used word sizes that were multiples of six bits, and used five or six bit character codes (predating ASCII and EBCDIC). 36 bits was common for big computers, 18 for medium, and 12 bits for small.
@b0rk Early on, 8 and 16 bits were not common sizes, though very few early machines used 32. The word "byte" was created by the developers of the IBM 7030 "STRETCH" 64-bit .supercomputer (1960). Its integer and logical instructions could operate on groups of bits smaller than a word, from 1 to 8 bits. Most I/O was done in 8-bit increments, using an 8-bit character code unique to Stretch. The sub-word data was addressed on it boundaries, making a power-of-two word size important.
@b0rk While Stretch was considered a commercial failure, many of its technical developments were incorporated into the System/360. The 360 established the byte size as a fixed 8 bits. That ultimately waste main influence on other computers, mainframe, mini, and micro, adopting 8-bit bytes.
@b0rk The 8008 used 8-bit bytes because Computer Terminal Corporation designed the architecture for the Datapoint 2200 using 8-bit bytes. The 8008 was designed based on CTC requirements.
@b0rk I'm not sure whether there's any available information regarding specifically why CTC chose 8 bits, but 8-bit bytes were generally becoming commonplace in the late 1960s, in part for IBM compatibility, and in part due to the growing popularity of the ASCII and EBCDIC character codes, which were 7-bit and 8-bit codes, respectively, and 8-bit peripheral devices, including e.g. 8-level paper tape and 9-track magtape (8 data bits).
@brouhaha @b0rk probably worth noting explicitly that there was no architectural connection between the 4004 and the 8008; the 8008 implemented the instruction set CTC had previously implemented in discrete logic, which predated the 4004. The 4004's instruction set was largely designed by Masayoshi Son of Busicom.