1. Introduction

Historically, computers worked with several different architectures regarding how much memory they accessed in each memory word. These different lengths of memory words can change from software development processes to the daily usage of computers.

In this tutorial, we’ll explore how different architectures impact the memory capacities of computers.

First, we’ll have a historical context of the evolution of computer architectures. Next, we’ll study some general characteristics of computers working with 32 and 64-bit architectures. Thus, we’ll look at how much memory can be addressed by 32 and 64-bit architectures. Finally, a systematic summary explicitly compares the explored architectures.

2. A Little Bit of Historical Context

Most electronic computing machines require memory to execute their tasks. Historically, the need for memory has changed according to the computing power evolution. Legacy computers employed processors which accessed, for example, 8 or 16 bits at a time in a computer register.

Modern computers, however, typically require much more memory to execute programs. It led to the rising of 32-bit architectures, which were very popular in the ’90s and early 2000.

With the evolution of technology, more memory became necessary to represent both data and instructions. So, the adoption of 64-bit machines has grown from the late ‘2000s to now.

It is relevant to highlight that, although 64-bit computers have been replacing 32-bit computers, the latter is still being used nowadays.

3. General Characteristics of 32 and 64-Bit Architectures

We can understand 32 and 64-bit architectures as the amount of data that a CPU processes each time. The architecture defines, for instance, the total memory supported by a register at once. Also, it typically determines the size of the instruction set employed by a processor.

However, the extra memory to deal with instructions and data in the registers is only one point. The 64-bit architecture addresses more memory than the 32-bit architecture, such as random and virtual memory. We’ll see a detailed explanation about that in the next section.

Furthermore, programs have versions according to the processors’ architecture. But, in general, it does not mean modifying the programs’ source code.

In such a way, changing from one architecture to another typically means defining some compilers’ configuration flags. So, the most differences will be in the programs’ binary.

Finally, 64-bit processors also have a compatibility advantage. Generally, 64-bit processors can execute both 64 and 32-bit versions of an operating system. A 32-bit processor, in turn, can not run a 64-bit operating system.

4. Memory in 32 and 64-Bit Architectures

One of the most prominent differences between adopting a 32 or 64-bit architecture consists of the amount of memory addressed. As we previously pointed out in the last section, architectures of 64 bits can tackle much more memory than architectures of 32 bits.

In terms of Random Access Memory, 32-bit architectures can address 4GB of memory, maximum. A 64-bit architecture, in turn, has a theoretical limit of addressing 16 million TB of memory.

This difference in memory support comes from the number of different addresses expressable in a single memory word. We should remember that a computer fully maps its memory, byte by byte.

So, in a 32-bit architecture, we have 2^{32} possible addresses with a single word. It means that we can provide addresses for 4,294,967,296 bytes — or simply 4GB.

In the same way, in a 64-bit architecture, we have 2^{64} available addresses with a single word. So, there are enough addresses for 18,446,744,073,709,551,616 bytes, that means 16,777,216TB.

The following image depicts and compares the memory words of both architecture models:

MemoryWord

Thus, 32 and 64-bit architectures have sufficient addresses for 4GB and 16,777,216TB of memory, respectively. However, it does not mean that all of them will be practically used.

Some addresses are kept for particular purposes, such as memory-mapped hardware devices. So, it is usual 32-bit machines map about 3.2 ~ 3.4 GB of memory.

Furthermore, we do not have computers with enough RAM to employ every address made available by 64-bit architectures. In this way, many of these addresses are unused nowadays.

4.1. Other Memory Aspects

Besides RAM, the theoretical limit of memory also changes other memory aspects when using a 32 or 64-bit architecture. Examples of these aspects are presented in the following table:

64-Bit Architecture

32-Bit Architecture

Virtual Memory

16TB

4GB

Paging File Size

256TB

16TB

Paged Pool

128GB

470MB

Non-paged Pool

128GB

256MB

System Cache

1TB

1GB

As we stated for the RAM, theoretical memory limits do not mean equivalent memory amounts in practice.

5. Systematic Summary

In the previous sections, we studied basic concepts of both 32 and 64-bit architectures, in-depth exploring their memory-supporting limits.

In summary, there are almost no disadvantages to adopting a 64-bit architecture in modern computers. Architectures working with 64 bits enlarge the theoretical limits of several memory aspects, being able to tackle the upcoming technologies.

The only convincing reason to keep producing 32-bit processors is maintaining compatibility with computers from the late ’90s and early 2000. The same reason works for providing 32-bit software versions.

The following table summarizes some characteristics of the studied architectures that support the previous statements:

64-Bit Architecture

32-Bit Architecture

RAM Limit

16TB

4GB

OS Support

Support 64 and 32-bit OS

Support only 32-bit OS

Software Support

Support 64 and 32-bit software

Support only 32-bit software

Software Availability

Modern software typically has a 64-bit version

Not all modern software has a 32-bit version

So, we can notice that 64-bit architectures have benefits in multiple aspects compared with 32-bit architectures.

A particular benefit consists of the enlarged memory limits accommodating new technologies that will emerge in the following years. Another clear benefit is the compatibility with modern software since some of them are released only with a 64-bit version.

6. Conclusion

In this tutorial, we learned about 32 and 64-bit architectures. In particular, we observed the memory limits and characteristics of these architectures. At first, we outlined basic concepts of the considered architectures. Thus, we explored several aspects of memory in the context of both 32 and 64-bit architecture. Finally, we overviewed and compared these architectures in a systematic summary.

We can conclude that modern computers have several advantages and almost no disadvantages in adopting the 64-bit architecture.