【问题标题】:MMU disabled vs MMU enabled with one-to-one paging禁用 MMU 与启用 MMU 并启用一对一分页
【发布时间】:2017-06-18 02:05:19
【问题描述】:

我试图了解这两种操作模式之间的区别,(主要在 arm 处理器中):

  1. MMU 已禁用。
  2. MMU 已启用,但使用一对一的分页,即虚拟地址与物理地址相同。

根据我的理解,在这两种情况下,内存都是作为平面内存访问的,一对一的分页。

对吗?

谢谢。

【问题讨论】:

  • 我已经有一段时间没有这样做了,但我相信使用具有一对一页面映射的 MMU 的优点之一是您可以在页面上设置缓存位。我记得我正在使用的平台,没有 MMU 和设置缓存位,代码运行速度会明显变慢。

标签: arm paging virtual-memory mmu


【解决方案1】:

当然,您可以将虚拟映射到物理映射,但您喜欢包括一对一,以使它们相等。与关闭 mmu 仍然存在差异,每次访问都必须通过 mmu 并进行查找和转换(即使是一对一),这些表本身也在 ram 中,这需要时间,有一个小缓存帮助(TLB),但很小。然后是 mmu 中的其他设置,无论是否可缓存,保护可能需要在芯片内进行额外的查找,这可能需要也可能不需要额外的时钟周期。

所以纯粹从寻址的角度来看,确保整个地址空间的虚拟地址和物理地址可以相同。 mmu 表中有一些位替换了物理地址中的一些位,您可以设置这些位以匹配部分或全部地址空间。

【讨论】:

  • 我认为即使禁用 mmu 也会有一些额外的周期,因为访问会导致中止异常。
  • 不知道你在说什么,没有 mmu,你会在 axi 总线上获得预期的交易,启用 mmu,你可以看到额外的交易,然后是预期的交易。如果您有兴趣谈论中止或类似的事情,那么 mmu 与它无关,开或关。但这不是你的问题吗?你有什么问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-13
  • 2012-07-21
  • 1970-01-01
  • 2017-01-31
  • 2017-09-07
  • 1970-01-01
相关资源
最近更新 更多