Address Bus

What is Address Bus?

An address bus specifies the location of the memory that is used by the Central Processing Unit of the computer for a specific operation.

Technically, there are two major types of buses in a computer namely system bus and I/O bus and the address bus is one of the three parts of the system bus the two other being a control bus and the data bus.

Understanding Address Bus

Understanding Address Bus

The address bus refers to the bus architecture of a computer system which is used to move data between the different devices that are typically recognized by the address of the hardware, called the physical address, of the physical memory.

This address is typically stored in it in the form of binary numbers, which means in the form of 1s and 0s.

The address bus makes the memory storage accessible by the data bus and is mainly used by the CPU, as said earlier, or a DMA or Direct Memory Access to locate it and communicate the read and write commands.

Normally, all these address buses are read and written in the form of bits by the DMA or the CPU.

The main idea behind developing an address bus is to improve modular integration and reduce costs.

The modern computers come with separate buses and one such bus is the system bus.

The address bus is the part of this particular bus. There are two other parts of the system bus called the data bus and the control bus.

Read Also:  AI (Artificial Intelligence) Accelerator Explained

Usually, the measurement of the address bus is dependent on the amount of memory that can be retrieved by the system.

Typically, if a system has an address bus of 32 bits it can normally address memory space of 4 Gibibytes or GiB.

However, modern computers usually come with an address bus of 64 bits and a supporting operating system.

This enables these systems to address memory locations of up to 16 Exbibytes or EiB, but virtually it is unlimited.

The first use of address bus is known to date back in 1956 which, at that time, was defined as a part of the computer CPU that transfers the location of the information stored in the memory.

In simple terms, this particular bus enables the CPU to transmit the address of the information to the RAM.

On the other hand, after receiving the location it is the data bus that is responsible for the actual transfer of data to the Central Processing Unit.

Looking at it from the point of view of the users, the address bus is that particular part of the computer that tells it where exactly it should look for the information stored in the memory of the system when a user or a program looks for it to use.

Ideally, this is only one way connection from both the CPU to the address bus and from there it connects to the main memory of the system or the I/O devices.

Ideally, the physical address is always connected to the address bus irrespective of where it comes from, the processor or from a DMA enabled device.

The benefit of it is that the memory can be alerted regarding the actions needed to be taken for that particular memory address with respect to a read or write request.

If the write operation is awaiting it is the data bus where the data that is to be written is latched onto.

At this time, the memory write signal is set off. When the read operation is to be performed, it can be done by activating the memory read signal for reading the data from the data bus.

Functions of Address Bus

The main function of the address bus is to carry the specific data that mentions the particular address of a memory location. Information is either read from that particular location or written to it.

The address bus actually plays a vital role in the data retrieval process by the CPU of the computer from the memory location. The process involved here are as follows:

Read Also:  What is Speculative Execution? Example, Uses & More

The data sent by the data bus is finally accepted by the Central Processing Unit for further processing that may be necessary.

As you may know that every word stored in the memory of the system typically has its own address.

However, it is the function of the address bus to determine the maximum capacity possible for the memory of any particular computer system.

Simply put, whether it is for reading an operation or writing it, the address bus helps the CPU to gauge the address of the necessary data and then send it for executing the desired processing through the data bus.

However, there may be a few specific types of processors that may use the address bus to indicate an I/O port that is needed to be written or read.

Where is the Address Bus Located?

A few of the older computers as well as several embedded controllers typically have the CPU address bus wired directly to the memory chips.

However, most of the server and desktop motherboards have it in the memory bus between the system memory and the controller chip.

Apart from the general location of the address bus, there are a few specific types of computer systems that may have the address bus of the processor as well as that of the other system devices connected directly to the main memory of the system.

However, a lot of peripheral controllers may share the main memory of the system along with the processor through the Direct Memory Access or DMA technique.

It can be any type of controller such as a network, graphics, or hard disk provided these are all DMA enabled.

The benefit of such sharing technique is that the controller can transmit data to and from the system much faster in comparison to sending them one at a time through the processor.

How Wide is the Address Bus?

The width of the address bus is measured by the number of parallel lines present in it. Normally, it is expressed in multiples of bytes since memory is divided into words which are 8, 16, 32, or 64 bits wide.

The width eventually helps in determining the number of bits used which will form the address of the memory location.

Typically, the maximum capacity of the memory that can be accessed directly by the CPU is determined by the number of wires or lines in the address bus. This is because there is one bit of an address present in every line.

Ideally, in the 1980s, the IBM computers had a maximum of 1 megabyte of RAM in them.

This is because the address bus in these computers was simply 20 lines because its address bus had 20 lines, which means they contained only 20 bits. In the binary form, 20 bits represents 1,048,576 figuratively.

Read Also:  What is USB Type B? (Explained)

Ideally, a system that comes with a 32-bit address bus will be able to handle a physical memory measuring up to 4 GB directly while on the other hand, a system with a 36- bit address bits can efficiently handle 64 GB of physical memory.

This can be explained with a simple example. If an address bus comes with n lines, it can directly address up to 2n locations at the most.

This means that a 16-bit address will be able to access two 16 bit or 64 Kilo Byte of memory.

In simple math, if the width of the address bus is 8 bits, then the number that determines the address memory location is 2 to the power of 8 or 256.

This means that if 8 bits are stored in the memory locations, 256 bytes of memory can be accessed.

On the other hand, if the width of the address bus is of 16 bits, then the number that determines the address memory location is 2 to the power of 16 or 65,536, meaning that many bytes of memory can be accessed if 16 bits are stored in the memory locations.

In the same way, if there are 20 address lines, it can address 1048576 bytes, or 1048.576 kilobytes or 1.048756 megabytes of memory.

In technical terms, this is referred to as the address space, and its capacity will determine the performance of the processor. Ideally, different types of processors come with different sizes of address bus.

Why is Address Bus Unidirectional?

The address bus is unidirectional because it carries data in only one way. The signals carried by this particular bus typically come out from the processor and move to the other components.

These components can be any of the following:

Much unlike the signals carried by the data bus and the control bus which travels both ways between the memory, CPU and the I/O controllers, the address bus allows the CPU to access only the units that are accessible.


Now you know after reading the article that the address bus is not a trivial component but plays an important role in the performance of the computer system, which typically is determined by the size or capacity of the bus.

Ideally, it carries the information about a memory location that the CPU needs to access.