29912
来源:互联网 发布:mac和手机 日历同步 编辑:程序博客网 时间:2024/06/06 03:45
2-9-9-12分页
PDPE PDE PTE属性分析
TLB
1、地址解析
1)通过一个线性地址访问一个物理页。比如:一个DWORD,其实未必真正读的是4个字节,我们先读的PDE再读PTE 最后才读的4个字节的页。
2)在2-9-9-12会读24个字节 如果跨页可能更多。
为了提高效率,只能做记录。
CPU内部做了一个表,来记录这些东西,这个表格是CPU内部的,和寄存器一样快,这个表格:TLB(Translation Lookaside Buffer)。
3、TLB种类
TLB在X86体系的CPU里的实际应用最早是从Intel的486CPU开始的,在X86体系
的CPU里边,一般都设有如下4组TLB:
第一组:缓存一般页表(4K字节页面)的指令页表缓存(Instruction-TLB);
第二组:缓存一般页表(4K字节页面)的数据页表缓存(Data-TLB);
第三组:缓存大尺寸页表(2M/4M字节页面)的指令页表缓存(Instruction-TLB);
第四组:缓存大尺寸页表(2M/4M字节页面)的数据页表缓存(Data-TLB)
中断与异常
1、什么是中断
1) 中断通常是由CPU外部的输入输出设备(硬件)所触发的,供外部设备通知 CPU“有事情需要处理”,因此又叫中断请求(Interrupt
Request).2) 中断请求的目的是希望CPU暂时停止执行当前正在执行的程序,转去执行 中断请求所对应的中断处理例程(中断处理程序在哪有IDT表决定)
3) 80x86有两条中断请求线:
非屏蔽中断线,称为NMI(NonMaskable Interrupt) 可屏蔽中断线,称为INTR(Interrupt
Require)
3、可屏蔽中断
在硬件级,可屏蔽中断是由一块专门的芯片来管理的,通常称为中断控制器. 它负责分配中断资源和管理各个中断源发出的中断请求.为了便于标识各个中断请求, 中断管理器通常用IRQ(Interrupt
Request)后面加上数字来表示不同的中断.
比如:在Windows中 时钟中断的IRQ编号为0 也就是:IRQ0
控制寄存器
1、控制寄存器
控制寄存器用于控制和确定CPU的操作模式。Cr0 Cr1 Cr2 Cr3 Cr4 Cr1 保留Cr3 页目录表基址
说明:
3、WP:对于Intel 80486或以上的CPU,CR0的位16是写保护(Write Proctect)标志
当设置该标志时,处理器会禁止超级用户程序(例如特权级0的程序)向用户级只读页
面执行写操作;
当CPL<3的时候:
如果 WP=0 可以读写任意用户级物理页,只要线性地址有效.
如果 WP=1 可以读取任意用户级物理页,但对于只读的物理页,则不能写.
页目录表,页表基地址
PAE分页模式下页目录表基址:0xC0600000
页表基址:0xC0000000
PDE=0xc0600000+pdpti*0x200*8+pdi*8
PTE=0xc0000000+pdpti*0x200*0x200*8+pdi*0x200*8+pti*8