[工学]微机原理 操作模式

上传人:tia****nde 文档编号:70784479 上传时间:2019-01-18 格式:PPT 页数:41 大小:461.12KB
返回 下载 相关 举报
[工学]微机原理 操作模式_第1页
第1页 / 共41页
[工学]微机原理 操作模式_第2页
第2页 / 共41页
[工学]微机原理 操作模式_第3页
第3页 / 共41页
[工学]微机原理 操作模式_第4页
第4页 / 共41页
[工学]微机原理 操作模式_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《[工学]微机原理 操作模式》由会员分享,可在线阅读,更多相关《[工学]微机原理 操作模式(41页珍藏版)》请在金锄头文库上搜索。

1、第11章 操作模式,主讲:董毅,11.1 实模式综述(回顾),实模式下的存储器地址由16位的段寄存器与16位的偏移量寄存器配对组成,两者结合起来构成逻辑地址。 【问题】段寄存器的最大值与偏移量寄存器的最大值都可为0FFFFH,此时的物理地址为(0FFFFH16)0FFFFH=10FFEFH100001111111111101111B, 使得第21条地址线A20为1,但8086只有20位地址,说明已经超出了8086的可寻址空间范围。,【解决办法】,在8086中就存在着所谓地址环绕的问题,超出20位地址的进位“1”将被忽略,因此10FFEFH实际的物理地址将被定位到存储器的0FFEFH处。 802

2、86的地址线有24位,80386/80486/奔腾系列等微处理器的地址线至少有32位,因此地址100000H及其随后的大量空间都是实际存在的,不会环绕到00000H处,但它超出了1MB的空间限制,进入了扩展存储器的空间。为了严格兼容8086实模式,80286/80386/ 80486/奔腾系列都采取了一种附加闸门控制的办法,通过专门的电路设计对A20地址线进行控制,称为“A20 gate”。当闸门电路保持A20线为0电平时,系统就能仿真8086的地址环绕。,MS DOS的内存管理,可使用1MB空间,分成两段: 00000H9FFFFH为基本内存或称常规内存,容量640KB,DOS与用户程序只能

3、存放在这个区段。 0A0000H0FFFFFH为保留内存区,共384KB,保留给基本输入输出系统(BIOS)与系统总线功能扩展接口卡上的存储器使用,例如显示卡上的视频BIOS、显示缓冲区以及系统启动网卡上的启动ROM等。 1MB以外的区间是扩展内存区XMS(Extended Memory Specification),属保护模式存储器寻址 (Protected Mode Memory Addressing) 的空间,MS DOS无法直接管理,仅可用作RAM一类的虚拟磁盘等,这是实模式的致命缺陷。,MS DOS的内存管理,对于80286以后的微型计算机,在扩展内存管理程序HIMEM.SYS的驱动

4、控制下,当逻辑地址处在0FFFF:0010H0FFFF:FFFFH范围内,亦即物理地址在1MB之外的100000H10FFEFH空间段时,MS DOS系统能真正访问到扩展内存的这个区间。于是原来1MB的空间限制就被突破而增加了64KB。这个区间就称高端内存区(High Memory Area,HMA) 它可以存放DOS的常驻程序,从而使基本内存区中原驻这些程序的空间释放出来,用户程序区就增加了几十KB可贵的空间。为了达到这一目的,MS DOS系统配置文件CONFIG.SYS中必须有以下两条语句:,HMA配置,DEVICE=C:DOSHIMEM.SYS 装载扩展内存驱动程序 DOS=HIGH 让

5、DOS使用高端内存区,图11.1 80286/386/486/Pentium系列内存配置示意图,例11.1 A20地址线由92H端口的bit 1控制,该位为0时A20地址线关闭而产生地址环绕,系统操作于实模式为1时打开A20地址线可访问到1MB以上的空间,系统操作于保护模式。编写打开与关闭A20地址线的宏指令。,打开A20地址线 EnableA20 MACRO PUSH AX IN AL,92H OR AL,00000010B OUT 92H,AL POP AX ENDM 关闭A20地址线 DisableA20 MACRO PUSH AX IN AL,92H AND AL,11111101B

6、OUT 92H,AL POP AX ENDM,11.2 保护模式下的存储器分段管理,通俗地讲,所谓“保护”就是在充分利用微处理器资源的基础上,保护各类程序既高效率又高可靠地运行。 例如Windows操作系统就必须而且只能在保护模式下运行。,微处理器的保护,存储器的区域保护功能 对存储器实施分段管理,尽量禁止对存储器进行非法访问,或者程序失控时产生异常中断以便采取必要的补救措施等。在多任务系统中,通过局部描述符表LDT为各任务定义不同的虚拟空间,使任务之间在区域上进行隔离,互不干扰,即使某一任务出错也不致于影响其他任务的执行等。 特权级保护功能 为各种类型的存储器段附加一个访问权级别,为程序赋予

7、不同的级别,例如定义操作系统的特权级别最高,而用户应用程序级别最低,使操作系统不会转移到可靠性差的用户程序模块中去,而用户程序则绝对不能随意修改操作系统的数据,这样就保障了操作系统的安全。,11.2.1 控制寄存器与存储器管理寄存器,CR0CR4 共5个控制寄存器 CR0实际上在80286 CPU中就已经开发,但当时只使用了它的低位部份作为机器状态字MSW,在32位微处理器中它有许多重要的新的定义。 CR1 由80386/80486定义,但至今一直未使用,这是为今后开发更新的产品所保留的资源,这样的设计考虑就为产品的兼容性创造了条件。 CR2是页故障线性地址寄存器,80386/80486即使用

8、了该寄存器。 CR3的高位字用作存储器分页管理时页目录基地址寄存器,低位字只使用了两位,80386/80486即使用了该寄存器。 CR4则是奔腾新增加的控制寄存器。主要用于存储器的分页管理与虚拟中断等一些增强功能。,表11.1 CR0CR4控制寄存器中各位的定义,表11.1 CR0CR4控制寄存器中各位的定义,存储器管理寄存器(Memory management registers),全局描述表寄存器GDTR 中断描述表寄存器IDTR 局部描述表寄存器LDTR 任务寄存器TR 【说明】 GDTR与IDTR在系统中是唯一的,由CPU内部寄存器来实现,它们分别用于存放全局描述符表和中断描述符表的表

9、格基地址与段界即表格大小。 LDTR与TR在系统中同局部任务相匹配,不是唯一的,每个任务有各自的LDTR和TR,因此由内部高速缓冲存储器来实现,用于存放各个任务的局部表格参数。,11.2.2 虚拟存储器,保护模式与实模式的寻址方法有实质性的不同。,虚拟存储器,虚拟存储器是指磁盘等外部存储体,“虚拟”作为主存储器使用。在保护模式下的虚拟地址空间可以达到246=64TB。 假设有以下传送指令: MOV ES:ABC_OFF, EAX 同实模式相比,该指令在保护模式下有以下明显差别 偏移量ABC_OFF可以是16位/32位,依16位/32位指令而定 段寄存器ES中装载的已不是段基地址,而是段选择器。

10、,11.2.3 描述符表的概念,描述符 在保护模式下,将虚拟存储器分成许多大小不等的存储“段”,每个段都由一个8字节长的描述符来描述,说明该段所处的基地址位置,该段的大小,该段存放的内容是数据还是指令代码?以及读/写等其他一些属性。 描述符表 系统再将这些段描述符有机地组织成线性表,这种表就称为描述符表。描述符表分全局描述符表(Global Descriptor Table,GDT)与局部描述符表(Local Descriptor Table,LDT)两类。,描述符表的概念,全局描述符表GDT 该表是面向系统全局的,为系统中的各个任务共享,对应的存储器空间一般处理公共数据、公用过程调用与中断过

11、程以及装载操作系统等。此外,该描述符表还包括对各个局部描述符表的描述。在一个系统中只有唯一的1个全局描述符表,因此GDT只需有表格基地址和表格的大小就能在主存储器中定位了。,描述符表的概念,局部描述符表LDT 该表是面向具体任务的,每个任务拥有一个独立的局部描述符表。同该表对应的存储器空间存放着各自的代码与数据,达到各个任务在区域上实现隔离的目的。局部描述符表不是唯一的,系统中有多少个任务就有多少个局部描述符表,所以要完整地表征LDT还要附加选择器,用它来表示当前选择的是哪一个局部描述符表。,描述符表的概念,描述符表寄存器 CPU内部拥有全局描述符表寄存器GDTR,用它存放全局描述符表的表格首

12、地址与段界限大小,使GDT定位,通常情况下都不会再改变它的位置。 由于局部描述符表寄存器LDTR依系统中的具体任务而定,不是唯一的,任务改变时当前LDT随之变化,所以它们是通过段寄存器与描述符Cache寄存器来实现的。段寄存器中存放当前LDT的选择器,描述符Cache寄存器中则存放它的表格首地址、段界限大小与属性等。不过对于用户而言一般不必担心这些差别,系统会自动配置。,11.2.4 特权级及其保护,所谓特权级是给存储器的每个段都附加了一个访问权限属性,系统共分4个特权级,各个段必须归属于这4个级别中的其中一个: 0级是访问权最高的特权级 3级是访问权最低的特权级 1级与2级的访问权介于0级与

13、3级之间。,图11.3 奔腾系列的4级特权,特权级保护机制的原则性规定,特权级高的代码段不能向特权级低的代码段转移。 例如,操作系统的代码段不能转移到用户应用程序,因为用户应用程序的安全性较操作系统差,有可能导致系统崩溃。 特权级低的代码段不能访问特权高的数据段。 例如不能让用户应用程序访问操作系统的内部数据,因为应用程序对操作系统数据的修改是极其危险的。,特权级保护机制的原则性规定,特权级低的代码段可以访问特权高的代码段,但必须经过闸门检查。 例如用户程序可以调用操作系统内部的过程。这里要特别指出的是,应用程序与操作系统不能使用同一个堆栈,否则有可能在堆栈剩余空间不多时调用内部过程而使堆栈溢

14、出。因此它们都拥有各自的堆栈段,而且堆栈段的特权级往往与执行程序的代码段特权级相同,当代码段的特权级发生变化时,堆栈段的特权级也随之变化。,特权级保护机制的原则性规定,特权级高的程序代码段应能访问特权低的用户数据段,以便提供数据交流。 例如操作系统应能访问用户程序中的数据,由于是用户数据段而不是用户程序段,因而对操作系统的安全性不会造成严重的影响。,特权级保护机制的原则性规定,所有的应用程序都使用最低的特权级,它们只使用计算机而不是控制计算机。 闸门又称控制门,它是通过执行转移指令、调用指令和中断来实现的,从而产生了相应的转移门、调用门和中断门等概念。执行这类指令时,系统会进行一系列的保护性检

15、查与判断,确保安全转移。,11.2.5 段选择器与段描述符的结构,保护模式下段寄存器是一个16位的段选择器,而不是一个段基地址。 bit15bit3共13位作为在全局描述符表GDT或局部描述符表LDT中搜索描述符的索引值。 bit2是描述符表指示器TI,表示当前指向何种表格,为0指向GDT,为1则指向LDT, (可见这高14位都具有存储器地址属性。) 最低的2位bit1bit0表征当前的请求特权级RPL。,段描述符,定义存储器段的基地址、段的大小以及段的属性,每个段描述符都是由8个字节共64位组成 。全局描述表与局部描述符表中的描述符格式是一致的 。,段描述符说明,段基址是被描述段的起始地址,

16、由最高位字节、第4字节、第3字节与第2字节组成32位起始地址,寻址空间达4G字节。 段界限表示该段存储器空间的最大偏移量地址,由第6字节的低半个字节与最低的两个字节组成,共20位,说明段界的最大值为1M。(但它要与属性中的粒度G结合才能准确描述该段的存储器空间容量。),图11.6 由段描述符描述的存储段位置和大小,段描述符说明,段属性控制对该段存储区的访问,系统对该段的访问操作要根据段属性进行合法性检查,当访问操作不符合段属性的要求时就会发生系统异常中断。 占第6的高半字节与第5字节共12位。段属性各位的意义见表11.2。,表11.2 段属性的定义,特权级的进一步说明,DPL(Descriptor Privilege Level)表示被描述段的特权级。 请求特权级RPL(Requested Privilege Level),它是要求对该段进行修改的特权级值。 当前特权级CPL(Current Privilege Level)的概念,它是当前正在执行的代码段的特权级,也就

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号