An address bus is a computer bus, controlled by CPUs or DMA-capable peripherals for specifying the physical addresses of computer memory elements that the requesting unit wants to access (read or write).
The width of an address bus, along with the size of addressable memory elements, generally determines how much memory can be directly accessed. For example, a 16-bit wide address bus (commonly used in the 8-bit processors of the 1970s and early 1980s) reaches across 216 (65,536) memory locations , whereas a 32-bit address bus (common in PC processors as of 2004) can address 232 (4,294,967,296)locations. Some microprocessors, such as the Digital/Compaq Alpha 21264 and Alpha 21364 have an address bus that is narrower than the amount of memory they can address. The address bus is clocked faster than the system or memory bus, enabling it to transfer an address in the same amount of time as an address bus of the same width as the address.
In most microcomputers such addressable "locations" are 8-bit bytes, conceptually at least. In such case the above examples translate to 64 kilobytes (KB) and 4 gigabytes (GB) respectively. However, it should be noted that accessing an individual byte frequently requires reading or writing the full bus width (a word) at once. In these instances the least significant bits of the address bus may not even be implemented - it is instead the responsibility of the controlling device to isolate the individual byte required from the complete word transmitted. This is the case, for instance, with the VESA Local Bus which lacks the two least significant bits, limiting this bus to aligned 32 bit transfers.
Historically, there were also some examples of computers which were only able to address larger words, such as 36 or 48 bits long.