当我在Cortex-A9 MPCore中调试MMU时,经常会看到“Domain Access Control Register”,但是,“domain”是什么意思?最多可以有16个域吗?
有人可以给我一个解释链接吗?
有几个链接可以解释 Domain Access Control Register 或者 DACR 的具体细节。例如 ARM的内存访问权限和域. 然而这些页面以及其他很多页面没有解释为什么你可能需要这个特性;特别是对于嵌入式应用程序的用户来说。
之前的 ARM 特性(ARM 架构 V5) 是 PID. 这个特性的原因和 DACR 和域相同。MMU 用于什么?
这与更改单个寄存器相比。此外,您可能会使整个缓存和TLB失效。通过DACR和简短的上下文切换,代码/数据可以保留在缓存中,而MMU页表条目则在TLB中。例如,一个具有检查电子邮件任务和电影播放器的系统。
音频/视频的解码非常消耗CPU和内存。偶尔,电子邮件客户端会轮询网络服务器以获取信息。通常没有什么。在这个简短的转换期间,只需要少量(1-4k)的检查电子邮件代码;单个TLB条目。缓存通常是32k+,因此许多音频/视频缓存和TLB条目可以保持有效。
因此,DACR 不仅减少了上下文切换代码路径,而且在上下文切换发生后还可以加快执行速度。