0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MMU中的页命中、缺页介绍

麦辣鸡腿堡 来源:TrustZone 作者:Hcoco 2023-11-26 16:19 次阅读

页命中、缺页

(1)页命中

图片

• a) 处理器要对虚拟地址VA进行访问。

• b) MMU的TLB没有命中,通过TWU遍历主存页表中的PTEA(PTE地址)。

• c) 主存向MMU返回PTE。

• d) MMU通过PTE映射物理地址,并把它传给高速缓存或主存。

• e) 高速缓存或主存返回物理地址对应的数据给处理器。

(2)缺页

图片

• a) 处理器要对虚拟地址VA进行访问。

• b) MMU的TLB没有命中,通过TWU遍历主存页表中的PTEA(PTE地址)。

• c) 主存向MMU返回PTE。

• d) PTE中有效位是0,MMU触发一次异常,CPU相应缺页异常,运行相应的处理程序。

• e) 缺页异常处理程序选出物理内存中的牺牲页,若这个页面已经被修改,将其换出到EMMC。

• f) 缺页异常处理程序从EMMC中加载新的页面,并更新内存中页表的PTE。

• g)缺页异常处理程序返回到原来的进程,再次执行导致缺页的指令。CPU将引起缺页异常的虚拟地址重新发给MMU。由于虚拟页面现在缓存在主存中,主存会将所请求的地址对应的内容返回给cache和处理器。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19286

    浏览量

    229825
  • 内存
    +关注

    关注

    8

    文章

    3025

    浏览量

    74046
  • MMU
    MMU
    +关注

    关注

    0

    文章

    91

    浏览量

    18289
收藏 人收藏

    评论

    相关推荐

    关于MMU的一级表为什么必须是16K对齐

    哪位仁兄知道:MMU的一级表为什么必须是16K对齐,最好有计算公式~~~谢谢!!!
    发表于 02-14 23:46

    关于表和MMU的问题

    刚开始学,好多东西都云里雾里的TT为什么在bootloader里要进行表初始化然后开启MMU,然后在进入内核后还要创建表开启MMU?这两个有什么不一样么?s3c2410,bootl
    发表于 05-06 17:25

    ARM MMU 理解(基于ARM 920T)

    、4KB和1KB大小地址空间的映射。要实现从虚拟地址到物理地址的映射,必然会遇到一个问题,如何找到这个表。对于表的查找,要知道这个表的基地址和偏移地址,在具有MMU功能的处理器,集成了一个被称为CP15
    发表于 08-29 11:10

    MMU的产生及MMU工作过程详解

    的设置MMU,可以把16个虚页隐射到8个的任何一个,但是这个方法并没有有效的解决虚拟地址空间比物理地址空间大的问题。从上图中我们可以看到,我们只有8个框(物理地址),但我们有1
    发表于 07-03 08:19

    裸机加强版MMU章节表创建,地址映射相同

    ARM裸机1期加强版 024_mmu_cache_021\002_mmu_021_004\mmu.c 文件/* 2.3 for 64M sdram */创建表 SDRAM 64M 虚
    发表于 04-18 07:45

    ARM的内存管理(MMU)是如何实现的?

    ( translate table )是实现 MMU 功能不可缺少的一步。表是位于系统的内存表的每一项对应于一个虚拟地址到物理地址的映射。每一项的长度即是一个字的长度(在 AR
    发表于 10-23 15:29

    如何配置MMU page table walk的访问属性

    众所周知,MMU表是由软件建立在外部内存的。实际上有两条硬件路径需要访问这个表:1 MMU硬件进行page table walk时,
    发表于 10-24 15:45

    MMU表工作机制的简单评析

    对于一个有MMU的CPU而言,MMU开启后,CPU是这样寻址的:CPU任何时候,一切时候,发出的地址都是虚拟地址,这个虚拟地址发给MMU后,MMU通过
    的头像 发表于 02-02 14:08 1.1w次阅读
    对<b class='flag-5'>MMU</b>和<b class='flag-5'>页</b>表工作机制的简单评析

    缺页异常是匿名映射缺页异常分析

    前面讲到过写时复制缺页异常(COW),一般用于父子进程之间共享,而我们会常见一种缺页异常是匿名映射缺页异常,今天我们就来讨论下这种缺页异常
    的头像 发表于 09-09 10:55 3040次阅读
    <b class='flag-5'>缺页</b>异常是匿名映射<b class='flag-5'>缺页</b>异常分析

    为什么要用MMU?为什么要用虚拟地址?

    既然MMU开启后,硬件会自动的将虚拟地址转换成物理地址,那么还需要我们软件做什么事情呢?即创建一个表翻译都需要做哪些事情呢?或者说启用一个MMU需要软件做什么事情呢?
    的头像 发表于 04-26 14:37 4940次阅读

    Linux内核虚拟内存管理mmu_gather操作

    本文讲解Linux内核虚拟内存管理mmu_gather操作,看看它是如何保证刷tlb和释放物理的顺序的,又是如何将更多的页面聚集起来统一释放的。
    的头像 发表于 05-20 14:37 1978次阅读

    MMU如何知道表在内存的具体地址

    MMU怎么知道这个表在内存的具体地址呢? 通常CPU会提供一个表基址寄存器给操作系统使用,用于给MMU指示
    的头像 发表于 10-08 11:52 1313次阅读
    <b class='flag-5'>MMU</b>如何知道<b class='flag-5'>页</b>表在内存<b class='flag-5'>中</b>的具体地址

    MMU原理:CPU是如何访问到内存的?

    当CPU访问虚拟地址0的时候,MMU会去查上面表的第0行,发现第0行没有命中,于是无论以何种形式(R读,W写,X执行)访问,MMU都会给CPU发出page fault,CPU自动跳到
    发表于 11-09 12:30 1192次阅读
    <b class='flag-5'>MMU</b>原理:CPU是如何访问到内存的?

    MMU包含两个模块是什么

    1-CPU发出的虚拟地址 CPU发出的虚拟地址由两部分组成:VPN和offset,VPN(virtual page number)是的条目number,而offset是指内偏移。 最终转换后
    的头像 发表于 11-26 15:40 666次阅读
    <b class='flag-5'>MMU</b>包含两个模块是什么

    MMU多级表映射过程

    空间,也有相应的表负责虚拟地址到物理地址之间的转换。MMU查询的过程,用户进程的一级表的基址存放在TTBR0。操作系统的内核空间公用一块地址空间,
    的头像 发表于 11-26 16:28 962次阅读
    <b class='flag-5'>MMU</b>多级<b class='flag-5'>页</b>表映射过程