2.7 80x86/Pentium系列微处理器工作模式
80x86/Pentium系列微处理器的工作模式共有4种,如表2-7所示。
表2-7 80x86/Pentium的工作模式
不同的工作模式对存储器的管理方法不同,下面介绍这几种工作模式的特点。
1.实地址模式
实地址模式又称为实模式。以8086为代表的16位微处理器只能工作于实地址模式,为了与16位微处理器兼容,32位的微处理器也设置了实地址模式。32位的微处理器工作在实地址模式下时,只相当于一个快速的8086 CPU,基于8086的源程序代码可以直接在32位微处理器上运行,另外,还能有效使用8086所不支持的寻址方式、32位寄存器和大部分32位微处理器才能支持的指令。
工作于实地址模式的微处理器具有如下特点:
① 寻址、存储器管理和中断机构都与8086一致。
② 默认操作数的长度是16位,但可超越访问32位的寄存器,并可使用FS和GS作为附加数据段的段基址进行寻址。
③ 只允许处理器寻址第一个1MB的存储器空间, 32位微处理器的32位地址只有低20位地址有效,采用分段方式访问存储空间,每段大小固定为64KB。物理地址由段寄存器提供的16位段基址值左移4位加上段内偏移地址构成。
④ 存储器中地址为FFFF0H~FFFFFH为初始化专用区,00000H~003FFH为中断向量专用区,这两个区域属于保留区,用户不能随意存取数据。
⑤ 只支持单任务工作方式
系统启动或复位后,32位微处理器自动进入实地址模式。
2.保护模式
保护模式又称为虚地址模式。是由80286芯片引入的,以实现虚拟存储管理,即在CPU结构内部设置存储器管理单元MMU,以实现将外部存储器中由虚拟地址指定的程序映射到内存中由物理地址指定的同一程序。在80286中存储器管理采用段式存储管理机制可实现16MB的物理地址空间和1GB的虚拟地址空间的访问。80386采用段页式存储管理机构,可提供4GB的物理地址空间和64TB的虚拟地址空间。关于虚拟存储器的管理模式将在第5章讲述。
计算机软件是由系统软件和应用软件构成,在实现其应用时,系统软件与各应用软件需要同时运行,
图2-31 特权层结构
为了保证各软件的相对独立性,需要对存储器采取相应的管理措施即保护机制。保护机制有两类,一类是多任务环境下的保护机制,是由软件和硬件相互配合,通过给每一任务分配不同的虚拟地址空间,使每一任务有各自不同的虚拟-物理地址映射,以实现不同任务之间的完全隔离。另一类是同一任务内的保护机制,即对任务设立特权级实现的,如图2-31所示。特权级分为0~3四级,数值最低的特权级最高。如特权级1的代码可以访问特权级1的数据及特权级2、3的代码和数据,但不能访问特权级0的代码和数据。
工作于保护模式的微处理器具有如下特点:
① 可以使用四级保护功能,实现程序间、程序与用户间、用户与操作系统间的隔离和保护,为多任务操作系统提供优化支持。
② 存储器可用物理地址空间、虚拟地址空间和线性地址空间(除80286外)三种方式描述,在保护模式下,寻址是通过描述符表的数据结构实现对主存单元的访问。
③ 在保护模式下,借助存储器管理部件MMU将外存空间有效地映射到内存,使用户编程时使用的存储空间大大超过实际物理地址空间。
3.虚拟8086模式
根据前述,32位的微处理器在实地址模式下不支持保护和多任务机制,但很多时候需要在多任务环境的保护模式下运行基于8086的程序。为了解决这一问题,32位的微处理器从80386开始支持在保护和多任务的环境中直接运行基于8086编写的程序,这就是虚拟8086模式。
在虚拟8086模式下,32位微处理器允许同时运行8086的操作系统和应用程序以及32位操作系统和应用程序,既能正确运行基于8086的源程序代码,又能有效利用保护模式的多种功能,因而具有更好的灵活性。
工作于虚拟8086的微处理器具有的特点如下:
① 存储器寻址空间1MB。
② 段寄存器及用法与实地址模式下完全相同。
③ 采用分页管理,可把虚拟8086模式下的1MB物理地址空间映射到32位微处理器的4GB物理空间的任意位置。
在虚拟8086模式下中,基于8086的程序可以在保护模式的操作系统下运行,可以使用保护模式下的存储管理机制、中断和异常处理机制以及多任务机制等为8086任务提供管理与何护。
4.系统管理模式
系统管理模式是一个对所有Intel处理器都统一的标准体系结构特性。该模式为操作系统和核心程序提供节能管理和系统安全管理等机制。
进入系统管理模式后,处理器首先保存当前运行程序或任务的基本信息,然后切换到一个分开的地址空间,执行系统管理相关的程序,退出系统管理模式,处理器将恢复原来程序的状态。
处理器在系统管理模式下切换到的地址空间,称为系统管理RAM,其使用类似实地址的存储模型。
5.工作模式间的转换
如前述,现代微处理器有4种工作模式:实地址模式、保护模式、虚拟8086模式和系统管理模式。这4种工作模式是靠微处理器的存储管理机制实现的。
图2-32 微处理器工作模式转换图
微处理器的工作模式及其相互转换方法如图2-32所示。对系统复位或将CR0中的PE位变为逻辑0后,处理器进入实地址模式。通过给CR0寄存器中的PE位置1,微处理器将进入保护模式,在进行该操作前必须对其他方面做好初始化。通过将EFLAG寄存器中的VM位置为逻辑1就可由保护模式进入虚拟8086模式。若要进入系统存储器管理模式,则可使Pentium处理器的SMI系统管理中断输入信号有效。使用RSM指令可以从系统存储器管理模式中断返回到被中断程序的中断点处。