保护模式--页式存储

1.页,就是一块内存,在80386中,页的大小是固定的4096字节(4KB)。

2.逻辑地址:
1.在有地址变换功能的计算机中,访问指令给出的地址 (操作数) 叫逻辑地址,也叫相对地址。
 要经过寻址方式的计算或变换才得到内存储器中的物理地址。
2.把用户程序中使用的地址称为相对地址即逻辑地址。
3.逻辑地址由两个16位的地址分量构成,一个为段基值,另一个为偏移量。两个分量均为无符号数编码。
文献解释:这样该存储单元的地址就可以用段基址(段地址)和段内偏移量(偏移地址)来表示,
 段基址确定它所在的段居于整个存储空间的位置,偏移量确定它在段内的位置,这种地址表示方式称为逻辑地址,
 通常表示为段地址:偏移地址的形式。
背景:追根求源,Intel的8位机8080CPU,数据总线(DB)为8位,地址总线(AB)为16位。
那么这个16位地址信息也是要通过8位数据总线来传送,也是要在数据通道中的暂存器,
以及在CPU中的寄存器和内存中存放的,但由于AB正好是DB的整数倍,故不会产生矛盾!
但当上升到16位机后,Intel8086/8088CPU的设计由于当年IC集成技术和外封装及引脚技术的限制,
不能超过40个引脚。但又感觉到8位机原来的地址寻址能力2^16=64KB太少了,但直接增加到16的整数倍
即令AB=32位又是达不到的。故而只能把AB暂时增加4条成为20条。则2^20=1MB的寻址能力已经增加了16倍。
但此举却造成了AB的20位和DB的16位之间的矛盾,20位地址信息既无法在DB上传送,又无法在16位的CPU寄存器和
内存单元中存放。于是应运而生就产生了CPU段结构的原理。

3.在未代开分页机制时,线性地址等同于物理地址,即逻辑地址通过分段机制直接转换成物理地址;
  开启分页时,分段机制将逻辑地址转换成线性地址,线性地址再通过分页机制转换成物理地址。
  
4.分页的主要目的在于实现虚拟存储器。

5.页目录表的表项简称PDE(Page Directory Entry),页表的表项简称PTE(Page Table Entry)

6.线性地址转换成物理地址:
  进行转换时,先从寄存器CR3制定的页目录中根据线性地址的高10位得到页表地址,然后在页表总根据线性地址的
  第12到21位得到物理页首地址,将这个首地址加上线性地址低12位便得到物理地址。
  
7.CR0寄存器的最高位PG位控制分页机制是否生效,如果PG=1,则分页机制生效。所以准备好页目录和页表,并将CR3
  指向页目录表之后,只需要置PG位(第32位),分页机制就开始工作了。
  
8.CR3又叫PDBR(Page Directory Base Register),高20位是页目录表首地址的高20位,页目录表首地址的低12位是零,
  也就是说,页目录表会是4K对其的。类似的,PDE中的页表基址(Page-Table Base Address)以及PTE中的页基址
  (Page Base Address)也是用高20位来表示4K对齐的页表和页。
  PDE/PTE 低12位用以表明PDE和PTE的属性。
  0位--P 存在位,表明当前条目所指向的页或页表是否在物理内存中
  1位--R/W 指定一个页或一组页的读写权限;等于0表示只读,等于1表示可读并可写。
  2位--U/S 指定一个页或一组页的特权级。
  3位--PWT 控制对单个页或者表的缓冲策略。
  4位--PCD 用于控制对单个页或者页表的缓冲。
  5位--A 指示页或页表是否被访问。
  6位--D 指示页或页表是否被写入。
  7位--PDE(PS)/PTE(PAT) PS位决定也大小/PAT位选择PAT(Page Attribut Table)
  8位--G 指示全局页
  
9.处理器会将最近常用的页目录和页表项保存在一个叫做TLB(Translation Lookaside Buffer)的缓冲区中。
  只有在TLB中找不到被请求页的转换信息时,才会到内存中寻找。这样就大大加快了访问页目录和页表的时间。
  当页目录或页表项被更改时,操作系统应该马上使TLB中对应的条目无效,以便下次用到此条目时让它获得更新。
  当CR3被加载时,所有TLB都会自动无效,除非页或页表条目的G位被设置。
 
10.指令:STOSD  将 EAX 存储到地址 ES:(E)DI

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值