What is an Address Space?

An address space is a defined range of locations, physical or virtual, in a memory system. The address may be part of a computer’s main memory or storage system, as well as a location within a network host or secondary memory system, such as a graphics card. An address is a single location in one of these areas, but an address space is a series of addresses. The range itself shows in which area the addresses are found, as the memory addresses for different areas of a computer system are unique.

In a computer, an address works just like it does in real life. Working from the inside out, the house number would be the exact location of the data. The street would be the location within the storage device, such as a platter number in a hard drive. Next, the city would display which hard drive the information was on. Lastly, the state would show that the information was on a hard drive, not a memory module or flash drive.

Instead of a typical address, computers use huge strings of numbers. The Internet Assigned Numbers Authority determines number ranges for computer addresses. They define which numbers are used for a specific technology’s address space. By allowing a single group to control memory addressing, there isn’t any overlap. This allows items to work with one another without the risk of a duplicated address space.

An address space defines multiple addresses. The space may be two or three addresses, or it may be the entire memory system for that item. These spaces, regardless of their number, are all located in a single area. This means a single address space cannot show addresses in multiple areas, like a hard drive and a network space.

In a typical system, there is never an overlap in address space. When computers are virtualized, there are changes in how things work. In a virtual system, a computer’s memory isn’t a distinct location from its storage; they are both different parts of a software system. On top of that, they are running on a real computer that has distinct memory addresses of its own.

Between the layering and the virtual hardware, a single address space may have multiple areas where it could go. In order to work around this, virtual systems use an address translator. These take in virtual information and translate those spaces to physical locations. A series of virtual information is translated into physical addresses. When that information is required, the translator re-virtualizes the address and sends it back into the system.