2016-05-17 106 views
-1

当我们说一个设备是存储器映射时,内存映射IO - 谁将地址映射到物理地址空间?

  1. 谁将地址映射到设备?
  2. 这些地址空间是如何根据位置和大小来决定的?
  3. 这些地图在哪里存储?
  4. 这些地址空间是否因系统引导而有所不同?
+0

您对Linux或Windows等特定操作系统感兴趣吗? – jamieguinan

+0

我想了解内存映射IO的一般理解。如果你有特定的操作系统实现,那也是有用的! –

+0

地址解码逻辑硬件处理映射。地址和范围可以是可配置的或固定的。确切的机制是架构/操作系统的依赖。 –

回答

1

粗略地说,

  1. 的MMU硬件。
  2. 内核管理MMU硬件使用的MMU表。
  3. 在每个进程结构中。在Linux下,查看/proc/<pid>/maps以查看所有内存映射文件和设备。
  4. 他们可以,所以你不应该指望他们被修复。

对于进一步的阅读,我建议从Linux设备驱动程序,this FAQthis stackoverflow questionMemory Mapping and DMA chapter

+0

Linux? MMU?没有看到他们在问题中提到。 –

+0

@MartinJames:在问题中缺少一些术语并不禁止他们在答案中的使用。 – Tsyvarev

相关问题