I'm currently reading a computer organization book and i'm so confused about Input/Output mechanism and have lots of questions in my mind.

As i understood there are two concepts for communicating with peripherals, first one is Memory Mapped I/O and the other one is I/O(Port) Mapped I/O.If the architecture is based on Memory Mapped I/O there are no special I/O instructions like "in","out" etc and device registers are mapped to memory address space so we can read or write to peripheral ports by "mov" instruction.On the other hand if architecture is based on I/O Mapped I/O, device registers are mapped to I/O address space which is completely separated from memory address space and cpu uses special instructions("in","out","ins","outs" ) for reading or writing to I/O Mapped device registers.

So here is my questions;

1.)If X86 architecture uses I/O(Port,Isolated etc) Mapped I/O technique why there are memory address spaces for devices like graphic card?

2.)If graphic card maps 1 gb memory to main memory address space what does it mean?Does it mean Memory Mapped I/O ?

3.)If x86 architecture doesn't use Memory Mapped I/O how a device can maps itself to memory address space?

4.)If x86 architecture can use Memory Mapped I/O ,how can it use and with which instructions?

5.)If I/O mapping is about mapping peripheral registers why graphic card wants so much space for mapping ?

  • If the processor has I/O instructions and I/O space, then it can do both port and memory-mapped I/O. So x86 arch can do both. (1) The I/O address space is not as large as the memory address space, hence the need to move to memory-mapped I/O. In some ways memory-mapped I/O is easier to code for, e.g. you can map data structures to the device registers that are memory mapped. – sawdust Dec 4 '14 at 21:16
  • @sawdust i was looking for u :),u said x86 can do memory mapped IO but how?how cpu can send data to peripheral with "mov" instruction in 86 architecture?on the other hand why IO space is not large as memory space,isn't it just a separate bus? – spartacus Dec 5 '14 at 9:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.