Memory mapped IO – how is it done?

The following statement in your question is wrong:

What I know is that a part of the physical memory is reserved to communicate with the hardware

A part of the physical memory is not reserved for communication with the hardware. A part of the physical address space, to which the physical memory and memory mapped IO are mapped, is. This memory layout is permanent, but user programs do not see it directly – instead, they run into their own virtual address space to which the kernel can decide to map, wherever it wants, physical memory and IO ranges.

You may want to read the following articles which I believe contain answers to most of your questions:

  • http://duartes.org/gustavo/blog/post/motherboard-chipsets-memory-map
  • http://duartes.org/gustavo/blog/post/memory-translation-and-segmentation
  • http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memory

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)