The terms 32 bit and 64 bit specifically relate to the size of the data and address registers within the CPU, which determines the maximum amount of memory that can be directly accessed and the range of values that can be processed.

  1. Registers and Data Width:
    • Since all calculations take place in registers, when performing operations such as addition or subtraction, variables are loaded from memory into registers if they are not already there.
    • A 32-bit CPU has 32-bit wide registers, meaning it can process 32 bits of data in a single instruction.
  2. Memory Addressing:
    • 32-bit CPU can address up to 232 unique memory locations translates to a maximum of 4 GB of addressable memory (RAM). 64-bit CPU can address up to 264 unique memory locations allowing for a theoretical maximum of 16 exabytes of addressable memory.
    • This limitation comes from the fact that a 32-CPU can only load integers that are 32 bits long, thus limiting the maximum addressable memory space.
  3. Data Transfer Speeds:
    • The memory bus width in 64-bit CPU is often 64 bits or more, meaning the physical path between the CPU and RAM can handle 64 bits of data in parallel. This helps in efficiently loading data into the cache but does not restrict the CPU to always reading 64 bits.
    • Despite the ability to handle 64 bits of data in parallel, the CPU is not restricted to always reading 64 bits at a time. It can access smaller data sizes (e.g., 8-bit, 16-bit, 32-bit) as needed, depending on the specific instruction and data type.
  4. Performance:
    • 64-bit CPU’s perform better than 32-bit CPU’s. This performance difference comes up from various factors like size of registers, addressable memory space, larger bus width
    • Some RISC architectures support SIMD (Single Instruction, Multiple Data) instructions that allow for parallel processing of multiple smaller data types within larger registers. For example, ARM’s NEON technology can operate on multiple 32-bit integers within 64-bit registers, which enable the parallel processing of smaller data types within larger registers.
  5. Application Compatibility:
    • 64-bit operating systems typically include backward compatibility to run 32-bit software seamlessly.
    • These compatibility layers allow 32-bit applications to execute on 64-bit systems without any major issues. However, 32-bit applications may not fully utilize the advantages of 64-bit systems, such as increased memory addressing capabilities.