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

    文章

    18288

    浏览量

    222167
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72771
  • MMU
    MMU
    +关注

    关注

    0

    文章

    91

    浏览量

    17944
收藏 人收藏

    评论

    相关推荐

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

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

    关于表和MMU的问题

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

    嵌入式ARM的MMU和Cache机制

    )集成了MMU是其最大的卖点;有了MMU,高级的操作系统(虚拟地址空间,平面地址,进程保护等)才得以实现。二者都挺复杂,并且在920T又高度耦合,相互配合操作,所以需要结合起来研究。同时,二者的操作
    发表于 08-19 22:42

    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

    为什么我把MMU裸机程序修改成两级表后程序编译时提示找不到‘memset’函数?

    在看完MMU例程之后,我在原来程序的基础上把一级表改成了两级表,用一个粗和一个小将0x30000000~0x33FFFFFF映射到了
    发表于 08-07 22:20

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

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

    详解ARMv8-A系列CPU的MMU隐射查找过程

    状态,MMU表的选取又能分为几种方式。本文首先分析异常级别、执行状态、MMU表选取三者之间的关系,以及不同执行状态下MMU
    发表于 08-09 17:18

    ARM v7-A系列CPU的MMU隐射分析

    详细介绍地址转换中用到短描述符格式(32位)和长描述符格式(64位),以及如何实现虚拟地址到物理地址的查询,最后就二级隐射问题,给出一个例子用以验证。  ARM v7-A MMU 整体结构介绍  整体
    发表于 08-30 15:43

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

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

    《RISC-V体系结构编程与实践》+试读经验

    查询是一个较耗时的过程,理想的状态下,TLB里应存放表的相关信息。当TLB未命中时,MMU才会查询表,从而得到翻译后的物理地址,而表通
    发表于 04-17 00:43

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

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

    嵌入式Linux运行一定需要MMU吗?为什么需要MMU

    嵌入式Linux运行一定需要MMU吗?为什么需要MMU?  嵌入式Linux运行需要MMU,这是因为MMU是嵌入式系统中最重要的子系统之一,它扮演着以硬件的方式隔离不同应用程序,为操作
    的头像 发表于 10-29 16:28 473次阅读

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

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