浅尝辄止75-MMU

CPU如何访问内存?

MMU(Memory Managemant Unit)

很容易想象,CPU可以用物理地址对内存访问,但是实际上这只发生在刚开机的阶段,在那之后CPU就不再直接与内存打交道了,而是用虚拟地址通过使用MMU访问内存。既然虚拟地址与物理地址不一样,那么MMU是怎么在它们之间是怎么转换的呢?

页表

我理解MMU是一个查表的装置,什么表?
页表。
两个地址的转换关系就记录在页表中,页表在哪?
也在内存中,MMU知道它在主存什么地方。

地址转换

常见的32位机虚拟地址是32位的,在三级页表结构下,它们分别有如下含义

  • [31:20]是一级索引
    指向一级页表中的一项,共4096项,每一项都指向一个二级页表
  • [19:12]二级索引
    指向一级索引指定的一个二级页表中的一项,共256项,每一项都是一个物理地址的[31:12]
  • [11:0]页索引
    顾名思义,就是页内的索引,可以定位到字节

二级页表项是[31:12],与页索引[11:0]拼接,就成了物理地址。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 基础知识 1.1、 基本概念、 功能 冯诺伊曼体系结构1、计算机处理的数据和指令一律用二进制数表示2、顺序执...
    yunpiao阅读 5,841评论 1 22
  • 概述 我们都知道一个进程是与其他进程共享CPU和内存资源的。正因如此,操作系统需要有一套完善的内存管理机制才能防止...
    SylvanasSun阅读 3,985评论 0 25
  • 本文转载自 https://juejin.im/post/59f8691b51882534af254317 参考:...
    xingdong阅读 2,894评论 0 3
  • 前段时间看了进程管理,觉得对编程简直大有裨益,至少对于多线程编程方面,对系统的进程管理有了非常深刻的理解,看来还是...
    KevinCool阅读 1,267评论 0 1
  • 晚上打开腾讯视频正准备看BBC的新纪录片《王朝》,突然发现推荐列表出现了一直想看但没看的《悲伤逆流成河》。原本想着...
    紫霂啊阅读 262评论 0 1

友情链接更多精彩内容