arm体系结构中的域意味着什么
当我在Cortex-A9 MPCore中调试MMU时,我总是看到域访问控制寄存器,但是,域意味着什么?最多16个域?arm体系结构中的域意味着什么,arm,mmu,cortex-a,Arm,Mmu,Cortex A,当我在Cortex-A9 MPCore中调试MMU时,我总是看到域访问控制寄存器,但是,域意味着什么?最多16个域? 谁能给我一个链接来解释这个 TL;DRDACR不仅可以减少上下文切换代码路径,还可以在上下文切换发生后加快执行 有几个链接解释域访问控制寄存器或DACR的细节。例如然而,本页面和其他许多页面没有解释为什么您可能需要此功能;特别是对于使用嵌入式应用程序的人 以前的ARM特性(ARM架构V5)是PID。此功能的原因与DACR和域相同。MMU的用途是什么 特权分离-或允许某些实体(
谁能给我一个链接来解释这个 TL;DRDACR不仅可以减少上下文切换代码路径,还可以在上下文切换发生后加快执行
有几个链接解释域访问控制寄存器或DACR的细节。例如然而,本页面和其他许多页面没有解释为什么您可能需要此功能;特别是对于使用嵌入式应用程序的人 以前的ARM特性(ARM架构V5)是PID。此功能的原因与DACR和域相同。MMU的用途是什么
- 特权分离-或允许某些实体(任务、线程等)访问内存和其他受限(只读)或无
- 内存重新映射-虚拟到物理的转换允许稀疏/分离的内存成为连续的
- 分页-故障处理程序可以在权限较低的代码访问时交换内存
- 访问行为-MMU可以指定内存是否可缓存、读/写、是否应缓冲等
因此,DACR不仅减少了上下文切换代码路径,还可以在上下文切换发生后加快执行速度。这就是如何防止程序A践踏程序B,您可以为它们分配不同的域,当一个程序运行时,它只能访问它有权限访问的内容。在切换任务时,您不必更改太多的内容,您也不必扫描整个mmu表并更改下一个任务可以访问的内容。至少在较旧的arm mmu中是这样的。有些地方直接指定了权限,有些地方索引到包含16个定义的寄存器中。对于自定义(仅限ARM)RT嵌入式操作系统,可以使用静态域构造内容。为了支持>16个任务,大多数OSs仍然会回到传统的页表更新方法。但是,对于正在运行的系统中的大多数任务开关,使用DACR写入。这优化了常见情况,但有一个最坏的情况路径(可能不是实时用户想要听到的)。