External Memory of 8086 Microprocessor | Odd and Even Banks.
The external memory of 8086 Microprocessor:
There is a memory in every system which is based on a microprocessor. There are two basic types of memory in all the systems, they are Read-only memory ROM or Read-write memory. Where the read-only memory consists of system software and permanent system data like lookup tables. On the other hand, Random access memory consists of temporary data and application software. There are ROMs, PROMs, EPROMs to perform the functions of the CPU’s reset address and they are all nonvolatile.
When the 8086 is reset it fetches the instruction from the
memory location FFFF0H. Hence, there must be ROM location FFF0H in the 8086microprocessor.
It must be noted that in any memory interface the blocks
must not overlap each other. For this precaution, in order to connect the memory
device and the microprocessor, the address from the microprocessor should be
decoded first so that it can access independently to each memory IC.
The memory ICs are mostly byte-oriented, means each memory
location store single byte of data. The 8086 is a 16-bit microprocessor, and it
can execute, fetch, receive, send, and transfer data of 16-bit. In the memory
along with byte, the word 16-bit is also stored. Which is stored by the upper and
lower significant byte.
The AO address line is used in the lower bank for executing
the memory device. In this bank, AO is made low to enable addressed memory
device, and the address may be of any even one, like 00222h address = 0000 0000
0010 0010 0010. And also the address lines A1 to A19 are used in the selection
of desired memory device in the bank and also the desired byte in the device.
Like the internal structure of the 8086 CPU, the external
memory of the 8086 microprocessor is also divided into two banks the Even Bank
(EB) and the Odd Bank (OB).
Mainly the 8086 is a 16-bit processor with 1M byte 20-bit
address bus: 220 with addresses ranging from 0000016 to FFFFF16. The memory of
the 8086 microprocessor is organized as bytes of data individually.
The 8086 microprocessor can accommodate two consecutive
bytes of data as a word. The lower-addressed byte and the higher-addressed
byte. Where the higher one is the most significant byte and the lower one is
the least significant byte.
An instruction word of 8086 microprocessor is stored in two
consecutive addresses as bytes.
The Even bank (EB): The
even bank of the memory is the word of data where the data is at even address the boundary which is commonly referred to as the address of least significant
byte, also named as an aligned word. The even addresses are 00000H, 00002H,
00004H, and up to 0FFFFEH.
Old Bank (OB): Odd Bank
(OB) of the memory is also named as misaligned word where the memory is
addressed by odd addresses like 00001H, 00003H, 00005H, and up to 0FFFFFH.
Why is 8086 Memory divided into odd and even Banks?
The memory of the 8086 microprocessor executes a 20-bit
addressing model. Each address represents a single byte, while the natural word
size of 8086 is 2 bytes, so you have to read the two bytes at the same time.
For making it easy to read the two bytes at the same time the memory is divided
into even and odd banks.
The main benefit of the division of memory is that for
simplification you don’t need any memory controller, the CPU accesses the data
from the 8-bit modules directly.
The division of memory was not there when the 8086 microprocessor was first designed. Due to no division opportunity, the CPU was
slow enough and different controllers were used to speeding up the CPU
functioning and the memory latency didn’t matter.
If there was an 8-bit memory module, it gave out 8 bits, and
that was it. Later the 32-bit 486 could use either four 8-bit banks, or a
non-banked 32-bit module configuration, and exploited both onboard memory cache
and instruction pipelining, the 8086 had neither. While the modern processors access
memory in chunks with even and odd divisions.
Comments
Post a Comment
if you have any doubt, please let me know.