Safekipedia

64-bit computing

Adapted from Wikipedia · Discoverer experience

A technical view showing the section table of a 64-bit PE file, highlighting parts of the file structure used in computer programming.

In computer architecture, 64-bit refers to a way of processing information that uses chunks of data called bits that are 64 units wide. These bits can represent numbers, memory locations, or other data. A 64-bit computer has a special part called a central processing unit (CPU) that works with these large chunks of data. This lets the computer handle much bigger numbers and access far more memory than older computers that used smaller chunks, like 32-bit computers.

Hex dump of the section table in a 64-bit Portable Executable File. A 64-bit word can be expressed as a sequence of 16 hexadecimal digits.

64-bit computing became important because it allows computers to manage huge amounts of data. For example, a single 64-bit register—a tiny storage space inside the CPU—can hold over 18 quintillion different values. This means the computer can work with very large numbers and keep track of many different pieces of information at once. This capability is essential for modern tasks like editing large videos, running complex games, and processing big data sets.

64-bit processors have been used in powerful computers called supercomputers since the 1970s. But they didn’t become common in everyday computers until around 2003, when companies introduced 64-bit versions of common processors. Today, nearly all personal computers and many other devices use 64-bit technology because it makes them faster and more capable of handling modern software and large files.

Architectural implications

Processor registers are special storage spaces inside a computer that help it do calculations and manage data. They come in different types, like integer registers for whole numbers and floating-point registers for numbers with decimals. In many modern computers, these registers are 64 bits wide, which means they can handle larger numbers and address more memory than older 32-bit computers.

High-performance computers often have special hardware for handling floating-point numbers, and many of these use 64-bit units. For example, some processors can work with 64-bit floating-point numbers, while others might use different sizes internally. This affects how the computer handles and stores data, making 64-bit systems more powerful for complex tasks.

Main article: floating-point
Main articles: x86, x87
Further information: Alpha

History

Many computers are built so that a single register can store the address to any location in the computer's memory. The number of possible addresses depends on the size of these registers. Early computers, like the IBM System/360, used 32-bit registers, which allowed for 4 GB of memory addresses. This was enough for most needs at the time.

As computers grew more powerful, they needed to handle larger amounts of memory. This led to the development of 64-bit computing, where registers can store 16 EB (exabytes) of memory addresses — far more than any computer today uses. In the 1990s and 2000s, companies like Intel, AMD, and Apple began using 64-bit processors in their computers, allowing them to run more advanced software and store huge amounts of data. Today, most computers use 64-bit processors.

Limits of processors

A 64-bit microprocessor can handle a huge amount of memory — up to 16 exabytes! However, not all processors can use the full 64-bit space. For example, the x86-64 architecture uses 48 bits for virtual memory and up to 52 bits for physical memory, allowing up to 256 TB of virtual memory and 4 PB of physical memory.

Different processors have different limits. The Power ISA v3.0 allows up to 64 bits for virtual addresses, while the Oracle SPARC Architecture 2015 supports 64 bits for virtual memory. The ARM AArch64 architecture allows virtual memory sizes from 48 to 56 bits. The DEC Alpha processors started with 43 bits for virtual memory and expanded over time.

64-bit applications

Changing from a 32-bit to a 64-bit system is a big shift because most operating systems need to be changed to work with the new hardware. Older 32-bit programs might still work because the 64-bit system can often run them, either directly or through special software that helps translate the older instructions.

One big advantage of 64-bit systems is that they can handle much larger amounts of memory. This is helpful for tasks like editing big videos, doing complex science calculations, or managing huge databases. While some people thought that you needed a lot of memory to benefit from 64-bit systems, there are other benefits too. For example, some programs can run faster because they have more space to work, and systems that need to handle many tasks at once work better on 64-bit setups. Big companies like IBM, HP, and Microsoft use 64-bit systems for their large networks.

Summary:

  • A 64-bit processor works best with 64-bit software.
  • A 64-bit processor can often run older 32-bit programs.
  • A 32-bit processor cannot run 64-bit software.

64-bit data models

In 32-bit programs, pointers and data types like integers usually have the same size. On 64-bit machines, this isn’t always the case. For example, in many programming environments, regular integers remain 32 bits, while larger numbers and pointers become 64 bits. This is called the LP64 data model.

Different data models exist to handle these changes, such as ILP64 and LLP64. Most programs can adapt to these changes easily by simply being recompiled for the new system. The choice of data model can affect how memory is used and how devices interact with the computer’s memory.

64-bit data models
Data
model
short
int
intlong
int
long
long
Pointer,
size_t
Sample operating systems
ILP321632326432x32 and arm64ilp32 ABIs on Linux systems; MIPS N32 ABI.
LLP641632326464Microsoft Windows (x86-64, IA-64, and ARM64) using Visual C++; and MinGW
LP641632646464Most Unix and Unix-like systems, e.g., Solaris, Linux, BSD, macOS. Windows when using Cygwin; z/OS
ILP641664646464HAL Computer Systems port of Solaris to the SPARC64
SILP646464646464Classic UNICOS (versus UNICOS/mp, etc.)

Current 64-bit architectures

Many modern computers use 64-bit architectures, which allow them to handle larger amounts of data and memory. These architectures include several different types of processors.

Some well-known 64-bit architectures include AMD's AMD64 and Intel's Intel 64, used in many desktop and laptop computers. There are also 64-bit versions of ARM, used in many smartphones and tablets, as well as IBM's PowerPC and z/Architecture used in powerful business computers. Other architectures like RISC-V and SPARC also have 64-bit versions. Most of these 64-bit processors can also run programs made for older 32-bit systems without any loss of speed.

Related articles

This article is a child-friendly adaptation of the Wikipedia article on 64-bit computing, available under CC BY-SA 4.0.

Images from Wikimedia Commons. Tap any image to view credits and license.