Search code examples
memoryoperating-systemprocessorcpu-architecture

32 vs 64 bit...or, what exactly does 'processing information' mean


I am having trouble understanding the difference between a 32 bit processor and 64 bit processor. I know that a 32 bit processor can access 32 bits at a time while a 64 bit processor can access 64 bits at a time. But what exactly does it mean to access a certain number of bits at one time?


Solution

  • I guess the real answer is it's complicated. Metaphor is the only thing besides dedicated study that'll give you a basic idea. Wallyk is on the right track.

    A few things drive a processor. One is how many operations it can do per second (measured in Hertz). While architecture prevents a simple answer, a 1Ghz single-core processor performs 1,000,000,000 operations per second. Roughly. While it's possible to get a more concrete answer, it wouldn't clarify this case.

    A processor is also other stuff, like a memory controller (in i7), ALU and FPU, and other specialized circuitry, which is what makes even that a hard question to answer.

    For your intents and purposes though, every processor has registers. Registers are like scratch space (faster than memory) for a processor to store small amounts of data while it works on it. These are backed up by L1 and L2 (sometimes L3) caches, that are also ridiculously fast. Basically, 64-bit refers to the size of the scratch space (and by proxy, the pipe that connects the register to the cache, as data is loaded in and out all at once).

    Bigger scratch space means more can be done without reading in new information from cache or memory. However, just because it can be done doesn't mean it always will. A program generally has to be compiled with 64-bit support to take advantage of the speed-up, and even then you usually won't see a difference unless you're manipulating data larger than 32 bits can store. That's more a question for a systems programmer though.

    A processor also needs to keep tabs on what's in memory (as in, what's in use and what's not.) It does this using a special register. The reason why a 32-bit processor can't normally address more than 4GB of RAM has to do with the size of this register. While processor extensions such as PAE allow 32-bit operating systems on 32-bit processors to address as much as 64 Gigabytes of RAM, most OS's don't generally support it.

    TL;DR, 64-bit processors give the possibility with correct programming to perform operations on larger chunks of data at once, and address more memory. Other then that, there's not a huge difference.

    EDIT: Lest people get the wrong idea, by "operations" I'm not specifically referring to THE operations (addition, multiplication, etc.). My bad, I was focusing on answering the question rather than giving a full introduction to microprocessor architecture.