3 ms·
Was it Fred Brooks or John Mashey who said we should classify CPUs by register size (so the 68000 is a 32-bit CPU on the grounds IIRC that, to software, the 16-
by KerrAvon 5y ago
Was it Fred Brooks or John Mashey who said we should classify CPUs by register size (so the 68000 is a 32-bit CPU on the grounds IIRC that, to software, the 16-bit ALU and data bus are implementation details)?
- phire 5y agoThe whole "bitness" of CPUs is a weird concept. I dislike the "register size" definition, because it kind of falls apart on modern CPUs. Which register should you be measuring? If it's the GPRs, then we will probably be stuck with 64bit CPUs forever, which is boring. Perhaps we should allow the vector registers to be counted? That would mean most modern CPUs are 256bit, but some Intel CPUs are 512bit. What about fpu registers? That would make the 8088+8087 an 80bit cpu, despite it's tiny 8bit bus. Personally, I think we should be using a definition that roughly scales with the the performance of the CPU, rather than the software API. I quite like the idea of memory-bus width. That would fix the 68000 at 16bit, where it arguably belongs, but would make some weirdness with the 8086 and it's 8088 sibling being 16bit and 8bit. But then again, that does actually reflect re-world performance between the two. It gets a bit complicated once CPUs start gaining caches, but I propose we measure the bus width between the CPU core and it's L1 cache. Most modern high performance CPU designs can move actually transfer multiple registers (commonly three) to/from L1 cache every single cycle. Since those registers can be 256bit, that would make them a 768bit cpu. Though if we start talking about per-cycle data transfers, we really should go back and update older CPUs to how much data they can actually transfer per cycle? Since it takes the 68000 12 cycles to transfer 32bits of data to/from memory, that would really make it a 3bit cpu. The z80 would become 1bit, and the 6502 would be 2bit (remember, the 6502 does one memory transfer per cycle, while most other 8/16bit CPUs do one memory transfer every 4 cycles), and the 8080 would be 0.62 bits. You just can't win. Might be better to just to write-off the entire concept of bitness as flawed.