Arm 禁用MMU与启用MMU,一对一分页

Arm 禁用MMU与启用MMU,一对一分页,arm,paging,virtual-memory,mmu,Arm,Paging,Virtual Memory,Mmu,我试图理解这两种操作模式之间的区别(主要是在arm处理器中): MMU已禁用 MMU已启用,但使用一对一分页,即虚拟地址与物理地址相同 根据我的理解,在这两种情况下,内存都是作为平面内存一对一分页进行访问的 对吗 谢谢。当然,您可以将虚拟映射到物理,无论您喜欢什么,包括一对一,以使它们相等。与关闭mmu相比,仍然存在差异,每个访问都必须通过mmu进行查找和转换(即使是一对一),这些表本身也在ram中,这需要时间,有一点需要帮助的缓存(TLB),但非常小。然后,mmu中的其他设置(可缓存或不可缓存

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

  • MMU已禁用
  • MMU已启用,但使用一对一分页,即虚拟地址与物理地址相同
  • 根据我的理解,在这两种情况下,内存都是作为平面内存一对一分页进行访问的

    对吗


    谢谢。

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


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

    我认为即使禁用mmu,也会有一些额外的周期,因为访问会导致异常中止。不知道您在说什么,没有mmu,您可以在axi总线上获得预期的事务,启用mmu后,您可以看到额外的事务,而不是预期的事务。如果您有兴趣谈论中止或类似的事情,那么mmu与之无关,开或关。但那不是你的问题,是吗?你的问题是什么?我已经有一段时间没有这样做了,但我相信使用MMU进行一对一页面映射的优点之一是,可以在页面上设置缓存位。我记得我当时正在使用的平台,没有MMU和设置缓存位,代码的运行速度会大大降低。