第二章微处理器存储器管理技术 ©知识概述⑨ 第一节实模式存储器寻址 第二节保护模式存储器寻址 孤算挨口技法 退出
第二章 微处理器存储器管理技术 第二节 保护模式存储器寻址 退 出 第一节 实模式存储器寻址 ☺ 知 识 概 述 ☺
80386开始有了三种工作模式: 80386开始有了三种工作模式: ●】 (1)实模式: 工作方式相当于一个8086 (2)保护模式: 提供支持多任务环境的工作方式,建立保护机制 (3)虚拟8086模式: 折中,从保护模式切换至其中的一种8086工作方 式,这种方式提供用户可以方便地在保护模式下运行一个 或多个原8086程序. 三种工作模式可以切换
80386开始有了三种工作模式: • 80386开始有了三种工作模式: • (1)实模式 : • 工作方式相当于一个8086 (2)保护模式: • 提供支持多任务环境的工作方式,建立保护机制 (3)虚拟8086模式: • 折中, 从保护模式切换至其中的一种8086工作方 式,这种方式提供用户可以方便地在保护模式下运行一个 或多个原8086程序. • 三种工作模式可以切换
实模式存储器寻址 80286及其以上的微处理器可工作于实模式或者保护 模式,而8086只能工作于实模式。 实模式只允许微处理器寻址第一个MB内存空间,即 使是PentiumIV微处理器也是如此。 DOS操作系统要求微处理器工作于实模式。 实模式操作是允许为8086编写的应用软件不用修改就 可以在80286及更高型号的微处理器中运行。 在任何情况下,这些微处理器每次加电或复位后都默 认地以实模式开始工作。 计算讲款 退出
实模式存储器寻址 80286及其以上的微处理器可工作于实模式或者保护 模式,而8086只能工作于实模式。 实模式只允许微处理器寻址第一个1MB内存空间,即 使是PentiumⅣ微处理器也是如此。 DOS操作系统要求微处理器工作于实模式。 实模式操作是允许为8086编写的应用软件不用修改就 可以在80286及更高型号的微处理器中运行。 在任何情况下,这些微处理器每次加电或复位后都默 认地以实模式开始工作。 退 出
实模式的空间 0000:0000 1MB基本内存 ● F000:FFFF 00100000H 4GB扩充内存 FFFF FFFFH
实模式的空间 • 0000:0000 F000:FFFF 0010 0000H FFFF FFFFH 1MB 基本内存 4GB 扩充内存
·实模式下是段地址+偏移地址=物理地址 ·1230:4560=16860H单元
• 实模式下是段地址+偏移地址=物理地址 • 1230:4560 = 16860H单元
保护模式存储器寻址 在保护模式下,段地址不是作为段来用, 而是当做一个选择子,选择描述表内的 个描述符,由该描述符描述存储器段的位 置、长度和访问权限 。 先分段,再根据需要可以分页; 选择子:偏移地址 选择一个全局描述符表 从描述符表中得出实际的地址、空间大小等
保护模式存储器寻址 在保护模式下,段地址不是作为段来用, 而是当做一个选择子,选择描述表内的一 个描述符,由该描述符描述存储器段的位 置、长度和访问权限。 先分段,再根据需要可以分页; 选择子:偏移地址 选择一个全局描述符表 从描述符表中得出实际的地址、空间大小等
保护模式下的16位段寄存器当选择子用了 其中的低3位选择一个描述符寄存器,例如GDTR GDTR寄存器里放着8192个描述符的表的首地址 高13位选择子选择描述符表中的一个描述符,例如第4项。 取出该描述符,里面就有你的数据段的段地址 在该段地址基础上+偏移地址就是要访问的数据的线性地址 如果不分页,到此完成: 如果分页,换需要进一步转换; 15 0 选择子 TI RPL 请求优先级 00为最高级,11为最低级 从8192个全局描述符或者局部描 +T=0全局描述符表 述符中选择一个描述符 TI=1局部描述符表 图2.4保护模式下段寄存器的内容 退出 讲算接口味 图2.4保护模式下段寄存器的内容
图2.4 保护模式下段寄存器的内容 退 出 选择子 TI RPL 从8192个全局描述符或者局部描 述符中选择一个描述符 请求优先级 00为最高级,11为最低级 TI=0 全局描述符表 TI=1 局部描述符表 图2.4 保护模式下段寄存器的内容 15 0 保护模式下的16位段寄存器当选择子用了 其中的低3位选择一个描述符寄存器,例如GDTR GDTR寄存器里放着8192个描述符的表的首地址 高13位选择子选择描述符表中的一个描述符,例如第4项。 取出该描述符,里面就有你的数据段的段地址 在该段地址基础上+偏移地址就是要访问的数据的线性地址 如果不分页,到此完成; 如果分页,换需要进一步转换;
0x00000000 Linear Address Space GDTR Descriptor Table Descriptor Selector Ofiset Logical Address Segment D超 OXFFFFFFFF
保护模式下的“段选择符+段内偏移地址” 如果不启用分页管理的情况下,那么此线性地址即最终的物理地址。 这就是分段管理; 15 0 31 0 逻期地址 段选挥符 偏移地址 描述符表 段招述符 31 0 线性地班
保护模式下的“段选择符+段内偏移地址”, 如果不启用分页管理的情况下,那么此线性地址即最终的物理地址。 这就是分段管理; •
如果还想分页,还需要进一步转换: 分页机制如下图所示,它把物理内存分成相同固定大小的页面, 212=4KB。 ·每个页面的0~4KB范围由线性地址的低12位表示, ·线性地址空间的高0位用来指定页目录中的位置, 可以选择210=1024个目录项,每个目录项为四字节,所以页目录为 1024*4B=4KB。 。 每个目录项中的高20位用以查找页表在物理内存中的页面,每个页表 含1024个页表项,每个页表项也是四字节,这样一贡表也是 1024*4B=4KB。 所以一个页目录可以查找1024个页表,每个页表为4KB,所以总共 可以查找的页表大小为1024*4KB=4MB大。 最后每个页表项的高20位用以定位物理地址空间中的某个页基地址, 此地址再加上线性地址空间的偏移值就是最后物理内存空间单元
如果还想分页,还需要进一步转换: • 分页机制如下图所示,它把物理内存分成相同固定大小的页面, 2^12=4KB。 • 每个页面的0~4KB范围由线性地址的低12位表示, • 线性地址空间的高10位用来指定页目录中的位置, • 可以选择2^10=1024个目录项,每个目录项为四字节,所以页目录为 1024*4B=4KB。 • 每个目录项中的高20位用以查找页表在物理内存中的页面,每个页表 含1024个页表项,每个页表项也是四字节,这样一页表也是 1024*4B=4KB。 • 所以一个页目录可以查找1024个页表,每个页表为4KB,所以总共 可以查找的页表大小为1024*4KB=4MB大。 • 最后每个页表项的高20位用以定位物理地址空间中的某个页基地址, 此地址再加上线性地址空间的偏移值就是最后物理内存空间单元