Address

What Is Address?

An address is a numerical or symbolic identifier that designates a specific location in a computer's memory, a location within a storage device, or a node in a communication network, enabling processors, controllers, and network equipment to locate and access data or devices unambiguously. The concept spans digital hardware and networking, appearing in processor instruction sets as memory operand specifiers, in operating system memory management as virtual and physical page addresses, and in communication protocols as endpoint identifiers such as IP addresses and MAC addresses. Addressing is a foundational abstraction in computer architecture: without a systematic way to name locations, no program could retrieve data, and no packet could reach its destination.

Memory Address Spaces

In computer architecture, a memory address is an integer that identifies a byte (or word) position within the processor's address space. The width of the address bus determines the maximum addressable space: a 32-bit address field can reference up to 2³² distinct locations (4 GiB), while 64-bit addressing extends this to 2⁶⁴ bytes, a space large enough for practical purposes in current systems. Modern processors implement virtual memory, in which each process operates in its own private virtual address space that the memory management unit (MMU) translates to physical addresses through page tables. This abstraction isolates processes from one another and from the physical memory layout. The hierarchical structure of virtual address spaces, including segmentation in x86 architectures and the flat models used in most modern 64-bit systems, is defined in processor architecture manuals and formalized in standards such as the IEEE Standard for Information Technology POSIX interfaces.

Addressing Modes

Addressing modes specify how a processor instruction identifies the memory location of an operand. Immediate addressing embeds a constant value directly in the instruction word, requiring no additional memory access for the operand. Register addressing names one of the CPU's internal registers, the fastest operand source. Direct (or absolute) addressing provides the operand's memory address as a literal field within the instruction. Indirect addressing stores the operand's address in a register or memory location, so the processor must fetch the address before fetching the operand. Indexed and base-plus-offset modes compute the effective address by adding a base value to a displacement or index register content, supporting efficient traversal of arrays and data structures. Comprehensive coverage of addressing modes across instruction set architectures is available in the ACM Digital Library's compendium of computer architecture literature. The choice of addressing mode affects instruction width, execution latency, and the complexity of the decode pipeline stage.

Network Addressing

In data communications, an address identifies a network interface or endpoint rather than a memory location. A MAC address is a 48-bit hardware identifier burned into a network interface card by the manufacturer, used at the data link layer for local delivery within a network segment. An IPv4 address is a 32-bit hierarchical identifier divided into network and host portions; IPv6 extends this to 128 bits to accommodate the scale of the global internet. Port numbers, used by TCP and UDP, extend addressing to individual processes or services on a host, enabling multiplexing of multiple communication streams over a single IP address. The assignment and structure of internet addresses are governed by IANA and documented in IETF RFCs such as RFC 791 for IPv4 and RFC 8200 for IPv6.

Applications

Address has applications in a range of fields, including:

  • Processor design, where the address bus width and MMU architecture determine the virtual and physical memory limits of the system
  • Operating system memory management, where virtual address translation supports process isolation and demand paging
  • Network routing, where hierarchical IP addresses allow routers to aggregate prefixes and scale forwarding tables
  • Embedded systems, where memory-mapped I/O addresses allow software to control hardware peripherals directly
  • Distributed computing, where globally unique addressing schemes enable resource location in large-scale systems
Loading…