MMU

MMU:Memory Management Unit
内存管理单元

主要功能:
将虚拟地址转换成实际的物理地址
对物理内存设置访问权限

TLB (Translation Lookaside Buffers)
即转换快表,又简称快表,可以理解为MMU内部专用的存放页表的cache,保存着最近使用的PTE乃至全部页表。MMU接收到虚拟地址后,首先在TLB中查找,如果找到该VA对应的PTE就直接转换,找不到再去外存页表查找,并置换进TLB。TLB属于片上SRAM,访问速度快,通过TLB缓存PTE可以节省MMU访问外存页表的时间,从而加速虚实地址转换。TLB和CPU cache的工作原理一样,只是TLB专用于为MMU缓存页表。

MMU的工作过程:
由协处理器(CP15)控制的
段(Section,1MB)
页(page) 大页(64KB) 小页(4KB)极小页(1KB)

条目 描述符(Descriptor) 段描述符
大页描述符
小页描述符
极小页描述符 起始物理地址
粗页表描述符
细页表描述符 保存二级页表的物理地址

转换过程:

    (1)根据给定的虚拟地址找到一级页表中的条目
    (2)如果此条目是段描述符,则返回物理地址,转换结束
    (3)如果此条目是二级页表描述符,继续利用虚拟地址在二级页表中找到下一个条目;
    (4)如果这第二个条目是叶描述符,则返回物理地址,转换结束;
    (5)其他情况出错

在这里插入图片描述

描述符说明
Section Base address段基地址(相当于页框号首地址)
AP访问控制位 Access Permission
Domain访问控制寄存器的索引 Domain与AP配合使用,对访问权限进行检查
Cwrite-through(WT)模式
Bwrite-back(WB)模式(C/B在同一时刻只能有一个被置为1)

程序块的交换 由OS完成
内存 磁盘

虚拟地址
32位CPU 0x0-0xFFFFFFFF(4G)
64位CPU 0x0-0xFFFFFFFF FFFFFFFF(64T)

物理地址只是虚拟地址的一个子集

内存为256MB的32位x86主机
虚拟地址:0x00000000-0xFFFFFFFF(4GB)
物理地址:0x00000000-0x0FFFFFFF(256MB)

MMU发现页面没有被映射时,MMU通知CPU发生一个缺页故障(page fault).这种情况下操作系统必须处理这个页故障,它必须从8个物理页框中找到1个当前很少被使用的页框并把该页框的内容写入外围存储器(page copy),随后把需要引用的页映射到刚才释放的页框中(修改映射关系),然后重新执行产生故障的指令

访问控制机制(Access Permission)
CPU通过某种方法判断当前程序对内存的访问是否合法(是否有权利对该内存进行访问),如果当前的程序并没有权限对即将访问的内存区域进行操作,则CPU将引发一个异常,Pression fault(通用保护异常)

DOMAIN ACCESS CONTROL REGISTER访问控制寄存器该寄存器有效位为32,被分成16个区域,每个区域由2bit组成,说明了当前内存的访问权限检查的级别
00访问控制寄存器,不允许被访问,访问引起domain fault
01Client必须配合该内存区域的段描述符中AP位进行权检查
10Reserved保留状态(最好不用,以免引起不能确定的问题)
11Manager不对访问进行权限检查

在这里插入图片描述

fieldAPS bitA bit说明
0110系统会对访问进行访问权限的检查
1110系统会对任何内存区域访问进行访问权限的检查
0111系统会对该访问进行访问权限的检查,程序对该描述符描述的内存都可以顺利地进行读写操作
010000系统会对该访问进行访问权限的检查,程序对该描述符描述的内存都只能进行读操作

两个结论:

1.对某个内存区域的访问是否需要进行权限检查是由该内存区域的描述符中的Domain域决定的。

2.某个内存区域的访问权限是由该内存区域的描述符中的AP位和协处理器CP15中Control Register1(控制寄存器1)中的S bit和R bit所决定的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值