Open In App

Memory Banking in Microprocessor

Improve
Improve
Like Article
Like
Save
Share
Report

The 8086 processor provides a 16-bit data bus. So It is capable of transferring 16 bits in one cycle but each memory location is only of a byte(8 bits), therefore we need two cycles to access 16 bits(8 bit each) from two different memory locations. The solution to this problem is Memory Banking. Through Memory banking, our goal is to access two consecutive memory locations in one cycle(transfer 16 bits). 

The memory chip is equally divided into two parts(banks). One of the banks contains even addresses called Even bank and the other contains odd addresses called Odd bank. Even bank always gives lower byte So Even bank is also called Lower bank(LB) and Odd bank is also called Higher bank(HB). 

This banking scheme allows to access two aligned memory locations from both banks simultaneously and process 16-bit data transfer. Memory banking doesn’t make it compulsory to transfer 16 bits, it facilitates the 16-bit data transfer. 
The choice between 8 bit and 16-bit transfer depends on the instructions given by the programmer. 

Example:  

The Least Significant bit of address (A0 is not used for byte selection) is reserved for bank selection. Therefore A0=0 will select Even bank. The BHE signal is used for the selection of odd banks. The processor will use a combination of these two signals to decide the type of data transfer. 
 

BHE A0 types of Transfer
0 0 16-0bit data transfer from both HB and LB
0 1 8-bit data transfer from HB
1 0 8-bit data transfer from LB
1 1 None(Idle)

In this case, the first machine cycle generates an odd address (A0=1) transfer lower order 8 data bits on a higher-order data bus. In the second machine cycle, the higher-order data bus will be transferred to the lower-order data bus.

Advantages:

Improved Performance: Memory banking allows the microprocessor to access multiple banks of memory simultaneously. This can improve the performance of memory-intensive applications by reducing memory access times and increasing overall memory bandwidth.

Flexibility: Memory banking provides a flexible way to allocate and manage memory resources. It allows the processor to allocate memory as needed, which can help reduce memory wastage and improve overall system efficiency.

Cost-Effective: Memory banking can be a cost-effective way to increase the memory capacity of a microprocessor. Instead of using expensive, high-density memory modules, memory banking allows the use of multiple, smaller memory modules.

Disadvantages:

Increased Complexity: Memory banking adds complexity to the microprocessor design, which can make it more difficult to implement and debug. Memory banking requires additional hardware components, such as memory address decoders and control logic, which can increase the cost and complexity of the microprocessor.

Latency: Although memory banking can improve memory performance, it can also introduce latency. Memory banking requires additional memory address decoding and control logic, which can increase memory access times and reduce overall system performance.

Limited Applications: Memory banking is not suitable for all types of microprocessor applications. It is primarily used in systems that require large amounts of memory, such as high-performance computing and data center applications. In other applications, the added complexity and cost of memory banking may not be worth the benefits.


Last Updated : 06 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads