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

17,807

Solution 1

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.

Solution 2

Basically it means being able to do operations on numbers of such size (adding them for example). Though there is more differences between 32bit and 64bit architectures than this.

Solution 3

It's not a very precise expression, but I take it to mean the length of memory addresses. For example, 32 bit means 4 GiB (232 bytes) is available to programs.

(For a lark, check out the IBM s390 architecture which is 31 bit.)

Also, it's not always the maximum amount of data that the CPU can read or operate on at a time. For example, the 64-bit AMD/Intel processors have a series of on-chip caches that can pull data from main memory in large chunks. They also have 128-bit SSE registers.

Solution 4

I notice you tagged memory, so I'm going with that answer:

In a 32bit processor, the processor can only use 32 bits to address memory. This means there is 2^32 unique combinations, therefore, the processor can only address 2^32 bytes. (4Gb)

In a 64bit processor, the processor can (in theory) use 64 bits to address memory, or 2^64 bytes of addressable memory. I believe that amounts to 16 Exo Bytes, which is a huge amount that is almost to the point of counting the amount of molecules in your machine. In practice though, most CPUs on the line today only let you address 42 bits of physical memory and 48 bits of virtual memory due to current day hardware constraints.

Share:
17,807
jasonbogd
Author by

jasonbogd

Updated on June 03, 2022

Comments

  • jasonbogd
    jasonbogd about 2 years

    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?

  • Earlz
    Earlz over 14 years
    That's not true at all. 32bit processors are not necessarily less powerful than 64bit.
  • wallyk
    wallyk over 14 years
    Of course. It's no more indicative of overall performance than a particular engine's displacement.
  • JUST MY correct OPINION
    JUST MY correct OPINION over 14 years
    The 32-bits is not about the address bus. There are lots of 32-bit machines with 36-bit address buses (PAE and PSE-36 on the Intel architectures, for example) out there.
  • Earlz
    Earlz over 14 years
    Yea, but it's kinda irrelevant. I guess I should've pointed out a 32bit processor can have more or less than 32 addressable bits of memory
  • emcee
    emcee about 13 years
    From a programmer's perspective, that's exactly what it means. Before more complicated things like optimizing instructions or considering whether or not data is already in cache or has to be fetched from memory, Hertz specifies how many operations are performed every second, even if that operation isn't completed. Some operations take longer (division/multiplication/modulus are noteable, as they are built successively off of add/subtract operations). Perhaps you'd like to enlighten me with an answer/clarification, rather than just a downvote and condemnation? Isn't this a place for answers?
  • Vishal Singh
    Vishal Singh almost 11 years
    Awesome explanation. I am here because apple just launched iPhone5S with 64 bit processor, so was wondering is it that big thing.
  • Mogsdad
    Mogsdad almost 9 years
    This may theoretically answer the question, but it would be preferable to include the essential parts of the answer here for future users, and provide the link for reference.
  • Kellen Stuart
    Kellen Stuart over 7 years
    @emcee Just curious, you say "32-bit processor can't normally address more than 4GB of RAM". What is the RAM limitation on 64-bit?