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).
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
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.
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|
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.