Search code examples
intelcpu-architecturex86-16microprocessorsemu8086

Why is 8086 having odd and even bank?


Why in 8086 we require to divide memory into odd and even bank, and what benefits rather than reading in one clock cycle?


Solution

  • 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.