我是靠谱客的博主 追寻御姐,最近开发中收集的这篇文章主要介绍Linux内存管理之MMU的过程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

之前写过一篇《CPU是如何访问内存的?》的文章,简单介绍了cpu访问内存的过程。有了之前的感性认识,这篇站在arm的角度再深度讲解一下,看完你会发现不理解arm原理就直接撸内核代码简直是耍流氓。

ARMv8中的访问内存流程

我喜欢用图的方式来说明问题,简单直接:

蓝色部分是cpu,灰色部分是内存,白色部分就是cpu访问内存的过程,也是地址转换的过程。在解释地址转换的本质前我们先理解下几个概念:

  1. TLB:MMU工作的过程就是查询页表的过程。如果把页表放在内存中查询的时候开销太大,因此为了提高查找效率,专门用一小片访问更快的区域存放地址转换条目。(当页表内容有变化的时候,需要清除TLB,以防止地址映射出错。)

  2. Caches:cpu和内存之间的缓存机制,用于提高访问速率,armv8架构的话上图的caches其实是L2 Cache,这里就不做进一步解释了。

最后

以上就是追寻御姐为你收集整理的Linux内存管理之MMU的过程的全部内容,希望文章能够帮你解决Linux内存管理之MMU的过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部