Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

8086 maximum mode Memory interface

Status
Not open for further replies.

020170

Full Member level 4
Joined
Jan 31, 2005
Messages
231
Helped
3
Reputation
6
Reaction score
1
Trophy points
1,298
Activity points
2,221
8086 maximum mode

I've studied 8086 maximum mode Memory interface.

in Maximum mode, We can use another MPU, more than one.

but I don't understand why does 8086 use BHE# pin.

8086 use 1M byte memory by using BHE# pin

1) but why does it seperate memory into two blocks, 512K byte?

is it exhausting than 8088 memory interface? 8088 does not have to use BHE#.

**broken link removed**

8086 use to connect memory every pin from A0L to BHEL#.

the number of memory interface pin is 21, not 20.

2) is it means 8086 can use memory size to 2M byte ? , 2^21 = 2M ??
 

maximum mode of 8086

The 8086 can still address only 1MB.
But the 8086 has a 16-bit data bus, with the possibility of accessing bytes. Thus, the memory space is divided into two blocks, each 512kB large. If you could not access the individual bytes, you would just see a block of 512x16 bits. But the byte is a very basic unit of information and some types of data are stored as 8-bit quantites (e.g. ASCII codes), that it makes sense to be able to access bytes, even though you have a 16-bit bus. This is the main reason designers went through the trouble of designing all the extra hardware that enables you to do that.

The role of the /BHE (Byte High Enable) is to select the upper byte of the data bus, while A0 selects the lower byte.
Thus, A0 would be tied to the /CS pin of the memory connected to D0:D7, wile /BHE would be connected to the /CS of the memory connected to D8:15. (The /CS may be gated with other signals, derived from decoders, to select the correct device, or you may use /OE gating it with the /RD).

As in all 16-bit systems, A1 connectes to the memories' A0 line, A2 to the memories' A1 line and so on. This is because again the basic unit of info is the byte and A0 should select bytes.
With some other microprocessors, when the data bus is 16 bits wide, A0 is called /LB (Lower Byte) and there is another signal, called /UB (upper byte). As you can see, the functions are absolutely identical:
/LB = A0
/UB = /BHE
They are also active low, just like A0, /BHE, just the names differ.

But remember these things, they are universally applicable. If you have JEDEC 16-bit memories, they will have /LB, /UB pins so you would connect these to A0, /BHE respectively and A0 of the memory to A1 on the 8086 (or other 16-bit micros, for that matter). Some of these memories have the possibility of working in 8-bit mode only by pulling a pin low (/BYTE or BYTE#, or similar). In that case, another pin is used as address and it may be labelled A-1, since A0 is already used (for memories, it's a little different).

If you only use an 8-bit data bus, then you use only D0:7 and connect A0 to A0 of memories, A1 to A1 and so on. However, with a 16-bit memory operating in 8-bit mode, you would connect A-1 to A0 on micro, A0 to A1 on micro, A2 to A1 and so on. Is this confusing, or what?

The 8088 does not need the /BHE, because it only has an 8-bit data bus.

Take a look at the snapshot, too.
 

    020170

    Points: 2
    Helpful Answer Positive Rating
memory interfacing with 8086

thanks!

you gave me solution for problem what I didn't understand!
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top