In some sense, we do! Many CPU’s support [registers and instructions that can manipulate 512 bits at a time](https://en.wikipedia.org/wiki/AVX-512).
More accurately, these are *vector instructions*. A 512-bit vector addition instruction doesn’t add a pair of 512-bit numbers; instead it adds eight pairs of 64-bit numbers all at once (or sixteen pairs of 32-bit numbers, or thirty-two pairs of 16-bit numbers, or sixty-four pairs of 8-bit numbers).
People don’t often decide to write programs that need numbers larger than will fit in 64 bits. (Roughly 16 billion billion.) They do often decide to write programs that perform bulk processing of large arrays of smaller numbers.
The main difference between 32-bit systems and 64-bit systems is *addressing*: Every byte of memory has to have a unique number called an *address* identifying its location. 32-bit addressing gives you enough for 4 billion bytes; when computers started using more than that around 2005-2010, we started upgrading our CPU’s, OS’s and software to use 64-bit addressing.
64-bit addressing will run out when our computers hold 16 billion billion bytes. We can multiply one of those factors by 1000 and divide the other by 1000 without changing that overall number, so that’s 16 million trillion bytes. Our current largest computers have perhaps 10 trillion bytes of memory. So we’re about a factor of 1 million from the next upgrade.
(Don’t ask about the 16-bit to 32-bit upgrade in the early 1990’s. The memory architecture of 16-bit PC’s was super messy and rather insane.)
Latest Answers