Why in 8086 we require to divide memory into odd and even bank, and what benefits rather than reading in one clock cycle?
Asked
Active
Viewed 1,093 times
3

Peter Cordes
- 328,167
- 45
- 605
- 847

Preet Gandhi
- 33
- 4
-
This seems a question more suited to [retrocomputing.se]. (It's off topic here, as it has to do with the physical hardware rather than with programming.) – cHao Aug 08 '18 at 16:19
1 Answers
3
The 8086 has a 16-bit (2-byte) memory bus, but is byte addressable, so every memory access reads or (potentially) writes 2 bytes -- an even address and an odd address. Because it has instructions that can write single bytes, it thus needs two separate write enables (even and odd) so it can write to a 16-bit word and only write one of the two bytes. So the memory must be organized as two separate "banks", each of which is one byte wide, that can be written independently.

Chris Dodd
- 119,907
- 13
- 134
- 226
-
The memory does not have to be organized as two separate banks. It's just a simpler design because otherwise a single bank would have to receive and decode a "write size" signal and all of the 20 address signals. – Hadi Brais Aug 09 '18 at 17:09
-
@HadiBrais: That's why I put "banks" in quotes -- they're not quite banks in the normal computer-organiztion sense (not independently addressed), but as you note, the simplest design (given the 8086 design) is to implement them as such, just with the address busses tied together. – Chris Dodd Oct 30 '18 at 14:42