Hacker News new | ask | show | jobs
by daggersandscars 983 days ago
It is questionable and indicates the author doesn't understand CPU bit width.

There are three key bit widths that impact a CPU

Address bus: how much RAM the CPU could theoretically address.

Data bus: how many bits at a time the CPU can read from the RAM it can address.

Register: how much data an instruction can operate on at a time.

The author appears to understand only address bus width and may be influenced by early (valid, depending) complaints that the transition from 32 to 64 bit didn't benefit end users.

Going from 32-bit to 64-bit registers can provide a significant performance improvement. But only if you're doing math on 64-bit values. Without specialized instructions, 32-bit and smaller math won't improve due to the register width improvement.

Increasing the size of the data bus can provide a big performance improvement if the previous bus was narrower than the register width.

Many (most? citation needed) current, mainstream CPUs use the same bit width for all three (address, data, register).

The 8088 was notable back in the day because it had a 20 bit address bus, 16 bit registers, and an 8 bit data bus.

Edit: The Alpha had 64 bit registers -- it wasn't just a 32-bit register / data bus CPU with a 64-bit address bus.

2 comments

> Many (most? citation needed) current, mainstream CPUs use the same bit width for all three (address, data, register).

This is quite wrong, for most x86_64 processors:

Address bus is 42-48 bits

Data bus is 32-128 bits

Registers are 64 bits but usable as 32/16/8 bits

Even on most ARM processors, neither the address bus nor the data bus are same width as either or the register width.

Don’t forget the SIMD registers which can be 128/256/512 wide (neon/avx2/avx512)

It’s very difficult to give just a single number for data bus width. Do you add all the DRAM channels? DDR5 has 2 x 32 bit channels where DDR4 has a 64 bit channel. What does bus width mean for PCIe, which uses very fast differential serial lines? Really, it hasn’t been a useful way to describe system performance since the 1990s.

Awesome! Thank you for posting this. I'd edit my response to include this, but it's too late.
Great more detailed yet succinct explanation of what I was trying to say