

The size of these registers therefore normally limits the amount of directly addressable memory, even if there are registers, such as floating-point registers, that are wider. In most processors, only integer or address-registers can be used to address data in memory the other types of registers cannot.

However, in modern designs, these functions are often performed by more general purpose integer registers. Processor registers are typically divided into several groups: integer, floating-point, single instruction, multiple data (SIMD), control, and often special registers for address arithmetic which may have various uses and names such as address, index, or base registers. However, a CPU might have external data buses or address buses with different sizes from the registers, even larger (the 32-bit Pentium had a 64-bit data bus, for instance). With no further qualification, a 64-bit computer architecture generally has integer and addressing registers that are 64 bits wide, allowing direct support for 64-bit data types and addresses. Hence, a processor with 64-bit memory addresses can directly access 2 64 bytes (16 exbibytes or EiB) of byte-addressable memory.


The range of integer values that can be stored in 64 bits depends on the integer representation used. In 2003, 64-bit CPUs were introduced to the mainstream PC market in the form of x86-64 processors and the PowerPC G5.Ī 64-bit register can hold any of 2 64 (over 18 quintillion or 1.8×10 19) different values. 64-bit CPUs have been used in supercomputers since the 1970s ( Cray-1, 1975) and in reduced instruction set computers (RISC) based workstations and servers since the early 1990s. 64 bits is a word size that defines certain classes of computer architecture, buses, memory, and CPUs and, by extension, the software that runs on them. The term 64-bit also describes a generation of computers in which 64-bit processors are the norm. However, not all 64-bit instruction sets support full 64-bit virtual memory addresses x86-64 and ARMv8, for example, support only 48 bits of virtual address, with the remaining 16 bits of the virtual address required to be all 0's or all 1's, and several 64-bit instruction sets support fewer than 64 bits of physical memory address. A computer that uses such a processor is a 64-bit computer.įrom the software perspective, 64-bit computing means the use of machine code with 64-bit virtual memory addresses. Also, 64-bit CPUs and ALUs are those that are based on processor registers, address buses, or data buses of that size. In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits wide.
