• 0 Posts
  • 511 Comments
Joined 1 year ago
cake
Cake day: June 22nd, 2023

help-circle












  • We do, depending on how you count it.

    There’s two major widths in a processor. The data register width and the address bus width, but even that is not the whole story. If you go back to a processor like the 68000, the classic 16-bit processor, it has:

    • 32-bit data registers
    • 16- bit ALU
    • 16-bit data bus
    • 32-bit address registers
    • 24-bit address bus

    Some people called it a 16/32 bit processor, but really it was the 16-bit ALU that classified it as 16-bits.

    If you look at a Zen 4 core it has:

    • 64-bit data registers
    • 512-bit AVX data registers
    • 6 x 64-bit integer ALUs
    • 4 x 256-bit AVX ALUs
    • 2 x 128-bit data bus to DDR5 (dual edge 64-bit)
    • ~40-bits of addressable physical RAM

    So, what do you want to call this processor?

    64-bit (integer width), 128-bit (physical data bus width), 256-bit (widest ALU) or 512-bit (widest register width)? Do you want to multiply those numbers up by the number of ALUs in a core? …by the number of cores on a piece of silicon?

    Me, I’d say Zen4 was a 256-bit core, but you could argue any of the above numbers.

    Basically, it’s a measurement that lost all meaning so people stopped using it.


  • We can, but it’s awkward to do so. By having everything work with powers of 2 you don’t need to have everything the same size, but can still pack things in memory efficiently.

    If your registers were 48bits long, you can use it to store 6 bytes, or 3 short ints, but only one int with 16-bits going unused. If they are powers of two in size, you can always fit smaller things in them with no wasted space.