Memory Banking in Microprocessor

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 contain even addresses called Even bank and the other contain 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 a 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)it is reserved for bank selection. Therefore A0=0 will select Even bank. The BHE signal is used for selection of odd bank.the processor will used combination of this two signals decide type of data transfer.

BHE A0 types of Transfer
0 0 16 bit 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 odd address (A0=1) transfer lower order 8 data bits on higher order data bus.In second machine cycle higher order data bus will be transfer on lower order data bus.

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : poorna883

Article Tags :

1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.