跳转到主内容
极星编程网:以代码为星,赴技术山海!

ARM处理器里的MMU和Cache,到底是个啥?

大家好,我是苏承栈,今天咱们来聊聊ARM处理器里的那些事儿——MMU和Cache。听起来好像很高级,但其实它们就是让我们的处理器运行得更高效的小帮手。

CP15协处理器:MMU和Cache的枢纽

ARM920T的MMU和Cache都集成在一个叫CP15的协处理器里。CP15协处理器里有一堆寄存器,和CPU的寄存器一样,用0到15来编号。这些寄存器的作用就是控制MMU和Cache的工作。

翻译表漫步:MMU如何将VA映射到PA

MMU的作用就是将虚拟地址(VA)转换成物理地址(PA)。这个过程就像是在一个巨大的迷宫里找路,通常需要多级查表。ARM体系结构是两级查表,64位体系结构可能需要更多级。

首先,把VA分成三段,然后一级一级地查表,直到找到物理页面的基地址。这个过程叫做Translation Table Walk,听起来是不是很形象?

CPU访问内存:MMU和Cache的协同工作

当CPU需要访问内存时,MMU和Cache会一起工作。首先,CPU发出VA请求,TLB(翻译查找缓存)会检查是否有缓存。如果有,就直接返回数据;如果没有,就进行Translation Table Walk,找到物理地址,然后检查权限和Cache设置。如果允许Cache,就把数据缓存起来;如果不允许,就直接从物理内存读取。

这就是ARM处理器中的MMU和Cache的基本工作原理。希望这篇文章能让你对这些概念有更深入的理解。

——苏承栈,来自极星编程网(www.jxgpc.com)

相关文章