页命中、缺页
(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文章
20333浏览量
255052 -
内存
+关注
关注
9文章
3234浏览量
76520 -
MMU
+关注
关注
0文章
92浏览量
19289
发布评论请先 登录
相关推荐
热点推荐
关于页表和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开启后,硬件会自动的将虚拟地址转换成物理地址,那么还需要我们软件做什么事情呢?即创建一个页表翻译都需要做哪些事情呢?或者说启用一个MMU需要软件做什么事情呢?
Linux内核虚拟内存管理中的mmu_gather操作
本文讲解Linux内核虚拟内存管理中的mmu_gather操作,看看它是如何保证刷tlb和释放物理页的顺序的,又是如何将更多的页面聚集起来统一释放的。
MMU原理:CPU是如何访问到内存的?
当CPU访问虚拟地址0的时候,MMU会去查上面页表的第0行,发现第0行没有命中,于是无论以何种形式(R读,W写,X执行)访问,MMU都会给CPU发出page fault,CPU自动跳到
发表于 11-09 12:30
•2072次阅读
MMU包含两个模块是什么
1-CPU发出的虚拟地址 CPU发出的虚拟地址由两部分组成:VPN和offset,VPN(virtual page number)是页表中的条目number,而offset是指页内偏移。 最终转换后
MMU中的页命中、缺页介绍
评论