In This Article
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.
- Most of the computers today come with different types of buses in order to perform different tasks separately. One of these buses is the system bus of which one is the address bus. The other two being control bus and data bus.
- The address bus is very important for a computer since it helps the data bus to access the memory storage and at the same time it helps in reducing the cost and improving the modular integration.
- The address bus is actually an internal channel which transfers the location of the data or instruction stored in the Random Access Memory or RAM that is being fetched for processing or being processed.
- This bus is mainly used by the CPU and the DMA and is usually written or read in bits. Specific types of processors may also use it to specify an I/O port that needs to be written or read.
- The number of parallel lines in an address bus determines its width and the total capacity of memory that it can support. This size or the capacity of the bus determines the eventual performance of the processor where the higher it is the better.
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.
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:
- The address bus is used by the CPU to fetch data or read data from the main memory location specified
- The CPU then sends this address of the memory location of the data on the address bus and
- The data stored in that particular memory location is then sent back by the data bus.
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.
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:
- A device
- The memory location or
- An I/O controller.
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.